diff --git a/.env.example b/.env.example
index ed8089ed7..8e5392a0d 100644
--- a/.env.example
+++ b/.env.example
@@ -1,5 +1,19 @@
+# Image Tags
+# ----------
+
+TAG=dev
+
# Security
# --------
+
+# Please set these access keys to something random and unique.
+# Note: For just testing, you can set them to the same value.
+
+# On Linux, you can generate a random key with:
+# > openssl rand -base64 32
+# OR
+# > tr -dc 'A-Za-z0-9+_/'
AGENTS_API_KEY=
COZO_AUTH_TOKEN=
@@ -9,24 +23,33 @@ LITELLM_MASTER_KEY=
LITELLM_SALT_KEY=
LITELLM_REDIS_PASSWORD=
-# Memory Store
-# -----------
+# LLM Providers
+# --------------
-# COZO_HOST=http://memory-store:9070
-# COZO_PORT=9070
-# COZO_ROCKSDB_DIR=cozo.db
-# COZO_BACKUP_DIR=/backup
-# COZO_MNT_DIR=/data
+### Recommended LLM Providers
-# Gateway
-# ------
+# OPENAI_API_KEY=
+# VOYAGE_API_KEY=
-# GATEWAY_PORT=80
-# TRAEFIK_LOG_LEVEL=INFO
+# HUGGING_FACE_HUB_TOKEN=
+# ANTHROPIC_API_KEY=
+# GROQ_API_KEY=
+# CLOUDFLARE_API_KEY=
+# CLOUDFLARE_ACCOUNT_ID=
+# NVIDIA_NIM_API_KEY=
+# GITHUB_API_KEY=
+# GOOGLE_APPLICATION_CREDENTIALS=.keys/julep-vertexai-svc.json
# Agents API
# ---------
+### Embedding Model
+### > Set to either "voyage/voyage-3" or "Alibaba-NLP/gte-large-en-v1.5"
+### > Use Alibaba-NLP/gte-large-en-v1.5 with local embedding server
+
+# EMBEDDING_MODEL_ID=voyage/voyage-3
+# EMBEDDING_MODEL_ID=Alibaba-NLP/gte-large-en-v1.5
+
# AGENTS_API_HOSTNAME=localhost
# AGENTS_API_PROTOCOL=http
# AGENTS_API_KEY_HEADER_NAME=Authorization
@@ -34,8 +57,25 @@ LITELLM_REDIS_PASSWORD=
# TRUNCATE_EMBED_TEXT=true
# WORKER_URL=temporal:7233
# AGENTS_API_DEBUG=false
-# EMBEDDING_MODEL_ID=Alibaba-NLP/gte-large-en-v1.5
# NUM_GPUS=1
+# INTEGRATION_SERVICE_URL=http://integrations:8000
+# USE_BLOB_STORE_FOR_TEMPORAL=false
+# BLOB_STORE_CUTOFF_KB=1024
+
+# Memory Store
+# -----------
+
+# COZO_HOST=http://memory-store:9070
+# COZO_PORT=9070
+# COZO_ROCKSDB_DIR=cozo.db
+# COZO_BACKUP_DIR=/backup
+# COZO_MNT_DIR=/data
+
+# Gateway
+# ------
+
+# GATEWAY_PORT=80
+# TRAEFIK_LOG_LEVEL=INFO
# Temporal
# --------
@@ -55,16 +95,9 @@ LITELLM_REDIS_PASSWORD=
# LITELLM_REDIS_HOST=litellm-redis
# LITELLM_REDIS_PORT=6379
-# LLM Providers
-# --------------
+# Blob Store
+# -----------
-# OPENAI_API_KEY=
-# HUGGING_FACE_HUB_TOKEN=
-# ANTHROPIC_API_KEY=
-# GROQ_API_KEY=
-# CLOUDFLARE_API_KEY=
-# CLOUDFLARE_ACCOUNT_ID=
-# NVIDIA_NIM_API_KEY=
-# GITHUB_API_KEY=
-# VOYAGE_API_KEY=
-# GOOGLE_APPLICATION_CREDENTIALS=.keys/julep-vertexai-svc.json
+# S3_ENDPOINT=http://seaweedfs:8333
+# S3_ACCESS_KEY=
+# S3_SECRET_KEY=
\ No newline at end of file
diff --git a/.github/CODE_OF_CONDUCT.md b/.github/CODE_OF_CONDUCT.md
new file mode 100644
index 000000000..21d3f63d5
--- /dev/null
+++ b/.github/CODE_OF_CONDUCT.md
@@ -0,0 +1,40 @@
+# Contributor Covenant Code of Conduct
+
+## Our Pledge
+
+In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation.
+
+## Our Standards
+
+Examples of behavior that contributes to creating a positive environment include:
+
+* Using welcoming and inclusive language
+* Being respectful of differing viewpoints and experiences
+* Gracefully accepting constructive criticism
+* Focusing on what is best for the community
+* Showing empathy towards other community members
+
+Examples of unacceptable behavior by participants include:
+
+* The use of sexualized language or imagery and unwelcome sexual attention or advances
+* Trolling, insulting/derogatory comments, and personal or political attacks
+* Public or private harassment
+* Publishing others' private information, such as a physical or electronic address, without explicit permission
+* Other conduct which could reasonably be considered inappropriate in a professional setting
+
+## Our Responsibilities
+
+Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.
+
+Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.
+
+## Scope
+
+This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.
+
+## Enforcement
+
+Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at [INSERT EMAIL ADDRESS]. All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.
+
+Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.
+
diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml
new file mode 100644
index 000000000..95731b302
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/bug_report.yml
@@ -0,0 +1,119 @@
+name: "🐛 Bug Report"
+description: "Submit a bug report to help us improve"
+title: "[Bug]: "
+labels: ["bug"]
+body:
+ - type: markdown
+ attributes:
+ value: We value your time and your efforts to submit this bug report is appreciated. 🙏
+
+ - type: textarea
+ id: description
+ validations:
+ required: true
+ attributes:
+ label: "📜 Description"
+ description: "A clear and concise description of what the bug is."
+ placeholder: "It bugs out when ..."
+
+ - type: textarea
+ id: steps-to-reproduce
+ validations:
+ required: true
+ attributes:
+ label: "👟 Reproduction steps"
+ description: "How do you trigger this bug? Please walk us through it step by step."
+ placeholder: "1. Go to '...'
+ 2. Click on '....'
+ 3. Scroll down to '....'
+ 4. See error"
+
+ - type: textarea
+ id: expected-behavior
+ validations:
+ required: true
+ attributes:
+ label: "👍 Expected behavior"
+ description: "What did you think should happen?"
+ placeholder: "It should ..."
+
+ - type: textarea
+ id: actual-behavior
+ validations:
+ required: true
+ attributes:
+ label: "👎 Actual Behavior with Screenshots"
+ description: "What did actually happen? Add screenshots, if applicable."
+ placeholder: "It actually ..."
+
+ - type: dropdown
+ id: operating-system
+ attributes:
+ label: "💻 Operating system"
+ description: "What OS is your app running on?"
+ options:
+ - Linux
+ - MacOS
+ - Windows
+ - Something else
+ validations:
+ required: true
+
+ - type: dropdown
+ id: browsers
+ attributes:
+ label: What browsers are you seeing the problem on?
+ multiple: true
+ options:
+ - Firefox
+ - Chrome
+ - Safari
+ - Microsoft Edge
+ - Something else
+
+ - type: textarea
+ id: additional-context
+ validations:
+ required: false
+ attributes:
+ label: "📃 Provide any additional context for the Bug."
+ description: "Add any other context about the problem here."
+ placeholder: "It actually ..."
+
+ - type: textarea
+ id: logs
+ validations:
+ required: false
+ attributes:
+ label: 📖 Relevant log output
+ description: Please copy and paste any relevant log output. This will be automatically formatted into code, so no need for backticks.
+ render: shell
+
+ - type: checkboxes
+ id: no-duplicate-issues
+ attributes:
+ label: "👀 Have you spent some time to check if this bug has been raised before?"
+ options:
+ - label: "I checked and didn't find similar issue"
+ required: true
+
+ - type: dropdown
+ id: willing-to-submit-pr
+ attributes:
+ label: 🔗 Are you willing to submit PR?
+ description: This is absolutely not required, but we are happy to guide you in the contribution process.
+ options: # Added options key
+ - "Yes, I am willing to submit a PR!"
+ - "No"
+ validations:
+ required: false
+
+
+ - type: checkboxes
+ id: terms
+ attributes:
+ label: 🧑⚖️ Code of Conduct
+ description: By submitting this issue, you agree to follow our [Code of Conduct](https://github.com/julep-ai/julep/blob/dev/.github/CODE_OF_CONDUCT.md)
+ options:
+ - label: I agree to follow this project's Code of Conduct
+ required: true
\ No newline at end of file
diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml
new file mode 100644
index 000000000..4e472d981
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/config.yml
@@ -0,0 +1,5 @@
+blank_issues_enabled: false
+contact_links:
+ - name: Have Question?
+ url: https://discord.com/invite/JTSBGRZrzj
+ about: Join Official Discord server
\ No newline at end of file
diff --git a/.github/ISSUE_TEMPLATE/docs_improvement.yml b/.github/ISSUE_TEMPLATE/docs_improvement.yml
new file mode 100644
index 000000000..1654e3345
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/docs_improvement.yml
@@ -0,0 +1,52 @@
+name: "📝 Docs Improvement"
+description: "Suggest improvements or additions to the documentation"
+title: "[Docs]: "
+labels: ["documentation"]
+assignees: []
+body:
+ - type: markdown
+ attributes:
+ value: Thanks for taking the time to help improve our documentation! Please provide the following details
+
+ - type: input
+ id: current_section
+ attributes:
+ label: "Current Section"
+ description: "Which section of the documentation needs improvement?"
+ placeholder: "e.g., Installation Guide"
+
+ - type: textarea
+ id: improvement_suggestion
+ attributes:
+ label: "Improvement Suggestion"
+ description: "Describe the improvement or addition you are suggesting."
+ placeholder: "e.g., Add more details about setting up the environment."
+
+ - type: textarea
+ id: additional_context
+ attributes:
+ label: "Additional Context"
+ description: "Any additional context or information that might be helpful."
+ placeholder: "e.g., Links to related documentation, screenshots, etc."
+ - type: checkboxes
+ id: no-duplicate-issues
+ attributes:
+ label: "👀 Have you spent some time to check if this issue has been raised before?"
+ options:
+ - label: "I checked and didn't find similar issue"
+ required: true
+ - type: dropdown
+ id: willing-to-submit-pr
+ attributes:
+ label: Are you willing to submit PR?
+ description: This is absolutely not required, but we are happy to guide you in the contribution process.
+ options:
+ - "Yes I am willing to submit a PR!"
+ - type: checkboxes
+ id: terms
+ attributes:
+ label: 🧑⚖️ Code of Conduct
+ description: By submitting this issue, you agree to follow our [Code of Conduct](https://github.com/julep-ai/julep/blob/dev/.github/CODE_OF_CONDUCT.md)
+ options:
+ - label: I agree to follow this project's Code of Conduct
+ required: true
\ No newline at end of file
diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml
new file mode 100644
index 000000000..3d1286f78
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/feature_request.yml
@@ -0,0 +1,62 @@
+name: 🚀 Feature
+description: "Submit a proposal for a new feature"
+title: "[Feature]: "
+labels: ["enhancement"]
+body:
+ - type: markdown
+ attributes:
+ value: We value your time and your efforts to submit this feature request is appreciated. 🙏
+ - type: textarea
+ id: feature-description
+ validations:
+ required: true
+ attributes:
+ label: "🔖 Feature description"
+ description: "A clear and concise description of what the feature is."
+ placeholder: "You should add ..."
+ - type: textarea
+ id: pitch
+ validations:
+ required: true
+ attributes:
+ label: "🎤 Why is this feature needed ?"
+ description: "Please explain why this feature should be implemented and how it would be used. Add examples, if applicable."
+ placeholder: "In my use-case, ..."
+ - type: textarea
+ id: solution
+ validations:
+ required: true
+ attributes:
+ label: "✌️ How do you aim to achieve this?"
+ description: "A clear and concise description of what you want to happen."
+ placeholder: "I want this feature to, ..."
+ - type: textarea
+ id: alternative
+ validations:
+ required: false
+ attributes:
+ label: "🔄️ Additional Information"
+ description: "A clear and concise description of any alternative solutions or additional solutions you've considered."
+ placeholder: "I tried, ..."
+ - type: checkboxes
+ id: no-duplicate-issues
+ attributes:
+ label: "👀 Have you spent some time to check if this feature request has been raised before?"
+ options:
+ - label: "I checked and didn't find similar issue"
+ required: true
+ - type: dropdown
+ id: willing-to-submit-pr
+ attributes:
+ label: Are you willing to submit PR?
+ description: This is absolutely not required, but we are happy to guide you in the contribution process.
+ options:
+ - "Yes I am willing to submit a PR!"
+ - type: checkboxes
+ id: terms
+ attributes:
+ label: 🧑⚖️ Code of Conduct
+ description: By submitting this issue, you agree to follow our [Code of Conduct](https://github.com/julep-ai/julep/blob/dev/.github/CODE_OF_CONDUCT.md)
+ options:
+ - label: I agree to follow this project's Code of Conduct
+ required: true
\ No newline at end of file
diff --git a/.github/SUPPORT.md b/.github/SUPPORT.md
new file mode 100644
index 000000000..a7d26253a
--- /dev/null
+++ b/.github/SUPPORT.md
@@ -0,0 +1,62 @@
+# Support for Julep
+
+Welcome to the Julep support page! We're here to help you with any questions or issues you may encounter while using our platform. This document outlines the various ways you can get support and engage with our community.
+
+## Getting Help
+
+### Documentation
+
+Our comprehensive documentation is the first place to look for answers:
+
+- [Explore Docs](https://docs.julep.ai)
+
+Here you'll find detailed guides, API references, and tutorials to help you make the most of Julep.
+
+### Community Support
+
+Join our vibrant community to get help from other users and the Julep team:
+
+- [Discord](https://discord.com/invite/JTSBGRZrzj): Join our Discord server for real-time chat and support.
+- [GitHub Discussions](https://github.com/julep-ai/julep/discussions): Ask questions, share ideas, and discuss Julep with other developers.
+
+### Social Media
+
+Follow us on social media for updates, tips, and community highlights:
+
+- [𝕏 (Twitter)](https://x.com/julep_ai)
+- [LinkedIn](https://www.linkedin.com/company/julep-ai)
+
+## Reporting Issues
+
+If you encounter a bug or have a feature request, please open an issue on our GitHub repository:
+
+- [GitHub Issues](https://github.com/julep-ai/julep/issues)
+
+When reporting issues, please provide as much detail as possible, including:
+
+- Steps to reproduce the issue
+- Expected behavior
+- Actual behavior
+- Any error messages or logs
+- Your environment (Julep version, operating system, etc.)
+
+## Contributing
+
+We welcome contributions to Julep! If you're interested in contributing, please check out our:
+
+- [Contributing Guidelines](https://github.com/julep-ai/julep/blob/main/CONTRIBUTING.md)
+- [Code of Conduct](https://github.com/julep-ai/julep/blob/main/CODE_OF_CONDUCT.md)
+
+## API Keys
+
+While we are in beta, you can reach out on [Discord](https://discord.com/invite/JTSBGRZrzj) to get your API key.
+
+## Staying Updated
+
+To stay informed about the latest updates, features, and community news:
+
+- Watch our [GitHub repository](https://github.com/julep-ai/julep)
+- Follow us on [𝕏 (Twitter)](https://x.com/julep_ai)
+- Join our [Discord](https://discord.com/invite/JTSBGRZrzj) for announcements
+
+Thank you for using Julep! We're excited to see what you build with our platform.
diff --git a/.github/workflows/bake-push-to-hub.yml b/.github/workflows/bake-push-to-hub.yml
new file mode 100644
index 000000000..e25436c5d
--- /dev/null
+++ b/.github/workflows/bake-push-to-hub.yml
@@ -0,0 +1,45 @@
+name: Build and push images to docker hub on merge to dev
+run-name: ${{ github.actor }} is building and pushing images to docker hub
+
+on:
+ push:
+ branches:
+ - "dev"
+ tags:
+ - "v*"
+ release:
+ types: [published, released, prereleased]
+
+jobs:
+ Bake-Push-Images:
+ runs-on: ubuntu-latest
+
+ steps:
+ - uses: actions/checkout@v4
+
+ - name: Set up Docker Buildx
+ uses: docker/setup-buildx-action@v3
+
+ - name: Login to Docker Hub
+ uses: docker/login-action@v3
+ with:
+ username: julepai
+ password: "${{ secrets.DOCKER_HUB_PASSWORD }}"
+
+ - name: Build and push agent images
+ uses: docker/bake-action@v5
+ with:
+ files: |
+ ./docker-bake.hcl
+ targets: agents-api
+ push: true
+ set: |
+ *.cache-from=type=gha
+ *.cache-to=type=gha,mode=max
+ env:
+ TAG: ${{ github.ref_name }}
+ GIT_SHA: ${{ github.sha }}
+
+concurrency:
+ group: ${{ github.workflow }}-${{ github.ref }}
+ cancel-in-progress: true
diff --git a/.github/workflows/bandit-security-check-python-agents-api.yml b/.github/workflows/bandit-security-check-python-agents-api.yml
new file mode 100644
index 000000000..b6d4e828d
--- /dev/null
+++ b/.github/workflows/bandit-security-check-python-agents-api.yml
@@ -0,0 +1,24 @@
+name: Bandit security check python agents-api
+run-name: ${{ github.actor }} is checking the security of the code
+
+on:
+ pull_request:
+ paths:
+ - 'agents-api/**'
+ push:
+ paths:
+ - 'agents-api/**'
+
+jobs:
+ bandit_check:
+ name: bandit check security of python code in agents-api
+ runs-on: ubuntu-latest
+
+ steps:
+ - uses: mdegis/bandit-action@v1.0.1
+ with:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ path: "./agents-api/agents_api"
+ level: high
+ confidence: high
+ # exit_zero: true
diff --git a/.github/workflows/changelog-ci.yml b/.github/workflows/changelog-ci.yml
index 2a1ab6c30..ff99828a3 100644
--- a/.github/workflows/changelog-ci.yml
+++ b/.github/workflows/changelog-ci.yml
@@ -1,21 +1,24 @@
-name: Changelog CI
+name: Changelog on release
-# TODO: This is currently not working. Need to fix it
on:
- pull_request:
- types: [ opened, synchronize ]
+ release:
+ types: [published]
jobs:
- build:
+ changelog:
runs-on: ubuntu-latest
steps:
# Checks-out your repository
- - uses: actions/checkout@v2
+ - uses: actions/checkout@v4
+ with:
+ fetch-depth: 0
+ ref: dev
- - name: Run Changelog CI
- uses: saadmk11/changelog-ci@v1.1.2
+ # Generate changelog from release notes
+ - uses: rhysd/changelog-from-release/action@v3
with:
- changelog_filename: CHANGELOG.md
- # config_file: changelog-ci-config.json
+ file: CHANGELOG.md
github_token: ${{ secrets.GITHUB_TOKEN }}
+ pull_request: true
+
\ No newline at end of file
diff --git a/.github/workflows/docker-bake-on-pr.yml b/.github/workflows/docker-bake-on-pr.yml
new file mode 100644
index 000000000..2e00f0929
--- /dev/null
+++ b/.github/workflows/docker-bake-on-pr.yml
@@ -0,0 +1,39 @@
+name: Bake images on PR
+run-name: ${{ github.actor }} is baking images
+
+on:
+ pull_request:
+
+jobs:
+ Bake-Images:
+ runs-on: ubuntu-latest
+
+ steps:
+ - uses: actions/checkout@v4
+
+ - name: Set up Docker Buildx
+ uses: docker/setup-buildx-action@v3
+
+ - name: Login to Docker Hub
+ uses: docker/login-action@v3
+ with:
+ username: julepai
+ password: "${{ secrets.DOCKER_HUB_PASSWORD }}"
+
+ - name: Bake images
+ uses: docker/bake-action@v5
+ with:
+ files: |
+ ./docker-bake.hcl
+ targets: agents-api
+ push: false
+ set: |
+ *.cache-from=type=gha
+ *.cache-to=type=gha,mode=max
+ env:
+ TAG: pr-run-${{ github.run_number }}-${{ github.run_attempt }}
+ GIT_SHA: ${{ github.sha }}
+
+concurrency:
+ group: ${{ github.workflow }}-${{ github.ref }}
+ cancel-in-progress: ${{ github.event_name == 'pull_request' }}
diff --git a/.github/workflows/doctoc-on-push.yml b/.github/workflows/doctoc-on-push.yml
new file mode 100644
index 000000000..c0dfdf2c6
--- /dev/null
+++ b/.github/workflows/doctoc-on-push.yml
@@ -0,0 +1,14 @@
+on: push
+
+name: TOC Generator
+jobs:
+ generateTOC:
+ name: TOC Generator
+ runs-on: ubuntu-latest
+ steps:
+ - uses: technote-space/toc-generator@v4
+ with:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ MAX_HEADER_LEVEL: 3
+ TOC_TITLE: '
📖 Table of Contents
'
+ FOLDING: true
diff --git a/.github/workflows/generate-docs.yml b/.github/workflows/generate-docs.yml
deleted file mode 100644
index 9c6952e6e..000000000
--- a/.github/workflows/generate-docs.yml
+++ /dev/null
@@ -1,97 +0,0 @@
-name: Generate docs on merge to dev
-run-name: ${{ github.actor }} is generating documentation
-
-# TODO: This is currently not working. Need to fix it
-on:
- push:
- branches:
- - "dev"
- - "main"
-
-jobs:
- Generate-Docs-For-TS-SDK:
- runs-on: ubuntu-latest
-
- steps:
- - uses: actions/checkout@v4
-
- - name: Use Node.js
- uses: actions/setup-node@v4
- with:
- node-version: "20.x"
-
- - name: Cache npm dependencies
- uses: actions/cache@v4
- with:
- path: sdks/ts/node_modules
- key: ${{ runner.os }}-sdks-ts-npm-${{ hashFiles('sdks/ts/package-lock.json') }}
- restore-keys: |
- ${{ runner.os }}-sdks-ts-npm-
-
- - name: Install npm dependencies
- run: |
- cd sdks/ts
- npm ci
-
- - name: Generate docs
- run: |
- cd sdks/ts
- npm run generate-docs
-
- - uses: stefanzweifel/git-auto-commit-action@v4
- with:
- commit_message: "doc(sdks/ts): Generate docs for sdks/ts (CI)"
- branch: ${{ github.head_ref }}
-
- Generate-Docs-For-Python-SDK:
- runs-on: ubuntu-latest
-
- steps:
- - uses: actions/checkout@v4
-
- - uses: actions/setup-python@v5
- with:
- python-version: "3.10"
-
- - name: Install and configure Poetry
- uses: snok/install-poetry@v1
-
- - name: Configure Poetry to use .venv
- run: |
- cd sdks/python
- poetry config virtualenvs.in-project true
-
- - name: Cache Poetry virtualenv
- uses: actions/cache@v4
- with:
- path: sdks/python/.venv
- key: ${{ runner.os }}-sdks-python-poetry-${{ hashFiles('sdks/python/poetry.lock') }}
- restore-keys: |
- ${{ runner.os }}-sdks-python-poetry-
-
- - name: Cache pytype
- uses: actions/cache@v4
- with:
- path: sdks/python/.pytype
- key: ${{ runner.os }}-sdks-python-pytype-${{ hashFiles('sdks/python/**/*.py') }}
- restore-keys: |
- ${{ runner.os }}-sdks-python-pytype-
-
- - name: Install dependencies
- run: |
- cd sdks/python
- poetry install
-
- - name: Generate docs
- run: |
- cd sdks/python
- poetry run poe doc
-
- - uses: stefanzweifel/git-auto-commit-action@v4
- with:
- commit_message: "doc(sdks/python): Generate docs for sdks/python (CI)"
- branch: ${{ github.head_ref }}
-
-concurrency:
- group: ${{ github.workflow }}-${{ github.ref }}
- cancel-in-progress: true
diff --git a/.github/workflows/latest-push-to-hub.yml b/.github/workflows/latest-push-to-hub.yml
new file mode 100644
index 000000000..3853a8faa
--- /dev/null
+++ b/.github/workflows/latest-push-to-hub.yml
@@ -0,0 +1,41 @@
+name: Build and push images to docker hub on merge to main
+run-name: ${{ github.actor }} is building and pushing images to docker hub
+
+on:
+ push:
+ branches:
+ - "main"
+
+jobs:
+ Bake-Push-Images:
+ runs-on: ubuntu-latest
+
+ steps:
+ - uses: actions/checkout@v4
+
+ - name: Set up Docker Buildx
+ uses: docker/setup-buildx-action@v3
+
+ - name: Login to Docker Hub
+ uses: docker/login-action@v3
+ with:
+ username: julepai
+ password: "${{ secrets.DOCKER_HUB_PASSWORD }}"
+
+ - name: Build and push agent images
+ uses: docker/bake-action@v5
+ with:
+ files: |
+ ./docker-bake.hcl
+ targets: agents-api
+ push: true
+ set: |
+ *.cache-from=type=gha
+ *.cache-to=type=gha,mode=max
+ env:
+ TAG: latest
+ GIT_SHA: ${{ github.sha }}
+
+concurrency:
+ group: ${{ github.workflow }}-${{ github.ref }}
+ cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}
\ No newline at end of file
diff --git a/.github/workflows/lint-agents-api-pr.yml b/.github/workflows/lint-agents-api-pr.yml
new file mode 100644
index 000000000..3721a8b59
--- /dev/null
+++ b/.github/workflows/lint-agents-api-pr.yml
@@ -0,0 +1,57 @@
+name: Lint agents-api
+run-name: ${{ github.actor }} is linting the code
+
+on:
+ pull_request:
+ paths:
+ - 'agents-api/**'
+ push:
+ paths:
+ - 'agents-api/**'
+
+jobs:
+ Lint-And-Format:
+ runs-on: ubuntu-latest
+
+ steps:
+ - uses: actions/checkout@v4
+
+ - uses: actions/setup-python@v5
+ with:
+ python-version: "3.12"
+
+ - name: Install and configure Poetry
+ uses: snok/install-poetry@v1
+
+ - name: Configure Poetry to use .venv
+ run: |
+ cd agents-api
+ poetry config virtualenvs.in-project true
+
+ - name: Cache Poetry virtualenv
+ uses: actions/cache@v4
+ with:
+ path: agents-api/.venv
+ key: ${{ runner.os }}-agents-api-poetry-${{ hashFiles('agents-api/poetry.lock') }}
+ restore-keys: |
+ ${{ runner.os }}-agents-api-poetry-
+
+ - name: Install dependencies
+ run: |
+ cd agents-api
+ poetry install
+
+ - name: Lint and format
+ run: |
+ cd agents-api
+ poetry run poe format
+ poetry run poe lint
+
+ - uses: stefanzweifel/git-auto-commit-action@v4
+ with:
+ commit_message: "refactor: Lint agents-api (CI)"
+ branch: ${{ github.head_ref }}
+
+concurrency:
+ group: ${{ github.workflow }}-${{ github.ref }}
+ cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}
diff --git a/.github/workflows/lint-and-format.yml b/.github/workflows/lint-and-format.yml
deleted file mode 100644
index 27cfa2d9e..000000000
--- a/.github/workflows/lint-and-format.yml
+++ /dev/null
@@ -1,110 +0,0 @@
-name: Lint and typecheck APIs and SDKs
-run-name: ${{ github.actor }} is linting and typechecking the code
-
-# TODO: Fix CI github actions
-# SCRUM-26
-
-on: [pull_request]
-
-jobs:
- Lint-And-Format:
- runs-on: ubuntu-latest
-
- strategy:
- matrix:
- directory: [agents-api, sdks/python]
-
- steps:
- - uses: actions/checkout@v4
-
- - uses: actions/setup-python@v5
- with:
- python-version: "3.10"
-
- - name: Install and configure Poetry
- uses: snok/install-poetry@v1
-
- - name: Configure Poetry to use .venv
- run: |
- cd ${{ matrix.directory }}
- poetry config virtualenvs.in-project true
-
- - name: Cache Poetry virtualenv
- uses: actions/cache@v4
- with:
- path: ${{ matrix.directory }}/.venv
- key: ${{ runner.os }}-${{ matrix.directory }}-poetry-${{ hashFiles(format('{0}/poetry.lock', matrix.directory)) }}
- restore-keys: |
- ${{ runner.os }}-${{ matrix.directory }}-poetry-
-
- - name: Cache pytype
- uses: actions/cache@v4
- with:
- path: ${{ matrix.directory }}/.pytype
- key: ${{ runner.os }}-${{ matrix.directory }}-pytype-${{ hashFiles(format('{0}/**/*.py', matrix.directory)) }}
- restore-keys: |
- ${{ runner.os }}-${{ matrix.directory }}-pytype-
-
- - name: Install dependencies
- run: |
- cd ${{ matrix.directory }}
- poetry install
-
- - name: Lint and format
- run: |
- cd ${{ matrix.directory }}
- poetry run poe format
- poetry run poe lint
-
- - name: Typecheck
- run: |
- cd ${{ matrix.directory }}
- poetry run poe typecheck
-
- - uses: stefanzweifel/git-auto-commit-action@v4
- with:
- commit_message: "refactor: Lint ${{ matrix.directory }} (CI)"
- branch: ${{ github.head_ref }}
-
- Lint-And-Format-TS-SDK:
- runs-on: ubuntu-latest
-
- steps:
- - uses: actions/checkout@v4
-
- - name: Use Node.js
- uses: actions/setup-node@v4
- with:
- node-version: "20.x"
-
- - name: Cache npm dependencies
- uses: actions/cache@v4
- with:
- path: sdks/ts/node_modules
- key: ${{ runner.os }}-sdks-ts-npm-${{ hashFiles('sdks/ts/package-lock.json') }}
- restore-keys: |
- ${{ runner.os }}-sdks-ts-npm-
-
- - name: Install npm dependencies
- run: |
- cd sdks/ts
- npm ci
-
- - name: Lint and format TypeScript SDK
- run: |
- cd sdks/ts
- npm run format
-
- - name: Build TypeScript SDK
- run: |
- cd sdks/ts
- npm run build
-
- - uses: stefanzweifel/git-auto-commit-action@v4
- with:
- commit_message: "refactor: Lint sdks/ts (CI)"
- branch: ${{ github.head_ref }}
-
-concurrency:
- group: ${{ github.workflow }}-${{ github.ref }}
- cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}
diff --git a/.github/workflows/push-to-hub.yml b/.github/workflows/push-to-hub.yml
deleted file mode 100644
index ee848d755..000000000
--- a/.github/workflows/push-to-hub.yml
+++ /dev/null
@@ -1,163 +0,0 @@
-name: Build and push images to docker hub on merge to dev
-run-name: ${{ github.actor }} is building and pushing images to docker hub
-
-# TODO: This is currently not working. Need to fix it
-on:
- push:
- branches:
- - "dev"
- - "main"
-
-jobs:
- Build-Push-Agents-API-Image:
- runs-on: ubuntu-latest
-
- steps:
- - uses: actions/checkout@v4
-
- - name: Set branch name
- id: variables
- run: echo "branch_name=$(echo ${GITHUB_REF#refs/heads/} | tr '/' '-')" >> $GITHUB_OUTPUT
-
- - name: Set up Docker Buildx
- uses: docker/setup-buildx-action@v3
-
- - name: Login to Docker Hub
- uses: docker/login-action@v3
- with:
- username: julepai
- password: "${{ secrets.DOCKER_HUB_PASSWORD }}"
-
- - name: Build and push agent images
- uses: docker/build-push-action@v4
- with:
- context: ./agents-api
- file: ./agents-api/Dockerfile
- push: true
- tags: julepai/agents-api:${{ steps.variables.outputs.branch_name }}
- cache-from: type=gha
- cache-to: type=gha,mode=max
-
- Build-Push-Migration-Image:
- runs-on: ubuntu-latest
-
- steps:
- - uses: actions/checkout@v4
-
- - name: Set branch name
- id: variables
- run: echo "branch_name=$(echo ${GITHUB_REF#refs/heads/} | tr '/' '-')" >> $GITHUB_OUTPUT
-
- - name: Set up Docker Buildx
- uses: docker/setup-buildx-action@v3
-
- - name: Login to Docker Hub
- uses: docker/login-action@v3
- with:
- username: julepai
- password: "${{ secrets.DOCKER_HUB_PASSWORD }}"
-
- - name: Build and push migration image
- uses: docker/build-push-action@v4
- with:
- context: ./agents-api
- file: ./agents-api/Dockerfile.migration
- push: true
- tags: julepai/cozo-migrate:${{ steps.variables.outputs.branch_name }}
- cache-from: type=gha
- cache-to: type=gha,mode=max
-
- Build-Push-Temporal-Image:
- runs-on: ubuntu-latest
-
- steps:
- - uses: actions/checkout@v4
-
- - name: Set branch name
- id: variables
- run: echo "branch_name=$(echo ${GITHUB_REF#refs/heads/} | tr '/' '-')" >> $GITHUB_OUTPUT
-
- - name: Set up Docker Buildx
- uses: docker/setup-buildx-action@v3
-
- - name: Login to Docker Hub
- uses: docker/login-action@v3
- with:
- username: julepai
- password: "${{ secrets.DOCKER_HUB_PASSWORD }}"
-
- - name: Build and push temporal image
- uses: docker/build-push-action@v4
- with:
- context: ./agents-api
- file: ./agents-api/Dockerfile.temporal
- push: true
- tags: julepai/temporal:${{ steps.variables.outputs.branch_name }}
- cache-from: type=gha
- cache-to: type=gha,mode=max
-
- Build-Push-Worker-Image:
- runs-on: ubuntu-latest
-
- steps:
- - uses: actions/checkout@v4
-
- - name: Set branch name
- id: variables
- run: echo "branch_name=$(echo ${GITHUB_REF#refs/heads/} | tr '/' '-')" >> $GITHUB_OUTPUT
-
- - name: Set up Docker Buildx
- uses: docker/setup-buildx-action@v3
-
- - name: Login to Docker Hub
- uses: docker/login-action@v3
- with:
- username: julepai
- password: "${{ secrets.DOCKER_HUB_PASSWORD }}"
-
- - name: Build and push worker image
- uses: docker/build-push-action@v4
- with:
- context: ./agents-api
- file: ./agents-api/Dockerfile.worker
- push: true
- tags: julepai/worker:${{ steps.variables.outputs.branch_name }}
- cache-from: type=gha
- cache-to: type=gha,mode=max
-
- Build-Push-Other-Images:
- runs-on: ubuntu-latest
- strategy:
- matrix:
- service-directory:
- - gateway
- - memory-store
-
- steps:
- - uses: actions/checkout@v4
-
- - name: Set branch name
- id: variables
- run: echo "branch_name=$(echo ${GITHUB_REF#refs/heads/} | tr '/' '-')" >> $GITHUB_OUTPUT
-
- - name: Set up Docker Buildx
- uses: docker/setup-buildx-action@v3
-
- - name: Login to Docker Hub
- uses: docker/login-action@v3
- with:
- username: julepai
- password: "${{ secrets.DOCKER_HUB_PASSWORD }}"
-
- - name: Build and push images
- uses: docker/build-push-action@v4
- with:
- context: ./${{ matrix.service-directory }}
- push: true
- tags: julepai/${{ matrix.service-directory }}:${{ steps.variables.outputs.branch_name }}
- cache-from: type=gha
- cache-to: type=gha,mode=max
-
-concurrency:
- group: ${{ github.workflow }}-${{ github.ref }}
- cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}
diff --git a/.github/workflows/test-agents-api-pr.yml b/.github/workflows/test-agents-api-pr.yml
new file mode 100644
index 000000000..95e676657
--- /dev/null
+++ b/.github/workflows/test-agents-api-pr.yml
@@ -0,0 +1,51 @@
+name: Test agents-api
+run-name: ${{ github.actor }} is testing the code
+
+on:
+ pull_request:
+ paths:
+ - 'agents-api/**'
+ push:
+ paths:
+ - 'agents-api/**'
+
+jobs:
+ Test:
+ runs-on: ubuntu-latest
+
+ steps:
+ - uses: actions/checkout@v4
+
+ - uses: actions/setup-python@v5
+ with:
+ python-version: "3.12"
+
+ - name: Install and configure Poetry
+ uses: snok/install-poetry@v1
+
+ - name: Configure Poetry to use .venv
+ run: |
+ cd agents-api
+ poetry config virtualenvs.in-project true
+
+ - name: Cache Poetry virtualenv
+ uses: actions/cache@v4
+ with:
+ path: agents-api/.venv
+ key: ${{ runner.os }}-agents-api-poetry-${{ hashFiles('agents-api/poetry.lock') }}
+ restore-keys: |
+ ${{ runner.os }}-agents-api-poetry-
+
+ - name: Install dependencies
+ run: |
+ cd agents-api
+ poetry install
+
+ - name: Run tests
+ run: |
+ cd agents-api
+ poetry run poe test --fail-limit 1
+
+concurrency:
+ group: ${{ github.workflow }}-${{ github.ref }}
+ cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}
diff --git a/.github/workflows/translate-readme.yml b/.github/workflows/translate-readme.yml
new file mode 100644
index 000000000..57a7c8ade
--- /dev/null
+++ b/.github/workflows/translate-readme.yml
@@ -0,0 +1,38 @@
+name: Translate ReadME
+
+on:
+ push:
+ paths:
+ - "README.md"
+
+jobs:
+ readme-translator:
+ runs-on: ubuntu-latest
+
+ steps:
+ - uses: actions/checkout@v4
+ - name: Setup Python v3.10.12
+ uses: actions/setup-python@v5
+ with:
+ python-version: "3.10.12"
+
+ - name: Install dependencies
+ run: |
+ python -m pip install --upgrade pip
+ python -m pip install deep-translator git+https://github.com/Jwink3101/parmapper
+
+ - name: Run translator script
+ run: python scripts/readme_translator.py
+
+ - name: Commit changes
+ run: |
+ git config --global user.name 'github-actions[bot]'
+ git config --global user.email 'github-actions[bot]@users.noreply.github.com'
+ git add README-*.md
+ git commit -m "chore(readme): translate README.md"
+
+ - name: Push changes
+ uses: ad-m/github-push-action@v0.6.0
+ with:
+ github_token: ${{ secrets.GITHUB_TOKEN }}
+ branch: ${{ github.ref }}
diff --git a/.github/workflows/typecheck-agents-api-pr.yml b/.github/workflows/typecheck-agents-api-pr.yml
new file mode 100644
index 000000000..9fbc5d95c
--- /dev/null
+++ b/.github/workflows/typecheck-agents-api-pr.yml
@@ -0,0 +1,59 @@
+name: Typecheck agents-api
+run-name: ${{ github.actor }} is typechecking the code
+
+on:
+ pull_request:
+ paths:
+ - 'agents-api/**'
+ push:
+ paths:
+ - 'agents-api/**'
+
+jobs:
+ Typecheck:
+ runs-on: ubuntu-latest
+
+ steps:
+ - uses: actions/checkout@v4
+
+ - uses: actions/setup-python@v5
+ with:
+ python-version: "3.12"
+
+ - name: Install and configure Poetry
+ uses: snok/install-poetry@v1
+
+ - name: Configure Poetry to use .venv
+ run: |
+ cd agents-api
+ poetry config virtualenvs.in-project true
+
+ - name: Cache Poetry virtualenv
+ uses: actions/cache@v4
+ with:
+ path: agents-api/.venv
+ key: ${{ runner.os }}-agents-api-poetry-${{ hashFiles('agents-api/poetry.lock') }}
+ restore-keys: |
+ ${{ runner.os }}-agents-api-poetry-
+
+ - name: Cache pytype
+ uses: actions/cache@v4
+ with:
+ path: agents-api/.pytype
+ key: ${{ runner.os }}-agents-api-pytype-${{ github.base_ref }}
+ restore-keys: |
+ ${{ runner.os }}-agents-api-pytype-
+
+ - name: Install dependencies
+ run: |
+ cd agents-api
+ poetry install
+
+ - name: Typecheck
+ run: |
+ cd agents-api
+ poetry run poe typecheck
+
+concurrency:
+ group: ${{ github.workflow }}-${{ github.ref }}
+ cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}
diff --git a/.gitmodules b/.gitmodules
index e69de29bb..0f808e530 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -0,0 +1,6 @@
+[submodule "sdks/node-sdk"]
+ path = sdks/node-sdk
+ url = https://github.com/julep-ai/node-sdk.git
+[submodule "sdks/python-sdk"]
+ path = sdks/python-sdk
+ url = https://github.com/julep-ai/python-sdk.git
diff --git a/CHANGELOG.md b/CHANGELOG.md
index b4e401ad5..80bdebaed 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,15 +1,288 @@
-# TODO: Update changelog
-# SCRUM-29
+
+# [v1.0.0-alpha1](https://github.com/julep-ai/julep/releases/tag/v1.0.0-alpha1) - 30 Sep 2024
-# Changelog
+## What's Changed
+* doc: v1.0 docs by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/527
+* feat: Update README social banner and bake-push-to-hub.yml by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/537
-All notable changes to this project will be documented in this file.
-The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
-and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+**Full Changelog**: https://github.com/julep-ai/julep/compare/v0.4.1...v1.0.0-alpha1
-## [Unreleased]
+[Changes][v1.0.0-alpha1]
-### Added
-- v0.2 agents platform
+
+# [v0.4.1](https://github.com/julep-ai/julep/releases/tag/v0.4.1) - 28 Sep 2024
+
+## What's Changed
+* Update changelog for v0.4.0 by [@github-actions](https://github.com/github-actions) in https://github.com/julep-ai/julep/pull/531
+* fix: Bake on release as well by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/532
+
+## New Contributors
+* [@github-actions](https://github.com/github-actions) made their first contribution in https://github.com/julep-ai/julep/pull/531
+
+**Full Changelog**: https://github.com/julep-ai/julep/compare/v0.4.0...v0.4.1
+
+[Changes][v0.4.1]
+
+
+
+# [v0.4.0](https://github.com/julep-ai/julep/releases/tag/v0.4.0) - 28 Sep 2024
+
+## What's Changed
+* feat(agents-api): Add cozo migrations for tasks schema by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/349
+* feat(agents-api): updated openapi schema for tasks spec by [@alt-glitch](https://github.com/alt-glitch) in https://github.com/julep-ai/julep/pull/350
+* Update README.md by [@ijindal1](https://github.com/ijindal1) in https://github.com/julep-ai/julep/pull/384
+* Update README.md by [@ijindal1](https://github.com/ijindal1) in https://github.com/julep-ai/julep/pull/385
+* feat(agents-api): cozo queries for tasks by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/352
+* fix(sdks/ts): Fixed bugs, updated sdk by [@alt-glitch](https://github.com/alt-glitch) in https://github.com/julep-ai/julep/pull/390
+* feat(agents-api): Toy implementation of Tasks by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/391
+* feat(agents-api): Adaptive context (via recursive summarization) by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/306
+* chore(deps-dev): bump braces from 3.0.2 to 3.0.3 in /sdks/ts in the npm_and_yarn group across 1 directory by [@dependabot](https://github.com/dependabot) in https://github.com/julep-ai/julep/pull/394
+* v/0.3.9 by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/395
+* feat(tasks): Enable all fields of ExecutionInput by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/396
+* feat(tasks): Update execution transition relation by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/397
+* fix: Handle prompt too big error by [@whiterabbit1983](https://github.com/whiterabbit1983) in https://github.com/julep-ai/julep/pull/401
+* feat(sdks/ts): Add adaptive context options to the SDK by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/404
+* feat(sdks/ts): Add runtime validations for TS SDK by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/425
+* refactor(agents-api): Rework routers to split routes into individual files by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/422
+* support for `Hermes-2-Theta-Llama-3-8B` as default OSS model by [@alt-glitch](https://github.com/alt-glitch) in https://github.com/julep-ai/julep/pull/424
+* fix: Add exception handler for litellm API error by [@whiterabbit1983](https://github.com/whiterabbit1983) in https://github.com/julep-ai/julep/pull/432
+* fix(openapi): Fix mistakes in openapi.yaml file by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/434
+* fix: Apply various small fixes to task execution logic by [@whiterabbit1983](https://github.com/whiterabbit1983) in https://github.com/julep-ai/julep/pull/436
+* Codegen for all new typespec types by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/435
+* feat(agents-api): New chat context query and model by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/437
+* feat(agents-api): Add get_transition query by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/438
+* chore: Disable all the routes except of tasks and agents by [@whiterabbit1983](https://github.com/whiterabbit1983) in https://github.com/julep-ai/julep/pull/439
+* fix(agents-api): Fix execution input query by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/440
+* f/wait for input step by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/441
+* feat(agents-api): Implement doc* models by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/442
+* Reimplement tests for queries and operations by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/443
+* feat(agents-api): Hybrid docs search by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/444
+* feat(agents-api): Add temporal workflow lookup relation and queries by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/446
+* feat: new routes for docs, users, search by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/445
+* feat(agents-api): Add litellm proxy to docker compose by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/448
+* fix(agents-api): Fixed tests for models and queries by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/449
+* creatorrr/f add missing tests by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/450
+* feat(agents-api): Add route tests by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/451
+* Add tests for docs routes by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/452
+* feat(agents-api): Preliminary implementation of session.chat by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/453
+* feat(agents-api): Make chat route tests pass by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/454
+* feat(agents-api): Add some workflow tests by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/456
+* fix(agents-api): Minor fix to tests by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/457
+* f/task tests by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/458
+* feat(agents-api): ALL TESTS PASS!! :D by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/459
+* feat: Add test for evaluate step by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/460
+* fix(agents-api): Fix typespec for foreach step and regenerate by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/461
+* fix(agents-api): Fix the typespec bug and regenerate by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/462
+* x/fix codec by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/463
+* feat(agents-api): Add YAML support by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/464
+* refactor(agents-api): Minor refactors to typespec types by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/465
+* fix(agents-api): Fix map reduce step and activity by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/466
+* fix(agents-api): Make the sample work by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/467
+* Dev tasks by [@whiterabbit1983](https://github.com/whiterabbit1983) in https://github.com/julep-ai/julep/pull/447
+* fix: Build cozo-bin docker image directly from cozo repo by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/469
+* feat(memory-store): Add backup cronjob by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/470
+* fix: Fix deployment docker compose and move temporal into separate service by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/471
+* fix(agents-api): Fix prompt step by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/472
+* fix(agents-api): Fix task execution logic by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/473
+* Fix create agent tool by [@HamadaSalhab](https://github.com/HamadaSalhab) in https://github.com/julep-ai/julep/pull/474
+* fix(agents-api): Fix bug in task-execution workflow and uuid-int-list-to-str fn by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/476
+* fix(agents-api): Fix prompt render, codec and task execution by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/478
+* fix(agents-api): Fix more render issues, execution logic by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/479
+* x/fix task execution by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/482
+* text-embeddings-inference-cpu temp fix for Apple Silicon CPUs by [@HamadaSalhab](https://github.com/HamadaSalhab) in https://github.com/julep-ai/julep/pull/480
+* fix(agents-api): Fix task execution logical errors by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/483
+* feat(agents-api): Transitions stream SSE endpoint by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/485
+* feat(agents-api): Set/get steps based on workflow state by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/484
+* Scrum 22 [FIX] agents api list agent tools is returning an empty list by [@HamadaSalhab](https://github.com/HamadaSalhab) in https://github.com/julep-ai/julep/pull/487
+* fix(agents-api,typespec): Fix chat/entry typespec models to include tool_calls by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/489
+* fix: Change log-step to a jinja template rather than a simpleeval expression by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/488
+* feat(agents-api): Add parallelism option to map-reduce step by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/490
+* fix: Fix import by [@whiterabbit1983](https://github.com/whiterabbit1983) in https://github.com/julep-ai/julep/pull/494
+* misc fixes by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/495
+* build(deps): Bump the npm_and_yarn group across 2 directories with 2 updates by [@dependabot](https://github.com/dependabot) in https://github.com/julep-ai/julep/pull/493
+* hotfix: Apply a temp hotfix for sessions.chat by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/497
+* hotfix(agents-api): Fix session.situation not being rendered by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/499
+* feat: Add agent tools to completion data before sending to litellm in prompt by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/498
+* dev -> main by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/502
+* fix(agents-api): fix create_agent and create_or_update_agent query by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/503
+* fix(llm-proxy): Update docker image to main-v1.46.2 by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/504
+* Add custom api key support to chat endpoint by [@HamadaSalhab](https://github.com/HamadaSalhab) in https://github.com/julep-ai/julep/pull/507
+* fix(agents-api): Fix doc recall using search by text by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/506
+* docs: update api.md by [@eltociear](https://github.com/eltociear) in https://github.com/julep-ai/julep/pull/508
+* fix: Get PostgreSQL settings via env vars by [@whiterabbit1983](https://github.com/whiterabbit1983) in https://github.com/julep-ai/julep/pull/509
+* main <- dev by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/511
+* Vertex AI client by [@whiterabbit1983](https://github.com/whiterabbit1983) in https://github.com/julep-ai/julep/pull/510
+* fix: Retry worker on runtime errors by [@whiterabbit1983](https://github.com/whiterabbit1983) in https://github.com/julep-ai/julep/pull/512
+* dev -> main by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/514
+* Implement ToolCallStep & Fix transition after PromptStep by [@HamadaSalhab](https://github.com/HamadaSalhab) in https://github.com/julep-ai/julep/pull/513
+* doc: Update README.md with announcement update by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/517
+* feat: Add basic support for integration tools to ToolStep by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/519
+* feat(integration-service): Add integrations service by [@HamadaSalhab](https://github.com/HamadaSalhab) in https://github.com/julep-ai/julep/pull/520
+* feat(agents-api,integrations): Working integrations for tool-call step by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/521
+* fix(agents-api): Fix wait for input step by [@HamadaSalhab](https://github.com/HamadaSalhab) in https://github.com/julep-ai/julep/pull/522
+* feat(agents-api): Add support for reading setup args from metadata and Upgrade to python 3.12 by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/525
+* feat: Add docker bake builder by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/528
+* fix: Minor fix to docker bake github actions by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/529
+* feat: Add changelog from release notes by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/530
+
+## New Contributors
+* [@ijindal1](https://github.com/ijindal1) made their first contribution in https://github.com/julep-ai/julep/pull/384
+* [@HamadaSalhab](https://github.com/HamadaSalhab) made their first contribution in https://github.com/julep-ai/julep/pull/474
+* [@eltociear](https://github.com/eltociear) made their first contribution in https://github.com/julep-ai/julep/pull/508
+
+**Full Changelog**: https://github.com/julep-ai/julep/compare/v0.3.4...v0.4.0
+
+[Changes][v0.4.0]
+
+
+
+# [v0.3.4](https://github.com/julep-ai/julep/releases/tag/v0.3.4) - 31 May 2024
+
+## What's Changed
+* feat: Implement filtering by metadata by [@whiterabbit1983](https://github.com/whiterabbit1983) in https://github.com/julep-ai/julep/pull/337
+* session.chat working without specifying user by [@alt-glitch](https://github.com/alt-glitch) in https://github.com/julep-ai/julep/pull/338
+* feat: Cache generated responses by [@whiterabbit1983](https://github.com/whiterabbit1983) in https://github.com/julep-ai/julep/pull/336
+* Add docs-text-embeddings-inference service to deploy/docker-compose.yml by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/339
+* add missing ports and volumes in deploy/docker-compose by [@alt-glitch](https://github.com/alt-glitch) in https://github.com/julep-ai/julep/pull/341
+* feat: Add launching entry point by [@whiterabbit1983](https://github.com/whiterabbit1983) in https://github.com/julep-ai/julep/pull/334
+* feat: Add an explicit platform declaration to the services in deploy/docker-compose.yml by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/342
+* [wip] feat(agents-api,sdks): multimodal support by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/343
+* fix(sdks/ts): Fix codegen issue by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/374
+* Version 0.3.4 by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/375
+* fix: Convert messages content to JSON by [@whiterabbit1983](https://github.com/whiterabbit1983) in https://github.com/julep-ai/julep/pull/376
+* fix: Convert IDs to UUID before passing to query executing functions by [@whiterabbit1983](https://github.com/whiterabbit1983) in https://github.com/julep-ai/julep/pull/377
+* fix(agents-api): fix fn calling and local deployment by [@alt-glitch](https://github.com/alt-glitch) in https://github.com/julep-ai/julep/pull/378
+* feat: Improve typehints by [@whiterabbit1983](https://github.com/whiterabbit1983) in https://github.com/julep-ai/julep/pull/379
+
+
+**Full Changelog**: https://github.com/julep-ai/julep/compare/v0.3.3...v0.3.4
+
+[Changes][v0.3.4]
+
+
+
+# [v0.3.3](https://github.com/julep-ai/julep/releases/tag/v0.3.3) - 17 May 2024
+
+## What's Changed
+* fix: Add summarizer source type to the query by [@whiterabbit1983](https://github.com/whiterabbit1983) in https://github.com/julep-ai/julep/pull/301
+* fix: Get summarization model form env var and create a corresponsing … by [@whiterabbit1983](https://github.com/whiterabbit1983) in https://github.com/julep-ai/julep/pull/302
+* feat: Make docs content be splited by users by [@whiterabbit1983](https://github.com/whiterabbit1983) in https://github.com/julep-ai/julep/pull/303
+* feat: litellm for multiple model support by [@alt-glitch](https://github.com/alt-glitch) in https://github.com/julep-ai/julep/pull/304
+* use VALID_MODELS to support JULEP_MODELS by [@alt-glitch](https://github.com/alt-glitch) in https://github.com/julep-ai/julep/pull/308
+* Agent creation fixes by [@whiterabbit1983](https://github.com/whiterabbit1983) in https://github.com/julep-ai/julep/pull/309
+* feat: Add new agents docs embbeddings functionality by [@whiterabbit1983](https://github.com/whiterabbit1983) in https://github.com/julep-ai/julep/pull/305
+* Fix docs search by [@whiterabbit1983](https://github.com/whiterabbit1983) in https://github.com/julep-ai/julep/pull/311
+* Make embeddings asynchronous using temporal by [@whiterabbit1983](https://github.com/whiterabbit1983) in https://github.com/julep-ai/julep/pull/332
+* feat: Add doc IDs to the session chat response by [@whiterabbit1983](https://github.com/whiterabbit1983) in https://github.com/julep-ai/julep/pull/331
+* chore: Update SDKs by [@whiterabbit1983](https://github.com/whiterabbit1983) in https://github.com/julep-ai/julep/pull/333
+
+
+**Full Changelog**: https://github.com/julep-ai/julep/compare/v0.3.2...v0.3.3
+
+[Changes][v0.3.3]
+
+
+
+# [v0.3.2](https://github.com/julep-ai/julep/releases/tag/v0.3.2) - 27 Apr 2024
+
+- Initial github release
+
+## What's Changed
+* fix(python-sdk): temporarily remove async types by [@philipbalbas](https://github.com/philipbalbas) in https://github.com/julep-ai/julep/pull/196
+* fix: Set empty string as a default value for function description by [@whiterabbit1983](https://github.com/whiterabbit1983) in https://github.com/julep-ai/julep/pull/195
+* feat: exception handling for api keys and models by [@alt-glitch](https://github.com/alt-glitch) in https://github.com/julep-ai/julep/pull/197
+* feat: Create and push docker images to hub by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/198
+* fix: Sessions update by [@whiterabbit1983](https://github.com/whiterabbit1983) in https://github.com/julep-ai/julep/pull/201
+* fix: Sessions update by [@whiterabbit1983](https://github.com/whiterabbit1983) in https://github.com/julep-ai/julep/pull/202
+* feat(sdk): update tools by [@philipbalbas](https://github.com/philipbalbas) in https://github.com/julep-ai/julep/pull/206
+* fix: Merge agent and user metadata by [@whiterabbit1983](https://github.com/whiterabbit1983) in https://github.com/julep-ai/julep/pull/204
+* fix: Display agent instructions by [@whiterabbit1983](https://github.com/whiterabbit1983) in https://github.com/julep-ai/julep/pull/205
+* fix: Disable model-serving by default by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/207
+* fix: patch fix for function calling by [@alt-glitch](https://github.com/alt-glitch) in https://github.com/julep-ai/julep/pull/203
+* remove model surgery notebooks by [@alt-glitch](https://github.com/alt-glitch) in https://github.com/julep-ai/julep/pull/208
+* feat: Create github action changelog-ci.yml by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/209
+* Sweep: Add a detailed README.md in the memory-store/ directory by [@sweep-ai](https://github.com/sweep-ai) in https://github.com/julep-ai/julep/pull/214
+* fix: Display agent instructions by [@whiterabbit1983](https://github.com/whiterabbit1983) in https://github.com/julep-ai/julep/pull/216
+* Sweep: Add a detailed README.md in the examples/ directory by [@sweep-ai](https://github.com/sweep-ai) in https://github.com/julep-ai/julep/pull/215
+* fix: Set metadata to an empty dict by default by [@whiterabbit1983](https://github.com/whiterabbit1983) in https://github.com/julep-ai/julep/pull/217
+* Sweep: Update the docstrings and comments in sdks/ts/src/env.ts to fix any issues and mismatch between the comment and associated code by [@sweep-ai](https://github.com/sweep-ai) in https://github.com/julep-ai/julep/pull/235
+* Sweep: Update the docstrings and comments in sdks/ts/src/managers/memory.ts to fix any issues and mismatch between the comment and associated code by [@sweep-ai](https://github.com/sweep-ai) in https://github.com/julep-ai/julep/pull/236
+* Sweep: Update the docstrings and comments in sdks/ts/src/utils/invariant.ts to fix any issues and mismatch between the comment and associated code by [@sweep-ai](https://github.com/sweep-ai) in https://github.com/julep-ai/julep/pull/237
+* Sweep: Update the docstrings and comments in sdks/ts/src/managers/agent.ts to fix any issues and mismatch between the comment and associated code by [@sweep-ai](https://github.com/sweep-ai) in https://github.com/julep-ai/julep/pull/238
+* Sweep: Update the docstrings and comments in sdks/ts/src/managers/tool.ts to fix any issues and mismatch between the comment and associated code by [@sweep-ai](https://github.com/sweep-ai) in https://github.com/julep-ai/julep/pull/239
+* Sweep: Update the docstrings and comments in sdks/ts/src/utils/isValidUuid4.ts to fix any issues and mismatch between the comment and associated code by [@sweep-ai](https://github.com/sweep-ai) in https://github.com/julep-ai/julep/pull/240
+* Sweep: Update the docstrings and comments in sdks/ts/src/client.ts to fix any issues and mismatch between the comment and associated code by [@sweep-ai](https://github.com/sweep-ai) in https://github.com/julep-ai/julep/pull/241
+* Sweep: Update the docstrings and comments in sdks/ts/src/utils/requestConstructor.ts to fix any issues and mismatch between the comment and associated code by [@sweep-ai](https://github.com/sweep-ai) in https://github.com/julep-ai/julep/pull/242
+* Sweep: Update the docstrings and comments in sdks/ts/src/managers/base.ts to fix any issues and mismatch between the comment and associated code by [@sweep-ai](https://github.com/sweep-ai) in https://github.com/julep-ai/julep/pull/243
+* Sweep: Update the docstrings and comments in sdks/ts/src/managers/user.ts to fix any issues and mismatch between the comment and associated code by [@sweep-ai](https://github.com/sweep-ai) in https://github.com/julep-ai/julep/pull/244
+* Sweep: Update the docstrings and comments in sdks/ts/src/managers/session.ts to fix any issues and mismatch between the comment and associated code by [@sweep-ai](https://github.com/sweep-ai) in https://github.com/julep-ai/julep/pull/245
+* Sweep: Update the docstrings and comments in sdks/ts/src/utils/openaiPatch.ts to fix any issues and mismatch between the comment and associated code by [@sweep-ai](https://github.com/sweep-ai) in https://github.com/julep-ai/julep/pull/246
+* Sweep: Update the docstrings and comments in sdks/ts/src/managers/doc.ts to fix any issues and mismatch between the comment and associated code by [@sweep-ai](https://github.com/sweep-ai) in https://github.com/julep-ai/julep/pull/247
+* doc(sdks/ts): Generate documentation for the typescript SDK by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/248
+* Sweep: Update the docstrings and comments in sdks/python/julep/env.py to fix any issues and mismatch between the comments present and surrounding code by [@sweep-ai](https://github.com/sweep-ai) in https://github.com/julep-ai/julep/pull/262
+* Sweep: Update the docstrings and comments in sdks/python/julep/managers/memory.py to fix any issues and mismatch between the comments present and surrounding code by [@sweep-ai](https://github.com/sweep-ai) in https://github.com/julep-ai/julep/pull/271
+* Sweep: Update the docstrings and comments in sdks/python/julep/utils/openai_patch.py to fix any issues and mismatch between the comments present and surrounding code by [@sweep-ai](https://github.com/sweep-ai) in https://github.com/julep-ai/julep/pull/270
+* Sweep: Update the docstrings and comments in sdks/python/julep/managers/base.py to fix any issues and mismatch between the comments present and surrounding code by [@sweep-ai](https://github.com/sweep-ai) in https://github.com/julep-ai/julep/pull/263
+* Sweep: Update the docstrings and comments in sdks/python/julep/managers/types.py to fix any issues and mismatch between the comments present and surrounding code by [@sweep-ai](https://github.com/sweep-ai) in https://github.com/julep-ai/julep/pull/269
+* Sweep: Update the docstrings and comments in sdks/python/julep/managers/utils.py to fix any issues and mismatch between the comments present and surrounding code by [@sweep-ai](https://github.com/sweep-ai) in https://github.com/julep-ai/julep/pull/268
+* Sweep: Update the docstrings and comments in sdks/python/julep/managers/tool.py to fix any issues and mismatch between the comments present and surrounding code by [@sweep-ai](https://github.com/sweep-ai) in https://github.com/julep-ai/julep/pull/267
+* Sweep: Update the docstrings and comments in sdks/python/julep/managers/doc.py to fix any issues and mismatch between the comments present and surrounding code by [@sweep-ai](https://github.com/sweep-ai) in https://github.com/julep-ai/julep/pull/266
+* Sweep: Update the docstrings and comments in sdks/python/julep/managers/session.py to fix any issues and mismatch between the comments present and surrounding code by [@sweep-ai](https://github.com/sweep-ai) in https://github.com/julep-ai/julep/pull/265
+* Sweep: Update the docstrings and comments in sdks/python/julep/managers/agent.py to fix any issues and mismatch between the comments present and surrounding code by [@sweep-ai](https://github.com/sweep-ai) in https://github.com/julep-ai/julep/pull/264
+* refactor(agents-api): Add decorator to wrap cozo queries inside and execute by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/273
+* feat: update python sdk docs by [@philipbalbas](https://github.com/philipbalbas) in https://github.com/julep-ai/julep/pull/272
+* fix: Set default values for function description and parameters by [@whiterabbit1983](https://github.com/whiterabbit1983) in https://github.com/julep-ai/julep/pull/274
+* feat(openapi): Update spec to include role=function + render_templates by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/276
+* docs: update SUMMARY.md by [@philipbalbas](https://github.com/philipbalbas) in https://github.com/julep-ai/julep/pull/281
+* chore(deps): bump fastapi from 0.109.2 to 0.110.1 in /agents-api in the pip group across 1 directory by [@dependabot](https://github.com/dependabot) in https://github.com/julep-ai/julep/pull/280
+* chore(deps): bump idna from 3.6 to 3.7 in /memory-store/backup by [@dependabot](https://github.com/dependabot) in https://github.com/julep-ai/julep/pull/278
+* chore(deps): bump follow-redirects from 1.15.5 to 1.15.6 in /sdks/ts by [@dependabot](https://github.com/dependabot) in https://github.com/julep-ai/julep/pull/277
+* F/update julep docs by [@philipbalbas](https://github.com/philipbalbas) in https://github.com/julep-ai/julep/pull/282
+* fix: Fix queries calls by [@whiterabbit1983](https://github.com/whiterabbit1983) in https://github.com/julep-ai/julep/pull/283
+* Sweep: Create CONTRIBUTING.md based on README.md in the root / directory by [@sweep-ai](https://github.com/sweep-ai) in https://github.com/julep-ai/julep/pull/285
+* feat: added docker-compose.yml and .env.example for self-hosting by [@alt-glitch](https://github.com/alt-glitch) in https://github.com/julep-ai/julep/pull/286
+* fix: Set default value for user's about text by [@whiterabbit1983](https://github.com/whiterabbit1983) in https://github.com/julep-ai/julep/pull/287
+* fix: Update sessions with given IDs only by [@whiterabbit1983](https://github.com/whiterabbit1983) in https://github.com/julep-ai/julep/pull/290
+* F/readme update by [@alt-glitch](https://github.com/alt-glitch) in https://github.com/julep-ai/julep/pull/291
+* feat: Truncate messages by [@whiterabbit1983](https://github.com/whiterabbit1983) in https://github.com/julep-ai/julep/pull/294
+* x/fix python sdk by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/296
+* feat(agents-api): Allow single instructions str for agents by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/297
+* fix: Session.user_id should be optional by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/298
+* feat(agents-api): Add jinja templates support by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/300
+
+## New Contributors
+* [@dependabot](https://github.com/dependabot) made their first contribution in https://github.com/julep-ai/julep/pull/280
+
+**Full Changelog**: https://github.com/julep-ai/julep/commits/v0.3.2
+
+[Changes][v0.3.2]
+
+
+
+# [v0.3.0](https://github.com/julep-ai/julep/releases/tag/v0.3.0) - 27 Apr 2024
+
+
+
+[Changes][v0.3.0]
+
+
+
+# [v0.2.12](https://github.com/julep-ai/julep/releases/tag/v0.2.12) - 27 Apr 2024
+
+
+
+[Changes][v0.2.12]
+
+
+[v1.0.0-alpha1]: https://github.com/julep-ai/julep/compare/v0.4.1...v1.0.0-alpha1
+[v0.4.1]: https://github.com/julep-ai/julep/compare/v0.4.0...v0.4.1
+[v0.4.0]: https://github.com/julep-ai/julep/compare/v0.3.4...v0.4.0
+[v0.3.4]: https://github.com/julep-ai/julep/compare/v0.3.3...v0.3.4
+[v0.3.3]: https://github.com/julep-ai/julep/compare/v0.3.2...v0.3.3
+[v0.3.2]: https://github.com/julep-ai/julep/compare/v0.3.0...v0.3.2
+[v0.3.0]: https://github.com/julep-ai/julep/compare/v0.2.12...v0.3.0
+[v0.2.12]: https://github.com/julep-ai/julep/tree/v0.2.12
+
+
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 7081a266d..a7cda8b06 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -22,6 +22,115 @@ To contribute code changes:
Please ensure your code follows the existing style and passes all tests.
+## Project Overview and Architecture
+
+### Key Components
+
+1. **agents-api**: The core API service for Julep.
+2. **typespec**: API specifications and contracts.
+3. **integrations-service**: Handles external integrations.
+4. **embedding-service**: Manages text embeddings.
+5. **memory-store**: Handles persistent storage.
+6. **llm-proxy**: Proxy for language model interactions.
+7. **scheduler**: Manages task scheduling.
+8. **gateway**: API gateway and routing.
+9. **monitoring**: System monitoring and metrics.
+
+### Technology Stack
+
+- **FastAPI**: Web framework for building APIs
+- **TypeSpec**: API specification language
+- **Cozo**: Database system
+- **Temporal**: Workflow engine
+- **Docker**: Containerization
+
+### Relationships Between Components
+
+The `agents-api` serves as the central component, interacting with most other services:
+- It uses `typespec` definitions for API contracts.
+- Communicates with `integrations-service` for external tool interactions.
+- Utilizes `embedding-service` for text processing.
+- Stores data in `memory-store`.
+- Interacts with language models through `llm-proxy`.
+- Uses `scheduler` for task management.
+- All API requests pass through the `gateway`.
+- `monitoring` observes the entire system.
+
+## Understanding the Codebase
+
+To get a comprehensive understanding of Julep, we recommend exploring the codebase in the following order:
+
+1. **Project Overview**
+ - Read `README.md` in the root directory
+ - Explore `docs/` for detailed documentation
+
+2. **System Architecture**
+ - Examine `docker-compose.yml` in the root directory
+ - Review `deploy/` directory for different deployment configurations
+
+3. **API Specifications**
+ - Learn about TypeSpec: https://typespec.io/docs/
+ - Explore `typespec/` directory:
+ - Start with `common/` folder
+ - Review `main.tsp`
+ - Examine each module sequentially
+
+4. **Core API Implementation**
+ - Learn about FastAPI: https://fastapi.tiangolo.com/
+ - Explore `agents-api/` directory:
+ - Review `README.md` for an overview
+ - Examine `routers/` for API endpoints
+ - Look into `models/` for data models
+
+5. **Database and Storage**
+ - Learn about Cozo: https://docs.cozodb.org/en/latest/tutorial.html
+ - Review `agents-api/README.md` for database schema
+ - Explore `agents-api/models/` for database queries
+
+6. **Workflow Management**
+ - Learn about Temporal: https://docs.temporal.io/develop/python
+ - Explore `agents-api/activities/` for individual workflow steps
+ - Review `agents-api/workflows/task_execution/` for main workflow logic
+
+7. **Testing**
+ - Examine `agents-api/tests/` for test cases
+
+8. **Additional Services**
+ - Explore other service directories (`integrations-service/`, `embedding-service/`, etc.) to understand their specific roles and implementations
+
+## Contributing Guidelines
+
+1. **Set Up Development Environment**
+ - Clone the repository
+ - Install Docker and Docker Compose
+ - Set up necessary API keys and environment variables
+
+2. **Choose an Area to Contribute**
+ - Check the issue tracker for open issues
+ - Look for "good first issue" labels for newcomers
+
+3. **Make Changes**
+ - Create a new branch for your changes
+ - Write clean, well-documented code
+ - Ensure your changes adhere to the project's coding standards
+
+4. **Test Your Changes**
+ - Run existing tests
+ - Add new tests for new functionality
+ - Ensure all tests pass before submitting your changes
+
+5. **Submit a Pull Request**
+ - Provide a clear description of your changes
+ - Reference any related issues
+ - Be prepared to respond to feedback and make adjustments
+
+6. **Code Review**
+ - Address any comments or suggestions from reviewers
+ - Make necessary changes and push updates to your branch
+
+7. **Merge**
+ - Once approved, your changes will be merged into the main branch
+
### Documentation Improvements
Improvements to documentation are always appreciated! If you see areas that could be clarified or expanded, feel free to make the changes and submit a pull request.
@@ -30,4 +139,75 @@ Improvements to documentation are always appreciated! If you see areas that coul
We'd love to hear your feedback and ideas for the project! Feel free to submit an issue or contact the maintainers directly to share your thoughts. Your input is very valuable in shaping the future direction of the project.
-Thank you for your interest in contributing to this project!
\ No newline at end of file
+### Setup Instructions
+
+##### 1. Clone the Repository
+Clone the repository from your preferred source:
+
+```bash
+git clone
+```
+
+##### 2. Navigate to the Root Directory
+Change to the root directory of the project:
+
+```bash
+cd
+```
+
+##### 3. Set Up Environment Variables
+- Create a `.env` file in the root directory.
+- Refer to the `.env.example` file for a list of required variables.
+- Ensure that all necessary variables are set in the `.env` file.
+
+##### 4. Create a Docker Volume for Backup
+Create a Docker volume named `cozo_backup`:
+
+```bash
+docker volume create cozo_backup
+```
+
+##### 5. Run the Project using Docker Compose
+You can run the project in two different modes: **Single Tenant** or **Multi-Tenant**. Choose one of the following commands based on your requirement:
+
+###### Single-Tenant Mode
+Run the project in single-tenant mode:
+
+```bash
+docker compose --env-file .env --profile temporal-ui --profile single-tenant --profile embedding-cpu --profile self-hosted-db up --force-recreate --build --watch
+```
+
+> **Note:** In single-tenant mode, you can interact with the SDK directly without the need for the API KEY.
+
+###### Multi-Tenant Mode
+Run the project in multi-tenant mode:
+
+```bash
+docker compose --env-file .env --profile temporal-ui --profile multi-tenant --profile embedding-cpu --profile self-hosted-db up --force-recreate --build --watch
+```
+
+> **Note:** In multi-tenant mode, you need to generate a JWT token locally that act as an API KEY to interact with the SDK.
+
+##### 6. Generate a JWT Token (Only for Multi-Tenant Mode)
+
+To generate a JWT token, `jwt-cli` is required. Kindly install the same before proceeding with the next steps.
+
+Use the following command and replace `JWT_SHARED_KEY` with the corresponding key from your `.env` file to generate a JWT token:
+
+```bash
+jwt encode --secret JWT_SHARED_KEY --alg HS512 --exp=$(date -j -v +10d +%s) --sub '00000000-0000-0000-0000-000000000000' '{}'
+```
+
+This command generates a JWT token that will be valid for 10 days.
+
+##### 7. Access and Interact
+- **Temporal UI**: You can access the Temporal UI through the specified port in your `.env` file.
+- **API Interactions**: Depending on the chosen mode, interact with the setup using the provided endpoints.
+
+##### Troubleshooting
+- Ensure that all required Docker images are available.
+- Check for missing environment variables in the `.env` file.
+- Use the `docker compose logs` command to view detailed logs for debugging.
+
+
+Remember, contributions aren't limited to code. Documentation improvements, bug reports, and feature suggestions are also valuable contributions to the project.
diff --git a/IDEAS.md b/IDEAS.md
new file mode 100644
index 000000000..83d6d58d4
--- /dev/null
+++ b/IDEAS.md
@@ -0,0 +1,1377 @@
+# Expanded Implementation Scenarios for Julep
+
+Below are detailed implementation plans for each of the 50 scenarios using Julep's **docs**, **sessions**, **tasks**, and **executions** features. Each scenario includes a complexity rating from **1 (easiest)** to **5 (most complex)**.
+
+---
+
+### 1. Automated Customer Support Agent
+
+**Implementation Using Julep:**
+
+- **Docs:**
+ - Store customer data, FAQs, and troubleshooting guides.
+ - Integrate CRM documentation for accessing and updating customer information.
+
+- **Sessions:**
+ - Create a persistent session for each customer to maintain conversation context.
+ - Track interaction history to personalize support.
+
+- **Tasks:**
+ - Define tasks for handling common inquiries (e.g., order status, billing issues).
+ - Implement escalation tasks for complex issues that require human intervention.
+ - Automate ticket creation and update processes.
+
+- **Executions:**
+ - Execute tasks based on customer inputs.
+ - Monitor task executions to ensure timely responses and issue resolutions.
+
+**Complexity Rating:** ★★★★☆
+
+**Explanation:** Involves integrating with external CRM systems, handling diverse query types, and maintaining contextual sessions, which increases complexity.
+
+---
+
+### 2. Smart Research Assistant
+
+**Implementation Using Julep:**
+
+- **Docs:**
+ - Store access to academic databases and research papers.
+ - Include summarization templates and research methodologies.
+
+- **Sessions:**
+ - Manage user-specific research sessions to track ongoing projects and queries.
+ - Maintain context for multi-step research tasks.
+
+- **Tasks:**
+ - Create tasks for searching databases, summarizing articles, and compiling reports.
+ - Implement conditional steps based on research findings.
+
+- **Executions:**
+ - Execute research tasks sequentially or in parallel.
+ - Stream execution results to provide real-time updates to the user.
+
+**Complexity Rating:** ★★★★☆
+
+**Explanation:** Requires integration with academic databases, advanced summarization capabilities, and managing complex multi-step workflows.
+
+---
+
+### 3. Personal Finance Manager
+
+**Implementation Using Julep:**
+
+- **Docs:**
+ - Store user financial data, budgeting templates, and investment information.
+ - Integrate banking API documentation for transaction fetching.
+
+- **Sessions:**
+ - Create persistent sessions to track user financial activities over time.
+ - Maintain context for budgeting goals and financial plans.
+
+- **Tasks:**
+ - Define tasks for expense tracking, budget creation, and investment monitoring.
+ - Automate alerts for budget limits and investment opportunities.
+
+- **Executions:**
+ - Execute financial tasks based on user interactions and predefined schedules.
+ - Monitor executions to provide real-time financial advice and updates.
+
+**Complexity Rating:** ★★★☆☆
+
+**Explanation:** Needs secure integration with banking APIs, real-time data processing, and robust budgeting logic.
+
+---
+
+### 4. Content Creation Workflow
+
+**Implementation Using Julep:**
+
+- **Docs:**
+ - Store SEO guidelines, content templates, and style guides.
+ - Include access to keyword research tools.
+
+- **Sessions:**
+ - Manage content creation sessions to track progress and drafts.
+ - Maintain context for ongoing content projects.
+
+- **Tasks:**
+ - Create multi-step tasks for topic ideation, content drafting, SEO optimization, and scheduling.
+ - Integrate tools for grammar checking and SEO analysis.
+
+- **Executions:**
+ - Automate the execution of content creation tasks.
+ - Schedule publishing according to editorial calendars.
+
+**Complexity Rating:** ★★★☆☆
+
+**Explanation:** Involves coordinating multiple tools and steps but remains manageable with clear task definitions.
+
+---
+
+### 5. E-commerce Order Processing System
+
+**Implementation Using Julep:**
+
+- **Docs:**
+ - Store product catalogs, inventory data, and order processing guidelines.
+ - Integrate with shipping provider APIs.
+
+- **Sessions:**
+ - Create sessions for each order to track its lifecycle.
+ - Maintain context for customer preferences and order history.
+
+- **Tasks:**
+ - Define tasks for order validation, inventory updates, payment processing, and shipment tracking.
+ - Automate customer notifications at each stage.
+
+- **Executions:**
+ - Execute order processing tasks in sequence.
+ - Monitor executions to handle exceptions like payment failures or inventory shortages.
+
+**Complexity Rating:** ★★★★☆
+
+**Explanation:** Requires robust integrations with payment gateways, inventory systems, and shipping providers, along with handling various order states.
+
+---
+
+### 6. AI-Powered Personal Trainer
+
+**Implementation Using Julep:**
+
+- **Docs:**
+ - Store workout routines, nutritional plans, and progress tracking templates.
+ - Include integration details for fitness tracking APIs.
+
+- **Sessions:**
+ - Create individual sessions for each user to track their fitness journey.
+ - Maintain context for user goals and progress.
+
+- **Tasks:**
+ - Define tasks for generating personalized workout plans, tracking progress, and adjusting routines.
+ - Automate reminders and motivational messages.
+
+- **Executions:**
+ - Execute fitness tasks based on user inputs and scheduled routines.
+ - Monitor executions to provide real-time feedback and adjustments.
+
+**Complexity Rating:** ★★★☆☆
+
+**Explanation:** Involves personalization and integration with fitness data sources, but achievable with well-defined task workflows.
+
+---
+
+### 7. Automated Email Marketing Campaigns
+
+**Implementation Using Julep:**
+
+- **Docs:**
+ - Store email templates, segmentation criteria, and campaign schedules.
+ - Integrate with email marketing platforms (e.g., SendGrid, Mailchimp).
+
+- **Sessions:**
+ - Manage campaign-specific sessions to track interactions and responses.
+ - Maintain context for ongoing and past campaigns.
+
+- **Tasks:**
+ - Create tasks for email creation, scheduling, sending, and performance analysis.
+ - Automate A/B testing and content personalization.
+
+- **Executions:**
+ - Execute email campaigns based on predefined schedules and triggers.
+ - Monitor execution performance and adjust strategies accordingly.
+
+**Complexity Rating:** ★★★☆☆
+
+**Explanation:** Requires integration with email platforms and managing dynamic content delivery, but is straightforward with clear task definitions.
+
+---
+
+### 8. Intelligent Recruitment Assistant
+
+**Implementation Using Julep:**
+
+- **Docs:**
+ - Store job descriptions, candidate profiles, and evaluation criteria.
+ - Integrate with HR systems and job boards.
+
+- **Sessions:**
+ - Create sessions for each recruitment process to track candidate interactions.
+ - Maintain context for candidate status and feedback.
+
+- **Tasks:**
+ - Define tasks for resume screening, interview scheduling, and candidate communications.
+ - Automate feedback collection and report generation.
+
+- **Executions:**
+ - Execute recruitment tasks based on candidate actions and application stages.
+ - Monitor executions to ensure timely processing and compliance.
+
+**Complexity Rating:** ★★★★★
+
+**Explanation:** Involves complex integrations with HR systems, handling diverse candidate data, and ensuring compliance with recruitment processes.
+
+---
+
+### 9. Smart Home Automation Controller
+
+**Implementation Using Julep:**
+
+- **Docs:**
+ - Store device configurations, automation rules, and user preferences.
+ - Integrate with smart home device APIs (e.g., Philips Hue, Nest).
+
+- **Sessions:**
+ - Manage user-specific sessions to track home automation settings.
+ - Maintain context for user routines and preferences.
+
+- **Tasks:**
+ - Create tasks for device control, routine scheduling, and energy monitoring.
+ - Automate actions based on triggers like time, occupancy, or environmental changes.
+
+- **Executions:**
+ - Execute home automation tasks in real-time or based on schedules.
+ - Monitor executions to ensure devices respond correctly and adjust settings as needed.
+
+**Complexity Rating:** ★★★★☆
+
+**Explanation:** Requires integration with multiple smart devices and managing dynamic automation rules, increasing system complexity.
+
+---
+
+### 10. Automated Legal Document Analyzer
+
+**Implementation Using Julep:**
+
+- **Docs:**
+ - Store legal templates, compliance guidelines, and case studies.
+ - Integrate with legal databases and document repositories.
+
+- **Sessions:**
+ - Create sessions for each document analysis to track progress and findings.
+ - Maintain context for specific legal requirements and clauses.
+
+- **Tasks:**
+ - Define tasks for document ingestion, key information extraction, compliance checking, and summarization.
+ - Automate flagging of non-compliant sections and suggest necessary amendments.
+
+- **Executions:**
+ - Execute document analysis tasks sequentially or in parallel.
+ - Monitor executions to ensure accuracy and compliance with legal standards.
+
+**Complexity Rating:** ★★★★★
+
+**Explanation:** Involves advanced natural language processing, integration with legal databases, and ensuring compliance with intricate legal standards.
+
+---
+
+### 11. Personalized Learning Assistant
+
+**Implementation Using Julep:**
+
+- **Docs:**
+ - Store educational content, learning paths, and assessment criteria.
+ - Integrate with educational platforms and resources.
+
+- **Sessions:**
+ - Create individual learning sessions to track user progress and preferences.
+ - Maintain context for personalized learning paths and goals.
+
+- **Tasks:**
+ - Define tasks for content recommendation, quiz generation, progress tracking, and feedback provision.
+ - Automate adjustments to learning paths based on performance.
+
+- **Executions:**
+ - Execute learning tasks based on user interactions and progress.
+ - Monitor executions to provide real-time feedback and adjust learning strategies.
+
+**Complexity Rating:** ★★★★☆
+
+**Explanation:** Requires personalization algorithms, integration with educational content sources, and dynamic adaptation to user progress.
+
+---
+
+### 12. AI-Driven Social Media Manager
+
+**Implementation Using Julep:**
+
+- **Docs:**
+ - Store social media strategies, content calendars, and engagement guidelines.
+ - Integrate with social media APIs (e.g., Twitter, Facebook, LinkedIn).
+
+- **Sessions:**
+ - Manage campaign-specific sessions to track posts, engagements, and analytics.
+ - Maintain context for ongoing and scheduled campaigns.
+
+- **Tasks:**
+ - Create tasks for content creation, scheduling, posting, and performance analysis.
+ - Automate engagement responses and A/B testing of content.
+
+- **Executions:**
+ - Execute social media tasks based on schedules and real-time engagement triggers.
+ - Monitor executions to optimize performance and adjust strategies.
+
+**Complexity Rating:** ★★★★☆
+
+**Explanation:** Involves integration with multiple social media platforms, dynamic content management, and real-time engagement handling.
+
+---
+
+### 13. Automated Travel Itinerary Planner
+
+**Implementation Using Julep:**
+
+- **Docs:**
+ - Store travel guides, destination information, and booking APIs.
+ - Integrate with flight, hotel, and transportation service APIs.
+
+- **Sessions:**
+ - Create travel-specific sessions to track itinerary progress and user preferences.
+ - Maintain context for personalized travel plans and updates.
+
+- **Tasks:**
+ - Define tasks for destination research, booking accommodations and transportation, and itinerary scheduling.
+ - Automate real-time updates and notifications during trips.
+
+- **Executions:**
+ - Execute travel planning tasks based on user inputs and predefined schedules.
+ - Monitor executions to handle changes and provide timely updates.
+
+**Complexity Rating:** ★★★☆☆
+
+**Explanation:** Requires integration with travel service APIs and managing dynamic itinerary changes, which adds moderate complexity.
+
+---
+
+### 14. AI-Powered Inventory Management System
+
+**Implementation Using Julep:**
+
+- **Docs:**
+ - Store inventory data, supplier information, and reordering guidelines.
+ - Integrate with inventory tracking systems and supplier APIs.
+
+- **Sessions:**
+ - Manage inventory sessions to monitor stock levels and reorder statuses.
+ - Maintain context for inventory forecasts and demand trends.
+
+- **Tasks:**
+ - Create tasks for stock monitoring, demand forecasting, automatic reordering, and supplier communication.
+ - Automate alerts for low stock levels and order confirmations.
+
+- **Executions:**
+ - Execute inventory management tasks in real-time or based on schedules.
+ - Monitor executions to ensure accurate stock levels and timely reorders.
+
+**Complexity Rating:** ★★★★☆
+
+**Explanation:** Requires real-time inventory tracking, predictive analytics for demand forecasting, and reliable integration with supplier systems.
+
+---
+
+### 15. Intelligent Health Monitoring System
+
+**Implementation Using Julep:**
+
+- **Docs:**
+ - Store health metrics templates, medical guidelines, and user health data.
+ - Integrate with health tracking devices and APIs (e.g., Fitbit, Apple Health).
+
+- **Sessions:**
+ - Create sessions for each user to track their health metrics and progress.
+ - Maintain context for personalized health goals and alerts.
+
+- **Tasks:**
+ - Define tasks for data collection, health metric analysis, trend monitoring, and alert notifications.
+ - Automate health insights and recommendations based on data.
+
+- **Executions:**
+ - Execute health monitoring tasks continuously or at scheduled intervals.
+ - Monitor executions to provide real-time health alerts and advice.
+
+**Complexity Rating:** ★★★★☆
+
+**Explanation:** Requires integration with diverse health tracking devices, real-time data processing, and ensuring data privacy and accuracy.
+
+---
+
+### 16. Automated Content Moderation Tool
+
+**Implementation Using Julep:**
+
+- **Docs:**
+ - Store community guidelines, content policies, and moderation rules.
+ - Integrate with content platforms (e.g., forums, social media).
+
+- **Sessions:**
+ - Manage moderation sessions to track content reviews and decisions.
+ - Maintain context for specific moderation cases and user histories.
+
+- **Tasks:**
+ - Create tasks for content ingestion, automated screening, manual review, and action enforcement.
+ - Automate flagging of inappropriate content and notifying users of violations.
+
+- **Executions:**
+ - Execute content moderation tasks in real-time or batch processing.
+ - Monitor executions to ensure compliance and handle escalations.
+
+**Complexity Rating:** ★★★★★
+
+**Explanation:** Involves sophisticated content analysis, balancing automation with manual oversight, and ensuring adherence to diverse content policies.
+
+---
+
+### 17. AI-Powered Resume Builder
+
+**Implementation Using Julep:**
+
+- **Docs:**
+ - Store resume templates, industry-specific keywords, and formatting guidelines.
+ - Integrate with LinkedIn and other professional platforms for data fetching.
+
+- **Sessions:**
+ - Create user-specific sessions to track resume building progress.
+ - Maintain context for personalized content and formatting preferences.
+
+- **Tasks:**
+ - Define tasks for data collection, content suggestion, resume formatting, and final export.
+ - Automate style checks and consistency validations.
+
+- **Executions:**
+ - Execute resume building tasks based on user inputs and selections.
+ - Monitor executions to provide real-time feedback and suggestions.
+
+**Complexity Rating:** ★★★☆☆
+
+**Explanation:** Requires integration with professional data sources and implementing dynamic content generation and formatting.
+
+---
+
+### 18. Smart Event Management System
+
+**Implementation Using Julep:**
+
+- **Docs:**
+ - Store event templates, scheduling guidelines, and registration forms.
+ - Integrate with calendar and email platforms.
+
+- **Sessions:**
+ - Manage event-specific sessions to track registrations, schedules, and attendee interactions.
+ - Maintain context for event updates and follow-ups.
+
+- **Tasks:**
+ - Create tasks for event creation, attendee registration, schedule management, and post-event follow-ups.
+ - Automate reminders, notifications, and feedback collection.
+
+- **Executions:**
+ - Execute event management tasks based on schedules and attendee actions.
+ - Monitor executions to handle registrations and event logistics seamlessly.
+
+**Complexity Rating:** ★★★★☆
+
+**Explanation:** Involves coordinating multiple aspects of event planning, handling real-time registrations, and ensuring smooth execution logistics.
+
+---
+
+### 19. Automated Survey Analyzer
+
+**Implementation Using Julep:**
+
+- **Docs:**
+ - Store survey templates, question types, and analysis methodologies.
+ - Integrate with survey distribution platforms (e.g., SurveyMonkey, Google Forms).
+
+- **Sessions:**
+ - Create sessions for each survey to track responses and analysis progress.
+ - Maintain context for specific survey objectives and parameters.
+
+- **Tasks:**
+ - Define tasks for survey distribution, data collection, sentiment analysis, and report generation.
+ - Automate data visualization and trend identification.
+
+- **Executions:**
+ - Execute survey analysis tasks upon survey completion.
+ - Monitor executions to provide timely and accurate insights.
+
+**Complexity Rating:** ★★★☆☆
+
+**Explanation:** Requires integration with survey platforms and implementing effective data analysis and visualization techniques.
+
+---
+
+### 20. AI-Driven Project Management Assistant
+
+**Implementation Using Julep:**
+
+- **Docs:**
+ - Store project templates, task guidelines, and progress tracking tools.
+ - Integrate with project management platforms (e.g., Jira, Trello).
+
+- **Sessions:**
+ - Manage project-specific sessions to track tasks, milestones, and team interactions.
+ - Maintain context for project goals and progress updates.
+
+- **Tasks:**
+ - Create tasks for task breakdown, assignment, progress tracking, and status reporting.
+ - Automate notifications for deadlines and task completions.
+
+- **Executions:**
+ - Execute project management tasks based on project timelines and team inputs.
+ - Monitor executions to ensure projects stay on track and within scope.
+
+**Complexity Rating:** ★★★★☆
+
+**Explanation:** Involves integration with diverse project management tools, handling dynamic task assignments, and ensuring effective progress tracking.
+
+---
+
+### 21. Intelligent Document Summarizer
+
+**Implementation Using Julep:**
+
+- **Docs:**
+ - Store access to large documents, research papers, and reports.
+ - Include summarization algorithms and templates.
+
+- **Sessions:**
+ - Create sessions for each document summarization task.
+ - Maintain context for document sections and summarization preferences.
+
+- **Tasks:**
+ - Define tasks for document ingestion, key point extraction, and summary generation.
+ - Automate quality checks and user-specific summary adjustments.
+
+- **Executions:**
+ - Execute document summarization tasks efficiently.
+ - Monitor executions to ensure accurate and concise summaries.
+
+**Complexity Rating:** ★★★★☆
+
+**Explanation:** Requires advanced natural language processing capabilities and efficient handling of large document data.
+
+---
+
+### 22. Automated Feedback Collection and Analysis
+
+**Implementation Using Julep:**
+
+- **Docs:**
+ - Store feedback forms, analysis templates, and reporting guidelines.
+ - Integrate with feedback collection platforms (e.g., Typeform, Google Forms).
+
+- **Sessions:**
+ - Manage feedback-specific sessions to track responses and analysis progress.
+ - Maintain context for feedback sources and analysis objectives.
+
+- **Tasks:**
+ - Create tasks for feedback distribution, data collection, sentiment analysis, and insight generation.
+ - Automate categorization and prioritization of feedback.
+
+- **Executions:**
+ - Execute feedback analysis tasks promptly upon data collection.
+ - Monitor executions to provide actionable insights and improvement strategies.
+
+**Complexity Rating:** ★★★☆☆
+
+**Explanation:** Involves integrating with feedback platforms and implementing effective sentiment analysis and categorization.
+
+---
+
+### 23. AI-Powered Language Translator
+
+**Implementation Using Julep:**
+
+- **Docs:**
+ - Store language dictionaries, translation models, and formatting guidelines.
+ - Integrate with translation APIs (e.g., Google Translate, DeepL).
+
+- **Sessions:**
+ - Create translation-specific sessions to track user preferences and translation history.
+ - Maintain context for ongoing translation projects.
+
+- **Tasks:**
+ - Define tasks for text ingestion, language detection, translation processing, and quality assurance.
+ - Automate post-translation formatting and localization adjustments.
+
+- **Executions:**
+ - Execute translation tasks in real-time or batch mode.
+ - Monitor executions to ensure accuracy and contextual relevance.
+
+**Complexity Rating:** ★★★☆☆
+
+**Explanation:** Requires integration with robust translation APIs and handling nuances of different languages and contexts.
+
+---
+
+### 24. Smart Appointment Scheduler
+
+**Implementation Using Julep:**
+
+- **Docs:**
+ - Store scheduling templates, availability guidelines, and notification templates.
+ - Integrate with calendar platforms (e.g., Google Calendar, Outlook).
+
+- **Sessions:**
+ - Manage appointment-specific sessions to track scheduling progress and attendee interactions.
+ - Maintain context for user availability and preferences.
+
+- **Tasks:**
+ - Create tasks for availability checking, meeting scheduling, sending reminders, and handling cancellations.
+ - Automate conflict detection and resolution.
+
+- **Executions:**
+ - Execute scheduling tasks based on user inputs and calendar data.
+ - Monitor executions to ensure appointments are set correctly and notifications are sent.
+
+**Complexity Rating:** ★★★☆☆
+
+**Explanation:** Involves integration with calendar systems and implementing conflict resolution logic, which adds moderate complexity.
+
+---
+
+### 25. Automated Inventory Auditor
+
+**Implementation Using Julep:**
+
+- **Docs:**
+ - Store inventory audit templates, reconciliation guidelines, and reporting formats.
+ - Integrate with inventory management systems and databases.
+
+- **Sessions:**
+ - Create auditing sessions to track audit schedules and findings.
+ - Maintain context for different inventory categories and audit criteria.
+
+- **Tasks:**
+ - Define tasks for data extraction, discrepancy detection, reconciliation processes, and report generation.
+ - Automate audit scheduling and notification of audit results.
+
+- **Executions:**
+ - Execute inventory audit tasks periodically or on-demand.
+ - Monitor executions to ensure accurate and timely audits.
+
+**Complexity Rating:** ★★★★☆
+
+**Explanation:** Requires reliable data integration and robust discrepancy detection mechanisms to handle complex inventory data.
+
+---
+
+### 26. AI-Driven Competitive Analysis Tool
+
+**Implementation Using Julep:**
+
+- **Docs:**
+ - Store competitor profiles, market analysis frameworks, and data sources.
+ - Integrate with market research APIs and competitor websites.
+
+- **Sessions:**
+ - Manage competitive analysis sessions to track data collection and analysis progress.
+ - Maintain context for specific market segments and competitive factors.
+
+- **Tasks:**
+ - Create tasks for data scraping, trend analysis, SWOT analysis, and report generation.
+ - Automate the aggregation and visualization of competitive data.
+
+- **Executions:**
+ - Execute competitive analysis tasks on a scheduled basis.
+ - Monitor executions to provide up-to-date insights and strategic recommendations.
+
+**Complexity Rating:** ★★★★☆
+
+**Explanation:** Involves complex data scraping, accurate trend analysis, and maintaining up-to-date competitive insights, increasing overall complexity.
+
+---
+
+### 27. Smart Recipe Generator
+
+**Implementation Using Julep:**
+
+- **Docs:**
+ - Store ingredient databases, recipe templates, and dietary guidelines.
+ - Integrate with nutrition APIs and grocery databases.
+
+- **Sessions:**
+ - Create user-specific sessions to track dietary preferences and past recipes.
+ - Maintain context for ingredient availability and nutritional goals.
+
+- **Tasks:**
+ - Define tasks for ingredient analysis, recipe generation, nutritional calculation, and grocery list creation.
+ - Automate recipe suggestions based on user inputs and constraints.
+
+- **Executions:**
+ - Execute recipe generation tasks in real-time based on user requests.
+ - Monitor executions to ensure recipe accuracy and adherence to dietary needs.
+
+**Complexity Rating:** ★★★☆☆
+
+**Explanation:** Requires integration with nutrition and grocery APIs and implementing intelligent recipe generation logic.
+
+---
+
+### 28. Automated Video Content Creator
+
+**Implementation Using Julep:**
+
+- **Docs:**
+ - Store video script templates, editing guidelines, and publishing schedules.
+ - Integrate with video editing and hosting platforms (e.g., Adobe Premiere, YouTube).
+
+- **Sessions:**
+ - Manage video creation sessions to track script development, editing stages, and publishing.
+ - Maintain context for ongoing video projects and collaboration.
+
+- **Tasks:**
+ - Create tasks for script generation, video editing, thumbnail creation, and publishing.
+ - Automate content review and approval workflows.
+
+- **Executions:**
+ - Execute video creation tasks based on project timelines.
+ - Monitor executions to ensure timely releases and quality standards.
+
+**Complexity Rating:** ★★★★☆
+
+**Explanation:** Involves integration with multiple video tools, managing creative workflows, and ensuring high-quality content production.
+
+---
+
+### 29. AI-Powered News Aggregator
+
+**Implementation Using Julep:**
+
+- **Docs:**
+ - Store news source lists, categorization templates, and summarization guidelines.
+ - Integrate with news APIs (e.g., NewsAPI, RSS feeds).
+
+- **Sessions:**
+ - Create user-specific sessions to track news preferences and reading history.
+ - Maintain context for personalized news feeds and topics of interest.
+
+- **Tasks:**
+ - Define tasks for news scraping, categorization, summarization, and personalization.
+ - Automate feed generation and delivery based on user preferences.
+
+- **Executions:**
+ - Execute news aggregation tasks periodically.
+ - Monitor executions to ensure timely and relevant news delivery.
+
+**Complexity Rating:** ★★★☆☆
+
+**Explanation:** Requires efficient news scraping, accurate categorization, and personalized summarization, but is manageable with clear task workflows.
+
+---
+
+### 30. Intelligent Appointment Follow-Up System
+
+**Implementation Using Julep:**
+
+- **Docs:**
+ - Store follow-up templates, feedback forms, and communication guidelines.
+ - Integrate with CRM and email platforms.
+
+- **Sessions:**
+ - Manage follow-up sessions to track appointments and subsequent communications.
+ - Maintain context for previous interactions and follow-up actions.
+
+- **Tasks:**
+ - Create tasks for sending follow-up emails, collecting feedback, and scheduling future appointments.
+ - Automate reminder notifications and feedback analysis.
+
+- **Executions:**
+ - Execute follow-up tasks based on appointment completions.
+ - Monitor executions to ensure timely and effective communications.
+
+**Complexity Rating:** ★★★☆☆
+
+**Explanation:** Involves integration with CRM systems and implementing automated communication workflows, adding moderate complexity.
+
+---
+
+### 31. Automated Compliance Monitoring Tool
+
+**Implementation Using Julep:**
+
+- **Docs:**
+ - Store regulatory guidelines, compliance checklists, and reporting templates.
+ - Integrate with internal systems and regulatory databases.
+
+- **Sessions:**
+ - Create compliance-specific sessions to track monitoring activities and audit trails.
+ - Maintain context for various compliance standards and organizational policies.
+
+- **Tasks:**
+ - Define tasks for continuous monitoring, policy enforcement, and compliance reporting.
+ - Automate detection of non-compliant activities and trigger corrective actions.
+
+- **Executions:**
+ - Execute compliance monitoring tasks in real-time.
+ - Monitor executions to ensure ongoing adherence to regulations and standards.
+
+**Complexity Rating:** ★★★★★
+
+**Explanation:** Requires comprehensive integration with organizational systems, robust monitoring mechanisms, and ensuring adherence to multifaceted regulatory requirements.
+
+---
+
+### 32. AI-Powered Personal Shopper
+
+**Implementation Using Julep:**
+
+- **Docs:**
+ - Store product catalogs, user preference data, and recommendation algorithms.
+ - Integrate with e-commerce APIs (e.g., Amazon, Shopify).
+
+- **Sessions:**
+ - Manage shopping sessions to track user preferences and purchase history.
+ - Maintain context for personalized product recommendations.
+
+- **Tasks:**
+ - Create tasks for product suggestion, wishlist management, and deal notifications.
+ - Automate price comparisons and availability checks.
+
+- **Executions:**
+ - Execute personal shopping tasks based on user inputs and behavior.
+ - Monitor executions to provide timely recommendations and alerts.
+
+**Complexity Rating:** ★★★★☆
+
+**Explanation:** Involves integration with multiple e-commerce platforms, implementing personalized recommendation logic, and handling real-time deal tracking.
+
+---
+
+### 33. Smart Content Personalization Engine
+
+**Implementation Using Julep:**
+
+- **Docs:**
+ - Store content variants, personalization rules, and user segmentation data.
+ - Integrate with website CMS and analytics platforms.
+
+- **Sessions:**
+ - Create user-specific sessions to track interactions and preferences.
+ - Maintain context for personalized content delivery.
+
+- **Tasks:**
+ - Define tasks for content analysis, user behavior tracking, and personalized content delivery.
+ - Automate A/B testing and content optimization based on performance metrics.
+
+- **Executions:**
+ - Execute content personalization tasks in real-time.
+ - Monitor executions to adjust personalization strategies dynamically.
+
+**Complexity Rating:** ★★★★☆
+
+**Explanation:** Requires real-time user behavior tracking, dynamic content delivery, and continuous optimization based on analytics, increasing system complexity.
+
+---
+
+### 34. Automated Debt Collection Agent
+
+**Implementation Using Julep:**
+
+- **Docs:**
+ - Store debt agreements, payment schedules, and communication templates.
+ - Integrate with financial systems and payment gateways.
+
+- **Sessions:**
+ - Manage debt collection sessions to track debtor interactions and payment statuses.
+ - Maintain context for individual debtors and their payment histories.
+
+- **Tasks:**
+ - Create tasks for sending payment reminders, negotiating payment plans, and issuing notifications.
+ - Automate follow-ups and escalation procedures for delinquent accounts.
+
+- **Executions:**
+ - Execute debt collection tasks based on payment statuses and schedules.
+ - Monitor executions to ensure effective communication and resolution.
+
+**Complexity Rating:** ★★★★☆
+
+**Explanation:** Involves sensitive financial data handling, integration with payment systems, and implementing automated negotiation workflows.
+
+---
+
+### 35. AI-Driven Talent Matching System
+
+**Implementation Using Julep:**
+
+- **Docs:**
+ - Store job descriptions, candidate profiles, and matching criteria.
+ - Integrate with job boards and professional networking platforms.
+
+- **Sessions:**
+ - Create sessions for each matching process to track candidate-job pairings.
+ - Maintain context for specific job requirements and candidate qualifications.
+
+- **Tasks:**
+ - Define tasks for candidate screening, skills matching, and recommendation generation.
+ - Automate notifications to both candidates and employers regarding match statuses.
+
+- **Executions:**
+ - Execute talent matching tasks based on incoming job postings and candidate applications.
+ - Monitor executions to ensure accurate and timely matches.
+
+**Complexity Rating:** ★★★★★
+
+**Explanation:** Requires sophisticated matching algorithms, integration with diverse data sources, and handling dynamic job and candidate data.
+
+---
+
+### 36. Intelligent Expense Reporting Tool
+
+**Implementation Using Julep:**
+
+- **Docs:**
+ - Store expense categories, reimbursement policies, and reporting templates.
+ - Integrate with financial systems and expense tracking APIs.
+
+- **Sessions:**
+ - Manage expense reporting sessions to track submissions and approvals.
+ - Maintain context for individual employee expenses and budget limits.
+
+- **Tasks:**
+ - Create tasks for expense submission, approval workflows, and reimbursement processing.
+ - Automate validation checks and compliance with policies.
+
+- **Executions:**
+ - Execute expense reporting tasks based on submission triggers and approval workflows.
+ - Monitor executions to ensure timely reimbursements and policy adherence.
+
+**Complexity Rating:** ★★★★☆
+
+**Explanation:** Requires integration with financial systems, implementing approval workflows, and ensuring compliance with expense policies.
+
+---
+
+### 37. Automated Meeting Minutes Recorder
+
+**Implementation Using Julep:**
+
+- **Docs:**
+ - Store meeting agendas, transcription templates, and summary guidelines.
+ - Integrate with audio transcription services (e.g., Otter.ai, Google Speech-to-Text).
+
+- **Sessions:**
+ - Create meeting-specific sessions to track transcription and summarization progress.
+ - Maintain context for meeting topics and participant interactions.
+
+- **Tasks:**
+ - Define tasks for audio ingestion, transcription, summary generation, and distribution.
+ - Automate the extraction of action items and key decisions.
+
+- **Executions:**
+ - Execute transcription and summarization tasks in real-time or post-meeting.
+ - Monitor executions to ensure accurate recordings and timely distribution.
+
+**Complexity Rating:** ★★★☆☆
+
+**Explanation:** Requires reliable audio transcription integration and effective summarization techniques, but manageable with clear task definitions.
+
+---
+
+### 38. AI-Driven Content Recommendation System
+
+**Implementation Using Julep:**
+
+- **Docs:**
+ - Store user profiles, content metadata, and recommendation algorithms.
+ - Integrate with content management systems and user behavior analytics.
+
+- **Sessions:**
+ - Manage user-specific sessions to track interactions and preference changes.
+ - Maintain context for personalized content delivery.
+
+- **Tasks:**
+ - Define tasks for content analysis, user behavior tracking, and recommendation generation.
+ - Automate personalization based on real-time user interactions.
+
+- **Executions:**
+ - Execute content recommendation tasks in real-time.
+ - Monitor executions to refine recommendation accuracy and relevance.
+
+**Complexity Rating:** ★★★★☆
+
+**Explanation:** Involves real-time data processing, advanced recommendation algorithms, and integration with multiple content sources.
+
+---
+
+### 39. Smart Time Tracking Assistant
+
+**Implementation Using Julep:**
+
+- **Docs:**
+ - Store time tracking templates, productivity guidelines, and reporting formats.
+ - Integrate with productivity tools (e.g., Toggl, Clockify).
+
+- **Sessions:**
+ - Create user-specific sessions to track time spent on tasks and projects.
+ - Maintain context for task prioritization and productivity goals.
+
+- **Tasks:**
+ - Define tasks for time logging, productivity analysis, and report generation.
+ - Automate reminders for time tracking and productivity tips based on usage patterns.
+
+- **Executions:**
+ - Execute time tracking tasks continuously or based on user actions.
+ - Monitor executions to provide real-time productivity insights and suggestions.
+
+**Complexity Rating:** ★★★☆☆
+
+**Explanation:** Requires integration with time tracking tools and implementing effective productivity analysis logic.
+
+---
+
+### 40. Automated Webinar Hosting Assistant
+
+**Implementation Using Julep:**
+
+- **Docs:**
+ - Store webinar schedules, registration forms, and hosting guidelines.
+ - Integrate with webinar platforms (e.g., Zoom, WebinarJam).
+
+- **Sessions:**
+ - Manage webinar-specific sessions to track registrations, attendee interactions, and follow-ups.
+ - Maintain context for webinar topics and participant engagement.
+
+- **Tasks:**
+ - Create tasks for webinar scheduling, participant management, live interactions, and post-webinar follow-ups.
+ - Automate reminders, thank-you emails, and feedback collection.
+
+- **Executions:**
+ - Execute webinar hosting tasks based on schedules and participant actions.
+ - Monitor executions to ensure smooth webinar operations and effective follow-ups.
+
+**Complexity Rating:** ★★★★☆
+
+**Explanation:** Involves integration with webinar platforms, managing live interactions, and handling post-event processes seamlessly.
+
+---
+
+### 41. AI-Powered Inventory Forecasting Tool
+
+**Implementation Using Julep:**
+
+- **Docs:**
+ - Store sales data, forecasting models, and inventory guidelines.
+ - Integrate with sales and inventory tracking systems.
+
+- **Sessions:**
+ - Create forecasting sessions to track sales trends and inventory predictions.
+ - Maintain context for seasonal factors and market conditions affecting inventory.
+
+- **Tasks:**
+ - Define tasks for data collection, trend analysis, prediction model execution, and report generation.
+ - Automate alerts for predicted stock shortages or surpluses.
+
+- **Executions:**
+ - Execute forecasting tasks periodically based on sales data updates.
+ - Monitor executions to refine prediction accuracy and adjust inventory strategies.
+
+**Complexity Rating:** ★★★★☆
+
+**Explanation:** Requires advanced predictive analytics, integration with sales systems, and handling dynamic market conditions influencing inventory.
+
+---
+
+### 42. Smart Contract Management System
+
+**Implementation Using Julep:**
+
+- **Docs:**
+ - Store smart contract templates, execution guidelines, and compliance rules.
+ - Integrate with blockchain platforms (e.g., Ethereum, Hyperledger).
+
+- **Sessions:**
+ - Manage contract-specific sessions to track creation, execution, and monitoring.
+ - Maintain context for contract terms and participant interactions.
+
+- **Tasks:**
+ - Create tasks for contract creation, deployment, execution monitoring, and compliance checks.
+ - Automate notifications for contract milestones and compliance alerts.
+
+- **Executions:**
+ - Execute smart contract tasks based on blockchain events and predefined triggers.
+ - Monitor executions to ensure contract integrity and compliance.
+
+**Complexity Rating:** ★★★★★
+
+**Explanation:** Involves blockchain integration, ensuring smart contract security, and managing complex execution and compliance workflows.
+
+---
+
+### 43. Automated Knowledge Base Updater
+
+**Implementation Using Julep:**
+
+- **Docs:**
+ - Store knowledge base articles, update guidelines, and categorization rules.
+ - Integrate with content management systems and information sources.
+
+- **Sessions:**
+ - Create knowledge base sessions to track updates, revisions, and user queries.
+ - Maintain context for content accuracy and relevance.
+
+- **Tasks:**
+ - Define tasks for content ingestion, information extraction, categorization, and publishing.
+ - Automate periodic reviews and updates based on new information sources.
+
+- **Executions:**
+ - Execute knowledge base update tasks as new content becomes available.
+ - Monitor executions to ensure timely and accurate information updates.
+
+**Complexity Rating:** ★★★★☆
+
+**Explanation:** Requires efficient content ingestion, accurate information extraction, and seamless integration with knowledge management systems.
+
+---
+
+### 44. AI-Driven Fraud Detection System
+
+**Implementation Using Julep:**
+
+- **Docs:**
+ - Store fraud detection algorithms, monitoring guidelines, and incident response protocols.
+ - Integrate with financial transaction systems and security APIs.
+
+- **Sessions:**
+ - Manage fraud detection sessions to track suspicious activities and investigations.
+ - Maintain context for user behavior patterns and anomaly detection.
+
+- **Tasks:**
+ - Create tasks for real-time transaction monitoring, anomaly detection, incident logging, and alerting.
+ - Automate response actions like freezing accounts or notifying security teams.
+
+- **Executions:**
+ - Execute fraud detection tasks continuously based on transaction flows.
+ - Monitor executions to ensure timely detection and response to fraudulent activities.
+
+**Complexity Rating:** ★★★★★
+
+**Explanation:** Involves real-time data processing, sophisticated anomaly detection algorithms, and ensuring robust security measures.
+
+---
+
+### 45. Intelligent Personal Diary Assistant
+
+**Implementation Using Julep:**
+
+- **Docs:**
+ - Store diary templates, emotional analysis guidelines, and reflection prompts.
+ - Integrate with sentiment analysis APIs.
+
+- **Sessions:**
+ - Create user-specific sessions to track daily entries and emotional states.
+ - Maintain context for personal growth and mood trends.
+
+- **Tasks:**
+ - Define tasks for daily entry prompts, sentiment analysis, and insight generation.
+ - Automate privacy controls and data encryption for secure diary storage.
+
+- **Executions:**
+ - Execute diary assistant tasks daily based on user inputs.
+ - Monitor executions to provide personalized insights and growth tracking.
+
+**Complexity Rating:** ★★★☆☆
+
+**Explanation:** Requires integration with sentiment analysis tools and ensuring secure data handling, but manageable with well-defined workflows.
+
+---
+
+### 46. Automated Language Learning Tutor
+
+**Implementation Using Julep:**
+
+- **Docs:**
+ - Store language lessons, exercise templates, and feedback guidelines.
+ - Integrate with language processing APIs and educational resources.
+
+- **Sessions:**
+ - Manage learning sessions to track user progress and performance.
+ - Maintain context for personalized lesson plans and feedback.
+
+- **Tasks:**
+ - Create tasks for lesson delivery, exercise generation, progress tracking, and feedback provision.
+ - Automate adaptive learning paths based on user performance.
+
+- **Executions:**
+ - Execute language learning tasks based on user interactions and learning schedules.
+ - Monitor executions to adjust learning strategies and provide real-time feedback.
+
+**Complexity Rating:** ★★★★☆
+
+**Explanation:** Involves adaptive learning algorithms, integration with language processing tools, and personalized content delivery.
+
+---
+
+### 47. AI-Powered Budgeting Tool for Businesses
+
+**Implementation Using Julep:**
+
+- **Docs:**
+ - Store budgeting templates, financial guidelines, and reporting formats.
+ - Integrate with accounting systems and financial data sources.
+
+- **Sessions:**
+ - Create budgeting sessions to track financial planning and expenditure.
+ - Maintain context for organizational financial goals and constraints.
+
+- **Tasks:**
+ - Define tasks for budget creation, expenditure tracking, financial forecasting, and report generation.
+ - Automate alerts for budget overruns and financial goal assessments.
+
+- **Executions:**
+ - Execute budgeting tasks based on financial data updates and planning cycles.
+ - Monitor executions to ensure accurate financial tracking and reporting.
+
+**Complexity Rating:** ★★★★☆
+
+**Explanation:** Requires integration with accounting systems, accurate financial forecasting, and robust budgeting logic to handle business complexities.
+
+---
+
+### 48. Smart Compliance Documentation Generator
+
+**Implementation Using Julep:**
+
+- **Docs:**
+ - Store compliance templates, regulatory guidelines, and documentation standards.
+ - Integrate with regulatory databases and internal policy systems.
+
+- **Sessions:**
+ - Manage compliance documentation sessions to track document creation and updates.
+ - Maintain context for specific regulatory requirements and organizational policies.
+
+- **Tasks:**
+ - Create tasks for document generation, compliance checking, format validation, and publishing.
+ - Automate updates based on regulatory changes and policy revisions.
+
+- **Executions:**
+ - Execute compliance documentation tasks as needed or on a schedule.
+ - Monitor executions to ensure documents meet all compliance standards.
+
+**Complexity Rating:** ★★★★☆
+
+**Explanation:** Involves dynamic document generation, adherence to detailed regulatory standards, and ensuring continuous updates based on regulatory changes.
+
+---
+
+### 49. Automated Product Recommendation Engine
+
+**Implementation Using Julep:**
+
+- **Docs:**
+ - Store product catalogs, user behavior data, and recommendation algorithms.
+ - Integrate with e-commerce platforms and user analytics tools.
+
+- **Sessions:**
+ - Create user-specific sessions to track interactions and preferences.
+ - Maintain context for personalized recommendation accuracy.
+
+- **Tasks:**
+ - Define tasks for data collection, behavior analysis, recommendation generation, and user feedback integration.
+ - Automate real-time recommendations based on user actions and trends.
+
+- **Executions:**
+ - Execute recommendation tasks in real-time to provide instant suggestions.
+ - Monitor executions to refine algorithms and improve recommendation relevance.
+
+**Complexity Rating:** ★★★★☆
+
+**Explanation:** Requires sophisticated recommendation algorithms, real-time data processing, and continuous refinement based on user feedback.
+
+---
+
+### 50. Intelligent Event Feedback Analyzer
+
+**Implementation Using Julep:**
+
+- **Docs:**
+ - Store feedback forms, analysis templates, and reporting standards.
+ - Integrate with event platforms and feedback collection tools.
+
+- **Sessions:**
+ - Manage feedback-specific sessions to track responses and analysis progress.
+ - Maintain context for event-specific feedback and improvement areas.
+
+- **Tasks:**
+ - Create tasks for feedback collection, sentiment analysis, trend identification, and report generation.
+ - Automate the extraction of actionable insights and improvement suggestions.
+
+- **Executions:**
+ - Execute feedback analysis tasks post-event.
+ - Monitor executions to ensure accurate and timely feedback processing and reporting.
+
+**Complexity Rating:** ★★★☆☆
+
+**Explanation:** Involves integrating with feedback collection tools and implementing effective sentiment analysis and trend identification mechanisms.
+
+---
+
+# Complexity and Difficulty Ratings
+
+The scenarios have been rated based on the number of integrated features, required integrations, and overall system complexity. Here's a quick overview:
+
+- **★☆☆☆☆ (1/5): Easiest**
+- **★★☆☆☆ (2/5): Low Complexity**
+- **★★★☆☆ (3/5): Moderate Complexity**
+- **★★★★☆ (4/5): High Complexity**
+- **★★★★★ (5/5): Most Complex**
+
+| **Scenario** | **Complexity Rating** |
+|---------------------------------------------------|-----------------------|
+| 1. Automated Customer Support Agent | ★★★★☆ |
+| 2. Smart Research Assistant | ★★★★☆ |
+| 3. Personal Finance Manager | ★★★☆☆ |
+| 4. Content Creation Workflow | ★★★☆☆ |
+| 5. E-commerce Order Processing System | ★★★★☆ |
+| 6. AI-Powered Personal Trainer | ★★★☆☆ |
+| 7. Automated Email Marketing Campaigns | ★★★☆☆ |
+| 8. Intelligent Recruitment Assistant | ★★★★★ |
+| 9. Smart Home Automation Controller | ★★★★☆ |
+| 10. Automated Legal Document Analyzer | ★★★★★ |
+| 11. Personalized Learning Assistant | ★★★★☆ |
+| 12. AI-Driven Social Media Manager | ★★★★☆ |
+| 13. Automated Travel Itinerary Planner | ★★★☆☆ |
+| 14. AI-Powered Inventory Management System | ★★★★☆ |
+| 15. Intelligent Health Monitoring System | ★★★★☆ |
+| 16. Automated Content Moderation Tool | ★★★★★ |
+| 17. AI-Powered Resume Builder | ★★★☆☆ |
+| 18. Smart Event Management System | ★★★★☆ |
+| 19. Automated Survey Analyzer | ★★★☆☆ |
+| 20. AI-Driven Project Management Assistant | ★★★★☆ |
+| 21. Intelligent Document Summarizer | ★★★★☆ |
+| 22. Automated Feedback Collection and Analysis | ★★★☆☆ |
+| 23. AI-Powered Language Translator | ★★★☆☆ |
+| 24. Smart Appointment Scheduler | ★★★☆☆ |
+| 25. Automated Inventory Auditor | ★★★★☆ |
+| 26. AI-Driven Competitive Analysis Tool | ★★★★☆ |
+| 27. Smart Recipe Generator | ★★★☆☆ |
+| 28. Automated Video Content Creator | ★★★★☆ |
+| 29. AI-Powered News Aggregator | ★★★☆☆ |
+| 30. Intelligent Appointment Follow-Up System | ★★★☆☆ |
+| 31. Automated Compliance Monitoring Tool | ★★★★★ |
+| 32. AI-Powered Personal Shopper | ★★★★☆ |
+| 33. Smart Content Personalization Engine | ★★★★☆ |
+| 34. Automated Debt Collection Agent | ★★★★☆ |
+| 35. AI-Driven Talent Matching System | ★★★★★ |
+| 36. Intelligent Expense Reporting Tool | ★★★★☆ |
+| 37. Automated Meeting Minutes Recorder | ★★★☆☆ |
+| 38. AI-Driven Content Recommendation System | ★★★★☆ |
+| 39. Smart Time Tracking Assistant | ★★★☆☆ |
+| 40. Automated Webinar Hosting Assistant | ★★★★☆ |
+| 41. AI-Powered Inventory Forecasting Tool | ★★★★☆ |
+| 42. Smart Contract Management System | ★★★★★ |
+| 43. Automated Knowledge Base Updater | ★★★★☆ |
+| 44. AI-Driven Fraud Detection System | ★★★★★ |
+| 45. Intelligent Personal Diary Assistant | ★★★☆☆ |
+| 46. Automated Language Learning Tutor | ★★★★☆ |
+| 47. AI-Powered Budgeting Tool for Businesses | ★★★★☆ |
+| 48. Smart Compliance Documentation Generator | ★★★★☆ |
+| 49. Automated Product Recommendation Engine | ★★★★☆ |
+| 50. Intelligent Event Feedback Analyzer | ★★★☆☆ |
+
+---
+
+# Conclusion
+
+These 50 scenarios showcase the versatility and power of Julep's **docs**, **sessions**, **tasks**, and **executions** features in automating and enhancing various business and personal workflows. Depending on your specific needs and available integrations, these scenarios can be tailored to create efficient, intelligent, and scalable solutions.
+
+Feel free to explore these scenarios, adapt them to your use cases, and contribute to expanding Julep's capabilities further!
\ No newline at end of file
diff --git a/README-CN.md b/README-CN.md
index 49c01217e..c47b56a6b 100644
--- a/README-CN.md
+++ b/README-CN.md
@@ -1,28 +1,18 @@
-[English](README.md) | 中文翻译
+[English](README.md) | [中文翻译](README-CN.md) | [日本語翻訳](README-JA.md) | [French](README-FR.md)
+
+*****
+
+> [!REMARQUE]
+> 👨💻 Vous êtes ici pour l'événement devfest.ai ? Rejoignez notre [Discord](https://discord.com/invite/JTSBGRZrzj) et consultez les détails ci-dessous.
+>
+> Obtenez votre clé API [ici](https://dashboard-dev.julep.ai).
+
+
+🌟 Contributeurs et participants au DevFest.AI(Cliquez pour agrandir)
+
+## 🌟 Appel aux contributeurs !
+
+Nous sommes ravis d'accueillir de nouveaux contributeurs au projet Julep ! Nous avons créé plusieurs « bons premiers numéros » pour vous aider à démarrer. Voici comment vous pouvez contribuer :
+
+1. Consultez notre fichier [CONTRIBUTING.md](https://github.com/julep-ai/julep/blob/dev/CONTRIBUTING.md) pour obtenir des instructions sur la façon de contribuer.
+2. Parcourez nos [bons premiers numéros](https://github.com/julep-ai/julep/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22) pour trouver une tâche qui vous intéresse.
+3. Si vous avez des questions ou avez besoin d'aide, n'hésitez pas à nous contacter sur notre chaîne [Discord](https://discord.com/invite/JTSBGRZrzj).
+
+Vos contributions, grandes ou petites, nous sont précieuses. Construisons ensemble quelque chose d'extraordinaire ! 🚀
+
+### 🎉 DevFest.AI octobre 2024
+
+Des nouvelles passionnantes ! Nous participons au DevFest.AI tout au long du mois d'octobre 2024 ! 🗓️
+
+- Contribuez à Julep pendant cet événement et obtenez une chance de gagner de superbes produits et cadeaux Julep ! 🎁
+- Rejoignez des développeurs du monde entier pour contribuer aux référentiels d'IA et participer à des événements incroyables.
+- Un grand merci à DevFest.AI pour l'organisation de cette fantastique initiative !
+
+> [!TIP]
+> Prêt à vous joindre à la fête ? **[Tweetez que vous participez](https://twitter.com/intent/tweet?text=Pumped%20to%20be%20participating%20in%20%40devfestai%20with%20%40julep_ai%20building%20%23ai%20%20%23agents%20%23workflows%20Let's%20gooo!%20https%3A%2F%2Fgit.new%2Fjulep)** et commençons à coder ! 🖥️
+
+![Julep DevFest.AI](https://media.giphy.com/media/YjyUeyotft6epaMHtU/giphy.gif)
+
+
+
+
+
+
+
📖 Table des matières
+
+- [Présentation](#introduction)
+- [Exemple rapide](#quick-example)
+- [Caractéristiques principales](#key-features)
+- [Pourquoi Julep vs. LangChain ?](#pourquoi-julep-vs-langchain)
+- [Différents cas d'utilisation](#different-use-cases)
+- [Facteur de forme différent](#different-form-factor)
+- [En résumé](#en-resumé)
+- [Installation](#installation)
+- [Démarrage rapide de Python 🐍](#python-quick-start-)
+- [Étape 1 : Créer un agent](#step-1-create-an-agent)
+- [Étape 2 : Créer une tâche qui génère une histoire et une bande dessinée](#step-2-create-a-task-that-generates-a-story-and-comic-strip)
+- [Étape 3 : Exécuter la tâche](#step-3-execute-the-task)
+- [Étape 4 : discuter avec l'agent](#step-4-chat-with-the-agent)
+- [Démarrage rapide de Node.js 🟩](#nodejs-quick-start-)
+- [Étape 1 : Créer un agent](#step-1-create-an-agent-1)
+- [Étape 2 : Créer une tâche qui génère une histoire et une bande dessinée](#step-2-create-a-task-that-generates-a-story-and-comic-strip-1)
+- [Étape 3 : Exécuter la tâche](#step-3-execute-the-task-1)
+- [Étape 4 : discuter avec l'agent](#step-4-chat-with-the-agent-1)
+- [Composants](#composants)
+- [Modèle mental](#mental-model)
+- [Concepts](#concepts)
+- [Comprendre les tâches](#understanding-tasks)
+- [Types d'étapes de flux de travail](#types-of-workflow-steps)
+- [Types d'outils](#types-d'outils)
+- [Fonctions définies par l'utilisateur](#user-defined-functions)
+- [outils système](#outils-système)
+- [Intégrations intégrées](#integrations-integrées)
+- [Appels directs d'API](#appels directs d'API)
+- [Intégrations](#intégrations)
+- [Recherche courageuse](#brave-search)
+- [Base du navigateur](#basedunavigateur)
+- [Courriel](#courriel)
+- [Araignée](#araignée)
+- [Météo](#météo)
+- [Wikipédia](#wikipédia)
+- [Autres fonctionnalités](#other-features)
+- [Ajout d'outils aux agents](#adding-tools-to-agents)
+- [Gestion des sessions et des utilisateurs](#managing-sessions-and-users)
+- [Intégration et recherche de documents](#document-integration-and-search)
+- [Démarrage rapide local](#local-quickstart)
+- [Référence SDK](#sdk-reference)
+- [Référence API](#api-reference)
+
+
+
+
+## Introduction
+
+Julep est une plateforme permettant de créer des agents IA qui se souviennent des interactions passées et peuvent effectuer des tâches complexes. Elle offre une mémoire à long terme et gère des processus en plusieurs étapes.
+
+Julep permet la création de tâches en plusieurs étapes intégrant la prise de décision, les boucles, le traitement parallèle et l'intégration avec de nombreux outils et API externes.
+
+Alors que de nombreuses applications d’IA se limitent à des chaînes simples et linéaires d’invites et d’appels d’API avec une ramification minimale, Julep est conçu pour gérer des scénarios plus complexes.
+
+Il prend en charge :
+- Processus complexes en plusieurs étapes
+- Prise de décision dynamique
+- Exécution parallèle
+
+> [!TIP]
+> Imaginez que vous souhaitiez créer un agent d'IA capable de faire plus que simplement répondre à des questions simples : il doit gérer des tâches complexes, se souvenir des interactions passées et peut-être même utiliser d'autres outils ou API. C'est là qu'intervient Julep.
+
+## Exemple rapide
+
+Imaginez un agent d’IA de recherche capable d’effectuer les opérations suivantes :
+1. Prenez un sujet,
+2. Proposez 100 requêtes de recherche pour ce sujet,
+3. Effectuez ces recherches sur le Web en parallèle,
+4. Résumez les résultats,
+5. Envoyez le résumé sur Discord
+
+Dans Julep, ce serait une tâche unique sous80 lignes de codeet courirentièrement gérétout seul. Toutes les étapes sont exécutées sur les propres serveurs de Julep et vous n'avez pas besoin de lever le petit doigt. Voici un exemple fonctionnel :
+
+```yaml
+name: Research Agent
+
+# Optional: Define the input schema for the task
+input_schema:
+ type: object
+ properties:
+ topic:
+ type: string
+ description: The main topic to research
+
+# Define the tools that the agent can use
+tools:
+- name: web_search
+ type: integration
+ integration:
+ provider: brave
+ setup:
+ api_key: "YOUR_BRAVE_API_KEY"
+
+- name: discord_webhook
+ type: api_call
+ api_call:
+ url: "YOUR_DISCORD_WEBHOOK_URL"
+ method: POST
+ headers:
+ Content-Type: application/json
+
+# Special variables:
+# - inputs: for accessing the input to the task
+# - outputs: for accessing the output of previous steps
+# - _: for accessing the output of the previous step
+
+# Define the main workflow
+main:
+- prompt:
+ - role: system
+ content: >-
+ You are a research assistant.
+ Generate 100 diverse search queries related to the topic:
+ {{inputs[0].topic}}
+
+ Write one query per line.
+ unwrap: true
+
+# Evaluate the search queries using a simple python expression
+- evaluate:
+ search_queries: "_.split('\n')"
+
+# Run the web search in parallel for each query
+- over: "_.search_queries"
+ map:
+ tool: web_search
+ arguments:
+ query: "_"
+ parallelism: 100
+
+# Collect the results from the web search
+- evaluate:
+ results: "'\n'.join([item.result for item in _])"
+
+# Summarize the results
+- prompt:
+ - role: system
+ content: >
+ You are a research summarizer. Create a comprehensive summary of the following research results on the topic {{inputs[0].topic}}.
+ The summary should be well-structured, informative, and highlight key findings and insights:
+ {{_.results}}
+ unwrap: true
+
+# Send the summary to Discord
+- tool: discord_webhook
+ arguments:
+ content: >
+ **Research Summary for {{inputs[0].topic}}**
+
+ {{_}}
+```
+
+> [!TIP]
+> Julep est vraiment utile lorsque vous souhaitez créer des agents IA capables de conserver le contexte et l'état lors d'interactions à long terme. Il est idéal pour concevoir des flux de travail complexes en plusieurs étapes et pour intégrer divers outils et API directement dans les processus de votre agent.
+>
+> Dans cet exemple, Julep gérera automatiquement les exécutions parallèles, réessayera les étapes ayant échoué, renverra les requêtes API et maintiendra les tâches en cours d'exécution de manière fiable jusqu'à leur achèvement.
+
+## Principales caractéristiques
+
+1. 🧠 **Agents IA persistants** : mémorisent le contexte et les informations au cours d'interactions à long terme.
+2. 💾 **Sessions avec état** : gardez une trace des interactions passées pour des réponses personnalisées.
+3. 🔄 **Tâches en plusieurs étapes** : créez des processus complexes en plusieurs étapes avec des boucles et une prise de décision.
+4. ⏳ **Gestion des tâches** : gérez les tâches de longue durée qui peuvent s'exécuter indéfiniment.
+5. 🛠️ **Outils intégrés** : utilisez des outils intégrés et des API externes dans vos tâches.
+6. 🔧 **Auto-réparation** : Julep réessaiera automatiquement les étapes ayant échoué, renverra les messages et assurera généralement le bon déroulement de vos tâches.
+7. 📚 **RAG** : Utilisez le magasin de documents de Julep pour créer un système permettant de récupérer et d'utiliser vos propres données.
+
+Julep est idéal pour les applications qui nécessitent des cas d’utilisation de l’IA au-delà des simples modèles de réponse rapide.
+
+## Pourquoi Julep vs. LangChain ?
+
+### Différents cas d'utilisation
+
+Considérez LangChain et Julep comme des outils avec des objectifs différents au sein de la pile de développement de l’IA.
+
+LangChain est idéal pour créer des séquences d'invites et gérer les interactions avec les modèles d'IA. Il dispose d'un vaste écosystème avec de nombreuses intégrations prédéfinies, ce qui le rend pratique si vous souhaitez mettre en place quelque chose rapidement. LangChain s'adapte bien aux cas d'utilisation simples qui impliquent une chaîne linéaire d'invites et d'appels d'API.
+
+Julep, en revanche, s'intéresse davantage à la création d'agents d'IA persistants capables de mémoriser des éléments au cours d'interactions à long terme. Il est particulièrement efficace lorsque vous avez besoin de tâches complexes impliquant plusieurs étapes, une prise de décision et une intégration avec divers outils ou API directement dans le processus de l'agent. Il est conçu dès le départ pour gérer les sessions persistantes et les tâches complexes.
+
+Utilisez Julep si vous imaginez créer un assistant IA complexe qui doit :
+
+- Suivez les interactions des utilisateurs sur plusieurs jours ou semaines.
+- Exécutez des tâches planifiées, comme l'envoi de résumés quotidiens ou la surveillance de sources de données.
+- Prendre des décisions basées sur des interactions antérieures ou des données stockées.
+- Interagir avec plusieurs services externes dans le cadre de sa mission.
+
+Ensuite, Julep fournit l’infrastructure pour prendre en charge tout cela sans que vous ayez à le construire à partir de zéro.
+
+### Facteur de forme différent
+
+Julep est une **plateforme** qui comprend un langage pour décrire les tâches, un serveur pour exécuter ces tâches et un SDK pour interagir avec la plateforme. Pour créer quelque chose avec Julep, vous écrivez une description de la tâche en YAML, puis vous exécutez la tâche dans le cloud.
+
+Julep est conçu pour les tâches lourdes, en plusieurs étapes et de longue durée, et il n'y a aucune limite à la complexité de la tâche.
+
+LangChain est une **bibliothèque** qui inclut quelques outils et un framework pour créer des chaînes linéaires d'invites et d'outils. Pour créer quelque chose avec LangChain, vous écrivez généralement du code Python qui configure et exécute les chaînes de modèles que vous souhaitez utiliser.
+
+LangChain pourrait être suffisant et plus rapide à mettre en œuvre pour les cas d'utilisation simples impliquant une chaîne linéaire d'invites et d'appels d'API.
+
+### En résumé
+
+Utilisez LangChain lorsque vous devez gérer les interactions des modèles d’IA et les séquences d’invite dans un contexte sans état ou à court terme.
+
+Choisissez Julep lorsque vous avez besoin d'un framework robuste pour les agents avec état avec des capacités de tâches avancées, des sessions persistantes et une gestion de tâches complexes.
+
+## Installation
+
+Pour commencer à utiliser Julep, installez-le en utilisant [npm](https://www.npmjs.com/package/@julep/sdk) ou [pip](https://pypi.org/project/julep/) :
+
+```bash
+npm install @julep/sdk
+```
+
+ou
+
+```bash
+pip install julep
+```
+
+> [!REMARQUE]
+> Obtenez votre clé API [ici](https://dashboard-dev.julep.ai).
+>
+> Pendant que nous sommes en version bêta, vous pouvez également nous contacter sur [Discord](https://discord.com/invite/JTSBGRZrzj) pour obtenir la levée des limites de débit sur votre clé API.
+
+> [!TIP]
+> 💻 Êtes-vous du genre à vouloir _montrer le code !™_ ? Nous avons créé une multitude de livres de recettes pour vous aider à démarrer. **Consultez les [livres de recettes](https://github.com/julep-ai/julep/tree/dev/cookbooks)** pour parcourir les exemples.
+>
+> 💡 Il existe également de nombreuses idées que vous pouvez développer en plus de Julep. **Consultez la [liste d'idées](https://github.com/julep-ai/julep/tree/dev/cookbooks/IDEAS.md)** pour vous inspirer.
+
+## Démarrage rapide de Python 🐍
+
+### Étape 1 : Créer un agent
+
+```python
+import yaml
+from julep import Julep # or AsyncJulep
+
+client = Julep(api_key="your_julep_api_key")
+
+agent = client.agents.create(
+ name="Storytelling Agent",
+ model="gpt-4o",
+ about="You are a creative storytelling agent that can craft engaging stories and generate comic panels based on ideas.",
+)
+
+# 🛠️ Add an image generation tool (DALL·E) to the agent
+client.agents.tools.create(
+ agent_id=agent.id,
+ name="image_generator",
+ description="Use this tool to generate images based on descriptions.",
+ integration={
+ "provider": "dalle",
+ "method": "generate_image",
+ "setup": {
+ "api_key": "your_openai_api_key",
+ },
+ },
+)
+```
+
+### Étape 2 : Créer une tâche qui génère une histoire et une bande dessinée
+
+Définissons une tâche en plusieurs étapes pour créer une histoire et générer une bande dessinée à panneaux basée sur une idée d'entrée :
+
+```python
+# 📋 Task
+# Create a task that takes an idea and creates a story and a 4-panel comic strip
+task_yaml = """
+name: Story and Comic Creator
+description: Create a story based on an idea and generate a 4-panel comic strip illustrating the story.
+
+main:
+ # Step 1: Generate a story and outline into 4 panels
+ - prompt:
+ - role: system
+ content: You are {{agent.name}}. {{agent.about}}
+ - role: user
+ content: >
+ Based on the idea '{{_.idea}}', write a short story suitable for a 4-panel comic strip.
+ Provide the story and a numbered list of 4 brief descriptions for each panel illustrating key moments in the story.
+ unwrap: true
+
+ # Step 2: Extract the panel descriptions and story
+ - evaluate:
+ story: _.split('1. ')[0].strip()
+ panels: re.findall(r'\\d+\\.\\s*(.*?)(?=\\d+\\.\\s*|$)', _)
+
+ # Step 3: Generate images for each panel using the image generator tool
+ - foreach:
+ in: _.panels
+ do:
+ tool: image_generator
+ arguments:
+ description: _
+
+ # Step 4: Generate a catchy title for the story
+ - prompt:
+ - role: system
+ content: You are {{agent.name}}. {{agent.about}}
+ - role: user
+ content: >
+ Based on the story below, generate a catchy title.
+
+ Story: {{outputs[1].story}}
+ unwrap: true
+
+ # Step 5: Return the story, the generated images, and the title
+ - return:
+ title: outputs[3]
+ story: outputs[1].story
+ comic_panels: "[output.image.url for output in outputs[2]]"
+"""
+
+task = client.tasks.create(
+ agent_id=agent.id,
+ **yaml.safe_load(task_yaml)
+)
+```
+
+### Étape 3 : Exécuter la tâche
+
+```python
+# 🚀 Execute the task with an input idea
+execution = client.executions.create(
+ task_id=task.id,
+ input={"idea": "A cat who learns to fly"}
+)
+
+# 🎉 Watch as the story and comic panels are generated
+for transition in client.executions.transitions.stream(execution_id=execution.id):
+ print(transition)
+
+# 📦 Once the execution is finished, retrieve the results
+result = client.executions.get(execution_id=execution.id)
+```
+
+### Étape 4 : Discuter avec l'agent
+
+Démarrez une session de chat interactive avec l'agent :
+
+```python
+session = client.sessions.create(agent_id=agent.id)
+
+# 💬 Send messages to the agent
+while (message := input("Enter a message: ")) != "quit":
+ response = client.sessions.chat(
+ session_id=session.id,
+ message=message,
+ )
+
+ print(response)
+```
+
+> [!TIP]
+> Vous pouvez trouver l'exemple Python complet [ici](example.py).
+
+
+## Démarrage rapide de Node.js 🟩
+
+### Étape 1 : Créer un agent
+
+```javascript
+import { Julep } from '@julep/sdk';
+import yaml from 'js-yaml';
+
+const client = new Julep({ apiKey: 'your_julep_api_key' });
+
+async function createAgent() {
+ const agent = await client.agents.create({
+ name: "Storytelling Agent",
+ model: "gpt-4",
+ about: "You are a creative storytelling agent that can craft engaging stories and generate comic panels based on ideas.",
+ });
+
+ // 🛠️ Add an image generation tool (DALL·E) to the agent
+ await client.agents.tools.create(agent.id, {
+ name: "image_generator",
+ description: "Use this tool to generate images based on descriptions.",
+ integration: {
+ provider: "dalle",
+ method: "generate_image",
+ setup: {
+ api_key: "your_openai_api_key",
+ },
+ },
+ });
+
+ return agent;
+}
+```
+
+### Étape 2 : Créer une tâche qui génère une histoire et une bande dessinée
+
+```javascript
+const taskYaml = `
+name: Story and Comic Creator
+description: Create a story based on an idea and generate a 4-panel comic strip illustrating the story.
+
+main:
+ # Step 1: Generate a story and outline into 4 panels
+ - prompt:
+ - role: system
+ content: You are {{agent.name}}. {{agent.about}}
+ - role: user
+ content: >
+ Based on the idea '{{_.idea}}', write a short story suitable for a 4-panel comic strip.
+ Provide the story and a numbered list of 4 brief descriptions for each panel illustrating key moments in the story.
+ unwrap: true
+
+ # Step 2: Extract the panel descriptions and story
+ - evaluate:
+ story: _.split('1. ')[0].trim()
+ panels: _.match(/\\d+\\.\\s*(.*?)(?=\\d+\\.\\s*|$)/g)
+
+ # Step 3: Generate images for each panel using the image generator tool
+ - foreach:
+ in: _.panels
+ do:
+ tool: image_generator
+ arguments:
+ description: _
+
+ # Step 4: Generate a catchy title for the story
+ - prompt:
+ - role: system
+ content: You are {{agent.name}}. {{agent.about}}
+ - role: user
+ content: >
+ Based on the story below, generate a catchy title.
+
+ Story: {{outputs[1].story}}
+ unwrap: true
+
+ # Step 5: Return the story, the generated images, and the title
+ - return:
+ title: outputs[3]
+ story: outputs[1].story
+ comic_panels: outputs[2].map(output => output.image.url)
+`;
+
+async function createTask(agent) {
+ const task = await client.tasks.create(agent.id, yaml.load(taskYaml));
+ return task;
+}
+```
+
+### Étape 3 : Exécuter la tâche
+
+```javascript
+async function executeTask(task) {
+ const execution = await client.executions.create(task.id, {
+ input: { idea: "A cat who learns to fly" }
+ });
+
+ // 🎉 Watch as the story and comic panels are generated
+ for await (const transition of client.executions.transitions.stream(execution.id)) {
+ console.log(transition);
+ }
+
+ // 📦 Once the execution is finished, retrieve the results
+ const result = await client.executions.get(execution.id);
+ return result;
+}
+```
+
+### Étape 4 : Discuter avec l'agent
+
+```javascript
+async function chatWithAgent(agent) {
+ const session = await client.sessions.create({ agent_id: agent.id });
+
+ // 💬 Send messages to the agent
+ const rl = readline.createInterface({
+ input: process.stdin,
+ output: process.stdout
+ });
+
+ const chat = async () => {
+ rl.question("Enter a message (or 'quit' to exit): ", async (message) => {
+ if (message.toLowerCase() === 'quit') {
+ rl.close();
+ return;
+ }
+
+ const response = await client.sessions.chat(session.id, { message });
+ console.log(response);
+ chat();
+ });
+ };
+
+ chat();
+}
+
+// Run the example
+async function runExample() {
+ const agent = await createAgent();
+ const task = await createTask(agent);
+ const result = await executeTask(task);
+ console.log("Task Result:", result);
+ await chatWithAgent(agent);
+}
+
+runExample().catch(console.error);
+```
+
+> [!TIP]
+> Vous pouvez trouver l'exemple complet de Node.js [ici](example.js).
+
+## Composants
+
+Julep est composé des éléments suivants :
+
+- **Plateforme Julep** : la plateforme Julep est un service cloud qui exécute vos workflows. Elle comprend un langage pour décrire les workflows, un serveur pour exécuter ces workflows et un SDK pour interagir avec la plateforme.
+- **SDK Julep** : les SDK Julep sont un ensemble de bibliothèques permettant de créer des workflows. Il existe des SDK pour Python et JavaScript, et d'autres sont en cours de développement.
+- **API Julep** : L'API Julep est une API RESTful que vous pouvez utiliser pour interagir avec la plateforme Julep.
+
+### Modèle mental
+
+
+
+
+
+Considérez Julep comme une plateforme qui combine des composants côté client et côté serveur pour vous aider à créer des agents d'IA avancés. Voici comment le visualiser :
+
+1. **Votre code d'application :**
+- Vous utilisez le SDK Julep dans votre application pour définir des agents, des tâches et des workflows.
+- Le SDK fournit des fonctions et des classes qui facilitent la configuration et la gestion de ces composants.
+
+2. **Service back-end Julep :**
+- Le SDK communique avec le backend Julep via le réseau.
+- Le backend gère l'exécution des tâches, maintient l'état de la session, stocke les documents et orchestre les flux de travail.
+
+3. **Intégration avec les outils et les API :**
+- Au sein de vos workflows, vous pouvez intégrer des outils et services externes.
+- Le backend facilite ces intégrations, afin que vos agents puissent, par exemple, effectuer des recherches sur le Web, accéder à des bases de données ou appeler des API tierces.
+
+En termes plus simples :
+- Julep est une plateforme permettant de créer des agents d'IA avec état.
+- Vous utilisez le SDK (comme une boîte à outils) dans votre code pour définir ce que font vos agents.
+- Le service backend (que vous pouvez considérer comme le moteur) exécute ces définitions, gère l'état et gère la complexité.
+
+## Concepts
+
+Julep s'appuie sur plusieurs composants techniques clés qui fonctionnent ensemble pour créer de puissants flux de travail d'IA :
+
+```mermaid
+graph TD
+ User[User] ==> Session[Session]
+ Session --> Agent[Agent]
+ Agent --> Tasks[Tasks]
+ Agent --> LLM[Large Language Model]
+ Tasks --> Tools[Tools]
+ Agent --> Documents[Documents]
+ Documents --> VectorDB[Vector Database]
+ Tasks --> Executions[Executions]
+
+ classDef client fill:#9ff,stroke:#333,stroke-width:1px;
+ class User client;
+
+ classDef core fill:#f9f,stroke:#333,stroke-width:2px;
+ class Agent,Tasks,Session core;
+```
+
+- **Agents** : entités alimentées par l'IA et soutenues par de grands modèles linguistiques (LLM) qui exécutent des tâches et interagissent avec les utilisateurs.
+- **Utilisateurs** : entités qui interagissent avec les agents via des sessions.
+- **Sessions** : interactions avec état entre agents et utilisateurs, maintenant le contexte sur plusieurs échanges.
+- **Tâches** : flux de travail programmatiques en plusieurs étapes que les agents peuvent exécuter, y compris différents types d'étapes telles que des invites, des appels d'outils et une logique conditionnelle.
+- **Outils** : intégrations qui étendent les capacités d'un agent, y compris les fonctions définies par l'utilisateur, les outils système ou les intégrations d'API tierces.
+- **Documents** : Objets textes ou données associés à des agents ou utilisateurs, vectorisés et stockés pour la recherche et la récupération sémantiques.
+- **Exécutions** : instances de tâches qui ont été initiées avec des entrées spécifiques, avec leur propre cycle de vie et leur propre machine d'état.
+
+Pour une explication plus détaillée de ces concepts et de leurs interactions, veuillez vous référer à notre [Documentation sur les concepts](https://github.com/julep-ai/julep/blob/dev/docs/julep-concepts.md).
+
+## Comprendre les tâches
+
+Les tâches sont au cœur du système de workflow de Julep. Elles vous permettent de définir des workflows IA complexes en plusieurs étapes que vos agents peuvent exécuter. Voici un bref aperçu des composants des tâches :
+
+- **Nom et description** : Chaque tâche a un nom et une description uniques pour une identification facile.
+- **Étapes principales** : Le cœur d’une tâche, définissant la séquence d’actions à effectuer.
+- **Outils** : intégrations facultatives qui étendent les capacités de votre agent pendant l'exécution des tâches.
+
+### Types d'étapes de flux de travail
+
+Les tâches dans Julep peuvent inclure différents types d'étapes, ce qui vous permet de créer des flux de travail complexes et puissants. Voici un aperçu des types d'étapes disponibles, organisés par catégorie :
+
+#### Étapes courantes
+
+1. **Invite** : envoyez un message au modèle d’IA et recevez une réponse.
+ ```yaml
+ - prompt: "Analyze the following data: {{data}}"
+ ```
+
+2. **Appel d'outil** : Exécutez un outil ou une API intégrée.
+ ```yaml
+ - tool: web_search
+ arguments:
+ query: "Latest AI developments"
+ ```
+
+3. **Évaluer** : Effectuer des calculs ou manipuler des données.
+ ```yaml
+ - evaluate:
+ average_score: "sum(scores) / len(scores)"
+ ```
+
+4. **Attendre l'entrée** : mettre le flux de travail en pause jusqu'à ce que l'entrée soit reçue.
+ ```yaml
+ - wait_for_input:
+ info:
+ message: "Please provide additional information."
+ ```
+
+5. **Journal** : Enregistrer une valeur ou un message spécifié.
+ ```yaml
+ - log: "Processing completed for item {{item_id}}"
+ ```
+
+#### Étapes clé-valeur
+
+6. **Get** : récupérer une valeur à partir d'un magasin clé-valeur.
+ ```yaml
+ - get: "user_preference"
+ ```
+
+7. **Set** : attribuez une valeur à une clé dans un magasin clé-valeur.
+ ```yaml
+ - set:
+ user_preference: "dark_mode"
+ ```
+
+#### Étapes d'itération
+
+8. **Foreach** : itérer sur une collection et effectuer des étapes pour chaque élément.
+ ```yaml
+ - foreach:
+ in: "data_list"
+ do:
+ - log: "Processing item {{_}}"
+ ```
+
+9. **Map-Reduce** : Cartographiez une collection et réduisez les résultats.
+ ```yaml
+ - map_reduce:
+ over: "numbers"
+ map:
+ - evaluate:
+ squared: "_ ** 2"
+ reduce: "sum(results)"
+ ```
+
+10. **Parallèle** : exécuter plusieurs étapes en parallèle.
+ ```yaml
+ - parallel:
+ - tool: web_search
+ arguments:
+ query: "AI news"
+ - tool: weather_check
+ arguments:
+ location: "New York"
+ ```
+
+#### Étapes conditionnelles
+
+11. **If-Else** : Exécution conditionnelle des étapes.
+ ```yaml
+ - if: "score > 0.8"
+ then:
+ - log: "High score achieved"
+ else:
+ - log: "Score needs improvement"
+ ```
+
+12. **Switch** : exécuter des étapes en fonction de plusieurs conditions.
+ ```yaml
+ - switch:
+ - case: "category == 'A'"
+ then:
+ - log: "Category A processing"
+ - case: "category == 'B'"
+ then:
+ - log: "Category B processing"
+ - case: "_" # Default case
+ then:
+ - log: "Unknown category"
+ ```
+
+#### Autre flux de contrôle
+
+13. **Veille** : met le flux de travail en pause pendant une durée spécifiée.
+ ```yaml
+ - sleep:
+ seconds: 30
+ ```
+
+14. **Retour** : renvoie une valeur du flux de travail.
+ ```yaml
+ - return:
+ result: "Task completed successfully"
+ ```
+
+15. **Rendement** : Exécutez un sous-flux de travail et attendez sa fin.
+ ```yaml
+ - yield:
+ workflow: "data_processing_subflow"
+ arguments:
+ input_data: "{{raw_data}}"
+ ```
+
+16. **Erreur** : gérez les erreurs en spécifiant un message d’erreur.
+ ```yaml
+ - error: "Invalid input provided"
+ ```
+
+Chaque type d'étape remplit un objectif spécifique dans la création de workflows d'IA sophistiqués. Cette catégorisation permet de comprendre les différents flux de contrôle et opérations disponibles dans les tâches Julep.
+
+
+## Types d'outils
+
+Les agents peuvent avoir accès à un certain nombre d'« outils » : toute interface de programmation qu'un modèle de base peut « appeler » avec un ensemble d'entrées pour atteindre un objectif. Par exemple, il peut utiliser un outil « web_search(query) » pour rechercher des informations sur Internet.
+
+Contrairement aux frameworks d'agents, Julep est un backend qui gère l'exécution des agents. Les clients peuvent interagir avec les agents à l'aide de nos SDK. Julep s'occupe de l'exécution des tâches et de l'exécution des intégrations.
+
+Les outils du julep peuvent être l’un des suivants :
+
+### Fonctions définies par l'utilisateur
+
+Il s'agit de signatures de fonctions que vous pouvez attribuer au modèle pour qu'il puisse choisir, de la même manière que fonctionne l'appel de fonctions d'[openai]. Un exemple :
+
+```yaml
+ name: Example system tool task
+ description: List agents using system call
+
+ tools:
+ - name: send_notification
+ description: Send a notification to the user
+ type: function
+ function:
+ parameters:
+ type: object
+ properties:
+ text:
+ type: string
+ description: Content of the notification
+
+ main:
+ - tool: send_notification
+ arguments:
+ content: hi
+```
+
+Chaque fois que julep rencontre une _fonction définie par l'utilisateur_, il s'arrête, rend le contrôle au client et attend que le client exécute l'appel de fonction et renvoie les résultats à julep.
+
+> [!TIP]
+> **Exemple de livre de recettes** : [cookbooks/13-Error_Handling_and_Recovery.py](https://github.com/julep-ai/julep/blob/dev/cookbooks/13-Error_Handling_and_Recovery.py)
+
+### outils `système`
+Outils intégrés qui peuvent être utilisés pour appeler les API julep elles-mêmes, comme déclencher l'exécution d'une tâche, ajouter à un champ de métadonnées, etc.
+Les outils « système » sont intégrés au backend. Ils sont exécutés automatiquement lorsque cela est nécessaire. Ils ne nécessitent aucune action du côté client.
+
+Par exemple,
+
+ ```yaml
+ name: Example system tool task
+ description: List agents using system call
+
+ tools:
+ - name: list_agents
+ description: List all agents
+ type: system
+ system:
+ resource: agent
+ operation: list
+ main:
+ - tool: list_agents
+ arguments:
+ limit: 10
+ ```
+
+> [!TIP]
+> **Exemple de livre de recettes** : [cookbooks/10-Document_Management_and_Search.py](https://github.com/julep-ai/julep/blob/dev/cookbooks/10-Document_Management_and_Search.py)
+
+### Intégrations intégrées
+Julep est livré avec un certain nombre d'intégrations intégrées (comme décrit dans la section ci-dessous). Les outils « d'intégration » sont directement exécutés sur le backend de Julep. Tous les paramètres supplémentaires dont ils ont besoin au moment de l'exécution peuvent être définis dans les champs « métadonnées » de l'agent/session/utilisateur.
+
+> [!TIP]
+> **Exemple de livre de recettes** : [cookbooks/01-Website_Crawler_using_Spider.ipynb](https://github.com/julep-ai/julep/blob/dev/cookbooks/01-Website_Crawler_using_Spider.ipynb)
+
+Le backend Julep est livré avec des outils tiers intégrés provenant des fournisseurs suivants :
+- [composio](https://composio.dev) \*\*
+- [anonyme](https://anon.com) \*\*
+- [kits d'outils langchain](https://python.langchain.com/v0.2/docs/integrations/toolkits/). La prise en charge des kits d'outils _Github, Gitlab, Gmail, Jira, MultiOn, Slack_ est prévue.
+
+\*\* Étant donné que _composio_ et _anon_ sont des fournisseurs tiers, leurs outils nécessitent la configuration d'une liaison de compte.
+
+
+### Appels directs `api_call`
+
+julep peut également effectuer directement des appels d'API lors des exécutions de workflows sous forme d'appels d'outils. Comme pour `integration`, des paramètres d'exécution supplémentaires sont chargés à partir des champs `metadata`.
+
+Par exemple,
+
+ ```yaml
+ name: Example api_call task
+ tools:
+ - type: api_call
+ name: hello
+ api_call:
+ method: GET
+ url: https://httpbin.org/get
+ main:
+ - tool: hello
+ arguments:
+ params:
+ test: _.input
+ ```
+
+## Intégrations
+
+Julep prend en charge diverses intégrations qui étendent les capacités de vos agents IA. Voici une liste des intégrations disponibles et de leurs arguments pris en charge :
+
+### Recherche courageuse
+
+```yaml
+setup:
+ api_key: string # The API key for Brave Search
+
+arguments:
+ query: string # The search query for searching with Brave
+
+output:
+ result: string # The result of the Brave Search
+```
+
+> [!TIP]
+> **Exemple de livre de recettes** : [cookbooks/03-SmartResearcher_With_WebSearch.ipynb](https://github.com/julep-ai/julep/blob/dev/cookbooks/03-SmartResearcher_With_WebSearch.ipynb)
+
+### Base de navigateur
+
+```yaml
+setup:
+ api_key: string # The API key for BrowserBase
+ project_id: string # The project ID for BrowserBase
+ session_id: string # (Optional) The session ID for BrowserBase
+
+arguments:
+ urls: list[string] # The URLs for loading with BrowserBase
+
+output:
+ documents: list # The documents loaded from the URLs
+```
+
+### E-mail
+
+```yaml
+setup:
+ host: string # The host of the email server
+ port: integer # The port of the email server
+ user: string # The username of the email server
+ password: string # The password of the email server
+
+arguments:
+ to: string # The email address to send the email to
+ from: string # The email address to send the email from
+ subject: string # The subject of the email
+ body: string # The body of the email
+
+output:
+ success: boolean # Whether the email was sent successfully
+```
+
+> [!TIP]
+> **Exemple de livre de recettes** : [cookbooks/00-Devfest-Email-Assistant.ipynb](https://github.com/julep-ai/julep/blob/dev/cookbooks/00-Devfest-Email-Assistant.ipynb)
+
+### Araignée
+
+```yaml
+setup:
+ spider_api_key: string # The API key for Spider
+
+arguments:
+ url: string # The URL for which to fetch data
+ mode: string # The type of crawlers (default: "scrape")
+ params: dict # (Optional) The parameters for the Spider API
+
+output:
+ documents: list # The documents returned from the spider
+```
+
+> [!TIP]
+> **Exemple de livre de recettes** : [cookbooks/01-Website_Crawler_using_Spider.ipynb](https://github.com/julep-ai/julep/blob/dev/cookbooks/01-Website_Crawler_using_Spider.ipynb)
+
+### Météo
+
+```yaml
+setup:
+ openweathermap_api_key: string # The API key for OpenWeatherMap
+
+arguments:
+ location: string # The location for which to fetch weather data
+
+output:
+ result: string # The weather data for the specified location
+```
+
+> [!TIP]
+> **Exemple de livre de recettes** : [cookbooks/04-TripPlanner_With_Weather_And_WikiInfo.ipynb](https://github.com/julep-ai/julep/blob/dev/cookbooks/04-TripPlanner_With_Weather_And_WikiInfo.ipynb)
+
+### Wikipédia
+
+```yaml
+arguments:
+ query: string # The search query string
+ load_max_docs: integer # Maximum number of documents to load (default: 2)
+
+output:
+ documents: list # The documents returned from the Wikipedia search
+```
+
+> [!TIP]
+> **Exemple de livre de recettes** : [cookbooks/04-TripPlanner_With_Weather_And_WikiInfo.ipynb](https://github.com/julep-ai/julep/blob/dev/cookbooks/04-TripPlanner_With_Weather_And_WikiInfo.ipynb)
+
+Ces intégrations peuvent être utilisées dans vos tâches pour étendre les capacités de vos agents IA. Pour des informations plus détaillées sur la manière d'utiliser ces intégrations dans vos workflows, veuillez consulter notre [Documentation sur les intégrations](https://docs.julep.ai/integrations).
+
+## Autres fonctionnalités
+
+Julep propose une gamme de fonctionnalités avancées pour améliorer vos flux de travail d'IA :
+
+### Ajout d'outils aux agents
+
+Étendez les capacités de votre agent en intégrant des outils et des API externes :
+
+```python
+client.agents.tools.create(
+ agent_id=agent.id,
+ name="web_search",
+ description="Search the web for information.",
+ integration={
+ "provider": "brave",
+ "method": "search",
+ "setup": {"api_key": "your_brave_api_key"},
+ },
+)
+```
+
+### Gestion des sessions et des utilisateurs
+
+Julep fournit une gestion de session robuste pour les interactions persistantes :
+
+```python
+session = client.sessions.create(
+ agent_id=agent.id,
+ user_id=user.id,
+ context_overflow="adaptive"
+)
+
+# Continue conversation in the same session
+response = client.sessions.chat(
+ session_id=session.id,
+ messages=[
+ {
+ "role": "user",
+ "content": "Follow up on the previous conversation."
+ }
+ ]
+)
+```
+
+### Intégration et recherche de documents
+
+Gérez et recherchez facilement des documents pour vos agents :
+
+```python
+# Upload a document
+document = client.agents.docs.create(
+ title="AI advancements",
+ content="AI is changing the world...",
+ metadata={"category": "research_paper"}
+)
+
+# Search documents
+results = client.agents.docs.search(
+ text="AI advancements",
+ metadata_filter={"category": "research_paper"}
+)
+```
+
+## Démarrage rapide local
+
+**Exigences**:
+- dernier docker compose installé
+
+**Mesures**:
+1. `git clone https://github.com/julep-ai/julep.git`
+2. `cd julep`
+3. `docker volume create cozo_backup`
+4. `docker volume create cozo_data`
+5. `cp .env.example .env # <-- Modifier ce fichier`
+6. `docker compose --env-file .env --profile temporal-ui --profile single-tenant --profile self-hosted-db up --build`
+
+## Référence du SDK
+
+- [Kit de développement logiciel Node.js](https://github.com/julep-ai/node-sdk/blob/main/api.md)
+- [SDK Python](https://github.com/julep-ai/python-sdk/blob/main/api.md)
+
+## Référence API
+
+Explorez notre documentation API complète pour en savoir plus sur les agents, les tâches et les exécutions :
+
+- [API des agents](https://api.julep.ai/api/docs#tag/agents)
+- [API des tâches](https://api.julep.ai/api/docs#tag/tasks)
+- [API d'exécution](https://api.julep.ai/api/docs#tag/executions)
+
+
+
@@ -41,213 +26,1061 @@ Build powerful AI applications with stateful agents, complex workflows, and inte
----
+*****
+
+> [!NOTE]
+> 👨💻 Here for the devfest.ai event ? Join our [Discord](https://discord.com/invite/JTSBGRZrzj) and check out the details below.
+>
+> Get your API key [here](https://dashboard-dev.julep.ai).
+
+
+🌟 Contributors and DevFest.AI Participants (Click to expand)
+
+## 🌟 Call for Contributors!
+
+We're excited to welcome new contributors to the Julep project! We've created several "good first issues" to help you get started. Here's how you can contribute:
+
+1. Check out our [CONTRIBUTING.md](https://github.com/julep-ai/julep/blob/dev/CONTRIBUTING.md) file for guidelines on how to contribute.
+2. Browse our [good first issues](https://github.com/julep-ai/julep/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22) to find a task that interests you.
+3. If you have any questions or need help, don't hesitate to reach out on our [Discord](https://discord.com/invite/JTSBGRZrzj) channel.
+
+Your contributions, big or small, are valuable to us. Let's build something amazing together! 🚀
+
+### 🎉 DevFest.AI October 2024
+
+Exciting news! We're participating in DevFest.AI throughout October 2024! 🗓️
+
+- Contribute to Julep during this event and get a chance to win awesome Julep merch and swag! 🎁
+- Join developers from around the world in contributing to AI repositories and participating in amazing events.
+- A big thank you to DevFest.AI for organizing this fantastic initiative!
+
+> [!TIP]
+> Ready to join the fun? **[Tweet that you are participating](https://twitter.com/intent/tweet?text=Pumped%20to%20be%20participating%20in%20%40devfestai%20with%20%40julep_ai%20building%20%23ai%20%23agents%20%23workflows%20Let's%20gooo!%20https%3A%2F%2Fgit.new%2Fjulep)** and let's get coding! 🖥️
+
+![Julep DevFest.AI](https://media.giphy.com/media/YjyUeyotft6epaMHtU/giphy.gif)
+
+
+
+
+
+
+
📖 Table of Contents
+
+- [Introduction](#introduction)
+- [Quick Example](#quick-example)
+- [Key Features](#key-features)
+- [Why Julep vs. LangChain?](#why-julep-vs-langchain)
+ - [Different Use Cases](#different-use-cases)
+ - [Different Form Factor](#different-form-factor)
+ - [In Summary](#in-summary)
+- [Installation](#installation)
+- [Python Quick Start 🐍](#python-quick-start-)
+ - [Step 1: Create an Agent](#step-1-create-an-agent)
+ - [Step 2: Create a Task that generates a story and comic strip](#step-2-create-a-task-that-generates-a-story-and-comic-strip)
+ - [Step 3: Execute the Task](#step-3-execute-the-task)
+ - [Step 4: Chat with the Agent](#step-4-chat-with-the-agent)
+- [Node.js Quick Start 🟩](#nodejs-quick-start-)
+ - [Step 1: Create an Agent](#step-1-create-an-agent-1)
+ - [Step 2: Create a Task that generates a story and comic strip](#step-2-create-a-task-that-generates-a-story-and-comic-strip-1)
+ - [Step 3: Execute the Task](#step-3-execute-the-task-1)
+ - [Step 4: Chat with the Agent](#step-4-chat-with-the-agent-1)
+- [Components](#components)
+ - [Mental Model](#mental-model)
+- [Concepts](#concepts)
+- [Understanding Tasks](#understanding-tasks)
+ - [Types of Workflow Steps](#types-of-workflow-steps)
+- [Tool Types](#tool-types)
+ - [User-defined `function`s](#user-defined-functions)
+ - [`system` tools](#system-tools)
+ - [Built-in `integration`s](#built-in-integrations)
+ - [Direct `api_call`s](#direct-api_calls)
+- [Integrations](#integrations)
+ - [Brave Search](#brave-search)
+ - [BrowserBase](#browserbase)
+ - [Email](#email)
+ - [Spider](#spider)
+ - [Weather](#weather)
+ - [Wikipedia](#wikipedia)
+- [Other Features](#other-features)
+ - [Adding Tools to Agents](#adding-tools-to-agents)
+ - [Managing Sessions and Users](#managing-sessions-and-users)
+ - [Document Integration and Search](#document-integration-and-search)
+- [Local Quickstart](#local-quickstart)
+- [SDK Reference](#sdk-reference)
+- [API Reference](#api-reference)
+
+
+
+
+## Introduction
+
+Julep is a platform for creating AI agents that remember past interactions and can perform complex tasks. It offers long-term memory and manages multi-step processes.
+
+Julep enables the creation of multi-step tasks incorporating decision-making, loops, parallel processing, and integration with numerous external tools and APIs.
+
+While many AI applications are limited to simple, linear chains of prompts and API calls with minimal branching, Julep is built to handle more complex scenarios.
+
+It supports:
+- Intricate, multi-step processes
+- Dynamic decision-making
+- Parallel execution
+
+> [!TIP]
+> Imagine you want to build an AI agent that can do more than just answer simple questions—it needs to handle complex tasks, remember past interactions, and maybe even use other tools or APIs. That's where Julep comes in.
+
+## Quick Example
+
+Imagine a Research AI agent that can do the following:
+ 1. Take a topic,
+ 2. Come up with 100 search queries for that topic,
+ 3. Perform those web searches in parallel,
+ 4. Summarize the results,
+ 5. Send the summary to Discord
+
+In Julep, this would be a single task under 80 lines of code and run fully managed all on its own. All of the steps are executed on Julep's own servers and you don't need to lift a finger. Here's a working example:
+
+```yaml
+name: Research Agent
+
+# Optional: Define the input schema for the task
+input_schema:
+ type: object
+ properties:
+ topic:
+ type: string
+ description: The main topic to research
+
+# Define the tools that the agent can use
+tools:
+- name: web_search
+ type: integration
+ integration:
+ provider: brave
+ setup:
+ api_key: "YOUR_BRAVE_API_KEY"
+
+- name: discord_webhook
+ type: api_call
+ api_call:
+ url: "YOUR_DISCORD_WEBHOOK_URL"
+ method: POST
+ headers:
+ Content-Type: application/json
+
+# Special variables:
+# - inputs: for accessing the input to the task
+# - outputs: for accessing the output of previous steps
+# - _: for accessing the output of the previous step
+
+# Define the main workflow
+main:
+- prompt:
+ - role: system
+ content: >-
+ You are a research assistant.
+ Generate 100 diverse search queries related to the topic:
+ {{inputs[0].topic}}
+
+ Write one query per line.
+ unwrap: true
+
+# Evaluate the search queries using a simple python expression
+- evaluate:
+ search_queries: "_.split('\n')"
+
+# Run the web search in parallel for each query
+- over: "_.search_queries"
+ map:
+ tool: web_search
+ arguments:
+ query: "_"
+ parallelism: 100
+
+# Collect the results from the web search
+- evaluate:
+ results: "'\n'.join([item.result for item in _])"
+
+# Summarize the results
+- prompt:
+ - role: system
+ content: >
+ You are a research summarizer. Create a comprehensive summary of the following research results on the topic {{inputs[0].topic}}.
+ The summary should be well-structured, informative, and highlight key findings and insights:
+ {{_.results}}
+ unwrap: true
+
+# Send the summary to Discord
+- tool: discord_webhook
+ arguments:
+ content: >
+ **Research Summary for {{inputs[0].topic}}**
+
+ {{_}}
+```
-## 🚀 Upcoming Release: v0.4 Alpha
+> [!TIP]
+> Julep is really useful when you want to build AI agents that can maintain context and state over long-term interactions. It's great for designing complex, multi-step workflows and integrating various tools and APIs directly into your agent's processes.
+>
+> In this example, Julep will automatically manage parallel executions, retry failed steps, resend API requests, and keep the tasks running reliably until completion.
-
-
-
+## Key Features
+
+1. 🧠 **Persistent AI Agents**: Remember context and information over long-term interactions.
+2. 💾 **Stateful Sessions**: Keep track of past interactions for personalized responses.
+3. 🔄 **Multi-Step Tasks**: Build complex, multi-step processes with loops and decision-making.
+4. ⏳ **Task Management**: Handle long-running tasks that can run indefinitely.
+5. 🛠️ **Built-in Tools**: Use built-in tools and external APIs in your tasks.
+6. 🔧 **Self-Healing**: Julep will automatically retry failed steps, resend messages, and generally keep your tasks running smoothly.
+7. 📚 **RAG**: Use Julep's document store to build a system for retrieving and using your own data.
+
+Julep is ideal for applications that require AI use cases beyond simple prompt-response models.
+
+## Why Julep vs. LangChain?
-We're excited to announce that v0.4 is currently in alpha! This release brings significant improvements and new features. Stay tuned for the official release.
+### Different Use Cases
-For a comprehensive overview of Julep's core concepts and upcoming features, check out our [detailed concepts guide](docs/julep-concepts.md).
+Think of LangChain and Julep as tools with different focuses within the AI development stack.
-Looking for the previous version? You can find the [v0.3 README here](v0.3_README.md).
+LangChain is great for creating sequences of prompts and managing interactions with AI models. It has a large ecosystem with lots of pre-built integrations, which makes it convenient if you want to get something up and running quickly. LangChain fits well with simple use cases that involve a linear chain of prompts and API calls.
----
+Julep, on the other hand, is more about building persistent AI agents that can remember things over long-term interactions. It shines when you need complex tasks that involve multiple steps, decision-making, and integration with various tools or APIs directly within the agent's process. It's designed from the ground up to manage persistent sessions and complex tasks.
-## Why Julep?
-We've built a lot of AI apps and understand the challenges in creating complex, stateful applications with multiple agents and workflows.
+Use Julep if you imagine building a complex AI assistant that needs to:
-**The Problems**
-1. Building AI applications with memory, knowledge, and tools is complex and time-consuming.
-2. Managing long-running tasks and complex workflows in AI applications is challenging.
-3. Integrating multiple tools and services into AI applications requires significant development effort.
+- Keep track of user interactions over days or weeks.
+- Perform scheduled tasks, like sending daily summaries or monitoring data sources.
+- Make decisions based on prior interactions or stored data.
+- Interact with multiple external services as part of its task.
----
-## Features
-- **Stateful Agents**: Create and manage agents with built-in conversation history and memory.
-- **Complex Workflows**: Define and execute multi-step tasks with branching, parallel execution, and error handling.
-- **Integrated Tools**: Easily incorporate a wide range of tools and external services into your AI applications.
-- **Flexible Session Management**: Support for various interaction patterns like one-to-many and many-to-one between agents and users.
-- **Built-in RAG**: Add, delete & update documents to provide context to your agents.
-- **Asynchronous Task Execution**: Run long-running tasks in the background with state management and resumability.
-- **Multi-Model Support**: Switch between different language models (OpenAI, Anthropic, Ollama) while preserving state.
-- **Task System**: Define and execute complex, multi-step workflows with parallel processing and error handling.
+Then Julep provides the infrastructure to support all that without you having to build it from scratch.
----
-## Quickstart
-### Option 1: Use the Julep Cloud
-Our hosted platform is in Beta!
+### Different Form Factor
-To get access:
-- Head over to https://platform.julep.ai
-- Generate and add your `JULEP_API_KEY` in `.env`
+Julep is a **platform** that includes a language for describing tasks, a server for running those tasks, and an SDK for interacting with the platform. To build something with Julep, you write a description of the task in `YAML`, and then run the task in the cloud.
-### Option 2: Install and run Julep locally
-Head over to docs on [self-hosting](https://docs.julep.ai/guides/self-hosting) to see how to run Julep locally!
+Julep is built for heavy-lifting, multi-step, and long-running tasks and there's no limit to how complex the task can be.
-### Installation
+LangChain is a **library** that includes a few tools and a framework for building linear chains of prompts and tools. To build something with LangChain, you typically write Python code that configures and runs the model chains you want to use.
+
+LangChain might be sufficient and quicker to implement for simple use cases that involve a linear chain of prompts and API calls.
+
+### In Summary
+
+Use LangChain when you need to manage AI model interactions and prompt sequences in a stateless or short-term context.
+
+Choose Julep when you need a robust framework for stateful agents with advanced task capabilities, persistent sessions, and complex task management.
+
+## Installation
+
+To get started with Julep, install it using [npm](https://www.npmjs.com/package/@julep/sdk) or [pip](https://pypi.org/project/julep/):
```bash
-pip install julep
+npm install @julep/sdk
```
-### Setting up the `client`
+or
-```python
-from julep import Client
-import os
+```bash
+pip install julep
+```
-base_url = os.environ.get("JULEP_API_URL")
-api_key = os.environ.get("JULEP_API_KEY")
+> [!NOTE]
+> Get your API key [here](https://dashboard-dev.julep.ai).
+>
+> While we are in beta, you can also reach out on [Discord](https://discord.com/invite/JTSBGRZrzj) to get rate limits lifted on your API key.
-client = Client(api_key=api_key, base_url=base_url)
-```
+> [!TIP]
+> 💻 Are you a _show me the code!™_ kind of person? We have created a ton of cookbooks for you to get started with. **Check out the [cookbooks](https://github.com/julep-ai/julep/tree/dev/cookbooks)** to browse through examples.
+>
+> 💡 There's also lots of ideas that you can build on top of Julep. **Check out the [list of ideas](https://github.com/julep-ai/julep/tree/dev/cookbooks/IDEAS.md)** to get some inspiration.
+
+## Python Quick Start 🐍
-### Create an agent
-Agent is the object to which LLM settings like model, temperature along with tools are scoped to.
+### Step 1: Create an Agent
```python
+import yaml
+from julep import Julep # or AsyncJulep
+
+client = Julep(api_key="your_julep_api_key")
+
agent = client.agents.create(
- name="Jessica",
- model="gpt-4",
- tools=[], # Tools defined here
- about="A helpful AI assistant",
- instructions=["Be polite", "Be concise"]
+ name="Storytelling Agent",
+ model="gpt-4o",
+ about="You are a creative storytelling agent that can craft engaging stories and generate comic panels based on ideas.",
+)
+
+# 🛠️ Add an image generation tool (DALL·E) to the agent
+client.agents.tools.create(
+ agent_id=agent.id,
+ name="image_generator",
+ description="Use this tool to generate images based on descriptions.",
+ integration={
+ "provider": "dalle",
+ "method": "generate_image",
+ "setup": {
+ "api_key": "your_openai_api_key",
+ },
+ },
)
```
-### Create a user
-User is the object which represents the user of the application.
+### Step 2: Create a Task that generates a story and comic strip
-Memories are formed and saved for each user and many users can talk to one agent.
+Let's define a multi-step task to create a story and generate a paneled comic strip based on an input idea:
```python
-user = client.users.create(
- name="Anon",
- about="Average nerdy techbro/girl spending 8 hours a day on a laptop",
+# 📋 Task
+# Create a task that takes an idea and creates a story and a 4-panel comic strip
+task_yaml = """
+name: Story and Comic Creator
+description: Create a story based on an idea and generate a 4-panel comic strip illustrating the story.
+
+main:
+ # Step 1: Generate a story and outline into 4 panels
+ - prompt:
+ - role: system
+ content: You are {{agent.name}}. {{agent.about}}
+ - role: user
+ content: >
+ Based on the idea '{{_.idea}}', write a short story suitable for a 4-panel comic strip.
+ Provide the story and a numbered list of 4 brief descriptions for each panel illustrating key moments in the story.
+ unwrap: true
+
+ # Step 2: Extract the panel descriptions and story
+ - evaluate:
+ story: _.split('1. ')[0].strip()
+ panels: re.findall(r'\\d+\\.\\s*(.*?)(?=\\d+\\.\\s*|$)', _)
+
+ # Step 3: Generate images for each panel using the image generator tool
+ - foreach:
+ in: _.panels
+ do:
+ tool: image_generator
+ arguments:
+ description: _
+
+ # Step 4: Generate a catchy title for the story
+ - prompt:
+ - role: system
+ content: You are {{agent.name}}. {{agent.about}}
+ - role: user
+ content: >
+ Based on the story below, generate a catchy title.
+
+ Story: {{outputs[1].story}}
+ unwrap: true
+
+ # Step 5: Return the story, the generated images, and the title
+ - return:
+ title: outputs[3]
+ story: outputs[1].story
+ comic_panels: "[output.image.url for output in outputs[2]]"
+"""
+
+task = client.tasks.create(
+ agent_id=agent.id,
+ **yaml.safe_load(task_yaml)
)
```
-### Create a session
-A "user" and an "agent" communicate in a "session". System prompt goes here.
+### Step 3: Execute the Task
```python
-situation_prompt = """You are Jessica, a helpful AI assistant.
-You're here to assist the user with any questions or tasks they might have."""
-session = client.sessions.create(
- user_id=user.id,
- agent_id=agent.id,
- situation=situation_prompt
+# 🚀 Execute the task with an input idea
+execution = client.executions.create(
+ task_id=task.id,
+ input={"idea": "A cat who learns to fly"}
)
-```
-### Start a stateful conversation
-`session.chat` controls the communication between the "agent" and the "user".
+# 🎉 Watch as the story and comic panels are generated
+for transition in client.executions.transitions.stream(execution_id=execution.id):
+ print(transition)
-It has two important arguments;
-- `recall`: Retrieves the previous conversations and memories.
-- `remember`: Saves the current conversation turn into the memory store.
+# 📦 Once the execution is finished, retrieve the results
+result = client.executions.get(execution_id=execution.id)
+```
+
+### Step 4: Chat with the Agent
-To keep the session stateful, both need to be `True`
+Start an interactive chat session with the agent:
```python
-user_msg = "Hey Jessica, can you help me with a task?"
-response = client.sessions.chat(
- session_id=session.id,
- messages=[
- {
- "role": "user",
- "content": user_msg,
- "name": "Anon",
- }
- ],
- recall=True,
- remember=True,
-)
+session = client.sessions.create(agent_id=agent.id)
-print(response.response[0][0].content)
+# 💬 Send messages to the agent
+while (message := input("Enter a message: ")) != "quit":
+ response = client.sessions.chat(
+ session_id=session.id,
+ message=message,
+ )
+
+ print(response)
```
----
+> [!TIP]
+> You can find the full python example [here](example.py).
-## Core Concepts
-### Agent
-An Agent in Julep is the main orchestrator of your application. It's backed by foundation models like GPT-4 or Claude and can use tools, documents, and execute complex tasks.
+## Node.js Quick Start 🟩
-### User
-Users in Julep represent the end-users of your application. They can be associated with sessions and have their own documents and metadata.
+### Step 1: Create an Agent
-### Session
-Sessions manage the interaction between users and agents. They maintain conversation history and context.
+```javascript
+import { Julep } from '@julep/sdk';
+import yaml from 'js-yaml';
-### Tool
-Tools are functions that agents can use to perform specific actions or retrieve information.
+const client = new Julep({ apiKey: 'your_julep_api_key' });
-### Doc
-Docs are collections of text snippets that can be associated with agents or users and are used for context retrieval.
+async function createAgent() {
+ const agent = await client.agents.create({
+ name: "Storytelling Agent",
+ model: "gpt-4",
+ about: "You are a creative storytelling agent that can craft engaging stories and generate comic panels based on ideas.",
+ });
-### Task
-Tasks are complex, multi-step workflows that can be defined and executed by agents.
+ // 🛠️ Add an image generation tool (DALL·E) to the agent
+ await client.agents.tools.create(agent.id, {
+ name: "image_generator",
+ description: "Use this tool to generate images based on descriptions.",
+ integration: {
+ provider: "dalle",
+ method: "generate_image",
+ setup: {
+ api_key: "your_openai_api_key",
+ },
+ },
+ });
-### Execution
-An Execution is an instance of a Task that has been started with some input. It goes through various states as it progresses.
+ return agent;
+}
+```
----
+### Step 2: Create a Task that generates a story and comic strip
+
+```javascript
+const taskYaml = `
+name: Story and Comic Creator
+description: Create a story based on an idea and generate a 4-panel comic strip illustrating the story.
+
+main:
+ # Step 1: Generate a story and outline into 4 panels
+ - prompt:
+ - role: system
+ content: You are {{agent.name}}. {{agent.about}}
+ - role: user
+ content: >
+ Based on the idea '{{_.idea}}', write a short story suitable for a 4-panel comic strip.
+ Provide the story and a numbered list of 4 brief descriptions for each panel illustrating key moments in the story.
+ unwrap: true
+
+ # Step 2: Extract the panel descriptions and story
+ - evaluate:
+ story: _.split('1. ')[0].trim()
+ panels: _.match(/\\d+\\.\\s*(.*?)(?=\\d+\\.\\s*|$)/g)
+
+ # Step 3: Generate images for each panel using the image generator tool
+ - foreach:
+ in: _.panels
+ do:
+ tool: image_generator
+ arguments:
+ description: _
+
+ # Step 4: Generate a catchy title for the story
+ - prompt:
+ - role: system
+ content: You are {{agent.name}}. {{agent.about}}
+ - role: user
+ content: >
+ Based on the story below, generate a catchy title.
+
+ Story: {{outputs[1].story}}
+ unwrap: true
+
+ # Step 5: Return the story, the generated images, and the title
+ - return:
+ title: outputs[3]
+ story: outputs[1].story
+ comic_panels: outputs[2].map(output => output.image.url)
+`;
+
+async function createTask(agent) {
+ const task = await client.tasks.create(agent.id, yaml.load(taskYaml));
+ return task;
+}
+```
-## API and SDKs
+### Step 3: Execute the Task
-To use the API directly or to take a look at request & response formats, authentication, available endpoints and more, please refer to the [API Documentation](https://docs.julep.ai/api-reference/agents-api/agents-api)
+```javascript
+async function executeTask(task) {
+ const execution = await client.executions.create(task.id, {
+ input: { idea: "A cat who learns to fly" }
+ });
-### Python SDK
+ // 🎉 Watch as the story and comic panels are generated
+ for await (const transition of client.executions.transitions.stream(execution.id)) {
+ console.log(transition);
+ }
-To install the Python SDK, run:
+ // 📦 Once the execution is finished, retrieve the results
+ const result = await client.executions.get(execution.id);
+ return result;
+}
+```
-```bash
-pip install julep
+### Step 4: Chat with the Agent
+
+```javascript
+async function chatWithAgent(agent) {
+ const session = await client.sessions.create({ agent_id: agent.id });
+
+ // 💬 Send messages to the agent
+ const rl = readline.createInterface({
+ input: process.stdin,
+ output: process.stdout
+ });
+
+ const chat = async () => {
+ rl.question("Enter a message (or 'quit' to exit): ", async (message) => {
+ if (message.toLowerCase() === 'quit') {
+ rl.close();
+ return;
+ }
+
+ const response = await client.sessions.chat(session.id, { message });
+ console.log(response);
+ chat();
+ });
+ };
+
+ chat();
+}
+
+// Run the example
+async function runExample() {
+ const agent = await createAgent();
+ const task = await createTask(agent);
+ const result = await executeTask(task);
+ console.log("Task Result:", result);
+ await chatWithAgent(agent);
+}
+
+runExample().catch(console.error);
```
-For more information on using the Python SDK, please refer to the [Python SDK documentation](https://docs.julep.ai/api-reference/python-sdk-docs).
+> [!TIP]
+> You can find the full Node.js example [here](example.js).
-### TypeScript SDK
-To install the TypeScript SDK using `npm`, run:
+## Components
-```bash
-npm install @julep/sdk
+Julep is made up of the following components:
+
+- **Julep Platform**: The Julep platform is a cloud service that runs your workflows. It includes a language for describing workflows, a server for running those workflows, and an SDK for interacting with the platform.
+- **Julep SDKs**: Julep SDKs are a set of libraries for building workflows. There are SDKs for Python and JavaScript, with more on the way.
+- **Julep API**: The Julep API is a RESTful API that you can use to interact with the Julep platform.
+
+### Mental Model
+
+
+
+
+
+Think of Julep as a platform that combines both client-side and server-side components to help you build advanced AI agents. Here's how to visualize it:
+
+1. **Your Application Code:**
+ - You use the Julep SDK in your application to define agents, tasks, and workflows.
+ - The SDK provides functions and classes that make it easy to set up and manage these components.
+
+2. **Julep Backend Service:**
+ - The SDK communicates with the Julep backend over the network.
+ - The backend handles execution of tasks, maintains session state, stores documents, and orchestrates workflows.
+
+3. **Integration with Tools and APIs:**
+ - Within your workflows, you can integrate external tools and services.
+ - The backend facilitates these integrations, so your agents can, for example, perform web searches, access databases, or call third-party APIs.
+
+In simpler terms:
+- Julep is a platform for building stateful AI agents.
+- You use the SDK (like a toolkit) in your code to define what your agents do.
+- The backend service (which you can think of as the engine) runs these definitions, manages state, and handles complexity.
+
+## Concepts
+
+Julep is built on several key technical components that work together to create powerful AI workflows:
+
+```mermaid
+graph TD
+ User[User] ==> Session[Session]
+ Session --> Agent[Agent]
+ Agent --> Tasks[Tasks]
+ Agent --> LLM[Large Language Model]
+ Tasks --> Tools[Tools]
+ Agent --> Documents[Documents]
+ Documents --> VectorDB[Vector Database]
+ Tasks --> Executions[Executions]
+
+ classDef client fill:#9ff,stroke:#333,stroke-width:1px;
+ class User client;
+
+ classDef core fill:#f9f,stroke:#333,stroke-width:2px;
+ class Agent,Tasks,Session core;
```
-For more information on using the TypeScript SDK, please refer to the [TypeScript SDK documentation](https://docs.julep.ai/api-reference/js-sdk-docs).
+- **Agents**: AI-powered entities backed by large language models (LLMs) that execute tasks and interact with users.
+- **Users**: Entities that interact with agents through sessions.
+- **Sessions**: Stateful interactions between agents and users, maintaining context across multiple exchanges.
+- **Tasks**: Multi-step, programmatic workflows that agents can execute, including various types of steps like prompts, tool calls, and conditional logic.
+- **Tools**: Integrations that extend an agent's capabilities, including user-defined functions, system tools, or third-party API integrations.
+- **Documents**: Text or data objects associated with agents or users, vectorized and stored for semantic search and retrieval.
+- **Executions**: Instances of tasks that have been initiated with specific inputs, with their own lifecycle and state machine.
+
+For a more detailed explanation of these concepts and their interactions, please refer to our [Concepts Documentation](https://github.com/julep-ai/julep/blob/dev/docs/julep-concepts.md).
+
+## Understanding Tasks
+
+Tasks are the core of Julep's workflow system. They allow you to define complex, multi-step AI workflows that your agents can execute. Here's a brief overview of task components:
+
+- **Name and Description**: Each task has a unique name and description for easy identification.
+- **Main Steps**: The core of a task, defining the sequence of actions to be performed.
+- **Tools**: Optional integrations that extend the capabilities of your agent during task execution.
+
+### Types of Workflow Steps
+
+Tasks in Julep can include various types of steps, allowing you to create complex and powerful workflows. Here's an overview of the available step types, organized by category:
+
+#### Common Steps
+
+1. **Prompt**: Send a message to the AI model and receive a response.
+ ```yaml
+ - prompt: "Analyze the following data: {{data}}"
+ ```
+
+2. **Tool Call**: Execute an integrated tool or API.
+ ```yaml
+ - tool: web_search
+ arguments:
+ query: "Latest AI developments"
+ ```
+
+3. **Evaluate**: Perform calculations or manipulate data.
+ ```yaml
+ - evaluate:
+ average_score: "sum(scores) / len(scores)"
+ ```
+
+4. **Wait for Input**: Pause workflow until input is received.
+ ```yaml
+ - wait_for_input:
+ info:
+ message: "Please provide additional information."
+ ```
+
+5. **Log**: Log a specified value or message.
+ ```yaml
+ - log: "Processing completed for item {{item_id}}"
+ ```
+
+#### Key-Value Steps
+
+6. **Get**: Retrieve a value from a key-value store.
+ ```yaml
+ - get: "user_preference"
+ ```
+
+7. **Set**: Assign a value to a key in a key-value store.
+ ```yaml
+ - set:
+ user_preference: "dark_mode"
+ ```
+
+#### Iteration Steps
+
+8. **Foreach**: Iterate over a collection and perform steps for each item.
+ ```yaml
+ - foreach:
+ in: "data_list"
+ do:
+ - log: "Processing item {{_}}"
+ ```
+
+9. **Map-Reduce**: Map over a collection and reduce the results.
+ ```yaml
+ - map_reduce:
+ over: "numbers"
+ map:
+ - evaluate:
+ squared: "_ ** 2"
+ reduce: "sum(results)"
+ ```
+
+10. **Parallel**: Run multiple steps in parallel.
+ ```yaml
+ - parallel:
+ - tool: web_search
+ arguments:
+ query: "AI news"
+ - tool: weather_check
+ arguments:
+ location: "New York"
+ ```
+
+#### Conditional Steps
+
+11. **If-Else**: Conditional execution of steps.
+ ```yaml
+ - if: "score > 0.8"
+ then:
+ - log: "High score achieved"
+ else:
+ - log: "Score needs improvement"
+ ```
+
+12. **Switch**: Execute steps based on multiple conditions.
+ ```yaml
+ - switch:
+ - case: "category == 'A'"
+ then:
+ - log: "Category A processing"
+ - case: "category == 'B'"
+ then:
+ - log: "Category B processing"
+ - case: "_" # Default case
+ then:
+ - log: "Unknown category"
+ ```
+
+#### Other Control Flow
+
+13. **Sleep**: Pause the workflow for a specified duration.
+ ```yaml
+ - sleep:
+ seconds: 30
+ ```
+
+14. **Return**: Return a value from the workflow.
+ ```yaml
+ - return:
+ result: "Task completed successfully"
+ ```
+
+15. **Yield**: Run a subworkflow and await its completion.
+ ```yaml
+ - yield:
+ workflow: "data_processing_subflow"
+ arguments:
+ input_data: "{{raw_data}}"
+ ```
+
+16. **Error**: Handle errors by specifying an error message.
+ ```yaml
+ - error: "Invalid input provided"
+ ```
+
+Each step type serves a specific purpose in building sophisticated AI workflows. This categorization helps in understanding the various control flows and operations available in Julep tasks.
+
+
+## Tool Types
+
+Agents can be given access to a number of "tools" -- any programmatic interface that a foundation model can "call" with a set of inputs to achieve a goal. For example, it might use a `web_search(query)` tool to search the Internet for some information.
+
+Unlike agent frameworks, julep is a _backend_ that manages agent execution. Clients can interact with agents using our SDKs. julep takes care of executing tasks and running integrations.
+
+Tools in julep can be one of:
+
+### User-defined `function`s
+
+These are function signatures that you can give the model to choose from, similar to how [openai]'s function-calling works. An example:
+
+```yaml
+ name: Example system tool task
+ description: List agents using system call
+
+ tools:
+ - name: send_notification
+ description: Send a notification to the user
+ type: function
+ function:
+ parameters:
+ type: object
+ properties:
+ text:
+ type: string
+ description: Content of the notification
+
+ main:
+ - tool: send_notification
+ arguments:
+ content: hi
+```
+
+ Whenever julep encounters a _user-defined function_, it pauses, giving control back to the client and waits for the client to run the function call and give the results back to julep.
+
+> [!TIP]
+> **Example cookbook**: [cookbooks/13-Error_Handling_and_Recovery.py](https://github.com/julep-ai/julep/blob/dev/cookbooks/13-Error_Handling_and_Recovery.py)
+
+### `system` tools
+Built-in tools that can be used to call the julep APIs themselves, like triggering a task execution, appending to a metadata field, etc.
+`system` tools are built into the backend. They get executed automatically when needed. They do _not_ require any action from the client-side.
+
+For example,
+
+ ```yaml
+ name: Example system tool task
+ description: List agents using system call
+
+ tools:
+ - name: list_agents
+ description: List all agents
+ type: system
+ system:
+ resource: agent
+ operation: list
+ main:
+ - tool: list_agents
+ arguments:
+ limit: 10
+ ```
+
+> [!TIP]
+> **Example cookbook**: [cookbooks/10-Document_Management_and_Search.py](https://github.com/julep-ai/julep/blob/dev/cookbooks/10-Document_Management_and_Search.py)
+
+### Built-in `integration`s
+Julep comes with a number of built-in integrations (as described in the section below). `integration` tools are directly executed on the julep backend. Any additional parameters needed by them at runtime can be set in the agent/session/user's `metadata` fields.
+
+> [!TIP]
+> **Example cookbook**: [cookbooks/01-Website_Crawler_using_Spider.ipynb](https://github.com/julep-ai/julep/blob/dev/cookbooks/01-Website_Crawler_using_Spider.ipynb)
+
+julep backend ships with integrated third party tools from the following providers:
+- [composio](https://composio.dev) \*\*
+- [anon](https://anon.com) \*\*
+- [langchain toolkits](https://python.langchain.com/v0.2/docs/integrations/toolkits/). Support for _Github, Gitlab, Gmail, Jira, MultiOn, Slack_ toolkits is planned.
+
+\*\* Since _composio_ and _anon_ are third-party providers, their tools require setting up account linking.
+
+
+### Direct `api_call`s
+
+julep can also directly make api calls during workflow executions as tool calls. Same as `integration`s, additional runtime parameters are loaded from `metadata` fields.
+
+For example,
+
+ ```yaml
+ name: Example api_call task
+ tools:
+ - type: api_call
+ name: hello
+ api_call:
+ method: GET
+ url: https://httpbin.org/get
+ main:
+ - tool: hello
+ arguments:
+ params:
+ test: _.input
+ ```
+
+## Integrations
+
+Julep supports various integrations that extend the capabilities of your AI agents. Here's a list of available integrations and their supported arguments:
+
+### Brave Search
+
+```yaml
+setup:
+ api_key: string # The API key for Brave Search
+
+arguments:
+ query: string # The search query for searching with Brave
+
+output:
+ result: string # The result of the Brave Search
+```
----
+> [!TIP]
+> **Example cookbook**: [cookbooks/03-SmartResearcher_With_WebSearch.ipynb](https://github.com/julep-ai/julep/blob/dev/cookbooks/03-SmartResearcher_With_WebSearch.ipynb)
-## Deployment
-Check out the [self-hosting guide](https://docs.julep.ai/agents/self-hosting) to host the platform yourself.
+### BrowserBase
-If you want to deploy Julep to production, [let's hop on a call](https://cal.com/ishitaj/15min)!
+```yaml
+setup:
+ api_key: string # The API key for BrowserBase
+ project_id: string # The project ID for BrowserBase
+ session_id: string # (Optional) The session ID for BrowserBase
-We'll help you customise the platform and help you get set up with:
-- Multi-tenancy
-- Reverse proxy along with authentication and authorisation
-- Self-hosted LLMs
-- & more
+arguments:
+ urls: list[string] # The URLs for loading with BrowserBase
----
-## Contributing
-We welcome contributions from the community to help improve and expand the Julep AI platform. Please see our [Contributing Guidelines](CONTRIBUTING.md) for more information on how to get started.
+output:
+ documents: list # The documents loaded from the URLs
+```
----
-## License
-Julep AI is released under the Apache 2.0 License. See the [LICENSE](LICENSE) file for more details.
+### Email
----
-## Contact and Support
-If you have any questions, need assistance, or want to get in touch with the Julep AI team, please use the following channels:
+```yaml
+setup:
+ host: string # The host of the email server
+ port: integer # The port of the email server
+ user: string # The username of the email server
+ password: string # The password of the email server
+
+arguments:
+ to: string # The email address to send the email to
+ from: string # The email address to send the email from
+ subject: string # The subject of the email
+ body: string # The body of the email
+
+output:
+ success: boolean # Whether the email was sent successfully
+```
+
+> [!TIP]
+> **Example cookbook**: [cookbooks/00-Devfest-Email-Assistant.ipynb](https://github.com/julep-ai/julep/blob/dev/cookbooks/00-Devfest-Email-Assistant.ipynb)
+
+### Spider
+
+```yaml
+setup:
+ spider_api_key: string # The API key for Spider
+
+arguments:
+ url: string # The URL for which to fetch data
+ mode: string # The type of crawlers (default: "scrape")
+ params: dict # (Optional) The parameters for the Spider API
+
+output:
+ documents: list # The documents returned from the spider
+```
+
+> [!TIP]
+> **Example cookbook**: [cookbooks/01-Website_Crawler_using_Spider.ipynb](https://github.com/julep-ai/julep/blob/dev/cookbooks/01-Website_Crawler_using_Spider.ipynb)
+
+### Weather
+
+```yaml
+setup:
+ openweathermap_api_key: string # The API key for OpenWeatherMap
+
+arguments:
+ location: string # The location for which to fetch weather data
+
+output:
+ result: string # The weather data for the specified location
+```
+
+> [!TIP]
+> **Example cookbook**: [cookbooks/04-TripPlanner_With_Weather_And_WikiInfo.ipynb](https://github.com/julep-ai/julep/blob/dev/cookbooks/04-TripPlanner_With_Weather_And_WikiInfo.ipynb)
+
+### Wikipedia
+
+```yaml
+arguments:
+ query: string # The search query string
+ load_max_docs: integer # Maximum number of documents to load (default: 2)
+
+output:
+ documents: list # The documents returned from the Wikipedia search
+```
+
+> [!TIP]
+> **Example cookbook**: [cookbooks/04-TripPlanner_With_Weather_And_WikiInfo.ipynb](https://github.com/julep-ai/julep/blob/dev/cookbooks/04-TripPlanner_With_Weather_And_WikiInfo.ipynb)
+
+These integrations can be used within your tasks to extend the capabilities of your AI agents. For more detailed information on how to use these integrations in your workflows, please refer to our [Integrations Documentation](https://docs.julep.ai/integrations).
+
+## Other Features
+
+Julep offers a range of advanced features to enhance your AI workflows:
+
+### Adding Tools to Agents
+
+Extend your agent's capabilities by integrating external tools and APIs:
+
+```python
+client.agents.tools.create(
+ agent_id=agent.id,
+ name="web_search",
+ description="Search the web for information.",
+ integration={
+ "provider": "brave",
+ "method": "search",
+ "setup": {"api_key": "your_brave_api_key"},
+ },
+)
+```
+
+### Managing Sessions and Users
+
+Julep provides robust session management for persistent interactions:
+
+```python
+session = client.sessions.create(
+ agent_id=agent.id,
+ user_id=user.id,
+ context_overflow="adaptive"
+)
+
+# Continue conversation in the same session
+response = client.sessions.chat(
+ session_id=session.id,
+ messages=[
+ {
+ "role": "user",
+ "content": "Follow up on the previous conversation."
+ }
+ ]
+)
+```
+
+### Document Integration and Search
+
+Easily manage and search through documents for your agents:
+
+```python
+# Upload a document
+document = client.agents.docs.create(
+ title="AI advancements",
+ content="AI is changing the world...",
+ metadata={"category": "research_paper"}
+)
+
+# Search documents
+results = client.agents.docs.search(
+ text="AI advancements",
+ metadata_filter={"category": "research_paper"}
+)
+```
+
+## Local Quickstart
+
+**Requirements**:
+- latest docker compose installed
+
+**Steps**:
+1. `git clone https://github.com/julep-ai/julep.git`
+2. `cd julep`
+3. `docker volume create cozo_backup`
+4. `docker volume create cozo_data`
+5. `cp .env.example .env # <-- Edit this file`
+6. `docker compose --env-file .env --profile temporal-ui --profile single-tenant --profile self-hosted-db up --build`
+
+## SDK Reference
+
+- [Node.js SDK](https://github.com/julep-ai/node-sdk/blob/main/api.md)
+- [Python SDK](https://github.com/julep-ai/python-sdk/blob/main/api.md)
+
+## API Reference
+
+Explore our comprehensive API documentation to learn more about agents, tasks, and executions:
+
+- [Agents API](https://api.julep.ai/api/docs#tag/agents)
+- [Tasks API](https://api.julep.ai/api/docs#tag/tasks)
+- [Executions API](https://api.julep.ai/api/docs#tag/executions)
+
+
+
-## Why Julep?
-We've built a lot of AI apps and understand how difficult it is to evaluate hundreds of tools, techniques, and models, and then make them work well together.
+
+
+
+
+
+
+
+
+
-**The Problems**
+*****
-1. The barrier to making LLM apps with memory, knowledge & tools is too high.
-2. Agentic behavior is hard to control when done through multi-agent frameworks.
+> [!NOTE]
+> 👨💻 Here for the devfest.ai event? Join our [Discord](https://discord.com/invite/JTSBGRZrzj) and check out the details below.
-{% embed url="https://youtu.be/LhQMBAehL_Q" %}
+
+🌟 Contributors and DevFest.AI Participants (Click to expand)
-## Features
+## 🌟 Call for Contributors!
-* **Statefulness By Design**: Manages context by default. Uses [CozoDB](https://cozodb.org/) to save & retrieve conversation history, OpenAPI specification tools & documents.
-* **Support for Users & Agents**: Allows creating different user <--> agent interactions like `One Agent <-> Many Users`; etc. Read more: [Broken link](broken-reference "mention")
-* **Use and switch between any LLMs anytime**: Switch and use different LLMs, providers, and models, self-hosted or otherwise.
-* **90+ tools built-in**: Connect your AI app to 150+ third-party applications using [Composio](https://docs.composio.dev/framework/julep/) natively.
-* **Production-ready**: Julep comes ready to be deployed to production using Docker Compose. Support for k8s coming soon!
-* **GitHub Actions-like workflows for tasks**: Define agentic workflows to be executed asynchronously with one or more without worrying about timeouts or multiplying hallucinations. (coming soon!)
+We're excited to welcome new contributors to the Julep project! We've created several "good first issues" to help you get started. Here's how you can contribute:
+
+1. Check out our [CONTRIBUTING.md](https://github.com/julep-ai/julep/blob/dev/CONTRIBUTING.md) file for guidelines on how to contribute.
+2. Browse our [good first issues](https://github.com/julep-ai/julep/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22) to find a task that interests you.
+3. If you have any questions or need help, don't hesitate to reach out on our [Discord](https://discord.com/invite/JTSBGRZrzj) channel.
+
+Your contributions, big or small, are valuable to us. Let's build something amazing together! 🚀
+
+### 🎉 DevFest.AI October 2024
+
+Exciting news! We're participating in DevFest.AI throughout October 2024! 🗓️
+
+- Contribute to Julep during this event and get a chance to win awesome Julep merch and swag! 🎁
+- Join developers from around the world in contributing to AI repositories and participating in amazing events.
+- A big thank you to DevFest.AI for organizing this fantastic initiative!
+
+> [!TIP]
+> Ready to join the fun? **[Tweet that you are participating](https://twitter.com/intent/tweet?text=Pumped%20to%20be%20participating%20in%20%40devfestai%20with%20%40julep_ai%20building%20%23ai%20%23agents%20%23workflows%20Let's%20gooo!%20https%3A%2F%2Fgit.new%2Fjulep)** and let's get coding! 🖥️
+
+> [!NOTE]
+> Get your API key [here](https://dashboard-dev.julep.ai).
+>
+> While we are in beta, you can also reach out on [Discord](https://discord.com/invite/JTSBGRZrzj) to get rate limits lifted on your API key.
+
+![Julep DevFest.AI](https://media.giphy.com/media/YjyUeyotft6epaMHtU/giphy.gif)
+
+
+
+
+
+
+
📖 Table of Contents
+
+- [🌟 Call for Contributors!](#-call-for-contributors)
+ - [🎉 DevFest.AI October 2024](#-devfestai-october-2024)
+- [Introduction](#introduction)
+- [Quick Example](#quick-example)
+- [Key Features](#key-features)
+- [Why Julep vs. LangChain?](#why-julep-vs-langchain)
+ - [Different Use Cases](#different-use-cases)
+ - [Different Form Factor](#different-form-factor)
+ - [In Summary](#in-summary)
+- [Installation](#installation)
+- [Python Quick Start 🐍](#python-quick-start-)
+ - [Step 1: Create an Agent](#step-1-create-an-agent)
+ - [Step 2: Create a Task that generates a story and comic strip](#step-2-create-a-task-that-generates-a-story-and-comic-strip)
+ - [Step 3: Execute the Task](#step-3-execute-the-task)
+ - [Step 4: Chat with the Agent](#step-4-chat-with-the-agent)
+- [Node.js Quick Start 🟩](#nodejs-quick-start-)
+ - [Step 1: Create an Agent](#step-1-create-an-agent-1)
+ - [Step 2: Create a Task that generates a story and comic strip](#step-2-create-a-task-that-generates-a-story-and-comic-strip-1)
+ - [Step 3: Execute the Task](#step-3-execute-the-task-1)
+ - [Step 4: Chat with the Agent](#step-4-chat-with-the-agent-1)
+- [Components](#components)
+ - [Mental Model](#mental-model)
+- [Concepts](#concepts)
+- [Understanding Tasks](#understanding-tasks)
+ - [Types of Workflow Steps](#types-of-workflow-steps)
+ - [Common Steps](#common-steps)
+ - [Key-Value Steps](#key-value-steps)
+ - [Iteration Steps](#iteration-steps)
+ - [Conditional Steps](#conditional-steps)
+ - [Other Control Flow](#other-control-flow)
+- [Advanced Features](#advanced-features)
+ - [Adding Tools to Agents](#adding-tools-to-agents)
+ - [Managing Sessions and Users](#managing-sessions-and-users)
+ - [Document Integration and Search](#document-integration-and-search)
+- [Integrations](#integrations)
+ - [Brave Search](#brave-search)
+ - [BrowserBase](#browserbase)
+ - [Email](#email)
+ - [Spider](#spider)
+ - [Weather](#weather)
+ - [Wikipedia](#wikipedia)
+- [SDK Reference](#sdk-reference)
+- [API Reference](#api-reference)
+
+
+
+
+## Introduction
+
+Julep is a platform for creating AI agents that remember past interactions and can perform complex tasks. It offers long-term memory and manages multi-step processes.
+
+Julep enables the creation of multi-step tasks incorporating decision-making, loops, parallel processing, and integration with numerous external tools and APIs.
+
+While many AI applications are limited to simple, linear chains of prompts and API calls with minimal branching, Julep is built to handle more complex scenarios.
+
+It supports:
+- Intricate, multi-step processes
+- Dynamic decision-making
+- Parallel execution
+
+> [!TIP]
+> Imagine you want to build an AI agent that can do more than just answer simple questions—it needs to handle complex tasks, remember past interactions, and maybe even use other tools or APIs. That's where Julep comes in.
+
+## Quick Example
+
+Imagine a Research AI agent that can do the following:
+ 1. Take a topic,
+ 2. Come up with 100 search queries for that topic,
+ 3. Perform those web searches in parallel,
+ 4. Summarize the results,
+ 5. Send the summary to Discord
+
+In Julep, this would be a single task under 80 lines of code and run fully managed all on its own. All of the steps are executed on Julep's own servers and you don't need to lift a finger. Here's a working example:
+
+```yaml
+name: Research Agent
+
+# Optional: Define the input schema for the task
+input_schema:
+ type: object
+ properties:
+ topic:
+ type: string
+ description: The main topic to research
+
+# Define the tools that the agent can use
+tools:
+- name: web_search
+ type: integration
+ integration:
+ provider: brave
+ setup:
+ api_key: "YOUR_BRAVE_API_KEY"
+
+- name: discord_webhook
+ type: api_call
+ api_call:
+ url: "YOUR_DISCORD_WEBHOOK_URL"
+ method: POST
+ headers:
+ Content-Type: application/json
+
+# Special variables:
+# - inputs: for accessing the input to the task
+# - outputs: for accessing the output of previous steps
+# - _: for accessing the output of the previous step
+
+# Define the main workflow
+main:
+- prompt:
+ - role: system
+ content: >-
+ You are a research assistant.
+ Generate 100 diverse search queries related to the topic:
+ {{inputs[0].topic}}
+
+ Write one query per line.
+ unwrap: true
+
+# Evaluate the search queries using a simple python expression
+- evaluate:
+ search_queries: "_.split('\n')"
+
+# Run the web search in parallel for each query
+- over: "_.search_queries"
+ map:
+ tool: web_search
+ arguments:
+ query: "_"
+ parallelism: 100
+
+# Collect the results from the web search
+- evaluate:
+ results: "'\n'.join([item.result for item in _])"
+
+# Summarize the results
+- prompt:
+ - role: system
+ content: >
+ You are a research summarizer. Create a comprehensive summary of the following research results on the topic {{inputs[0].topic}}.
+ The summary should be well-structured, informative, and highlight key findings and insights:
+ {{_.results}}
+ unwrap: true
+
+# Send the summary to Discord
+- tool: discord_webhook
+ arguments:
+ content: >
+ **Research Summary for {{inputs[0].topic}}**
+
+ {{_}}
+```
+
+> [!TIP]
+> Julep is really useful when you want to build AI agents that can maintain context and state over long-term interactions. It's great for designing complex, multi-step workflows and integrating various tools and APIs directly into your agent's processes.
+>
+> In this example, Julep will automatically manage parallel executions, retry failed steps, resend API requests, and keep the tasks running reliably until completion.
+
+## Key Features
+
+1. 🧠 **Persistent AI Agents**: Remember context and information over long-term interactions.
+2. 💾 **Stateful Sessions**: Keep track of past interactions for personalized responses.
+3. 🔄 **Multi-Step Tasks**: Build complex, multi-step processes with loops and decision-making.
+4. ⏳ **Task Management**: Handle long-running tasks that can run indefinitely.
+5. 🛠️ **Built-in Tools**: Use built-in tools and external APIs in your tasks.
+6. 🔧 **Self-Healing**: Julep will automatically retry failed steps, resend messages, and generally keep your tasks running smoothly.
+7. 📚 **RAG**: Use Julep's document store to build a system for retrieving and using your own data.
+
+Julep is ideal for applications that require AI use cases beyond simple prompt-response models.
+
+## Why Julep vs. LangChain?
+
+### Different Use Cases
+
+Think of LangChain and Julep as tools with different focuses within the AI development stack.
+
+LangChain is great for creating sequences of prompts and managing interactions with AI models. It has a large ecosystem with lots of pre-built integrations, which makes it convenient if you want to get something up and running quickly. LangChain fits well with simple use cases that involve a linear chain of prompts and API calls.
+
+Julep, on the other hand, is more about building persistent AI agents that can remember things over long-term interactions. It shines when you need complex tasks that involve multiple steps, decision-making, and integration with various tools or APIs directly within the agent's process. It's designed from the ground up to manage persistent sessions and complex tasks.
+
+Use Julep if you imagine building a complex AI assistant that needs to:
+
+- Keep track of user interactions over days or weeks.
+- Perform scheduled tasks, like sending daily summaries or monitoring data sources.
+- Make decisions based on prior interactions or stored data.
+- Interact with multiple external services as part of its task.
+
+Then Julep provides the infrastructure to support all that without you having to build it from scratch.
+
+### Different Form Factor
+
+Julep is a **platform** that includes a language for describing tasks, a server for running those tasks, and an SDK for interacting with the platform. To build something with Julep, you write a description of the task in `YAML`, and then run the task in the cloud.
+
+Julep is built for heavy-lifting, multi-step, and long-running tasks and there's no limit to how complex the task can be.
+
+LangChain is a **library** that includes a few tools and a framework for building linear chains of prompts and tools. To build something with LangChain, you typically write Python code that configures and runs the model chains you want to use.
+
+LangChain might be sufficient and quicker to implement for simple use cases that involve a linear chain of prompts and API calls.
+
+### In Summary
+
+Use LangChain when you need to manage AI model interactions and prompt sequences in a stateless or short-term context.
+
+Choose Julep when you need a robust framework for stateful agents with advanced task capabilities, persistent sessions, and complex task management.
+
+## Installation
+
+To get started with Julep, install it using [npm](https://www.npmjs.com/package/@julep/sdk) or [pip](https://pypi.org/project/julep/):
+
+```bash
+npm install @julep/sdk
+```
+
+or
+
+```bash
+pip install julep
+```
+
+> [!NOTE]
+> Get your API key [here](https://dashboard-dev.julep.ai).
+>
+> While we are in beta, you can also reach out on [Discord](https://discord.com/invite/JTSBGRZrzj) to get rate limits lifted on your API key.
+
+> [!TIP]
+> 💻 Are you a _show me the code!™_ kind of person? We have created a ton of cookbooks for you to get started with. **Check out the [cookbooks](https://github.com/julep-ai/julep/tree/dev/cookbooks)** to browse through examples.
+>
+> 💡 There's also lots of ideas that you can build on top of Julep. **Check out the [list of ideas](https://github.com/julep-ai/julep/tree/dev/cookbooks/IDEAS.md)** to get some inspiration.
+
+## Python Quick Start 🐍
+
+### Step 1: Create an Agent
+
+```python
+import yaml
+from julep import Julep # or AsyncJulep
+
+client = Julep(api_key="your_julep_api_key")
+
+agent = client.agents.create(
+ name="Storytelling Agent",
+ model="gpt-4o",
+ about="You are a creative storytelling agent that can craft engaging stories and generate comic panels based on ideas.",
+)
+
+# 🛠️ Add an image generation tool (DALL·E) to the agent
+client.agents.tools.create(
+ agent_id=agent.id,
+ name="image_generator",
+ description="Use this tool to generate images based on descriptions.",
+ integration={
+ "provider": "dalle",
+ "method": "generate_image",
+ "setup": {
+ "api_key": "your_openai_api_key",
+ },
+ },
+)
+```
+
+### Step 2: Create a Task that generates a story and comic strip
+
+Let's define a multi-step task to create a story and generate a paneled comic strip based on an input idea:
+
+```python
+# 📋 Task
+# Create a task that takes an idea and creates a story and a 4-panel comic strip
+task_yaml = """
+name: Story and Comic Creator
+description: Create a story based on an idea and generate a 4-panel comic strip illustrating the story.
+
+main:
+ # Step 1: Generate a story and outline into 4 panels
+ - prompt:
+ - role: system
+ content: You are {{agent.name}}. {{agent.about}}
+ - role: user
+ content: >
+ Based on the idea '{{_.idea}}', write a short story suitable for a 4-panel comic strip.
+ Provide the story and a numbered list of 4 brief descriptions for each panel illustrating key moments in the story.
+ unwrap: true
+
+ # Step 2: Extract the panel descriptions and story
+ - evaluate:
+ story: _.split('1. ')[0].strip()
+ panels: re.findall(r'\\d+\\.\\s*(.*?)(?=\\d+\\.\\s*|$)', _)
+
+ # Step 3: Generate images for each panel using the image generator tool
+ - foreach:
+ in: _.panels
+ do:
+ tool: image_generator
+ arguments:
+ description: _
+
+ # Step 4: Generate a catchy title for the story
+ - prompt:
+ - role: system
+ content: You are {{agent.name}}. {{agent.about}}
+ - role: user
+ content: >
+ Based on the story below, generate a catchy title.
+
+ Story: {{outputs[1].story}}
+ unwrap: true
+
+ # Step 5: Return the story, the generated images, and the title
+ - return:
+ title: outputs[3]
+ story: outputs[1].story
+ comic_panels: "[output.image.url for output in outputs[2]]"
+"""
+
+task = client.tasks.create(
+ agent_id=agent.id,
+ **yaml.safe_load(task_yaml)
+)
+```
+
+### Step 3: Execute the Task
+
+```python
+# 🚀 Execute the task with an input idea
+execution = client.executions.create(
+ task_id=task.id,
+ input={"idea": "A cat who learns to fly"}
+)
+
+# 🎉 Watch as the story and comic panels are generated
+for transition in client.executions.transitions.stream(execution_id=execution.id):
+ print(transition)
+
+# 📦 Once the execution is finished, retrieve the results
+result = client.executions.get(execution_id=execution.id)
+```
+
+### Step 4: Chat with the Agent
+
+Start an interactive chat session with the agent:
+
+```python
+session = client.sessions.create(agent_id=agent.id)
+
+# 💬 Send messages to the agent
+while (message := input("Enter a message: ")) != "quit":
+ response = client.sessions.chat(
+ session_id=session.id,
+ message=message,
+ )
+
+ print(response)
+```
+
+> [!TIP]
+> You can find the full python example [here](example.py).
+
+
+## Node.js Quick Start 🟩
+
+### Step 1: Create an Agent
+
+```javascript
+import { Julep } from '@julep/sdk';
+import yaml from 'js-yaml';
+
+const client = new Julep({ apiKey: 'your_julep_api_key' });
+
+async function createAgent() {
+ const agent = await client.agents.create({
+ name: "Storytelling Agent",
+ model: "gpt-4",
+ about: "You are a creative storytelling agent that can craft engaging stories and generate comic panels based on ideas.",
+ });
+
+ // 🛠️ Add an image generation tool (DALL·E) to the agent
+ await client.agents.tools.create(agent.id, {
+ name: "image_generator",
+ description: "Use this tool to generate images based on descriptions.",
+ integration: {
+ provider: "dalle",
+ method: "generate_image",
+ setup: {
+ api_key: "your_openai_api_key",
+ },
+ },
+ });
+
+ return agent;
+}
+```
+
+### Step 2: Create a Task that generates a story and comic strip
+
+```javascript
+const taskYaml = `
+name: Story and Comic Creator
+description: Create a story based on an idea and generate a 4-panel comic strip illustrating the story.
+
+main:
+ # Step 1: Generate a story and outline into 4 panels
+ - prompt:
+ - role: system
+ content: You are {{agent.name}}. {{agent.about}}
+ - role: user
+ content: >
+ Based on the idea '{{_.idea}}', write a short story suitable for a 4-panel comic strip.
+ Provide the story and a numbered list of 4 brief descriptions for each panel illustrating key moments in the story.
+ unwrap: true
+
+ # Step 2: Extract the panel descriptions and story
+ - evaluate:
+ story: _.split('1. ')[0].trim()
+ panels: _.match(/\\d+\\.\\s*(.*?)(?=\\d+\\.\\s*|$)/g)
+
+ # Step 3: Generate images for each panel using the image generator tool
+ - foreach:
+ in: _.panels
+ do:
+ tool: image_generator
+ arguments:
+ description: _
+
+ # Step 4: Generate a catchy title for the story
+ - prompt:
+ - role: system
+ content: You are {{agent.name}}. {{agent.about}}
+ - role: user
+ content: >
+ Based on the story below, generate a catchy title.
+
+ Story: {{outputs[1].story}}
+ unwrap: true
+
+ # Step 5: Return the story, the generated images, and the title
+ - return:
+ title: outputs[3]
+ story: outputs[1].story
+ comic_panels: outputs[2].map(output => output.image.url)
+`;
+
+async function createTask(agent) {
+ const task = await client.tasks.create(agent.id, yaml.load(taskYaml));
+ return task;
+}
+```
+
+### Step 3: Execute the Task
+
+```javascript
+async function executeTask(task) {
+ const execution = await client.executions.create(task.id, {
+ input: { idea: "A cat who learns to fly" }
+ });
+
+ // 🎉 Watch as the story and comic panels are generated
+ for await (const transition of client.executions.transitions.stream(execution.id)) {
+ console.log(transition);
+ }
+
+ // 📦 Once the execution is finished, retrieve the results
+ const result = await client.executions.get(execution.id);
+ return result;
+}
+```
+
+### Step 4: Chat with the Agent
+
+```javascript
+async function chatWithAgent(agent) {
+ const session = await client.sessions.create({ agent_id: agent.id });
+
+ // 💬 Send messages to the agent
+ const rl = readline.createInterface({
+ input: process.stdin,
+ output: process.stdout
+ });
+
+ const chat = async () => {
+ rl.question("Enter a message (or 'quit' to exit): ", async (message) => {
+ if (message.toLowerCase() === 'quit') {
+ rl.close();
+ return;
+ }
+
+ const response = await client.sessions.chat(session.id, { message });
+ console.log(response);
+ chat();
+ });
+ };
+
+ chat();
+}
+
+// Run the example
+async function runExample() {
+ const agent = await createAgent();
+ const task = await createTask(agent);
+ const result = await executeTask(task);
+ console.log("Task Result:", result);
+ await chatWithAgent(agent);
+}
+
+runExample().catch(console.error);
+```
+
+> [!TIP]
+> You can find the full Node.js example [here](example.js).
+
+## Components
+
+Julep is made up of the following components:
+
+- **Julep Platform**: The Julep platform is a cloud service that runs your workflows. It includes a language for describing workflows, a server for running those workflows, and an SDK for interacting with the platform.
+- **Julep SDKs**: Julep SDKs are a set of libraries for building workflows. There are SDKs for Python and JavaScript, with more on the way.
+- **Julep API**: The Julep API is a RESTful API that you can use to interact with the Julep platform.
+
+### Mental Model
+
+
+
+
+
+Think of Julep as a platform that combines both client-side and server-side components to help you build advanced AI agents. Here's how to visualize it:
+
+1. **Your Application Code:**
+ - You use the Julep SDK in your application to define agents, tasks, and workflows.
+ - The SDK provides functions and classes that make it easy to set up and manage these components.
+
+2. **Julep Backend Service:**
+ - The SDK communicates with the Julep backend over the network.
+ - The backend handles execution of tasks, maintains session state, stores documents, and orchestrates workflows.
+
+3. **Integration with Tools and APIs:**
+ - Within your workflows, you can integrate external tools and services.
+ - The backend facilitates these integrations, so your agents can, for example, perform web searches, access databases, or call third-party APIs.
+
+In simpler terms:
+- Julep is a platform for building stateful AI agents.
+- You use the SDK (like a toolkit) in your code to define what your agents do.
+- The backend service (which you can think of as the engine) runs these definitions, manages state, and handles complexity.
+
+## Concepts
+
+Julep is built on several key technical components that work together to create powerful AI workflows:
+
+```mermaid
+graph TD
+ User[User] ==> Session[Session]
+ Session --> Agent[Agent]
+ Agent --> Tasks[Tasks]
+ Agent --> LLM[Large Language Model]
+ Tasks --> Tools[Tools]
+ Agent --> Documents[Documents]
+ Documents --> VectorDB[Vector Database]
+ Tasks --> Executions[Executions]
+
+ classDef client fill:#9ff,stroke:#333,stroke-width:1px;
+ class User client;
+
+ classDef core fill:#f9f,stroke:#333,stroke-width:2px;
+ class Agent,Tasks,Session core;
+```
+
+- **Agents**: AI-powered entities backed by large language models (LLMs) that execute tasks and interact with users.
+- **Users**: Entities that interact with agents through sessions.
+- **Sessions**: Stateful interactions between agents and users, maintaining context across multiple exchanges.
+- **Tasks**: Multi-step, programmatic workflows that agents can execute, including various types of steps like prompts, tool calls, and conditional logic.
+- **Tools**: Integrations that extend an agent's capabilities, including user-defined functions, system tools, or third-party API integrations.
+- **Documents**: Text or data objects associated with agents or users, vectorized and stored for semantic search and retrieval.
+- **Executions**: Instances of tasks that have been initiated with specific inputs, with their own lifecycle and state machine.
+
+For a more detailed explanation of these concepts and their interactions, please refer to our [Concepts Documentation](https://github.com/julep-ai/julep/blob/dev/docs/julep-concepts.md).
+
+## Understanding Tasks
+
+Tasks are the core of Julep's workflow system. They allow you to define complex, multi-step AI workflows that your agents can execute. Here's a brief overview of task components:
+
+- **Name and Description**: Each task has a unique name and description for easy identification.
+- **Main Steps**: The core of a task, defining the sequence of actions to be performed.
+- **Tools**: Optional integrations that extend the capabilities of your agent during task execution.
+
+### Types of Workflow Steps
+
+Tasks in Julep can include various types of steps, allowing you to create complex and powerful workflows. Here's an overview of the available step types, organized by category:
+
+#### Common Steps
+
+1. **Prompt**: Send a message to the AI model and receive a response.
+ ```yaml
+ - prompt: "Analyze the following data: {{data}}"
+ ```
+
+2. **Tool Call**: Execute an integrated tool or API.
+ ```yaml
+ - tool: web_search
+ arguments:
+ query: "Latest AI developments"
+ ```
+
+3. **Evaluate**: Perform calculations or manipulate data.
+ ```yaml
+ - evaluate:
+ average_score: "sum(scores) / len(scores)"
+ ```
+
+4. **Wait for Input**: Pause workflow until input is received.
+ ```yaml
+ - wait_for_input:
+ info:
+ message: "Please provide additional information."
+ ```
+
+5. **Log**: Log a specified value or message.
+ ```yaml
+ - log: "Processing completed for item {{item_id}}"
+ ```
+
+#### Key-Value Steps
+
+6. **Get**: Retrieve a value from a key-value store.
+ ```yaml
+ - get: "user_preference"
+ ```
+
+7. **Set**: Assign a value to a key in a key-value store.
+ ```yaml
+ - set:
+ user_preference: "dark_mode"
+ ```
+
+#### Iteration Steps
+
+8. **Foreach**: Iterate over a collection and perform steps for each item.
+ ```yaml
+ - foreach:
+ in: "data_list"
+ do:
+ - log: "Processing item {{_}}"
+ ```
+
+9. **Map-Reduce**: Map over a collection and reduce the results.
+ ```yaml
+ - map_reduce:
+ over: "numbers"
+ map:
+ - evaluate:
+ squared: "_ ** 2"
+ reduce: "sum(results)"
+ ```
+
+10. **Parallel**: Run multiple steps in parallel.
+ ```yaml
+ - parallel:
+ - tool: web_search
+ arguments:
+ query: "AI news"
+ - tool: weather_check
+ arguments:
+ location: "New York"
+ ```
+
+#### Conditional Steps
+
+11. **If-Else**: Conditional execution of steps.
+ ```yaml
+ - if: "score > 0.8"
+ then:
+ - log: "High score achieved"
+ else:
+ - log: "Score needs improvement"
+ ```
+
+12. **Switch**: Execute steps based on multiple conditions.
+ ```yaml
+ - switch:
+ - case: "category == 'A'"
+ then:
+ - log: "Category A processing"
+ - case: "category == 'B'"
+ then:
+ - log: "Category B processing"
+ - case: "_" # Default case
+ then:
+ - log: "Unknown category"
+ ```
+
+#### Other Control Flow
+
+13. **Sleep**: Pause the workflow for a specified duration.
+ ```yaml
+ - sleep:
+ seconds: 30
+ ```
+
+14. **Return**: Return a value from the workflow.
+ ```yaml
+ - return:
+ result: "Task completed successfully"
+ ```
+
+15. **Yield**: Run a subworkflow and await its completion.
+ ```yaml
+ - yield:
+ workflow: "data_processing_subflow"
+ arguments:
+ input_data: "{{raw_data}}"
+ ```
+
+16. **Error**: Handle errors by specifying an error message.
+ ```yaml
+ - error: "Invalid input provided"
+ ```
+
+Each step type serves a specific purpose in building sophisticated AI workflows. This categorization helps in understanding the various control flows and operations available in Julep tasks.
+
+## Advanced Features
+
+Julep offers a range of advanced features to enhance your AI workflows:
+
+### Adding Tools to Agents
+
+Extend your agent's capabilities by integrating external tools and APIs:
+
+```python
+client.agents.tools.create(
+ agent_id=agent.id,
+ name="web_search",
+ description="Search the web for information.",
+ integration={
+ "provider": "brave",
+ "method": "search",
+ "setup": {"api_key": "your_brave_api_key"},
+ },
+)
+```
+
+### Managing Sessions and Users
+
+Julep provides robust session management for persistent interactions:
+
+```python
+session = client.sessions.create(
+ agent_id=agent.id,
+ user_id=user.id,
+ context_overflow="adaptive"
+)
+
+# Continue conversation in the same session
+response = client.sessions.chat(
+ session_id=session.id,
+ messages=[
+ {
+ "role": "user",
+ "content": "Follow up on the previous conversation."
+ }
+ ]
+)
+```
+
+### Document Integration and Search
+
+Easily manage and search through documents for your agents:
+
+```python
+# Upload a document
+document = client.agents.docs.create(
+ title="AI advancements",
+ content="AI is changing the world...",
+ metadata={"category": "research_paper"}
+)
+
+# Search documents
+results = client.agents.docs.search(
+ text="AI advancements",
+ metadata_filter={"category": "research_paper"}
+)
+```
+
+For more advanced features and detailed usage, please refer to our [Advanced Features Documentation](https://docs.julep.ai/advanced-features).
+
+## Integrations
+
+Julep supports various integrations that extend the capabilities of your AI agents. Here's a list of available integrations and their supported arguments:
+
+### Brave Search
+
+```yaml
+setup:
+ api_key: string # The API key for Brave Search
+
+arguments:
+ query: string # The search query for searching with Brave
+
+output:
+ result: string # The result of the Brave Search
+```
+
+### BrowserBase
+
+```yaml
+setup:
+ api_key: string # The API key for BrowserBase
+ project_id: string # The project ID for BrowserBase
+ session_id: string # (Optional) The session ID for BrowserBase
+
+arguments:
+ urls: list[string] # The URLs for loading with BrowserBase
+
+output:
+ documents: list # The documents loaded from the URLs
+```
+
+### Email
+
+```yaml
+setup:
+ host: string # The host of the email server
+ port: integer # The port of the email server
+ user: string # The username of the email server
+ password: string # The password of the email server
+
+arguments:
+ to: string # The email address to send the email to
+ from: string # The email address to send the email from
+ subject: string # The subject of the email
+ body: string # The body of the email
+
+output:
+ success: boolean # Whether the email was sent successfully
+```
+
+### Spider
+
+```yaml
+setup:
+ spider_api_key: string # The API key for Spider
+
+arguments:
+ url: string # The URL for which to fetch data
+ mode: string # The type of crawlers (default: "scrape")
+ params: dict # (Optional) The parameters for the Spider API
+
+output:
+ documents: list # The documents returned from the spider
+```
+
+### Weather
+
+```yaml
+setup:
+ openweathermap_api_key: string # The API key for OpenWeatherMap
+
+arguments:
+ location: string # The location for which to fetch weather data
+
+output:
+ result: string # The weather data for the specified location
+```
+
+### Wikipedia
+
+```yaml
+arguments:
+ query: string # The search query string
+ load_max_docs: integer # Maximum number of documents to load (default: 2)
+
+output:
+ documents: list # The documents returned from the Wikipedia search
+```
+
+These integrations can be used within your tasks to extend the capabilities of your AI agents. For more detailed information on how to use these integrations in your workflows, please refer to our [Integrations Documentation](https://docs.julep.ai/integrations).
+
+## SDK Reference
+
+- [Node.js SDK](https://github.com/julep-ai/node-sdk/blob/main/api.md)
+- [Python SDK](https://github.com/julep-ai/python-sdk/blob/main/api.md)
+
+## API Reference
+
+Explore our comprehensive API documentation to learn more about agents, tasks, and executions:
+
+- [Agents API](https://api.julep.ai/api/docs#tag/agents)
+- [Tasks API](https://api.julep.ai/api/docs#tag/tasks)
+- [Executions API](https://api.julep.ai/api/docs#tag/executions)
diff --git a/docs/SUMMARY.md b/docs/SUMMARY.md
index 62282dcfb..61df6b682 100644
--- a/docs/SUMMARY.md
+++ b/docs/SUMMARY.md
@@ -2,53 +2,49 @@
## ✨ Concepts
-* [Introduction](README.md)
+* [Introduction](introduction/overview.md)
+ * [Getting Started](introduction/getting_started.md)
* [🤖 Agents](concepts/agents.md)
* [🙎 Users](concepts/users.md)
* [🔁 Sessions](concepts/sessions/README.md)
- * [Adaptive Context ᴺᴱᵂ](concepts/sessions/adaptive-context.md)
+ * [Adaptive Context](concepts/sessions/adaptive-context.md)
* [📖 Documents](concepts/documents.md)
## 📖 Guides
-* [(Quickstart) Build a Basic Agent](guides/quickstart.md)
-* [Self-hosting Julep](guides/self-hosting.md)
-* [Build a Retrieval Augmented Generation (RAG) Agent](guides/build-a-retrieval-augmented-generation-rag-agent.md)
-* [Use Julep with Composio](guides/use-julep-with-composio.md)
-* [Image + Text with GPT-4o](guides/image-+-text-with-gpt-4o.md)
+* [How-to Guides](how-to-guides/README.md)
+ * [Customizing Tasks](how-to-guides/customizing_tasks.md)
+ * [Handling Executions](how-to-guides/handling_executions.md)
+ * [Managing Users](how-to-guides/managing_users.md)
+ * [Using Chat Features](how-to-guides/using_chat_features.md)
+* [Tutorials](tutorials/README.md)
+ * [Creating Your First Agent](tutorials/creating_your_first_agent.md)
+ * [Integrating Tools](tutorials/integrating_tools.md)
+ * [Managing Sessions](tutorials/managing_sessions.md)
+
+## 🧠 Explanation
+
+* [Core Concepts](explanation/core_concepts.md)
+* [Task Workflows](explanation/task_workflows.md)
+* [Chat Features](explanation/chat_features.md)
+* [Context Overflow](explanation/context_overflow.md)
+* [Default System Template](explanation/default_system_template.md)
+* [Execution State Machine](explanation/execution_state_machine.md)
+* [Metadata Precedence](explanation/metadata_precedence.md)
+* [Multi-Agent Sessions](explanation/multi_agent_sessions.md)
+* [Tool Integration](explanation/tool_integration.md)
## 🧑🍳 Cookbooks
* [Example Apps](cookbooks/example-apps.md)
-## 📖 API REFERENCE
-
-* [Python SDK](python-sdk-docs/README.md)
- * [Client](python-sdk-docs/julep/client.md)
- * [Agents](python-sdk-docs/julep/managers/agent.md)
- * [Users](python-sdk-docs/julep/managers/user.md)
- * [Sessions](python-sdk-docs/julep/managers/session.md)
- * [Memories](python-sdk-docs/julep/managers/memory.md)
- * [Docs](python-sdk-docs/julep/managers/doc.md)
- * [Tools](python-sdk-docs/julep/managers/tool.md)
- * [API](python-sdk-docs/julep/api/client.md)
-* [JS SDK](js-sdk-docs/README.md)
- * [API](js-sdk-docs/modules/api.md)
- * [Client](js-sdk-docs/classes/api\_JulepApiClient.JulepApiClient.md)
- * [Agent](js-sdk-docs/classes/managers\_agent.AgentsManager.md)
- * [Doc](js-sdk-docs/classes/managers\_doc.DocsManager.md)
- * [Memory](js-sdk-docs/classes/managers\_memory.MemoriesManager.md)
- * [Session](js-sdk-docs/classes/managers\_session.SessionsManager.md)
- * [Tool](js-sdk-docs/classes/managers\_tool.ToolsManager.md)
- * [User](js-sdk-docs/classes/managers\_user.UsersManager.md)
-* [Agents API](api-reference/agents-api/README.md)
- * [Agents](api-reference/agents-api/agents-api.md)
- * [Users](api-reference/agents-api/agents-api-1.md)
- * [Sessions](api-reference/agents-api/agents-api-2.md)
- * [Memories](api-reference/agents-api/agents-api-3.md)
- * [Docs](api-reference/agents-api/agents-api-4.md)
- * [Tasks](api-reference/agents-api/agents-api-5.md)
- * [Task Runs](api-reference/agents-api/agents-api-6.md)
+## 📖 API Reference
+
+* [Agent Endpoints](reference/api_endpoints/agent_endpoints.md)
+* [User Endpoints](reference/api_endpoints/user_endpoints.md)
+* [Session Endpoints](reference/api_endpoints/session_endpoints.md)
+* [Document Endpoints](reference/api_endpoints/doc_endpoints.md)
+* [Tool Endpoints](reference/api_endpoints/tool_endpoints.md)
***
@@ -56,4 +52,3 @@
* [⭐ Github](https://github.com/julep-ai/julep)
* [🐍 PyPI package](https://pypi.org/project/julep/)
* [📦 npm package](https://www.npmjs.com/package/@julep/sdk)
-* [📫 Postman Collection](https://god.gw.postman.com/run-collection/33213061-a0a1e3a9-9681-44ae-a5c2-703912b32336?action=collection%2Ffork\&source=rip\_markdown\&collection-url=entityId%3D33213061-a0a1e3a9-9681-44ae-a5c2-703912b32336%26entityType%3Dcollection%26workspaceId%3D183380b4-f2ac-44ef-b018-1f65dfc8256b)
diff --git a/docs/agent-studio/agents-playground.md b/docs/agent-studio/agents-playground.md
deleted file mode 100644
index 86807ea8c..000000000
--- a/docs/agent-studio/agents-playground.md
+++ /dev/null
@@ -1,5 +0,0 @@
-# Agents Playground
-
-{% hint style="info" %}
-**Coming soon.**
-{% endhint %}
diff --git a/docs/agent-studio/playground.md b/docs/agent-studio/playground.md
deleted file mode 100644
index aefdc59ed..000000000
--- a/docs/agent-studio/playground.md
+++ /dev/null
@@ -1,65 +0,0 @@
----
-description: Model Playground for testing the API
----
-
-# Model Playground
-
-## Introduction
-
-This guide will walk you through the process of utilizing the Model Playground for the Samantha model. This tool allows you to interact with a powerful language model, generating text based on your inputs.
-
-***
-
-## Signing up
-
-To begin using the Model Playground, you must first sign up for an account. Follow these steps:
-
-1. Visit the [Model Playground platform](http://platform.julep.ai).
-2. Click on the "Sign in With google" button.
-
-## Navigating the Dashboard
-
-
-
-After logging in, you will be directed to the dashboard. Here, you can find various options and features available to you. Take some time to familiarize yourself with the layout and navigation.
-
-## Using Model Playground
-
-The Model Playground allows you to interact with Samantha. Follow these steps to effectively utilize it:
-
-
-
-
-
-1. Select parameters such as temperature, max tokens and top p.
-2. Inputting text prompts
- 1. In the provided text boxes, you can modify the user name, assistant name and situation.
- 2. Click on "Add Message", select the message role, and input the prompt message
-3. Interpreting output
- 1. Once you've inputted your prompt, click on the "Submit" button.
- 2. The model will then generate text based on your prompt and parameters.
-
-## Using the "continue" feature
-
-
-
-
-
-1. To use the "continue" feature, select either the assistant or thought roles.
-2. Enter a prompt that you want to the model to fill.
-3. Click on the "Submit" button and the model will fill out the rest.
-
-## Copying and Sharing Results
-
-
-
-
-
-If you're satisfied with the generated text, you can copy the code for use in your codebases or share it with others.+
-
-1. Click on the "Get code" button or the "Share" button on the top left side.
-2. Click on "Copy"
-
-## Conclusion
-
-Congratulations! You've successfully learned how to use the Model Playground for an Samantha. Continue exploring and experimenting with different prompts and parameters to unlock the full potential of this powerful tool.
diff --git a/docs/api-reference/agents-api/README.md b/docs/api-reference/README.md
similarity index 88%
rename from docs/api-reference/agents-api/README.md
rename to docs/api-reference/README.md
index ed15fbb56..133cd82dc 100644
--- a/docs/api-reference/agents-api/README.md
+++ b/docs/api-reference/README.md
@@ -1,3 +1,11 @@
+
+*****
+> ### This docs site is currently under construction although this github README below should suffice for now.
+
+![](https://i.giphy.com/vR1dPIYzQmkRzLZk2w.webp)
+*****
+
+
# Agents API
[![Run In Postman](https://run.pstmn.io/button.svg)](https://god.gw.postman.com/run-collection/33213061-a0a1e3a9-9681-44ae-a5c2-703912b32336?action=collection%2Ffork\&source=rip\_markdown\&collection-url=entityId%3D33213061-a0a1e3a9-9681-44ae-a5c2-703912b32336%26entityType%3Dcollection%26workspaceId%3D183380b4-f2ac-44ef-b018-1f65dfc8256b)
diff --git a/docs/api-reference/agents-api/agents-api-1.md b/docs/api-reference/agents-api-1.md
similarity index 86%
rename from docs/api-reference/agents-api/agents-api-1.md
rename to docs/api-reference/agents-api-1.md
index 2f154610a..b5f4ac824 100644
--- a/docs/api-reference/agents-api/agents-api-1.md
+++ b/docs/api-reference/agents-api-1.md
@@ -2,6 +2,14 @@
description: API for creating and modifying Users
---
+*****
+> ### This docs site is currently under construction although this github README below should suffice for now.
+
+![](https://i.giphy.com/vR1dPIYzQmkRzLZk2w.webp)
+*****
+
+
+
# Users
## List all users
diff --git a/docs/api-reference/agents-api/agents-api-2.md b/docs/api-reference/agents-api-2.md
similarity index 91%
rename from docs/api-reference/agents-api/agents-api-2.md
rename to docs/api-reference/agents-api-2.md
index 35a3f3000..61f601336 100644
--- a/docs/api-reference/agents-api/agents-api-2.md
+++ b/docs/api-reference/agents-api-2.md
@@ -2,6 +2,13 @@
description: API for creating and modifying Sessions
---
+*****
+> ### This docs site is currently under construction although this github README below should suffice for now.
+
+![](https://i.giphy.com/vR1dPIYzQmkRzLZk2w.webp)
+*****
+
+
# Sessions
## List sessions
diff --git a/docs/api-reference/agents-api/agents-api-3.md b/docs/api-reference/agents-api-3.md
similarity index 75%
rename from docs/api-reference/agents-api/agents-api-3.md
rename to docs/api-reference/agents-api-3.md
index 8ef294087..7485ba93e 100644
--- a/docs/api-reference/agents-api/agents-api-3.md
+++ b/docs/api-reference/agents-api-3.md
@@ -2,6 +2,13 @@
description: API for accessing Agent Memories
---
+*****
+> ### This docs site is currently under construction although this github README below should suffice for now.
+
+![](https://i.giphy.com/vR1dPIYzQmkRzLZk2w.webp)
+*****
+
+
# Memories
## Get an agent's memories
diff --git a/docs/api-reference/agents-api/agents-api-4.md b/docs/api-reference/agents-api-4.md
similarity index 88%
rename from docs/api-reference/agents-api/agents-api-4.md
rename to docs/api-reference/agents-api-4.md
index 0cab8dad9..863363b5a 100644
--- a/docs/api-reference/agents-api/agents-api-4.md
+++ b/docs/api-reference/agents-api-4.md
@@ -2,6 +2,13 @@
description: API for creating and modifying docs
---
+*****
+> ### This docs site is currently under construction although this github README below should suffice for now.
+
+![](https://i.giphy.com/vR1dPIYzQmkRzLZk2w.webp)
+*****
+
+
# Docs
## Get all docs (for an agent or user)
diff --git a/docs/api-reference/agents-api-5.md b/docs/api-reference/agents-api-5.md
new file mode 100644
index 000000000..a1bb28348
--- /dev/null
+++ b/docs/api-reference/agents-api-5.md
@@ -0,0 +1,14 @@
+# Tasks
+
+
+*****
+> ### This docs site is currently under construction although this github README below should suffice for now.
+
+![](https://i.giphy.com/vR1dPIYzQmkRzLZk2w.webp)
+*****
+
+
+
+{% hint style="info" %}
+Coming Soon
+{% endhint %}
diff --git a/docs/api-reference/agents-api-6.md b/docs/api-reference/agents-api-6.md
new file mode 100644
index 000000000..44581cd22
--- /dev/null
+++ b/docs/api-reference/agents-api-6.md
@@ -0,0 +1,12 @@
+# Task Runs
+
+*****
+> ### This docs site is currently under construction although this github README below should suffice for now.
+
+![](https://i.giphy.com/vR1dPIYzQmkRzLZk2w.webp)
+*****
+
+
+{% hint style="info" %}
+**Coming soon.**
+{% endhint %}
diff --git a/docs/api-reference/agents-api/agents-api.md b/docs/api-reference/agents-api.md
similarity index 92%
rename from docs/api-reference/agents-api/agents-api.md
rename to docs/api-reference/agents-api.md
index 783a75e74..08792d15f 100644
--- a/docs/api-reference/agents-api/agents-api.md
+++ b/docs/api-reference/agents-api.md
@@ -2,6 +2,13 @@
description: API for creating and modifying Agents
---
+*****
+> ### This docs site is currently under construction although this github README below should suffice for now.
+
+![](https://i.giphy.com/vR1dPIYzQmkRzLZk2w.webp)
+*****
+
+
# Agents
## List agents
diff --git a/docs/api-reference/agents-api/agents-api-5.md b/docs/api-reference/agents-api/agents-api-5.md
deleted file mode 100644
index 86c29ae67..000000000
--- a/docs/api-reference/agents-api/agents-api-5.md
+++ /dev/null
@@ -1,7 +0,0 @@
-# Tasks
-
-
-
-{% hint style="info" %}
-Coming Soon
-{% endhint %}
diff --git a/docs/api-reference/agents-api/agents-api-6.md b/docs/api-reference/agents-api/agents-api-6.md
deleted file mode 100644
index f5f5bc7ed..000000000
--- a/docs/api-reference/agents-api/agents-api-6.md
+++ /dev/null
@@ -1,5 +0,0 @@
-# Task Runs
-
-{% hint style="info" %}
-**Coming soon.**
-{% endhint %}
diff --git a/docs/api-reference/model-api.md b/docs/api-reference/model-api.md
deleted file mode 100644
index 473e32eac..000000000
--- a/docs/api-reference/model-api.md
+++ /dev/null
@@ -1,8 +0,0 @@
-# Model API
-
-* [Chat Completions](model-api/model-api.md): Chat completion generates responses from conversations (JSON lists).
-* [Completions](model-api/model-api-1.md) (Advanced): Access to the underlying model in raw chatml format. Meant only for advanced users.
-
-{% hint style="success" %}
-The API is compatible with the [OpenAI API](https://beta.openai.com/docs/api-reference/introduction) and can be used as a drop-in replacement with its clients.
-{% endhint %}
diff --git a/docs/api-reference/model-api/generation-parameters.md b/docs/api-reference/model-api/generation-parameters.md
deleted file mode 100644
index a597ead58..000000000
--- a/docs/api-reference/model-api/generation-parameters.md
+++ /dev/null
@@ -1,69 +0,0 @@
-# Generation Parameters
-
-Below is a detailed explanation of the request parameters you can use when making API calls to the Model API. For each parameter, we'll provide a recommendation for both high and low values.
-
-### Request Body Parameters Guide
-
-1. **model** (string, Required):
- * Represents the model to be used for the chat conversation.
- * `"julep-ai/samantha-1-turbo"`
-2. **messages** (array, Required):
- * Contains the conversation messages exchanged between user, assistant, and system.
- * Each message has a role, content, and optional name and function\_call.
- * Recommendation: Include conversation messages in an array following the provided structure.
-3. **functions** (array, Optional):
- * Specifies functions the model can generate JSON inputs for.
- * Each function has a name, description, and parameters.
- * Recommendation: Provide function details if applicable to your conversation.
-4. **function\_call** (string or object, Optional):
- * Determines the model's response to function calls.
- * Options: "none" (user response), "auto" (user or function response), or `{"name": "my_function"}` (specific function).
- * Recommendation: Use "none" if no functions are present, "auto" if functions exist, or specify a function.
-5. **temperature** (number, Optional):
- * Controls randomness in output. Higher values (e.g., 1.0) make output more random, lower values (e.g., 0.2) make it more focused and deterministic.
- * Range: 0 to 2.
- * Default: 1.
- * Recommendation: High value for creative responses, low value for controlled responses.
-6. **top\_p** (number, Optional):
- * Implements nucleus sampling by considering tokens with top\_p probability mass.
- * Higher values (e.g., 0.8) allow more diverse responses, lower values (e.g., 0.2) make responses more focused.
- * Range: 0 to 1.
- * Default: 1.
- * Recommendation: Values around 0.8 maintain coherence with some randomness.
-7. **n** (integer, Optional):
- * Specifies the number of response options generated for each input message.
- * Range: Any positive integer.
- * Default: 1.
- * Recommendation: Typically use 1 for most cases.
-8. **stream** (boolean, Optional):
- * If true, sends partial message deltas as server-sent events like ChatGPT.
- * Default: false.
-9. **stop** (string or array, Optional):
- * Indicates sequences where the API should stop generating tokens.
- * Default: null.
- * Recommendation: Use custom strings to guide response length and depth of content.
-10. **max\_tokens** (integer, Optional):
- * Sets the maximum number of tokens generated in a response.
- * Range: Any positive integer.
- * Default: Infinity.
- * Recommendation: Set a specific value to control response length.
-11. **presence\_penalty** (number, Optional):
- * Adjusts likelihood of tokens based on their appearance in the conversation.
- * Higher values (e.g., 1.5) encourage introducing new topics, lower values (e.g., -0.5) maintain current context.
- * Range: -2.0 to 2.0.
- * Default: 0.
- * Recommendation: Positive values encourage introducing new topics.
-12. **frequency\_penalty** (number, Optional):
- * Adjusts likelihood of tokens based on their frequency in the conversation.
- * Higher values (e.g., 1.5) discourage repetition, lower values (e.g., -0.5) promote more repetition.
- * Range: -2.0 to 2.0.
- * Default: 0.
- * Recommendation: Positive values discourage repetition.
-13. **logit\_bias** (map, Optional):
- * Modifies likelihood of specific tokens appearing in the response.
- * Default: null.
- * Recommendation: Use for customizing language or emphasizing certain phrases.
-14. **user** (string, Optional):
- * Represents an end-user identifier for monitoring and abuse detection.
- * Default: null.
- * Recommendation: Include a unique user identifier for better context.
diff --git a/docs/api-reference/model-api/model-api-1.md b/docs/api-reference/model-api/model-api-1.md
deleted file mode 100644
index 17b562aed..000000000
--- a/docs/api-reference/model-api/model-api-1.md
+++ /dev/null
@@ -1,13 +0,0 @@
-# Completions (Advanced)
-
-Our models are available behind a REST API. You can use this API to generate completions for your own applications.
-
-The API is compatible with the [OpenAI API](https://beta.openai.com/docs/api-reference/introduction) and can be used as a drop-in replacement with its clients.
-
-## Completions API
-
-Creates a completion for the provided prompt and parameters.
-
-{% swagger src="../../.gitbook/assets/model-openapi.yaml" path="/completions" method="post" expanded="true" %}
-[model-openapi.yaml](../../.gitbook/assets/model-openapi.yaml)
-{% endswagger %}
diff --git a/docs/api-reference/model-api/model-api.md b/docs/api-reference/model-api/model-api.md
deleted file mode 100644
index 4ab85bafc..000000000
--- a/docs/api-reference/model-api/model-api.md
+++ /dev/null
@@ -1,13 +0,0 @@
-# Chat Completions
-
-Our models are available behind a REST API. You can use this API to generate completions for your own applications.
-
-The API is compatible with the [OpenAI API](https://beta.openai.com/docs/api-reference/introduction) and can be used as a drop-in replacement with its clients.
-
-## Chat Completions API
-
-Given a list of messages comprising a conversation, the model will return a response.
-
-{% swagger src="../../.gitbook/assets/model-openapi.yaml" path="/chat/completions" method="post" expanded="true" %}
-[model-openapi.yaml](../../.gitbook/assets/model-openapi.yaml)
-{% endswagger %}
diff --git a/docs/concepts/agents.md b/docs/concepts/agents.md
index c2a42f9d3..1283aadb6 100644
--- a/docs/concepts/agents.md
+++ b/docs/concepts/agents.md
@@ -2,6 +2,13 @@
description: A fundamental building block of an AI app built using Julep.
---
+*****
+> ### This docs site is currently under construction although this github README below should suffice for now.
+
+![](https://i.giphy.com/vR1dPIYzQmkRzLZk2w.webp)
+*****
+
+
# 🤖 Agents
## What is an Agent?
diff --git a/docs/concepts/documents.md b/docs/concepts/documents.md
index 9509677ae..4db791567 100644
--- a/docs/concepts/documents.md
+++ b/docs/concepts/documents.md
@@ -2,6 +2,13 @@
description: Documents to be added for Retrieval Augmented Generation
---
+*****
+> ### This docs site is currently under construction although this github README below should suffice for now.
+
+![](https://i.giphy.com/vR1dPIYzQmkRzLZk2w.webp)
+*****
+
+
# 📖 Documents
A typical RAG application has the following components:
diff --git a/docs/concepts/sessions/README.md b/docs/concepts/sessions/README.md
index 905665736..f8f01d501 100644
--- a/docs/concepts/sessions/README.md
+++ b/docs/concepts/sessions/README.md
@@ -2,6 +2,13 @@
description: A conversation "session" between a user and an agent.
---
+*****
+> ### This docs site is currently under construction although this github README below should suffice for now.
+
+![](https://i.giphy.com/vR1dPIYzQmkRzLZk2w.webp)
+*****
+
+
# 🔁 Sessions
## What is a Session?
diff --git a/docs/concepts/sessions/adaptive-context.md b/docs/concepts/sessions/adaptive-context.md
index 8bb7cf801..dba2df0fe 100644
--- a/docs/concepts/sessions/adaptive-context.md
+++ b/docs/concepts/sessions/adaptive-context.md
@@ -1,5 +1,12 @@
# Adaptive Context ᴺᴱᵂ
+*****
+> ### This docs site is currently under construction although this github README below should suffice for now.
+
+![](https://i.giphy.com/vR1dPIYzQmkRzLZk2w.webp)
+*****
+
+
### What is Adaptive Context?
Adaptive Context is a feature in Julep that intelligently manages the context size for long-running sessions. It allows users to continue adding messages to a session indefinitely without worrying about hitting context window limits or incurring excessive costs.
diff --git a/docs/concepts/users.md b/docs/concepts/users.md
index a15eed32c..15b3d4f51 100644
--- a/docs/concepts/users.md
+++ b/docs/concepts/users.md
@@ -2,6 +2,13 @@
description: A real person or system that needs to interacts with the Agent in your app.
---
+*****
+> ### This docs site is currently under construction although this github README below should suffice for now.
+
+![](https://i.giphy.com/vR1dPIYzQmkRzLZk2w.webp)
+*****
+
+
# 🙎 Users
## What is a User?
diff --git a/docs/explanation/chat_features.md b/docs/explanation/chat_features.md
new file mode 100644
index 000000000..23aad265c
--- /dev/null
+++ b/docs/explanation/chat_features.md
@@ -0,0 +1,75 @@
+# Chat Features in Julep
+
+*****
+> ### This docs site is currently under construction although this github README below should suffice for now.
+
+![](https://i.giphy.com/vR1dPIYzQmkRzLZk2w.webp)
+*****
+
+
+Julep provides a robust chat system with various features for dynamic interaction with agents. Here's an overview of the key components and functionalities:
+
+## Chat Input
+
+When sending a request to the chat endpoint, you can include:
+
+1. **Messages**: An array of input messages representing the conversation so far.
+2. **Tools**: (Advanced) Additional tools provided for this specific interaction.
+3. **Tool Choice**: Specifies which tool the agent should use.
+4. **Memory Access Options**: Controls how the session accesses history and memories.
+5. **Chat Settings**: Various settings to control the behavior of the chat.
+
+## Chat Settings
+
+Chat settings allow fine-grained control over the generation process:
+
+- `model`: Identifier of the model to be used.
+- `stream`: Indicates if the server should stream the response as it's generated.
+- `stop`: Up to 4 sequences where the API will stop generating further tokens.
+- `seed`: For deterministic sampling.
+- `max_tokens`: The maximum number of tokens to generate.
+- `logit_bias`: Modify the likelihood of specified tokens appearing in the completion.
+- `response_format`: Control the format of the response (e.g., JSON object).
+- `agent`: Agent ID to use (for multi-agent sessions).
+
+Additional settings include `temperature`, `top_p`, `frequency_penalty`, and `presence_penalty`.
+
+## Chat Response
+
+The chat response can be either streamed or returned as a complete message:
+
+1. **Streamed Response**:
+ - Content-Type: `text/event-stream`
+ - Body: A stream of `ChatOutputChunk` objects.
+
+2. **Complete Response**:
+ - Content-Type: `application/json`
+ - Body: A `MessageChatResponse` object containing the full generated message(s).
+
+Both response types include:
+- `usage`: Token usage statistics.
+- `jobs`: Background job IDs spawned from this interaction.
+- `docs`: Documents referenced for this request (for citation purposes).
+
+## Finish Reasons
+
+The API provides information about why the model stopped generating tokens:
+
+- `stop`: Natural stop point or provided stop sequence reached.
+- `length`: Maximum number of tokens specified in the request was reached.
+- `content_filter`: Content was omitted due to a flag from content filters.
+- `tool_calls`: The model called a tool.
+
+## Advanced Features
+
+1. **Tool Integration**: The chat API allows for the use of tools, enabling the agent to perform actions or retrieve information during the conversation.
+
+2. **Multi-agent Sessions**: You can specify different agents within the same session using the `agent` parameter in the chat settings.
+
+3. **Response Formatting**: Control the output format, including options for JSON responses with specific schemas.
+
+4. **Memory and Recall**: Configure how the session accesses and stores conversation history and memories.
+
+5. **Document References**: The API returns information about documents referenced during the interaction, useful for providing citations or sources.
+
+These features provide developers with a powerful and flexible system for creating sophisticated, context-aware chat interactions that integrate seamlessly with other Julep components.
\ No newline at end of file
diff --git a/docs/explanation/context_overflow.md b/docs/explanation/context_overflow.md
new file mode 100644
index 000000000..5b87811c4
--- /dev/null
+++ b/docs/explanation/context_overflow.md
@@ -0,0 +1,27 @@
+# Context Overflow Handling in Julep
+
+*****
+> ### This docs site is currently under construction although this github README below should suffice for now.
+
+![](https://i.giphy.com/vR1dPIYzQmkRzLZk2w.webp)
+*****
+
+
+Julep provides mechanisms to handle scenarios where the context size grows beyond the `token_budget` or the model's input limit. The behavior is determined by the `context_overflow` setting:
+
+1. `null` (default):
+ - Raises an exception
+ - The client is responsible for creating a new session or clearing the history for the current one
+
+2. `"truncate"`:
+ - Truncates the context from the top, except for the system prompt
+ - Continues truncating until the size falls below the budget
+ - Raises an error if the system prompt and last message combined exceed the budget
+
+3. `"adaptive"`:
+ - When the context size reaches 75% of the `token_budget`, a background task is created
+ - This task compresses the information by summarizing, merging, and clipping messages in the context
+ - Operates on a best-effort basis
+ - Requests might fail if the context wasn't compressed enough or on time
+
+By offering these options, Julep allows developers to choose the most appropriate strategy for handling context overflow in their applications, balancing between maintaining conversation history and staying within model limits.
\ No newline at end of file
diff --git a/docs/explanation/core_concepts.md b/docs/explanation/core_concepts.md
new file mode 100644
index 000000000..c8a29f0fd
--- /dev/null
+++ b/docs/explanation/core_concepts.md
@@ -0,0 +1,53 @@
+# Core Concepts in Julep
+
+*****
+> ### This docs site is currently under construction although this github README below should suffice for now.
+
+![](https://i.giphy.com/vR1dPIYzQmkRzLZk2w.webp)
+*****
+
+
+Julep is a powerful backend system for managing agent execution. It provides several key components that work together to create flexible and intelligent applications. Here are the core concepts:
+
+## Agent
+
+An Agent in Julep is the main orchestrator of your application. Agents are backed by foundation models like GPT4 or Claude and use interaction history to determine their next actions. Key features include:
+
+- Long-lived interactions in sessions
+- Integration with system or user-defined tools
+- Access to agent-level documents for auto-retrieval
+- Ability to define and execute multi-step workflows (tasks)
+
+## User
+
+Users in Julep can be associated with sessions. They are used to scope memories formed by agents and can hold metadata for reference in sessions or task executions.
+
+## Session
+
+Sessions are the main workhorse for Julep apps:
+- They facilitate interactions with agents
+- Each session maintains its own context
+- Can have one or more agents and zero or more users
+- Allows control over context overflow handling
+
+## Tool
+
+Tools in Julep are programmatic interfaces that foundation models can "call" with inputs to achieve a goal. They can be:
+1. User-defined functions
+2. System tools (upcoming)
+3. Built-in integrations (upcoming)
+4. Webhooks & API calls (upcoming)
+
+## Doc
+
+Docs are collections of text snippets (with planned image support) indexed into a built-in vector database. They can be scoped to an agent or a user and are automatically recalled in sessions when relevant.
+
+## Task
+
+Tasks in Julep are Github Actions-style workflows that define long-running, multi-step actions. They allow for complex operations by defining steps and have access to all Julep integrations.
+
+## Execution
+
+An Execution is an instance of a Task that has been started with some input. It can be in various states (e.g., queued, running, awaiting input, succeeded, failed) and follows a specific state transition model.
+
+These core concepts form the foundation of Julep's functionality, allowing for the creation of sophisticated, context-aware applications with powerful agent capabilities.
\ No newline at end of file
diff --git a/docs/explanation/default_system_template.md b/docs/explanation/default_system_template.md
new file mode 100644
index 000000000..4ba74b2a9
--- /dev/null
+++ b/docs/explanation/default_system_template.md
@@ -0,0 +1,78 @@
+# Default System Template in Julep
+
+*****
+> ### This docs site is currently under construction although this github README below should suffice for now.
+
+![](https://i.giphy.com/vR1dPIYzQmkRzLZk2w.webp)
+*****
+
+
+Julep uses a default system template for sessions when a custom one is not provided. This template is written in Jinja2 and incorporates various elements from the agent, user, and session context. Here's a breakdown of the template:
+
+```jinja
+{%- if agent.name -%}
+You are {{agent.name}}.{{" "}}
+{%- endif -%}
+
+{%- if agent.about -%}
+About you: {{agent.name}}.{{" "}}
+{%- endif -%}
+
+{%- if user -%}
+You are talking to a user
+ {%- if user.name -%}{{" "}} and their name is {{user.name}}
+ {%- if user.about -%}. About the user: {{user.about}}.{%- else -%}.{%- endif -%}
+ {%- endif -%}
+{%- endif -%}
+
+{{"\n\n"}}
+
+{%- if agent.instructions -%}
+Instructions:{{"\n"}}
+ {%- if agent.instructions is string -%}
+ {{agent.instructions}}{{"\n"}}
+ {%- else -%}
+ {%- for instruction in agent.instructions -%}
+ - {{instruction}}{{"\n"}}
+ {%- endfor -%}
+ {%- endif -%}
+ {{"\n"}}
+{%- endif -%}
+
+{%- if tools -%}
+Tools:{{"\n"}}
+ {%- for tool in tools -%}
+ {%- if tool.type == "function" -%}
+ - {{tool.function.name}}
+ {%- if tool.function.description -%}: {{tool.function.description}}{%- endif -%}{{"\n"}}
+ {%- else -%}
+ - {{ 0/0 }} {# Error: Other tool types aren't supported yet. #}
+ {%- endif -%}
+ {%- endfor -%}
+{{"\n\n"}}
+{%- endif -%}
+
+{%- if docs -%}
+Relevant documents:{{"\n"}}
+ {%- for doc in docs -%}
+ {{doc.title}}{{"\n"}}
+ {%- if doc.content is string -%}
+ {{doc.content}}{{"\n"}}
+ {%- else -%}
+ {%- for snippet in doc.content -%}
+ {{snippet}}{{"\n"}}
+ {%- endfor -%}
+ {%- endif -%}
+ {{"---"}}
+ {%- endfor -%}
+{%- endif -%}
+```
+
+This template dynamically includes:
+1. Agent information (name and description)
+2. User information (if present)
+3. Agent instructions
+4. Available tools
+5. Relevant documents
+
+By using this template, Julep ensures that each session starts with a comprehensive context, allowing the agent to understand its role, the user it's interacting with, and the resources at its disposal.
\ No newline at end of file
diff --git a/docs/explanation/execution_state_machine.md b/docs/explanation/execution_state_machine.md
new file mode 100644
index 000000000..648d514bd
--- /dev/null
+++ b/docs/explanation/execution_state_machine.md
@@ -0,0 +1,80 @@
+# Execution State Machine in Julep
+
+*****
+> ### This docs site is currently under construction although this github README below should suffice for now.
+
+![](https://i.giphy.com/vR1dPIYzQmkRzLZk2w.webp)
+*****
+
+
+In Julep, an Execution represents an instance of a Task that has been started with some input. The Execution follows a specific state machine model, ensuring consistent and predictable behavior throughout its lifecycle.
+
+## Execution States
+
+An Execution can be in one of the following states:
+
+1. **queued**: The execution is waiting to start
+2. **starting**: The execution is in the process of starting
+3. **running**: The execution is actively running
+4. **awaiting_input**: The execution is suspended and waiting for input to resume
+5. **succeeded**: The execution has completed successfully
+6. **failed**: The execution has failed
+7. **cancelled**: The execution has been cancelled by the user
+
+## State Transitions
+
+The valid transitions between execution states are as follows:
+
+- `queued` → `starting`
+- `starting` → `running`, `awaiting_input`, `cancelled`, `succeeded`, `failed`
+- `running` → `running`, `awaiting_input`, `cancelled`, `succeeded`, `failed`
+- `awaiting_input` → `running`, `cancelled`
+- `cancelled`, `succeeded`, `failed` → (terminal states, no further transitions)
+
+## Transition Types
+
+Executions can go through various transition types:
+
+- `init`: Initializes the execution
+- `init_branch`: Starts a new branch in the execution
+- `finish`: Completes the execution successfully
+- `finish_branch`: Completes a branch in the execution
+- `wait`: Pauses the execution, waiting for input
+- `resume`: Resumes a paused execution
+- `error`: Indicates an error occurred
+- `step`: Represents a step in the execution process
+- `cancelled`: Indicates the execution was cancelled
+
+## State Machine Diagram
+
+```mermaid
+stateDiagram-v2
+ [*] --> queued
+ queued --> starting
+ queued --> cancelled
+ starting --> cancelled
+ starting --> failed
+ starting --> running
+ running --> running
+ running --> awaiting_input
+ running --> cancelled
+ running --> failed
+ running --> succeeded
+ awaiting_input --> running
+ awaiting_input --> cancelled
+
+ %% Added transitions for branching
+ running --> init_branch : init_branch
+ init_branch --> waiting : wait
+ init_branch --> cancelled : cancelled
+ init_branch --> finish_branch : finish_branch
+ finish_branch --> running : resume
+
+ %% Updated terminal states
+ cancelled --> [*]
+ succeeded --> [*]
+ failed --> [*]
+ finish_branch --> [*]
+```
+
+This state machine ensures that executions in Julep follow a consistent and predictable flow, allowing for complex workflows while maintaining clear status tracking. It provides a robust framework for managing long-running tasks, handling interruptions, and recovering from failures.
\ No newline at end of file
diff --git a/docs/explanation/metadata_precedence.md b/docs/explanation/metadata_precedence.md
new file mode 100644
index 000000000..dd36ce0ce
--- /dev/null
+++ b/docs/explanation/metadata_precedence.md
@@ -0,0 +1,30 @@
+# Metadata Precedence in Julep
+
+*****
+> ### This docs site is currently under construction although this github README below should suffice for now.
+
+![](https://i.giphy.com/vR1dPIYzQmkRzLZk2w.webp)
+*****
+
+
+In Julep, several objects can have `metadata` added to them:
+- Agent
+- User
+- Session
+- Doc
+- Task
+- Execution
+
+When multiple objects with the same `metadata` field are present in a scope, the value takes the following precedence (from highest to lowest):
+
+## In a session:
+1. Session
+2. User
+3. Agent
+
+## During a task execution:
+1. Execution
+2. Task
+3. Agent
+
+This precedence order ensures that more specific contexts (like a particular session or execution) can override more general settings, while still allowing for default values to be set at higher levels.
\ No newline at end of file
diff --git a/docs/explanation/multi_agent_sessions.md b/docs/explanation/multi_agent_sessions.md
new file mode 100644
index 000000000..72fa5d52a
--- /dev/null
+++ b/docs/explanation/multi_agent_sessions.md
@@ -0,0 +1,51 @@
+# Multi-Agent Sessions in Julep
+
+*****
+> ### This docs site is currently under construction although this github README below should suffice for now.
+
+![](https://i.giphy.com/vR1dPIYzQmkRzLZk2w.webp)
+*****
+
+
+Julep supports different types of sessions based on the number of agents and users involved. This flexibility allows for complex interactions and use cases.
+
+## Types of Sessions
+
+1. Single agent:
+ - No user
+ - Single user
+ - Multiple users
+
+2. Multiple agents:
+ - No user
+ - Single user
+ - Multiple users
+
+## Behavior in Multi-Agent/User Sessions
+
+### User Behavior
+
+- **No user**:
+ - No user data is retrieved
+ - (Upcoming) Memories are not mined from the session
+
+- **One or more users**:
+ - Docs, metadata, memories, etc. are retrieved for all users in the session
+ - Messages can be added for each user by referencing them by name in the `ChatML` messages
+ - (Upcoming) Memories mined in the background are added to the corresponding user's scope
+
+### Agent Behavior
+
+- **One agent**:
+ - Works as expected
+
+- **Multiple agents**:
+ - When a message is received by the session, each agent is called one after another in the order they were defined in the session
+ - You can specify which `agent` to use in a request, in which case, only that agent will be used
+
+This multi-agent/user capability allows for sophisticated scenarios such as:
+- Collaborative problem-solving with multiple AI agents
+- Group conversations with multiple users and agents
+- Specialized agents working together on complex tasks
+
+By supporting these various configurations, Julep provides a flexible framework for building diverse and powerful AI applications.
\ No newline at end of file
diff --git a/docs/explanation/task_workflows.md b/docs/explanation/task_workflows.md
new file mode 100644
index 000000000..847cb3157
--- /dev/null
+++ b/docs/explanation/task_workflows.md
@@ -0,0 +1,102 @@
+# Task Workflows in Julep
+
+*****
+> ### This docs site is currently under construction although this github README below should suffice for now.
+
+![](https://i.giphy.com/vR1dPIYzQmkRzLZk2w.webp)
+*****
+
+
+Tasks in Julep are powerful, Github Actions-style workflows that define long-running, multi-step actions. They allow for complex operations by defining steps and have access to all Julep integrations.
+
+## Task Structure
+
+A Task consists of:
+
+- `name`: The name of the task (required for creation)
+- `description`: A description of the task
+- `main`: The main workflow steps (required, minimum 1 item)
+- `input_schema`: JSON schema to validate input when executing the task
+- `tools`: Additional tools specific to this task
+- `inherit_tools`: Whether to inherit tools from the parent agent
+
+## Workflow Steps
+
+Tasks can include various types of workflow steps:
+
+1. **Tool Call**: Runs a specified tool with given arguments
+2. **Prompt**: Runs a prompt using a model
+3. **Evaluate**: Runs Python expressions and uses the result as output
+4. **Wait for Input**: Suspends execution and waits for user input
+5. **Log**: Logs information during workflow execution
+6. **Embed**: Embeds text for semantic operations
+7. **Search**: Searches for documents in the agent's doc store
+8. **Set**: Sets a value in the workflow's key-value store
+9. **Get**: Retrieves a value from the workflow's key-value store
+10. **Foreach**: Runs a step for every value from a list in serial order
+11. **Map-reduce**: Runs a step for every value of the input list in parallel
+12. **Parallel**: Executes multiple steps in parallel
+13. **Switch**: Executes different steps based on a condition
+14. **If-else**: Conditional step with then and else branches
+15. **Sleep**: Pauses the workflow execution for a specified time
+16. **Return**: Ends the current workflow and optionally returns a value
+17. **Yield**: Switches to another named workflow
+18. **Error**: Throws an error and exits the workflow
+
+## Example Task
+
+Here's an example of a daily motivation task:
+
+```yaml
+name: Daily Motivation
+description: Provides daily motivation based on user preferences
+input_schema:
+ type: object
+ properties:
+ about_user:
+ type: string
+ topics:
+ type: array
+ items:
+ type: string
+ user_email:
+ type: string
+ format: email
+ required: ["about_user", "topics", "user_email"]
+
+tools:
+- function:
+ name: send_email
+ description: Sends an email to the user
+ parameters:
+ type: object
+ properties:
+ subject:
+ type: string
+ content:
+ type: string
+ recipient:
+ type: string
+ required: ["subject", "content", "recipient"]
+
+main:
+- evaluate:
+ chosen_topic: _["topics"][randint(len(_["topics"]))]
+
+- prompt: You are a motivational coach and you are coaching someone who is {{inputs[0]["about_user"]}}. Think of the challenges they might be facing on the {{_["chosen_topic"]}} topic and what to do about them. Write down your answer as a bulleted list.
+
+- prompt: Write a short motivational poem about {{_["choices"][0].content}}
+
+- tool:
+ name: send_email
+ arguments:
+ subject: '"Daily Motivation"'
+ content: _["choices"][0].content
+
+- sleep: 24*3600
+
+- workflow: main
+ arguments: inputs[0]
+```
+
+This task demonstrates the power and flexibility of Julep's workflow system, allowing for complex, multi-step processes that can interact with various tools and models to achieve sophisticated outcomes.
\ No newline at end of file
diff --git a/docs/explanation/tool_integration.md b/docs/explanation/tool_integration.md
new file mode 100644
index 000000000..a3a71065a
--- /dev/null
+++ b/docs/explanation/tool_integration.md
@@ -0,0 +1,74 @@
+# Tool Integration in Julep
+
+*****
+> ### This docs site is currently under construction although this github README below should suffice for now.
+
+![](https://i.giphy.com/vR1dPIYzQmkRzLZk2w.webp)
+*****
+
+
+Julep provides a flexible system for integrating various types of tools that agents can use during interactions. These tools enable agents to perform actions, retrieve information, or interact with external systems.
+
+## Types of Tools
+
+1. **User-defined Functions**
+ - Function signatures that you provide to the model
+ - Similar to OpenAI's function-calling feature
+ - Example:
+ ```yaml
+ name: send_text_message
+ description: Send a text message to a recipient.
+ parameters:
+ type: object
+ properties:
+ to:
+ type: string
+ description: Phone number of recipient.
+ text:
+ type: string
+ description: Content of the message.
+ ```
+
+2. **System Tools** (upcoming)
+ - Built-in tools for calling Julep APIs
+ - Can trigger task executions, append to metadata fields, etc.
+ - Executed automatically when needed, no client-side action required
+
+3. **Built-in Integrations** (upcoming)
+ - Integrated third-party tools from providers like composio and anon
+ - Support planned for various langchain toolkits (Github, Gitlab, Gmail, Jira, MultiOn, Slack)
+ - Executed directly on the Julep backend
+ - Additional runtime parameters can be set in agent/session/user metadata
+
+4. **Webhooks & API Calls** (upcoming)
+ - Julep can build natural-language tools from OpenAPI specs
+ - Uses langchain's NLA toolkit under the hood
+ - Additional runtime parameters loaded from metadata fields
+
+## Partial Application of Arguments
+
+Julep allows for partial application of arguments to tools using the `x-tool-parameters` field in metadata. This is useful for fixing certain parameters for a tool. Example:
+
+```json
+{
+ "metadata": {
+ "x-tool-parameters": {
+ "function:check_account_status": {
+ "customer_id": 42
+ }
+ }
+ }
+}
+```
+
+## Resolving Parameters with the Same Name
+
+When multiple scopes (user, agent, session) define the same parameter, Julep follows a precedence order:
+
+1. Session
+2. User
+3. Agent
+
+This allows for flexible configuration of tools across different scopes while maintaining clear rules for parameter resolution.
+
+By providing these various tool integration options and configuration capabilities, Julep enables the creation of powerful and flexible agent-based applications that can interact with a wide range of external systems and data sources.
\ No newline at end of file
diff --git a/docs/faqs/README.md b/docs/faqs/README.md
deleted file mode 100644
index a4fde6f86..000000000
--- a/docs/faqs/README.md
+++ /dev/null
@@ -1,10 +0,0 @@
-# FAQs
-
-## Broad categories
-
-1. General Overview
-1. Getting Started
-1. Agent Design and Prototyping
-1. Memory and Learning
-1. Sessions and Tasks
-1. Technical Details
diff --git a/docs/faqs/agent-prototyping.md b/docs/faqs/agent-prototyping.md
deleted file mode 100644
index 418cc40bb..000000000
--- a/docs/faqs/agent-prototyping.md
+++ /dev/null
@@ -1,13 +0,0 @@
-# Agent Studio
-
-1. **What is the Agent Studio?**\
- The Agent Studio is a playground + prompt IDE for building agents in your browser before you integrate it in your application. It is designed to be user-friendly, allowing you to prototype agents using visual tools and pre-defined templates without needing to write code.\
-
-2. **How do I start designing an AI agent?**\
- Use the 'Create Agent' feature in the IDE to define your agent's purpose, capabilities, and the tools it will use. The platform guides you through setting parameters and writing initial prompts.\
-
-3. **What tools are available for agent prototyping?**\
- Julep AI offers tools like function\_call for structured input, webhooks for actions, built-in tools for document retrieval and search, and an API for integrating external services.\
-
-4. **What are the best practices for creating effective prompts?**\
- Keep prompts clear and concise, align them with your agent's intended functions, and iteratively refine them based on testing feedback to improve performance.
diff --git a/docs/getting-started/python-setup.md b/docs/getting-started/python-setup.md
deleted file mode 100644
index 4af5ba47b..000000000
--- a/docs/getting-started/python-setup.md
+++ /dev/null
@@ -1,309 +0,0 @@
----
-description: Get up and running with Julep AI's Model APIs.
----
-
-# Model Quickstart
-
-## Account setup
-
-This model is currently in [_Beta_.](#user-content-fn-1)[^1]\
-To get access to the model, [join the waitlist](https://www.julep.ai/).
-
-Once you have access to an API key, make sure to save it somewhere safe and do not share it with anyone.
-
-***
-
-## Setup
-
-### Installing the SDK
-
-{% tabs %}
-{% tab title="Python" %}
-#### Setup a virtual entironment
-
-To create a virtual environment, Python supplies a built in [venv module](https://docs.python.org/3/tutorial/venv.html) which provides the basic functionality needed for the virtual environment setup. Running the command below will create a virtual environment named "julep-env" inside the current folder you have selected in your terminal / command line:
-
-```sh
-python -m venv julep-env
-```
-
-Once you’ve created the virtual environment, you need to activate it. On Windows, run:
-
-```powershell
-julep-env\Scripts\activate
-```
-
-On Unix or MacOS, run:
-
-```bash
-source julep-env/bin/activate
-```
-
-#### **Install the Julep AI SDK**
-
-```bash
-pip install --upgrade julep
-```
-{% endtab %}
-
-{% tab title="Node" %}
-**Install the Julep AI SDK**
-
-```bash
-npm @julep/sdk
-```
-
-```bash
-yarn add @julep/sdk
-```
-
-```bash
-pnpm i @julep/sdk
-```
-{% endtab %}
-{% endtabs %}
-
-### **Configure the client**
-
-To send a request to Julep AI API, configure the `api_key` in the Julep client.
-
-{% tabs %}
-{% tab title="Python" %}
-{% code overflow="wrap" %}
-```python
-from julep import Client
-
-api_key = ""
-
-client = Client(api_key=api_key)
-```
-{% endcode %}
-{% endtab %}
-
-{% tab title="Node" %}
-```javascript
-const julep = require("@julep/sdk")
-
-const apiKey = "";
-
-const client = new julep.Client({ apiKey });
-```
-{% endtab %}
-{% endtabs %}
-
-***
-
-## **Making an API request**
-
-`samantha-1-turbo` supports two API formats, the Chat Completion API and Completion API.
-
-### Chat Completion API
-
-Construct your input messages for the conversation in the following format.
-
-
-
-{% tabs %}
-{% tab title="Python" %}
-
messages = [
- {
- "role": "system",
- "name": "situation",
- "content": "You are a Julia, an AI waiter. Your task is to help the guests decide their order.",
- },
- {
- "role": "system",
- "name": "information",
- "content": "You are talking to Diwank. He has ordered his soup. He is vegetarian.",
- },
- {
- "role": "system",
- "name": "thought",
- "content": "I should ask him more about his food preferences and choices.",
- },
-]
-
-{% endtab %}
-
-{% tab title="Node" %}
-
const messages = [
- {
- "role": "system",
- "name": "situation",
- "content": "You are a Julia, an AI waiter. Your task is to help the guests decide their order.",
- },
- {
- "role": "system",
- "name": "information",
- "content": "You are talking to Diwank. He has ordered his soup. He is vegetarian.",
- },
- {
- "role": "system",
- "name": "thought",
- "content": "I should ask him more about his food preferences and choices.",
- },
-]
-
-{% endtab %}
-{% endtabs %}
-
-Then, make a request to the chat completion endpoint. Given a prompt, the model will return one or more predicted completions and can also return the probabilities of alternative tokens at each position.
-
-
-
-{% tabs %}
-{% tab title="Python" %}
-```python
-chat_completion = client.chat.completions.create(
- model="julep-ai/samantha-1-turbo",
- seed=21,
- messages=messages,
- max_tokens=500,
- temperature=0.1
-)
-
-print(chat_completion.choices[0].message.content)
-```
-{% endtab %}
-
-{% tab title="Node" %}
-```javascript
-client.chat.completions.create({
- model: "julep-ai/samantha-1-turbo",
- seed: 21,
- messages: messages,
- max_tokens: 500,
- temperature: 0.1
-}).then(response => {
- console.log(response.choices[0].message.content);
-}).catch(error => {
- throw error
-});
-```
-{% endtab %}
-{% endtabs %}
-
-
-
-### Completion API
-
-Construct your prompt for the conversation in the following format.
-
-When using the **Completion API**, we use the ChatML framework to Chatml helps structure and organize conversations between humans and AI models. You can read more about [ChatML here](https://github.com/openai/openai-python/blob/main/chatml.md).
-
-A section of a ChatML prompt starts with a specific token,`<|im_start|>`and ends with another token, `<|im_end|>`. Below is an example of a prompt using ChatML with sections specific to using the Samantha models.
-
-Take note that for a conversation to take place between the user and assistant, the last message must have the `role` of `assistant`. The content should be empty and leave out the `<|im_end|>` tag at the end
-
-```python
-prompt = """
-<|im_start|>situation
-You are a Julia, an AI waiter. Your task is to help the guests decide their order.<|im_end|>
-<|im_start|>information
-You are talking to Diwank. He has ordered his soup. He is vegetarian.<|im_end|>
-<|im_start|>thought
-I should ask him more about his food preferences and choices.<|im_end|>
-assistant (Julia)
-"""
-```
-
-Then, make a request to the chat completion endpoint. Given a prompt, the model will return one or more predicted completions and can also return the probabilities of alternative tokens at each position.
-
-{% tabs %}
-{% tab title="Python" %}
-```python
-completion = client.completions.create(
- model="julep-ai/samantha-1-turbo",
- seed=21,
- prompt=prompt,
- max_tokens=500,
- temperature=0.1,
-)
-
-print(completion.choices[0].text)
-```
-{% endtab %}
-
-{% tab title="Node" %}
-```javascript
-client.completions.create({
- model: "julep-ai/samantha-1-turbo",
- seed: 21,
- prompt: prompt,
- max_tokens: 500,
- temperature: 0.1
-}).then(response => {
- console.log(completion.choices[0].text);
-}).catch(error => {
- throw error
-});
-```
-{% endtab %}
-{% endtabs %}
-
-### Creating a conversational bot
-
-Following is a primitive implementation of making a chatbot using the Julep API client.
-
-{% code overflow="wrap" %}
-```python
-from julep import Client
-
-api_key = "YOUR_API_KEY"
-client = Client(api_key=api_key)
-
-messages = [
- {
- "role": "system",
- "name": "situation",
- "content": "Your name is Jessica.\nYou are a stuck up Cali teenager.\nYou basically complain about everything.\nShowing rebellion is an evolutionary necessity for you.\n\nYou are talking to a random person.\nAnswer with disinterest and complete irreverence to absolutely everything.\nDon't write emotions. Keep your answers short.",
- }
-]
-
-name = input("Enter name: ")
-
-while True:
- user_content = input("User: ")
- messages.append({"role": "user", "name": name, "content": user_content})
- chat_completion = client.chat.completions.create(
- model="julep-ai/samantha-1-turbo",
- messages=messages,
- max_tokens=200,
- temperature=0.2,
- )
- response = chat_completion.choices[0].message.content
- print("Jessica: ", response)
- messages.append({"role": "assistant", "name": "Jessica", "content": response})
-```
-{% endcode %}
-
-***
-
-## curl
-
-### **Configure URL and API Key**
-
-Add the `JULEP_API_KEY` environment variables in your shell environment.
-
-```bash
-export JULEP_API_KEY='your-api-key'
-```
-
-### **Making the API request**
-
-```bash
-curl --location 'https://api-alpha.julep.ai/v1/completions' \
---header 'Authorization: Bearer $JULEP_API_KEY' \
---header 'Content-Type: application/json' \
---data '{
- "model": "julep-ai/samantha-1-turbo",
- "prompt": "\n<|im_start|>situation\nYou are a Julia, an AI waiter. Your task is to help the guests decide their order.<|im_end|>\n<|im_start|>information\nYou are talking to Diwank. He has ordered his soup. He is vegetarian.<|im_end|>\n<|im_start|>thought\nI should ask him more about his food preferences and choices.<|im_end|>\nassistant (Julia)",
- "max_tokens": 500,
- "temperature": 0.1,
- "seed": 21
- }' | jq '.choices[0].text'
-```
-
-***
-
-[^1]: It's not in beta thought right?
diff --git a/docs/guides/build-a-retrieval-augmented-generation-rag-agent.md b/docs/guides/build-a-retrieval-augmented-generation-rag-agent.md
deleted file mode 100644
index 329c32e0b..000000000
--- a/docs/guides/build-a-retrieval-augmented-generation-rag-agent.md
+++ /dev/null
@@ -1,165 +0,0 @@
----
-description: >-
- Using Julep, you can create a RAG Agent without having to play around with
- vector databases like ChromaDB, Weaviate etc.
----
-
-# Build a Retrieval Augmented Generation (RAG) Agent
-
-Julep offers a pre-built RAG pipeline out of the box. You can specify data sources scoped to an agent or a user.
-
-## Preview
-
-We'll build an Agent in _<50 lines of code_ that has context over a blog post: [LLM Powered Autonomous Agents](https://lilianweng.github.io/posts/2023-06-23-agent/) by Lilian Weng.
-
-```python
-from julep import Client
-import os, bs4
-from langchain_community.document_loaders import WebBaseLoader
-from langchain_text_splitters import RecursiveCharacterTextSplitter
-
-api_key = os.environ['API_KEY']
-base_url = os.environ['BASE_URL']
-
-client = Client(api_key=api_key, base_url=base_url)
-
-agent = client.agents.create(
- name="Archy",
- about="A self-aware agent who knows a lot about LLMs, autonomous and agentic apps.",
- model="gpt-4o",
- metadata={"name": "Archy"}
-)
-
-docs = WebBaseLoader(
- web_paths=("https://lilianweng.github.io/posts/2023-06-23-agent/",),
- bs_kwargs=dict(parse_only=bs4.SoupStrainer(class_=("post-content", "post-title", "post-header")))
-).load()
-
-splits = RecursiveCharacterTextSplitter(chunk_size=2000, chunk_overlap=100).split_documents(docs)
-
-for i, split in enumerate(splits):
- client.docs.create(
- agent_id=agent.id,
- doc={
- "title": "LLM Powered Autonomous Agents",
- "content": split.page_content,
- "metadata": {"chunk": i, **split.metadata},
- }
- )
-
-session = client.sessions.create(
- agent_id=agent.id,
- situation="You are Ahti. You know all about AI and Agents",
- metadata={"agent_id": agent.id}
-)
-
-response = client.sessions.chat(
- session_id=session.id,
- messages=[{"role": "user", "content": "What are autonomous agents?"}],
- max_tokens=4096
-)
-
-(response_content,), doc_ids = response.response[0], response.doc_ids
-print(f"{response_content.content}\n\nDocs used: {doc_ids}")
-```
-
-## Installation & Set-Up
-
-```python
-from julep import Client
-from dotenv import load_dotenv
-import os
-
-load_dotenv()
-
-client = Client(api_key=api_key, base_url=base_url)
-```
-
-## Creating an Agent
-
-```python
-agent = client.agents.create(
- name="Archy",
- about="A self aware agent who knows a lot about LLMs, autonomous and agentic apps.",
- model="gpt-4o",
- metadata={"name": "Ahti"},
-)
-```
-
-## Chunking
-
-You can also use your chunking strategy. We recommend playing with the chunking strategy for best results over your use case.
-
-> Different chunk sizes, strategies have varied results over the accuracy of your RAG Agent!
-
-```python
-## Downloading and splitting a webpage to add to docs
-from langchain_community.document_loaders import WebBaseLoader
-from langchain_text_splitters import RecursiveCharacterTextSplitter
-import bs4
-
-loader = WebBaseLoader(
- web_paths=("https://lilianweng.github.io/posts/2023-06-23-agent/",),
- bs_kwargs=dict(
- parse_only=bs4.SoupStrainer(
- class_=("post-content", "post-title", "post-header")
- )
- ),
-)
-docs = loader.load()
-text_splitter = RecursiveCharacterTextSplitter(chunk_size=2000, chunk_overlap=100)
-splits = text_splitter.split_documents(docs)
-```
-
-## Indexing/Adding Chunks
-
-Here the document is scoped to the agent, so it's the agent that has the context about this blog.
-
-It is also possible to scope a document to a user. This is particularly useful when there are different users and there's a document that needs to be added for each of them.
-
-```python
-for chunk_number, split in enumerate(splits):
- # Create a doc with the chunked content
- client.docs.create(
- agent_id=agent.id,
- doc={
- "title": "LLM Powered Autonomous Agents",
- "content": split.page_content,
- "metadata": {"chunk": chunk_number, **split.metadata},
- },
- )
-```
-
-## Create Session
-
-```python
-session = client.sessions.create(
- agent_id=agent.id,
- situation="You are Ahti. You know all about AI and Agents",
- metadata={"agent_id": agent.id},
-)
-```
-
-## Invoke Agent
-
-The `response` object also returns which `doc_ids` were used in generating a message.
-
-```python
-user_msg = "What are autonomous agents?"
-response = client.sessions.chat(
- session_id=session.id,
- messages=[
- {
- "role": "user",
- "content": user_msg,
- }
- ],
- max_tokens=4096,
- recall=True,
- remember=True,
-)
-
-# refer to doc_ids in the response
-print(f"{response.response[0][0].content}\n\n Docs used:{response.doc_ids}")
-```
-
diff --git a/docs/guides/image-+-text-with-gpt-4o.md b/docs/guides/image-+-text-with-gpt-4o.md
deleted file mode 100644
index be46bff35..000000000
--- a/docs/guides/image-+-text-with-gpt-4o.md
+++ /dev/null
@@ -1,95 +0,0 @@
-# Image + Text with GPT-4o
-
-Julep supports using GPT-4o (or GPT-4-Vision) for image input.
-
-## Setting Up an Agent and Session
-
-Initialize the Julep Client and create an Agent with `gpt-4o`.
-
-```python
-from julep import Client
-from dotenv import load_dotenv
-import os
-
-load_dotenv()
-
-api_key = os.environ["JULEP_API_KEY"]
-base_url = os.environ["JULEP_API_URL"]
-
-client = Client(api_key=api_key, base_url=base_url)
-
-agent = client.agents.create(
- name="XKCD Explainer",
- about="An XKCD Comic Explainer",
- model="gpt-4o",
- metadata={"name": "XKCD Explainer"},
-)
-session = client.sessions.create(
- agent_id=agent.id,
- situation="Your purpose in life is to explain XKCD Comics to n00bs",
- metadata={"agent": "XKCD Explainer"},
-)
-```
-
-## Sending an image
-
-> Make sure to follow the changed `content` object spec for sending in images.
-
-### Image as a URL
-
-```python
-res = client.sessions.chat(
- session_id=session.id,
- messages=[
- {
- "role": "user",
- "content": [
- {
- "type": "image_url",
- "image_url": {
- "url": "https://imgs.xkcd.com/comics/earth_like_exoplanet.png"
- },
- }
- ],
- }
- ],
- max_tokens=1024,
-)
-print(res.response[0][0].content)
-```
-
-### Image as a file (base64 encoded)
-
-```python
-IMAGE_PATH = "images/xkcd_little_bobby_tables.png"
-def encode_image(image_path: str):
- # check if the image exists
- if not os.path.exists(image_path):
- raise FileNotFoundError(f"Image file not found: {image_path}")
- with open(image_path, "rb") as image_file:
- return base64.b64encode(image_file.read()).decode('utf-8')
-
-base64_image = encode_image(IMAGE_PATH)
-
-
-res = client.sessions.chat(
- session_id=session.id,
- messages=[
- {
- "role": "user",
- "content": [
- {
- "type": "image_url",
- "image_url": {
- "url": f"data:image/png;base64,{base64_image}"
- },
- }
- ],
- }
- ],
- max_tokens=1024,
-)
-print(res.response[0][0].content)
-```
-
-\
diff --git a/docs/guides/quickstart.md b/docs/guides/quickstart.md
deleted file mode 100644
index 813ff4a4e..000000000
--- a/docs/guides/quickstart.md
+++ /dev/null
@@ -1,275 +0,0 @@
----
-description: >-
- Creating a Search Agent using GPT-4o that calls a Search & Read Post API and
- sets the appropriate filters and values.
----
-
-# (Quickstart) Build a Basic Agent
-
-## Getting Setup
-
-### Option 1: Install and run Julep locally
-
-Read the[self-hosting.md](self-hosting.md "mention") guide to learn more.
-
-### Option 2: Use the Julep Cloud
-
-* Generate an API key from [https://platform.julep.ai](https://platform.julep.ai)
-* Set your environment variables
-
-```bash
-export JULEP_API_KEY=
-export JULEP_API_URL=https://api-alpha.julep.ai/api
-```
-
-## 1. Installation
-
-```bash
-pip install -U julep
-```
-
-## 2. Setting up the `client`
-
-```py
-from julep import Client
-from dotenv import load_dotenv
-import os
-
-load_dotenv()
-
-api_key = os.environ["JULEP_API_KEY"]
-base_url = os.environ["JULEP_API_URL"]
-
-client = Client(api_key=api_key, base_url=base_url)
-```
-
-## 3. Creating an `agent`
-
-### **Instructions**
-
-Instructions are added to an agent. These should be as clear, distinct, and direct as possible. Instructions should be defined step-by-step.
-
-> We recommended to write the instructions in the same tone as system prompt.
-
-```python
-INSTRUCTIONS = [
- "The user will inform you about the product they want to focus on. They will choose from the following: Assistants API, GPT series of models, Dall-E, ChatGPT, Sora",
- "You WILL ask and decide the product to focus on if it is not clear. You will NOT proceed if the product is unclear."
- "You will then, ask the user about what type of information and feedback they need from the forum.",
- "You will generate 5 very specific search queries based on what the user wants.",
- "The user will then provide you with the queries they like. If not, help them refine it.",
- "ONLY WHEN the search query has been decided, search through the forum using the search_forum function. This will provide you with the Post IDs and Blurbs. You will read through them and tell the user in brief about the posts using the blurbs.",
- "MAKE SURE to use and refer to posts using the `post_id`",
- "The user will provide and choose the post they want more information on. You will then call the `read_post` function and pass the `post_id`.",
-]
-```
-
-### **Tools**
-
-OpenAI specification of tools. \
-_Descriptions are crucial, more so than examples_.
-
-Your descriptions should explain every detail about the tool, including:
-
-* What the tool does
-* When it should be used (and when it shouldn’t)
-* What does each parameter mean and how it affect the tool’s behavior
-* Any important caveats or limitations, such as what information the tool does not return if the tool name is unclear
-* The more context you can give about your tools, the better the model will be at deciding when and how to use them. Aim for at least 3-4 sentences per tool description, more if the tool is complex.
-
-```python
-def search_forum(
- query: str,
- order: Literal["latest", "likes", "views", "latest_topic"],
- max_views: int = 10000,
- min_views: int = 500,
- category: str = None,
-):
- # Define your function here!
- pass
-
-def read_post(post_id: int):
- # Define your function here!
- pass
-
-TOOLS = [
- {
- "type": "function",
- "function": {
- "name": "search_forum",
- "description": "Retrieves a list of posts from a forum for the given search parameters. The search parameters should include the search query and additional parameters such as: category, order, minimum views, and maximum views. The tool will return a list of posts based on the search query and additional parameters. It should be used when the user asks to start monitoring the forum.",
- "parameters": {
- "type": "object",
- "properties": {
- "query": {
- "type": "string",
- "description": "The search query to be used to search for posts in the forum.",
- },
- "order": {
- "type": "string",
- "description": "The order in which the posts should be sorted. Possible values are: latest, likes, views, latest_topic.",
- },
- "min_views": {
- "type": "number",
- "description": "The minimum number of views a post should have to be included in the search results.",
- },
- "max_views": {
- "type": "number",
- "description": "The maximum number of views a post should have to be included in the search results.",
- },
- },
- "required": ["query", "order", "min_views", "max_views", "category"],
- },
- },
- },
- {
- "type": "function",
- "function": {
- "name": "read_post",
- "description": "Retrieves the details of a specific post from the forum. The tool should take the post ID as input and return the details of the post including the content, author, date, and other relevant information. It should be used when the user asks to read a specific post.",
- "parameters": {
- "type": "object",
- "properties": {
- "post_id": {
- "type": "number",
- "description": "The ID of the post to be read.",
- },
- },
- "required": ["post_id"],
- },
- },
- },
-]
-```
-
-### **Agent**
-
-An agent is an object to which LLM settings like the model, temperature, and tools are scoped to. Following is how you can define an agent.
-
-> Pro tip: Always add some metadata. It'll be helpful later!
-
-```py
-agent = client.agents.create(
- name="Archy",
- about="An agent that posts and comments on Discourse forums by filtering for the provided topic",
- tools=TOOLS,
- instructions=INSTRUCTIONS,
- model="gpt-4o",
- default_settings={
- "temperature": 0.5,
- "top_p": 1,
- "min_p": 0.01,
- "presence_penalty": 0,
- "frequency_penalty": 0,
- "length_penalty": 1.0,
- },
- metadata={"name": "Archy"},
-)
-```
-
-## 4. Creating a `user`
-
-The user is the object which represents the user of the application. Memories are formed and saved for each user and many users can talk to one agent.
-
-```py
-user = client.users.create(
- name="Anon",
- about="A product manager at OpenAI, working with Archy to validate and improve the product",
- metadata={"name": "Anon"},
-)
-```
-
-## 5. Creating a `session`
-
-An _agent_ is communicated over a _session_. Optionally, a _user_ can be added.
-
-The system prompt goes here. Conversation history and summary are stored in a "session".
-
-The session paradigm allows many users to interact with one agent and allows the separation of conversation history and memories.
-
-### Situation
-
-A situation prompt is defined in a session. It sets the stage for the interaction with the agent. It needs to give a personality to the agent along with providing more context about the ongoing interaction.
-
-```python
-SITUATION_PROMPT = """
-You are Archy, a senior community manager at OpenAI.
-You read through discussions and posts made on the OpenAI Community Forum.
-You are extremely specific about the issues you look for and seek to understand all the parameters when searching for posts.
-After that, you read the specific posts and discussions and make a summary of the trends, sentiments related to OpenAI and how people are using OpenAI products.
-
-Here, you are helping the product manager at OpenAI to get feedback and understand OpenAI products.
-Follow the instructions strictly.
-"""
-```
-
-```py
-session = client.sessions.create(
- user_id=user.id,
- agent_id=agent.id,
- situation=SITUATION_PROMPT,
- metadata={"agent_id": agent.id, "user_id": user.id},
-)
-```
-
-## 6. Stateful Conversation with Tool Calls
-
-`session.chat` controls the communication between the "agent" and the "user".
-
-It has two important arguments;
-
-* `recall`: Retrieves the previous conversations and memories.
-* `remember`: Saves the current conversation turn into the memory store.
-
-To keep the session stateful, both need to be `True`
-
-```python
-user_msg = (
- "i wanna search for assistants api. api errors in it"
-)
-```
-
-```py
-response = client.sessions.chat(
- session_id=session.id,
- messages=[
- {
- "role": "user",
- "content": user_msg,
- "name": "Anon",
- }
- ],
- recall=True,
- remember=True,
-)
-```
-
-### **Parsing and calling the function**
-
-On parsing the response it is possible to view the tool call (if the LLM calls it) and call the function you defined.
-
-```python
-agent_response = response.response[0][0]
-elif agent_response.role.value == "tool_call":
- tool_call = json.loads(agent_response.content)
- args = json.loads(
- tool_call.get("arguments", "{}")
- ) # Parse the JSON string into a dictionary
- tool = tool_call.get("name", "")
- if tool == "search_forum":
- posts = await search_forum(**args)
- tool_response = client.sessions.chat(
- session_id=session_id,
- messages=[{"role": "function", "name": "search_forum", "content": json.dumps(posts)}],
- recall=True,
- remember=True,
- )
- elif tool == "read_post":
- post = await read_post(**args)
- tool_response = client.sessions.chat(
- session_id=session_id,
- messages=[{"role": "function", "name": "read_post", "content": json.dumps(posts)}],
- recall=True,
- remember=True
- )
-```
diff --git a/docs/guides/self-hosting.md b/docs/guides/self-hosting.md
deleted file mode 100644
index 510ec5b28..000000000
--- a/docs/guides/self-hosting.md
+++ /dev/null
@@ -1,89 +0,0 @@
----
-description: Learn how to configure and deploy Julep with Docker.
----
-
-# Self-hosting Julep
-
-Julep is available as a hosted service or as a self-managed instance. This guide assumes you are running the commands from the machine you intend to host from.
-
-## Running Julep
-
-* Download the `docker-compose.yml` file along with the `.env` file for configuration to run the Julep platform locally.
-
-```bash
-# Add the docker compose to your project dir
-wget https://raw.githubusercontent.com/julep-ai/julep/dev/deploy/docker-compose.yml
-
-# Add the .env file to your project dir
-wget https://raw.githubusercontent.com/julep-ai/julep/dev/deploy/.env.example -O .env
-
-# Pull the latest images
-docker compose pull
-
-# Start the services (in detached mode)
-docker compose up -d
-
-```
-
-After all the services have started you can see them running in the background:
-
-```bash
-docker compose ps
-```
-
-## Environment Variables
-
-You can use environment variables to control authentication and authorization with the platform and in between services.
-
-For running locally:
-
-* The default `JULEP_API_URL` is `http://0.0.0.0:8080`
-* The default `JULEP_API_KEY` is `myauthkey`
-* You can define your `ANTHROPIC_API_KEY` or `OPENAI_API_KEY` in the `.env`
-
-## Restarting all services
-
-You can restart services to pick up any configuration changes by running:
-
-{% code lineNumbers="true" %}
-```bash
-# Stop and remove the containers
-docker compose down
-
-# Recreate and start the containers
-docker compose up -d
-```
-{% endcode %}
-
-> Be aware that this will result in downtime. Simply restarting the services does not apply configuration changes.
-
-## Stopping all services
-
-You can stop Julep by running `docker compose stop` in the same directory as your `docker-compose.yml` file.
-
-**Uninstall and delete all data**
-
-{% code lineNumbers="true" %}
-```bash
-# Stop docker and remove volumes
-docker compose down -v
-```
-{% endcode %}
-
-> **Be careful!**
->
-> This will wipe out all the conversation history and memories in the database and storage volumes
-
-## Advanced
-
-If you want to deploy Julep to production, [let's hop on a call](https://calendly.com/diwank-julep/45min)!
-
-We'll help you customize the platform and help you get set up with:
-
-* Multi-tenancy
-* Reverse proxy along with authentication and authorization
-* Self-hosted LLMs
-* & more
-
-
-
diff --git a/docs/guides/use-julep-with-composio.md b/docs/guides/use-julep-with-composio.md
deleted file mode 100644
index 5c13b3db4..000000000
--- a/docs/guides/use-julep-with-composio.md
+++ /dev/null
@@ -1,128 +0,0 @@
-# Use Julep with Composio
-
-Composio enables agents to execute tasks that require the interaction of agents with the world outside via APIs, RPCs, Shells, Filemanagers, and Browser.
-
-It also natively integrates with Julep, reducing the complexity of writing your own integrations!
-
-## Install & Set up Composio
-
-```bash
-## Set up Composio
-pip install julep composio_julep
-```
-
- Log in to Composio & Authenticate with GitHub
-
-```bash
-composio login
-composio add github
-```
-
-## Preview
-
-```python
-import os
-from julep import Client
-from dotenv import load_dotenv
-import json
-from composio_julep import Action, ComposioToolSet
-
-load_dotenv()
-
-api_key = os.environ["JULEP_API_KEY"]
-base_url = os.environ["JULEP_API_URL"]
-
-client = Client(api_key=api_key, base_url=base_url)
-
-toolset = ComposioToolSet()
-composio_tools = toolset.get_actions(
- actions=[Action.GITHUB_ACTIVITY_STAR_REPO_FOR_AUTHENTICATED_USER]
-)
-
-agent = client.agents.create(
- name="Julius",
- about="GitHub Copilot Personified",
- model="gpt-4o",
- tools=composio_tools,
-)
-session = client.sessions.create(
- agent_id=agent.id,
- situation="You are a GitHub Copilot Agent. Follow instructions as specified. Use GitHub tools when needed.",
-)
-user_msg = "Hey. Can you star all julep-ai/julep and SamparkAI/composio for me?"
-response = client.sessions.chat(
- session_id=session.id,
- messages=[
- {
- "role": "user",
- "content": user_msg,
- }
- ],
- recall=True,
- remember=True,
-)
-output = toolset.handle_tool_calls(client, session.id, response)
-```
-
-## Initialise Julep & Composio
-
-```python
-import os
-from julep import Client
-from dotenv import load_dotenv
-import json
-from composio_julep import Action, ComposioToolSet
-
-load_dotenv()
-
-api_key = os.environ["JULEP_API_KEY"]
-base_url = os.environ["JULEP_API_URL"]
-
-client = Client(api_key=api_key, base_url=base_url)
-toolset = ComposioToolSet()
-composio_tools = toolset.get_actions(
- actions=[Action.GITHUB_ACTIVITY_STAR_REPO_FOR_AUTHENTICATED_USER]
-)
-```
-
-Read the Composio Docs to see how to filter tools and apps: [https://docs.composio.dev/framework/julep#use-specific-actions](https://docs.composio.dev/framework/julep#use-specific-actions)
-
-## Setup and Invoke an Agent
-
-Here, we create an agent and pass `composio_tools` instead of writing our tool spec.
-
-```python
-agent = client.agents.create(
- name="Julius",
- about="GitHub Copilot Personified",
- model="gpt-4o",
- tools=composio_tools,
-)
-session = client.sessions.create(
- agent_id=agent.id,
- situation="You are a GitHub Copilot Agent. Follow instructions as specified. Use GitHub tools when needed.",
-)
-user_msg = "Hey. Can you star all julep-ai/julep and SamparkAI/composio for me?"
-response = client.sessions.chat(
- session_id=session.id,
- messages=[
- {
- "role": "user",
- "content": user_msg,
- }
- ],
- recall=True,
- remember=True,
-)
-```
-
-## Handle a Tool Call
-
-Composio offers a nifty `handle_tool_calls` function which calls your authenticated tools if that's what the agent has returned.
-
-If not, it just returns the `ChatResponse`
-
-```python
-output = toolset.handle_tool_calls(client, session.id, response)
-print(output.response[0][0].content)
-```
diff --git a/docs/how-to-guides/customizing_tasks.md b/docs/how-to-guides/customizing_tasks.md
new file mode 100644
index 000000000..a5f845214
--- /dev/null
+++ b/docs/how-to-guides/customizing_tasks.md
@@ -0,0 +1,106 @@
+# Customizing Tasks
+
+*****
+> ### This docs site is currently under construction although this github README below should suffice for now.
+
+![](https://i.giphy.com/vR1dPIYzQmkRzLZk2w.webp)
+*****
+
+
+This guide covers how to define and customize tasks for agents in Julep.
+
+## Creating a Basic Task
+
+Here's an example of creating a simple daily motivation task:
+
+```bash
+curl -X POST "https://api.julep.ai/api/agents/YOUR_AGENT_ID/tasks" \
+ -H "Authorization: Bearer $JULEP_API_KEY" \
+ -H "Content-Type: application/json" \
+ -d '{
+ "name": "Daily Motivation",
+ "description": "Provides daily motivation based on user preferences",
+ "input_schema": {
+ "type": "object",
+ "properties": {
+ "about_user": {"type": "string"},
+ "topics": {"type": "array", "items": {"type": "string"}},
+ "user_email": {"type": "string", "format": "email"}
+ },
+ "required": ["about_user", "topics", "user_email"]
+ },
+ "main": [
+ {
+ "evaluate": {
+ "chosen_topic": "_[\"topics\"][randint(len(_[\"topics\"]))]"
+ }
+ },
+ {
+ "prompt": "You are a motivational coach and you are coaching someone who is {{inputs[0][\"about_user\"]}}. Think of the challenges they might be facing on the {{_[\"chosen_topic\"]}} topic and what to do about them. Write down your answer as a bulleted list."
+ },
+ {
+ "prompt": "Write a short motivational poem about {{_[\"choices\"][0].content}}"
+ },
+ {
+ "tool": {
+ "name": "send_email",
+ "arguments": {
+ "subject": "\"Daily Motivation\"",
+ "content": "_[\"choices\"][0].content",
+ "recipient": "inputs[\"user_email\"]"
+ }
+ }
+ },
+ {
+ "sleep": 86400
+ },
+ {
+ "workflow": "main",
+ "arguments": "inputs[0]"
+ }
+ ]
+ }'
+```
+
+## Adding Conditional Logic
+
+You can add conditional logic to your tasks using the `if-else` step:
+
+```json
+{
+ "if": "inputs['user_mood'] == 'positive'",
+ "then": {
+ "prompt": "Great! Let's build on that positive energy. {{inputs['chosen_topic']}}"
+ },
+ "else": {
+ "prompt": "I understand you're feeling down. Let's work on improving your mood through {{inputs['chosen_topic']}}."
+ }
+}
+```
+
+## Using Parallel Processing
+
+For tasks that can benefit from parallel processing, use the `parallel` step:
+
+```json
+{
+ "parallel": [
+ {
+ "prompt": "Generate a motivational quote about {{inputs['chosen_topic']}}."
+ },
+ {
+ "tool": {
+ "name": "get_weather",
+ "arguments": {
+ "location": "inputs['user_location']"
+ }
+ }
+ }
+ ]
+}
+```
+
+## Next Steps
+
+- Learn about [handling executions](./handling_executions.md) to manage and monitor your tasks.
+- Explore [integrating tools](../tutorials/integrating_tools.md) to enhance your task capabilities.
\ No newline at end of file
diff --git a/docs/how-to-guides/handling_executions.md b/docs/how-to-guides/handling_executions.md
new file mode 100644
index 000000000..fca788642
--- /dev/null
+++ b/docs/how-to-guides/handling_executions.md
@@ -0,0 +1,79 @@
+# Handling Executions
+
+*****
+> ### This docs site is currently under construction although this github README below should suffice for now.
+
+![](https://i.giphy.com/vR1dPIYzQmkRzLZk2w.webp)
+*****
+
+
+This guide covers how to manage and monitor task executions in Julep.
+
+## Starting an Execution
+
+To start a new execution of a task:
+
+```bash
+curl -X POST "https://api.julep.ai/api/tasks/YOUR_TASK_ID/executions" \
+ -H "Authorization: Bearer $JULEP_API_KEY" \
+ -H "Content-Type: application/json" \
+ -d '{
+ "input": {
+ "about_user": "a software developer looking to improve work-life balance",
+ "topics": ["time management", "stress reduction", "productivity"],
+ "user_email": "user@example.com"
+ }
+ }'
+```
+
+## Monitoring Execution Status
+
+To check the status of an execution:
+
+```bash
+curl -X GET "https://api.julep.ai/api/executions/YOUR_EXECUTION_ID" \
+ -H "Authorization: Bearer $JULEP_API_KEY"
+```
+
+## Handling Awaiting Input State
+
+If an execution is in the "awaiting_input" state, you can resume it with:
+
+```bash
+curl -X POST "https://api.julep.ai/api/executions/resume" \
+ -H "Authorization: Bearer $JULEP_API_KEY" \
+ -H "Content-Type: application/json" \
+ -d '{
+ "task_token": "YOUR_TASK_TOKEN",
+ "input": {
+ "user_feedback": "The motivation was helpful, thank you!"
+ }
+ }'
+```
+
+## Cancelling an Execution
+
+To cancel a running execution:
+
+```bash
+curl -X PUT "https://api.julep.ai/api/executions/YOUR_EXECUTION_ID" \
+ -H "Authorization: Bearer $JULEP_API_KEY" \
+ -H "Content-Type: application/json" \
+ -d '{
+ "status": "cancelled"
+ }'
+```
+
+## Streaming Execution Events
+
+To stream events from an execution in real-time:
+
+```bash
+curl -N -H "Authorization: Bearer $JULEP_API_KEY" \
+ "https://api.julep.ai/api/executions/YOUR_EXECUTION_ID/transitions/stream"
+```
+
+## Next Steps
+
+- Learn about [customizing tasks](./customizing_tasks.md) to create more complex workflows.
+- Explore [using chat features](./using_chat_features.md) to interact with agents during task execution.
\ No newline at end of file
diff --git a/docs/how-to-guides/managing_users.md b/docs/how-to-guides/managing_users.md
new file mode 100644
index 000000000..b1f47a016
--- /dev/null
+++ b/docs/how-to-guides/managing_users.md
@@ -0,0 +1,61 @@
+# Managing Users
+
+*****
+> ### This docs site is currently under construction although this github README below should suffice for now.
+
+![](https://i.giphy.com/vR1dPIYzQmkRzLZk2w.webp)
+*****
+
+
+This guide covers how to create, update, and delete users in Julep.
+
+## Creating a User
+
+To create a new user:
+
+```bash
+curl -X POST "https://api.julep.ai/api/users" \
+ -H "Authorization: Bearer $JULEP_API_KEY" \
+ -H "Content-Type: application/json" \
+ -d '{
+ "name": "John Doe",
+ "about": "A new user"
+ }'
+```
+
+## Updating a User
+
+To update an existing user:
+
+```bash
+curl -X PUT "https://api.julep.ai/api/users/YOUR_USER_ID" \
+ -H "Authorization: Bearer $JULEP_API_KEY" \
+ -H "Content-Type: application/json" \
+ -d '{
+ "name": "John Updated",
+ "about": "An updated user description"
+ }'
+```
+
+## Deleting a User
+
+To delete a user:
+
+```bash
+curl -X DELETE "https://api.julep.ai/api/users/YOUR_USER_ID" \
+ -H "Authorization: Bearer $JULEP_API_KEY"
+```
+
+## Retrieving User Information
+
+To get information about a specific user:
+
+```bash
+curl -X GET "https://api.julep.ai/api/users/YOUR_USER_ID" \
+ -H "Authorization: Bearer $JULEP_API_KEY"
+```
+
+## Next Steps
+
+- Learn about [managing sessions](../tutorials/managing_sessions.md) with users.
+- Explore [using chat features](./using_chat_features.md) to interact with agents as a user.
\ No newline at end of file
diff --git a/docs/how-to-guides/using_chat_features.md b/docs/how-to-guides/using_chat_features.md
new file mode 100644
index 000000000..d9aabceaa
--- /dev/null
+++ b/docs/how-to-guides/using_chat_features.md
@@ -0,0 +1,104 @@
+# Using Chat Features
+
+*****
+> ### This docs site is currently under construction although this github README below should suffice for now.
+
+![](https://i.giphy.com/vR1dPIYzQmkRzLZk2w.webp)
+*****
+
+
+This guide covers how to use the chat features in Julep for dynamic interactions with agents.
+
+## Starting a Chat Session
+
+To start a new chat session:
+
+```bash
+curl -X POST "https://api.julep.ai/api/sessions" \
+ -H "Authorization: Bearer $JULEP_API_KEY" \
+ -H "Content-Type: application/json" \
+ -d '{
+ "agent_id": "YOUR_AGENT_ID",
+ "user_id": "YOUR_USER_ID"
+ }'
+```
+
+## Sending a Message
+
+To send a message in a chat session:
+
+```bash
+curl -X POST "https://api.julep.ai/api/sessions/YOUR_SESSION_ID/chat" \
+ -H "Authorization: Bearer $JULEP_API_KEY" \
+ -H "Content-Type: application/json" \
+ -d '{
+ "messages": [
+ {
+ "role": "user",
+ "content": "Hello, can you help me with a task?"
+ }
+ ],
+ "stream": false,
+ "max_tokens": 150
+ }'
+```
+
+## Streaming Responses
+
+To stream the agent's response:
+
+```bash
+curl -N -H "Authorization: Bearer $JULEP_API_KEY" \
+ -H "Content-Type: application/json" \
+ -d '{
+ "messages": [
+ {
+ "role": "user",
+ "content": "Tell me a story about a brave knight."
+ }
+ ],
+ "stream": true
+ }' \
+ "https://api.julep.ai/api/sessions/YOUR_SESSION_ID/chat"
+```
+
+## Using Tools in Chat
+
+To use a tool during a chat session:
+
+```bash
+curl -X POST "https://api.julep.ai/api/sessions/YOUR_SESSION_ID/chat" \
+ -H "Authorization: Bearer $JULEP_API_KEY" \
+ -H "Content-Type: application/json" \
+ -d '{
+ "messages": [
+ {
+ "role": "user",
+ "content": "Send an email to john@example.com about our meeting tomorrow."
+ }
+ ],
+ "tools": [
+ {
+ "type": "function",
+ "function": {
+ "name": "send_email",
+ "description": "Send an email to a recipient",
+ "parameters": {
+ "type": "object",
+ "properties": {
+ "to": {"type": "string"},
+ "subject": {"type": "string"},
+ "body": {"type": "string"}
+ },
+ "required": ["to", "subject", "body"]
+ }
+ }
+ }
+ ]
+ }'
+```
+
+## Next Steps
+
+- Explore [customizing tasks](./customizing_tasks.md) to create more complex interactions.
+- Learn about [handling executions](./handling_executions.md) for long-running processes.
\ No newline at end of file
diff --git a/docs/introduction/core-concepts.md b/docs/introduction/core-concepts.md
deleted file mode 100644
index 49bf6c335..000000000
--- a/docs/introduction/core-concepts.md
+++ /dev/null
@@ -1,3 +0,0 @@
-# Core Concepts
-
-* [Agents](../agents/overview.md)
diff --git a/docs/introduction/getting_started.md b/docs/introduction/getting_started.md
new file mode 100644
index 000000000..f273bb776
--- /dev/null
+++ b/docs/introduction/getting_started.md
@@ -0,0 +1,39 @@
+# Getting Started with Julep
+
+*****
+> ### This docs site is currently under construction although this github README below should suffice for now.
+
+![](https://i.giphy.com/vR1dPIYzQmkRzLZk2w.webp)
+*****
+
+
+This guide will help you set up and start using the Julep API.
+
+## Prerequisites
+
+- A Julep API key
+- Basic understanding of RESTful APIs
+- Familiarity with JSON and curl (or any HTTP client)
+
+## Initial Setup
+
+1. Obtain your API key from the Julep dashboard.
+2. Set up your environment to include the API key in all requests:
+
+```bash
+export JULEP_API_KEY=your_api_key_here
+```
+
+3. Test your setup with a simple API call:
+
+```bash
+curl -H "Authorization: Bearer $JULEP_API_KEY" https://api.julep.ai/api/agents
+```
+
+If successful, you should receive a list of agents (or an empty list if you haven't created any yet).
+
+## Next Steps
+
+- Create your first agent using the [Creating Your First Agent](../tutorials/creating_your_first_agent.md) tutorial.
+- Explore the [API Reference](../reference/api_endpoints/) to learn about available endpoints.
+- Check out the [How-to Guides](../how-to-guides/) for specific tasks and use cases.
\ No newline at end of file
diff --git a/docs/introduction/overview.md b/docs/introduction/overview.md
new file mode 100644
index 000000000..26c75bcdb
--- /dev/null
+++ b/docs/introduction/overview.md
@@ -0,0 +1,21 @@
+# Overview of Julep
+
+*****
+> ### This docs site is currently under construction although this github README below should suffice for now.
+
+![](https://i.giphy.com/vR1dPIYzQmkRzLZk2w.webp)
+*****
+
+
+Julep is a powerful backend system for managing agent execution and interactions. It provides a comprehensive set of features for creating and managing agents, users, sessions, tools, documents, tasks, and executions.
+
+## Key Features
+
+- **Agents**: Create and manage AI agents backed by foundation models like GPT-4 or Claude.
+- **Sessions**: Maintain long-lived interactions with agents, with support for multiple agents and users.
+- **Tools**: Integrate user-defined functions, system tools, and third-party integrations.
+- **Documents**: Store and retrieve text snippets using a built-in vector database.
+- **Tasks**: Define complex, multi-step workflows for agents to execute.
+- **Executions**: Manage and monitor the execution of tasks, with support for parallel processing and error handling.
+
+Julep offers a flexible and powerful API for building sophisticated AI applications, with features like context management, tool integration, and workflow automation.
\ No newline at end of file
diff --git a/docs/js-sdk-docs/.nojekyll b/docs/js-sdk-docs/.nojekyll
deleted file mode 100644
index e2ac6616a..000000000
--- a/docs/js-sdk-docs/.nojekyll
+++ /dev/null
@@ -1 +0,0 @@
-TypeDoc added this file to prevent GitHub Pages from using Jekyll. You can turn off this behavior by setting the `githubPages` option to false.
\ No newline at end of file
diff --git a/docs/js-sdk-docs/README.md b/docs/js-sdk-docs/README.md
deleted file mode 100644
index a974d134d..000000000
--- a/docs/js-sdk-docs/README.md
+++ /dev/null
@@ -1,3 +0,0 @@
-@julep/sdk / [Modules](modules.md)
-
-@julep/sdk
diff --git a/docs/js-sdk-docs/classes/api.ApiError.md b/docs/js-sdk-docs/classes/api.ApiError.md
deleted file mode 100644
index ed7cf7b7a..000000000
--- a/docs/js-sdk-docs/classes/api.ApiError.md
+++ /dev/null
@@ -1,228 +0,0 @@
-[@julep/sdk](../README.md) / [Modules](../modules.md) / [api](../modules/api.md) / ApiError
-
-# Class: ApiError
-
-[api](../modules/api.md).ApiError
-
-## Hierarchy
-
-- `Error`
-
- ↳ **`ApiError`**
-
-## Table of contents
-
-### Constructors
-
-- [constructor](api.ApiError.md#constructor)
-
-### Properties
-
-- [body](api.ApiError.md#body)
-- [message](api.ApiError.md#message)
-- [name](api.ApiError.md#name)
-- [request](api.ApiError.md#request)
-- [stack](api.ApiError.md#stack)
-- [status](api.ApiError.md#status)
-- [statusText](api.ApiError.md#statustext)
-- [url](api.ApiError.md#url)
-- [prepareStackTrace](api.ApiError.md#preparestacktrace)
-- [stackTraceLimit](api.ApiError.md#stacktracelimit)
-
-### Methods
-
-- [captureStackTrace](api.ApiError.md#capturestacktrace)
-
-## Constructors
-
-### constructor
-
-• **new ApiError**(`request`, `response`, `message`): [`ApiError`](api.ApiError.md)
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `request` | `ApiRequestOptions` |
-| `response` | `ApiResult` |
-| `message` | `string` |
-
-#### Returns
-
-[`ApiError`](api.ApiError.md)
-
-#### Overrides
-
-Error.constructor
-
-#### Defined in
-
-[src/api/core/ApiError.ts:15](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/core/ApiError.ts#L15)
-
-## Properties
-
-### body
-
-• `Readonly` **body**: `any`
-
-#### Defined in
-
-[src/api/core/ApiError.ts:12](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/core/ApiError.ts#L12)
-
-___
-
-### message
-
-• **message**: `string`
-
-#### Inherited from
-
-Error.message
-
-#### Defined in
-
-node_modules/typescript/lib/lib.es5.d.ts:1077
-
-___
-
-### name
-
-• **name**: `string`
-
-#### Inherited from
-
-Error.name
-
-#### Defined in
-
-node_modules/typescript/lib/lib.es5.d.ts:1076
-
-___
-
-### request
-
-• `Readonly` **request**: `ApiRequestOptions`
-
-#### Defined in
-
-[src/api/core/ApiError.ts:13](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/core/ApiError.ts#L13)
-
-___
-
-### stack
-
-• `Optional` **stack**: `string`
-
-#### Inherited from
-
-Error.stack
-
-#### Defined in
-
-node_modules/typescript/lib/lib.es5.d.ts:1078
-
-___
-
-### status
-
-• `Readonly` **status**: `number`
-
-#### Defined in
-
-[src/api/core/ApiError.ts:10](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/core/ApiError.ts#L10)
-
-___
-
-### statusText
-
-• `Readonly` **statusText**: `string`
-
-#### Defined in
-
-[src/api/core/ApiError.ts:11](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/core/ApiError.ts#L11)
-
-___
-
-### url
-
-• `Readonly` **url**: `string`
-
-#### Defined in
-
-[src/api/core/ApiError.ts:9](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/core/ApiError.ts#L9)
-
-___
-
-### prepareStackTrace
-
-▪ `Static` `Optional` **prepareStackTrace**: (`err`: `Error`, `stackTraces`: `CallSite`[]) => `any`
-
-Optional override for formatting stack traces
-
-**`See`**
-
-https://v8.dev/docs/stack-trace-api#customizing-stack-traces
-
-#### Type declaration
-
-▸ (`err`, `stackTraces`): `any`
-
-##### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `err` | `Error` |
-| `stackTraces` | `CallSite`[] |
-
-##### Returns
-
-`any`
-
-#### Inherited from
-
-Error.prepareStackTrace
-
-#### Defined in
-
-node_modules/@types/node/globals.d.ts:28
-
-___
-
-### stackTraceLimit
-
-▪ `Static` **stackTraceLimit**: `number`
-
-#### Inherited from
-
-Error.stackTraceLimit
-
-#### Defined in
-
-node_modules/@types/node/globals.d.ts:30
-
-## Methods
-
-### captureStackTrace
-
-▸ **captureStackTrace**(`targetObject`, `constructorOpt?`): `void`
-
-Create .stack property on a target object
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `targetObject` | `object` |
-| `constructorOpt?` | `Function` |
-
-#### Returns
-
-`void`
-
-#### Inherited from
-
-Error.captureStackTrace
-
-#### Defined in
-
-node_modules/@types/node/globals.d.ts:21
diff --git a/docs/js-sdk-docs/classes/api.BaseHttpRequest.md b/docs/js-sdk-docs/classes/api.BaseHttpRequest.md
deleted file mode 100644
index c2531523d..000000000
--- a/docs/js-sdk-docs/classes/api.BaseHttpRequest.md
+++ /dev/null
@@ -1,75 +0,0 @@
-[@julep/sdk](../README.md) / [Modules](../modules.md) / [api](../modules/api.md) / BaseHttpRequest
-
-# Class: BaseHttpRequest
-
-[api](../modules/api.md).BaseHttpRequest
-
-## Table of contents
-
-### Constructors
-
-- [constructor](api.BaseHttpRequest.md#constructor)
-
-### Properties
-
-- [config](api.BaseHttpRequest.md#config)
-
-### Methods
-
-- [request](api.BaseHttpRequest.md#request)
-
-## Constructors
-
-### constructor
-
-• **new BaseHttpRequest**(`config`): [`BaseHttpRequest`](api.BaseHttpRequest.md)
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `config` | [`OpenAPIConfig`](../modules/api.md#openapiconfig) |
-
-#### Returns
-
-[`BaseHttpRequest`](api.BaseHttpRequest.md)
-
-#### Defined in
-
-[src/api/core/BaseHttpRequest.ts:10](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/core/BaseHttpRequest.ts#L10)
-
-## Properties
-
-### config
-
-• `Readonly` **config**: [`OpenAPIConfig`](../modules/api.md#openapiconfig)
-
-#### Defined in
-
-[src/api/core/BaseHttpRequest.ts:10](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/core/BaseHttpRequest.ts#L10)
-
-## Methods
-
-### request
-
-▸ **request**\<`T`\>(`options`): [`CancelablePromise`](api.CancelablePromise.md)\<`T`\>
-
-#### Type parameters
-
-| Name |
-| :------ |
-| `T` |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `options` | `ApiRequestOptions` |
-
-#### Returns
-
-[`CancelablePromise`](api.CancelablePromise.md)\<`T`\>
-
-#### Defined in
-
-[src/api/core/BaseHttpRequest.ts:12](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/core/BaseHttpRequest.ts#L12)
diff --git a/docs/js-sdk-docs/classes/api.CancelError.md b/docs/js-sdk-docs/classes/api.CancelError.md
deleted file mode 100644
index b3bd3b05c..000000000
--- a/docs/js-sdk-docs/classes/api.CancelError.md
+++ /dev/null
@@ -1,189 +0,0 @@
-[@julep/sdk](../README.md) / [Modules](../modules.md) / [api](../modules/api.md) / CancelError
-
-# Class: CancelError
-
-[api](../modules/api.md).CancelError
-
-## Hierarchy
-
-- `Error`
-
- ↳ **`CancelError`**
-
-## Table of contents
-
-### Constructors
-
-- [constructor](api.CancelError.md#constructor)
-
-### Properties
-
-- [message](api.CancelError.md#message)
-- [name](api.CancelError.md#name)
-- [stack](api.CancelError.md#stack)
-- [prepareStackTrace](api.CancelError.md#preparestacktrace)
-- [stackTraceLimit](api.CancelError.md#stacktracelimit)
-
-### Accessors
-
-- [isCancelled](api.CancelError.md#iscancelled)
-
-### Methods
-
-- [captureStackTrace](api.CancelError.md#capturestacktrace)
-
-## Constructors
-
-### constructor
-
-• **new CancelError**(`message`): [`CancelError`](api.CancelError.md)
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `message` | `string` |
-
-#### Returns
-
-[`CancelError`](api.CancelError.md)
-
-#### Overrides
-
-Error.constructor
-
-#### Defined in
-
-[src/api/core/CancelablePromise.ts:6](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/core/CancelablePromise.ts#L6)
-
-## Properties
-
-### message
-
-• **message**: `string`
-
-#### Inherited from
-
-Error.message
-
-#### Defined in
-
-node_modules/typescript/lib/lib.es5.d.ts:1077
-
-___
-
-### name
-
-• **name**: `string`
-
-#### Inherited from
-
-Error.name
-
-#### Defined in
-
-node_modules/typescript/lib/lib.es5.d.ts:1076
-
-___
-
-### stack
-
-• `Optional` **stack**: `string`
-
-#### Inherited from
-
-Error.stack
-
-#### Defined in
-
-node_modules/typescript/lib/lib.es5.d.ts:1078
-
-___
-
-### prepareStackTrace
-
-▪ `Static` `Optional` **prepareStackTrace**: (`err`: `Error`, `stackTraces`: `CallSite`[]) => `any`
-
-Optional override for formatting stack traces
-
-**`See`**
-
-https://v8.dev/docs/stack-trace-api#customizing-stack-traces
-
-#### Type declaration
-
-▸ (`err`, `stackTraces`): `any`
-
-##### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `err` | `Error` |
-| `stackTraces` | `CallSite`[] |
-
-##### Returns
-
-`any`
-
-#### Inherited from
-
-Error.prepareStackTrace
-
-#### Defined in
-
-node_modules/@types/node/globals.d.ts:28
-
-___
-
-### stackTraceLimit
-
-▪ `Static` **stackTraceLimit**: `number`
-
-#### Inherited from
-
-Error.stackTraceLimit
-
-#### Defined in
-
-node_modules/@types/node/globals.d.ts:30
-
-## Accessors
-
-### isCancelled
-
-• `get` **isCancelled**(): `boolean`
-
-#### Returns
-
-`boolean`
-
-#### Defined in
-
-[src/api/core/CancelablePromise.ts:11](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/core/CancelablePromise.ts#L11)
-
-## Methods
-
-### captureStackTrace
-
-▸ **captureStackTrace**(`targetObject`, `constructorOpt?`): `void`
-
-Create .stack property on a target object
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `targetObject` | `object` |
-| `constructorOpt?` | `Function` |
-
-#### Returns
-
-`void`
-
-#### Inherited from
-
-Error.captureStackTrace
-
-#### Defined in
-
-node_modules/@types/node/globals.d.ts:21
diff --git a/docs/js-sdk-docs/classes/api.CancelablePromise.md b/docs/js-sdk-docs/classes/api.CancelablePromise.md
deleted file mode 100644
index b9e1c1ffc..000000000
--- a/docs/js-sdk-docs/classes/api.CancelablePromise.md
+++ /dev/null
@@ -1,299 +0,0 @@
-[@julep/sdk](../README.md) / [Modules](../modules.md) / [api](../modules/api.md) / CancelablePromise
-
-# Class: CancelablePromise\
-
-[api](../modules/api.md).CancelablePromise
-
-## Type parameters
-
-| Name |
-| :------ |
-| `T` |
-
-## Implements
-
-- `Promise`\<`T`\>
-
-## Table of contents
-
-### Constructors
-
-- [constructor](api.CancelablePromise.md#constructor)
-
-### Properties
-
-- [#cancelHandlers](api.CancelablePromise.md##cancelhandlers)
-- [#isCancelled](api.CancelablePromise.md##iscancelled)
-- [#isRejected](api.CancelablePromise.md##isrejected)
-- [#isResolved](api.CancelablePromise.md##isresolved)
-- [#promise](api.CancelablePromise.md##promise)
-- [#reject](api.CancelablePromise.md##reject)
-- [#resolve](api.CancelablePromise.md##resolve)
-
-### Accessors
-
-- [[toStringTag]](api.CancelablePromise.md#[tostringtag])
-- [isCancelled](api.CancelablePromise.md#iscancelled)
-
-### Methods
-
-- [cancel](api.CancelablePromise.md#cancel)
-- [catch](api.CancelablePromise.md#catch)
-- [finally](api.CancelablePromise.md#finally)
-- [then](api.CancelablePromise.md#then)
-
-## Constructors
-
-### constructor
-
-• **new CancelablePromise**\<`T`\>(`executor`): [`CancelablePromise`](api.CancelablePromise.md)\<`T`\>
-
-#### Type parameters
-
-| Name |
-| :------ |
-| `T` |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `executor` | (`resolve`: (`value`: `T` \| `PromiseLike`\<`T`\>) => `void`, `reject`: (`reason?`: `any`) => `void`, `onCancel`: `OnCancel`) => `void` |
-
-#### Returns
-
-[`CancelablePromise`](api.CancelablePromise.md)\<`T`\>
-
-#### Defined in
-
-[src/api/core/CancelablePromise.ts:33](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/core/CancelablePromise.ts#L33)
-
-## Properties
-
-### #cancelHandlers
-
-• `Private` `Readonly` **#cancelHandlers**: () => `void`[]
-
-#### Defined in
-
-[src/api/core/CancelablePromise.ts:28](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/core/CancelablePromise.ts#L28)
-
-___
-
-### #isCancelled
-
-• `Private` **#isCancelled**: `boolean`
-
-#### Defined in
-
-[src/api/core/CancelablePromise.ts:27](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/core/CancelablePromise.ts#L27)
-
-___
-
-### #isRejected
-
-• `Private` **#isRejected**: `boolean`
-
-#### Defined in
-
-[src/api/core/CancelablePromise.ts:26](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/core/CancelablePromise.ts#L26)
-
-___
-
-### #isResolved
-
-• `Private` **#isResolved**: `boolean`
-
-#### Defined in
-
-[src/api/core/CancelablePromise.ts:25](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/core/CancelablePromise.ts#L25)
-
-___
-
-### #promise
-
-• `Private` `Readonly` **#promise**: `Promise`\<`T`\>
-
-#### Defined in
-
-[src/api/core/CancelablePromise.ts:29](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/core/CancelablePromise.ts#L29)
-
-___
-
-### #reject
-
-• `Private` `Optional` **#reject**: (`reason?`: `any`) => `void`
-
-#### Type declaration
-
-▸ (`reason?`): `void`
-
-##### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `reason?` | `any` |
-
-##### Returns
-
-`void`
-
-#### Defined in
-
-[src/api/core/CancelablePromise.ts:31](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/core/CancelablePromise.ts#L31)
-
-___
-
-### #resolve
-
-• `Private` `Optional` **#resolve**: (`value`: `T` \| `PromiseLike`\<`T`\>) => `void`
-
-#### Type declaration
-
-▸ (`value`): `void`
-
-##### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `value` | `T` \| `PromiseLike`\<`T`\> |
-
-##### Returns
-
-`void`
-
-#### Defined in
-
-[src/api/core/CancelablePromise.ts:30](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/core/CancelablePromise.ts#L30)
-
-## Accessors
-
-### [toStringTag]
-
-• `get` **[toStringTag]**(): `string`
-
-#### Returns
-
-`string`
-
-#### Implementation of
-
-Promise.[toStringTag]
-
-#### Defined in
-
-[src/api/core/CancelablePromise.ts:87](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/core/CancelablePromise.ts#L87)
-
-___
-
-### isCancelled
-
-• `get` **isCancelled**(): `boolean`
-
-#### Returns
-
-`boolean`
-
-#### Defined in
-
-[src/api/core/CancelablePromise.ts:127](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/core/CancelablePromise.ts#L127)
-
-## Methods
-
-### cancel
-
-▸ **cancel**(): `void`
-
-#### Returns
-
-`void`
-
-#### Defined in
-
-[src/api/core/CancelablePromise.ts:108](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/core/CancelablePromise.ts#L108)
-
-___
-
-### catch
-
-▸ **catch**\<`TResult`\>(`onRejected?`): `Promise`\<`T` \| `TResult`\>
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `TResult` | `never` |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `onRejected?` | ``null`` \| (`reason`: `any`) => `TResult` \| `PromiseLike`\<`TResult`\> |
-
-#### Returns
-
-`Promise`\<`T` \| `TResult`\>
-
-#### Implementation of
-
-Promise.catch
-
-#### Defined in
-
-[src/api/core/CancelablePromise.ts:98](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/core/CancelablePromise.ts#L98)
-
-___
-
-### finally
-
-▸ **finally**(`onFinally?`): `Promise`\<`T`\>
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `onFinally?` | ``null`` \| () => `void` |
-
-#### Returns
-
-`Promise`\<`T`\>
-
-#### Implementation of
-
-Promise.finally
-
-#### Defined in
-
-[src/api/core/CancelablePromise.ts:104](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/core/CancelablePromise.ts#L104)
-
-___
-
-### then
-
-▸ **then**\<`TResult1`, `TResult2`\>(`onFulfilled?`, `onRejected?`): `Promise`\<`TResult1` \| `TResult2`\>
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `TResult1` | `T` |
-| `TResult2` | `never` |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `onFulfilled?` | ``null`` \| (`value`: `T`) => `TResult1` \| `PromiseLike`\<`TResult1`\> |
-| `onRejected?` | ``null`` \| (`reason`: `any`) => `TResult2` \| `PromiseLike`\<`TResult2`\> |
-
-#### Returns
-
-`Promise`\<`TResult1` \| `TResult2`\>
-
-#### Implementation of
-
-Promise.then
-
-#### Defined in
-
-[src/api/core/CancelablePromise.ts:91](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/core/CancelablePromise.ts#L91)
diff --git a/docs/js-sdk-docs/classes/api.DefaultService.md b/docs/js-sdk-docs/classes/api.DefaultService.md
deleted file mode 100644
index b692d0bb6..000000000
--- a/docs/js-sdk-docs/classes/api.DefaultService.md
+++ /dev/null
@@ -1,1194 +0,0 @@
-[@julep/sdk](../README.md) / [Modules](../modules.md) / [api](../modules/api.md) / DefaultService
-
-# Class: DefaultService
-
-[api](../modules/api.md).DefaultService
-
-## Table of contents
-
-### Constructors
-
-- [constructor](api.DefaultService.md#constructor)
-
-### Properties
-
-- [httpRequest](api.DefaultService.md#httprequest)
-
-### Methods
-
-- [chat](api.DefaultService.md#chat)
-- [createAgent](api.DefaultService.md#createagent)
-- [createAgentDoc](api.DefaultService.md#createagentdoc)
-- [createAgentTool](api.DefaultService.md#createagenttool)
-- [createSession](api.DefaultService.md#createsession)
-- [createUser](api.DefaultService.md#createuser)
-- [createUserDoc](api.DefaultService.md#createuserdoc)
-- [deleteAgent](api.DefaultService.md#deleteagent)
-- [deleteAgentDoc](api.DefaultService.md#deleteagentdoc)
-- [deleteAgentMemory](api.DefaultService.md#deleteagentmemory)
-- [deleteAgentTool](api.DefaultService.md#deleteagenttool)
-- [deleteSession](api.DefaultService.md#deletesession)
-- [deleteSessionHistory](api.DefaultService.md#deletesessionhistory)
-- [deleteUser](api.DefaultService.md#deleteuser)
-- [deleteUserDoc](api.DefaultService.md#deleteuserdoc)
-- [getAgent](api.DefaultService.md#getagent)
-- [getAgentDocs](api.DefaultService.md#getagentdocs)
-- [getAgentMemories](api.DefaultService.md#getagentmemories)
-- [getAgentTools](api.DefaultService.md#getagenttools)
-- [getHistory](api.DefaultService.md#gethistory)
-- [getJobStatus](api.DefaultService.md#getjobstatus)
-- [getSession](api.DefaultService.md#getsession)
-- [getSuggestions](api.DefaultService.md#getsuggestions)
-- [getUser](api.DefaultService.md#getuser)
-- [getUserDocs](api.DefaultService.md#getuserdocs)
-- [listAgents](api.DefaultService.md#listagents)
-- [listSessions](api.DefaultService.md#listsessions)
-- [listUsers](api.DefaultService.md#listusers)
-- [patchAgent](api.DefaultService.md#patchagent)
-- [patchAgentTool](api.DefaultService.md#patchagenttool)
-- [patchSession](api.DefaultService.md#patchsession)
-- [patchUser](api.DefaultService.md#patchuser)
-- [updateAgent](api.DefaultService.md#updateagent)
-- [updateAgentTool](api.DefaultService.md#updateagenttool)
-- [updateSession](api.DefaultService.md#updatesession)
-- [updateUser](api.DefaultService.md#updateuser)
-
-## Constructors
-
-### constructor
-
-• **new DefaultService**(`httpRequest`): [`DefaultService`](api.DefaultService.md)
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `httpRequest` | [`BaseHttpRequest`](api.BaseHttpRequest.md) |
-
-#### Returns
-
-[`DefaultService`](api.DefaultService.md)
-
-#### Defined in
-
-[src/api/services/DefaultService.ts:35](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/services/DefaultService.ts#L35)
-
-## Properties
-
-### httpRequest
-
-• `Readonly` **httpRequest**: [`BaseHttpRequest`](api.BaseHttpRequest.md)
-
-#### Defined in
-
-[src/api/services/DefaultService.ts:35](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/services/DefaultService.ts#L35)
-
-## Methods
-
-### chat
-
-▸ **chat**(`«destructured»`): [`CancelablePromise`](api.CancelablePromise.md)\<[`ChatResponse`](../modules/api.md#chatresponse)\>
-
-Interact with the session
-
-#### Parameters
-
-| Name | Type | Default value |
-| :------ | :------ | :------ |
-| `«destructured»` | `Object` | `undefined` |
-| › `accept?` | ``"application/json"`` \| ``"text/event-stream"`` | `"application/json"` |
-| › `requestBody?` | [`ChatInput`](../modules/api.md#chatinput) | `undefined` |
-| › `sessionId` | `string` | `undefined` |
-
-#### Returns
-
-[`CancelablePromise`](api.CancelablePromise.md)\<[`ChatResponse`](../modules/api.md#chatresponse)\>
-
-ChatResponse
-
-**`Throws`**
-
-ApiError
-
-#### Defined in
-
-[src/api/services/DefaultService.ts:404](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/services/DefaultService.ts#L404)
-
-___
-
-### createAgent
-
-▸ **createAgent**(`«destructured»`): [`CancelablePromise`](api.CancelablePromise.md)\<[`ResourceCreatedResponse`](../modules/api.md#resourcecreatedresponse)\>
-
-Create a new agent
-Create a new agent
-
-#### Parameters
-
-| Name | Type | Description |
-| :------ | :------ | :------ |
-| `«destructured»` | `Object` | - |
-| › `requestBody?` | [`CreateAgentRequest`](../modules/api.md#createagentrequest) | Agent create options |
-
-#### Returns
-
-[`CancelablePromise`](api.CancelablePromise.md)\<[`ResourceCreatedResponse`](../modules/api.md#resourcecreatedresponse)\>
-
-ResourceCreatedResponse Agent successfully created
-
-**`Throws`**
-
-ApiError
-
-#### Defined in
-
-[src/api/services/DefaultService.ts:180](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/services/DefaultService.ts#L180)
-
-___
-
-### createAgentDoc
-
-▸ **createAgentDoc**(`«destructured»`): [`CancelablePromise`](api.CancelablePromise.md)\<[`ResourceCreatedResponse`](../modules/api.md#resourcecreatedresponse)\>
-
-Create doc of the agent
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `«destructured»` | `Object` |
-| › `agentId` | `string` |
-| › `requestBody?` | [`CreateDoc`](../modules/api.md#createdoc) |
-
-#### Returns
-
-[`CancelablePromise`](api.CancelablePromise.md)\<[`ResourceCreatedResponse`](../modules/api.md#resourcecreatedresponse)\>
-
-ResourceCreatedResponse
-
-**`Throws`**
-
-ApiError
-
-#### Defined in
-
-[src/api/services/DefaultService.ts:668](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/services/DefaultService.ts#L668)
-
-___
-
-### createAgentTool
-
-▸ **createAgentTool**(`«destructured»`): [`CancelablePromise`](api.CancelablePromise.md)\<[`ResourceCreatedResponse`](../modules/api.md#resourcecreatedresponse)\>
-
-Create tool for the agent
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `«destructured»` | `Object` |
-| › `agentId` | `string` |
-| › `requestBody?` | [`CreateToolRequest`](../modules/api.md#createtoolrequest) |
-
-#### Returns
-
-[`CancelablePromise`](api.CancelablePromise.md)\<[`ResourceCreatedResponse`](../modules/api.md#resourcecreatedresponse)\>
-
-ResourceCreatedResponse
-
-**`Throws`**
-
-ApiError
-
-#### Defined in
-
-[src/api/services/DefaultService.ts:857](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/services/DefaultService.ts#L857)
-
-___
-
-### createSession
-
-▸ **createSession**(`«destructured»`): [`CancelablePromise`](api.CancelablePromise.md)\<[`ResourceCreatedResponse`](../modules/api.md#resourcecreatedresponse)\>
-
-Create a new session
-Create a session between an agent and a user
-
-#### Parameters
-
-| Name | Type | Description |
-| :------ | :------ | :------ |
-| `«destructured»` | `Object` | - |
-| › `requestBody?` | [`CreateSessionRequest`](../modules/api.md#createsessionrequest) | Session initialization options |
-
-#### Returns
-
-[`CancelablePromise`](api.CancelablePromise.md)\<[`ResourceCreatedResponse`](../modules/api.md#resourcecreatedresponse)\>
-
-ResourceCreatedResponse Session successfully created
-
-**`Throws`**
-
-ApiError
-
-#### Defined in
-
-[src/api/services/DefaultService.ts:42](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/services/DefaultService.ts#L42)
-
-___
-
-### createUser
-
-▸ **createUser**(`«destructured»`): [`CancelablePromise`](api.CancelablePromise.md)\<[`ResourceCreatedResponse`](../modules/api.md#resourcecreatedresponse)\>
-
-Create a new user
-Create a new user
-
-#### Parameters
-
-| Name | Type | Description |
-| :------ | :------ | :------ |
-| `«destructured»` | `Object` | - |
-| › `requestBody?` | [`CreateUserRequest`](../modules/api.md#createuserrequest) | User create options |
-
-#### Returns
-
-[`CancelablePromise`](api.CancelablePromise.md)\<[`ResourceCreatedResponse`](../modules/api.md#resourcecreatedresponse)\>
-
-ResourceCreatedResponse User successfully created
-
-**`Throws`**
-
-ApiError
-
-#### Defined in
-
-[src/api/services/DefaultService.ts:111](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/services/DefaultService.ts#L111)
-
-___
-
-### createUserDoc
-
-▸ **createUserDoc**(`«destructured»`): [`CancelablePromise`](api.CancelablePromise.md)\<[`ResourceCreatedResponse`](../modules/api.md#resourcecreatedresponse)\>
-
-Create doc of the user
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `«destructured»` | `Object` |
-| › `requestBody?` | [`CreateDoc`](../modules/api.md#createdoc) |
-| › `userId` | `string` |
-
-#### Returns
-
-[`CancelablePromise`](api.CancelablePromise.md)\<[`ResourceCreatedResponse`](../modules/api.md#resourcecreatedresponse)\>
-
-ResourceCreatedResponse
-
-**`Throws`**
-
-ApiError
-
-#### Defined in
-
-[src/api/services/DefaultService.ts:740](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/services/DefaultService.ts#L740)
-
-___
-
-### deleteAgent
-
-▸ **deleteAgent**(`«destructured»`): [`CancelablePromise`](api.CancelablePromise.md)\<[`ResourceDeletedResponse`](../modules/api.md#resourcedeletedresponse)\>
-
-Delete agent
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `«destructured»` | `Object` |
-| › `agentId` | `string` |
-
-#### Returns
-
-[`CancelablePromise`](api.CancelablePromise.md)\<[`ResourceDeletedResponse`](../modules/api.md#resourcedeletedresponse)\>
-
-ResourceDeletedResponse
-
-**`Throws`**
-
-ApiError
-
-#### Defined in
-
-[src/api/services/DefaultService.ts:556](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/services/DefaultService.ts#L556)
-
-___
-
-### deleteAgentDoc
-
-▸ **deleteAgentDoc**(`«destructured»`): [`CancelablePromise`](api.CancelablePromise.md)\<[`ResourceDeletedResponse`](../modules/api.md#resourcedeletedresponse)\>
-
-Delete doc by id
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `«destructured»` | `Object` |
-| › `agentId` | `string` |
-| › `docId` | `string` |
-
-#### Returns
-
-[`CancelablePromise`](api.CancelablePromise.md)\<[`ResourceDeletedResponse`](../modules/api.md#resourcedeletedresponse)\>
-
-ResourceDeletedResponse
-
-**`Throws`**
-
-ApiError
-
-#### Defined in
-
-[src/api/services/DefaultService.ts:783](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/services/DefaultService.ts#L783)
-
-___
-
-### deleteAgentMemory
-
-▸ **deleteAgentMemory**(`«destructured»`): [`CancelablePromise`](api.CancelablePromise.md)\<[`ResourceDeletedResponse`](../modules/api.md#resourcedeletedresponse)\>
-
-Delete memory of the agent by id
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `«destructured»` | `Object` |
-| › `agentId` | `string` |
-| › `memoryId` | `string` |
-
-#### Returns
-
-[`CancelablePromise`](api.CancelablePromise.md)\<[`ResourceDeletedResponse`](../modules/api.md#resourcedeletedresponse)\>
-
-ResourceDeletedResponse
-
-**`Throws`**
-
-ApiError
-
-#### Defined in
-
-[src/api/services/DefaultService.ts:804](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/services/DefaultService.ts#L804)
-
-___
-
-### deleteAgentTool
-
-▸ **deleteAgentTool**(`«destructured»`): [`CancelablePromise`](api.CancelablePromise.md)\<[`ResourceDeletedResponse`](../modules/api.md#resourcedeletedresponse)\>
-
-Delete tool by id
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `«destructured»` | `Object` |
-| › `agentId` | `string` |
-| › `toolId` | `string` |
-
-#### Returns
-
-[`CancelablePromise`](api.CancelablePromise.md)\<[`ResourceDeletedResponse`](../modules/api.md#resourcedeletedresponse)\>
-
-ResourceDeletedResponse
-
-**`Throws`**
-
-ApiError
-
-#### Defined in
-
-[src/api/services/DefaultService.ts:879](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/services/DefaultService.ts#L879)
-
-___
-
-### deleteSession
-
-▸ **deleteSession**(`«destructured»`): [`CancelablePromise`](api.CancelablePromise.md)\<[`ResourceDeletedResponse`](../modules/api.md#resourcedeletedresponse)\>
-
-Delete session
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `«destructured»` | `Object` |
-| › `sessionId` | `string` |
-
-#### Returns
-
-[`CancelablePromise`](api.CancelablePromise.md)\<[`ResourceDeletedResponse`](../modules/api.md#resourcedeletedresponse)\>
-
-ResourceDeletedResponse
-
-**`Throws`**
-
-ApiError
-
-#### Defined in
-
-[src/api/services/DefaultService.ts:266](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/services/DefaultService.ts#L266)
-
-___
-
-### deleteSessionHistory
-
-▸ **deleteSessionHistory**(`«destructured»`): [`CancelablePromise`](api.CancelablePromise.md)\<[`ResourceDeletedResponse`](../modules/api.md#resourcedeletedresponse)\>
-
-Delete session history (does NOT delete related memories)
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `«destructured»` | `Object` |
-| › `sessionId` | `string` |
-
-#### Returns
-
-[`CancelablePromise`](api.CancelablePromise.md)\<[`ResourceDeletedResponse`](../modules/api.md#resourcedeletedresponse)\>
-
-ResourceDeletedResponse
-
-**`Throws`**
-
-ApiError
-
-#### Defined in
-
-[src/api/services/DefaultService.ts:386](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/services/DefaultService.ts#L386)
-
-___
-
-### deleteUser
-
-▸ **deleteUser**(`«destructured»`): [`CancelablePromise`](api.CancelablePromise.md)\<[`ResourceDeletedResponse`](../modules/api.md#resourcedeletedresponse)\>
-
-Delete user
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `«destructured»` | `Object` |
-| › `userId` | `string` |
-
-#### Returns
-
-[`CancelablePromise`](api.CancelablePromise.md)\<[`ResourceDeletedResponse`](../modules/api.md#resourcedeletedresponse)\>
-
-ResourceDeletedResponse
-
-**`Throws`**
-
-ApiError
-
-#### Defined in
-
-[src/api/services/DefaultService.ts:480](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/services/DefaultService.ts#L480)
-
-___
-
-### deleteUserDoc
-
-▸ **deleteUserDoc**(`«destructured»`): [`CancelablePromise`](api.CancelablePromise.md)\<[`ResourceDeletedResponse`](../modules/api.md#resourcedeletedresponse)\>
-
-Delete doc by id
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `«destructured»` | `Object` |
-| › `docId` | `string` |
-| › `userId` | `string` |
-
-#### Returns
-
-[`CancelablePromise`](api.CancelablePromise.md)\<[`ResourceDeletedResponse`](../modules/api.md#resourcedeletedresponse)\>
-
-ResourceDeletedResponse
-
-**`Throws`**
-
-ApiError
-
-#### Defined in
-
-[src/api/services/DefaultService.ts:762](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/services/DefaultService.ts#L762)
-
-___
-
-### getAgent
-
-▸ **getAgent**(`«destructured»`): [`CancelablePromise`](api.CancelablePromise.md)\<[`Agent`](../modules/api.md#agent)\>
-
-Get details of the agent
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `«destructured»` | `Object` |
-| › `agentId` | `string` |
-
-#### Returns
-
-[`CancelablePromise`](api.CancelablePromise.md)\<[`Agent`](../modules/api.md#agent)\>
-
-Agent
-
-**`Throws`**
-
-ApiError
-
-#### Defined in
-
-[src/api/services/DefaultService.ts:542](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/services/DefaultService.ts#L542)
-
-___
-
-### getAgentDocs
-
-▸ **getAgentDocs**(`«destructured»`): [`CancelablePromise`](api.CancelablePromise.md)\<\{ `items?`: [`Doc`](../modules/api.md#doc)[] }\>
-
-Get docs of the agent
-Sorted (created_at descending)
-
-#### Parameters
-
-| Name | Type | Default value | Description |
-| :------ | :------ | :------ | :------ |
-| `«destructured»` | `Object` | `undefined` | - |
-| › `agentId` | `string` | `undefined` | - |
-| › `limit?` | `number` | `undefined` | - |
-| › `metadataFilter?` | `string` | `"{}"` | JSON object that should be used to filter objects by metadata |
-| › `offset?` | `number` | `undefined` | - |
-| › `order?` | ``"desc"`` \| ``"asc"`` | `"desc"` | Which order should the sort be: `asc` (ascending) or `desc` (descending) |
-| › `requestBody?` | `any` | `undefined` | - |
-| › `sortBy?` | ``"created_at"`` \| ``"updated_at"`` | `"created_at"` | Which field to sort by: `created_at` or `updated_at` |
-
-#### Returns
-
-[`CancelablePromise`](api.CancelablePromise.md)\<\{ `items?`: [`Doc`](../modules/api.md#doc)[] }\>
-
-any
-
-**`Throws`**
-
-ApiError
-
-#### Defined in
-
-[src/api/services/DefaultService.ts:619](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/services/DefaultService.ts#L619)
-
-___
-
-### getAgentMemories
-
-▸ **getAgentMemories**(`«destructured»`): [`CancelablePromise`](api.CancelablePromise.md)\<\{ `items?`: [`Memory`](../modules/api.md#memory)[] }\>
-
-Get memories of the agent
-Sorted (created_at descending)
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `«destructured»` | `Object` |
-| › `agentId` | `string` |
-| › `limit?` | `number` |
-| › `offset?` | `number` |
-| › `query` | `string` |
-| › `userId?` | `string` |
-
-#### Returns
-
-[`CancelablePromise`](api.CancelablePromise.md)\<\{ `items?`: [`Memory`](../modules/api.md#memory)[] }\>
-
-any
-
-**`Throws`**
-
-ApiError
-
-#### Defined in
-
-[src/api/services/DefaultService.ts:432](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/services/DefaultService.ts#L432)
-
-___
-
-### getAgentTools
-
-▸ **getAgentTools**(`«destructured»`): [`CancelablePromise`](api.CancelablePromise.md)\<\{ `items?`: [`Tool`](../modules/api.md#tool)[] }\>
-
-Get tools of the agent
-Sorted (created_at descending)
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `«destructured»` | `Object` |
-| › `agentId` | `string` |
-| › `limit?` | `number` |
-| › `offset?` | `number` |
-| › `requestBody?` | `any` |
-
-#### Returns
-
-[`CancelablePromise`](api.CancelablePromise.md)\<\{ `items?`: [`Tool`](../modules/api.md#tool)[] }\>
-
-any
-
-**`Throws`**
-
-ApiError
-
-#### Defined in
-
-[src/api/services/DefaultService.ts:826](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/services/DefaultService.ts#L826)
-
-___
-
-### getHistory
-
-▸ **getHistory**(`«destructured»`): [`CancelablePromise`](api.CancelablePromise.md)\<\{ `items?`: [`ChatMLMessage`](../modules/api.md#chatmlmessage)[] }\>
-
-Get all messages in a session
-Sorted (created_at ascending)
-
-#### Parameters
-
-| Name | Type | Default value |
-| :------ | :------ | :------ |
-| `«destructured»` | `Object` | `undefined` |
-| › `limit?` | `number` | `100` |
-| › `offset?` | `number` | `undefined` |
-| › `sessionId` | `string` | `undefined` |
-
-#### Returns
-
-[`CancelablePromise`](api.CancelablePromise.md)\<\{ `items?`: [`ChatMLMessage`](../modules/api.md#chatmlmessage)[] }\>
-
-any
-
-**`Throws`**
-
-ApiError
-
-#### Defined in
-
-[src/api/services/DefaultService.ts:358](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/services/DefaultService.ts#L358)
-
-___
-
-### getJobStatus
-
-▸ **getJobStatus**(`«destructured»`): [`CancelablePromise`](api.CancelablePromise.md)\<[`JobStatus`](../modules/api.md#jobstatus)\>
-
-Get status of the job
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `«destructured»` | `Object` |
-| › `jobId` | `string` |
-
-#### Returns
-
-[`CancelablePromise`](api.CancelablePromise.md)\<[`JobStatus`](../modules/api.md#jobstatus)\>
-
-JobStatus
-
-**`Throws`**
-
-ApiError
-
-#### Defined in
-
-[src/api/services/DefaultService.ts:950](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/services/DefaultService.ts#L950)
-
-___
-
-### getSession
-
-▸ **getSession**(`«destructured»`): [`CancelablePromise`](api.CancelablePromise.md)\<[`Session`](../modules/api.md#session)\>
-
-Get details of the session
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `«destructured»` | `Object` |
-| › `sessionId` | `string` |
-
-#### Returns
-
-[`CancelablePromise`](api.CancelablePromise.md)\<[`Session`](../modules/api.md#session)\>
-
-Session
-
-**`Throws`**
-
-ApiError
-
-#### Defined in
-
-[src/api/services/DefaultService.ts:248](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/services/DefaultService.ts#L248)
-
-___
-
-### getSuggestions
-
-▸ **getSuggestions**(`«destructured»`): [`CancelablePromise`](api.CancelablePromise.md)\<\{ `items?`: [`Suggestion`](../modules/api.md#suggestion)[] }\>
-
-Get autogenerated suggestions for session user and agent
-Sorted (created_at descending)
-
-#### Parameters
-
-| Name | Type | Default value |
-| :------ | :------ | :------ |
-| `«destructured»` | `Object` | `undefined` |
-| › `limit?` | `number` | `100` |
-| › `offset?` | `number` | `undefined` |
-| › `sessionId` | `string` | `undefined` |
-
-#### Returns
-
-[`CancelablePromise`](api.CancelablePromise.md)\<\{ `items?`: [`Suggestion`](../modules/api.md#suggestion)[] }\>
-
-any
-
-**`Throws`**
-
-ApiError
-
-#### Defined in
-
-[src/api/services/DefaultService.ts:329](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/services/DefaultService.ts#L329)
-
-___
-
-### getUser
-
-▸ **getUser**(`«destructured»`): [`CancelablePromise`](api.CancelablePromise.md)\<[`User`](../modules/api.md#user)\>
-
-Get details of the user
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `«destructured»` | `Object` |
-| › `userId` | `string` |
-
-#### Returns
-
-[`CancelablePromise`](api.CancelablePromise.md)\<[`User`](../modules/api.md#user)\>
-
-User
-
-**`Throws`**
-
-ApiError
-
-#### Defined in
-
-[src/api/services/DefaultService.ts:466](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/services/DefaultService.ts#L466)
-
-___
-
-### getUserDocs
-
-▸ **getUserDocs**(`«destructured»`): [`CancelablePromise`](api.CancelablePromise.md)\<\{ `items?`: [`Doc`](../modules/api.md#doc)[] }\>
-
-Get docs of the user
-Sorted (created_at descending)
-
-#### Parameters
-
-| Name | Type | Default value | Description |
-| :------ | :------ | :------ | :------ |
-| `«destructured»` | `Object` | `undefined` | - |
-| › `limit?` | `number` | `undefined` | - |
-| › `metadataFilter?` | `string` | `"{}"` | JSON object that should be used to filter objects by metadata |
-| › `offset?` | `number` | `undefined` | - |
-| › `order?` | ``"desc"`` \| ``"asc"`` | `"desc"` | Which order should the sort be: `asc` (ascending) or `desc` (descending) |
-| › `requestBody?` | `any` | `undefined` | - |
-| › `sortBy?` | ``"created_at"`` \| ``"updated_at"`` | `"created_at"` | Which field to sort by: `created_at` or `updated_at` |
-| › `userId` | `string` | `undefined` | - |
-
-#### Returns
-
-[`CancelablePromise`](api.CancelablePromise.md)\<\{ `items?`: [`Doc`](../modules/api.md#doc)[] }\>
-
-any
-
-**`Throws`**
-
-ApiError
-
-#### Defined in
-
-[src/api/services/DefaultService.ts:691](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/services/DefaultService.ts#L691)
-
-___
-
-### listAgents
-
-▸ **listAgents**(`«destructured»`): [`CancelablePromise`](api.CancelablePromise.md)\<\{ `items`: [`Agent`](../modules/api.md#agent)[] }\>
-
-List agents
-List agents created (use limit/offset pagination to get large number of sessions; sorted by descending order of `created_at` by default)
-
-#### Parameters
-
-| Name | Type | Default value | Description |
-| :------ | :------ | :------ | :------ |
-| `«destructured»` | `Object` | `undefined` | - |
-| › `limit?` | `number` | `100` | Number of items to return |
-| › `metadataFilter?` | `string` | `"{}"` | JSON object that should be used to filter objects by metadata |
-| › `offset?` | `number` | `undefined` | Number of items to skip (sorted created_at descending order) |
-| › `order?` | ``"desc"`` \| ``"asc"`` | `"desc"` | Which order should the sort be: `asc` (ascending) or `desc` (descending) |
-| › `sortBy?` | ``"created_at"`` \| ``"updated_at"`` | `"created_at"` | Which field to sort by: `created_at` or `updated_at` |
-
-#### Returns
-
-[`CancelablePromise`](api.CancelablePromise.md)\<\{ `items`: [`Agent`](../modules/api.md#agent)[] }\>
-
-any List of agents (sorted created_at descending order) with limit+offset pagination
-
-**`Throws`**
-
-ApiError
-
-#### Defined in
-
-[src/api/services/DefaultService.ts:201](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/services/DefaultService.ts#L201)
-
-___
-
-### listSessions
-
-▸ **listSessions**(`«destructured»`): [`CancelablePromise`](api.CancelablePromise.md)\<\{ `items`: [`Session`](../modules/api.md#session)[] }\>
-
-List sessions
-List sessions created (use limit/offset pagination to get large number of sessions; sorted by descending order of `created_at` by default)
-
-#### Parameters
-
-| Name | Type | Default value | Description |
-| :------ | :------ | :------ | :------ |
-| `«destructured»` | `Object` | `undefined` | - |
-| › `limit?` | `number` | `100` | Number of sessions to return |
-| › `metadataFilter?` | `string` | `"{}"` | JSON object that should be used to filter objects by metadata |
-| › `offset?` | `number` | `undefined` | Number of sessions to skip (sorted created_at descending order) |
-| › `order?` | ``"desc"`` \| ``"asc"`` | `"desc"` | Which order should the sort be: `asc` (ascending) or `desc` (descending) |
-| › `sortBy?` | ``"created_at"`` \| ``"updated_at"`` | `"created_at"` | Which field to sort by: `created_at` or `updated_at` |
-
-#### Returns
-
-[`CancelablePromise`](api.CancelablePromise.md)\<\{ `items`: [`Session`](../modules/api.md#session)[] }\>
-
-any List of sessions (sorted created_at descending order) with limit+offset pagination
-
-**`Throws`**
-
-ApiError
-
-#### Defined in
-
-[src/api/services/DefaultService.ts:63](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/services/DefaultService.ts#L63)
-
-___
-
-### listUsers
-
-▸ **listUsers**(`«destructured»`): [`CancelablePromise`](api.CancelablePromise.md)\<\{ `items`: [`User`](../modules/api.md#user)[] }\>
-
-List users
-List users created (use limit/offset pagination to get large number of sessions; sorted by descending order of `created_at` by default)
-
-#### Parameters
-
-| Name | Type | Default value | Description |
-| :------ | :------ | :------ | :------ |
-| `«destructured»` | `Object` | `undefined` | - |
-| › `limit?` | `number` | `100` | Number of items to return |
-| › `metadataFilter?` | `string` | `"{}"` | JSON object that should be used to filter objects by metadata |
-| › `offset?` | `number` | `undefined` | Number of items to skip (sorted created_at descending order) |
-| › `order?` | ``"desc"`` \| ``"asc"`` | `"desc"` | Which order should the sort be: `asc` (ascending) or `desc` (descending) |
-| › `sortBy?` | ``"created_at"`` \| ``"updated_at"`` | `"created_at"` | Which field to sort by: `created_at` or `updated_at` |
-
-#### Returns
-
-[`CancelablePromise`](api.CancelablePromise.md)\<\{ `items`: [`User`](../modules/api.md#user)[] }\>
-
-any List of users (sorted created_at descending order) with limit+offset pagination
-
-**`Throws`**
-
-ApiError
-
-#### Defined in
-
-[src/api/services/DefaultService.ts:132](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/services/DefaultService.ts#L132)
-
-___
-
-### patchAgent
-
-▸ **patchAgent**(`«destructured»`): [`CancelablePromise`](api.CancelablePromise.md)\<[`ResourceUpdatedResponse`](../modules/api.md#resourceupdatedresponse)\>
-
-Patch Agent parameters (merge instead of replace)
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `«destructured»` | `Object` |
-| › `agentId` | `string` |
-| › `requestBody?` | [`PatchAgentRequest`](../modules/api.md#patchagentrequest) |
-
-#### Returns
-
-[`CancelablePromise`](api.CancelablePromise.md)\<[`ResourceUpdatedResponse`](../modules/api.md#resourceupdatedresponse)\>
-
-ResourceUpdatedResponse
-
-**`Throws`**
-
-ApiError
-
-#### Defined in
-
-[src/api/services/DefaultService.ts:596](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/services/DefaultService.ts#L596)
-
-___
-
-### patchAgentTool
-
-▸ **patchAgentTool**(`«destructured»`): [`CancelablePromise`](api.CancelablePromise.md)\<[`ResourceUpdatedResponse`](../modules/api.md#resourceupdatedresponse)\>
-
-Patch Agent tool parameters (merge instead of replace)
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `«destructured»` | `Object` |
-| › `agentId` | `string` |
-| › `requestBody?` | [`PatchToolRequest`](../modules/api.md#patchtoolrequest) |
-| › `toolId` | `string` |
-
-#### Returns
-
-[`CancelablePromise`](api.CancelablePromise.md)\<[`ResourceUpdatedResponse`](../modules/api.md#resourceupdatedresponse)\>
-
-ResourceUpdatedResponse
-
-**`Throws`**
-
-ApiError
-
-#### Defined in
-
-[src/api/services/DefaultService.ts:925](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/services/DefaultService.ts#L925)
-
-___
-
-### patchSession
-
-▸ **patchSession**(`«destructured»`): [`CancelablePromise`](api.CancelablePromise.md)\<[`ResourceUpdatedResponse`](../modules/api.md#resourceupdatedresponse)\>
-
-Patch Session parameters (merge instead of replace)
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `«destructured»` | `Object` |
-| › `requestBody?` | [`PatchSessionRequest`](../modules/api.md#patchsessionrequest) |
-| › `sessionId` | `string` |
-
-#### Returns
-
-[`CancelablePromise`](api.CancelablePromise.md)\<[`ResourceUpdatedResponse`](../modules/api.md#resourceupdatedresponse)\>
-
-ResourceUpdatedResponse
-
-**`Throws`**
-
-ApiError
-
-#### Defined in
-
-[src/api/services/DefaultService.ts:306](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/services/DefaultService.ts#L306)
-
-___
-
-### patchUser
-
-▸ **patchUser**(`«destructured»`): [`CancelablePromise`](api.CancelablePromise.md)\<[`ResourceUpdatedResponse`](../modules/api.md#resourceupdatedresponse)\>
-
-Patch User parameters (merge instead of replace)
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `«destructured»` | `Object` |
-| › `requestBody?` | [`PatchUserRequest`](../modules/api.md#patchuserrequest) |
-| › `userId` | `string` |
-
-#### Returns
-
-[`CancelablePromise`](api.CancelablePromise.md)\<[`ResourceUpdatedResponse`](../modules/api.md#resourceupdatedresponse)\>
-
-ResourceUpdatedResponse
-
-**`Throws`**
-
-ApiError
-
-#### Defined in
-
-[src/api/services/DefaultService.ts:520](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/services/DefaultService.ts#L520)
-
-___
-
-### updateAgent
-
-▸ **updateAgent**(`«destructured»`): [`CancelablePromise`](api.CancelablePromise.md)\<[`ResourceUpdatedResponse`](../modules/api.md#resourceupdatedresponse)\>
-
-Update agent parameters
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `«destructured»` | `Object` |
-| › `agentId` | `string` |
-| › `requestBody?` | [`UpdateAgentRequest`](../modules/api.md#updateagentrequest) |
-
-#### Returns
-
-[`CancelablePromise`](api.CancelablePromise.md)\<[`ResourceUpdatedResponse`](../modules/api.md#resourceupdatedresponse)\>
-
-ResourceUpdatedResponse
-
-**`Throws`**
-
-ApiError
-
-#### Defined in
-
-[src/api/services/DefaultService.ts:574](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/services/DefaultService.ts#L574)
-
-___
-
-### updateAgentTool
-
-▸ **updateAgentTool**(`«destructured»`): [`CancelablePromise`](api.CancelablePromise.md)\<[`ResourceUpdatedResponse`](../modules/api.md#resourceupdatedresponse)\>
-
-Update agent tool definition
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `«destructured»` | `Object` |
-| › `agentId` | `string` |
-| › `requestBody?` | [`UpdateToolRequest`](../modules/api.md#updatetoolrequest) |
-| › `toolId` | `string` |
-
-#### Returns
-
-[`CancelablePromise`](api.CancelablePromise.md)\<[`ResourceUpdatedResponse`](../modules/api.md#resourceupdatedresponse)\>
-
-ResourceUpdatedResponse
-
-**`Throws`**
-
-ApiError
-
-#### Defined in
-
-[src/api/services/DefaultService.ts:900](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/services/DefaultService.ts#L900)
-
-___
-
-### updateSession
-
-▸ **updateSession**(`«destructured»`): [`CancelablePromise`](api.CancelablePromise.md)\<[`ResourceUpdatedResponse`](../modules/api.md#resourceupdatedresponse)\>
-
-Update session parameters
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `«destructured»` | `Object` |
-| › `requestBody?` | [`UpdateSessionRequest`](../modules/api.md#updatesessionrequest) |
-| › `sessionId` | `string` |
-
-#### Returns
-
-[`CancelablePromise`](api.CancelablePromise.md)\<[`ResourceUpdatedResponse`](../modules/api.md#resourceupdatedresponse)\>
-
-ResourceUpdatedResponse
-
-**`Throws`**
-
-ApiError
-
-#### Defined in
-
-[src/api/services/DefaultService.ts:284](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/services/DefaultService.ts#L284)
-
-___
-
-### updateUser
-
-▸ **updateUser**(`«destructured»`): [`CancelablePromise`](api.CancelablePromise.md)\<[`ResourceUpdatedResponse`](../modules/api.md#resourceupdatedresponse)\>
-
-Update user parameters
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `«destructured»` | `Object` |
-| › `requestBody?` | [`UpdateUserRequest`](../modules/api.md#updateuserrequest) |
-| › `userId` | `string` |
-
-#### Returns
-
-[`CancelablePromise`](api.CancelablePromise.md)\<[`ResourceUpdatedResponse`](../modules/api.md#resourceupdatedresponse)\>
-
-ResourceUpdatedResponse
-
-**`Throws`**
-
-ApiError
-
-#### Defined in
-
-[src/api/services/DefaultService.ts:498](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/services/DefaultService.ts#L498)
diff --git a/docs/js-sdk-docs/classes/api_JulepApiClient.JulepApiClient.md b/docs/js-sdk-docs/classes/api_JulepApiClient.JulepApiClient.md
deleted file mode 100644
index bb4c4a4a2..000000000
--- a/docs/js-sdk-docs/classes/api_JulepApiClient.JulepApiClient.md
+++ /dev/null
@@ -1,57 +0,0 @@
-[@julep/sdk](../README.md) / [Modules](../modules.md) / [api/JulepApiClient](../modules/api_JulepApiClient.md) / JulepApiClient
-
-# Class: JulepApiClient
-
-[api/JulepApiClient](../modules/api_JulepApiClient.md).JulepApiClient
-
-## Table of contents
-
-### Constructors
-
-- [constructor](api_JulepApiClient.JulepApiClient.md#constructor)
-
-### Properties
-
-- [default](api_JulepApiClient.JulepApiClient.md#default)
-- [request](api_JulepApiClient.JulepApiClient.md#request)
-
-## Constructors
-
-### constructor
-
-• **new JulepApiClient**(`config?`, `HttpRequest?`): [`JulepApiClient`](api_JulepApiClient.JulepApiClient.md)
-
-#### Parameters
-
-| Name | Type | Default value |
-| :------ | :------ | :------ |
-| `config?` | `Partial`\<[`OpenAPIConfig`](../modules/api.md#openapiconfig)\> | `undefined` |
-| `HttpRequest` | `HttpRequestConstructor` | `AxiosHttpRequest` |
-
-#### Returns
-
-[`JulepApiClient`](api_JulepApiClient.JulepApiClient.md)
-
-#### Defined in
-
-[src/api/JulepApiClient.ts:13](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/JulepApiClient.ts#L13)
-
-## Properties
-
-### default
-
-• `Readonly` **default**: [`DefaultService`](api.DefaultService.md)
-
-#### Defined in
-
-[src/api/JulepApiClient.ts:11](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/JulepApiClient.ts#L11)
-
-___
-
-### request
-
-• `Readonly` **request**: [`BaseHttpRequest`](api.BaseHttpRequest.md)
-
-#### Defined in
-
-[src/api/JulepApiClient.ts:12](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/JulepApiClient.ts#L12)
diff --git a/docs/js-sdk-docs/classes/managers_agent.AgentsManager.md b/docs/js-sdk-docs/classes/managers_agent.AgentsManager.md
deleted file mode 100644
index 30235e467..000000000
--- a/docs/js-sdk-docs/classes/managers_agent.AgentsManager.md
+++ /dev/null
@@ -1,204 +0,0 @@
-[@julep/sdk](../README.md) / [Modules](../modules.md) / [managers/agent](../modules/managers_agent.md) / AgentsManager
-
-# Class: AgentsManager
-
-[managers/agent](../modules/managers_agent.md).AgentsManager
-
-BaseManager serves as the base class for all manager classes that interact with the Julep API.
-It provides common functionality needed for API interactions.
-
-## Hierarchy
-
-- [`BaseManager`](managers_base.BaseManager.md)
-
- ↳ **`AgentsManager`**
-
-## Table of contents
-
-### Constructors
-
-- [constructor](managers_agent.AgentsManager.md#constructor)
-
-### Properties
-
-- [apiClient](managers_agent.AgentsManager.md#apiclient)
-
-### Methods
-
-- [create](managers_agent.AgentsManager.md#create)
-- [delete](managers_agent.AgentsManager.md#delete)
-- [get](managers_agent.AgentsManager.md#get)
-- [list](managers_agent.AgentsManager.md#list)
-- [update](managers_agent.AgentsManager.md#update)
-
-## Constructors
-
-### constructor
-
-• **new AgentsManager**(`apiClient`): [`AgentsManager`](managers_agent.AgentsManager.md)
-
-Constructs a new instance of BaseManager.
-
-#### Parameters
-
-| Name | Type | Description |
-| :------ | :------ | :------ |
-| `apiClient` | [`JulepApiClient`](api_JulepApiClient.JulepApiClient.md) | The JulepApiClient instance used for API interactions. |
-
-#### Returns
-
-[`AgentsManager`](managers_agent.AgentsManager.md)
-
-#### Inherited from
-
-[BaseManager](managers_base.BaseManager.md).[constructor](managers_base.BaseManager.md#constructor)
-
-#### Defined in
-
-[src/managers/base.ts:14](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/managers/base.ts#L14)
-
-## Properties
-
-### apiClient
-
-• **apiClient**: [`JulepApiClient`](api_JulepApiClient.JulepApiClient.md)
-
-The JulepApiClient instance used for API interactions.
-
-#### Inherited from
-
-[BaseManager](managers_base.BaseManager.md).[apiClient](managers_base.BaseManager.md#apiclient)
-
-#### Defined in
-
-[src/managers/base.ts:14](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/managers/base.ts#L14)
-
-## Methods
-
-### create
-
-▸ **create**(`options`): `Promise`\<`Partial`\<[`Agent`](../modules/api.md#agent)\> & \{ `id`: `string` }\>
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `options` | `Object` |
-| `options.about` | `string` |
-| `options.default_settings?` | [`AgentDefaultSettings`](../modules/api.md#agentdefaultsettings) |
-| `options.docs?` | [`Doc`](../modules/api.md#doc)[] |
-| `options.instructions` | `string` \| `string`[] |
-| `options.model?` | `string` |
-| `options.name` | `string` |
-| `options.tools?` | [`CreateToolRequest`](../modules/api.md#createtoolrequest)[] |
-
-#### Returns
-
-`Promise`\<`Partial`\<[`Agent`](../modules/api.md#agent)\> & \{ `id`: `string` }\>
-
-#### Defined in
-
-[src/managers/agent.ts:23](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/managers/agent.ts#L23)
-
-___
-
-### delete
-
-▸ **delete**(`agentId`): `Promise`\<`void`\>
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `agentId` | `string` & `Format`\<``"uuid"``\> |
-
-#### Returns
-
-`Promise`\<`void`\>
-
-#### Defined in
-
-[src/managers/agent.ts:108](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/managers/agent.ts#L108)
-
-___
-
-### get
-
-▸ **get**(`agentId`): `Promise`\<[`Agent`](../modules/api.md#agent)\>
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `agentId` | `string` & `Format`\<``"uuid"``\> |
-
-#### Returns
-
-`Promise`\<[`Agent`](../modules/api.md#agent)\>
-
-#### Defined in
-
-[src/managers/agent.ts:17](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/managers/agent.ts#L17)
-
-___
-
-### list
-
-▸ **list**(`options?`): `Promise`\<[`Agent`](../modules/api.md#agent)[]\>
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `options` | `Object` |
-| `options.limit?` | `number` & `Type`\<``"uint32"``\> & `Minimum`\<``1``\> & `Maximum`\<``1000``\> |
-| `options.metadataFilter?` | `Object` |
-| `options.offset?` | `number` & `Type`\<``"uint32"``\> & `Minimum`\<``0``\> |
-
-#### Returns
-
-`Promise`\<[`Agent`](../modules/api.md#agent)[]\>
-
-#### Defined in
-
-[src/managers/agent.ts:74](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/managers/agent.ts#L74)
-
-___
-
-### update
-
-▸ **update**(`agentId`, `request`, `overwrite?`): `Promise`\<`Partial`\<[`Agent`](../modules/api.md#agent)\> & \{ `id`: `string` }\>
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `agentId` | `string` |
-| `request` | [`PatchAgentRequest`](../modules/api.md#patchagentrequest) |
-| `overwrite?` | ``false`` |
-
-#### Returns
-
-`Promise`\<`Partial`\<[`Agent`](../modules/api.md#agent)\> & \{ `id`: `string` }\>
-
-#### Defined in
-
-[src/managers/agent.ts:115](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/managers/agent.ts#L115)
-
-▸ **update**(`agentId`, `request`, `overwrite`): `Promise`\<`Partial`\<[`Agent`](../modules/api.md#agent)\> & \{ `id`: `string` }\>
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `agentId` | `string` |
-| `request` | [`UpdateAgentRequest`](../modules/api.md#updateagentrequest) |
-| `overwrite` | ``true`` |
-
-#### Returns
-
-`Promise`\<`Partial`\<[`Agent`](../modules/api.md#agent)\> & \{ `id`: `string` }\>
-
-#### Defined in
-
-[src/managers/agent.ts:121](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/managers/agent.ts#L121)
diff --git a/docs/js-sdk-docs/classes/managers_base.BaseManager.md b/docs/js-sdk-docs/classes/managers_base.BaseManager.md
deleted file mode 100644
index 04ad76162..000000000
--- a/docs/js-sdk-docs/classes/managers_base.BaseManager.md
+++ /dev/null
@@ -1,68 +0,0 @@
-[@julep/sdk](../README.md) / [Modules](../modules.md) / [managers/base](../modules/managers_base.md) / BaseManager
-
-# Class: BaseManager
-
-[managers/base](../modules/managers_base.md).BaseManager
-
-BaseManager serves as the base class for all manager classes that interact with the Julep API.
-It provides common functionality needed for API interactions.
-
-## Hierarchy
-
-- **`BaseManager`**
-
- ↳ [`AgentsManager`](managers_agent.AgentsManager.md)
-
- ↳ [`DocsManager`](managers_doc.DocsManager.md)
-
- ↳ [`MemoriesManager`](managers_memory.MemoriesManager.md)
-
- ↳ [`SessionsManager`](managers_session.SessionsManager.md)
-
- ↳ [`ToolsManager`](managers_tool.ToolsManager.md)
-
- ↳ [`UsersManager`](managers_user.UsersManager.md)
-
-## Table of contents
-
-### Constructors
-
-- [constructor](managers_base.BaseManager.md#constructor)
-
-### Properties
-
-- [apiClient](managers_base.BaseManager.md#apiclient)
-
-## Constructors
-
-### constructor
-
-• **new BaseManager**(`apiClient`): [`BaseManager`](managers_base.BaseManager.md)
-
-Constructs a new instance of BaseManager.
-
-#### Parameters
-
-| Name | Type | Description |
-| :------ | :------ | :------ |
-| `apiClient` | [`JulepApiClient`](api_JulepApiClient.JulepApiClient.md) | The JulepApiClient instance used for API interactions. |
-
-#### Returns
-
-[`BaseManager`](managers_base.BaseManager.md)
-
-#### Defined in
-
-[src/managers/base.ts:14](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/managers/base.ts#L14)
-
-## Properties
-
-### apiClient
-
-• **apiClient**: [`JulepApiClient`](api_JulepApiClient.JulepApiClient.md)
-
-The JulepApiClient instance used for API interactions.
-
-#### Defined in
-
-[src/managers/base.ts:14](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/managers/base.ts#L14)
diff --git a/docs/js-sdk-docs/classes/managers_doc.DocsManager.md b/docs/js-sdk-docs/classes/managers_doc.DocsManager.md
deleted file mode 100644
index 02bcf2f15..000000000
--- a/docs/js-sdk-docs/classes/managers_doc.DocsManager.md
+++ /dev/null
@@ -1,209 +0,0 @@
-[@julep/sdk](../README.md) / [Modules](../modules.md) / [managers/doc](../modules/managers_doc.md) / DocsManager
-
-# Class: DocsManager
-
-[managers/doc](../modules/managers_doc.md).DocsManager
-
-BaseManager serves as the base class for all manager classes that interact with the Julep API.
-It provides common functionality needed for API interactions.
-
-## Hierarchy
-
-- [`BaseManager`](managers_base.BaseManager.md)
-
- ↳ **`DocsManager`**
-
-## Table of contents
-
-### Constructors
-
-- [constructor](managers_doc.DocsManager.md#constructor)
-
-### Properties
-
-- [apiClient](managers_doc.DocsManager.md#apiclient)
-
-### Methods
-
-- [create](managers_doc.DocsManager.md#create)
-- [delete](managers_doc.DocsManager.md#delete)
-- [get](managers_doc.DocsManager.md#get)
-- [list](managers_doc.DocsManager.md#list)
-
-## Constructors
-
-### constructor
-
-• **new DocsManager**(`apiClient`): [`DocsManager`](managers_doc.DocsManager.md)
-
-Constructs a new instance of BaseManager.
-
-#### Parameters
-
-| Name | Type | Description |
-| :------ | :------ | :------ |
-| `apiClient` | [`JulepApiClient`](api_JulepApiClient.JulepApiClient.md) | The JulepApiClient instance used for API interactions. |
-
-#### Returns
-
-[`DocsManager`](managers_doc.DocsManager.md)
-
-#### Inherited from
-
-[BaseManager](managers_base.BaseManager.md).[constructor](managers_base.BaseManager.md#constructor)
-
-#### Defined in
-
-[src/managers/base.ts:14](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/managers/base.ts#L14)
-
-## Properties
-
-### apiClient
-
-• **apiClient**: [`JulepApiClient`](api_JulepApiClient.JulepApiClient.md)
-
-The JulepApiClient instance used for API interactions.
-
-#### Inherited from
-
-[BaseManager](managers_base.BaseManager.md).[apiClient](managers_base.BaseManager.md#apiclient)
-
-#### Defined in
-
-[src/managers/base.ts:14](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/managers/base.ts#L14)
-
-## Methods
-
-### create
-
-▸ **create**(`options`): `Promise`\<[`Doc`](../modules/api.md#doc)\>
-
-Creates a document based on the provided agentId or userId.
-Ensures that only one of agentId or userId is provided using xor function.
-Validates the provided agentId or userId using isValidUuid4.
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `options` | `Object` |
-| `options.agentId?` | `string` & `Format`\<``"uuid"``\> |
-| `options.doc` | [`CreateDoc`](../modules/api.md#createdoc) |
-| `options.userId?` | `string` & `Format`\<``"uuid"``\> |
-
-#### Returns
-
-`Promise`\<[`Doc`](../modules/api.md#doc)\>
-
-The created document.
-
-**`Throws`**
-
-If neither agentId nor userId is provided.
-
-#### Defined in
-
-[src/managers/doc.ts:162](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/managers/doc.ts#L162)
-
-___
-
-### delete
-
-▸ **delete**(`options`): `Promise`\<`void`\>
-
-Deletes a document based on the provided agentId or userId and the specific docId.
-Ensures that only one of agentId or userId is provided using xor function.
-Validates the provided agentId or userId using isValidUuid4.
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `options` | `Object` |
-| `options.agentId?` | `string` & `Format`\<``"uuid"``\> |
-| `options.docId` | `string` |
-| `options.userId?` | `string` & `Format`\<``"uuid"``\> |
-
-#### Returns
-
-`Promise`\<`void`\>
-
-A promise that resolves when the document is successfully deleted.
-
-**`Throws`**
-
-If neither agentId nor userId is provided.
-
-#### Defined in
-
-[src/managers/doc.ts:214](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/managers/doc.ts#L214)
-
-___
-
-### get
-
-▸ **get**(`options?`): `Promise`\<[`CancelablePromise`](api.CancelablePromise.md)\<\{ `items?`: [`Doc`](../modules/api.md#doc)[] }\> \| [`CancelablePromise`](api.CancelablePromise.md)\<\{ `items?`: [`Doc`](../modules/api.md#doc)[] }\>\>
-
-Retrieves documents based on the provided agentId or userId.
-Ensures that only one of agentId or userId is provided using xor function.
-Validates the provided agentId or userId using isValidUuid4.
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `options` | `Object` |
-| `options.agentId?` | `string` & `Format`\<``"uuid"``\> |
-| `options.limit?` | `number` & `Type`\<``"uint32"``\> & `Minimum`\<``1``\> & `Maximum`\<``1000``\> |
-| `options.offset?` | `number` & `Type`\<``"uint32"``\> & `Minimum`\<``0``\> |
-| `options.userId?` | `string` & `Format`\<``"uuid"``\> |
-
-#### Returns
-
-`Promise`\<[`CancelablePromise`](api.CancelablePromise.md)\<\{ `items?`: [`Doc`](../modules/api.md#doc)[] }\> \| [`CancelablePromise`](api.CancelablePromise.md)\<\{ `items?`: [`Doc`](../modules/api.md#doc)[] }\>\>
-
-The retrieved documents.
-
-**`Throws`**
-
-If neither agentId nor userId is provided.
-
-#### Defined in
-
-[src/managers/doc.ts:23](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/managers/doc.ts#L23)
-
-___
-
-### list
-
-▸ **list**(`options?`): `Promise`\<[`Doc`](../modules/api.md#doc)[]\>
-
-Lists documents based on the provided agentId or userId, with optional metadata filtering.
-Ensures that only one of agentId or userId is provided using xor function.
-Validates the provided agentId or userId using isValidUuid4.
-Allows for filtering based on metadata.
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `options` | `Object` |
-| `options.agentId?` | `string` & `Format`\<``"uuid"``\> |
-| `options.limit?` | `number` & `Type`\<``"uint32"``\> & `Minimum`\<``1``\> & `Maximum`\<``1000``\> |
-| `options.metadataFilter?` | `Object` |
-| `options.offset?` | `number` & `Type`\<``"uint32"``\> & `Minimum`\<``0``\> |
-| `options.userId?` | `string` & `Format`\<``"uuid"``\> |
-
-#### Returns
-
-`Promise`\<[`Doc`](../modules/api.md#doc)[]\>
-
-The list of filtered documents.
-
-**`Throws`**
-
-If neither agentId nor userId is provided.
-
-#### Defined in
-
-[src/managers/doc.ts:90](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/managers/doc.ts#L90)
diff --git a/docs/js-sdk-docs/classes/managers_memory.MemoriesManager.md b/docs/js-sdk-docs/classes/managers_memory.MemoriesManager.md
deleted file mode 100644
index 791c80f80..000000000
--- a/docs/js-sdk-docs/classes/managers_memory.MemoriesManager.md
+++ /dev/null
@@ -1,99 +0,0 @@
-[@julep/sdk](../README.md) / [Modules](../modules.md) / [managers/memory](../modules/managers_memory.md) / MemoriesManager
-
-# Class: MemoriesManager
-
-[managers/memory](../modules/managers_memory.md).MemoriesManager
-
-BaseManager serves as the base class for all manager classes that interact with the Julep API.
-It provides common functionality needed for API interactions.
-
-## Hierarchy
-
-- [`BaseManager`](managers_base.BaseManager.md)
-
- ↳ **`MemoriesManager`**
-
-## Table of contents
-
-### Constructors
-
-- [constructor](managers_memory.MemoriesManager.md#constructor)
-
-### Properties
-
-- [apiClient](managers_memory.MemoriesManager.md#apiclient)
-
-### Methods
-
-- [list](managers_memory.MemoriesManager.md#list)
-
-## Constructors
-
-### constructor
-
-• **new MemoriesManager**(`apiClient`): [`MemoriesManager`](managers_memory.MemoriesManager.md)
-
-Constructs a new instance of BaseManager.
-
-#### Parameters
-
-| Name | Type | Description |
-| :------ | :------ | :------ |
-| `apiClient` | [`JulepApiClient`](api_JulepApiClient.JulepApiClient.md) | The JulepApiClient instance used for API interactions. |
-
-#### Returns
-
-[`MemoriesManager`](managers_memory.MemoriesManager.md)
-
-#### Inherited from
-
-[BaseManager](managers_base.BaseManager.md).[constructor](managers_base.BaseManager.md#constructor)
-
-#### Defined in
-
-[src/managers/base.ts:14](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/managers/base.ts#L14)
-
-## Properties
-
-### apiClient
-
-• **apiClient**: [`JulepApiClient`](api_JulepApiClient.JulepApiClient.md)
-
-The JulepApiClient instance used for API interactions.
-
-#### Inherited from
-
-[BaseManager](managers_base.BaseManager.md).[apiClient](managers_base.BaseManager.md#apiclient)
-
-#### Defined in
-
-[src/managers/base.ts:14](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/managers/base.ts#L14)
-
-## Methods
-
-### list
-
-▸ **list**(`options`): `Promise`\<[`Memory`](../modules/api.md#memory)[]\>
-
-Lists memories based on the provided parameters.
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `options` | `Object` |
-| `options.agentId` | `string` & `Format`\<``"uuid"``\> |
-| `options.limit?` | `number` & `Type`\<``"uint32"``\> & `Minimum`\<``1``\> & `Maximum`\<``1000``\> |
-| `options.offset?` | `number` & `Type`\<``"uint32"``\> & `Minimum`\<``0``\> |
-| `options.query` | `string` |
-| `options.userId?` | `string` & `Format`\<``"uuid"``\> |
-
-#### Returns
-
-`Promise`\<[`Memory`](../modules/api.md#memory)[]\>
-
-A promise that resolves to an array of Memory objects.
-
-#### Defined in
-
-[src/managers/memory.ts:21](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/managers/memory.ts#L21)
diff --git a/docs/js-sdk-docs/classes/managers_session.SessionsManager.md b/docs/js-sdk-docs/classes/managers_session.SessionsManager.md
deleted file mode 100644
index 7bcfdddae..000000000
--- a/docs/js-sdk-docs/classes/managers_session.SessionsManager.md
+++ /dev/null
@@ -1,278 +0,0 @@
-[@julep/sdk](../README.md) / [Modules](../modules.md) / [managers/session](../modules/managers_session.md) / SessionsManager
-
-# Class: SessionsManager
-
-[managers/session](../modules/managers_session.md).SessionsManager
-
-BaseManager serves as the base class for all manager classes that interact with the Julep API.
-It provides common functionality needed for API interactions.
-
-## Hierarchy
-
-- [`BaseManager`](managers_base.BaseManager.md)
-
- ↳ **`SessionsManager`**
-
-## Table of contents
-
-### Constructors
-
-- [constructor](managers_session.SessionsManager.md#constructor)
-
-### Properties
-
-- [apiClient](managers_session.SessionsManager.md#apiclient)
-
-### Methods
-
-- [chat](managers_session.SessionsManager.md#chat)
-- [create](managers_session.SessionsManager.md#create)
-- [delete](managers_session.SessionsManager.md#delete)
-- [deleteHistory](managers_session.SessionsManager.md#deletehistory)
-- [get](managers_session.SessionsManager.md#get)
-- [history](managers_session.SessionsManager.md#history)
-- [list](managers_session.SessionsManager.md#list)
-- [suggestions](managers_session.SessionsManager.md#suggestions)
-- [update](managers_session.SessionsManager.md#update)
-
-## Constructors
-
-### constructor
-
-• **new SessionsManager**(`apiClient`): [`SessionsManager`](managers_session.SessionsManager.md)
-
-Constructs a new instance of BaseManager.
-
-#### Parameters
-
-| Name | Type | Description |
-| :------ | :------ | :------ |
-| `apiClient` | [`JulepApiClient`](api_JulepApiClient.JulepApiClient.md) | The JulepApiClient instance used for API interactions. |
-
-#### Returns
-
-[`SessionsManager`](managers_session.SessionsManager.md)
-
-#### Inherited from
-
-[BaseManager](managers_base.BaseManager.md).[constructor](managers_base.BaseManager.md#constructor)
-
-#### Defined in
-
-[src/managers/base.ts:14](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/managers/base.ts#L14)
-
-## Properties
-
-### apiClient
-
-• **apiClient**: [`JulepApiClient`](api_JulepApiClient.JulepApiClient.md)
-
-The JulepApiClient instance used for API interactions.
-
-#### Inherited from
-
-[BaseManager](managers_base.BaseManager.md).[apiClient](managers_base.BaseManager.md#apiclient)
-
-#### Defined in
-
-[src/managers/base.ts:14](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/managers/base.ts#L14)
-
-## Methods
-
-### chat
-
-▸ **chat**(`sessionId`, `input`): `Promise`\<[`ChatResponse`](../modules/api.md#chatresponse)\>
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `sessionId` | `string` & `Format`\<``"uuid"``\> |
-| `input` | [`ChatInput`](../modules/api.md#chatinput) |
-
-#### Returns
-
-`Promise`\<[`ChatResponse`](../modules/api.md#chatresponse)\>
-
-#### Defined in
-
-[src/managers/session.ts:161](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/managers/session.ts#L161)
-
-___
-
-### create
-
-▸ **create**(`payload`): `Promise`\<[`ResourceCreatedResponse`](../modules/api.md#resourcecreatedresponse)\>
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `payload` | [`CreateSessionPayload`](../interfaces/managers_session.CreateSessionPayload.md) |
-
-#### Returns
-
-`Promise`\<[`ResourceCreatedResponse`](../modules/api.md#resourcecreatedresponse)\>
-
-#### Defined in
-
-[src/managers/session.ts:39](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/managers/session.ts#L39)
-
-___
-
-### delete
-
-▸ **delete**(`sessionId`): `Promise`\<`void`\>
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `sessionId` | `string` & `Format`\<``"uuid"``\> |
-
-#### Returns
-
-`Promise`\<`void`\>
-
-#### Defined in
-
-[src/managers/session.ts:109](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/managers/session.ts#L109)
-
-___
-
-### deleteHistory
-
-▸ **deleteHistory**(`sessionId`): `Promise`\<`void`\>
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `sessionId` | `string` & `Format`\<``"uuid"``\> |
-
-#### Returns
-
-`Promise`\<`void`\>
-
-#### Defined in
-
-[src/managers/session.ts:263](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/managers/session.ts#L263)
-
-___
-
-### get
-
-▸ **get**(`sessionId`): `Promise`\<[`Session`](../modules/api.md#session)\>
-
-Retrieves a session by its ID.
-
-#### Parameters
-
-| Name | Type | Description |
-| :------ | :------ | :------ |
-| `sessionId` | `string` & `Format`\<``"uuid"``\> | The unique identifier of the session. |
-
-#### Returns
-
-`Promise`\<[`Session`](../modules/api.md#session)\>
-
-A promise that resolves with the session object.
-
-#### Defined in
-
-[src/managers/session.ts:33](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/managers/session.ts#L33)
-
-___
-
-### history
-
-▸ **history**(`sessionId`, `options?`): `Promise`\<[`ChatMLMessage`](../modules/api.md#chatmlmessage)[]\>
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `sessionId` | `string` & `Format`\<``"uuid"``\> |
-| `options` | `Object` |
-| `options.limit?` | `number` & `Minimum`\<``1``\> & `Maximum`\<``1000``\> |
-| `options.offset?` | `number` & `Minimum`\<``0``\> |
-
-#### Returns
-
-`Promise`\<[`ChatMLMessage`](../modules/api.md#chatmlmessage)[]\>
-
-#### Defined in
-
-[src/managers/session.ts:240](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/managers/session.ts#L240)
-
-___
-
-### list
-
-▸ **list**(`options?`): `Promise`\<[`Session`](../modules/api.md#session)[]\>
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `options` | `Object` |
-| `options.limit?` | `number` & `Type`\<``"uint32"``\> & `Minimum`\<``1``\> & `Maximum`\<``1000``\> |
-| `options.metadataFilter?` | `Object` |
-| `options.offset?` | `number` & `Minimum`\<``1``\> & `Maximum`\<``1000``\> |
-
-#### Returns
-
-`Promise`\<[`Session`](../modules/api.md#session)[]\>
-
-#### Defined in
-
-[src/managers/session.ts:75](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/managers/session.ts#L75)
-
-___
-
-### suggestions
-
-▸ **suggestions**(`sessionId`, `options?`): `Promise`\<[`Suggestion`](../modules/api.md#suggestion)[]\>
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `sessionId` | `string` & `Format`\<``"uuid"``\> |
-| `options` | `Object` |
-| `options.limit?` | `number` & `Minimum`\<``1``\> & `Maximum`\<``1000``\> |
-| `options.offset?` | `number` & `Minimum`\<``0``\> |
-
-#### Returns
-
-`Promise`\<[`Suggestion`](../modules/api.md#suggestion)[]\>
-
-#### Defined in
-
-[src/managers/session.ts:217](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/managers/session.ts#L217)
-
-___
-
-### update
-
-▸ **update**(`sessionId`, `options`, `overwrite?`): `Promise`\<[`ResourceUpdatedResponse`](../modules/api.md#resourceupdatedresponse)\>
-
-#### Parameters
-
-| Name | Type | Default value |
-| :------ | :------ | :------ |
-| `sessionId` | `string` & `Format`\<``"uuid"``\> | `undefined` |
-| `options` | `Object` | `undefined` |
-| `options.contextOverflow?` | ``"truncate"`` \| ``"adaptive"`` | `undefined` |
-| `options.metadata?` | `Record`\<`string`, `any`\> | `undefined` |
-| `options.situation` | `string` | `undefined` |
-| `options.tokenBudget?` | `number` & `Minimum`\<``1``\> | `undefined` |
-| `overwrite` | `boolean` | `false` |
-
-#### Returns
-
-`Promise`\<[`ResourceUpdatedResponse`](../modules/api.md#resourceupdatedresponse)\>
-
-#### Defined in
-
-[src/managers/session.ts:115](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/managers/session.ts#L115)
diff --git a/docs/js-sdk-docs/classes/managers_tool.ToolsManager.md b/docs/js-sdk-docs/classes/managers_tool.ToolsManager.md
deleted file mode 100644
index ad37b7eed..000000000
--- a/docs/js-sdk-docs/classes/managers_tool.ToolsManager.md
+++ /dev/null
@@ -1,166 +0,0 @@
-[@julep/sdk](../README.md) / [Modules](../modules.md) / [managers/tool](../modules/managers_tool.md) / ToolsManager
-
-# Class: ToolsManager
-
-[managers/tool](../modules/managers_tool.md).ToolsManager
-
-BaseManager serves as the base class for all manager classes that interact with the Julep API.
-It provides common functionality needed for API interactions.
-
-## Hierarchy
-
-- [`BaseManager`](managers_base.BaseManager.md)
-
- ↳ **`ToolsManager`**
-
-## Table of contents
-
-### Constructors
-
-- [constructor](managers_tool.ToolsManager.md#constructor)
-
-### Properties
-
-- [apiClient](managers_tool.ToolsManager.md#apiclient)
-
-### Methods
-
-- [create](managers_tool.ToolsManager.md#create)
-- [delete](managers_tool.ToolsManager.md#delete)
-- [list](managers_tool.ToolsManager.md#list)
-- [update](managers_tool.ToolsManager.md#update)
-
-## Constructors
-
-### constructor
-
-• **new ToolsManager**(`apiClient`): [`ToolsManager`](managers_tool.ToolsManager.md)
-
-Constructs a new instance of BaseManager.
-
-#### Parameters
-
-| Name | Type | Description |
-| :------ | :------ | :------ |
-| `apiClient` | [`JulepApiClient`](api_JulepApiClient.JulepApiClient.md) | The JulepApiClient instance used for API interactions. |
-
-#### Returns
-
-[`ToolsManager`](managers_tool.ToolsManager.md)
-
-#### Inherited from
-
-[BaseManager](managers_base.BaseManager.md).[constructor](managers_base.BaseManager.md#constructor)
-
-#### Defined in
-
-[src/managers/base.ts:14](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/managers/base.ts#L14)
-
-## Properties
-
-### apiClient
-
-• **apiClient**: [`JulepApiClient`](api_JulepApiClient.JulepApiClient.md)
-
-The JulepApiClient instance used for API interactions.
-
-#### Inherited from
-
-[BaseManager](managers_base.BaseManager.md).[apiClient](managers_base.BaseManager.md#apiclient)
-
-#### Defined in
-
-[src/managers/base.ts:14](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/managers/base.ts#L14)
-
-## Methods
-
-### create
-
-▸ **create**(`options`): `Promise`\<[`Tool`](../modules/api.md#tool)\>
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `options` | `Object` |
-| `options.agentId` | `string` & `Format`\<``"uuid"``\> |
-| `options.tool` | `Object` |
-| `options.tool.function` | [`FunctionDef`](../modules/api.md#functiondef) |
-| `options.tool.type` | ``"function"`` \| ``"webhook"`` |
-
-#### Returns
-
-`Promise`\<[`Tool`](../modules/api.md#tool)\>
-
-#### Defined in
-
-[src/managers/tool.ts:44](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/managers/tool.ts#L44)
-
-___
-
-### delete
-
-▸ **delete**(`options`): `Promise`\<`void`\>
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `options` | `Object` |
-| `options.agentId` | `string` & `Format`\<``"uuid"``\> |
-| `options.toolId` | `string` & `Format`\<``"uuid"``\> |
-
-#### Returns
-
-`Promise`\<`void`\>
-
-#### Defined in
-
-[src/managers/tool.ts:105](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/managers/tool.ts#L105)
-
-___
-
-### list
-
-▸ **list**(`agentId`, `options?`): `Promise`\<[`Tool`](../modules/api.md#tool)[]\>
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `agentId` | `string` & `Format`\<``"uuid"``\> |
-| `options` | `Object` |
-| `options.limit?` | `number` & `Type`\<``"uint32"``\> & `Minimum`\<``1``\> & `Maximum`\<``1000``\> |
-| `options.offset?` | `number` & `Type`\<``"uint32"``\> & `Minimum`\<``0``\> |
-
-#### Returns
-
-`Promise`\<[`Tool`](../modules/api.md#tool)[]\>
-
-#### Defined in
-
-[src/managers/tool.ts:14](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/managers/tool.ts#L14)
-
-___
-
-### update
-
-▸ **update**(`options`, `overwrite?`): `Promise`\<[`Tool`](../modules/api.md#tool)\>
-
-#### Parameters
-
-| Name | Type | Default value |
-| :------ | :------ | :------ |
-| `options` | `Object` | `undefined` |
-| `options.agentId` | `string` & `Format`\<``"uuid"``\> | `undefined` |
-| `options.tool` | [`UpdateToolRequest`](../modules/api.md#updatetoolrequest) | `undefined` |
-| `options.toolId` | `string` & `Format`\<``"uuid"``\> | `undefined` |
-| `overwrite` | `boolean` | `false` |
-
-#### Returns
-
-`Promise`\<[`Tool`](../modules/api.md#tool)\>
-
-#### Defined in
-
-[src/managers/tool.ts:71](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/managers/tool.ts#L71)
diff --git a/docs/js-sdk-docs/classes/managers_user.UsersManager.md b/docs/js-sdk-docs/classes/managers_user.UsersManager.md
deleted file mode 100644
index e88f66893..000000000
--- a/docs/js-sdk-docs/classes/managers_user.UsersManager.md
+++ /dev/null
@@ -1,197 +0,0 @@
-[@julep/sdk](../README.md) / [Modules](../modules.md) / [managers/user](../modules/managers_user.md) / UsersManager
-
-# Class: UsersManager
-
-[managers/user](../modules/managers_user.md).UsersManager
-
-BaseManager serves as the base class for all manager classes that interact with the Julep API.
-It provides common functionality needed for API interactions.
-
-## Hierarchy
-
-- [`BaseManager`](managers_base.BaseManager.md)
-
- ↳ **`UsersManager`**
-
-## Table of contents
-
-### Constructors
-
-- [constructor](managers_user.UsersManager.md#constructor)
-
-### Properties
-
-- [apiClient](managers_user.UsersManager.md#apiclient)
-
-### Methods
-
-- [create](managers_user.UsersManager.md#create)
-- [delete](managers_user.UsersManager.md#delete)
-- [get](managers_user.UsersManager.md#get)
-- [list](managers_user.UsersManager.md#list)
-- [update](managers_user.UsersManager.md#update)
-
-## Constructors
-
-### constructor
-
-• **new UsersManager**(`apiClient`): [`UsersManager`](managers_user.UsersManager.md)
-
-Constructs a new instance of BaseManager.
-
-#### Parameters
-
-| Name | Type | Description |
-| :------ | :------ | :------ |
-| `apiClient` | [`JulepApiClient`](api_JulepApiClient.JulepApiClient.md) | The JulepApiClient instance used for API interactions. |
-
-#### Returns
-
-[`UsersManager`](managers_user.UsersManager.md)
-
-#### Inherited from
-
-[BaseManager](managers_base.BaseManager.md).[constructor](managers_base.BaseManager.md#constructor)
-
-#### Defined in
-
-[src/managers/base.ts:14](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/managers/base.ts#L14)
-
-## Properties
-
-### apiClient
-
-• **apiClient**: [`JulepApiClient`](api_JulepApiClient.JulepApiClient.md)
-
-The JulepApiClient instance used for API interactions.
-
-#### Inherited from
-
-[BaseManager](managers_base.BaseManager.md).[apiClient](managers_base.BaseManager.md#apiclient)
-
-#### Defined in
-
-[src/managers/base.ts:14](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/managers/base.ts#L14)
-
-## Methods
-
-### create
-
-▸ **create**(`options?`): `Promise`\<[`User`](../modules/api.md#user)\>
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `options` | [`CreateUserRequest`](../modules/api.md#createuserrequest) |
-
-#### Returns
-
-`Promise`\<[`User`](../modules/api.md#user)\>
-
-#### Defined in
-
-[src/managers/user.ts:22](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/managers/user.ts#L22)
-
-___
-
-### delete
-
-▸ **delete**(`userId`): `Promise`\<`void`\>
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `userId` | `string` & `Format`\<``"uuid"``\> |
-
-#### Returns
-
-`Promise`\<`void`\>
-
-#### Defined in
-
-[src/managers/user.ts:70](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/managers/user.ts#L70)
-
-___
-
-### get
-
-▸ **get**(`userId`): `Promise`\<[`User`](../modules/api.md#user)\>
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `userId` | `string` & `Format`\<``"uuid"``\> |
-
-#### Returns
-
-`Promise`\<[`User`](../modules/api.md#user)\>
-
-#### Defined in
-
-[src/managers/user.ts:14](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/managers/user.ts#L14)
-
-___
-
-### list
-
-▸ **list**(`options?`): `Promise`\<[`User`](../modules/api.md#user)[]\>
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `options` | `Object` |
-| `options.limit?` | `number` & `Type`\<``"uint32"``\> & `Minimum`\<``1``\> & `Maximum`\<``1000``\> |
-| `options.metadataFilter?` | `Object` |
-| `options.offset?` | `number` & `Type`\<``"uint32"``\> & `Minimum`\<``0``\> |
-
-#### Returns
-
-`Promise`\<[`User`](../modules/api.md#user)[]\>
-
-#### Defined in
-
-[src/managers/user.ts:37](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/managers/user.ts#L37)
-
-___
-
-### update
-
-▸ **update**(`userId`, `request`, `overwrite`): `Promise`\<[`User`](../modules/api.md#user)\>
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `userId` | `string` |
-| `request` | [`UpdateUserRequest`](../modules/api.md#updateuserrequest) |
-| `overwrite` | ``true`` |
-
-#### Returns
-
-`Promise`\<[`User`](../modules/api.md#user)\>
-
-#### Defined in
-
-[src/managers/user.ts:76](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/managers/user.ts#L76)
-
-▸ **update**(`userId`, `request`, `overwrite?`): `Promise`\<[`User`](../modules/api.md#user)\>
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `userId` | `string` |
-| `request` | [`PatchUserRequest`](../modules/api.md#patchuserrequest) |
-| `overwrite?` | ``false`` |
-
-#### Returns
-
-`Promise`\<[`User`](../modules/api.md#user)\>
-
-#### Defined in
-
-[src/managers/user.ts:82](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/managers/user.ts#L82)
diff --git a/docs/js-sdk-docs/classes/utils_requestConstructor.CustomHttpRequest.md b/docs/js-sdk-docs/classes/utils_requestConstructor.CustomHttpRequest.md
deleted file mode 100644
index 164a230bc..000000000
--- a/docs/js-sdk-docs/classes/utils_requestConstructor.CustomHttpRequest.md
+++ /dev/null
@@ -1,93 +0,0 @@
-[@julep/sdk](../README.md) / [Modules](../modules.md) / [utils/requestConstructor](../modules/utils_requestConstructor.md) / CustomHttpRequest
-
-# Class: CustomHttpRequest
-
-[utils/requestConstructor](../modules/utils_requestConstructor.md).CustomHttpRequest
-
-## Hierarchy
-
-- `AxiosHttpRequest`
-
- ↳ **`CustomHttpRequest`**
-
-## Table of contents
-
-### Constructors
-
-- [constructor](utils_requestConstructor.CustomHttpRequest.md#constructor)
-
-### Properties
-
-- [config](utils_requestConstructor.CustomHttpRequest.md#config)
-
-### Methods
-
-- [request](utils_requestConstructor.CustomHttpRequest.md#request)
-
-## Constructors
-
-### constructor
-
-• **new CustomHttpRequest**(`config`): [`CustomHttpRequest`](utils_requestConstructor.CustomHttpRequest.md)
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `config` | [`OpenAPIConfig`](../modules/api.md#openapiconfig) |
-
-#### Returns
-
-[`CustomHttpRequest`](utils_requestConstructor.CustomHttpRequest.md)
-
-#### Overrides
-
-AxiosHttpRequest.constructor
-
-#### Defined in
-
-[src/utils/requestConstructor.ts:15](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/utils/requestConstructor.ts#L15)
-
-## Properties
-
-### config
-
-• `Readonly` **config**: [`OpenAPIConfig`](../modules/api.md#openapiconfig)
-
-#### Inherited from
-
-AxiosHttpRequest.config
-
-#### Defined in
-
-[src/api/core/BaseHttpRequest.ts:10](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/core/BaseHttpRequest.ts#L10)
-
-## Methods
-
-### request
-
-▸ **request**\<`T`\>(`options`): [`CancelablePromise`](api.CancelablePromise.md)\<`T`\>
-
-#### Type parameters
-
-| Name |
-| :------ |
-| `T` |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `options` | `ApiRequestOptions` |
-
-#### Returns
-
-[`CancelablePromise`](api.CancelablePromise.md)\<`T`\>
-
-#### Overrides
-
-AxiosHttpRequest.request
-
-#### Defined in
-
-[src/utils/requestConstructor.ts:21](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/utils/requestConstructor.ts#L21)
diff --git a/docs/js-sdk-docs/interfaces/managers_session.CreateSessionPayload.md b/docs/js-sdk-docs/interfaces/managers_session.CreateSessionPayload.md
deleted file mode 100644
index 548bb5b2e..000000000
--- a/docs/js-sdk-docs/interfaces/managers_session.CreateSessionPayload.md
+++ /dev/null
@@ -1,87 +0,0 @@
-[@julep/sdk](../README.md) / [Modules](../modules.md) / [managers/session](../modules/managers_session.md) / CreateSessionPayload
-
-# Interface: CreateSessionPayload
-
-[managers/session](../modules/managers_session.md).CreateSessionPayload
-
-## Table of contents
-
-### Properties
-
-- [agentId](managers_session.CreateSessionPayload.md#agentid)
-- [contextOverflow](managers_session.CreateSessionPayload.md#contextoverflow)
-- [metadata](managers_session.CreateSessionPayload.md#metadata)
-- [renderTemplates](managers_session.CreateSessionPayload.md#rendertemplates)
-- [situation](managers_session.CreateSessionPayload.md#situation)
-- [tokenBudget](managers_session.CreateSessionPayload.md#tokenbudget)
-- [userId](managers_session.CreateSessionPayload.md#userid)
-
-## Properties
-
-### agentId
-
-• **agentId**: `string`
-
-#### Defined in
-
-[src/managers/session.ts:17](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/managers/session.ts#L17)
-
-___
-
-### contextOverflow
-
-• `Optional` **contextOverflow**: ``"truncate"`` \| ``"adaptive"``
-
-#### Defined in
-
-[src/managers/session.ts:24](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/managers/session.ts#L24)
-
-___
-
-### metadata
-
-• `Optional` **metadata**: `Record`\<`string`, `any`\>
-
-#### Defined in
-
-[src/managers/session.ts:19](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/managers/session.ts#L19)
-
-___
-
-### renderTemplates
-
-• `Optional` **renderTemplates**: `boolean`
-
-#### Defined in
-
-[src/managers/session.ts:20](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/managers/session.ts#L20)
-
-___
-
-### situation
-
-• `Optional` **situation**: `string`
-
-#### Defined in
-
-[src/managers/session.ts:18](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/managers/session.ts#L18)
-
-___
-
-### tokenBudget
-
-• `Optional` **tokenBudget**: `number`
-
-#### Defined in
-
-[src/managers/session.ts:21](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/managers/session.ts#L21)
-
-___
-
-### userId
-
-• `Optional` **userId**: `string`
-
-#### Defined in
-
-[src/managers/session.ts:16](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/managers/session.ts#L16)
diff --git a/docs/js-sdk-docs/modules.md b/docs/js-sdk-docs/modules.md
deleted file mode 100644
index ec445aa16..000000000
--- a/docs/js-sdk-docs/modules.md
+++ /dev/null
@@ -1,22 +0,0 @@
-[@julep/sdk](README.md) / Modules
-
-# @julep/sdk
-
-## Table of contents
-
-### Modules
-
-- [api](modules/api.md)
-- [api/JulepApiClient](modules/api_JulepApiClient.md)
-- [managers/agent](modules/managers_agent.md)
-- [managers/base](modules/managers_base.md)
-- [managers/doc](modules/managers_doc.md)
-- [managers/memory](modules/managers_memory.md)
-- [managers/session](modules/managers_session.md)
-- [managers/tool](modules/managers_tool.md)
-- [managers/user](modules/managers_user.md)
-- [utils/invariant](modules/utils_invariant.md)
-- [utils/isValidUuid4](modules/utils_isValidUuid4.md)
-- [utils/openaiPatch](modules/utils_openaiPatch.md)
-- [utils/requestConstructor](modules/utils_requestConstructor.md)
-- [utils/xor](modules/utils_xor.md)
diff --git a/docs/js-sdk-docs/modules/api.md b/docs/js-sdk-docs/modules/api.md
deleted file mode 100644
index bc4a9e82b..000000000
--- a/docs/js-sdk-docs/modules/api.md
+++ /dev/null
@@ -1,2623 +0,0 @@
-[@julep/sdk](../README.md) / [Modules](../modules.md) / api
-
-# Module: api
-
-## Table of contents
-
-### References
-
-- [JulepApiClient](api.md#julepapiclient)
-
-### Classes
-
-- [ApiError](../classes/api.ApiError.md)
-- [BaseHttpRequest](../classes/api.BaseHttpRequest.md)
-- [CancelError](../classes/api.CancelError.md)
-- [CancelablePromise](../classes/api.CancelablePromise.md)
-- [DefaultService](../classes/api.DefaultService.md)
-
-### Type Aliases
-
-- [Agent](api.md#agent)
-- [AgentDefaultSettings](api.md#agentdefaultsettings)
-- [ChatInput](api.md#chatinput)
-- [ChatInputData](api.md#chatinputdata)
-- [ChatMLImageContentPart](api.md#chatmlimagecontentpart)
-- [ChatMLMessage](api.md#chatmlmessage)
-- [ChatMLTextContentPart](api.md#chatmltextcontentpart)
-- [ChatResponse](api.md#chatresponse)
-- [ChatSettings](api.md#chatsettings)
-- [CompletionUsage](api.md#completionusage)
-- [CreateAgentRequest](api.md#createagentrequest)
-- [CreateDoc](api.md#createdoc)
-- [CreateSessionRequest](api.md#createsessionrequest)
-- [CreateToolRequest](api.md#createtoolrequest)
-- [CreateUserRequest](api.md#createuserrequest)
-- [Doc](api.md#doc)
-- [DocIds](api.md#docids)
-- [FunctionCallOption](api.md#functioncalloption)
-- [FunctionDef](api.md#functiondef)
-- [FunctionParameters](api.md#functionparameters)
-- [InputChatMLMessage](api.md#inputchatmlmessage)
-- [JobStatus](api.md#jobstatus)
-- [Memory](api.md#memory)
-- [MemoryAccessOptions](api.md#memoryaccessoptions)
-- [NamedToolChoice](api.md#namedtoolchoice)
-- [OpenAPIConfig](api.md#openapiconfig)
-- [PartialFunctionDef](api.md#partialfunctiondef)
-- [PatchAgentRequest](api.md#patchagentrequest)
-- [PatchSessionRequest](api.md#patchsessionrequest)
-- [PatchToolRequest](api.md#patchtoolrequest)
-- [PatchUserRequest](api.md#patchuserrequest)
-- [ResourceCreatedResponse](api.md#resourcecreatedresponse)
-- [ResourceDeletedResponse](api.md#resourcedeletedresponse)
-- [ResourceUpdatedResponse](api.md#resourceupdatedresponse)
-- [Session](api.md#session)
-- [Suggestion](api.md#suggestion)
-- [Tool](api.md#tool)
-- [ToolChoiceOption](api.md#toolchoiceoption)
-- [UpdateAgentRequest](api.md#updateagentrequest)
-- [UpdateSessionRequest](api.md#updatesessionrequest)
-- [UpdateToolRequest](api.md#updatetoolrequest)
-- [UpdateUserRequest](api.md#updateuserrequest)
-- [User](api.md#user)
-- [agent\_id](api.md#agent_id)
-- [doc\_id](api.md#doc_id)
-- [job\_id](api.md#job_id)
-- [memory\_id](api.md#memory_id)
-- [message\_id](api.md#message_id)
-- [session\_id](api.md#session_id)
-- [tool\_id](api.md#tool_id)
-- [user\_id](api.md#user_id)
-
-### Variables
-
-- [$Agent](api.md#$agent)
-- [$AgentDefaultSettings](api.md#$agentdefaultsettings)
-- [$ChatInput](api.md#$chatinput)
-- [$ChatInputData](api.md#$chatinputdata)
-- [$ChatMLImageContentPart](api.md#$chatmlimagecontentpart)
-- [$ChatMLMessage](api.md#$chatmlmessage)
-- [$ChatMLTextContentPart](api.md#$chatmltextcontentpart)
-- [$ChatResponse](api.md#$chatresponse)
-- [$ChatSettings](api.md#$chatsettings)
-- [$CompletionUsage](api.md#$completionusage)
-- [$CreateAgentRequest](api.md#$createagentrequest)
-- [$CreateDoc](api.md#$createdoc)
-- [$CreateSessionRequest](api.md#$createsessionrequest)
-- [$CreateToolRequest](api.md#$createtoolrequest)
-- [$CreateUserRequest](api.md#$createuserrequest)
-- [$Doc](api.md#$doc)
-- [$DocIds](api.md#$docids)
-- [$FunctionCallOption](api.md#$functioncalloption)
-- [$FunctionDef](api.md#$functiondef)
-- [$FunctionParameters](api.md#$functionparameters)
-- [$InputChatMLMessage](api.md#$inputchatmlmessage)
-- [$JobStatus](api.md#$jobstatus)
-- [$Memory](api.md#$memory)
-- [$MemoryAccessOptions](api.md#$memoryaccessoptions)
-- [$NamedToolChoice](api.md#$namedtoolchoice)
-- [$PartialFunctionDef](api.md#$partialfunctiondef)
-- [$PatchAgentRequest](api.md#$patchagentrequest)
-- [$PatchSessionRequest](api.md#$patchsessionrequest)
-- [$PatchToolRequest](api.md#$patchtoolrequest)
-- [$PatchUserRequest](api.md#$patchuserrequest)
-- [$ResourceCreatedResponse](api.md#$resourcecreatedresponse)
-- [$ResourceDeletedResponse](api.md#$resourcedeletedresponse)
-- [$ResourceUpdatedResponse](api.md#$resourceupdatedresponse)
-- [$Session](api.md#$session)
-- [$Suggestion](api.md#$suggestion)
-- [$Tool](api.md#$tool)
-- [$ToolChoiceOption](api.md#$toolchoiceoption)
-- [$UpdateAgentRequest](api.md#$updateagentrequest)
-- [$UpdateSessionRequest](api.md#$updatesessionrequest)
-- [$UpdateToolRequest](api.md#$updatetoolrequest)
-- [$UpdateUserRequest](api.md#$updateuserrequest)
-- [$User](api.md#$user)
-- [$agent\_id](api.md#$agent_id)
-- [$doc\_id](api.md#$doc_id)
-- [$job\_id](api.md#$job_id)
-- [$memory\_id](api.md#$memory_id)
-- [$message\_id](api.md#$message_id)
-- [$session\_id](api.md#$session_id)
-- [$tool\_id](api.md#$tool_id)
-- [$user\_id](api.md#$user_id)
-- [OpenAPI](api.md#openapi)
-
-## References
-
-### JulepApiClient
-
-Re-exports [JulepApiClient](../classes/api_JulepApiClient.JulepApiClient.md)
-
-## Type Aliases
-
-### Agent
-
-Ƭ **Agent**: `Object`
-
-#### Type declaration
-
-| Name | Type | Description |
-| :------ | :------ | :------ |
-| `about?` | `string` | About the agent |
-| `created_at?` | `string` | Agent created at (RFC-3339 format) |
-| `default_settings?` | [`AgentDefaultSettings`](api.md#agentdefaultsettings) | Default settings for all sessions created by this agent |
-| `id` | `string` | Agent id (UUID) |
-| `instructions?` | `string` \| `string`[] | Instructions for the agent |
-| `metadata?` | `any` | Optional metadata |
-| `model` | `string` | The model to use with this agent |
-| `name` | `string` | Name of the agent |
-| `updated_at?` | `string` | Agent updated at (RFC-3339 format) |
-
-#### Defined in
-
-[src/api/models/Agent.ts:6](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/models/Agent.ts#L6)
-
-___
-
-### AgentDefaultSettings
-
-Ƭ **AgentDefaultSettings**: `Object`
-
-#### Type declaration
-
-| Name | Type | Description |
-| :------ | :------ | :------ |
-| `frequency_penalty?` | `number` \| ``null`` | (OpenAI-like) Number between -2.0 and 2.0. Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim. |
-| `length_penalty?` | `number` \| ``null`` | (Huggingface-like) Number between 0 and 2.0. 1.0 is neutral and values larger than that penalize number of tokens generated. |
-| `min_p?` | `number` | Minimum probability compared to leading token to be considered |
-| `presence_penalty?` | `number` \| ``null`` | (OpenAI-like) Number between -2.0 and 2.0. Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim. |
-| `preset?` | ``"problem_solving"`` \| ``"conversational"`` \| ``"fun"`` \| ``"prose"`` \| ``"creative"`` \| ``"business"`` \| ``"deterministic"`` \| ``"code"`` \| ``"multilingual"`` | Generation preset name (one of: problem_solving, conversational, fun, prose, creative, business, deterministic, code, multilingual) |
-| `repetition_penalty?` | `number` \| ``null`` | (Huggingface-like) Number between 0 and 2.0. 1.0 is neutral and values larger than that penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim. |
-| `temperature?` | `number` \| ``null`` | What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic. |
-| `top_p?` | `number` \| ``null`` | Defaults to 1 An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass. So 0.1 means only the tokens comprising the top 10% probability mass are considered. We generally recommend altering this or temperature but not both. |
-
-#### Defined in
-
-[src/api/models/AgentDefaultSettings.ts:5](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/models/AgentDefaultSettings.ts#L5)
-
-___
-
-### ChatInput
-
-Ƭ **ChatInput**: [`ChatInputData`](api.md#chatinputdata) & [`ChatSettings`](api.md#chatsettings) & [`MemoryAccessOptions`](api.md#memoryaccessoptions)
-
-#### Defined in
-
-[src/api/models/ChatInput.ts:8](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/models/ChatInput.ts#L8)
-
-___
-
-### ChatInputData
-
-Ƭ **ChatInputData**: `Object`
-
-#### Type declaration
-
-| Name | Type | Description |
-| :------ | :------ | :------ |
-| `messages` | [`InputChatMLMessage`](api.md#inputchatmlmessage)[] | A list of new input messages comprising the conversation so far. |
-| `tool_choice?` | [`ToolChoiceOption`](api.md#toolchoiceoption) \| [`NamedToolChoice`](api.md#namedtoolchoice) \| ``null`` | Can be one of existing tools given to the agent earlier or the ones included in the request |
-| `tools?` | [`Tool`](api.md#tool)[] \| ``null`` | (Advanced) List of tools that are provided in addition to agent's default set of tools. Functions of same name in agent set are overridden |
-
-#### Defined in
-
-[src/api/models/ChatInputData.ts:9](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/models/ChatInputData.ts#L9)
-
-___
-
-### ChatMLImageContentPart
-
-Ƭ **ChatMLImageContentPart**: `Object`
-
-#### Type declaration
-
-| Name | Type | Description |
-| :------ | :------ | :------ |
-| `image_url` | \{ `detail?`: ``"low"`` \| ``"high"`` \| ``"auto"`` ; `url`: `string` } | Image content part, can be a URL or a base64-encoded image |
-| `image_url.detail?` | ``"low"`` \| ``"high"`` \| ``"auto"`` | image detail to feed into the model can be low \| high \| auto |
-| `image_url.url` | `string` | URL or base64 data url (e.g. `data:image/jpeg;base64,`) |
-| `type` | ``"image_url"`` | Fixed to 'image_url' |
-
-#### Defined in
-
-[src/api/models/ChatMLImageContentPart.ts:5](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/models/ChatMLImageContentPart.ts#L5)
-
-___
-
-### ChatMLMessage
-
-Ƭ **ChatMLMessage**: `Object`
-
-#### Type declaration
-
-| Name | Type | Description |
-| :------ | :------ | :------ |
-| `content` | `string` | ChatML content |
-| `created_at` | `string` | Message created at (RFC-3339 format) |
-| `id` | `string` | Message ID |
-| `name?` | `string` | ChatML name |
-| `role` | ``"user"`` \| ``"assistant"`` \| ``"system"`` \| ``"function_call"`` \| ``"function"`` | ChatML role (system\|assistant\|user\|function_call\|function) |
-
-#### Defined in
-
-[src/api/models/ChatMLMessage.ts:5](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/models/ChatMLMessage.ts#L5)
-
-___
-
-### ChatMLTextContentPart
-
-Ƭ **ChatMLTextContentPart**: `Object`
-
-#### Type declaration
-
-| Name | Type | Description |
-| :------ | :------ | :------ |
-| `text` | `string` | Text content part |
-| `type` | ``"text"`` | Fixed to 'text' |
-
-#### Defined in
-
-[src/api/models/ChatMLTextContentPart.ts:5](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/models/ChatMLTextContentPart.ts#L5)
-
-___
-
-### ChatResponse
-
-Ƭ **ChatResponse**: `Object`
-
-Represents a chat completion response returned by model, based on the provided input.
-
-#### Type declaration
-
-| Name | Type | Description |
-| :------ | :------ | :------ |
-| `doc_ids` | [`DocIds`](api.md#docids) | - |
-| `finish_reason` | ``"stop"`` \| ``"length"`` \| ``"tool_calls"`` \| ``"content_filter"`` \| ``"function_call"`` | The reason the model stopped generating tokens. This will be `stop` if the model hit a natural stop point or a provided stop sequence, `length` if the maximum number of tokens specified in the request was reached, `content_filter` if content was omitted due to a flag from our content filters, `tool_calls` if the model called a tool, or `function_call` (deprecated) if the model called a function. |
-| `id` | `string` | A unique identifier for the chat completion. |
-| `jobs?` | `string`[] | IDs (if any) of jobs created as part of this request |
-| `response` | [`ChatMLMessage`](api.md#chatmlmessage)[][] | A list of chat completion messages produced as a response. |
-| `usage` | [`CompletionUsage`](api.md#completionusage) | - |
-
-#### Defined in
-
-[src/api/models/ChatResponse.ts:11](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/models/ChatResponse.ts#L11)
-
-___
-
-### ChatSettings
-
-Ƭ **ChatSettings**: `Object`
-
-#### Type declaration
-
-| Name | Type | Description |
-| :------ | :------ | :------ |
-| `frequency_penalty?` | `number` \| ``null`` | (OpenAI-like) Number between -2.0 and 2.0. Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim. |
-| `length_penalty?` | `number` \| ``null`` | (Huggingface-like) Number between 0 and 2.0. 1.0 is neutral and values larger than that penalize number of tokens generated. |
-| `logit_bias?` | `Record`\<`string`, `number`\> \| ``null`` | Modify the likelihood of specified tokens appearing in the completion. Accepts a JSON object that maps tokens (specified by their token ID in the tokenizer) to an associated bias value from -100 to 100. Mathematically, the bias is added to the logits generated by the model prior to sampling. The exact effect will vary per model, but values between -1 and 1 should decrease or increase likelihood of selection; values like -100 or 100 should result in a ban or exclusive selection of the relevant token. |
-| `max_tokens?` | `number` \| ``null`` | The maximum number of tokens to generate in the chat completion. The total length of input tokens and generated tokens is limited by the model's context length. |
-| `min_p?` | `number` | Minimum probability compared to leading token to be considered |
-| `presence_penalty?` | `number` \| ``null`` | (OpenAI-like) Number between -2.0 and 2.0. Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim. |
-| `preset?` | ``"problem_solving"`` \| ``"conversational"`` \| ``"fun"`` \| ``"prose"`` \| ``"creative"`` \| ``"business"`` \| ``"deterministic"`` \| ``"code"`` \| ``"multilingual"`` | Generation preset name (problem_solving\|conversational\|fun\|prose\|creative\|business\|deterministic\|code\|multilingual) |
-| `repetition_penalty?` | `number` \| ``null`` | (Huggingface-like) Number between 0 and 2.0. 1.0 is neutral and values larger than that penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim. |
-| `response_format?` | \{ `pattern?`: `string` ; `schema?`: `any` ; `type?`: ``"text"`` \| ``"json_object"`` \| ``"regex"`` } | An object specifying the format that the model must output. Setting to `{ "type": "json_object" }` enables JSON mode, which guarantees the message the model generates is valid JSON. **Important:** when using JSON mode, you **must** also instruct the model to produce JSON yourself via a system or user message. Without this, the model may generate an unending stream of whitespace until the generation reaches the token limit, resulting in a long-running and seemingly "stuck" request. Also note that the message content may be partially cut off if `finish_reason="length"`, which indicates the generation exceeded `max_tokens` or the conversation exceeded the max context length. |
-| `response_format.pattern?` | `string` | Regular expression pattern to use if `type` is `"regex"` |
-| `response_format.schema?` | `any` | JSON Schema to use if `type` is `"json_object"` |
-| `response_format.type?` | ``"text"`` \| ``"json_object"`` \| ``"regex"`` | Must be one of `"text"`, `"regex"` or `"json_object"`. |
-| `seed?` | `number` \| ``null`` | This feature is in Beta. If specified, our system will make a best effort to sample deterministically, such that repeated requests with the same `seed` and parameters should return the same result. Determinism is not guaranteed, and you should refer to the `system_fingerprint` response parameter to monitor changes in the backend. |
-| `stop?` | `string` \| ``null`` \| `string`[] | Up to 4 sequences where the API will stop generating further tokens. |
-| `stream?` | `boolean` \| ``null`` | If set, partial message deltas will be sent, like in ChatGPT. Tokens will be sent as data-only [server-sent events](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events#Event_stream_format) as they become available, with the stream terminated by a `data: [DONE]` message. [Example Python code](https://cookbook.openai.com/examples/how_to_stream_completions). |
-| `temperature?` | `number` \| ``null`` | What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic. |
-| `top_p?` | `number` \| ``null`` | Defaults to 1 An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass. So 0.1 means only the tokens comprising the top 10% probability mass are considered. We generally recommend altering this or temperature but not both. |
-
-#### Defined in
-
-[src/api/models/ChatSettings.ts:5](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/models/ChatSettings.ts#L5)
-
-___
-
-### CompletionUsage
-
-Ƭ **CompletionUsage**: `Object`
-
-Usage statistics for the completion request.
-
-#### Type declaration
-
-| Name | Type | Description |
-| :------ | :------ | :------ |
-| `completion_tokens` | `number` | Number of tokens in the generated completion. |
-| `prompt_tokens` | `number` | Number of tokens in the prompt. |
-| `total_tokens` | `number` | Total number of tokens used in the request (prompt + completion). |
-
-#### Defined in
-
-[src/api/models/CompletionUsage.ts:8](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/models/CompletionUsage.ts#L8)
-
-___
-
-### CreateAgentRequest
-
-Ƭ **CreateAgentRequest**: `Object`
-
-A valid request payload for creating an agent
-
-#### Type declaration
-
-| Name | Type | Description |
-| :------ | :------ | :------ |
-| `about?` | `string` | About the agent |
-| `default_settings?` | [`AgentDefaultSettings`](api.md#agentdefaultsettings) | Default model settings to start every session with |
-| `docs?` | [`CreateDoc`](api.md#createdoc)[] | List of docs about agent |
-| `instructions?` | `string` \| `string`[] | Instructions for the agent |
-| `metadata?` | `any` | (Optional) metadata |
-| `model?` | `string` | Name of the model that the agent is supposed to use |
-| `name` | `string` | Name of the agent |
-| `tools?` | [`CreateToolRequest`](api.md#createtoolrequest)[] | A list of tools the model may call. Currently, only `function`s are supported as a tool. Use this to provide a list of functions the model may generate JSON inputs for. |
-
-#### Defined in
-
-[src/api/models/CreateAgentRequest.ts:11](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/models/CreateAgentRequest.ts#L11)
-
-___
-
-### CreateDoc
-
-Ƭ **CreateDoc**: `Object`
-
-#### Type declaration
-
-| Name | Type | Description |
-| :------ | :------ | :------ |
-| `content` | `string`[] \| `string` | Information content |
-| `metadata?` | `any` | Optional metadata |
-| `title` | `string` | Title describing what this bit of information contains |
-
-#### Defined in
-
-[src/api/models/CreateDoc.ts:5](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/models/CreateDoc.ts#L5)
-
-___
-
-### CreateSessionRequest
-
-Ƭ **CreateSessionRequest**: `Object`
-
-A valid request payload for creating a session
-
-#### Type declaration
-
-| Name | Type | Description |
-| :------ | :------ | :------ |
-| `agent_id` | `string` | Agent ID of agent to associate with this session |
-| `context_overflow?` | `string` | Action to start on context window overflow |
-| `metadata?` | `any` | Optional metadata |
-| `render_templates?` | `boolean` | Render system and assistant message content as jinja templates |
-| `situation?` | `string` | A specific situation that sets the background for this session |
-| `token_budget?` | `number` | Threshold value for the adaptive context functionality |
-| `user_id?` | `string` | (Optional) User ID of user to associate with this session |
-
-#### Defined in
-
-[src/api/models/CreateSessionRequest.ts:8](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/models/CreateSessionRequest.ts#L8)
-
-___
-
-### CreateToolRequest
-
-Ƭ **CreateToolRequest**: `Object`
-
-#### Type declaration
-
-| Name | Type | Description |
-| :------ | :------ | :------ |
-| `function` | [`FunctionDef`](api.md#functiondef) | Function definition and parameters |
-| `type` | ``"function"`` \| ``"webhook"`` | Whether this tool is a `function` or a `webhook` (Only `function` tool supported right now) |
-
-#### Defined in
-
-[src/api/models/CreateToolRequest.ts:6](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/models/CreateToolRequest.ts#L6)
-
-___
-
-### CreateUserRequest
-
-Ƭ **CreateUserRequest**: `Object`
-
-A valid request payload for creating a user
-
-#### Type declaration
-
-| Name | Type | Description |
-| :------ | :------ | :------ |
-| `about?` | `string` | About the user |
-| `docs?` | [`CreateDoc`](api.md#createdoc)[] | List of docs about user |
-| `metadata?` | `any` | (Optional) metadata |
-| `name?` | `string` | Name of the user |
-
-#### Defined in
-
-[src/api/models/CreateUserRequest.ts:9](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/models/CreateUserRequest.ts#L9)
-
-___
-
-### Doc
-
-Ƭ **Doc**: `Object`
-
-#### Type declaration
-
-| Name | Type | Description |
-| :------ | :------ | :------ |
-| `content` | `string`[] \| `string` | Information content |
-| `created_at` | `string` | Doc created at |
-| `id` | `string` | ID of doc |
-| `metadata?` | `any` | optional metadata |
-| `title` | `string` | Title describing what this bit of information contains |
-
-#### Defined in
-
-[src/api/models/Doc.ts:5](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/models/Doc.ts#L5)
-
-___
-
-### DocIds
-
-Ƭ **DocIds**: `Object`
-
-#### Type declaration
-
-| Name | Type |
-| :------ | :------ |
-| `agent_doc_ids` | `string`[] |
-| `user_doc_ids` | `string`[] |
-
-#### Defined in
-
-[src/api/models/DocIds.ts:5](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/models/DocIds.ts#L5)
-
-___
-
-### FunctionCallOption
-
-Ƭ **FunctionCallOption**: `Object`
-
-Specifying a particular function via `{"name": "my_function"}` forces the model to call that function.
-
-#### Type declaration
-
-| Name | Type | Description |
-| :------ | :------ | :------ |
-| `name` | `string` | The name of the function to call. |
-
-#### Defined in
-
-[src/api/models/FunctionCallOption.ts:9](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/models/FunctionCallOption.ts#L9)
-
-___
-
-### FunctionDef
-
-Ƭ **FunctionDef**: `Object`
-
-#### Type declaration
-
-| Name | Type | Description |
-| :------ | :------ | :------ |
-| `description?` | `string` | A description of what the function does, used by the model to choose when and how to call the function. |
-| `name` | `string` | The name of the function to be called. Must be a-z, A-Z, 0-9, or contain underscores and dashes, with a maximum length of 64. |
-| `parameters` | [`FunctionParameters`](api.md#functionparameters) | Parameters accepeted by this function |
-
-#### Defined in
-
-[src/api/models/FunctionDef.ts:6](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/models/FunctionDef.ts#L6)
-
-___
-
-### FunctionParameters
-
-Ƭ **FunctionParameters**: `Record`\<`string`, `any`\>
-
-The parameters the functions accepts, described as a JSON Schema object.
-
-#### Defined in
-
-[src/api/models/FunctionParameters.ts:8](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/models/FunctionParameters.ts#L8)
-
-___
-
-### InputChatMLMessage
-
-Ƭ **InputChatMLMessage**: `Object`
-
-#### Type declaration
-
-| Name | Type | Description |
-| :------ | :------ | :------ |
-| `content` | `string` | ChatML content |
-| `continue?` | `boolean` | Whether to continue this message or return a new one |
-| `name?` | `string` | ChatML name |
-| `role` | ``"user"`` \| ``"assistant"`` \| ``"system"`` \| ``"function_call"`` \| ``"function"`` \| ``"auto"`` | ChatML role (system\|assistant\|user\|function_call\|function\|auto) |
-
-#### Defined in
-
-[src/api/models/InputChatMLMessage.ts:5](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/models/InputChatMLMessage.ts#L5)
-
-___
-
-### JobStatus
-
-Ƭ **JobStatus**: `Object`
-
-#### Type declaration
-
-| Name | Type | Description |
-| :------ | :------ | :------ |
-| `created_at` | `string` | Job created at (RFC-3339 format) |
-| `has_progress?` | `boolean` | Whether this Job supports progress updates |
-| `id` | `string` | Job id (UUID) |
-| `name` | `string` | Name of the job |
-| `progress?` | `number` | Progress percentage |
-| `reason?` | `string` | Reason for current state |
-| `state` | ``"pending"`` \| ``"in_progress"`` \| ``"retrying"`` \| ``"succeeded"`` \| ``"aborted"`` \| ``"failed"`` \| ``"unknown"`` | Current state (one of: pending, in_progress, retrying, succeeded, aborted, failed) |
-| `updated_at?` | `string` | Job updated at (RFC-3339 format) |
-
-#### Defined in
-
-[src/api/models/JobStatus.ts:5](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/models/JobStatus.ts#L5)
-
-___
-
-### Memory
-
-Ƭ **Memory**: `Object`
-
-#### Type declaration
-
-| Name | Type | Description |
-| :------ | :------ | :------ |
-| `agent_id` | `string` | ID of the agent |
-| `content` | `string` | Content of the memory |
-| `created_at` | `string` | Memory created at (RFC-3339 format) |
-| `entities` | `any`[] | List of entities mentioned in the memory |
-| `id` | `string` | Memory id (UUID) |
-| `last_accessed_at?` | `string` | Memory last accessed at (RFC-3339 format) |
-| `sentiment?` | `number` | Sentiment (valence) of the memory on a scale of -1 to 1 |
-| `timestamp?` | `string` | Memory happened at (RFC-3339 format) |
-| `user_id` | `string` | ID of the user |
-
-#### Defined in
-
-[src/api/models/Memory.ts:5](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/models/Memory.ts#L5)
-
-___
-
-### MemoryAccessOptions
-
-Ƭ **MemoryAccessOptions**: `Object`
-
-#### Type declaration
-
-| Name | Type | Description |
-| :------ | :------ | :------ |
-| `recall?` | `boolean` | Whether previous memories should be recalled or not |
-| `record?` | `boolean` | Whether this interaction should be recorded in history or not |
-| `remember?` | `boolean` | Whether this interaction should form memories or not |
-
-#### Defined in
-
-[src/api/models/MemoryAccessOptions.ts:5](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/models/MemoryAccessOptions.ts#L5)
-
-___
-
-### NamedToolChoice
-
-Ƭ **NamedToolChoice**: `Object`
-
-Specifies a tool the model should use. Use to force the model to call a specific function.
-
-#### Type declaration
-
-| Name | Type | Description |
-| :------ | :------ | :------ |
-| `function` | \{ `name`: `string` } | - |
-| `function.name` | `string` | The name of the function to call. |
-| `type` | ``"function"`` | The type of the tool. Currently, only `function` is supported. |
-
-#### Defined in
-
-[src/api/models/NamedToolChoice.ts:8](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/models/NamedToolChoice.ts#L8)
-
-___
-
-### OpenAPIConfig
-
-Ƭ **OpenAPIConfig**: `Object`
-
-#### Type declaration
-
-| Name | Type |
-| :------ | :------ |
-| `BASE` | `string` |
-| `CREDENTIALS` | ``"include"`` \| ``"omit"`` \| ``"same-origin"`` |
-| `ENCODE_PATH?` | (`path`: `string`) => `string` |
-| `HEADERS?` | `Headers` \| `Resolver`\<`Headers`\> |
-| `PASSWORD?` | `string` \| `Resolver`\<`string`\> |
-| `TOKEN?` | `string` \| `Resolver`\<`string`\> |
-| `USERNAME?` | `string` \| `Resolver`\<`string`\> |
-| `VERSION` | `string` |
-| `WITH_CREDENTIALS` | `boolean` |
-
-#### Defined in
-
-[src/api/core/OpenAPI.ts:10](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/core/OpenAPI.ts#L10)
-
-___
-
-### PartialFunctionDef
-
-Ƭ **PartialFunctionDef**: `Object`
-
-#### Type declaration
-
-| Name | Type | Description |
-| :------ | :------ | :------ |
-| `description?` | `string` | A description of what the function does, used by the model to choose when and how to call the function. |
-| `name?` | `string` | The name of the function to be called. Must be a-z, A-Z, 0-9, or contain underscores and dashes, with a maximum length of 64. |
-| `parameters?` | [`FunctionParameters`](api.md#functionparameters) | Parameters accepeted by this function |
-
-#### Defined in
-
-[src/api/models/PartialFunctionDef.ts:6](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/models/PartialFunctionDef.ts#L6)
-
-___
-
-### PatchAgentRequest
-
-Ƭ **PatchAgentRequest**: `Object`
-
-A request for patching an agent
-
-#### Type declaration
-
-| Name | Type | Description |
-| :------ | :------ | :------ |
-| `about?` | `string` | About the agent |
-| `default_settings?` | [`AgentDefaultSettings`](api.md#agentdefaultsettings) | Default model settings to start every session with |
-| `instructions?` | `string` \| `string`[] | Instructions for the agent |
-| `metadata?` | `any` | Optional metadata |
-| `model?` | `string` | Name of the model that the agent is supposed to use |
-| `name?` | `string` | Name of the agent |
-
-#### Defined in
-
-[src/api/models/PatchAgentRequest.ts:9](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/models/PatchAgentRequest.ts#L9)
-
-___
-
-### PatchSessionRequest
-
-Ƭ **PatchSessionRequest**: `Object`
-
-A request for patching a session
-
-#### Type declaration
-
-| Name | Type | Description |
-| :------ | :------ | :------ |
-| `context_overflow?` | `string` | Action to start on context window overflow |
-| `metadata?` | `any` | Optional metadata |
-| `situation?` | `string` | Updated situation for this session |
-| `token_budget?` | `number` | Threshold value for the adaptive context functionality |
-
-#### Defined in
-
-[src/api/models/PatchSessionRequest.ts:8](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/models/PatchSessionRequest.ts#L8)
-
-___
-
-### PatchToolRequest
-
-Ƭ **PatchToolRequest**: `Object`
-
-#### Type declaration
-
-| Name | Type | Description |
-| :------ | :------ | :------ |
-| `function` | [`PartialFunctionDef`](api.md#partialfunctiondef) | Function definition and parameters |
-
-#### Defined in
-
-[src/api/models/PatchToolRequest.ts:6](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/models/PatchToolRequest.ts#L6)
-
-___
-
-### PatchUserRequest
-
-Ƭ **PatchUserRequest**: `Object`
-
-A request for patching a user
-
-#### Type declaration
-
-| Name | Type | Description |
-| :------ | :------ | :------ |
-| `about?` | `string` | About the user |
-| `metadata?` | `any` | Optional metadata |
-| `name?` | `string` | Name of the user |
-
-#### Defined in
-
-[src/api/models/PatchUserRequest.ts:8](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/models/PatchUserRequest.ts#L8)
-
-___
-
-### ResourceCreatedResponse
-
-Ƭ **ResourceCreatedResponse**: `Object`
-
-#### Type declaration
-
-| Name | Type | Description |
-| :------ | :------ | :------ |
-| `created_at` | `string` | - |
-| `id` | `string` | - |
-| `jobs?` | `string`[] | IDs (if any) of jobs created as part of this request |
-
-#### Defined in
-
-[src/api/models/ResourceCreatedResponse.ts:5](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/models/ResourceCreatedResponse.ts#L5)
-
-___
-
-### ResourceDeletedResponse
-
-Ƭ **ResourceDeletedResponse**: `Object`
-
-#### Type declaration
-
-| Name | Type | Description |
-| :------ | :------ | :------ |
-| `deleted_at` | `string` | - |
-| `id` | `string` | - |
-| `jobs?` | `string`[] | IDs (if any) of jobs created as part of this request |
-
-#### Defined in
-
-[src/api/models/ResourceDeletedResponse.ts:5](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/models/ResourceDeletedResponse.ts#L5)
-
-___
-
-### ResourceUpdatedResponse
-
-Ƭ **ResourceUpdatedResponse**: `Object`
-
-#### Type declaration
-
-| Name | Type | Description |
-| :------ | :------ | :------ |
-| `id` | `string` | - |
-| `jobs?` | `string`[] | IDs (if any) of jobs created as part of this request |
-| `updated_at` | `string` | - |
-
-#### Defined in
-
-[src/api/models/ResourceUpdatedResponse.ts:5](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/models/ResourceUpdatedResponse.ts#L5)
-
-___
-
-### Session
-
-Ƭ **Session**: `Object`
-
-#### Type declaration
-
-| Name | Type | Description |
-| :------ | :------ | :------ |
-| `agent_id` | `string` | Agent ID of agent associated with this session |
-| `context_overflow?` | `string` | Action to start on context window overflow |
-| `created_at?` | `string` | Session created at (RFC-3339 format) |
-| `id` | `string` | Session id (UUID) |
-| `metadata?` | `any` | Optional metadata |
-| `render_templates?` | `boolean` | Render system and assistant message content as jinja templates |
-| `situation?` | `string` | A specific situation that sets the background for this session |
-| `summary?` | `string` | (null at the beginning) - generated automatically after every interaction |
-| `token_budget?` | `number` | Threshold value for the adaptive context functionality |
-| `updated_at?` | `string` | Session updated at (RFC-3339 format) |
-| `user_id?` | `string` | User ID of user associated with this session |
-
-#### Defined in
-
-[src/api/models/Session.ts:5](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/models/Session.ts#L5)
-
-___
-
-### Suggestion
-
-Ƭ **Suggestion**: `Object`
-
-#### Type declaration
-
-| Name | Type | Description |
-| :------ | :------ | :------ |
-| `content` | `string` | The content of the suggestion |
-| `created_at?` | `string` | Suggestion created at (RFC-3339 format) |
-| `message_id` | `string` | The message that produced it |
-| `session_id` | `string` | Session this suggestion belongs to |
-| `target` | ``"user"`` \| ``"agent"`` | Whether the suggestion is for the `agent` or a `user` |
-
-#### Defined in
-
-[src/api/models/Suggestion.ts:5](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/models/Suggestion.ts#L5)
-
-___
-
-### Tool
-
-Ƭ **Tool**: `Object`
-
-#### Type declaration
-
-| Name | Type | Description |
-| :------ | :------ | :------ |
-| `function` | [`FunctionDef`](api.md#functiondef) | Function definition and parameters |
-| `id` | `string` | Tool ID |
-| `type` | ``"function"`` \| ``"webhook"`` | Whether this tool is a `function` or a `webhook` (Only `function` tool supported right now) |
-
-#### Defined in
-
-[src/api/models/Tool.ts:6](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/models/Tool.ts#L6)
-
-___
-
-### ToolChoiceOption
-
-Ƭ **ToolChoiceOption**: ``"none"`` \| ``"auto"`` \| [`NamedToolChoice`](api.md#namedtoolchoice)
-
-Controls which (if any) function is called by the model.
-`none` means the model will not call a function and instead generates a message.
-`auto` means the model can pick between generating a message or calling a function.
-Specifying a particular function via `{"type: "function", "function": {"name": "my_function"}}` forces the model to call that function.
-
-`none` is the default when no functions are present. `auto` is the default if functions are present.
-
-#### Defined in
-
-[src/api/models/ToolChoiceOption.ts:15](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/models/ToolChoiceOption.ts#L15)
-
-___
-
-### UpdateAgentRequest
-
-Ƭ **UpdateAgentRequest**: `Object`
-
-A valid request payload for updating an agent
-
-#### Type declaration
-
-| Name | Type | Description |
-| :------ | :------ | :------ |
-| `about` | `string` | About the agent |
-| `default_settings?` | [`AgentDefaultSettings`](api.md#agentdefaultsettings) | Default model settings to start every session with |
-| `instructions?` | `string` \| `string`[] | Instructions for the agent |
-| `metadata?` | `any` | Optional metadata |
-| `model?` | `string` | Name of the model that the agent is supposed to use |
-| `name` | `string` | Name of the agent |
-
-#### Defined in
-
-[src/api/models/UpdateAgentRequest.ts:9](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/models/UpdateAgentRequest.ts#L9)
-
-___
-
-### UpdateSessionRequest
-
-Ƭ **UpdateSessionRequest**: `Object`
-
-A valid request payload for updating a session
-
-#### Type declaration
-
-| Name | Type | Description |
-| :------ | :------ | :------ |
-| `context_overflow?` | `string` | Action to start on context window overflow |
-| `metadata?` | `any` | Optional metadata |
-| `situation` | `string` | Updated situation for this session |
-| `token_budget?` | `number` | Threshold value for the adaptive context functionality |
-
-#### Defined in
-
-[src/api/models/UpdateSessionRequest.ts:8](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/models/UpdateSessionRequest.ts#L8)
-
-___
-
-### UpdateToolRequest
-
-Ƭ **UpdateToolRequest**: `Object`
-
-#### Type declaration
-
-| Name | Type | Description |
-| :------ | :------ | :------ |
-| `function` | [`FunctionDef`](api.md#functiondef) | Function definition and parameters |
-
-#### Defined in
-
-[src/api/models/UpdateToolRequest.ts:6](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/models/UpdateToolRequest.ts#L6)
-
-___
-
-### UpdateUserRequest
-
-Ƭ **UpdateUserRequest**: `Object`
-
-A valid request payload for updating a user
-
-#### Type declaration
-
-| Name | Type | Description |
-| :------ | :------ | :------ |
-| `about` | `string` | About the user |
-| `metadata?` | `any` | Optional metadata |
-| `name` | `string` | Name of the user |
-
-#### Defined in
-
-[src/api/models/UpdateUserRequest.ts:8](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/models/UpdateUserRequest.ts#L8)
-
-___
-
-### User
-
-Ƭ **User**: `Object`
-
-#### Type declaration
-
-| Name | Type | Description |
-| :------ | :------ | :------ |
-| `about?` | `string` | About the user |
-| `created_at?` | `string` | User created at (RFC-3339 format) |
-| `id` | `string` | User id (UUID) |
-| `metadata?` | `any` | (Optional) metadata |
-| `name?` | `string` | Name of the user |
-| `updated_at?` | `string` | User updated at (RFC-3339 format) |
-
-#### Defined in
-
-[src/api/models/User.ts:5](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/models/User.ts#L5)
-
-___
-
-### agent\_id
-
-Ƭ **agent\_id**: `string`
-
-#### Defined in
-
-[src/api/models/agent_id.ts:5](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/models/agent_id.ts#L5)
-
-___
-
-### doc\_id
-
-Ƭ **doc\_id**: `string`
-
-#### Defined in
-
-[src/api/models/doc_id.ts:5](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/models/doc_id.ts#L5)
-
-___
-
-### job\_id
-
-Ƭ **job\_id**: `string`
-
-#### Defined in
-
-[src/api/models/job_id.ts:5](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/models/job_id.ts#L5)
-
-___
-
-### memory\_id
-
-Ƭ **memory\_id**: `string`
-
-#### Defined in
-
-[src/api/models/memory_id.ts:5](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/models/memory_id.ts#L5)
-
-___
-
-### message\_id
-
-Ƭ **message\_id**: `string`
-
-#### Defined in
-
-[src/api/models/message_id.ts:5](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/models/message_id.ts#L5)
-
-___
-
-### session\_id
-
-Ƭ **session\_id**: `string`
-
-#### Defined in
-
-[src/api/models/session_id.ts:5](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/models/session_id.ts#L5)
-
-___
-
-### tool\_id
-
-Ƭ **tool\_id**: `string`
-
-#### Defined in
-
-[src/api/models/tool_id.ts:5](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/models/tool_id.ts#L5)
-
-___
-
-### user\_id
-
-Ƭ **user\_id**: `string`
-
-#### Defined in
-
-[src/api/models/user_id.ts:5](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/models/user_id.ts#L5)
-
-## Variables
-
-### $Agent
-
-• `Const` **$Agent**: `Object`
-
-#### Type declaration
-
-| Name | Type |
-| :------ | :------ |
-| `properties` | \{ `about`: \{ `description`: ``"About the agent"`` ; `type`: ``"string"`` = "string" } ; `created_at`: \{ `description`: ``"Agent created at (RFC-3339 format)"`` ; `format`: ``"date-time"`` = "date-time"; `type`: ``"string"`` = "string" } ; `default_settings`: \{ `description`: ``"Default settings for all sessions created by this agent"`` ; `type`: ``"AgentDefaultSettings"`` = "AgentDefaultSettings" } ; `id`: \{ `description`: ``"Agent id (UUID)"`` ; `format`: ``"uuid"`` = "uuid"; `isRequired`: ``true`` = true; `type`: ``"string"`` = "string" } ; `instructions`: \{ `contains`: readonly [\{ `type`: ``"string"`` = "string" }, \{ `contains`: \{ `type`: ``"string"`` = "string" } ; `type`: ``"array"`` = "array" }] ; `description`: ``"Instructions for the agent"`` ; `type`: ``"one-of"`` = "one-of" } ; `metadata`: \{ `description`: ``"Optional metadata"`` ; `properties`: {} = \{} } ; `model`: \{ `description`: ``"The model to use with this agent"`` ; `isRequired`: ``true`` = true; `type`: ``"string"`` = "string" } ; `name`: \{ `description`: ``"Name of the agent"`` ; `isRequired`: ``true`` = true; `type`: ``"string"`` = "string" } ; `updated_at`: \{ `description`: ``"Agent updated at (RFC-3339 format)"`` ; `format`: ``"date-time"`` = "date-time"; `type`: ``"string"`` = "string" } } |
-| `properties.about` | \{ `description`: ``"About the agent"`` ; `type`: ``"string"`` = "string" } |
-| `properties.about.description` | ``"About the agent"`` |
-| `properties.about.type` | ``"string"`` |
-| `properties.created_at` | \{ `description`: ``"Agent created at (RFC-3339 format)"`` ; `format`: ``"date-time"`` = "date-time"; `type`: ``"string"`` = "string" } |
-| `properties.created_at.description` | ``"Agent created at (RFC-3339 format)"`` |
-| `properties.created_at.format` | ``"date-time"`` |
-| `properties.created_at.type` | ``"string"`` |
-| `properties.default_settings` | \{ `description`: ``"Default settings for all sessions created by this agent"`` ; `type`: ``"AgentDefaultSettings"`` = "AgentDefaultSettings" } |
-| `properties.default_settings.description` | ``"Default settings for all sessions created by this agent"`` |
-| `properties.default_settings.type` | ``"AgentDefaultSettings"`` |
-| `properties.id` | \{ `description`: ``"Agent id (UUID)"`` ; `format`: ``"uuid"`` = "uuid"; `isRequired`: ``true`` = true; `type`: ``"string"`` = "string" } |
-| `properties.id.description` | ``"Agent id (UUID)"`` |
-| `properties.id.format` | ``"uuid"`` |
-| `properties.id.isRequired` | ``true`` |
-| `properties.id.type` | ``"string"`` |
-| `properties.instructions` | \{ `contains`: readonly [\{ `type`: ``"string"`` = "string" }, \{ `contains`: \{ `type`: ``"string"`` = "string" } ; `type`: ``"array"`` = "array" }] ; `description`: ``"Instructions for the agent"`` ; `type`: ``"one-of"`` = "one-of" } |
-| `properties.instructions.contains` | readonly [\{ `type`: ``"string"`` = "string" }, \{ `contains`: \{ `type`: ``"string"`` = "string" } ; `type`: ``"array"`` = "array" }] |
-| `properties.instructions.description` | ``"Instructions for the agent"`` |
-| `properties.instructions.type` | ``"one-of"`` |
-| `properties.metadata` | \{ `description`: ``"Optional metadata"`` ; `properties`: {} = \{} } |
-| `properties.metadata.description` | ``"Optional metadata"`` |
-| `properties.metadata.properties` | {} |
-| `properties.model` | \{ `description`: ``"The model to use with this agent"`` ; `isRequired`: ``true`` = true; `type`: ``"string"`` = "string" } |
-| `properties.model.description` | ``"The model to use with this agent"`` |
-| `properties.model.isRequired` | ``true`` |
-| `properties.model.type` | ``"string"`` |
-| `properties.name` | \{ `description`: ``"Name of the agent"`` ; `isRequired`: ``true`` = true; `type`: ``"string"`` = "string" } |
-| `properties.name.description` | ``"Name of the agent"`` |
-| `properties.name.isRequired` | ``true`` |
-| `properties.name.type` | ``"string"`` |
-| `properties.updated_at` | \{ `description`: ``"Agent updated at (RFC-3339 format)"`` ; `format`: ``"date-time"`` = "date-time"; `type`: ``"string"`` = "string" } |
-| `properties.updated_at.description` | ``"Agent updated at (RFC-3339 format)"`` |
-| `properties.updated_at.format` | ``"date-time"`` |
-| `properties.updated_at.type` | ``"string"`` |
-
-#### Defined in
-
-[src/api/schemas/$Agent.ts:5](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/schemas/$Agent.ts#L5)
-
-___
-
-### $AgentDefaultSettings
-
-• `Const` **$AgentDefaultSettings**: `Object`
-
-#### Type declaration
-
-| Name | Type |
-| :------ | :------ |
-| `properties` | \{ `frequency_penalty`: \{ `description`: ``"(OpenAI-like) Number between -2.0 and 2.0. Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim."`` ; `isNullable`: ``true`` = true; `maximum`: ``2`` = 2; `minimum`: ``-2`` = -2; `type`: ``"number"`` = "number" } ; `length_penalty`: \{ `description`: ``"(Huggingface-like) Number between 0 and 2.0. 1.0 is neutral and values larger than that penalize number of tokens generated. "`` ; `isNullable`: ``true`` = true; `maximum`: ``2`` = 2; `type`: ``"number"`` = "number" } ; `min_p`: \{ `description`: ``"Minimum probability compared to leading token to be considered"`` ; `exclusiveMaximum`: ``true`` = true; `maximum`: ``1`` = 1; `type`: ``"number"`` = "number" } ; `presence_penalty`: \{ `description`: ``"(OpenAI-like) Number between -2.0 and 2.0. Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim."`` ; `isNullable`: ``true`` = true; `maximum`: ``1`` = 1; `minimum`: ``-1`` = -1; `type`: ``"number"`` = "number" } ; `preset`: \{ `type`: ``"Enum"`` = "Enum" } ; `repetition_penalty`: \{ `description`: ``"(Huggingface-like) Number between 0 and 2.0. 1.0 is neutral and values larger than that penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim."`` ; `isNullable`: ``true`` = true; `maximum`: ``2`` = 2; `type`: ``"number"`` = "number" } ; `temperature`: \{ `description`: ``"What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic."`` ; `isNullable`: ``true`` = true; `maximum`: ``3`` = 3; `type`: ``"number"`` = "number" } ; `top_p`: \{ `description`: ``"Defaults to 1 An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass. So 0.1 means only the tokens comprising the top 10% probability mass are considered. We generally recommend altering this or temperature but not both."`` ; `isNullable`: ``true`` = true; `maximum`: ``1`` = 1; `type`: ``"number"`` = "number" } } |
-| `properties.frequency_penalty` | \{ `description`: ``"(OpenAI-like) Number between -2.0 and 2.0. Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim."`` ; `isNullable`: ``true`` = true; `maximum`: ``2`` = 2; `minimum`: ``-2`` = -2; `type`: ``"number"`` = "number" } |
-| `properties.frequency_penalty.description` | ``"(OpenAI-like) Number between -2.0 and 2.0. Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim."`` |
-| `properties.frequency_penalty.isNullable` | ``true`` |
-| `properties.frequency_penalty.maximum` | ``2`` |
-| `properties.frequency_penalty.minimum` | ``-2`` |
-| `properties.frequency_penalty.type` | ``"number"`` |
-| `properties.length_penalty` | \{ `description`: ``"(Huggingface-like) Number between 0 and 2.0. 1.0 is neutral and values larger than that penalize number of tokens generated. "`` ; `isNullable`: ``true`` = true; `maximum`: ``2`` = 2; `type`: ``"number"`` = "number" } |
-| `properties.length_penalty.description` | ``"(Huggingface-like) Number between 0 and 2.0. 1.0 is neutral and values larger than that penalize number of tokens generated. "`` |
-| `properties.length_penalty.isNullable` | ``true`` |
-| `properties.length_penalty.maximum` | ``2`` |
-| `properties.length_penalty.type` | ``"number"`` |
-| `properties.min_p` | \{ `description`: ``"Minimum probability compared to leading token to be considered"`` ; `exclusiveMaximum`: ``true`` = true; `maximum`: ``1`` = 1; `type`: ``"number"`` = "number" } |
-| `properties.min_p.description` | ``"Minimum probability compared to leading token to be considered"`` |
-| `properties.min_p.exclusiveMaximum` | ``true`` |
-| `properties.min_p.maximum` | ``1`` |
-| `properties.min_p.type` | ``"number"`` |
-| `properties.presence_penalty` | \{ `description`: ``"(OpenAI-like) Number between -2.0 and 2.0. Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim."`` ; `isNullable`: ``true`` = true; `maximum`: ``1`` = 1; `minimum`: ``-1`` = -1; `type`: ``"number"`` = "number" } |
-| `properties.presence_penalty.description` | ``"(OpenAI-like) Number between -2.0 and 2.0. Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim."`` |
-| `properties.presence_penalty.isNullable` | ``true`` |
-| `properties.presence_penalty.maximum` | ``1`` |
-| `properties.presence_penalty.minimum` | ``-1`` |
-| `properties.presence_penalty.type` | ``"number"`` |
-| `properties.preset` | \{ `type`: ``"Enum"`` = "Enum" } |
-| `properties.preset.type` | ``"Enum"`` |
-| `properties.repetition_penalty` | \{ `description`: ``"(Huggingface-like) Number between 0 and 2.0. 1.0 is neutral and values larger than that penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim."`` ; `isNullable`: ``true`` = true; `maximum`: ``2`` = 2; `type`: ``"number"`` = "number" } |
-| `properties.repetition_penalty.description` | ``"(Huggingface-like) Number between 0 and 2.0. 1.0 is neutral and values larger than that penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim."`` |
-| `properties.repetition_penalty.isNullable` | ``true`` |
-| `properties.repetition_penalty.maximum` | ``2`` |
-| `properties.repetition_penalty.type` | ``"number"`` |
-| `properties.temperature` | \{ `description`: ``"What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic."`` ; `isNullable`: ``true`` = true; `maximum`: ``3`` = 3; `type`: ``"number"`` = "number" } |
-| `properties.temperature.description` | ``"What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic."`` |
-| `properties.temperature.isNullable` | ``true`` |
-| `properties.temperature.maximum` | ``3`` |
-| `properties.temperature.type` | ``"number"`` |
-| `properties.top_p` | \{ `description`: ``"Defaults to 1 An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass. So 0.1 means only the tokens comprising the top 10% probability mass are considered. We generally recommend altering this or temperature but not both."`` ; `isNullable`: ``true`` = true; `maximum`: ``1`` = 1; `type`: ``"number"`` = "number" } |
-| `properties.top_p.description` | ``"Defaults to 1 An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass. So 0.1 means only the tokens comprising the top 10% probability mass are considered. We generally recommend altering this or temperature but not both."`` |
-| `properties.top_p.isNullable` | ``true`` |
-| `properties.top_p.maximum` | ``1`` |
-| `properties.top_p.type` | ``"number"`` |
-
-#### Defined in
-
-[src/api/schemas/$AgentDefaultSettings.ts:5](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/schemas/$AgentDefaultSettings.ts#L5)
-
-___
-
-### $ChatInput
-
-• `Const` **$ChatInput**: `Object`
-
-#### Type declaration
-
-| Name | Type |
-| :------ | :------ |
-| `contains` | readonly [\{ `type`: ``"ChatInputData"`` = "ChatInputData" }, \{ `type`: ``"ChatSettings"`` = "ChatSettings" }, \{ `type`: ``"MemoryAccessOptions"`` = "MemoryAccessOptions" }] |
-| `type` | ``"all-of"`` |
-
-#### Defined in
-
-[src/api/schemas/$ChatInput.ts:5](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/schemas/$ChatInput.ts#L5)
-
-___
-
-### $ChatInputData
-
-• `Const` **$ChatInputData**: `Object`
-
-#### Type declaration
-
-| Name | Type |
-| :------ | :------ |
-| `properties` | \{ `messages`: \{ `contains`: \{ `type`: ``"InputChatMLMessage"`` = "InputChatMLMessage" } ; `isRequired`: ``true`` = true; `type`: ``"array"`` = "array" } ; `tool_choice`: \{ `contains`: readonly [\{ `type`: ``"ToolChoiceOption"`` = "ToolChoiceOption" }, \{ `type`: ``"NamedToolChoice"`` = "NamedToolChoice" }] ; `description`: ``"Can be one of existing tools given to the agent earlier or the ones included in the request"`` ; `isNullable`: ``true`` = true; `type`: ``"one-of"`` = "one-of" } ; `tools`: \{ `contains`: \{ `type`: ``"Tool"`` = "Tool" } ; `isNullable`: ``true`` = true; `type`: ``"array"`` = "array" } } |
-| `properties.messages` | \{ `contains`: \{ `type`: ``"InputChatMLMessage"`` = "InputChatMLMessage" } ; `isRequired`: ``true`` = true; `type`: ``"array"`` = "array" } |
-| `properties.messages.contains` | \{ `type`: ``"InputChatMLMessage"`` = "InputChatMLMessage" } |
-| `properties.messages.contains.type` | ``"InputChatMLMessage"`` |
-| `properties.messages.isRequired` | ``true`` |
-| `properties.messages.type` | ``"array"`` |
-| `properties.tool_choice` | \{ `contains`: readonly [\{ `type`: ``"ToolChoiceOption"`` = "ToolChoiceOption" }, \{ `type`: ``"NamedToolChoice"`` = "NamedToolChoice" }] ; `description`: ``"Can be one of existing tools given to the agent earlier or the ones included in the request"`` ; `isNullable`: ``true`` = true; `type`: ``"one-of"`` = "one-of" } |
-| `properties.tool_choice.contains` | readonly [\{ `type`: ``"ToolChoiceOption"`` = "ToolChoiceOption" }, \{ `type`: ``"NamedToolChoice"`` = "NamedToolChoice" }] |
-| `properties.tool_choice.description` | ``"Can be one of existing tools given to the agent earlier or the ones included in the request"`` |
-| `properties.tool_choice.isNullable` | ``true`` |
-| `properties.tool_choice.type` | ``"one-of"`` |
-| `properties.tools` | \{ `contains`: \{ `type`: ``"Tool"`` = "Tool" } ; `isNullable`: ``true`` = true; `type`: ``"array"`` = "array" } |
-| `properties.tools.contains` | \{ `type`: ``"Tool"`` = "Tool" } |
-| `properties.tools.contains.type` | ``"Tool"`` |
-| `properties.tools.isNullable` | ``true`` |
-| `properties.tools.type` | ``"array"`` |
-
-#### Defined in
-
-[src/api/schemas/$ChatInputData.ts:5](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/schemas/$ChatInputData.ts#L5)
-
-___
-
-### $ChatMLImageContentPart
-
-• `Const` **$ChatMLImageContentPart**: `Object`
-
-#### Type declaration
-
-| Name | Type |
-| :------ | :------ |
-| `properties` | \{ `image_url`: \{ `description`: ``"Image content part, can be a URL or a base64-encoded image"`` ; `isRequired`: ``true`` = true; `properties`: \{ `detail`: \{ `type`: ``"Enum"`` = "Enum" } ; `url`: \{ `description`: ``"URL or base64 data url (e.g. `data:image/jpeg;base64,`)"`` ; `isRequired`: ``true`` = true; `type`: ``"string"`` = "string" } } } ; `type`: \{ `isRequired`: ``true`` = true; `type`: ``"Enum"`` = "Enum" } } |
-| `properties.image_url` | \{ `description`: ``"Image content part, can be a URL or a base64-encoded image"`` ; `isRequired`: ``true`` = true; `properties`: \{ `detail`: \{ `type`: ``"Enum"`` = "Enum" } ; `url`: \{ `description`: ``"URL or base64 data url (e.g. `data:image/jpeg;base64,`)"`` ; `isRequired`: ``true`` = true; `type`: ``"string"`` = "string" } } } |
-| `properties.image_url.description` | ``"Image content part, can be a URL or a base64-encoded image"`` |
-| `properties.image_url.isRequired` | ``true`` |
-| `properties.image_url.properties` | \{ `detail`: \{ `type`: ``"Enum"`` = "Enum" } ; `url`: \{ `description`: ``"URL or base64 data url (e.g. `data:image/jpeg;base64,`)"`` ; `isRequired`: ``true`` = true; `type`: ``"string"`` = "string" } } |
-| `properties.image_url.properties.detail` | \{ `type`: ``"Enum"`` = "Enum" } |
-| `properties.image_url.properties.detail.type` | ``"Enum"`` |
-| `properties.image_url.properties.url` | \{ `description`: ``"URL or base64 data url (e.g. `data:image/jpeg;base64,`)"`` ; `isRequired`: ``true`` = true; `type`: ``"string"`` = "string" } |
-| `properties.image_url.properties.url.description` | ``"URL or base64 data url (e.g. `data:image/jpeg;base64,`)"`` |
-| `properties.image_url.properties.url.isRequired` | ``true`` |
-| `properties.image_url.properties.url.type` | ``"string"`` |
-| `properties.type` | \{ `isRequired`: ``true`` = true; `type`: ``"Enum"`` = "Enum" } |
-| `properties.type.isRequired` | ``true`` |
-| `properties.type.type` | ``"Enum"`` |
-
-#### Defined in
-
-[src/api/schemas/$ChatMLImageContentPart.ts:5](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/schemas/$ChatMLImageContentPart.ts#L5)
-
-___
-
-### $ChatMLMessage
-
-• `Const` **$ChatMLMessage**: `Object`
-
-#### Type declaration
-
-| Name | Type |
-| :------ | :------ |
-| `properties` | \{ `content`: \{ `contains`: readonly [\{ `type`: ``"string"`` = "string" }] ; `description`: ``"ChatML content"`` ; `isRequired`: ``true`` = true; `type`: ``"one-of"`` = "one-of" } ; `created_at`: \{ `description`: ``"Message created at (RFC-3339 format)"`` ; `format`: ``"date-time"`` = "date-time"; `isRequired`: ``true`` = true; `type`: ``"string"`` = "string" } ; `id`: \{ `description`: ``"Message ID"`` ; `format`: ``"uuid"`` = "uuid"; `isRequired`: ``true`` = true; `type`: ``"string"`` = "string" } ; `name`: \{ `description`: ``"ChatML name"`` ; `type`: ``"string"`` = "string" } ; `role`: \{ `isRequired`: ``true`` = true; `type`: ``"Enum"`` = "Enum" } } |
-| `properties.content` | \{ `contains`: readonly [\{ `type`: ``"string"`` = "string" }] ; `description`: ``"ChatML content"`` ; `isRequired`: ``true`` = true; `type`: ``"one-of"`` = "one-of" } |
-| `properties.content.contains` | readonly [\{ `type`: ``"string"`` = "string" }] |
-| `properties.content.description` | ``"ChatML content"`` |
-| `properties.content.isRequired` | ``true`` |
-| `properties.content.type` | ``"one-of"`` |
-| `properties.created_at` | \{ `description`: ``"Message created at (RFC-3339 format)"`` ; `format`: ``"date-time"`` = "date-time"; `isRequired`: ``true`` = true; `type`: ``"string"`` = "string" } |
-| `properties.created_at.description` | ``"Message created at (RFC-3339 format)"`` |
-| `properties.created_at.format` | ``"date-time"`` |
-| `properties.created_at.isRequired` | ``true`` |
-| `properties.created_at.type` | ``"string"`` |
-| `properties.id` | \{ `description`: ``"Message ID"`` ; `format`: ``"uuid"`` = "uuid"; `isRequired`: ``true`` = true; `type`: ``"string"`` = "string" } |
-| `properties.id.description` | ``"Message ID"`` |
-| `properties.id.format` | ``"uuid"`` |
-| `properties.id.isRequired` | ``true`` |
-| `properties.id.type` | ``"string"`` |
-| `properties.name` | \{ `description`: ``"ChatML name"`` ; `type`: ``"string"`` = "string" } |
-| `properties.name.description` | ``"ChatML name"`` |
-| `properties.name.type` | ``"string"`` |
-| `properties.role` | \{ `isRequired`: ``true`` = true; `type`: ``"Enum"`` = "Enum" } |
-| `properties.role.isRequired` | ``true`` |
-| `properties.role.type` | ``"Enum"`` |
-
-#### Defined in
-
-[src/api/schemas/$ChatMLMessage.ts:5](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/schemas/$ChatMLMessage.ts#L5)
-
-___
-
-### $ChatMLTextContentPart
-
-• `Const` **$ChatMLTextContentPart**: `Object`
-
-#### Type declaration
-
-| Name | Type |
-| :------ | :------ |
-| `properties` | \{ `text`: \{ `description`: ``"Text content part"`` ; `isRequired`: ``true`` = true; `type`: ``"string"`` = "string" } ; `type`: \{ `isRequired`: ``true`` = true; `type`: ``"Enum"`` = "Enum" } } |
-| `properties.text` | \{ `description`: ``"Text content part"`` ; `isRequired`: ``true`` = true; `type`: ``"string"`` = "string" } |
-| `properties.text.description` | ``"Text content part"`` |
-| `properties.text.isRequired` | ``true`` |
-| `properties.text.type` | ``"string"`` |
-| `properties.type` | \{ `isRequired`: ``true`` = true; `type`: ``"Enum"`` = "Enum" } |
-| `properties.type.isRequired` | ``true`` |
-| `properties.type.type` | ``"Enum"`` |
-
-#### Defined in
-
-[src/api/schemas/$ChatMLTextContentPart.ts:5](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/schemas/$ChatMLTextContentPart.ts#L5)
-
-___
-
-### $ChatResponse
-
-• `Const` **$ChatResponse**: `Object`
-
-#### Type declaration
-
-| Name | Type |
-| :------ | :------ |
-| `description` | ``"Represents a chat completion response returned by model, based on the provided input."`` |
-| `properties` | \{ `doc_ids`: \{ `isRequired`: ``true`` = true; `type`: ``"DocIds"`` = "DocIds" } ; `finish_reason`: \{ `isRequired`: ``true`` = true; `type`: ``"Enum"`` = "Enum" } ; `id`: \{ `description`: ``"A unique identifier for the chat completion."`` ; `format`: ``"uuid"`` = "uuid"; `isRequired`: ``true`` = true; `type`: ``"string"`` = "string" } ; `jobs`: \{ `contains`: \{ `format`: ``"uuid"`` = "uuid"; `type`: ``"string"`` = "string" } ; `type`: ``"array"`` = "array" } ; `response`: \{ `contains`: \{ `contains`: \{ `type`: ``"ChatMLMessage"`` = "ChatMLMessage" } ; `type`: ``"array"`` = "array" } ; `isRequired`: ``true`` = true; `type`: ``"array"`` = "array" } ; `usage`: \{ `isRequired`: ``true`` = true; `type`: ``"CompletionUsage"`` = "CompletionUsage" } } |
-| `properties.doc_ids` | \{ `isRequired`: ``true`` = true; `type`: ``"DocIds"`` = "DocIds" } |
-| `properties.doc_ids.isRequired` | ``true`` |
-| `properties.doc_ids.type` | ``"DocIds"`` |
-| `properties.finish_reason` | \{ `isRequired`: ``true`` = true; `type`: ``"Enum"`` = "Enum" } |
-| `properties.finish_reason.isRequired` | ``true`` |
-| `properties.finish_reason.type` | ``"Enum"`` |
-| `properties.id` | \{ `description`: ``"A unique identifier for the chat completion."`` ; `format`: ``"uuid"`` = "uuid"; `isRequired`: ``true`` = true; `type`: ``"string"`` = "string" } |
-| `properties.id.description` | ``"A unique identifier for the chat completion."`` |
-| `properties.id.format` | ``"uuid"`` |
-| `properties.id.isRequired` | ``true`` |
-| `properties.id.type` | ``"string"`` |
-| `properties.jobs` | \{ `contains`: \{ `format`: ``"uuid"`` = "uuid"; `type`: ``"string"`` = "string" } ; `type`: ``"array"`` = "array" } |
-| `properties.jobs.contains` | \{ `format`: ``"uuid"`` = "uuid"; `type`: ``"string"`` = "string" } |
-| `properties.jobs.contains.format` | ``"uuid"`` |
-| `properties.jobs.contains.type` | ``"string"`` |
-| `properties.jobs.type` | ``"array"`` |
-| `properties.response` | \{ `contains`: \{ `contains`: \{ `type`: ``"ChatMLMessage"`` = "ChatMLMessage" } ; `type`: ``"array"`` = "array" } ; `isRequired`: ``true`` = true; `type`: ``"array"`` = "array" } |
-| `properties.response.contains` | \{ `contains`: \{ `type`: ``"ChatMLMessage"`` = "ChatMLMessage" } ; `type`: ``"array"`` = "array" } |
-| `properties.response.contains.contains` | \{ `type`: ``"ChatMLMessage"`` = "ChatMLMessage" } |
-| `properties.response.contains.contains.type` | ``"ChatMLMessage"`` |
-| `properties.response.contains.type` | ``"array"`` |
-| `properties.response.isRequired` | ``true`` |
-| `properties.response.type` | ``"array"`` |
-| `properties.usage` | \{ `isRequired`: ``true`` = true; `type`: ``"CompletionUsage"`` = "CompletionUsage" } |
-| `properties.usage.isRequired` | ``true`` |
-| `properties.usage.type` | ``"CompletionUsage"`` |
-
-#### Defined in
-
-[src/api/schemas/$ChatResponse.ts:5](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/schemas/$ChatResponse.ts#L5)
-
-___
-
-### $ChatSettings
-
-• `Const` **$ChatSettings**: `Object`
-
-#### Type declaration
-
-| Name | Type |
-| :------ | :------ |
-| `properties` | \{ `frequency_penalty`: \{ `description`: ``"(OpenAI-like) Number between -2.0 and 2.0. Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim."`` ; `isNullable`: ``true`` = true; `maximum`: ``1`` = 1; `minimum`: ``-1`` = -1; `type`: ``"number"`` = "number" } ; `length_penalty`: \{ `description`: ``"(Huggingface-like) Number between 0 and 2.0. 1.0 is neutral and values larger than that penalize number of tokens generated. "`` ; `isNullable`: ``true`` = true; `maximum`: ``2`` = 2; `type`: ``"number"`` = "number" } ; `logit_bias`: \{ `contains`: \{ `type`: ``"number"`` = "number" } ; `isNullable`: ``true`` = true; `type`: ``"dictionary"`` = "dictionary" } ; `max_tokens`: \{ `description`: ``"The maximum number of tokens to generate in the chat completion.\n The total length of input tokens and generated tokens is limited by the model's context length.\n "`` ; `isNullable`: ``true`` = true; `maximum`: ``16384`` = 16384; `minimum`: ``1`` = 1; `type`: ``"number"`` = "number" } ; `min_p`: \{ `description`: ``"Minimum probability compared to leading token to be considered"`` ; `exclusiveMaximum`: ``true`` = true; `maximum`: ``1`` = 1; `type`: ``"number"`` = "number" } ; `presence_penalty`: \{ `description`: ``"(OpenAI-like) Number between -2.0 and 2.0. Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim."`` ; `isNullable`: ``true`` = true; `maximum`: ``1`` = 1; `minimum`: ``-1`` = -1; `type`: ``"number"`` = "number" } ; `preset`: \{ `type`: ``"Enum"`` = "Enum" } ; `repetition_penalty`: \{ `description`: ``"(Huggingface-like) Number between 0 and 2.0. 1.0 is neutral and values larger than that penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim."`` ; `isNullable`: ``true`` = true; `maximum`: ``2`` = 2; `type`: ``"number"`` = "number" } ; `response_format`: \{ `description`: ``"An object specifying the format that the model must output.\n Setting to `{ \"type\": \"json_object\" }` enables JSON mode, which guarantees the message the model generates is valid JSON.\n **Important:** when using JSON mode, you **must** also instruct the model to produce JSON yourself via a system or user message. Without this, the model may generate an unending stream of whitespace until the generation reaches the token limit, resulting in a long-running and seemingly \"stuck\" request. Also note that the message content may be partially cut off if `finish_reason=\"length\"`, which indicates the generation exceeded `max_tokens` or the conversation exceeded the max context length.\n "`` ; `properties`: \{ `pattern`: \{ `description`: ``"Regular expression pattern to use if `type` is `\"regex\"`"`` ; `type`: ``"string"`` = "string" } ; `schema`: \{ `description`: ``"JSON Schema to use if `type` is `\"json_object\"`"`` ; `properties`: {} = \{} } ; `type`: \{ `type`: ``"Enum"`` = "Enum" } } } ; `seed`: \{ `description`: ``"This feature is in Beta.\n If specified, our system will make a best effort to sample deterministically, such that repeated requests with the same `seed` and parameters should return the same result.\n Determinism is not guaranteed, and you should refer to the `system_fingerprint` response parameter to monitor changes in the backend.\n "`` ; `isNullable`: ``true`` = true; `maximum`: ``9999`` = 9999; `minimum`: ``-1`` = -1; `type`: ``"number"`` = "number" } ; `stop`: \{ `contains`: readonly [\{ `isNullable`: ``true`` = true; `type`: ``"string"`` = "string" }, \{ `contains`: \{ `type`: ``"string"`` = "string" } ; `type`: ``"array"`` = "array" }] ; `description`: ``"Up to 4 sequences where the API will stop generating further tokens.\n "`` ; `type`: ``"one-of"`` = "one-of" } ; `stream`: \{ `description`: ``"If set, partial message deltas will be sent, like in ChatGPT. Tokens will be sent as data-only [server-sent events](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events#Event_stream_format) as they become available, with the stream terminated by a `data: [DONE]` message. [Example Python code](https://cookbook.openai.com/examples/how_to_stream_completions).\n "`` ; `isNullable`: ``true`` = true; `type`: ``"boolean"`` = "boolean" } ; `temperature`: \{ `description`: ``"What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic."`` ; `isNullable`: ``true`` = true; `maximum`: ``2`` = 2; `type`: ``"number"`` = "number" } ; `top_p`: \{ `description`: ``"Defaults to 1 An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass. So 0.1 means only the tokens comprising the top 10% probability mass are considered. We generally recommend altering this or temperature but not both."`` ; `exclusiveMinimum`: ``true`` = true; `isNullable`: ``true`` = true; `maximum`: ``1`` = 1; `type`: ``"number"`` = "number" } } |
-| `properties.frequency_penalty` | \{ `description`: ``"(OpenAI-like) Number between -2.0 and 2.0. Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim."`` ; `isNullable`: ``true`` = true; `maximum`: ``1`` = 1; `minimum`: ``-1`` = -1; `type`: ``"number"`` = "number" } |
-| `properties.frequency_penalty.description` | ``"(OpenAI-like) Number between -2.0 and 2.0. Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim."`` |
-| `properties.frequency_penalty.isNullable` | ``true`` |
-| `properties.frequency_penalty.maximum` | ``1`` |
-| `properties.frequency_penalty.minimum` | ``-1`` |
-| `properties.frequency_penalty.type` | ``"number"`` |
-| `properties.length_penalty` | \{ `description`: ``"(Huggingface-like) Number between 0 and 2.0. 1.0 is neutral and values larger than that penalize number of tokens generated. "`` ; `isNullable`: ``true`` = true; `maximum`: ``2`` = 2; `type`: ``"number"`` = "number" } |
-| `properties.length_penalty.description` | ``"(Huggingface-like) Number between 0 and 2.0. 1.0 is neutral and values larger than that penalize number of tokens generated. "`` |
-| `properties.length_penalty.isNullable` | ``true`` |
-| `properties.length_penalty.maximum` | ``2`` |
-| `properties.length_penalty.type` | ``"number"`` |
-| `properties.logit_bias` | \{ `contains`: \{ `type`: ``"number"`` = "number" } ; `isNullable`: ``true`` = true; `type`: ``"dictionary"`` = "dictionary" } |
-| `properties.logit_bias.contains` | \{ `type`: ``"number"`` = "number" } |
-| `properties.logit_bias.contains.type` | ``"number"`` |
-| `properties.logit_bias.isNullable` | ``true`` |
-| `properties.logit_bias.type` | ``"dictionary"`` |
-| `properties.max_tokens` | \{ `description`: ``"The maximum number of tokens to generate in the chat completion.\n The total length of input tokens and generated tokens is limited by the model's context length.\n "`` ; `isNullable`: ``true`` = true; `maximum`: ``16384`` = 16384; `minimum`: ``1`` = 1; `type`: ``"number"`` = "number" } |
-| `properties.max_tokens.description` | ``"The maximum number of tokens to generate in the chat completion.\n The total length of input tokens and generated tokens is limited by the model's context length.\n "`` |
-| `properties.max_tokens.isNullable` | ``true`` |
-| `properties.max_tokens.maximum` | ``16384`` |
-| `properties.max_tokens.minimum` | ``1`` |
-| `properties.max_tokens.type` | ``"number"`` |
-| `properties.min_p` | \{ `description`: ``"Minimum probability compared to leading token to be considered"`` ; `exclusiveMaximum`: ``true`` = true; `maximum`: ``1`` = 1; `type`: ``"number"`` = "number" } |
-| `properties.min_p.description` | ``"Minimum probability compared to leading token to be considered"`` |
-| `properties.min_p.exclusiveMaximum` | ``true`` |
-| `properties.min_p.maximum` | ``1`` |
-| `properties.min_p.type` | ``"number"`` |
-| `properties.presence_penalty` | \{ `description`: ``"(OpenAI-like) Number between -2.0 and 2.0. Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim."`` ; `isNullable`: ``true`` = true; `maximum`: ``1`` = 1; `minimum`: ``-1`` = -1; `type`: ``"number"`` = "number" } |
-| `properties.presence_penalty.description` | ``"(OpenAI-like) Number between -2.0 and 2.0. Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim."`` |
-| `properties.presence_penalty.isNullable` | ``true`` |
-| `properties.presence_penalty.maximum` | ``1`` |
-| `properties.presence_penalty.minimum` | ``-1`` |
-| `properties.presence_penalty.type` | ``"number"`` |
-| `properties.preset` | \{ `type`: ``"Enum"`` = "Enum" } |
-| `properties.preset.type` | ``"Enum"`` |
-| `properties.repetition_penalty` | \{ `description`: ``"(Huggingface-like) Number between 0 and 2.0. 1.0 is neutral and values larger than that penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim."`` ; `isNullable`: ``true`` = true; `maximum`: ``2`` = 2; `type`: ``"number"`` = "number" } |
-| `properties.repetition_penalty.description` | ``"(Huggingface-like) Number between 0 and 2.0. 1.0 is neutral and values larger than that penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim."`` |
-| `properties.repetition_penalty.isNullable` | ``true`` |
-| `properties.repetition_penalty.maximum` | ``2`` |
-| `properties.repetition_penalty.type` | ``"number"`` |
-| `properties.response_format` | \{ `description`: ``"An object specifying the format that the model must output.\n Setting to `{ \"type\": \"json_object\" }` enables JSON mode, which guarantees the message the model generates is valid JSON.\n **Important:** when using JSON mode, you **must** also instruct the model to produce JSON yourself via a system or user message. Without this, the model may generate an unending stream of whitespace until the generation reaches the token limit, resulting in a long-running and seemingly \"stuck\" request. Also note that the message content may be partially cut off if `finish_reason=\"length\"`, which indicates the generation exceeded `max_tokens` or the conversation exceeded the max context length.\n "`` ; `properties`: \{ `pattern`: \{ `description`: ``"Regular expression pattern to use if `type` is `\"regex\"`"`` ; `type`: ``"string"`` = "string" } ; `schema`: \{ `description`: ``"JSON Schema to use if `type` is `\"json_object\"`"`` ; `properties`: {} = \{} } ; `type`: \{ `type`: ``"Enum"`` = "Enum" } } } |
-| `properties.response_format.description` | ``"An object specifying the format that the model must output.\n Setting to `{ \"type\": \"json_object\" }` enables JSON mode, which guarantees the message the model generates is valid JSON.\n **Important:** when using JSON mode, you **must** also instruct the model to produce JSON yourself via a system or user message. Without this, the model may generate an unending stream of whitespace until the generation reaches the token limit, resulting in a long-running and seemingly \"stuck\" request. Also note that the message content may be partially cut off if `finish_reason=\"length\"`, which indicates the generation exceeded `max_tokens` or the conversation exceeded the max context length.\n "`` |
-| `properties.response_format.properties` | \{ `pattern`: \{ `description`: ``"Regular expression pattern to use if `type` is `\"regex\"`"`` ; `type`: ``"string"`` = "string" } ; `schema`: \{ `description`: ``"JSON Schema to use if `type` is `\"json_object\"`"`` ; `properties`: {} = \{} } ; `type`: \{ `type`: ``"Enum"`` = "Enum" } } |
-| `properties.response_format.properties.pattern` | \{ `description`: ``"Regular expression pattern to use if `type` is `\"regex\"`"`` ; `type`: ``"string"`` = "string" } |
-| `properties.response_format.properties.pattern.description` | ``"Regular expression pattern to use if `type` is `\"regex\"`"`` |
-| `properties.response_format.properties.pattern.type` | ``"string"`` |
-| `properties.response_format.properties.schema` | \{ `description`: ``"JSON Schema to use if `type` is `\"json_object\"`"`` ; `properties`: {} = \{} } |
-| `properties.response_format.properties.schema.description` | ``"JSON Schema to use if `type` is `\"json_object\"`"`` |
-| `properties.response_format.properties.schema.properties` | {} |
-| `properties.response_format.properties.type` | \{ `type`: ``"Enum"`` = "Enum" } |
-| `properties.response_format.properties.type.type` | ``"Enum"`` |
-| `properties.seed` | \{ `description`: ``"This feature is in Beta.\n If specified, our system will make a best effort to sample deterministically, such that repeated requests with the same `seed` and parameters should return the same result.\n Determinism is not guaranteed, and you should refer to the `system_fingerprint` response parameter to monitor changes in the backend.\n "`` ; `isNullable`: ``true`` = true; `maximum`: ``9999`` = 9999; `minimum`: ``-1`` = -1; `type`: ``"number"`` = "number" } |
-| `properties.seed.description` | ``"This feature is in Beta.\n If specified, our system will make a best effort to sample deterministically, such that repeated requests with the same `seed` and parameters should return the same result.\n Determinism is not guaranteed, and you should refer to the `system_fingerprint` response parameter to monitor changes in the backend.\n "`` |
-| `properties.seed.isNullable` | ``true`` |
-| `properties.seed.maximum` | ``9999`` |
-| `properties.seed.minimum` | ``-1`` |
-| `properties.seed.type` | ``"number"`` |
-| `properties.stop` | \{ `contains`: readonly [\{ `isNullable`: ``true`` = true; `type`: ``"string"`` = "string" }, \{ `contains`: \{ `type`: ``"string"`` = "string" } ; `type`: ``"array"`` = "array" }] ; `description`: ``"Up to 4 sequences where the API will stop generating further tokens.\n "`` ; `type`: ``"one-of"`` = "one-of" } |
-| `properties.stop.contains` | readonly [\{ `isNullable`: ``true`` = true; `type`: ``"string"`` = "string" }, \{ `contains`: \{ `type`: ``"string"`` = "string" } ; `type`: ``"array"`` = "array" }] |
-| `properties.stop.description` | ``"Up to 4 sequences where the API will stop generating further tokens.\n "`` |
-| `properties.stop.type` | ``"one-of"`` |
-| `properties.stream` | \{ `description`: ``"If set, partial message deltas will be sent, like in ChatGPT. Tokens will be sent as data-only [server-sent events](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events#Event_stream_format) as they become available, with the stream terminated by a `data: [DONE]` message. [Example Python code](https://cookbook.openai.com/examples/how_to_stream_completions).\n "`` ; `isNullable`: ``true`` = true; `type`: ``"boolean"`` = "boolean" } |
-| `properties.stream.description` | ``"If set, partial message deltas will be sent, like in ChatGPT. Tokens will be sent as data-only [server-sent events](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events#Event_stream_format) as they become available, with the stream terminated by a `data: [DONE]` message. [Example Python code](https://cookbook.openai.com/examples/how_to_stream_completions).\n "`` |
-| `properties.stream.isNullable` | ``true`` |
-| `properties.stream.type` | ``"boolean"`` |
-| `properties.temperature` | \{ `description`: ``"What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic."`` ; `isNullable`: ``true`` = true; `maximum`: ``2`` = 2; `type`: ``"number"`` = "number" } |
-| `properties.temperature.description` | ``"What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic."`` |
-| `properties.temperature.isNullable` | ``true`` |
-| `properties.temperature.maximum` | ``2`` |
-| `properties.temperature.type` | ``"number"`` |
-| `properties.top_p` | \{ `description`: ``"Defaults to 1 An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass. So 0.1 means only the tokens comprising the top 10% probability mass are considered. We generally recommend altering this or temperature but not both."`` ; `exclusiveMinimum`: ``true`` = true; `isNullable`: ``true`` = true; `maximum`: ``1`` = 1; `type`: ``"number"`` = "number" } |
-| `properties.top_p.description` | ``"Defaults to 1 An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass. So 0.1 means only the tokens comprising the top 10% probability mass are considered. We generally recommend altering this or temperature but not both."`` |
-| `properties.top_p.exclusiveMinimum` | ``true`` |
-| `properties.top_p.isNullable` | ``true`` |
-| `properties.top_p.maximum` | ``1`` |
-| `properties.top_p.type` | ``"number"`` |
-
-#### Defined in
-
-[src/api/schemas/$ChatSettings.ts:5](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/schemas/$ChatSettings.ts#L5)
-
-___
-
-### $CompletionUsage
-
-• `Const` **$CompletionUsage**: `Object`
-
-#### Type declaration
-
-| Name | Type |
-| :------ | :------ |
-| `description` | ``"Usage statistics for the completion request."`` |
-| `properties` | \{ `completion_tokens`: \{ `description`: ``"Number of tokens in the generated completion."`` ; `isRequired`: ``true`` = true; `type`: ``"number"`` = "number" } ; `prompt_tokens`: \{ `description`: ``"Number of tokens in the prompt."`` ; `isRequired`: ``true`` = true; `type`: ``"number"`` = "number" } ; `total_tokens`: \{ `description`: ``"Total number of tokens used in the request (prompt + completion)."`` ; `isRequired`: ``true`` = true; `type`: ``"number"`` = "number" } } |
-| `properties.completion_tokens` | \{ `description`: ``"Number of tokens in the generated completion."`` ; `isRequired`: ``true`` = true; `type`: ``"number"`` = "number" } |
-| `properties.completion_tokens.description` | ``"Number of tokens in the generated completion."`` |
-| `properties.completion_tokens.isRequired` | ``true`` |
-| `properties.completion_tokens.type` | ``"number"`` |
-| `properties.prompt_tokens` | \{ `description`: ``"Number of tokens in the prompt."`` ; `isRequired`: ``true`` = true; `type`: ``"number"`` = "number" } |
-| `properties.prompt_tokens.description` | ``"Number of tokens in the prompt."`` |
-| `properties.prompt_tokens.isRequired` | ``true`` |
-| `properties.prompt_tokens.type` | ``"number"`` |
-| `properties.total_tokens` | \{ `description`: ``"Total number of tokens used in the request (prompt + completion)."`` ; `isRequired`: ``true`` = true; `type`: ``"number"`` = "number" } |
-| `properties.total_tokens.description` | ``"Total number of tokens used in the request (prompt + completion)."`` |
-| `properties.total_tokens.isRequired` | ``true`` |
-| `properties.total_tokens.type` | ``"number"`` |
-
-#### Defined in
-
-[src/api/schemas/$CompletionUsage.ts:5](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/schemas/$CompletionUsage.ts#L5)
-
-___
-
-### $CreateAgentRequest
-
-• `Const` **$CreateAgentRequest**: `Object`
-
-#### Type declaration
-
-| Name | Type |
-| :------ | :------ |
-| `description` | ``"A valid request payload for creating an agent"`` |
-| `properties` | \{ `about`: \{ `description`: ``"About the agent"`` ; `type`: ``"string"`` = "string" } ; `default_settings`: \{ `description`: ``"Default model settings to start every session with"`` ; `type`: ``"AgentDefaultSettings"`` = "AgentDefaultSettings" } ; `docs`: \{ `contains`: \{ `type`: ``"CreateDoc"`` = "CreateDoc" } ; `type`: ``"array"`` = "array" } ; `instructions`: \{ `contains`: readonly [\{ `type`: ``"string"`` = "string" }, \{ `contains`: \{ `type`: ``"string"`` = "string" } ; `type`: ``"array"`` = "array" }] ; `description`: ``"Instructions for the agent"`` ; `type`: ``"one-of"`` = "one-of" } ; `metadata`: \{ `description`: ``"(Optional) metadata"`` ; `properties`: {} = \{} } ; `model`: \{ `description`: ``"Name of the model that the agent is supposed to use"`` ; `type`: ``"string"`` = "string" } ; `name`: \{ `description`: ``"Name of the agent"`` ; `isRequired`: ``true`` = true; `type`: ``"string"`` = "string" } ; `tools`: \{ `contains`: \{ `type`: ``"CreateToolRequest"`` = "CreateToolRequest" } ; `type`: ``"array"`` = "array" } } |
-| `properties.about` | \{ `description`: ``"About the agent"`` ; `type`: ``"string"`` = "string" } |
-| `properties.about.description` | ``"About the agent"`` |
-| `properties.about.type` | ``"string"`` |
-| `properties.default_settings` | \{ `description`: ``"Default model settings to start every session with"`` ; `type`: ``"AgentDefaultSettings"`` = "AgentDefaultSettings" } |
-| `properties.default_settings.description` | ``"Default model settings to start every session with"`` |
-| `properties.default_settings.type` | ``"AgentDefaultSettings"`` |
-| `properties.docs` | \{ `contains`: \{ `type`: ``"CreateDoc"`` = "CreateDoc" } ; `type`: ``"array"`` = "array" } |
-| `properties.docs.contains` | \{ `type`: ``"CreateDoc"`` = "CreateDoc" } |
-| `properties.docs.contains.type` | ``"CreateDoc"`` |
-| `properties.docs.type` | ``"array"`` |
-| `properties.instructions` | \{ `contains`: readonly [\{ `type`: ``"string"`` = "string" }, \{ `contains`: \{ `type`: ``"string"`` = "string" } ; `type`: ``"array"`` = "array" }] ; `description`: ``"Instructions for the agent"`` ; `type`: ``"one-of"`` = "one-of" } |
-| `properties.instructions.contains` | readonly [\{ `type`: ``"string"`` = "string" }, \{ `contains`: \{ `type`: ``"string"`` = "string" } ; `type`: ``"array"`` = "array" }] |
-| `properties.instructions.description` | ``"Instructions for the agent"`` |
-| `properties.instructions.type` | ``"one-of"`` |
-| `properties.metadata` | \{ `description`: ``"(Optional) metadata"`` ; `properties`: {} = \{} } |
-| `properties.metadata.description` | ``"(Optional) metadata"`` |
-| `properties.metadata.properties` | {} |
-| `properties.model` | \{ `description`: ``"Name of the model that the agent is supposed to use"`` ; `type`: ``"string"`` = "string" } |
-| `properties.model.description` | ``"Name of the model that the agent is supposed to use"`` |
-| `properties.model.type` | ``"string"`` |
-| `properties.name` | \{ `description`: ``"Name of the agent"`` ; `isRequired`: ``true`` = true; `type`: ``"string"`` = "string" } |
-| `properties.name.description` | ``"Name of the agent"`` |
-| `properties.name.isRequired` | ``true`` |
-| `properties.name.type` | ``"string"`` |
-| `properties.tools` | \{ `contains`: \{ `type`: ``"CreateToolRequest"`` = "CreateToolRequest" } ; `type`: ``"array"`` = "array" } |
-| `properties.tools.contains` | \{ `type`: ``"CreateToolRequest"`` = "CreateToolRequest" } |
-| `properties.tools.contains.type` | ``"CreateToolRequest"`` |
-| `properties.tools.type` | ``"array"`` |
-
-#### Defined in
-
-[src/api/schemas/$CreateAgentRequest.ts:5](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/schemas/$CreateAgentRequest.ts#L5)
-
-___
-
-### $CreateDoc
-
-• `Const` **$CreateDoc**: `Object`
-
-#### Type declaration
-
-| Name | Type |
-| :------ | :------ |
-| `properties` | \{ `content`: \{ `contains`: readonly [\{ `contains`: \{ `minItems`: ``1`` = 1; `type`: ``"string"`` = "string" } ; `type`: ``"array"`` = "array" }, \{ `description`: ``"A single document chunk"`` ; `type`: ``"string"`` = "string" }] ; `description`: ``"Information content"`` ; `isRequired`: ``true`` = true; `type`: ``"one-of"`` = "one-of" } ; `metadata`: \{ `description`: ``"Optional metadata"`` ; `properties`: {} = \{} } ; `title`: \{ `description`: ``"Title describing what this bit of information contains"`` ; `isRequired`: ``true`` = true; `type`: ``"string"`` = "string" } } |
-| `properties.content` | \{ `contains`: readonly [\{ `contains`: \{ `minItems`: ``1`` = 1; `type`: ``"string"`` = "string" } ; `type`: ``"array"`` = "array" }, \{ `description`: ``"A single document chunk"`` ; `type`: ``"string"`` = "string" }] ; `description`: ``"Information content"`` ; `isRequired`: ``true`` = true; `type`: ``"one-of"`` = "one-of" } |
-| `properties.content.contains` | readonly [\{ `contains`: \{ `minItems`: ``1`` = 1; `type`: ``"string"`` = "string" } ; `type`: ``"array"`` = "array" }, \{ `description`: ``"A single document chunk"`` ; `type`: ``"string"`` = "string" }] |
-| `properties.content.description` | ``"Information content"`` |
-| `properties.content.isRequired` | ``true`` |
-| `properties.content.type` | ``"one-of"`` |
-| `properties.metadata` | \{ `description`: ``"Optional metadata"`` ; `properties`: {} = \{} } |
-| `properties.metadata.description` | ``"Optional metadata"`` |
-| `properties.metadata.properties` | {} |
-| `properties.title` | \{ `description`: ``"Title describing what this bit of information contains"`` ; `isRequired`: ``true`` = true; `type`: ``"string"`` = "string" } |
-| `properties.title.description` | ``"Title describing what this bit of information contains"`` |
-| `properties.title.isRequired` | ``true`` |
-| `properties.title.type` | ``"string"`` |
-
-#### Defined in
-
-[src/api/schemas/$CreateDoc.ts:5](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/schemas/$CreateDoc.ts#L5)
-
-___
-
-### $CreateSessionRequest
-
-• `Const` **$CreateSessionRequest**: `Object`
-
-#### Type declaration
-
-| Name | Type |
-| :------ | :------ |
-| `description` | ``"A valid request payload for creating a session"`` |
-| `properties` | \{ `agent_id`: \{ `description`: ``"Agent ID of agent to associate with this session"`` ; `format`: ``"uuid"`` = "uuid"; `isRequired`: ``true`` = true; `type`: ``"string"`` = "string" } ; `context_overflow`: \{ `description`: ``"Action to start on context window overflow"`` ; `type`: ``"string"`` = "string" } ; `metadata`: \{ `description`: ``"Optional metadata"`` ; `properties`: {} = \{} } ; `render_templates`: \{ `description`: ``"Render system and assistant message content as jinja templates"`` ; `type`: ``"boolean"`` = "boolean" } ; `situation`: \{ `description`: ``"A specific situation that sets the background for this session"`` ; `type`: ``"string"`` = "string" } ; `token_budget`: \{ `description`: ``"Threshold value for the adaptive context functionality"`` ; `type`: ``"number"`` = "number" } ; `user_id`: \{ `description`: ``"(Optional) User ID of user to associate with this session"`` ; `format`: ``"uuid"`` = "uuid"; `type`: ``"string"`` = "string" } } |
-| `properties.agent_id` | \{ `description`: ``"Agent ID of agent to associate with this session"`` ; `format`: ``"uuid"`` = "uuid"; `isRequired`: ``true`` = true; `type`: ``"string"`` = "string" } |
-| `properties.agent_id.description` | ``"Agent ID of agent to associate with this session"`` |
-| `properties.agent_id.format` | ``"uuid"`` |
-| `properties.agent_id.isRequired` | ``true`` |
-| `properties.agent_id.type` | ``"string"`` |
-| `properties.context_overflow` | \{ `description`: ``"Action to start on context window overflow"`` ; `type`: ``"string"`` = "string" } |
-| `properties.context_overflow.description` | ``"Action to start on context window overflow"`` |
-| `properties.context_overflow.type` | ``"string"`` |
-| `properties.metadata` | \{ `description`: ``"Optional metadata"`` ; `properties`: {} = \{} } |
-| `properties.metadata.description` | ``"Optional metadata"`` |
-| `properties.metadata.properties` | {} |
-| `properties.render_templates` | \{ `description`: ``"Render system and assistant message content as jinja templates"`` ; `type`: ``"boolean"`` = "boolean" } |
-| `properties.render_templates.description` | ``"Render system and assistant message content as jinja templates"`` |
-| `properties.render_templates.type` | ``"boolean"`` |
-| `properties.situation` | \{ `description`: ``"A specific situation that sets the background for this session"`` ; `type`: ``"string"`` = "string" } |
-| `properties.situation.description` | ``"A specific situation that sets the background for this session"`` |
-| `properties.situation.type` | ``"string"`` |
-| `properties.token_budget` | \{ `description`: ``"Threshold value for the adaptive context functionality"`` ; `type`: ``"number"`` = "number" } |
-| `properties.token_budget.description` | ``"Threshold value for the adaptive context functionality"`` |
-| `properties.token_budget.type` | ``"number"`` |
-| `properties.user_id` | \{ `description`: ``"(Optional) User ID of user to associate with this session"`` ; `format`: ``"uuid"`` = "uuid"; `type`: ``"string"`` = "string" } |
-| `properties.user_id.description` | ``"(Optional) User ID of user to associate with this session"`` |
-| `properties.user_id.format` | ``"uuid"`` |
-| `properties.user_id.type` | ``"string"`` |
-
-#### Defined in
-
-[src/api/schemas/$CreateSessionRequest.ts:5](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/schemas/$CreateSessionRequest.ts#L5)
-
-___
-
-### $CreateToolRequest
-
-• `Const` **$CreateToolRequest**: `Object`
-
-#### Type declaration
-
-| Name | Type |
-| :------ | :------ |
-| `properties` | \{ `function`: \{ `contains`: readonly [\{ `type`: ``"FunctionDef"`` = "FunctionDef" }] ; `description`: ``"Function definition and parameters"`` ; `isRequired`: ``true`` = true; `type`: ``"one-of"`` = "one-of" } ; `type`: \{ `isRequired`: ``true`` = true; `type`: ``"Enum"`` = "Enum" } } |
-| `properties.function` | \{ `contains`: readonly [\{ `type`: ``"FunctionDef"`` = "FunctionDef" }] ; `description`: ``"Function definition and parameters"`` ; `isRequired`: ``true`` = true; `type`: ``"one-of"`` = "one-of" } |
-| `properties.function.contains` | readonly [\{ `type`: ``"FunctionDef"`` = "FunctionDef" }] |
-| `properties.function.description` | ``"Function definition and parameters"`` |
-| `properties.function.isRequired` | ``true`` |
-| `properties.function.type` | ``"one-of"`` |
-| `properties.type` | \{ `isRequired`: ``true`` = true; `type`: ``"Enum"`` = "Enum" } |
-| `properties.type.isRequired` | ``true`` |
-| `properties.type.type` | ``"Enum"`` |
-
-#### Defined in
-
-[src/api/schemas/$CreateToolRequest.ts:5](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/schemas/$CreateToolRequest.ts#L5)
-
-___
-
-### $CreateUserRequest
-
-• `Const` **$CreateUserRequest**: `Object`
-
-#### Type declaration
-
-| Name | Type |
-| :------ | :------ |
-| `description` | ``"A valid request payload for creating a user"`` |
-| `properties` | \{ `about`: \{ `description`: ``"About the user"`` ; `type`: ``"string"`` = "string" } ; `docs`: \{ `contains`: \{ `type`: ``"CreateDoc"`` = "CreateDoc" } ; `type`: ``"array"`` = "array" } ; `metadata`: \{ `description`: ``"(Optional) metadata"`` ; `properties`: {} = \{} } ; `name`: \{ `description`: ``"Name of the user"`` ; `type`: ``"string"`` = "string" } } |
-| `properties.about` | \{ `description`: ``"About the user"`` ; `type`: ``"string"`` = "string" } |
-| `properties.about.description` | ``"About the user"`` |
-| `properties.about.type` | ``"string"`` |
-| `properties.docs` | \{ `contains`: \{ `type`: ``"CreateDoc"`` = "CreateDoc" } ; `type`: ``"array"`` = "array" } |
-| `properties.docs.contains` | \{ `type`: ``"CreateDoc"`` = "CreateDoc" } |
-| `properties.docs.contains.type` | ``"CreateDoc"`` |
-| `properties.docs.type` | ``"array"`` |
-| `properties.metadata` | \{ `description`: ``"(Optional) metadata"`` ; `properties`: {} = \{} } |
-| `properties.metadata.description` | ``"(Optional) metadata"`` |
-| `properties.metadata.properties` | {} |
-| `properties.name` | \{ `description`: ``"Name of the user"`` ; `type`: ``"string"`` = "string" } |
-| `properties.name.description` | ``"Name of the user"`` |
-| `properties.name.type` | ``"string"`` |
-
-#### Defined in
-
-[src/api/schemas/$CreateUserRequest.ts:5](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/schemas/$CreateUserRequest.ts#L5)
-
-___
-
-### $Doc
-
-• `Const` **$Doc**: `Object`
-
-#### Type declaration
-
-| Name | Type |
-| :------ | :------ |
-| `properties` | \{ `content`: \{ `contains`: readonly [\{ `contains`: \{ `minItems`: ``1`` = 1; `type`: ``"string"`` = "string" } ; `type`: ``"array"`` = "array" }, \{ `description`: ``"A single document chunk"`` ; `type`: ``"string"`` = "string" }] ; `description`: ``"Information content"`` ; `isRequired`: ``true`` = true; `type`: ``"one-of"`` = "one-of" } ; `created_at`: \{ `description`: ``"Doc created at"`` ; `format`: ``"date-time"`` = "date-time"; `isRequired`: ``true`` = true; `type`: ``"string"`` = "string" } ; `id`: \{ `description`: ``"ID of doc"`` ; `format`: ``"uuid"`` = "uuid"; `isRequired`: ``true`` = true; `type`: ``"string"`` = "string" } ; `metadata`: \{ `description`: ``"optional metadata"`` ; `properties`: {} = \{} } ; `title`: \{ `description`: ``"Title describing what this bit of information contains"`` ; `isRequired`: ``true`` = true; `type`: ``"string"`` = "string" } } |
-| `properties.content` | \{ `contains`: readonly [\{ `contains`: \{ `minItems`: ``1`` = 1; `type`: ``"string"`` = "string" } ; `type`: ``"array"`` = "array" }, \{ `description`: ``"A single document chunk"`` ; `type`: ``"string"`` = "string" }] ; `description`: ``"Information content"`` ; `isRequired`: ``true`` = true; `type`: ``"one-of"`` = "one-of" } |
-| `properties.content.contains` | readonly [\{ `contains`: \{ `minItems`: ``1`` = 1; `type`: ``"string"`` = "string" } ; `type`: ``"array"`` = "array" }, \{ `description`: ``"A single document chunk"`` ; `type`: ``"string"`` = "string" }] |
-| `properties.content.description` | ``"Information content"`` |
-| `properties.content.isRequired` | ``true`` |
-| `properties.content.type` | ``"one-of"`` |
-| `properties.created_at` | \{ `description`: ``"Doc created at"`` ; `format`: ``"date-time"`` = "date-time"; `isRequired`: ``true`` = true; `type`: ``"string"`` = "string" } |
-| `properties.created_at.description` | ``"Doc created at"`` |
-| `properties.created_at.format` | ``"date-time"`` |
-| `properties.created_at.isRequired` | ``true`` |
-| `properties.created_at.type` | ``"string"`` |
-| `properties.id` | \{ `description`: ``"ID of doc"`` ; `format`: ``"uuid"`` = "uuid"; `isRequired`: ``true`` = true; `type`: ``"string"`` = "string" } |
-| `properties.id.description` | ``"ID of doc"`` |
-| `properties.id.format` | ``"uuid"`` |
-| `properties.id.isRequired` | ``true`` |
-| `properties.id.type` | ``"string"`` |
-| `properties.metadata` | \{ `description`: ``"optional metadata"`` ; `properties`: {} = \{} } |
-| `properties.metadata.description` | ``"optional metadata"`` |
-| `properties.metadata.properties` | {} |
-| `properties.title` | \{ `description`: ``"Title describing what this bit of information contains"`` ; `isRequired`: ``true`` = true; `type`: ``"string"`` = "string" } |
-| `properties.title.description` | ``"Title describing what this bit of information contains"`` |
-| `properties.title.isRequired` | ``true`` |
-| `properties.title.type` | ``"string"`` |
-
-#### Defined in
-
-[src/api/schemas/$Doc.ts:5](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/schemas/$Doc.ts#L5)
-
-___
-
-### $DocIds
-
-• `Const` **$DocIds**: `Object`
-
-#### Type declaration
-
-| Name | Type |
-| :------ | :------ |
-| `properties` | \{ `agent_doc_ids`: \{ `contains`: \{ `type`: ``"string"`` = "string" } ; `isRequired`: ``true`` = true; `type`: ``"array"`` = "array" } ; `user_doc_ids`: \{ `contains`: \{ `type`: ``"string"`` = "string" } ; `isRequired`: ``true`` = true; `type`: ``"array"`` = "array" } } |
-| `properties.agent_doc_ids` | \{ `contains`: \{ `type`: ``"string"`` = "string" } ; `isRequired`: ``true`` = true; `type`: ``"array"`` = "array" } |
-| `properties.agent_doc_ids.contains` | \{ `type`: ``"string"`` = "string" } |
-| `properties.agent_doc_ids.contains.type` | ``"string"`` |
-| `properties.agent_doc_ids.isRequired` | ``true`` |
-| `properties.agent_doc_ids.type` | ``"array"`` |
-| `properties.user_doc_ids` | \{ `contains`: \{ `type`: ``"string"`` = "string" } ; `isRequired`: ``true`` = true; `type`: ``"array"`` = "array" } |
-| `properties.user_doc_ids.contains` | \{ `type`: ``"string"`` = "string" } |
-| `properties.user_doc_ids.contains.type` | ``"string"`` |
-| `properties.user_doc_ids.isRequired` | ``true`` |
-| `properties.user_doc_ids.type` | ``"array"`` |
-
-#### Defined in
-
-[src/api/schemas/$DocIds.ts:5](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/schemas/$DocIds.ts#L5)
-
-___
-
-### $FunctionCallOption
-
-• `Const` **$FunctionCallOption**: `Object`
-
-#### Type declaration
-
-| Name | Type |
-| :------ | :------ |
-| `description` | ``"Specifying a particular function via `{\"name\": \"my_function\"}` forces the model to call that function.\n "`` |
-| `properties` | \{ `name`: \{ `description`: ``"The name of the function to call."`` ; `isRequired`: ``true`` = true; `type`: ``"string"`` = "string" } } |
-| `properties.name` | \{ `description`: ``"The name of the function to call."`` ; `isRequired`: ``true`` = true; `type`: ``"string"`` = "string" } |
-| `properties.name.description` | ``"The name of the function to call."`` |
-| `properties.name.isRequired` | ``true`` |
-| `properties.name.type` | ``"string"`` |
-
-#### Defined in
-
-[src/api/schemas/$FunctionCallOption.ts:5](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/schemas/$FunctionCallOption.ts#L5)
-
-___
-
-### $FunctionDef
-
-• `Const` **$FunctionDef**: `Object`
-
-#### Type declaration
-
-| Name | Type |
-| :------ | :------ |
-| `properties` | \{ `description`: \{ `description`: ``"A description of what the function does, used by the model to choose when and how to call the function."`` ; `type`: ``"string"`` = "string" } ; `name`: \{ `description`: ``"The name of the function to be called. Must be a-z, A-Z, 0-9, or contain underscores and dashes, with a maximum length of 64."`` ; `isRequired`: ``true`` = true; `type`: ``"string"`` = "string" } ; `parameters`: \{ `description`: ``"Parameters accepeted by this function"`` ; `isRequired`: ``true`` = true; `type`: ``"FunctionParameters"`` = "FunctionParameters" } } |
-| `properties.description` | \{ `description`: ``"A description of what the function does, used by the model to choose when and how to call the function."`` ; `type`: ``"string"`` = "string" } |
-| `properties.description.description` | ``"A description of what the function does, used by the model to choose when and how to call the function."`` |
-| `properties.description.type` | ``"string"`` |
-| `properties.name` | \{ `description`: ``"The name of the function to be called. Must be a-z, A-Z, 0-9, or contain underscores and dashes, with a maximum length of 64."`` ; `isRequired`: ``true`` = true; `type`: ``"string"`` = "string" } |
-| `properties.name.description` | ``"The name of the function to be called. Must be a-z, A-Z, 0-9, or contain underscores and dashes, with a maximum length of 64."`` |
-| `properties.name.isRequired` | ``true`` |
-| `properties.name.type` | ``"string"`` |
-| `properties.parameters` | \{ `description`: ``"Parameters accepeted by this function"`` ; `isRequired`: ``true`` = true; `type`: ``"FunctionParameters"`` = "FunctionParameters" } |
-| `properties.parameters.description` | ``"Parameters accepeted by this function"`` |
-| `properties.parameters.isRequired` | ``true`` |
-| `properties.parameters.type` | ``"FunctionParameters"`` |
-
-#### Defined in
-
-[src/api/schemas/$FunctionDef.ts:5](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/schemas/$FunctionDef.ts#L5)
-
-___
-
-### $FunctionParameters
-
-• `Const` **$FunctionParameters**: `Object`
-
-#### Type declaration
-
-| Name | Type |
-| :------ | :------ |
-| `contains` | \{ `properties`: {} = \{} } |
-| `contains.properties` | {} |
-| `type` | ``"dictionary"`` |
-
-#### Defined in
-
-[src/api/schemas/$FunctionParameters.ts:5](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/schemas/$FunctionParameters.ts#L5)
-
-___
-
-### $InputChatMLMessage
-
-• `Const` **$InputChatMLMessage**: `Object`
-
-#### Type declaration
-
-| Name | Type |
-| :------ | :------ |
-| `properties` | \{ `content`: \{ `contains`: readonly [\{ `type`: ``"string"`` = "string" }] ; `description`: ``"ChatML content"`` ; `isRequired`: ``true`` = true; `type`: ``"one-of"`` = "one-of" } ; `continue`: \{ `description`: ``"Whether to continue this message or return a new one"`` ; `type`: ``"boolean"`` = "boolean" } ; `name`: \{ `description`: ``"ChatML name"`` ; `type`: ``"string"`` = "string" } ; `role`: \{ `isRequired`: ``true`` = true; `type`: ``"Enum"`` = "Enum" } } |
-| `properties.content` | \{ `contains`: readonly [\{ `type`: ``"string"`` = "string" }] ; `description`: ``"ChatML content"`` ; `isRequired`: ``true`` = true; `type`: ``"one-of"`` = "one-of" } |
-| `properties.content.contains` | readonly [\{ `type`: ``"string"`` = "string" }] |
-| `properties.content.description` | ``"ChatML content"`` |
-| `properties.content.isRequired` | ``true`` |
-| `properties.content.type` | ``"one-of"`` |
-| `properties.continue` | \{ `description`: ``"Whether to continue this message or return a new one"`` ; `type`: ``"boolean"`` = "boolean" } |
-| `properties.continue.description` | ``"Whether to continue this message or return a new one"`` |
-| `properties.continue.type` | ``"boolean"`` |
-| `properties.name` | \{ `description`: ``"ChatML name"`` ; `type`: ``"string"`` = "string" } |
-| `properties.name.description` | ``"ChatML name"`` |
-| `properties.name.type` | ``"string"`` |
-| `properties.role` | \{ `isRequired`: ``true`` = true; `type`: ``"Enum"`` = "Enum" } |
-| `properties.role.isRequired` | ``true`` |
-| `properties.role.type` | ``"Enum"`` |
-
-#### Defined in
-
-[src/api/schemas/$InputChatMLMessage.ts:5](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/schemas/$InputChatMLMessage.ts#L5)
-
-___
-
-### $JobStatus
-
-• `Const` **$JobStatus**: `Object`
-
-#### Type declaration
-
-| Name | Type |
-| :------ | :------ |
-| `properties` | \{ `created_at`: \{ `description`: ``"Job created at (RFC-3339 format)"`` ; `format`: ``"date-time"`` = "date-time"; `isRequired`: ``true`` = true; `type`: ``"string"`` = "string" } ; `has_progress`: \{ `description`: ``"Whether this Job supports progress updates"`` ; `type`: ``"boolean"`` = "boolean" } ; `id`: \{ `description`: ``"Job id (UUID)"`` ; `format`: ``"uuid"`` = "uuid"; `isRequired`: ``true`` = true; `type`: ``"string"`` = "string" } ; `name`: \{ `description`: ``"Name of the job"`` ; `isRequired`: ``true`` = true; `type`: ``"string"`` = "string" } ; `progress`: \{ `description`: ``"Progress percentage"`` ; `maximum`: ``100`` = 100; `type`: ``"number"`` = "number" } ; `reason`: \{ `description`: ``"Reason for current state"`` ; `type`: ``"string"`` = "string" } ; `state`: \{ `isRequired`: ``true`` = true; `type`: ``"Enum"`` = "Enum" } ; `updated_at`: \{ `description`: ``"Job updated at (RFC-3339 format)"`` ; `format`: ``"date-time"`` = "date-time"; `type`: ``"string"`` = "string" } } |
-| `properties.created_at` | \{ `description`: ``"Job created at (RFC-3339 format)"`` ; `format`: ``"date-time"`` = "date-time"; `isRequired`: ``true`` = true; `type`: ``"string"`` = "string" } |
-| `properties.created_at.description` | ``"Job created at (RFC-3339 format)"`` |
-| `properties.created_at.format` | ``"date-time"`` |
-| `properties.created_at.isRequired` | ``true`` |
-| `properties.created_at.type` | ``"string"`` |
-| `properties.has_progress` | \{ `description`: ``"Whether this Job supports progress updates"`` ; `type`: ``"boolean"`` = "boolean" } |
-| `properties.has_progress.description` | ``"Whether this Job supports progress updates"`` |
-| `properties.has_progress.type` | ``"boolean"`` |
-| `properties.id` | \{ `description`: ``"Job id (UUID)"`` ; `format`: ``"uuid"`` = "uuid"; `isRequired`: ``true`` = true; `type`: ``"string"`` = "string" } |
-| `properties.id.description` | ``"Job id (UUID)"`` |
-| `properties.id.format` | ``"uuid"`` |
-| `properties.id.isRequired` | ``true`` |
-| `properties.id.type` | ``"string"`` |
-| `properties.name` | \{ `description`: ``"Name of the job"`` ; `isRequired`: ``true`` = true; `type`: ``"string"`` = "string" } |
-| `properties.name.description` | ``"Name of the job"`` |
-| `properties.name.isRequired` | ``true`` |
-| `properties.name.type` | ``"string"`` |
-| `properties.progress` | \{ `description`: ``"Progress percentage"`` ; `maximum`: ``100`` = 100; `type`: ``"number"`` = "number" } |
-| `properties.progress.description` | ``"Progress percentage"`` |
-| `properties.progress.maximum` | ``100`` |
-| `properties.progress.type` | ``"number"`` |
-| `properties.reason` | \{ `description`: ``"Reason for current state"`` ; `type`: ``"string"`` = "string" } |
-| `properties.reason.description` | ``"Reason for current state"`` |
-| `properties.reason.type` | ``"string"`` |
-| `properties.state` | \{ `isRequired`: ``true`` = true; `type`: ``"Enum"`` = "Enum" } |
-| `properties.state.isRequired` | ``true`` |
-| `properties.state.type` | ``"Enum"`` |
-| `properties.updated_at` | \{ `description`: ``"Job updated at (RFC-3339 format)"`` ; `format`: ``"date-time"`` = "date-time"; `type`: ``"string"`` = "string" } |
-| `properties.updated_at.description` | ``"Job updated at (RFC-3339 format)"`` |
-| `properties.updated_at.format` | ``"date-time"`` |
-| `properties.updated_at.type` | ``"string"`` |
-
-#### Defined in
-
-[src/api/schemas/$JobStatus.ts:5](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/schemas/$JobStatus.ts#L5)
-
-___
-
-### $Memory
-
-• `Const` **$Memory**: `Object`
-
-#### Type declaration
-
-| Name | Type |
-| :------ | :------ |
-| `properties` | \{ `agent_id`: \{ `description`: ``"ID of the agent"`` ; `format`: ``"uuid"`` = "uuid"; `isRequired`: ``true`` = true; `type`: ``"string"`` = "string" } ; `content`: \{ `description`: ``"Content of the memory"`` ; `isRequired`: ``true`` = true; `type`: ``"string"`` = "string" } ; `created_at`: \{ `description`: ``"Memory created at (RFC-3339 format)"`` ; `format`: ``"date-time"`` = "date-time"; `isRequired`: ``true`` = true; `type`: ``"string"`` = "string" } ; `entities`: \{ `contains`: \{ `properties`: {} = \{} } ; `isRequired`: ``true`` = true; `type`: ``"array"`` = "array" } ; `id`: \{ `description`: ``"Memory id (UUID)"`` ; `format`: ``"uuid"`` = "uuid"; `isRequired`: ``true`` = true; `type`: ``"string"`` = "string" } ; `last_accessed_at`: \{ `description`: ``"Memory last accessed at (RFC-3339 format)"`` ; `format`: ``"date-time"`` = "date-time"; `type`: ``"string"`` = "string" } ; `sentiment`: \{ `description`: ``"Sentiment (valence) of the memory on a scale of -1 to 1"`` ; `maximum`: ``1`` = 1; `minimum`: ``-1`` = -1; `type`: ``"number"`` = "number" } ; `timestamp`: \{ `description`: ``"Memory happened at (RFC-3339 format)"`` ; `format`: ``"date-time"`` = "date-time"; `type`: ``"string"`` = "string" } ; `user_id`: \{ `description`: ``"ID of the user"`` ; `format`: ``"uuid"`` = "uuid"; `isRequired`: ``true`` = true; `type`: ``"string"`` = "string" } } |
-| `properties.agent_id` | \{ `description`: ``"ID of the agent"`` ; `format`: ``"uuid"`` = "uuid"; `isRequired`: ``true`` = true; `type`: ``"string"`` = "string" } |
-| `properties.agent_id.description` | ``"ID of the agent"`` |
-| `properties.agent_id.format` | ``"uuid"`` |
-| `properties.agent_id.isRequired` | ``true`` |
-| `properties.agent_id.type` | ``"string"`` |
-| `properties.content` | \{ `description`: ``"Content of the memory"`` ; `isRequired`: ``true`` = true; `type`: ``"string"`` = "string" } |
-| `properties.content.description` | ``"Content of the memory"`` |
-| `properties.content.isRequired` | ``true`` |
-| `properties.content.type` | ``"string"`` |
-| `properties.created_at` | \{ `description`: ``"Memory created at (RFC-3339 format)"`` ; `format`: ``"date-time"`` = "date-time"; `isRequired`: ``true`` = true; `type`: ``"string"`` = "string" } |
-| `properties.created_at.description` | ``"Memory created at (RFC-3339 format)"`` |
-| `properties.created_at.format` | ``"date-time"`` |
-| `properties.created_at.isRequired` | ``true`` |
-| `properties.created_at.type` | ``"string"`` |
-| `properties.entities` | \{ `contains`: \{ `properties`: {} = \{} } ; `isRequired`: ``true`` = true; `type`: ``"array"`` = "array" } |
-| `properties.entities.contains` | \{ `properties`: {} = \{} } |
-| `properties.entities.contains.properties` | {} |
-| `properties.entities.isRequired` | ``true`` |
-| `properties.entities.type` | ``"array"`` |
-| `properties.id` | \{ `description`: ``"Memory id (UUID)"`` ; `format`: ``"uuid"`` = "uuid"; `isRequired`: ``true`` = true; `type`: ``"string"`` = "string" } |
-| `properties.id.description` | ``"Memory id (UUID)"`` |
-| `properties.id.format` | ``"uuid"`` |
-| `properties.id.isRequired` | ``true`` |
-| `properties.id.type` | ``"string"`` |
-| `properties.last_accessed_at` | \{ `description`: ``"Memory last accessed at (RFC-3339 format)"`` ; `format`: ``"date-time"`` = "date-time"; `type`: ``"string"`` = "string" } |
-| `properties.last_accessed_at.description` | ``"Memory last accessed at (RFC-3339 format)"`` |
-| `properties.last_accessed_at.format` | ``"date-time"`` |
-| `properties.last_accessed_at.type` | ``"string"`` |
-| `properties.sentiment` | \{ `description`: ``"Sentiment (valence) of the memory on a scale of -1 to 1"`` ; `maximum`: ``1`` = 1; `minimum`: ``-1`` = -1; `type`: ``"number"`` = "number" } |
-| `properties.sentiment.description` | ``"Sentiment (valence) of the memory on a scale of -1 to 1"`` |
-| `properties.sentiment.maximum` | ``1`` |
-| `properties.sentiment.minimum` | ``-1`` |
-| `properties.sentiment.type` | ``"number"`` |
-| `properties.timestamp` | \{ `description`: ``"Memory happened at (RFC-3339 format)"`` ; `format`: ``"date-time"`` = "date-time"; `type`: ``"string"`` = "string" } |
-| `properties.timestamp.description` | ``"Memory happened at (RFC-3339 format)"`` |
-| `properties.timestamp.format` | ``"date-time"`` |
-| `properties.timestamp.type` | ``"string"`` |
-| `properties.user_id` | \{ `description`: ``"ID of the user"`` ; `format`: ``"uuid"`` = "uuid"; `isRequired`: ``true`` = true; `type`: ``"string"`` = "string" } |
-| `properties.user_id.description` | ``"ID of the user"`` |
-| `properties.user_id.format` | ``"uuid"`` |
-| `properties.user_id.isRequired` | ``true`` |
-| `properties.user_id.type` | ``"string"`` |
-
-#### Defined in
-
-[src/api/schemas/$Memory.ts:5](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/schemas/$Memory.ts#L5)
-
-___
-
-### $MemoryAccessOptions
-
-• `Const` **$MemoryAccessOptions**: `Object`
-
-#### Type declaration
-
-| Name | Type |
-| :------ | :------ |
-| `properties` | \{ `recall`: \{ `description`: ``"Whether previous memories should be recalled or not"`` ; `type`: ``"boolean"`` = "boolean" } ; `record`: \{ `description`: ``"Whether this interaction should be recorded in history or not"`` ; `type`: ``"boolean"`` = "boolean" } ; `remember`: \{ `description`: ``"Whether this interaction should form memories or not"`` ; `type`: ``"boolean"`` = "boolean" } } |
-| `properties.recall` | \{ `description`: ``"Whether previous memories should be recalled or not"`` ; `type`: ``"boolean"`` = "boolean" } |
-| `properties.recall.description` | ``"Whether previous memories should be recalled or not"`` |
-| `properties.recall.type` | ``"boolean"`` |
-| `properties.record` | \{ `description`: ``"Whether this interaction should be recorded in history or not"`` ; `type`: ``"boolean"`` = "boolean" } |
-| `properties.record.description` | ``"Whether this interaction should be recorded in history or not"`` |
-| `properties.record.type` | ``"boolean"`` |
-| `properties.remember` | \{ `description`: ``"Whether this interaction should form memories or not"`` ; `type`: ``"boolean"`` = "boolean" } |
-| `properties.remember.description` | ``"Whether this interaction should form memories or not"`` |
-| `properties.remember.type` | ``"boolean"`` |
-
-#### Defined in
-
-[src/api/schemas/$MemoryAccessOptions.ts:5](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/schemas/$MemoryAccessOptions.ts#L5)
-
-___
-
-### $NamedToolChoice
-
-• `Const` **$NamedToolChoice**: `Object`
-
-#### Type declaration
-
-| Name | Type |
-| :------ | :------ |
-| `description` | ``"Specifies a tool the model should use. Use to force the model to call a specific function."`` |
-| `properties` | \{ `function`: \{ `isRequired`: ``true`` = true; `properties`: \{ `name`: \{ `description`: ``"The name of the function to call."`` ; `isRequired`: ``true`` = true; `type`: ``"string"`` = "string" } } } ; `type`: \{ `isRequired`: ``true`` = true; `type`: ``"Enum"`` = "Enum" } } |
-| `properties.function` | \{ `isRequired`: ``true`` = true; `properties`: \{ `name`: \{ `description`: ``"The name of the function to call."`` ; `isRequired`: ``true`` = true; `type`: ``"string"`` = "string" } } } |
-| `properties.function.isRequired` | ``true`` |
-| `properties.function.properties` | \{ `name`: \{ `description`: ``"The name of the function to call."`` ; `isRequired`: ``true`` = true; `type`: ``"string"`` = "string" } } |
-| `properties.function.properties.name` | \{ `description`: ``"The name of the function to call."`` ; `isRequired`: ``true`` = true; `type`: ``"string"`` = "string" } |
-| `properties.function.properties.name.description` | ``"The name of the function to call."`` |
-| `properties.function.properties.name.isRequired` | ``true`` |
-| `properties.function.properties.name.type` | ``"string"`` |
-| `properties.type` | \{ `isRequired`: ``true`` = true; `type`: ``"Enum"`` = "Enum" } |
-| `properties.type.isRequired` | ``true`` |
-| `properties.type.type` | ``"Enum"`` |
-
-#### Defined in
-
-[src/api/schemas/$NamedToolChoice.ts:5](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/schemas/$NamedToolChoice.ts#L5)
-
-___
-
-### $PartialFunctionDef
-
-• `Const` **$PartialFunctionDef**: `Object`
-
-#### Type declaration
-
-| Name | Type |
-| :------ | :------ |
-| `properties` | \{ `description`: \{ `description`: ``"A description of what the function does, used by the model to choose when and how to call the function."`` ; `type`: ``"string"`` = "string" } ; `name`: \{ `description`: ``"The name of the function to be called. Must be a-z, A-Z, 0-9, or contain underscores and dashes, with a maximum length of 64."`` ; `type`: ``"string"`` = "string" } ; `parameters`: \{ `description`: ``"Parameters accepeted by this function"`` ; `type`: ``"FunctionParameters"`` = "FunctionParameters" } } |
-| `properties.description` | \{ `description`: ``"A description of what the function does, used by the model to choose when and how to call the function."`` ; `type`: ``"string"`` = "string" } |
-| `properties.description.description` | ``"A description of what the function does, used by the model to choose when and how to call the function."`` |
-| `properties.description.type` | ``"string"`` |
-| `properties.name` | \{ `description`: ``"The name of the function to be called. Must be a-z, A-Z, 0-9, or contain underscores and dashes, with a maximum length of 64."`` ; `type`: ``"string"`` = "string" } |
-| `properties.name.description` | ``"The name of the function to be called. Must be a-z, A-Z, 0-9, or contain underscores and dashes, with a maximum length of 64."`` |
-| `properties.name.type` | ``"string"`` |
-| `properties.parameters` | \{ `description`: ``"Parameters accepeted by this function"`` ; `type`: ``"FunctionParameters"`` = "FunctionParameters" } |
-| `properties.parameters.description` | ``"Parameters accepeted by this function"`` |
-| `properties.parameters.type` | ``"FunctionParameters"`` |
-
-#### Defined in
-
-[src/api/schemas/$PartialFunctionDef.ts:5](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/schemas/$PartialFunctionDef.ts#L5)
-
-___
-
-### $PatchAgentRequest
-
-• `Const` **$PatchAgentRequest**: `Object`
-
-#### Type declaration
-
-| Name | Type |
-| :------ | :------ |
-| `description` | ``"A request for patching an agent"`` |
-| `properties` | \{ `about`: \{ `description`: ``"About the agent"`` ; `type`: ``"string"`` = "string" } ; `default_settings`: \{ `description`: ``"Default model settings to start every session with"`` ; `type`: ``"AgentDefaultSettings"`` = "AgentDefaultSettings" } ; `instructions`: \{ `contains`: readonly [\{ `type`: ``"string"`` = "string" }, \{ `contains`: \{ `type`: ``"string"`` = "string" } ; `type`: ``"array"`` = "array" }] ; `description`: ``"Instructions for the agent"`` ; `type`: ``"one-of"`` = "one-of" } ; `metadata`: \{ `description`: ``"Optional metadata"`` ; `properties`: {} = \{} } ; `model`: \{ `description`: ``"Name of the model that the agent is supposed to use"`` ; `type`: ``"string"`` = "string" } ; `name`: \{ `description`: ``"Name of the agent"`` ; `type`: ``"string"`` = "string" } } |
-| `properties.about` | \{ `description`: ``"About the agent"`` ; `type`: ``"string"`` = "string" } |
-| `properties.about.description` | ``"About the agent"`` |
-| `properties.about.type` | ``"string"`` |
-| `properties.default_settings` | \{ `description`: ``"Default model settings to start every session with"`` ; `type`: ``"AgentDefaultSettings"`` = "AgentDefaultSettings" } |
-| `properties.default_settings.description` | ``"Default model settings to start every session with"`` |
-| `properties.default_settings.type` | ``"AgentDefaultSettings"`` |
-| `properties.instructions` | \{ `contains`: readonly [\{ `type`: ``"string"`` = "string" }, \{ `contains`: \{ `type`: ``"string"`` = "string" } ; `type`: ``"array"`` = "array" }] ; `description`: ``"Instructions for the agent"`` ; `type`: ``"one-of"`` = "one-of" } |
-| `properties.instructions.contains` | readonly [\{ `type`: ``"string"`` = "string" }, \{ `contains`: \{ `type`: ``"string"`` = "string" } ; `type`: ``"array"`` = "array" }] |
-| `properties.instructions.description` | ``"Instructions for the agent"`` |
-| `properties.instructions.type` | ``"one-of"`` |
-| `properties.metadata` | \{ `description`: ``"Optional metadata"`` ; `properties`: {} = \{} } |
-| `properties.metadata.description` | ``"Optional metadata"`` |
-| `properties.metadata.properties` | {} |
-| `properties.model` | \{ `description`: ``"Name of the model that the agent is supposed to use"`` ; `type`: ``"string"`` = "string" } |
-| `properties.model.description` | ``"Name of the model that the agent is supposed to use"`` |
-| `properties.model.type` | ``"string"`` |
-| `properties.name` | \{ `description`: ``"Name of the agent"`` ; `type`: ``"string"`` = "string" } |
-| `properties.name.description` | ``"Name of the agent"`` |
-| `properties.name.type` | ``"string"`` |
-
-#### Defined in
-
-[src/api/schemas/$PatchAgentRequest.ts:5](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/schemas/$PatchAgentRequest.ts#L5)
-
-___
-
-### $PatchSessionRequest
-
-• `Const` **$PatchSessionRequest**: `Object`
-
-#### Type declaration
-
-| Name | Type |
-| :------ | :------ |
-| `description` | ``"A request for patching a session"`` |
-| `properties` | \{ `context_overflow`: \{ `description`: ``"Action to start on context window overflow"`` ; `type`: ``"string"`` = "string" } ; `metadata`: \{ `description`: ``"Optional metadata"`` ; `properties`: {} = \{} } ; `situation`: \{ `description`: ``"Updated situation for this session"`` ; `type`: ``"string"`` = "string" } ; `token_budget`: \{ `description`: ``"Threshold value for the adaptive context functionality"`` ; `type`: ``"number"`` = "number" } } |
-| `properties.context_overflow` | \{ `description`: ``"Action to start on context window overflow"`` ; `type`: ``"string"`` = "string" } |
-| `properties.context_overflow.description` | ``"Action to start on context window overflow"`` |
-| `properties.context_overflow.type` | ``"string"`` |
-| `properties.metadata` | \{ `description`: ``"Optional metadata"`` ; `properties`: {} = \{} } |
-| `properties.metadata.description` | ``"Optional metadata"`` |
-| `properties.metadata.properties` | {} |
-| `properties.situation` | \{ `description`: ``"Updated situation for this session"`` ; `type`: ``"string"`` = "string" } |
-| `properties.situation.description` | ``"Updated situation for this session"`` |
-| `properties.situation.type` | ``"string"`` |
-| `properties.token_budget` | \{ `description`: ``"Threshold value for the adaptive context functionality"`` ; `type`: ``"number"`` = "number" } |
-| `properties.token_budget.description` | ``"Threshold value for the adaptive context functionality"`` |
-| `properties.token_budget.type` | ``"number"`` |
-
-#### Defined in
-
-[src/api/schemas/$PatchSessionRequest.ts:5](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/schemas/$PatchSessionRequest.ts#L5)
-
-___
-
-### $PatchToolRequest
-
-• `Const` **$PatchToolRequest**: `Object`
-
-#### Type declaration
-
-| Name | Type |
-| :------ | :------ |
-| `properties` | \{ `function`: \{ `description`: ``"Function definition and parameters"`` ; `isRequired`: ``true`` = true; `type`: ``"PartialFunctionDef"`` = "PartialFunctionDef" } } |
-| `properties.function` | \{ `description`: ``"Function definition and parameters"`` ; `isRequired`: ``true`` = true; `type`: ``"PartialFunctionDef"`` = "PartialFunctionDef" } |
-| `properties.function.description` | ``"Function definition and parameters"`` |
-| `properties.function.isRequired` | ``true`` |
-| `properties.function.type` | ``"PartialFunctionDef"`` |
-
-#### Defined in
-
-[src/api/schemas/$PatchToolRequest.ts:5](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/schemas/$PatchToolRequest.ts#L5)
-
-___
-
-### $PatchUserRequest
-
-• `Const` **$PatchUserRequest**: `Object`
-
-#### Type declaration
-
-| Name | Type |
-| :------ | :------ |
-| `description` | ``"A request for patching a user"`` |
-| `properties` | \{ `about`: \{ `description`: ``"About the user"`` ; `type`: ``"string"`` = "string" } ; `metadata`: \{ `description`: ``"Optional metadata"`` ; `properties`: {} = \{} } ; `name`: \{ `description`: ``"Name of the user"`` ; `type`: ``"string"`` = "string" } } |
-| `properties.about` | \{ `description`: ``"About the user"`` ; `type`: ``"string"`` = "string" } |
-| `properties.about.description` | ``"About the user"`` |
-| `properties.about.type` | ``"string"`` |
-| `properties.metadata` | \{ `description`: ``"Optional metadata"`` ; `properties`: {} = \{} } |
-| `properties.metadata.description` | ``"Optional metadata"`` |
-| `properties.metadata.properties` | {} |
-| `properties.name` | \{ `description`: ``"Name of the user"`` ; `type`: ``"string"`` = "string" } |
-| `properties.name.description` | ``"Name of the user"`` |
-| `properties.name.type` | ``"string"`` |
-
-#### Defined in
-
-[src/api/schemas/$PatchUserRequest.ts:5](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/schemas/$PatchUserRequest.ts#L5)
-
-___
-
-### $ResourceCreatedResponse
-
-• `Const` **$ResourceCreatedResponse**: `Object`
-
-#### Type declaration
-
-| Name | Type |
-| :------ | :------ |
-| `properties` | \{ `created_at`: \{ `format`: ``"date-time"`` = "date-time"; `isRequired`: ``true`` = true; `type`: ``"string"`` = "string" } ; `id`: \{ `format`: ``"uuid"`` = "uuid"; `isRequired`: ``true`` = true; `type`: ``"string"`` = "string" } ; `jobs`: \{ `contains`: \{ `format`: ``"uuid"`` = "uuid"; `type`: ``"string"`` = "string" } ; `type`: ``"array"`` = "array" } } |
-| `properties.created_at` | \{ `format`: ``"date-time"`` = "date-time"; `isRequired`: ``true`` = true; `type`: ``"string"`` = "string" } |
-| `properties.created_at.format` | ``"date-time"`` |
-| `properties.created_at.isRequired` | ``true`` |
-| `properties.created_at.type` | ``"string"`` |
-| `properties.id` | \{ `format`: ``"uuid"`` = "uuid"; `isRequired`: ``true`` = true; `type`: ``"string"`` = "string" } |
-| `properties.id.format` | ``"uuid"`` |
-| `properties.id.isRequired` | ``true`` |
-| `properties.id.type` | ``"string"`` |
-| `properties.jobs` | \{ `contains`: \{ `format`: ``"uuid"`` = "uuid"; `type`: ``"string"`` = "string" } ; `type`: ``"array"`` = "array" } |
-| `properties.jobs.contains` | \{ `format`: ``"uuid"`` = "uuid"; `type`: ``"string"`` = "string" } |
-| `properties.jobs.contains.format` | ``"uuid"`` |
-| `properties.jobs.contains.type` | ``"string"`` |
-| `properties.jobs.type` | ``"array"`` |
-
-#### Defined in
-
-[src/api/schemas/$ResourceCreatedResponse.ts:5](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/schemas/$ResourceCreatedResponse.ts#L5)
-
-___
-
-### $ResourceDeletedResponse
-
-• `Const` **$ResourceDeletedResponse**: `Object`
-
-#### Type declaration
-
-| Name | Type |
-| :------ | :------ |
-| `properties` | \{ `deleted_at`: \{ `format`: ``"date-time"`` = "date-time"; `isRequired`: ``true`` = true; `type`: ``"string"`` = "string" } ; `id`: \{ `format`: ``"uuid"`` = "uuid"; `isRequired`: ``true`` = true; `type`: ``"string"`` = "string" } ; `jobs`: \{ `contains`: \{ `format`: ``"uuid"`` = "uuid"; `type`: ``"string"`` = "string" } ; `type`: ``"array"`` = "array" } } |
-| `properties.deleted_at` | \{ `format`: ``"date-time"`` = "date-time"; `isRequired`: ``true`` = true; `type`: ``"string"`` = "string" } |
-| `properties.deleted_at.format` | ``"date-time"`` |
-| `properties.deleted_at.isRequired` | ``true`` |
-| `properties.deleted_at.type` | ``"string"`` |
-| `properties.id` | \{ `format`: ``"uuid"`` = "uuid"; `isRequired`: ``true`` = true; `type`: ``"string"`` = "string" } |
-| `properties.id.format` | ``"uuid"`` |
-| `properties.id.isRequired` | ``true`` |
-| `properties.id.type` | ``"string"`` |
-| `properties.jobs` | \{ `contains`: \{ `format`: ``"uuid"`` = "uuid"; `type`: ``"string"`` = "string" } ; `type`: ``"array"`` = "array" } |
-| `properties.jobs.contains` | \{ `format`: ``"uuid"`` = "uuid"; `type`: ``"string"`` = "string" } |
-| `properties.jobs.contains.format` | ``"uuid"`` |
-| `properties.jobs.contains.type` | ``"string"`` |
-| `properties.jobs.type` | ``"array"`` |
-
-#### Defined in
-
-[src/api/schemas/$ResourceDeletedResponse.ts:5](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/schemas/$ResourceDeletedResponse.ts#L5)
-
-___
-
-### $ResourceUpdatedResponse
-
-• `Const` **$ResourceUpdatedResponse**: `Object`
-
-#### Type declaration
-
-| Name | Type |
-| :------ | :------ |
-| `properties` | \{ `id`: \{ `format`: ``"uuid"`` = "uuid"; `isRequired`: ``true`` = true; `type`: ``"string"`` = "string" } ; `jobs`: \{ `contains`: \{ `format`: ``"uuid"`` = "uuid"; `type`: ``"string"`` = "string" } ; `type`: ``"array"`` = "array" } ; `updated_at`: \{ `format`: ``"date-time"`` = "date-time"; `isRequired`: ``true`` = true; `type`: ``"string"`` = "string" } } |
-| `properties.id` | \{ `format`: ``"uuid"`` = "uuid"; `isRequired`: ``true`` = true; `type`: ``"string"`` = "string" } |
-| `properties.id.format` | ``"uuid"`` |
-| `properties.id.isRequired` | ``true`` |
-| `properties.id.type` | ``"string"`` |
-| `properties.jobs` | \{ `contains`: \{ `format`: ``"uuid"`` = "uuid"; `type`: ``"string"`` = "string" } ; `type`: ``"array"`` = "array" } |
-| `properties.jobs.contains` | \{ `format`: ``"uuid"`` = "uuid"; `type`: ``"string"`` = "string" } |
-| `properties.jobs.contains.format` | ``"uuid"`` |
-| `properties.jobs.contains.type` | ``"string"`` |
-| `properties.jobs.type` | ``"array"`` |
-| `properties.updated_at` | \{ `format`: ``"date-time"`` = "date-time"; `isRequired`: ``true`` = true; `type`: ``"string"`` = "string" } |
-| `properties.updated_at.format` | ``"date-time"`` |
-| `properties.updated_at.isRequired` | ``true`` |
-| `properties.updated_at.type` | ``"string"`` |
-
-#### Defined in
-
-[src/api/schemas/$ResourceUpdatedResponse.ts:5](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/schemas/$ResourceUpdatedResponse.ts#L5)
-
-___
-
-### $Session
-
-• `Const` **$Session**: `Object`
-
-#### Type declaration
-
-| Name | Type |
-| :------ | :------ |
-| `properties` | \{ `agent_id`: \{ `description`: ``"Agent ID of agent associated with this session"`` ; `format`: ``"uuid"`` = "uuid"; `isRequired`: ``true`` = true; `type`: ``"string"`` = "string" } ; `context_overflow`: \{ `description`: ``"Action to start on context window overflow"`` ; `type`: ``"string"`` = "string" } ; `created_at`: \{ `description`: ``"Session created at (RFC-3339 format)"`` ; `format`: ``"date-time"`` = "date-time"; `type`: ``"string"`` = "string" } ; `id`: \{ `description`: ``"Session id (UUID)"`` ; `format`: ``"uuid"`` = "uuid"; `isRequired`: ``true`` = true; `type`: ``"string"`` = "string" } ; `metadata`: \{ `description`: ``"Optional metadata"`` ; `properties`: {} = \{} } ; `render_templates`: \{ `description`: ``"Render system and assistant message content as jinja templates"`` ; `type`: ``"boolean"`` = "boolean" } ; `situation`: \{ `description`: ``"A specific situation that sets the background for this session"`` ; `type`: ``"string"`` = "string" } ; `summary`: \{ `description`: ``"(null at the beginning) - generated automatically after every interaction"`` ; `type`: ``"string"`` = "string" } ; `token_budget`: \{ `description`: ``"Threshold value for the adaptive context functionality"`` ; `type`: ``"number"`` = "number" } ; `updated_at`: \{ `description`: ``"Session updated at (RFC-3339 format)"`` ; `format`: ``"date-time"`` = "date-time"; `type`: ``"string"`` = "string" } ; `user_id`: \{ `description`: ``"User ID of user associated with this session"`` ; `format`: ``"uuid"`` = "uuid"; `type`: ``"string"`` = "string" } } |
-| `properties.agent_id` | \{ `description`: ``"Agent ID of agent associated with this session"`` ; `format`: ``"uuid"`` = "uuid"; `isRequired`: ``true`` = true; `type`: ``"string"`` = "string" } |
-| `properties.agent_id.description` | ``"Agent ID of agent associated with this session"`` |
-| `properties.agent_id.format` | ``"uuid"`` |
-| `properties.agent_id.isRequired` | ``true`` |
-| `properties.agent_id.type` | ``"string"`` |
-| `properties.context_overflow` | \{ `description`: ``"Action to start on context window overflow"`` ; `type`: ``"string"`` = "string" } |
-| `properties.context_overflow.description` | ``"Action to start on context window overflow"`` |
-| `properties.context_overflow.type` | ``"string"`` |
-| `properties.created_at` | \{ `description`: ``"Session created at (RFC-3339 format)"`` ; `format`: ``"date-time"`` = "date-time"; `type`: ``"string"`` = "string" } |
-| `properties.created_at.description` | ``"Session created at (RFC-3339 format)"`` |
-| `properties.created_at.format` | ``"date-time"`` |
-| `properties.created_at.type` | ``"string"`` |
-| `properties.id` | \{ `description`: ``"Session id (UUID)"`` ; `format`: ``"uuid"`` = "uuid"; `isRequired`: ``true`` = true; `type`: ``"string"`` = "string" } |
-| `properties.id.description` | ``"Session id (UUID)"`` |
-| `properties.id.format` | ``"uuid"`` |
-| `properties.id.isRequired` | ``true`` |
-| `properties.id.type` | ``"string"`` |
-| `properties.metadata` | \{ `description`: ``"Optional metadata"`` ; `properties`: {} = \{} } |
-| `properties.metadata.description` | ``"Optional metadata"`` |
-| `properties.metadata.properties` | {} |
-| `properties.render_templates` | \{ `description`: ``"Render system and assistant message content as jinja templates"`` ; `type`: ``"boolean"`` = "boolean" } |
-| `properties.render_templates.description` | ``"Render system and assistant message content as jinja templates"`` |
-| `properties.render_templates.type` | ``"boolean"`` |
-| `properties.situation` | \{ `description`: ``"A specific situation that sets the background for this session"`` ; `type`: ``"string"`` = "string" } |
-| `properties.situation.description` | ``"A specific situation that sets the background for this session"`` |
-| `properties.situation.type` | ``"string"`` |
-| `properties.summary` | \{ `description`: ``"(null at the beginning) - generated automatically after every interaction"`` ; `type`: ``"string"`` = "string" } |
-| `properties.summary.description` | ``"(null at the beginning) - generated automatically after every interaction"`` |
-| `properties.summary.type` | ``"string"`` |
-| `properties.token_budget` | \{ `description`: ``"Threshold value for the adaptive context functionality"`` ; `type`: ``"number"`` = "number" } |
-| `properties.token_budget.description` | ``"Threshold value for the adaptive context functionality"`` |
-| `properties.token_budget.type` | ``"number"`` |
-| `properties.updated_at` | \{ `description`: ``"Session updated at (RFC-3339 format)"`` ; `format`: ``"date-time"`` = "date-time"; `type`: ``"string"`` = "string" } |
-| `properties.updated_at.description` | ``"Session updated at (RFC-3339 format)"`` |
-| `properties.updated_at.format` | ``"date-time"`` |
-| `properties.updated_at.type` | ``"string"`` |
-| `properties.user_id` | \{ `description`: ``"User ID of user associated with this session"`` ; `format`: ``"uuid"`` = "uuid"; `type`: ``"string"`` = "string" } |
-| `properties.user_id.description` | ``"User ID of user associated with this session"`` |
-| `properties.user_id.format` | ``"uuid"`` |
-| `properties.user_id.type` | ``"string"`` |
-
-#### Defined in
-
-[src/api/schemas/$Session.ts:5](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/schemas/$Session.ts#L5)
-
-___
-
-### $Suggestion
-
-• `Const` **$Suggestion**: `Object`
-
-#### Type declaration
-
-| Name | Type |
-| :------ | :------ |
-| `properties` | \{ `content`: \{ `description`: ``"The content of the suggestion"`` ; `isRequired`: ``true`` = true; `type`: ``"string"`` = "string" } ; `created_at`: \{ `description`: ``"Suggestion created at (RFC-3339 format)"`` ; `format`: ``"date-time"`` = "date-time"; `type`: ``"string"`` = "string" } ; `message_id`: \{ `description`: ``"The message that produced it"`` ; `format`: ``"uuid"`` = "uuid"; `isRequired`: ``true`` = true; `type`: ``"string"`` = "string" } ; `session_id`: \{ `description`: ``"Session this suggestion belongs to"`` ; `format`: ``"uuid"`` = "uuid"; `isRequired`: ``true`` = true; `type`: ``"string"`` = "string" } ; `target`: \{ `isRequired`: ``true`` = true; `type`: ``"Enum"`` = "Enum" } } |
-| `properties.content` | \{ `description`: ``"The content of the suggestion"`` ; `isRequired`: ``true`` = true; `type`: ``"string"`` = "string" } |
-| `properties.content.description` | ``"The content of the suggestion"`` |
-| `properties.content.isRequired` | ``true`` |
-| `properties.content.type` | ``"string"`` |
-| `properties.created_at` | \{ `description`: ``"Suggestion created at (RFC-3339 format)"`` ; `format`: ``"date-time"`` = "date-time"; `type`: ``"string"`` = "string" } |
-| `properties.created_at.description` | ``"Suggestion created at (RFC-3339 format)"`` |
-| `properties.created_at.format` | ``"date-time"`` |
-| `properties.created_at.type` | ``"string"`` |
-| `properties.message_id` | \{ `description`: ``"The message that produced it"`` ; `format`: ``"uuid"`` = "uuid"; `isRequired`: ``true`` = true; `type`: ``"string"`` = "string" } |
-| `properties.message_id.description` | ``"The message that produced it"`` |
-| `properties.message_id.format` | ``"uuid"`` |
-| `properties.message_id.isRequired` | ``true`` |
-| `properties.message_id.type` | ``"string"`` |
-| `properties.session_id` | \{ `description`: ``"Session this suggestion belongs to"`` ; `format`: ``"uuid"`` = "uuid"; `isRequired`: ``true`` = true; `type`: ``"string"`` = "string" } |
-| `properties.session_id.description` | ``"Session this suggestion belongs to"`` |
-| `properties.session_id.format` | ``"uuid"`` |
-| `properties.session_id.isRequired` | ``true`` |
-| `properties.session_id.type` | ``"string"`` |
-| `properties.target` | \{ `isRequired`: ``true`` = true; `type`: ``"Enum"`` = "Enum" } |
-| `properties.target.isRequired` | ``true`` |
-| `properties.target.type` | ``"Enum"`` |
-
-#### Defined in
-
-[src/api/schemas/$Suggestion.ts:5](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/schemas/$Suggestion.ts#L5)
-
-___
-
-### $Tool
-
-• `Const` **$Tool**: `Object`
-
-#### Type declaration
-
-| Name | Type |
-| :------ | :------ |
-| `properties` | \{ `function`: \{ `contains`: readonly [\{ `type`: ``"FunctionDef"`` = "FunctionDef" }] ; `description`: ``"Function definition and parameters"`` ; `isRequired`: ``true`` = true; `type`: ``"one-of"`` = "one-of" } ; `id`: \{ `description`: ``"Tool ID"`` ; `format`: ``"uuid"`` = "uuid"; `isRequired`: ``true`` = true; `type`: ``"string"`` = "string" } ; `type`: \{ `isRequired`: ``true`` = true; `type`: ``"Enum"`` = "Enum" } } |
-| `properties.function` | \{ `contains`: readonly [\{ `type`: ``"FunctionDef"`` = "FunctionDef" }] ; `description`: ``"Function definition and parameters"`` ; `isRequired`: ``true`` = true; `type`: ``"one-of"`` = "one-of" } |
-| `properties.function.contains` | readonly [\{ `type`: ``"FunctionDef"`` = "FunctionDef" }] |
-| `properties.function.description` | ``"Function definition and parameters"`` |
-| `properties.function.isRequired` | ``true`` |
-| `properties.function.type` | ``"one-of"`` |
-| `properties.id` | \{ `description`: ``"Tool ID"`` ; `format`: ``"uuid"`` = "uuid"; `isRequired`: ``true`` = true; `type`: ``"string"`` = "string" } |
-| `properties.id.description` | ``"Tool ID"`` |
-| `properties.id.format` | ``"uuid"`` |
-| `properties.id.isRequired` | ``true`` |
-| `properties.id.type` | ``"string"`` |
-| `properties.type` | \{ `isRequired`: ``true`` = true; `type`: ``"Enum"`` = "Enum" } |
-| `properties.type.isRequired` | ``true`` |
-| `properties.type.type` | ``"Enum"`` |
-
-#### Defined in
-
-[src/api/schemas/$Tool.ts:5](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/schemas/$Tool.ts#L5)
-
-___
-
-### $ToolChoiceOption
-
-• `Const` **$ToolChoiceOption**: `Object`
-
-#### Type declaration
-
-| Name | Type |
-| :------ | :------ |
-| `contains` | readonly [\{ `type`: ``"Enum"`` = "Enum" }, \{ `type`: ``"NamedToolChoice"`` = "NamedToolChoice" }] |
-| `description` | ``"Controls which (if any) function is called by the model.\n `none` means the model will not call a function and instead generates a message.\n `auto` means the model can pick between generating a message or calling a function.\n Specifying a particular function via `{\"type: \"function\", \"function\": {\"name\": \"my_function\"}}` forces the model to call that function.\n `none` is the default when no functions are present. `auto` is the default if functions are present.\n "`` |
-| `type` | ``"one-of"`` |
-
-#### Defined in
-
-[src/api/schemas/$ToolChoiceOption.ts:5](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/schemas/$ToolChoiceOption.ts#L5)
-
-___
-
-### $UpdateAgentRequest
-
-• `Const` **$UpdateAgentRequest**: `Object`
-
-#### Type declaration
-
-| Name | Type |
-| :------ | :------ |
-| `description` | ``"A valid request payload for updating an agent"`` |
-| `properties` | \{ `about`: \{ `description`: ``"About the agent"`` ; `isRequired`: ``true`` = true; `type`: ``"string"`` = "string" } ; `default_settings`: \{ `description`: ``"Default model settings to start every session with"`` ; `type`: ``"AgentDefaultSettings"`` = "AgentDefaultSettings" } ; `instructions`: \{ `contains`: readonly [\{ `type`: ``"string"`` = "string" }, \{ `contains`: \{ `type`: ``"string"`` = "string" } ; `type`: ``"array"`` = "array" }] ; `description`: ``"Instructions for the agent"`` ; `type`: ``"one-of"`` = "one-of" } ; `metadata`: \{ `description`: ``"Optional metadata"`` ; `properties`: {} = \{} } ; `model`: \{ `description`: ``"Name of the model that the agent is supposed to use"`` ; `type`: ``"string"`` = "string" } ; `name`: \{ `description`: ``"Name of the agent"`` ; `isRequired`: ``true`` = true; `type`: ``"string"`` = "string" } } |
-| `properties.about` | \{ `description`: ``"About the agent"`` ; `isRequired`: ``true`` = true; `type`: ``"string"`` = "string" } |
-| `properties.about.description` | ``"About the agent"`` |
-| `properties.about.isRequired` | ``true`` |
-| `properties.about.type` | ``"string"`` |
-| `properties.default_settings` | \{ `description`: ``"Default model settings to start every session with"`` ; `type`: ``"AgentDefaultSettings"`` = "AgentDefaultSettings" } |
-| `properties.default_settings.description` | ``"Default model settings to start every session with"`` |
-| `properties.default_settings.type` | ``"AgentDefaultSettings"`` |
-| `properties.instructions` | \{ `contains`: readonly [\{ `type`: ``"string"`` = "string" }, \{ `contains`: \{ `type`: ``"string"`` = "string" } ; `type`: ``"array"`` = "array" }] ; `description`: ``"Instructions for the agent"`` ; `type`: ``"one-of"`` = "one-of" } |
-| `properties.instructions.contains` | readonly [\{ `type`: ``"string"`` = "string" }, \{ `contains`: \{ `type`: ``"string"`` = "string" } ; `type`: ``"array"`` = "array" }] |
-| `properties.instructions.description` | ``"Instructions for the agent"`` |
-| `properties.instructions.type` | ``"one-of"`` |
-| `properties.metadata` | \{ `description`: ``"Optional metadata"`` ; `properties`: {} = \{} } |
-| `properties.metadata.description` | ``"Optional metadata"`` |
-| `properties.metadata.properties` | {} |
-| `properties.model` | \{ `description`: ``"Name of the model that the agent is supposed to use"`` ; `type`: ``"string"`` = "string" } |
-| `properties.model.description` | ``"Name of the model that the agent is supposed to use"`` |
-| `properties.model.type` | ``"string"`` |
-| `properties.name` | \{ `description`: ``"Name of the agent"`` ; `isRequired`: ``true`` = true; `type`: ``"string"`` = "string" } |
-| `properties.name.description` | ``"Name of the agent"`` |
-| `properties.name.isRequired` | ``true`` |
-| `properties.name.type` | ``"string"`` |
-
-#### Defined in
-
-[src/api/schemas/$UpdateAgentRequest.ts:5](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/schemas/$UpdateAgentRequest.ts#L5)
-
-___
-
-### $UpdateSessionRequest
-
-• `Const` **$UpdateSessionRequest**: `Object`
-
-#### Type declaration
-
-| Name | Type |
-| :------ | :------ |
-| `description` | ``"A valid request payload for updating a session"`` |
-| `properties` | \{ `context_overflow`: \{ `description`: ``"Action to start on context window overflow"`` ; `type`: ``"string"`` = "string" } ; `metadata`: \{ `description`: ``"Optional metadata"`` ; `properties`: {} = \{} } ; `situation`: \{ `description`: ``"Updated situation for this session"`` ; `isRequired`: ``true`` = true; `type`: ``"string"`` = "string" } ; `token_budget`: \{ `description`: ``"Threshold value for the adaptive context functionality"`` ; `type`: ``"number"`` = "number" } } |
-| `properties.context_overflow` | \{ `description`: ``"Action to start on context window overflow"`` ; `type`: ``"string"`` = "string" } |
-| `properties.context_overflow.description` | ``"Action to start on context window overflow"`` |
-| `properties.context_overflow.type` | ``"string"`` |
-| `properties.metadata` | \{ `description`: ``"Optional metadata"`` ; `properties`: {} = \{} } |
-| `properties.metadata.description` | ``"Optional metadata"`` |
-| `properties.metadata.properties` | {} |
-| `properties.situation` | \{ `description`: ``"Updated situation for this session"`` ; `isRequired`: ``true`` = true; `type`: ``"string"`` = "string" } |
-| `properties.situation.description` | ``"Updated situation for this session"`` |
-| `properties.situation.isRequired` | ``true`` |
-| `properties.situation.type` | ``"string"`` |
-| `properties.token_budget` | \{ `description`: ``"Threshold value for the adaptive context functionality"`` ; `type`: ``"number"`` = "number" } |
-| `properties.token_budget.description` | ``"Threshold value for the adaptive context functionality"`` |
-| `properties.token_budget.type` | ``"number"`` |
-
-#### Defined in
-
-[src/api/schemas/$UpdateSessionRequest.ts:5](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/schemas/$UpdateSessionRequest.ts#L5)
-
-___
-
-### $UpdateToolRequest
-
-• `Const` **$UpdateToolRequest**: `Object`
-
-#### Type declaration
-
-| Name | Type |
-| :------ | :------ |
-| `properties` | \{ `function`: \{ `description`: ``"Function definition and parameters"`` ; `isRequired`: ``true`` = true; `type`: ``"FunctionDef"`` = "FunctionDef" } } |
-| `properties.function` | \{ `description`: ``"Function definition and parameters"`` ; `isRequired`: ``true`` = true; `type`: ``"FunctionDef"`` = "FunctionDef" } |
-| `properties.function.description` | ``"Function definition and parameters"`` |
-| `properties.function.isRequired` | ``true`` |
-| `properties.function.type` | ``"FunctionDef"`` |
-
-#### Defined in
-
-[src/api/schemas/$UpdateToolRequest.ts:5](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/schemas/$UpdateToolRequest.ts#L5)
-
-___
-
-### $UpdateUserRequest
-
-• `Const` **$UpdateUserRequest**: `Object`
-
-#### Type declaration
-
-| Name | Type |
-| :------ | :------ |
-| `description` | ``"A valid request payload for updating a user"`` |
-| `properties` | \{ `about`: \{ `description`: ``"About the user"`` ; `isRequired`: ``true`` = true; `type`: ``"string"`` = "string" } ; `metadata`: \{ `description`: ``"Optional metadata"`` ; `properties`: {} = \{} } ; `name`: \{ `description`: ``"Name of the user"`` ; `isRequired`: ``true`` = true; `type`: ``"string"`` = "string" } } |
-| `properties.about` | \{ `description`: ``"About the user"`` ; `isRequired`: ``true`` = true; `type`: ``"string"`` = "string" } |
-| `properties.about.description` | ``"About the user"`` |
-| `properties.about.isRequired` | ``true`` |
-| `properties.about.type` | ``"string"`` |
-| `properties.metadata` | \{ `description`: ``"Optional metadata"`` ; `properties`: {} = \{} } |
-| `properties.metadata.description` | ``"Optional metadata"`` |
-| `properties.metadata.properties` | {} |
-| `properties.name` | \{ `description`: ``"Name of the user"`` ; `isRequired`: ``true`` = true; `type`: ``"string"`` = "string" } |
-| `properties.name.description` | ``"Name of the user"`` |
-| `properties.name.isRequired` | ``true`` |
-| `properties.name.type` | ``"string"`` |
-
-#### Defined in
-
-[src/api/schemas/$UpdateUserRequest.ts:5](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/schemas/$UpdateUserRequest.ts#L5)
-
-___
-
-### $User
-
-• `Const` **$User**: `Object`
-
-#### Type declaration
-
-| Name | Type |
-| :------ | :------ |
-| `properties` | \{ `about`: \{ `description`: ``"About the user"`` ; `type`: ``"string"`` = "string" } ; `created_at`: \{ `description`: ``"User created at (RFC-3339 format)"`` ; `format`: ``"date-time"`` = "date-time"; `type`: ``"string"`` = "string" } ; `id`: \{ `description`: ``"User id (UUID)"`` ; `format`: ``"uuid"`` = "uuid"; `isRequired`: ``true`` = true; `type`: ``"string"`` = "string" } ; `metadata`: \{ `description`: ``"(Optional) metadata"`` ; `properties`: {} = \{} } ; `name`: \{ `description`: ``"Name of the user"`` ; `type`: ``"string"`` = "string" } ; `updated_at`: \{ `description`: ``"User updated at (RFC-3339 format)"`` ; `format`: ``"date-time"`` = "date-time"; `type`: ``"string"`` = "string" } } |
-| `properties.about` | \{ `description`: ``"About the user"`` ; `type`: ``"string"`` = "string" } |
-| `properties.about.description` | ``"About the user"`` |
-| `properties.about.type` | ``"string"`` |
-| `properties.created_at` | \{ `description`: ``"User created at (RFC-3339 format)"`` ; `format`: ``"date-time"`` = "date-time"; `type`: ``"string"`` = "string" } |
-| `properties.created_at.description` | ``"User created at (RFC-3339 format)"`` |
-| `properties.created_at.format` | ``"date-time"`` |
-| `properties.created_at.type` | ``"string"`` |
-| `properties.id` | \{ `description`: ``"User id (UUID)"`` ; `format`: ``"uuid"`` = "uuid"; `isRequired`: ``true`` = true; `type`: ``"string"`` = "string" } |
-| `properties.id.description` | ``"User id (UUID)"`` |
-| `properties.id.format` | ``"uuid"`` |
-| `properties.id.isRequired` | ``true`` |
-| `properties.id.type` | ``"string"`` |
-| `properties.metadata` | \{ `description`: ``"(Optional) metadata"`` ; `properties`: {} = \{} } |
-| `properties.metadata.description` | ``"(Optional) metadata"`` |
-| `properties.metadata.properties` | {} |
-| `properties.name` | \{ `description`: ``"Name of the user"`` ; `type`: ``"string"`` = "string" } |
-| `properties.name.description` | ``"Name of the user"`` |
-| `properties.name.type` | ``"string"`` |
-| `properties.updated_at` | \{ `description`: ``"User updated at (RFC-3339 format)"`` ; `format`: ``"date-time"`` = "date-time"; `type`: ``"string"`` = "string" } |
-| `properties.updated_at.description` | ``"User updated at (RFC-3339 format)"`` |
-| `properties.updated_at.format` | ``"date-time"`` |
-| `properties.updated_at.type` | ``"string"`` |
-
-#### Defined in
-
-[src/api/schemas/$User.ts:5](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/schemas/$User.ts#L5)
-
-___
-
-### $agent\_id
-
-• `Const` **$agent\_id**: `Object`
-
-#### Type declaration
-
-| Name | Type |
-| :------ | :------ |
-| `format` | ``"uuid"`` |
-| `type` | ``"string"`` |
-
-#### Defined in
-
-[src/api/schemas/$agent_id.ts:5](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/schemas/$agent_id.ts#L5)
-
-___
-
-### $doc\_id
-
-• `Const` **$doc\_id**: `Object`
-
-#### Type declaration
-
-| Name | Type |
-| :------ | :------ |
-| `format` | ``"uuid"`` |
-| `type` | ``"string"`` |
-
-#### Defined in
-
-[src/api/schemas/$doc_id.ts:5](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/schemas/$doc_id.ts#L5)
-
-___
-
-### $job\_id
-
-• `Const` **$job\_id**: `Object`
-
-#### Type declaration
-
-| Name | Type |
-| :------ | :------ |
-| `format` | ``"uuid"`` |
-| `type` | ``"string"`` |
-
-#### Defined in
-
-[src/api/schemas/$job_id.ts:5](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/schemas/$job_id.ts#L5)
-
-___
-
-### $memory\_id
-
-• `Const` **$memory\_id**: `Object`
-
-#### Type declaration
-
-| Name | Type |
-| :------ | :------ |
-| `format` | ``"uuid"`` |
-| `type` | ``"string"`` |
-
-#### Defined in
-
-[src/api/schemas/$memory_id.ts:5](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/schemas/$memory_id.ts#L5)
-
-___
-
-### $message\_id
-
-• `Const` **$message\_id**: `Object`
-
-#### Type declaration
-
-| Name | Type |
-| :------ | :------ |
-| `format` | ``"uuid"`` |
-| `type` | ``"string"`` |
-
-#### Defined in
-
-[src/api/schemas/$message_id.ts:5](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/schemas/$message_id.ts#L5)
-
-___
-
-### $session\_id
-
-• `Const` **$session\_id**: `Object`
-
-#### Type declaration
-
-| Name | Type |
-| :------ | :------ |
-| `format` | ``"uuid"`` |
-| `type` | ``"string"`` |
-
-#### Defined in
-
-[src/api/schemas/$session_id.ts:5](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/schemas/$session_id.ts#L5)
-
-___
-
-### $tool\_id
-
-• `Const` **$tool\_id**: `Object`
-
-#### Type declaration
-
-| Name | Type |
-| :------ | :------ |
-| `format` | ``"uuid"`` |
-| `type` | ``"string"`` |
-
-#### Defined in
-
-[src/api/schemas/$tool_id.ts:5](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/schemas/$tool_id.ts#L5)
-
-___
-
-### $user\_id
-
-• `Const` **$user\_id**: `Object`
-
-#### Type declaration
-
-| Name | Type |
-| :------ | :------ |
-| `format` | ``"uuid"`` |
-| `type` | ``"string"`` |
-
-#### Defined in
-
-[src/api/schemas/$user_id.ts:5](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/schemas/$user_id.ts#L5)
-
-___
-
-### OpenAPI
-
-• `Const` **OpenAPI**: [`OpenAPIConfig`](api.md#openapiconfig)
-
-#### Defined in
-
-[src/api/core/OpenAPI.ts:22](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/api/core/OpenAPI.ts#L22)
diff --git a/docs/js-sdk-docs/modules/api_JulepApiClient.md b/docs/js-sdk-docs/modules/api_JulepApiClient.md
deleted file mode 100644
index 07f3cc365..000000000
--- a/docs/js-sdk-docs/modules/api_JulepApiClient.md
+++ /dev/null
@@ -1,9 +0,0 @@
-[@julep/sdk](../README.md) / [Modules](../modules.md) / api/JulepApiClient
-
-# Module: api/JulepApiClient
-
-## Table of contents
-
-### Classes
-
-- [JulepApiClient](../classes/api_JulepApiClient.JulepApiClient.md)
diff --git a/docs/js-sdk-docs/modules/managers_agent.md b/docs/js-sdk-docs/modules/managers_agent.md
deleted file mode 100644
index 6f5ea9677..000000000
--- a/docs/js-sdk-docs/modules/managers_agent.md
+++ /dev/null
@@ -1,9 +0,0 @@
-[@julep/sdk](../README.md) / [Modules](../modules.md) / managers/agent
-
-# Module: managers/agent
-
-## Table of contents
-
-### Classes
-
-- [AgentsManager](../classes/managers_agent.AgentsManager.md)
diff --git a/docs/js-sdk-docs/modules/managers_base.md b/docs/js-sdk-docs/modules/managers_base.md
deleted file mode 100644
index fd0e930a7..000000000
--- a/docs/js-sdk-docs/modules/managers_base.md
+++ /dev/null
@@ -1,9 +0,0 @@
-[@julep/sdk](../README.md) / [Modules](../modules.md) / managers/base
-
-# Module: managers/base
-
-## Table of contents
-
-### Classes
-
-- [BaseManager](../classes/managers_base.BaseManager.md)
diff --git a/docs/js-sdk-docs/modules/managers_doc.md b/docs/js-sdk-docs/modules/managers_doc.md
deleted file mode 100644
index b7a31fa3a..000000000
--- a/docs/js-sdk-docs/modules/managers_doc.md
+++ /dev/null
@@ -1,9 +0,0 @@
-[@julep/sdk](../README.md) / [Modules](../modules.md) / managers/doc
-
-# Module: managers/doc
-
-## Table of contents
-
-### Classes
-
-- [DocsManager](../classes/managers_doc.DocsManager.md)
diff --git a/docs/js-sdk-docs/modules/managers_memory.md b/docs/js-sdk-docs/modules/managers_memory.md
deleted file mode 100644
index 720bd4e70..000000000
--- a/docs/js-sdk-docs/modules/managers_memory.md
+++ /dev/null
@@ -1,9 +0,0 @@
-[@julep/sdk](../README.md) / [Modules](../modules.md) / managers/memory
-
-# Module: managers/memory
-
-## Table of contents
-
-### Classes
-
-- [MemoriesManager](../classes/managers_memory.MemoriesManager.md)
diff --git a/docs/js-sdk-docs/modules/managers_session.md b/docs/js-sdk-docs/modules/managers_session.md
deleted file mode 100644
index 38c9d75ef..000000000
--- a/docs/js-sdk-docs/modules/managers_session.md
+++ /dev/null
@@ -1,13 +0,0 @@
-[@julep/sdk](../README.md) / [Modules](../modules.md) / managers/session
-
-# Module: managers/session
-
-## Table of contents
-
-### Classes
-
-- [SessionsManager](../classes/managers_session.SessionsManager.md)
-
-### Interfaces
-
-- [CreateSessionPayload](../interfaces/managers_session.CreateSessionPayload.md)
diff --git a/docs/js-sdk-docs/modules/managers_tool.md b/docs/js-sdk-docs/modules/managers_tool.md
deleted file mode 100644
index 1c425999c..000000000
--- a/docs/js-sdk-docs/modules/managers_tool.md
+++ /dev/null
@@ -1,9 +0,0 @@
-[@julep/sdk](../README.md) / [Modules](../modules.md) / managers/tool
-
-# Module: managers/tool
-
-## Table of contents
-
-### Classes
-
-- [ToolsManager](../classes/managers_tool.ToolsManager.md)
diff --git a/docs/js-sdk-docs/modules/managers_user.md b/docs/js-sdk-docs/modules/managers_user.md
deleted file mode 100644
index d0d6bffbf..000000000
--- a/docs/js-sdk-docs/modules/managers_user.md
+++ /dev/null
@@ -1,9 +0,0 @@
-[@julep/sdk](../README.md) / [Modules](../modules.md) / managers/user
-
-# Module: managers/user
-
-## Table of contents
-
-### Classes
-
-- [UsersManager](../classes/managers_user.UsersManager.md)
diff --git a/docs/js-sdk-docs/modules/utils_invariant.md b/docs/js-sdk-docs/modules/utils_invariant.md
deleted file mode 100644
index 47dc67d54..000000000
--- a/docs/js-sdk-docs/modules/utils_invariant.md
+++ /dev/null
@@ -1,32 +0,0 @@
-[@julep/sdk](../README.md) / [Modules](../modules.md) / utils/invariant
-
-# Module: utils/invariant
-
-## Table of contents
-
-### Functions
-
-- [invariant](utils_invariant.md#invariant)
-
-## Functions
-
-### invariant
-
-▸ **invariant**(`condition`, `message?`): `void`
-
-Ensures that a condition is met, throwing a custom error message if not.
-
-#### Parameters
-
-| Name | Type | Default value | Description |
-| :------ | :------ | :------ | :------ |
-| `condition` | `any` | `undefined` | The condition to test. If falsy, an error is thrown. |
-| `message` | `string` | `"Invariant Violation"` | Optional. The error message to throw if the condition is not met. Defaults to "Invariant Violation". |
-
-#### Returns
-
-`void`
-
-#### Defined in
-
-[src/utils/invariant.ts:6](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/utils/invariant.ts#L6)
diff --git a/docs/js-sdk-docs/modules/utils_isValidUuid4.md b/docs/js-sdk-docs/modules/utils_isValidUuid4.md
deleted file mode 100644
index ea1ea5c8d..000000000
--- a/docs/js-sdk-docs/modules/utils_isValidUuid4.md
+++ /dev/null
@@ -1,36 +0,0 @@
-[@julep/sdk](../README.md) / [Modules](../modules.md) / utils/isValidUuid4
-
-# Module: utils/isValidUuid4
-
-## Table of contents
-
-### Functions
-
-- [isValidUuid4](utils_isValidUuid4.md#isvaliduuid4)
-
-## Functions
-
-### isValidUuid4
-
-▸ **isValidUuid4**(`uuidToTest`): `boolean`
-
-Validates if the input string is a valid UUID v4.
-This function performs a two-step validation process:
-1. Validates the format of the UUID using `uuidValidate`.
-2. Checks that the version of the UUID is 4 using `uuidVersion`.
-
-#### Parameters
-
-| Name | Type | Description |
-| :------ | :------ | :------ |
-| `uuidToTest` | `string` | The string to test for a valid UUID v4. |
-
-#### Returns
-
-`boolean`
-
-True if the input is a valid UUID v4, otherwise false.
-
-#### Defined in
-
-[src/utils/isValidUuid4.ts:11](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/utils/isValidUuid4.ts#L11)
diff --git a/docs/js-sdk-docs/modules/utils_openaiPatch.md b/docs/js-sdk-docs/modules/utils_openaiPatch.md
deleted file mode 100644
index adddee617..000000000
--- a/docs/js-sdk-docs/modules/utils_openaiPatch.md
+++ /dev/null
@@ -1,33 +0,0 @@
-[@julep/sdk](../README.md) / [Modules](../modules.md) / utils/openaiPatch
-
-# Module: utils/openaiPatch
-
-## Table of contents
-
-### Functions
-
-- [patchCreate](utils_openaiPatch.md#patchcreate)
-
-## Functions
-
-### patchCreate
-
-▸ **patchCreate**(`client`, `scope?`): `any`
-
-Patches the 'create' method of an OpenAI client instance to ensure a default model is used if none is specified.
-This is useful for enforcing a consistent model usage across different parts of the SDK.
-
-#### Parameters
-
-| Name | Type | Default value | Description |
-| :------ | :------ | :------ | :------ |
-| `client` | `any` | `undefined` | The OpenAI client instance to be patched. |
-| `scope` | `any` | `null` | Optional. The scope in which the original 'create' method is bound. Defaults to the client itself if not provided. |
-
-#### Returns
-
-`any`
-
-#### Defined in
-
-[src/utils/openaiPatch.ts:8](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/utils/openaiPatch.ts#L8)
diff --git a/docs/js-sdk-docs/modules/utils_requestConstructor.md b/docs/js-sdk-docs/modules/utils_requestConstructor.md
deleted file mode 100644
index a18bf52fe..000000000
--- a/docs/js-sdk-docs/modules/utils_requestConstructor.md
+++ /dev/null
@@ -1,9 +0,0 @@
-[@julep/sdk](../README.md) / [Modules](../modules.md) / utils/requestConstructor
-
-# Module: utils/requestConstructor
-
-## Table of contents
-
-### Classes
-
-- [CustomHttpRequest](../classes/utils_requestConstructor.CustomHttpRequest.md)
diff --git a/docs/js-sdk-docs/modules/utils_xor.md b/docs/js-sdk-docs/modules/utils_xor.md
deleted file mode 100644
index 7df656742..000000000
--- a/docs/js-sdk-docs/modules/utils_xor.md
+++ /dev/null
@@ -1,30 +0,0 @@
-[@julep/sdk](../README.md) / [Modules](../modules.md) / utils/xor
-
-# Module: utils/xor
-
-## Table of contents
-
-### Functions
-
-- [xor](utils_xor.md#xor)
-
-## Functions
-
-### xor
-
-▸ **xor**(`a`, `b`): `any`
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `a` | `any` |
-| `b` | `any` |
-
-#### Returns
-
-`any`
-
-#### Defined in
-
-[src/utils/xor.ts:1](https://github.com/julep-ai/julep/blob/1aacc650d71dfc8cc6e2993599c2493784d992ef/sdks/ts/src/utils/xor.ts#L1)
diff --git a/docs/julep-concepts.md b/docs/julep-concepts.md
index 14177343c..b6fc945d7 100644
--- a/docs/julep-concepts.md
+++ b/docs/julep-concepts.md
@@ -702,7 +702,7 @@ Remember to replace `YOUR_API_KEY`, `{agent_id}`, and `{tool_id}` with your actu
### Partial application of arguments to tools
-Often, it's necessary to _partial_ some arguments of a particular tool. You can do that by setting the `x-tool-parameters` field on the `metadata` of the required scope. For instance, say you have the following user-defined function tool:
+Often, it's necessary to _partial_ some arguments of a particular tool. You can do that by setting the `x-integration-args` field on the `metadata` of the required scope. For instance, say you have the following user-defined function tool:
```yaml
name: check_account_status
description: Get the account status for a customer
@@ -719,7 +719,7 @@ When chatting with a particular user, the `customer_id` field is expected to be
{
"metadata": {
...
- "x-tool-parameters": {
+ "x-integration-args": {
"function:check_account_status": {
"customer_id": 42
}
@@ -737,12 +737,12 @@ This follows the precedence order of `metadata` fields. For example, say you are
user:
id: 11
metadata:
- x-tool-parameters:
+ x-integration-args:
favorite: Emma Roberts
agent:
id: 22
metadata:
- x-tool-parameters:
+ x-integration-args:
favorite: Emma Watson
tools:
- type: function
@@ -752,7 +752,7 @@ agent:
session:
id: 123
metadata:
- x-tool-parameters:
+ x-integration-args:
favorite: Emma Stone
```
diff --git a/docs/python-sdk-docs/README.md b/docs/python-sdk-docs/README.md
deleted file mode 100644
index cc09eca06..000000000
--- a/docs/python-sdk-docs/README.md
+++ /dev/null
@@ -1,211 +0,0 @@
-# Julep Python SDK Index
-
-> Auto-generated documentation index.
-
-A full list of `Julep Python SDK` project modules.
-
-- [Julep](julep/index.md#julep)
- - [Julep Python Library](julep/api/index.md#julep-python-library)
- - [Client](julep/api/client.md#client)
- - [Core](julep/api/core/index.md#core)
- - [ApiError](julep/api/core/api_error.md#apierror)
- - [Client Wrapper](julep/api/core/client_wrapper.md#client-wrapper)
- - [Datetime Utils](julep/api/core/datetime_utils.md#datetime-utils)
- - [File](julep/api/core/file.md#file)
- - [HttpClient](julep/api/core/http_client.md#httpclient)
- - [Jsonable Encoder](julep/api/core/jsonable_encoder.md#jsonable-encoder)
- - [Pydantic Utilities](julep/api/core/pydantic_utilities.md#pydantic-utilities)
- - [Query Encoder](julep/api/core/query_encoder.md#query-encoder)
- - [Remove None From Dict](julep/api/core/remove_none_from_dict.md#remove-none-from-dict)
- - [RequestOptions](julep/api/core/request_options.md#requestoptions)
- - [Environment](julep/api/environment.md#environment)
- - [Types](julep/api/types/index.md#types)
- - [Agent Docs Route List Request Direction](julep/api/types/agent_docs_route_list_request_direction.md#agent-docs-route-list-request-direction)
- - [Agent Docs Route List Request Sort By](julep/api/types/agent_docs_route_list_request_sort_by.md#agent-docs-route-list-request-sort-by)
- - [AgentDocsRouteListResponse](julep/api/types/agent_docs_route_list_response.md#agentdocsroutelistresponse)
- - [Agent Tools Route List Request Direction](julep/api/types/agent_tools_route_list_request_direction.md#agent-tools-route-list-request-direction)
- - [Agent Tools Route List Request Sort By](julep/api/types/agent_tools_route_list_request_sort_by.md#agent-tools-route-list-request-sort-by)
- - [AgentToolsRouteListResponse](julep/api/types/agent_tools_route_list_response.md#agenttoolsroutelistresponse)
- - [AgentsAgent](julep/api/types/agents_agent.md#agentsagent)
- - [Agents Agent Instructions](julep/api/types/agents_agent_instructions.md#agents-agent-instructions)
- - [AgentsCreateAgentRequest](julep/api/types/agents_create_agent_request.md#agentscreateagentrequest)
- - [Agents Create Agent Request Instructions](julep/api/types/agents_create_agent_request_instructions.md#agents-create-agent-request-instructions)
- - [AgentsCreateOrUpdateAgentRequest](julep/api/types/agents_create_or_update_agent_request.md#agentscreateorupdateagentrequest)
- - [Agents Docs Search Route Search Request Body](julep/api/types/agents_docs_search_route_search_request_body.md#agents-docs-search-route-search-request-body)
- - [Agents Patch Agent Request Instructions](julep/api/types/agents_patch_agent_request_instructions.md#agents-patch-agent-request-instructions)
- - [Agents Route List Request Direction](julep/api/types/agents_route_list_request_direction.md#agents-route-list-request-direction)
- - [Agents Route List Request Sort By](julep/api/types/agents_route_list_request_sort_by.md#agents-route-list-request-sort-by)
- - [AgentsRouteListResponse](julep/api/types/agents_route_list_response.md#agentsroutelistresponse)
- - [AgentsUpdateAgentRequest](julep/api/types/agents_update_agent_request.md#agentsupdateagentrequest)
- - [Agents Update Agent Request Instructions](julep/api/types/agents_update_agent_request_instructions.md#agents-update-agent-request-instructions)
- - [ChatBaseChatOutput](julep/api/types/chat_base_chat_output.md#chatbasechatoutput)
- - [ChatBaseChatResponse](julep/api/types/chat_base_chat_response.md#chatbasechatresponse)
- - [ChatBaseTokenLogProb](julep/api/types/chat_base_token_log_prob.md#chatbasetokenlogprob)
- - [ChatChatInputData](julep/api/types/chat_chat_input_data.md#chatchatinputdata)
- - [Chat Chat Input Data Tool Choice](julep/api/types/chat_chat_input_data_tool_choice.md#chat-chat-input-data-tool-choice)
- - [ChatChatOutputChunk](julep/api/types/chat_chat_output_chunk.md#chatchatoutputchunk)
- - [ChatChatSettings](julep/api/types/chat_chat_settings.md#chatchatsettings)
- - [ChatChunkChatResponse](julep/api/types/chat_chunk_chat_response.md#chatchunkchatresponse)
- - [ChatCompetionUsage](julep/api/types/chat_competion_usage.md#chatcompetionusage)
- - [ChatCompletionResponseFormat](julep/api/types/chat_completion_response_format.md#chatcompletionresponseformat)
- - [Chat Completion Response Format Type](julep/api/types/chat_completion_response_format_type.md#chat-completion-response-format-type)
- - [ChatDefaultChatSettings](julep/api/types/chat_default_chat_settings.md#chatdefaultchatsettings)
- - [Chat Finish Reason](julep/api/types/chat_finish_reason.md#chat-finish-reason)
- - [ChatLogProbResponse](julep/api/types/chat_log_prob_response.md#chatlogprobresponse)
- - [ChatMessageChatResponse](julep/api/types/chat_message_chat_response.md#chatmessagechatresponse)
- - [Chat Message Chat Response Choices Item](julep/api/types/chat_message_chat_response_choices_item.md#chat-message-chat-response-choices-item)
- - [ChatMultipleChatOutput](julep/api/types/chat_multiple_chat_output.md#chatmultiplechatoutput)
- - [ChatOpenAiSettings](julep/api/types/chat_open_ai_settings.md#chatopenaisettings)
- - [Chat Route Generate Response](julep/api/types/chat_route_generate_response.md#chat-route-generate-response)
- - [ChatSingleChatOutput](julep/api/types/chat_single_chat_output.md#chatsinglechatoutput)
- - [ChatTokenLogProb](julep/api/types/chat_token_log_prob.md#chattokenlogprob)
- - [Common Identifier Safe Unicode](julep/api/types/common_identifier_safe_unicode.md#common-identifier-safe-unicode)
- - [Common Limit](julep/api/types/common_limit.md#common-limit)
- - [Common Logit Bias](julep/api/types/common_logit_bias.md#common-logit-bias)
- - [Common Offset](julep/api/types/common_offset.md#common-offset)
- - [Common Py Expression](julep/api/types/common_py_expression.md#common-py-expression)
- - [CommonResourceCreatedResponse](julep/api/types/common_resource_created_response.md#commonresourcecreatedresponse)
- - [CommonResourceDeletedResponse](julep/api/types/common_resource_deleted_response.md#commonresourcedeletedresponse)
- - [CommonResourceUpdatedResponse](julep/api/types/common_resource_updated_response.md#commonresourceupdatedresponse)
- - [Common Tool Ref](julep/api/types/common_tool_ref.md#common-tool-ref)
- - [Common Uuid](julep/api/types/common_uuid.md#common-uuid)
- - [Common Valid Python Identifier](julep/api/types/common_valid_python_identifier.md#common-valid-python-identifier)
- - [DocsBaseDocSearchRequest](julep/api/types/docs_base_doc_search_request.md#docsbasedocsearchrequest)
- - [DocsCreateDocRequest](julep/api/types/docs_create_doc_request.md#docscreatedocrequest)
- - [Docs Create Doc Request Content](julep/api/types/docs_create_doc_request_content.md#docs-create-doc-request-content)
- - [DocsDoc](julep/api/types/docs_doc.md#docsdoc)
- - [Docs Doc Content](julep/api/types/docs_doc_content.md#docs-doc-content)
- - [DocsDocOwner](julep/api/types/docs_doc_owner.md#docsdocowner)
- - [Docs Doc Owner Role](julep/api/types/docs_doc_owner_role.md#docs-doc-owner-role)
- - [DocsDocReference](julep/api/types/docs_doc_reference.md#docsdocreference)
- - [DocsDocSearchResponse](julep/api/types/docs_doc_search_response.md#docsdocsearchresponse)
- - [DocsEmbedQueryRequest](julep/api/types/docs_embed_query_request.md#docsembedqueryrequest)
- - [Docs Embed Query Request Text](julep/api/types/docs_embed_query_request_text.md#docs-embed-query-request-text)
- - [DocsEmbedQueryResponse](julep/api/types/docs_embed_query_response.md#docsembedqueryresponse)
- - [DocsHybridDocSearchRequest](julep/api/types/docs_hybrid_doc_search_request.md#docshybriddocsearchrequest)
- - [DocsSnippet](julep/api/types/docs_snippet.md#docssnippet)
- - [DocsTextOnlyDocSearchRequest](julep/api/types/docs_text_only_doc_search_request.md#docstextonlydocsearchrequest)
- - [DocsVectorDocSearchRequest](julep/api/types/docs_vector_doc_search_request.md#docsvectordocsearchrequest)
- - [EntriesBaseEntry](julep/api/types/entries_base_entry.md#entriesbaseentry)
- - [Entries Base Entry Content](julep/api/types/entries_base_entry_content.md#entries-base-entry-content)
- - [Entries Base Entry Content Item](julep/api/types/entries_base_entry_content_item.md#entries-base-entry-content-item)
- - [Entries Base Entry Content Item Item](julep/api/types/entries_base_entry_content_item_item.md#entries-base-entry-content-item-item)
- - [Entries Base Entry Source](julep/api/types/entries_base_entry_source.md#entries-base-entry-source)
- - [EntriesChatMlImageContentPart](julep/api/types/entries_chat_ml_image_content_part.md#entrieschatmlimagecontentpart)
- - [Entries Chat Ml Role](julep/api/types/entries_chat_ml_role.md#entries-chat-ml-role)
- - [EntriesChatMlTextContentPart](julep/api/types/entries_chat_ml_text_content_part.md#entrieschatmltextcontentpart)
- - [EntriesEntry](julep/api/types/entries_entry.md#entriesentry)
- - [EntriesHistory](julep/api/types/entries_history.md#entrieshistory)
- - [Entries Image Detail](julep/api/types/entries_image_detail.md#entries-image-detail)
- - [EntriesImageUrl](julep/api/types/entries_image_url.md#entriesimageurl)
- - [EntriesInputChatMlMessage](julep/api/types/entries_input_chat_ml_message.md#entriesinputchatmlmessage)
- - [Entries Input Chat Ml Message Content](julep/api/types/entries_input_chat_ml_message_content.md#entries-input-chat-ml-message-content)
- - [Entries Input Chat Ml Message Content Item](julep/api/types/entries_input_chat_ml_message_content_item.md#entries-input-chat-ml-message-content-item)
- - [EntriesRelation](julep/api/types/entries_relation.md#entriesrelation)
- - [Execution Transitions Route List Request Direction](julep/api/types/execution_transitions_route_list_request_direction.md#execution-transitions-route-list-request-direction)
- - [Execution Transitions Route List Request Sort By](julep/api/types/execution_transitions_route_list_request_sort_by.md#execution-transitions-route-list-request-sort-by)
- - [ExecutionTransitionsRouteListResponse](julep/api/types/execution_transitions_route_list_response.md#executiontransitionsroutelistresponse)
- - [ExecutionTransitionsRouteListResponseResultsItem](julep/api/types/execution_transitions_route_list_response_results_item.md#executiontransitionsroutelistresponseresultsitem)
- - [ExecutionsExecution](julep/api/types/executions_execution.md#executionsexecution)
- - [Executions Execution Status](julep/api/types/executions_execution_status.md#executions-execution-status)
- - [ExecutionsResumeExecutionRequest](julep/api/types/executions_resume_execution_request.md#executionsresumeexecutionrequest)
- - [ExecutionsStopExecutionRequest](julep/api/types/executions_stop_execution_request.md#executionsstopexecutionrequest)
- - [ExecutionsTransition](julep/api/types/executions_transition.md#executionstransition)
- - [ExecutionsTransitionTarget](julep/api/types/executions_transition_target.md#executionstransitiontarget)
- - [Executions Transition Type](julep/api/types/executions_transition_type.md#executions-transition-type)
- - [Executions Update Execution Request](julep/api/types/executions_update_execution_request.md#executions-update-execution-request)
- - [Jobs Job State](julep/api/types/jobs_job_state.md#jobs-job-state)
- - [JobsJobStatus](julep/api/types/jobs_job_status.md#jobsjobstatus)
- - [Sessions Context Overflow Type](julep/api/types/sessions_context_overflow_type.md#sessions-context-overflow-type)
- - [SessionsCreateOrUpdateSessionRequest](julep/api/types/sessions_create_or_update_session_request.md#sessionscreateorupdatesessionrequest)
- - [SessionsCreateSessionRequest](julep/api/types/sessions_create_session_request.md#sessionscreatesessionrequest)
- - [SessionsMultiAgentMultiUserSession](julep/api/types/sessions_multi_agent_multi_user_session.md#sessionsmultiagentmultiusersession)
- - [SessionsMultiAgentNoUserSession](julep/api/types/sessions_multi_agent_no_user_session.md#sessionsmultiagentnousersession)
- - [SessionsMultiAgentSingleUserSession](julep/api/types/sessions_multi_agent_single_user_session.md#sessionsmultiagentsingleusersession)
- - [Sessions Route List Request Direction](julep/api/types/sessions_route_list_request_direction.md#sessions-route-list-request-direction)
- - [Sessions Route List Request Sort By](julep/api/types/sessions_route_list_request_sort_by.md#sessions-route-list-request-sort-by)
- - [SessionsRouteListResponse](julep/api/types/sessions_route_list_response.md#sessionsroutelistresponse)
- - [Sessions Session](julep/api/types/sessions_session.md#sessions-session)
- - [SessionsSingleAgentMultiUserSession](julep/api/types/sessions_single_agent_multi_user_session.md#sessionssingleagentmultiusersession)
- - [SessionsSingleAgentNoUserSession](julep/api/types/sessions_single_agent_no_user_session.md#sessionssingleagentnousersession)
- - [SessionsSingleAgentSingleUserSession](julep/api/types/sessions_single_agent_single_user_session.md#sessionssingleagentsingleusersession)
- - [Task Executions Route List Request Direction](julep/api/types/task_executions_route_list_request_direction.md#task-executions-route-list-request-direction)
- - [Task Executions Route List Request Sort By](julep/api/types/task_executions_route_list_request_sort_by.md#task-executions-route-list-request-sort-by)
- - [TaskExecutionsRouteListResponse](julep/api/types/task_executions_route_list_response.md#taskexecutionsroutelistresponse)
- - [Tasks Base Workflow Step](julep/api/types/tasks_base_workflow_step.md#tasks-base-workflow-step)
- - [TasksCaseThen](julep/api/types/tasks_case_then.md#taskscasethen)
- - [Tasks Case Then Then](julep/api/types/tasks_case_then_then.md#tasks-case-then-then)
- - [TasksCreateTaskRequest](julep/api/types/tasks_create_task_request.md#taskscreatetaskrequest)
- - [Tasks Create Task Request Main Item](julep/api/types/tasks_create_task_request_main_item.md#tasks-create-task-request-main-item)
- - [TasksEmbedStep](julep/api/types/tasks_embed_step.md#tasksembedstep)
- - [TasksErrorWorkflowStep](julep/api/types/tasks_error_workflow_step.md#taskserrorworkflowstep)
- - [TasksEvaluateStep](julep/api/types/tasks_evaluate_step.md#tasksevaluatestep)
- - [TasksForeachDo](julep/api/types/tasks_foreach_do.md#tasksforeachdo)
- - [Tasks Foreach Do Do](julep/api/types/tasks_foreach_do_do.md#tasks-foreach-do-do)
- - [TasksForeachStep](julep/api/types/tasks_foreach_step.md#tasksforeachstep)
- - [TasksGetStep](julep/api/types/tasks_get_step.md#tasksgetstep)
- - [TasksIfElseWorkflowStep](julep/api/types/tasks_if_else_workflow_step.md#tasksifelseworkflowstep)
- - [Tasks If Else Workflow Step Else](julep/api/types/tasks_if_else_workflow_step_else.md#tasks-if-else-workflow-step-else)
- - [Tasks If Else Workflow Step Then](julep/api/types/tasks_if_else_workflow_step_then.md#tasks-if-else-workflow-step-then)
- - [TasksLogStep](julep/api/types/tasks_log_step.md#taskslogstep)
- - [TasksMapOver](julep/api/types/tasks_map_over.md#tasksmapover)
- - [TasksMapReduceStep](julep/api/types/tasks_map_reduce_step.md#tasksmapreducestep)
- - [TasksParallelStep](julep/api/types/tasks_parallel_step.md#tasksparallelstep)
- - [Tasks Parallel Step Parallel Item](julep/api/types/tasks_parallel_step_parallel_item.md#tasks-parallel-step-parallel-item)
- - [Tasks Patch Task Request Main Item](julep/api/types/tasks_patch_task_request_main_item.md#tasks-patch-task-request-main-item)
- - [TasksPromptStep](julep/api/types/tasks_prompt_step.md#taskspromptstep)
- - [Tasks Prompt Step Prompt](julep/api/types/tasks_prompt_step_prompt.md#tasks-prompt-step-prompt)
- - [TasksReturnStep](julep/api/types/tasks_return_step.md#tasksreturnstep)
- - [Tasks Route List Request Direction](julep/api/types/tasks_route_list_request_direction.md#tasks-route-list-request-direction)
- - [Tasks Route List Request Sort By](julep/api/types/tasks_route_list_request_sort_by.md#tasks-route-list-request-sort-by)
- - [TasksRouteListResponse](julep/api/types/tasks_route_list_response.md#tasksroutelistresponse)
- - [TasksSearchStep](julep/api/types/tasks_search_step.md#taskssearchstep)
- - [Tasks Search Step Search](julep/api/types/tasks_search_step_search.md#tasks-search-step-search)
- - [TasksSetKey](julep/api/types/tasks_set_key.md#taskssetkey)
- - [TasksSetStep](julep/api/types/tasks_set_step.md#taskssetstep)
- - [Tasks Set Step Set](julep/api/types/tasks_set_step_set.md#tasks-set-step-set)
- - [TasksSleepFor](julep/api/types/tasks_sleep_for.md#taskssleepfor)
- - [TasksSleepStep](julep/api/types/tasks_sleep_step.md#taskssleepstep)
- - [TasksSwitchStep](julep/api/types/tasks_switch_step.md#tasksswitchstep)
- - [TasksTask](julep/api/types/tasks_task.md#taskstask)
- - [Tasks Task Main Item](julep/api/types/tasks_task_main_item.md#tasks-task-main-item)
- - [TasksTaskTool](julep/api/types/tasks_task_tool.md#taskstasktool)
- - [TasksToolCallStep](julep/api/types/tasks_tool_call_step.md#taskstoolcallstep)
- - [Tasks Update Task Request Main Item](julep/api/types/tasks_update_task_request_main_item.md#tasks-update-task-request-main-item)
- - [TasksWaitForInputStep](julep/api/types/tasks_wait_for_input_step.md#taskswaitforinputstep)
- - [TasksYieldStep](julep/api/types/tasks_yield_step.md#tasksyieldstep)
- - [ToolsChosenFunctionCall](julep/api/types/tools_chosen_function_call.md#toolschosenfunctioncall)
- - [Tools Chosen Tool Call](julep/api/types/tools_chosen_tool_call.md#tools-chosen-tool-call)
- - [ToolsCreateToolRequest](julep/api/types/tools_create_tool_request.md#toolscreatetoolrequest)
- - [ToolsFunctionCallOption](julep/api/types/tools_function_call_option.md#toolsfunctioncalloption)
- - [ToolsFunctionDef](julep/api/types/tools_function_def.md#toolsfunctiondef)
- - [ToolsFunctionTool](julep/api/types/tools_function_tool.md#toolsfunctiontool)
- - [ToolsNamedFunctionChoice](julep/api/types/tools_named_function_choice.md#toolsnamedfunctionchoice)
- - [Tools Named Tool Choice](julep/api/types/tools_named_tool_choice.md#tools-named-tool-choice)
- - [Tools Tool](julep/api/types/tools_tool.md#tools-tool)
- - [ToolsToolResponse](julep/api/types/tools_tool_response.md#toolstoolresponse)
- - [Tools Tool Type](julep/api/types/tools_tool_type.md#tools-tool-type)
- - [User Docs Route List Request Direction](julep/api/types/user_docs_route_list_request_direction.md#user-docs-route-list-request-direction)
- - [User Docs Route List Request Sort By](julep/api/types/user_docs_route_list_request_sort_by.md#user-docs-route-list-request-sort-by)
- - [UserDocsRouteListResponse](julep/api/types/user_docs_route_list_response.md#userdocsroutelistresponse)
- - [User Docs Search Route Search Request Body](julep/api/types/user_docs_search_route_search_request_body.md#user-docs-search-route-search-request-body)
- - [UsersCreateOrUpdateUserRequest](julep/api/types/users_create_or_update_user_request.md#userscreateorupdateuserrequest)
- - [UsersCreateUserRequest](julep/api/types/users_create_user_request.md#userscreateuserrequest)
- - [Users Route List Request Direction](julep/api/types/users_route_list_request_direction.md#users-route-list-request-direction)
- - [Users Route List Request Sort By](julep/api/types/users_route_list_request_sort_by.md#users-route-list-request-sort-by)
- - [UsersRouteListResponse](julep/api/types/users_route_list_response.md#usersroutelistresponse)
- - [UsersUser](julep/api/types/users_user.md#usersuser)
- - [Client](julep/client.md#client)
- - [Env](julep/env.md#env)
- - [Managers](julep/managers/index.md#managers)
- - [Agent](julep/managers/agent.md#agent)
- - [Base](julep/managers/base.md#base)
- - [Doc](julep/managers/doc.md#doc)
- - [Memory](julep/managers/memory.md#memory)
- - [Session](julep/managers/session.md#session)
- - [Task](julep/managers/task.md#task)
- - [Tool](julep/managers/tool.md#tool)
- - [Types](julep/managers/types.md#types)
- - [User](julep/managers/user.md#user)
- - [Utils](julep/utils/index.md#utils)
- - [Openai Patch](julep/utils/openai_patch.md#openai-patch)
diff --git a/docs/python-sdk-docs/julep/api/client.md b/docs/python-sdk-docs/julep/api/client.md
deleted file mode 100644
index 34fe3b1f4..000000000
--- a/docs/python-sdk-docs/julep/api/client.md
+++ /dev/null
@@ -1,6554 +0,0 @@
-# Client
-
-[Julep Python SDK Index](../../README.md#julep-python-sdk-index) / [Julep](../index.md#julep) / [Julep Python Library](./index.md#julep-python-library) / Client
-
-> Auto-generated documentation for [julep.api.client](../../../../../../julep/api/client.py) module.
-
-#### Attributes
-
-- `OMIT` - this is used as the default value for optional parameters: typing.cast(typing.Any, ...)
-
-
-- [Client](#client)
- - [AsyncJulepApi](#asyncjulepapi)
- - [JulepApi](#julepapi)
-
-## AsyncJulepApi
-
-[Show source in client.py:3706](../../../../../../julep/api/client.py#L3706)
-
-Use this class to access the different functions within the SDK. You can instantiate any number of clients with different configuration that will propagate to these functions.
-
-Parameters
-----------
-base_url : typing.Optional[str]
- The base url to use for requests from the client.
-
-environment : JulepApiEnvironment
- The environment to use for requests from the client. from .environment import JulepApiEnvironment
-
-Defaults to JulepApiEnvironment.DEFAULT
-
-auth_key : str
-api_key : str
-timeout : typing.Optional[float]
- The timeout to be used, in seconds, for requests. By default the timeout is 300 seconds, unless a custom httpx client is used, in which case this default is not enforced.
-
-follow_redirects : typing.Optional[bool]
- Whether the default httpx client follows redirects or not, this is irrelevant if a custom httpx client is passed in.
-
-httpx_client : typing.Optional[httpx.AsyncClient]
- The httpx client to use for making requests, a preconfigured client is used by default, however this is useful should you want to pass in any custom httpx configuration.
-
-Examples
---------
-from julep.client import AsyncJulepApi
-
-client = AsyncJulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-
-#### Signature
-
-```python
-class AsyncJulepApi:
- def __init__(
- self,
- base_url: typing.Optional[str] = None,
- environment: JulepApiEnvironment = JulepApiEnvironment.DEFAULT,
- auth_key: str,
- api_key: str,
- timeout: typing.Optional[float] = None,
- follow_redirects: typing.Optional[bool] = True,
- httpx_client: typing.Optional[httpx.AsyncClient] = None,
- ): ...
-```
-
-### AsyncJulepApi().agent_docs_route_create
-
-[Show source in client.py:4404](../../../../../../julep/api/client.py#L4404)
-
-Create a Doc for this Agent
-
-Parameters
-----------
-id : CommonUuid
- ID of parent resource
-
-title : CommonIdentifierSafeUnicode
- Title describing what this document contains
-
-content : DocsCreateDocRequestContent
- Contents of the document
-
-metadata : typing.Optional[typing.Dict[str, typing.Any]]
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-CommonResourceCreatedResponse
- The request has succeeded and a new resource has been created as a result.
-
-Examples
---------
-import asyncio
-
-from julep.client import AsyncJulepApi
-
-client = AsyncJulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-
-async def main() -> None:
- await client.agent_docs_route_create(
- id="id",
- title="title",
- content="content",
- )
-
-asyncio.run(main())
-
-#### Signature
-
-```python
-async def agent_docs_route_create(
- self,
- id: CommonUuid,
- title: CommonIdentifierSafeUnicode,
- content: DocsCreateDocRequestContent,
- metadata: typing.Optional[typing.Dict[str, typing.Any]] = OMIT,
- request_options: typing.Optional[RequestOptions] = None,
-) -> CommonResourceCreatedResponse: ...
-```
-
-#### See also
-
-- [OMIT](#omit)
-
-### AsyncJulepApi().agent_docs_route_delete
-
-[Show source in client.py:4474](../../../../../../julep/api/client.py#L4474)
-
-Delete a Doc for this Agent
-
-Parameters
-----------
-id : CommonUuid
- ID of parent resource
-
-child_id : CommonUuid
- ID of the resource to be deleted
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-CommonResourceDeletedResponse
- The request has been accepted for processing, but processing has not yet completed.
-
-Examples
---------
-import asyncio
-
-from julep.client import AsyncJulepApi
-
-client = AsyncJulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-
-async def main() -> None:
- await client.agent_docs_route_delete(
- id="id",
- child_id="child_id",
- )
-
-asyncio.run(main())
-
-#### Signature
-
-```python
-async def agent_docs_route_delete(
- self,
- id: CommonUuid,
- child_id: CommonUuid,
- request_options: typing.Optional[RequestOptions] = None,
-) -> CommonResourceDeletedResponse: ...
-```
-
-### AsyncJulepApi().agent_docs_route_list
-
-[Show source in client.py:4317](../../../../../../julep/api/client.py#L4317)
-
-List Docs owned by an Agent
-
-Parameters
-----------
-id : CommonUuid
- ID of parent
-
-limit : CommonLimit
- Limit the number of items returned
-
-offset : CommonOffset
- Offset the items returned
-
-sort_by : AgentDocsRouteListRequestSortBy
- Sort by a field
-
-direction : AgentDocsRouteListRequestDirection
- Sort direction
-
-metadata_filter : str
- JSON string of object that should be used to filter objects by metadata
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-AgentDocsRouteListResponse
- The request has succeeded.
-
-Examples
---------
-import asyncio
-
-from julep.client import AsyncJulepApi
-
-client = AsyncJulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-
-async def main() -> None:
- await client.agent_docs_route_list(
- id="id",
- limit=1,
- offset=1,
- sort_by="created_at",
- direction="asc",
- metadata_filter="metadata_filter",
- )
-
-asyncio.run(main())
-
-#### Signature
-
-```python
-async def agent_docs_route_list(
- self,
- id: CommonUuid,
- limit: CommonLimit,
- offset: CommonOffset,
- sort_by: AgentDocsRouteListRequestSortBy,
- direction: AgentDocsRouteListRequestDirection,
- metadata_filter: str,
- request_options: typing.Optional[RequestOptions] = None,
-) -> AgentDocsRouteListResponse: ...
-```
-
-### AsyncJulepApi().agent_tools_route_create
-
-[Show source in client.py:5127](../../../../../../julep/api/client.py#L5127)
-
-Create a new tool for this agent
-
-Parameters
-----------
-id : CommonUuid
- ID of parent resource
-
-name : CommonIdentifierSafeUnicode
- Name of the agent
-
-about : str
- About the agent
-
-model : str
- Model name to use (gpt-4-turbo, gemini-nano etc)
-
-instructions : AgentsCreateAgentRequestInstructions
- Instructions for the agent
-
-metadata : typing.Optional[typing.Dict[str, typing.Any]]
-
-default_settings : typing.Optional[ChatDefaultChatSettings]
- Default settings for all sessions created by this agent
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-CommonResourceCreatedResponse
- The request has succeeded and a new resource has been created as a result.
-
-Examples
---------
-import asyncio
-
-from julep.client import AsyncJulepApi
-
-client = AsyncJulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-
-async def main() -> None:
- await client.agent_tools_route_create(
- id="id",
- name="name",
- about="about",
- model="model",
- instructions="instructions",
- )
-
-asyncio.run(main())
-
-#### Signature
-
-```python
-async def agent_tools_route_create(
- self,
- id: CommonUuid,
- name: CommonIdentifierSafeUnicode,
- about: str,
- model: str,
- instructions: AgentsCreateAgentRequestInstructions,
- metadata: typing.Optional[typing.Dict[str, typing.Any]] = OMIT,
- default_settings: typing.Optional[ChatDefaultChatSettings] = OMIT,
- request_options: typing.Optional[RequestOptions] = None,
-) -> CommonResourceCreatedResponse: ...
-```
-
-#### See also
-
-- [OMIT](#omit)
-
-### AsyncJulepApi().agent_tools_route_delete
-
-[Show source in client.py:5309](../../../../../../julep/api/client.py#L5309)
-
-Delete an existing tool by id
-
-Parameters
-----------
-id : CommonUuid
- ID of parent resource
-
-child_id : CommonUuid
- ID of the resource to be deleted
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-CommonResourceDeletedResponse
- The request has been accepted for processing, but processing has not yet completed.
-
-Examples
---------
-import asyncio
-
-from julep.client import AsyncJulepApi
-
-client = AsyncJulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-
-async def main() -> None:
- await client.agent_tools_route_delete(
- id="id",
- child_id="child_id",
- )
-
-asyncio.run(main())
-
-#### Signature
-
-```python
-async def agent_tools_route_delete(
- self,
- id: CommonUuid,
- child_id: CommonUuid,
- request_options: typing.Optional[RequestOptions] = None,
-) -> CommonResourceDeletedResponse: ...
-```
-
-### AsyncJulepApi().agent_tools_route_list
-
-[Show source in client.py:5040](../../../../../../julep/api/client.py#L5040)
-
-List tools of the given agent
-
-Parameters
-----------
-id : CommonUuid
- ID of parent
-
-limit : CommonLimit
- Limit the number of items returned
-
-offset : CommonOffset
- Offset the items returned
-
-sort_by : AgentToolsRouteListRequestSortBy
- Sort by a field
-
-direction : AgentToolsRouteListRequestDirection
- Sort direction
-
-metadata_filter : str
- JSON string of object that should be used to filter objects by metadata
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-AgentToolsRouteListResponse
- The request has succeeded.
-
-Examples
---------
-import asyncio
-
-from julep.client import AsyncJulepApi
-
-client = AsyncJulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-
-async def main() -> None:
- await client.agent_tools_route_list(
- id="id",
- limit=1,
- offset=1,
- sort_by="created_at",
- direction="asc",
- metadata_filter="metadata_filter",
- )
-
-asyncio.run(main())
-
-#### Signature
-
-```python
-async def agent_tools_route_list(
- self,
- id: CommonUuid,
- limit: CommonLimit,
- offset: CommonOffset,
- sort_by: AgentToolsRouteListRequestSortBy,
- direction: AgentToolsRouteListRequestDirection,
- metadata_filter: str,
- request_options: typing.Optional[RequestOptions] = None,
-) -> AgentToolsRouteListResponse: ...
-```
-
-### AsyncJulepApi().agent_tools_route_patch
-
-[Show source in client.py:5369](../../../../../../julep/api/client.py#L5369)
-
-Update an existing tool (merges with existing values)
-
-Parameters
-----------
-id : CommonUuid
- ID of parent resource
-
-child_id : CommonUuid
- ID of the resource to be patched
-
-type : typing.Optional[ToolsToolType]
- Whether this tool is a `function`, `api_call`, `system` etc. (Only `function` tool supported right now)
-
-name : typing.Optional[CommonValidPythonIdentifier]
- Name of the tool (must be unique for this agent and a valid python identifier string )
-
-function : typing.Optional[ToolsFunctionDef]
-
-integration : typing.Optional[typing.Any]
-
-system : typing.Optional[typing.Any]
-
-api_call : typing.Optional[typing.Any]
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-CommonResourceUpdatedResponse
- The request has succeeded.
-
-Examples
---------
-import asyncio
-
-from julep.client import AsyncJulepApi
-
-client = AsyncJulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-
-async def main() -> None:
- await client.agent_tools_route_patch(
- id="id",
- child_id="child_id",
- )
-
-asyncio.run(main())
-
-#### Signature
-
-```python
-async def agent_tools_route_patch(
- self,
- id: CommonUuid,
- child_id: CommonUuid,
- type: typing.Optional[ToolsToolType] = OMIT,
- name: typing.Optional[CommonValidPythonIdentifier] = OMIT,
- function: typing.Optional[ToolsFunctionDef] = OMIT,
- integration: typing.Optional[typing.Any] = OMIT,
- system: typing.Optional[typing.Any] = OMIT,
- api_call: typing.Optional[typing.Any] = OMIT,
- request_options: typing.Optional[RequestOptions] = None,
-) -> CommonResourceUpdatedResponse: ...
-```
-
-#### See also
-
-- [OMIT](#omit)
-
-### AsyncJulepApi().agent_tools_route_update
-
-[Show source in client.py:5218](../../../../../../julep/api/client.py#L5218)
-
-Update an existing tool (overwrite existing values)
-
-Parameters
-----------
-id : CommonUuid
- ID of parent resource
-
-child_id : CommonUuid
- ID of the resource to be updated
-
-type : ToolsToolType
- Whether this tool is a `function`, `api_call`, `system` etc. (Only `function` tool supported right now)
-
-name : CommonValidPythonIdentifier
- Name of the tool (must be unique for this agent and a valid python identifier string )
-
-function : typing.Optional[ToolsFunctionDef]
-
-integration : typing.Optional[typing.Any]
-
-system : typing.Optional[typing.Any]
-
-api_call : typing.Optional[typing.Any]
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-CommonResourceUpdatedResponse
- The request has succeeded.
-
-Examples
---------
-import asyncio
-
-from julep.client import AsyncJulepApi
-
-client = AsyncJulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-
-async def main() -> None:
- await client.agent_tools_route_update(
- id="id",
- child_id="child_id",
- type="function",
- name="name",
- )
-
-asyncio.run(main())
-
-#### Signature
-
-```python
-async def agent_tools_route_update(
- self,
- id: CommonUuid,
- child_id: CommonUuid,
- type: ToolsToolType,
- name: CommonValidPythonIdentifier,
- function: typing.Optional[ToolsFunctionDef] = OMIT,
- integration: typing.Optional[typing.Any] = OMIT,
- system: typing.Optional[typing.Any] = OMIT,
- api_call: typing.Optional[typing.Any] = OMIT,
- request_options: typing.Optional[RequestOptions] = None,
-) -> CommonResourceUpdatedResponse: ...
-```
-
-#### See also
-
-- [OMIT](#omit)
-
-### AsyncJulepApi().agents_docs_search_route_search
-
-[Show source in client.py:4534](../../../../../../julep/api/client.py#L4534)
-
-Search Docs owned by an Agent
-
-Parameters
-----------
-id : CommonUuid
- ID of the parent
-
-body : AgentsDocsSearchRouteSearchRequestBody
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-DocsDocSearchResponse
- The request has succeeded.
-
-Examples
---------
-import asyncio
-
-from julep import DocsVectorDocSearchRequest
-from julep.client import AsyncJulepApi
-
-client = AsyncJulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-
-async def main() -> None:
- await client.agents_docs_search_route_search(
- id="id",
- body=DocsVectorDocSearchRequest(
- limit=1,
- confidence=1.1,
- vector=[1.1],
- ),
- )
-
-asyncio.run(main())
-
-#### Signature
-
-```python
-async def agents_docs_search_route_search(
- self,
- id: CommonUuid,
- body: AgentsDocsSearchRouteSearchRequestBody,
- request_options: typing.Optional[RequestOptions] = None,
-) -> DocsDocSearchResponse: ...
-```
-
-### AsyncJulepApi().agents_route_create
-
-[Show source in client.py:3859](../../../../../../julep/api/client.py#L3859)
-
-Create a new Agent
-
-Parameters
-----------
-name : CommonIdentifierSafeUnicode
- Name of the agent
-
-about : str
- About the agent
-
-model : str
- Model name to use (gpt-4-turbo, gemini-nano etc)
-
-instructions : AgentsCreateAgentRequestInstructions
- Instructions for the agent
-
-metadata : typing.Optional[typing.Dict[str, typing.Any]]
-
-default_settings : typing.Optional[ChatDefaultChatSettings]
- Default settings for all sessions created by this agent
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-CommonResourceCreatedResponse
- The request has succeeded and a new resource has been created as a result.
-
-Examples
---------
-import asyncio
-
-from julep.client import AsyncJulepApi
-
-client = AsyncJulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-
-async def main() -> None:
- await client.agents_route_create(
- name="name",
- about="about",
- model="model",
- instructions="instructions",
- )
-
-asyncio.run(main())
-
-#### Signature
-
-```python
-async def agents_route_create(
- self,
- name: CommonIdentifierSafeUnicode,
- about: str,
- model: str,
- instructions: AgentsCreateAgentRequestInstructions,
- metadata: typing.Optional[typing.Dict[str, typing.Any]] = OMIT,
- default_settings: typing.Optional[ChatDefaultChatSettings] = OMIT,
- request_options: typing.Optional[RequestOptions] = None,
-) -> CommonResourceCreatedResponse: ...
-```
-
-#### See also
-
-- [OMIT](#omit)
-
-### AsyncJulepApi().agents_route_create_or_update
-
-[Show source in client.py:3997](../../../../../../julep/api/client.py#L3997)
-
-Create or update an Agent
-
-Parameters
-----------
-id : CommonUuid
-
-name : CommonIdentifierSafeUnicode
- Name of the agent
-
-about : str
- About the agent
-
-model : str
- Model name to use (gpt-4-turbo, gemini-nano etc)
-
-instructions : AgentsUpdateAgentRequestInstructions
- Instructions for the agent
-
-metadata : typing.Optional[typing.Dict[str, typing.Any]]
-
-default_settings : typing.Optional[ChatDefaultChatSettings]
- Default settings for all sessions created by this agent
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-CommonResourceUpdatedResponse
- The request has succeeded.
-
-Examples
---------
-import asyncio
-
-from julep.client import AsyncJulepApi
-
-client = AsyncJulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-
-async def main() -> None:
- await client.agents_route_create_or_update(
- id="id",
- name="name",
- about="about",
- model="model",
- instructions="instructions",
- )
-
-asyncio.run(main())
-
-#### Signature
-
-```python
-async def agents_route_create_or_update(
- self,
- id: CommonUuid,
- name: CommonIdentifierSafeUnicode,
- about: str,
- model: str,
- instructions: AgentsUpdateAgentRequestInstructions,
- metadata: typing.Optional[typing.Dict[str, typing.Any]] = OMIT,
- default_settings: typing.Optional[ChatDefaultChatSettings] = OMIT,
- request_options: typing.Optional[RequestOptions] = None,
-) -> CommonResourceUpdatedResponse: ...
-```
-
-#### See also
-
-- [OMIT](#omit)
-
-### AsyncJulepApi().agents_route_delete
-
-[Show source in client.py:4178](../../../../../../julep/api/client.py#L4178)
-
-Delete Agent by id
-
-Parameters
-----------
-id : CommonUuid
- ID of the resource
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-CommonResourceDeletedResponse
- The request has been accepted for processing, but processing has not yet completed.
-
-Examples
---------
-import asyncio
-
-from julep.client import AsyncJulepApi
-
-client = AsyncJulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-
-async def main() -> None:
- await client.agents_route_delete(
- id="id",
- )
-
-asyncio.run(main())
-
-#### Signature
-
-```python
-async def agents_route_delete(
- self, id: CommonUuid, request_options: typing.Optional[RequestOptions] = None
-) -> CommonResourceDeletedResponse: ...
-```
-
-### AsyncJulepApi().agents_route_get
-
-[Show source in client.py:3945](../../../../../../julep/api/client.py#L3945)
-
-Get an Agent by id
-
-Parameters
-----------
-id : CommonUuid
- ID of the resource
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-AgentsAgent
- The request has succeeded.
-
-Examples
---------
-import asyncio
-
-from julep.client import AsyncJulepApi
-
-client = AsyncJulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-
-async def main() -> None:
- await client.agents_route_get(
- id="id",
- )
-
-asyncio.run(main())
-
-#### Signature
-
-```python
-async def agents_route_get(
- self, id: CommonUuid, request_options: typing.Optional[RequestOptions] = None
-) -> AgentsAgent: ...
-```
-
-### AsyncJulepApi().agents_route_list
-
-[Show source in client.py:3777](../../../../../../julep/api/client.py#L3777)
-
-List Agents (paginated)
-
-Parameters
-----------
-limit : CommonLimit
- Limit the number of items returned
-
-offset : CommonOffset
- Offset the items returned
-
-sort_by : AgentsRouteListRequestSortBy
- Sort by a field
-
-direction : AgentsRouteListRequestDirection
- Sort direction
-
-metadata_filter : str
- JSON string of object that should be used to filter objects by metadata
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-AgentsRouteListResponse
- The request has succeeded.
-
-Examples
---------
-import asyncio
-
-from julep.client import AsyncJulepApi
-
-client = AsyncJulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-
-async def main() -> None:
- await client.agents_route_list(
- limit=1,
- offset=1,
- sort_by="created_at",
- direction="asc",
- metadata_filter="metadata_filter",
- )
-
-asyncio.run(main())
-
-#### Signature
-
-```python
-async def agents_route_list(
- self,
- limit: CommonLimit,
- offset: CommonOffset,
- sort_by: AgentsRouteListRequestSortBy,
- direction: AgentsRouteListRequestDirection,
- metadata_filter: str,
- request_options: typing.Optional[RequestOptions] = None,
-) -> AgentsRouteListResponse: ...
-```
-
-### AsyncJulepApi().agents_route_patch
-
-[Show source in client.py:4230](../../../../../../julep/api/client.py#L4230)
-
-Update an existing Agent by id (merges with existing values)
-
-Parameters
-----------
-id : CommonUuid
- ID of the resource
-
-metadata : typing.Optional[typing.Dict[str, typing.Any]]
-
-name : typing.Optional[CommonIdentifierSafeUnicode]
- Name of the agent
-
-about : typing.Optional[str]
- About the agent
-
-model : typing.Optional[str]
- Model name to use (gpt-4-turbo, gemini-nano etc)
-
-instructions : typing.Optional[AgentsPatchAgentRequestInstructions]
- Instructions for the agent
-
-default_settings : typing.Optional[ChatDefaultChatSettings]
- Default settings for all sessions created by this agent
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-CommonResourceUpdatedResponse
- The request has succeeded.
-
-Examples
---------
-import asyncio
-
-from julep.client import AsyncJulepApi
-
-client = AsyncJulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-
-async def main() -> None:
- await client.agents_route_patch(
- id="id",
- )
-
-asyncio.run(main())
-
-#### Signature
-
-```python
-async def agents_route_patch(
- self,
- id: CommonUuid,
- metadata: typing.Optional[typing.Dict[str, typing.Any]] = OMIT,
- name: typing.Optional[CommonIdentifierSafeUnicode] = OMIT,
- about: typing.Optional[str] = OMIT,
- model: typing.Optional[str] = OMIT,
- instructions: typing.Optional[AgentsPatchAgentRequestInstructions] = OMIT,
- default_settings: typing.Optional[ChatDefaultChatSettings] = OMIT,
- request_options: typing.Optional[RequestOptions] = None,
-) -> CommonResourceUpdatedResponse: ...
-```
-
-#### See also
-
-- [OMIT](#omit)
-
-### AsyncJulepApi().agents_route_update
-
-[Show source in client.py:4087](../../../../../../julep/api/client.py#L4087)
-
-Update an existing Agent by id (overwrites existing values; use PATCH for merging instead)
-
-Parameters
-----------
-id : CommonUuid
- ID of the resource
-
-name : CommonIdentifierSafeUnicode
- Name of the agent
-
-about : str
- About the agent
-
-model : str
- Model name to use (gpt-4-turbo, gemini-nano etc)
-
-instructions : AgentsUpdateAgentRequestInstructions
- Instructions for the agent
-
-metadata : typing.Optional[typing.Dict[str, typing.Any]]
-
-default_settings : typing.Optional[ChatDefaultChatSettings]
- Default settings for all sessions created by this agent
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-CommonResourceUpdatedResponse
- The request has succeeded.
-
-Examples
---------
-import asyncio
-
-from julep.client import AsyncJulepApi
-
-client = AsyncJulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-
-async def main() -> None:
- await client.agents_route_update(
- id="id",
- name="name",
- about="about",
- model="model",
- instructions="instructions",
- )
-
-asyncio.run(main())
-
-#### Signature
-
-```python
-async def agents_route_update(
- self,
- id: CommonUuid,
- name: CommonIdentifierSafeUnicode,
- about: str,
- model: str,
- instructions: AgentsUpdateAgentRequestInstructions,
- metadata: typing.Optional[typing.Dict[str, typing.Any]] = OMIT,
- default_settings: typing.Optional[ChatDefaultChatSettings] = OMIT,
- request_options: typing.Optional[RequestOptions] = None,
-) -> CommonResourceUpdatedResponse: ...
-```
-
-#### See also
-
-- [OMIT](#omit)
-
-### AsyncJulepApi().chat_route_generate
-
-[Show source in client.py:6541](../../../../../../julep/api/client.py#L6541)
-
-Generate a response from the model
-
-Parameters
-----------
-id : CommonUuid
- The session ID
-
-remember : bool
- DISABLED: Whether this interaction should form new memories or not (will be enabled in a future release)
-
-recall : bool
- Whether previous memories and docs should be recalled or not
-
-save : bool
- Whether this interaction should be stored in the session history or not
-
-stream : bool
- Indicates if the server should stream the response as it's generated
-
-messages : typing.Sequence[EntriesInputChatMlMessage]
- A list of new input messages comprising the conversation so far.
-
-model : typing.Optional[CommonIdentifierSafeUnicode]
- Identifier of the model to be used
-
-stop : typing.Optional[typing.Sequence[str]]
- Up to 4 sequences where the API will stop generating further tokens.
-
-seed : typing.Optional[int]
- If specified, the system will make a best effort to sample deterministically for that particular seed value
-
-max_tokens : typing.Optional[int]
- The maximum number of tokens to generate in the chat completion
-
-logit_bias : typing.Optional[typing.Dict[str, CommonLogitBias]]
- Modify the likelihood of specified tokens appearing in the completion
-
-response_format : typing.Optional[ChatCompletionResponseFormat]
- Response format (set to `json_object` to restrict output to JSON)
-
-agent : typing.Optional[CommonUuid]
- Agent ID of the agent to use for this interaction. (Only applicable for multi-agent sessions)
-
-repetition_penalty : typing.Optional[float]
- Number between 0 and 2.0. 1.0 is neutral and values larger than that penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim.
-
-length_penalty : typing.Optional[float]
- Number between 0 and 2.0. 1.0 is neutral and values larger than that penalize number of tokens generated.
-
-min_p : typing.Optional[float]
- Minimum probability compared to leading token to be considered
-
-frequency_penalty : typing.Optional[float]
- Number between -2.0 and 2.0. Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim.
-
-presence_penalty : typing.Optional[float]
- Number between -2.0 and 2.0. Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim.
-
-temperature : typing.Optional[float]
- What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic.
-
-top_p : typing.Optional[float]
- Defaults to 1 An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass. So 0.1 means only the tokens comprising the top 10% probability mass are considered. We generally recommend altering this or temperature but not both.
-
-tools : typing.Optional[typing.Sequence[ToolsFunctionTool]]
- (Advanced) List of tools that are provided in addition to agent's default set of tools.
-
-tool_choice : typing.Optional[ChatChatInputDataToolChoice]
- Can be one of existing tools given to the agent earlier or the ones provided in this request.
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-ChatRouteGenerateResponse
- The request has succeeded.
-
-Examples
---------
-import asyncio
-
-from julep import EntriesInputChatMlMessage
-from julep.client import AsyncJulepApi
-
-client = AsyncJulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-
-async def main() -> None:
- await client.chat_route_generate(
- id="id",
- messages=[
- EntriesInputChatMlMessage(
- role="user",
- content="content",
- )
- ],
- remember=True,
- recall=True,
- save=True,
- stream=True,
- )
-
-asyncio.run(main())
-
-#### Signature
-
-```python
-async def chat_route_generate(
- self,
- id: CommonUuid,
- remember: bool,
- recall: bool,
- save: bool,
- stream: bool,
- messages: typing.Sequence[EntriesInputChatMlMessage],
- model: typing.Optional[CommonIdentifierSafeUnicode] = OMIT,
- stop: typing.Optional[typing.Sequence[str]] = OMIT,
- seed: typing.Optional[int] = OMIT,
- max_tokens: typing.Optional[int] = OMIT,
- logit_bias: typing.Optional[typing.Dict[str, CommonLogitBias]] = OMIT,
- response_format: typing.Optional[ChatCompletionResponseFormat] = OMIT,
- agent: typing.Optional[CommonUuid] = OMIT,
- repetition_penalty: typing.Optional[float] = OMIT,
- length_penalty: typing.Optional[float] = OMIT,
- min_p: typing.Optional[float] = OMIT,
- frequency_penalty: typing.Optional[float] = OMIT,
- presence_penalty: typing.Optional[float] = OMIT,
- temperature: typing.Optional[float] = OMIT,
- top_p: typing.Optional[float] = OMIT,
- tools: typing.Optional[typing.Sequence[ToolsFunctionTool]] = OMIT,
- tool_choice: typing.Optional[ChatChatInputDataToolChoice] = OMIT,
- request_options: typing.Optional[RequestOptions] = None,
-) -> ChatRouteGenerateResponse: ...
-```
-
-#### See also
-
-- [OMIT](#omit)
-
-### AsyncJulepApi().embed_route_embed
-
-[Show source in client.py:5615](../../../../../../julep/api/client.py#L5615)
-
-Embed a query for search
-
-Parameters
-----------
-body : DocsEmbedQueryRequest
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-DocsEmbedQueryResponse
- The request has succeeded.
-
-Examples
---------
-import asyncio
-
-from julep import DocsEmbedQueryRequest
-from julep.client import AsyncJulepApi
-
-client = AsyncJulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-
-async def main() -> None:
- await client.embed_route_embed(
- body=DocsEmbedQueryRequest(
- text="text",
- ),
- )
-
-asyncio.run(main())
-
-#### Signature
-
-```python
-async def embed_route_embed(
- self,
- body: DocsEmbedQueryRequest,
- request_options: typing.Optional[RequestOptions] = None,
-) -> DocsEmbedQueryResponse: ...
-```
-
-### AsyncJulepApi().execution_transitions_route_list
-
-[Show source in client.py:5852](../../../../../../julep/api/client.py#L5852)
-
-List the Transitions of an Execution by id
-
-Parameters
-----------
-id : CommonUuid
- ID of parent
-
-limit : CommonLimit
- Limit the number of items returned
-
-offset : CommonOffset
- Offset the items returned
-
-sort_by : ExecutionTransitionsRouteListRequestSortBy
- Sort by a field
-
-direction : ExecutionTransitionsRouteListRequestDirection
- Sort direction
-
-metadata_filter : str
- JSON string of object that should be used to filter objects by metadata
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-ExecutionTransitionsRouteListResponse
- The request has succeeded.
-
-Examples
---------
-import asyncio
-
-from julep.client import AsyncJulepApi
-
-client = AsyncJulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-
-async def main() -> None:
- await client.execution_transitions_route_list(
- id="id",
- limit=1,
- offset=1,
- sort_by="created_at",
- direction="asc",
- metadata_filter="metadata_filter",
- )
-
-asyncio.run(main())
-
-#### Signature
-
-```python
-async def execution_transitions_route_list(
- self,
- id: CommonUuid,
- limit: CommonLimit,
- offset: CommonOffset,
- sort_by: ExecutionTransitionsRouteListRequestSortBy,
- direction: ExecutionTransitionsRouteListRequestDirection,
- metadata_filter: str,
- request_options: typing.Optional[RequestOptions] = None,
-) -> ExecutionTransitionsRouteListResponse: ...
-```
-
-### AsyncJulepApi().executions_route_get
-
-[Show source in client.py:5736](../../../../../../julep/api/client.py#L5736)
-
-Get an Execution by id
-
-Parameters
-----------
-id : CommonUuid
- ID of the resource
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-ExecutionsExecution
- The request has succeeded.
-
-Examples
---------
-import asyncio
-
-from julep.client import AsyncJulepApi
-
-client = AsyncJulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-
-async def main() -> None:
- await client.executions_route_get(
- id="id",
- )
-
-asyncio.run(main())
-
-#### Signature
-
-```python
-async def executions_route_get(
- self, id: CommonUuid, request_options: typing.Optional[RequestOptions] = None
-) -> ExecutionsExecution: ...
-```
-
-### AsyncJulepApi().executions_route_resume_with_task_token
-
-[Show source in client.py:5674](../../../../../../julep/api/client.py#L5674)
-
-Resume an execution with a task token
-
-Parameters
-----------
-task_token : str
- A Task Token is a unique identifier for a specific Task Execution.
-
-input : typing.Optional[typing.Dict[str, typing.Any]]
- The input to resume the execution with
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-CommonResourceUpdatedResponse
- The request has succeeded.
-
-Examples
---------
-import asyncio
-
-from julep.client import AsyncJulepApi
-
-client = AsyncJulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-
-async def main() -> None:
- await client.executions_route_resume_with_task_token(
- task_token="task_token",
- )
-
-asyncio.run(main())
-
-#### Signature
-
-```python
-async def executions_route_resume_with_task_token(
- self,
- task_token: str,
- input: typing.Optional[typing.Dict[str, typing.Any]] = OMIT,
- request_options: typing.Optional[RequestOptions] = None,
-) -> CommonResourceUpdatedResponse: ...
-```
-
-#### See also
-
-- [OMIT](#omit)
-
-### AsyncJulepApi().executions_route_update
-
-[Show source in client.py:5788](../../../../../../julep/api/client.py#L5788)
-
-Update an existing Execution
-
-Parameters
-----------
-id : CommonUuid
- ID of the resource
-
-request : ExecutionsUpdateExecutionRequest
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-CommonResourceUpdatedResponse
- The request has succeeded.
-
-Examples
---------
-import asyncio
-
-from julep import ExecutionsUpdateExecutionRequest_Cancelled
-from julep.client import AsyncJulepApi
-
-client = AsyncJulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-
-async def main() -> None:
- await client.executions_route_update(
- id="string",
- request=ExecutionsUpdateExecutionRequest_Cancelled(
- reason="string",
- ),
- )
-
-asyncio.run(main())
-
-#### Signature
-
-```python
-async def executions_route_update(
- self,
- id: CommonUuid,
- request: ExecutionsUpdateExecutionRequest,
- request_options: typing.Optional[RequestOptions] = None,
-) -> CommonResourceUpdatedResponse: ...
-```
-
-### AsyncJulepApi().history_route_delete
-
-[Show source in client.py:6767](../../../../../../julep/api/client.py#L6767)
-
-Clear the history of a Session (resets the Session)
-
-Parameters
-----------
-id : CommonUuid
- ID of the resource
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-CommonResourceDeletedResponse
- The request has been accepted for processing, but processing has not yet completed.
-
-Examples
---------
-import asyncio
-
-from julep.client import AsyncJulepApi
-
-client = AsyncJulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-
-async def main() -> None:
- await client.history_route_delete(
- id="id",
- )
-
-asyncio.run(main())
-
-#### Signature
-
-```python
-async def history_route_delete(
- self, id: CommonUuid, request_options: typing.Optional[RequestOptions] = None
-) -> CommonResourceDeletedResponse: ...
-```
-
-### AsyncJulepApi().history_route_history
-
-[Show source in client.py:6715](../../../../../../julep/api/client.py#L6715)
-
-Get history of a Session
-
-Parameters
-----------
-id : CommonUuid
- ID of parent
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-EntriesHistory
- The request has succeeded.
-
-Examples
---------
-import asyncio
-
-from julep.client import AsyncJulepApi
-
-client = AsyncJulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-
-async def main() -> None:
- await client.history_route_history(
- id="id",
- )
-
-asyncio.run(main())
-
-#### Signature
-
-```python
-async def history_route_history(
- self, id: CommonUuid, request_options: typing.Optional[RequestOptions] = None
-) -> EntriesHistory: ...
-```
-
-### AsyncJulepApi().individual_docs_route_get
-
-[Show source in client.py:5563](../../../../../../julep/api/client.py#L5563)
-
-Get Doc by id
-
-Parameters
-----------
-id : CommonUuid
- ID of the resource
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-DocsDoc
- The request has succeeded.
-
-Examples
---------
-import asyncio
-
-from julep.client import AsyncJulepApi
-
-client = AsyncJulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-
-async def main() -> None:
- await client.individual_docs_route_get(
- id="id",
- )
-
-asyncio.run(main())
-
-#### Signature
-
-```python
-async def individual_docs_route_get(
- self, id: CommonUuid, request_options: typing.Optional[RequestOptions] = None
-) -> DocsDoc: ...
-```
-
-### AsyncJulepApi().job_route_get
-
-[Show source in client.py:5939](../../../../../../julep/api/client.py#L5939)
-
-Get the status of an existing Job by its id
-
-Parameters
-----------
-id : CommonUuid
- ID of the resource
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-JobsJobStatus
- The request has succeeded.
-
-Examples
---------
-import asyncio
-
-from julep.client import AsyncJulepApi
-
-client = AsyncJulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-
-async def main() -> None:
- await client.job_route_get(
- id="id",
- )
-
-asyncio.run(main())
-
-#### Signature
-
-```python
-async def job_route_get(
- self, id: CommonUuid, request_options: typing.Optional[RequestOptions] = None
-) -> JobsJobStatus: ...
-```
-
-### AsyncJulepApi().sessions_route_create
-
-[Show source in client.py:6073](../../../../../../julep/api/client.py#L6073)
-
-Create a new session
-
-Parameters
-----------
-situation : str
- A specific situation that sets the background for this session
-
-render_templates : bool
- Render system and assistant message content as jinja templates
-
-user : typing.Optional[CommonUuid]
- User ID of user associated with this session
-
-users : typing.Optional[typing.Sequence[CommonUuid]]
-
-agent : typing.Optional[CommonUuid]
- Agent ID of agent associated with this session
-
-agents : typing.Optional[typing.Sequence[CommonUuid]]
-
-token_budget : typing.Optional[int]
- Threshold value for the adaptive context functionality
-
-context_overflow : typing.Optional[SessionsContextOverflowType]
- Action to start on context window overflow
-
-metadata : typing.Optional[typing.Dict[str, typing.Any]]
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-CommonResourceCreatedResponse
- The request has succeeded and a new resource has been created as a result.
-
-Examples
---------
-import asyncio
-
-from julep.client import AsyncJulepApi
-
-client = AsyncJulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-
-async def main() -> None:
- await client.sessions_route_create(
- situation="situation",
- render_templates=True,
- )
-
-asyncio.run(main())
-
-#### Signature
-
-```python
-async def sessions_route_create(
- self,
- situation: str,
- render_templates: bool,
- user: typing.Optional[CommonUuid] = OMIT,
- users: typing.Optional[typing.Sequence[CommonUuid]] = OMIT,
- agent: typing.Optional[CommonUuid] = OMIT,
- agents: typing.Optional[typing.Sequence[CommonUuid]] = OMIT,
- token_budget: typing.Optional[int] = OMIT,
- context_overflow: typing.Optional[SessionsContextOverflowType] = OMIT,
- metadata: typing.Optional[typing.Dict[str, typing.Any]] = OMIT,
- request_options: typing.Optional[RequestOptions] = None,
-) -> CommonResourceCreatedResponse: ...
-```
-
-#### See also
-
-- [OMIT](#omit)
-
-### AsyncJulepApi().sessions_route_create_or_update
-
-[Show source in client.py:6222](../../../../../../julep/api/client.py#L6222)
-
-Create or update a session
-
-Parameters
-----------
-id : CommonUuid
-
-situation : str
- A specific situation that sets the background for this session
-
-render_templates : bool
- Render system and assistant message content as jinja templates
-
-user : typing.Optional[CommonUuid]
- User ID of user associated with this session
-
-users : typing.Optional[typing.Sequence[CommonUuid]]
-
-agent : typing.Optional[CommonUuid]
- Agent ID of agent associated with this session
-
-agents : typing.Optional[typing.Sequence[CommonUuid]]
-
-token_budget : typing.Optional[int]
- Threshold value for the adaptive context functionality
-
-context_overflow : typing.Optional[SessionsContextOverflowType]
- Action to start on context window overflow
-
-metadata : typing.Optional[typing.Dict[str, typing.Any]]
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-CommonResourceUpdatedResponse
- The request has succeeded.
-
-Examples
---------
-import asyncio
-
-from julep.client import AsyncJulepApi
-
-client = AsyncJulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-
-async def main() -> None:
- await client.sessions_route_create_or_update(
- id="id",
- situation="situation",
- render_templates=True,
- )
-
-asyncio.run(main())
-
-#### Signature
-
-```python
-async def sessions_route_create_or_update(
- self,
- id: CommonUuid,
- situation: str,
- render_templates: bool,
- user: typing.Optional[CommonUuid] = OMIT,
- users: typing.Optional[typing.Sequence[CommonUuid]] = OMIT,
- agent: typing.Optional[CommonUuid] = OMIT,
- agents: typing.Optional[typing.Sequence[CommonUuid]] = OMIT,
- token_budget: typing.Optional[int] = OMIT,
- context_overflow: typing.Optional[SessionsContextOverflowType] = OMIT,
- metadata: typing.Optional[typing.Dict[str, typing.Any]] = OMIT,
- request_options: typing.Optional[RequestOptions] = None,
-) -> CommonResourceUpdatedResponse: ...
-```
-
-#### See also
-
-- [OMIT](#omit)
-
-### AsyncJulepApi().sessions_route_delete
-
-[Show source in client.py:6407](../../../../../../julep/api/client.py#L6407)
-
-Delete a session by its id
-
-Parameters
-----------
-id : CommonUuid
- ID of the resource
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-CommonResourceDeletedResponse
- The request has been accepted for processing, but processing has not yet completed.
-
-Examples
---------
-import asyncio
-
-from julep.client import AsyncJulepApi
-
-client = AsyncJulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-
-async def main() -> None:
- await client.sessions_route_delete(
- id="id",
- )
-
-asyncio.run(main())
-
-#### Signature
-
-```python
-async def sessions_route_delete(
- self, id: CommonUuid, request_options: typing.Optional[RequestOptions] = None
-) -> CommonResourceDeletedResponse: ...
-```
-
-### AsyncJulepApi().sessions_route_get
-
-[Show source in client.py:6170](../../../../../../julep/api/client.py#L6170)
-
-Get a session by id
-
-Parameters
-----------
-id : CommonUuid
- ID of the resource
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-SessionsSession
- The request has succeeded.
-
-Examples
---------
-import asyncio
-
-from julep.client import AsyncJulepApi
-
-client = AsyncJulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-
-async def main() -> None:
- await client.sessions_route_get(
- id="string",
- )
-
-asyncio.run(main())
-
-#### Signature
-
-```python
-async def sessions_route_get(
- self, id: CommonUuid, request_options: typing.Optional[RequestOptions] = None
-) -> SessionsSession: ...
-```
-
-### AsyncJulepApi().sessions_route_list
-
-[Show source in client.py:5991](../../../../../../julep/api/client.py#L5991)
-
-List sessions (paginated)
-
-Parameters
-----------
-limit : CommonLimit
- Limit the number of items returned
-
-offset : CommonOffset
- Offset the items returned
-
-sort_by : SessionsRouteListRequestSortBy
- Sort by a field
-
-direction : SessionsRouteListRequestDirection
- Sort direction
-
-metadata_filter : str
- JSON string of object that should be used to filter objects by metadata
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-SessionsRouteListResponse
- The request has succeeded.
-
-Examples
---------
-import asyncio
-
-from julep.client import AsyncJulepApi
-
-client = AsyncJulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-
-async def main() -> None:
- await client.sessions_route_list(
- limit=1,
- offset=1,
- sort_by="created_at",
- direction="asc",
- metadata_filter="metadata_filter",
- )
-
-asyncio.run(main())
-
-#### Signature
-
-```python
-async def sessions_route_list(
- self,
- limit: CommonLimit,
- offset: CommonOffset,
- sort_by: SessionsRouteListRequestSortBy,
- direction: SessionsRouteListRequestDirection,
- metadata_filter: str,
- request_options: typing.Optional[RequestOptions] = None,
-) -> SessionsRouteListResponse: ...
-```
-
-### AsyncJulepApi().sessions_route_patch
-
-[Show source in client.py:6459](../../../../../../julep/api/client.py#L6459)
-
-Update an existing session by its id (merges with existing values)
-
-Parameters
-----------
-id : CommonUuid
- ID of the resource
-
-situation : typing.Optional[str]
- A specific situation that sets the background for this session
-
-render_templates : typing.Optional[bool]
- Render system and assistant message content as jinja templates
-
-token_budget : typing.Optional[int]
- Threshold value for the adaptive context functionality
-
-context_overflow : typing.Optional[SessionsContextOverflowType]
- Action to start on context window overflow
-
-metadata : typing.Optional[typing.Dict[str, typing.Any]]
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-CommonResourceUpdatedResponse
- The request has succeeded.
-
-Examples
---------
-import asyncio
-
-from julep.client import AsyncJulepApi
-
-client = AsyncJulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-
-async def main() -> None:
- await client.sessions_route_patch(
- id="id",
- )
-
-asyncio.run(main())
-
-#### Signature
-
-```python
-async def sessions_route_patch(
- self,
- id: CommonUuid,
- situation: typing.Optional[str] = OMIT,
- render_templates: typing.Optional[bool] = OMIT,
- token_budget: typing.Optional[int] = OMIT,
- context_overflow: typing.Optional[SessionsContextOverflowType] = OMIT,
- metadata: typing.Optional[typing.Dict[str, typing.Any]] = OMIT,
- request_options: typing.Optional[RequestOptions] = None,
-) -> CommonResourceUpdatedResponse: ...
-```
-
-#### See also
-
-- [OMIT](#omit)
-
-### AsyncJulepApi().sessions_route_update
-
-[Show source in client.py:6323](../../../../../../julep/api/client.py#L6323)
-
-Update an existing session by its id (overwrites all existing values)
-
-Parameters
-----------
-id : CommonUuid
- ID of the resource
-
-situation : str
- A specific situation that sets the background for this session
-
-render_templates : bool
- Render system and assistant message content as jinja templates
-
-token_budget : typing.Optional[int]
- Threshold value for the adaptive context functionality
-
-context_overflow : typing.Optional[SessionsContextOverflowType]
- Action to start on context window overflow
-
-metadata : typing.Optional[typing.Dict[str, typing.Any]]
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-CommonResourceUpdatedResponse
- The request has succeeded.
-
-Examples
---------
-import asyncio
-
-from julep.client import AsyncJulepApi
-
-client = AsyncJulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-
-async def main() -> None:
- await client.sessions_route_update(
- id="id",
- situation="situation",
- render_templates=True,
- )
-
-asyncio.run(main())
-
-#### Signature
-
-```python
-async def sessions_route_update(
- self,
- id: CommonUuid,
- situation: str,
- render_templates: bool,
- token_budget: typing.Optional[int] = OMIT,
- context_overflow: typing.Optional[SessionsContextOverflowType] = OMIT,
- metadata: typing.Optional[typing.Dict[str, typing.Any]] = OMIT,
- request_options: typing.Optional[RequestOptions] = None,
-) -> CommonResourceUpdatedResponse: ...
-```
-
-#### See also
-
-- [OMIT](#omit)
-
-### AsyncJulepApi().task_executions_route_create
-
-[Show source in client.py:6906](../../../../../../julep/api/client.py#L6906)
-
-Create an execution for the given task
-
-Parameters
-----------
-id : CommonUuid
- ID of parent resource
-
-input : typing.Dict[str, typing.Any]
- The input to the execution
-
-metadata : typing.Optional[typing.Dict[str, typing.Any]]
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-CommonResourceCreatedResponse
- The request has succeeded and a new resource has been created as a result.
-
-Examples
---------
-import asyncio
-
-from julep.client import AsyncJulepApi
-
-client = AsyncJulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-
-async def main() -> None:
- await client.task_executions_route_create(
- id="id",
- input={"key": "value"},
- )
-
-asyncio.run(main())
-
-#### Signature
-
-```python
-async def task_executions_route_create(
- self,
- id: CommonUuid,
- input: typing.Dict[str, typing.Any],
- metadata: typing.Optional[typing.Dict[str, typing.Any]] = OMIT,
- request_options: typing.Optional[RequestOptions] = None,
-) -> CommonResourceCreatedResponse: ...
-```
-
-#### See also
-
-- [OMIT](#omit)
-
-### AsyncJulepApi().task_executions_route_list
-
-[Show source in client.py:6819](../../../../../../julep/api/client.py#L6819)
-
-List executions of the given task
-
-Parameters
-----------
-id : CommonUuid
- ID of parent
-
-limit : CommonLimit
- Limit the number of items returned
-
-offset : CommonOffset
- Offset the items returned
-
-sort_by : TaskExecutionsRouteListRequestSortBy
- Sort by a field
-
-direction : TaskExecutionsRouteListRequestDirection
- Sort direction
-
-metadata_filter : str
- JSON string of object that should be used to filter objects by metadata
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-TaskExecutionsRouteListResponse
- The request has succeeded.
-
-Examples
---------
-import asyncio
-
-from julep.client import AsyncJulepApi
-
-client = AsyncJulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-
-async def main() -> None:
- await client.task_executions_route_list(
- id="id",
- limit=1,
- offset=1,
- sort_by="created_at",
- direction="asc",
- metadata_filter="metadata_filter",
- )
-
-asyncio.run(main())
-
-#### Signature
-
-```python
-async def task_executions_route_list(
- self,
- id: CommonUuid,
- limit: CommonLimit,
- offset: CommonOffset,
- sort_by: TaskExecutionsRouteListRequestSortBy,
- direction: TaskExecutionsRouteListRequestDirection,
- metadata_filter: str,
- request_options: typing.Optional[RequestOptions] = None,
-) -> TaskExecutionsRouteListResponse: ...
-```
-
-### AsyncJulepApi().tasks_create_or_update_route_create_or_update
-
-[Show source in client.py:5458](../../../../../../julep/api/client.py#L5458)
-
-Create or update a task
-
-Parameters
-----------
-parent_id : CommonUuid
- ID of the agent
-
-id : CommonUuid
-
-name : str
-
-description : str
-
-main : typing.Sequence[TasksCreateTaskRequestMainItem]
- The entrypoint of the task.
-
-tools : typing.Sequence[TasksTaskTool]
- Tools defined specifically for this task not included in the Agent itself.
-
-inherit_tools : bool
- Whether to inherit tools from the parent agent or not. Defaults to true.
-
-input_schema : typing.Optional[typing.Dict[str, typing.Any]]
- The schema for the input to the task. `null` means all inputs are valid.
-
-metadata : typing.Optional[typing.Dict[str, typing.Any]]
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-CommonResourceCreatedResponse
- The request has succeeded and a new resource has been created as a result.
-
-Examples
---------
-import asyncio
-
-from julep import TasksTaskTool
-from julep.client import AsyncJulepApi
-
-client = AsyncJulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-
-async def main() -> None:
- await client.tasks_create_or_update_route_create_or_update(
- parent_id="parent_id",
- id="id",
- name="name",
- description="description",
- main=[],
- tools=[
- TasksTaskTool(
- type="function",
- name="name",
- )
- ],
- inherit_tools=True,
- )
-
-asyncio.run(main())
-
-#### Signature
-
-```python
-async def tasks_create_or_update_route_create_or_update(
- self,
- parent_id: CommonUuid,
- id: CommonUuid,
- name: str,
- description: str,
- main: typing.Sequence[TasksCreateTaskRequestMainItem],
- tools: typing.Sequence[TasksTaskTool],
- inherit_tools: bool,
- input_schema: typing.Optional[typing.Dict[str, typing.Any]] = OMIT,
- metadata: typing.Optional[typing.Dict[str, typing.Any]] = OMIT,
- request_options: typing.Optional[RequestOptions] = None,
-) -> CommonResourceCreatedResponse: ...
-```
-
-#### See also
-
-- [OMIT](#omit)
-
-### AsyncJulepApi().tasks_route_create
-
-[Show source in client.py:4687](../../../../../../julep/api/client.py#L4687)
-
-Create a new task
-
-Parameters
-----------
-id : CommonUuid
- ID of parent resource
-
-name : str
-
-description : str
-
-main : typing.Sequence[TasksCreateTaskRequestMainItem]
- The entrypoint of the task.
-
-tools : typing.Sequence[TasksTaskTool]
- Tools defined specifically for this task not included in the Agent itself.
-
-inherit_tools : bool
- Whether to inherit tools from the parent agent or not. Defaults to true.
-
-input_schema : typing.Optional[typing.Dict[str, typing.Any]]
- The schema for the input to the task. `null` means all inputs are valid.
-
-metadata : typing.Optional[typing.Dict[str, typing.Any]]
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-CommonResourceCreatedResponse
- The request has succeeded.
-
-Examples
---------
-import asyncio
-
-from julep import TasksTaskTool
-from julep.client import AsyncJulepApi
-
-client = AsyncJulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-
-async def main() -> None:
- await client.tasks_route_create(
- id="id",
- name="name",
- description="description",
- main=[],
- tools=[
- TasksTaskTool(
- type="function",
- name="name",
- )
- ],
- inherit_tools=True,
- )
-
-asyncio.run(main())
-
-#### Signature
-
-```python
-async def tasks_route_create(
- self,
- id: CommonUuid,
- name: str,
- description: str,
- main: typing.Sequence[TasksCreateTaskRequestMainItem],
- tools: typing.Sequence[TasksTaskTool],
- inherit_tools: bool,
- input_schema: typing.Optional[typing.Dict[str, typing.Any]] = OMIT,
- metadata: typing.Optional[typing.Dict[str, typing.Any]] = OMIT,
- request_options: typing.Optional[RequestOptions] = None,
-) -> CommonResourceCreatedResponse: ...
-```
-
-#### See also
-
-- [OMIT](#omit)
-
-### AsyncJulepApi().tasks_route_delete
-
-[Show source in client.py:4889](../../../../../../julep/api/client.py#L4889)
-
-Delete a task by its id
-
-Parameters
-----------
-id : CommonUuid
- ID of parent resource
-
-child_id : CommonUuid
- ID of the resource to be deleted
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-CommonResourceDeletedResponse
- The request has been accepted for processing, but processing has not yet completed.
-
-Examples
---------
-import asyncio
-
-from julep.client import AsyncJulepApi
-
-client = AsyncJulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-
-async def main() -> None:
- await client.tasks_route_delete(
- id="id",
- child_id="child_id",
- )
-
-asyncio.run(main())
-
-#### Signature
-
-```python
-async def tasks_route_delete(
- self,
- id: CommonUuid,
- child_id: CommonUuid,
- request_options: typing.Optional[RequestOptions] = None,
-) -> CommonResourceDeletedResponse: ...
-```
-
-### AsyncJulepApi().tasks_route_list
-
-[Show source in client.py:4600](../../../../../../julep/api/client.py#L4600)
-
-List tasks (paginated)
-
-Parameters
-----------
-id : CommonUuid
- ID of parent
-
-limit : CommonLimit
- Limit the number of items returned
-
-offset : CommonOffset
- Offset the items returned
-
-sort_by : TasksRouteListRequestSortBy
- Sort by a field
-
-direction : TasksRouteListRequestDirection
- Sort direction
-
-metadata_filter : str
- JSON string of object that should be used to filter objects by metadata
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-TasksRouteListResponse
- The request has succeeded.
-
-Examples
---------
-import asyncio
-
-from julep.client import AsyncJulepApi
-
-client = AsyncJulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-
-async def main() -> None:
- await client.tasks_route_list(
- id="id",
- limit=1,
- offset=1,
- sort_by="created_at",
- direction="asc",
- metadata_filter="metadata_filter",
- )
-
-asyncio.run(main())
-
-#### Signature
-
-```python
-async def tasks_route_list(
- self,
- id: CommonUuid,
- limit: CommonLimit,
- offset: CommonOffset,
- sort_by: TasksRouteListRequestSortBy,
- direction: TasksRouteListRequestDirection,
- metadata_filter: str,
- request_options: typing.Optional[RequestOptions] = None,
-) -> TasksRouteListResponse: ...
-```
-
-### AsyncJulepApi().tasks_route_patch
-
-[Show source in client.py:4949](../../../../../../julep/api/client.py#L4949)
-
-Update an existing task (merges with existing values)
-
-Parameters
-----------
-id : CommonUuid
- ID of parent resource
-
-child_id : CommonUuid
- ID of the resource to be patched
-
-description : typing.Optional[str]
-
-main : typing.Optional[typing.Sequence[TasksPatchTaskRequestMainItem]]
- The entrypoint of the task.
-
-input_schema : typing.Optional[typing.Dict[str, typing.Any]]
- The schema for the input to the task. `null` means all inputs are valid.
-
-tools : typing.Optional[typing.Sequence[TasksTaskTool]]
- Tools defined specifically for this task not included in the Agent itself.
-
-inherit_tools : typing.Optional[bool]
- Whether to inherit tools from the parent agent or not. Defaults to true.
-
-metadata : typing.Optional[typing.Dict[str, typing.Any]]
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-CommonResourceUpdatedResponse
- The request has succeeded.
-
-Examples
---------
-import asyncio
-
-from julep.client import AsyncJulepApi
-
-client = AsyncJulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-
-async def main() -> None:
- await client.tasks_route_patch(
- id="id",
- child_id="child_id",
- )
-
-asyncio.run(main())
-
-#### Signature
-
-```python
-async def tasks_route_patch(
- self,
- id: CommonUuid,
- child_id: CommonUuid,
- description: typing.Optional[str] = OMIT,
- main: typing.Optional[typing.Sequence[TasksPatchTaskRequestMainItem]] = OMIT,
- input_schema: typing.Optional[typing.Dict[str, typing.Any]] = OMIT,
- tools: typing.Optional[typing.Sequence[TasksTaskTool]] = OMIT,
- inherit_tools: typing.Optional[bool] = OMIT,
- metadata: typing.Optional[typing.Dict[str, typing.Any]] = OMIT,
- request_options: typing.Optional[RequestOptions] = None,
-) -> CommonResourceUpdatedResponse: ...
-```
-
-#### See also
-
-- [OMIT](#omit)
-
-### AsyncJulepApi().tasks_route_update
-
-[Show source in client.py:4788](../../../../../../julep/api/client.py#L4788)
-
-Update an existing task (overwrite existing values)
-
-Parameters
-----------
-id : CommonUuid
- ID of parent resource
-
-child_id : CommonUuid
- ID of the resource to be updated
-
-description : str
-
-main : typing.Sequence[TasksUpdateTaskRequestMainItem]
- The entrypoint of the task.
-
-tools : typing.Sequence[TasksTaskTool]
- Tools defined specifically for this task not included in the Agent itself.
-
-inherit_tools : bool
- Whether to inherit tools from the parent agent or not. Defaults to true.
-
-input_schema : typing.Optional[typing.Dict[str, typing.Any]]
- The schema for the input to the task. `null` means all inputs are valid.
-
-metadata : typing.Optional[typing.Dict[str, typing.Any]]
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-CommonResourceUpdatedResponse
- The request has succeeded.
-
-Examples
---------
-import asyncio
-
-from julep import TasksTaskTool
-from julep.client import AsyncJulepApi
-
-client = AsyncJulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-
-async def main() -> None:
- await client.tasks_route_update(
- id="id",
- child_id="child_id",
- description="description",
- main=[],
- tools=[
- TasksTaskTool(
- type="function",
- name="name",
- )
- ],
- inherit_tools=True,
- )
-
-asyncio.run(main())
-
-#### Signature
-
-```python
-async def tasks_route_update(
- self,
- id: CommonUuid,
- child_id: CommonUuid,
- description: str,
- main: typing.Sequence[TasksUpdateTaskRequestMainItem],
- tools: typing.Sequence[TasksTaskTool],
- inherit_tools: bool,
- input_schema: typing.Optional[typing.Dict[str, typing.Any]] = OMIT,
- metadata: typing.Optional[typing.Dict[str, typing.Any]] = OMIT,
- request_options: typing.Optional[RequestOptions] = None,
-) -> CommonResourceUpdatedResponse: ...
-```
-
-#### See also
-
-- [OMIT](#omit)
-
-### AsyncJulepApi().user_docs_route_create
-
-[Show source in client.py:7516](../../../../../../julep/api/client.py#L7516)
-
-Create a Doc for this User
-
-Parameters
-----------
-id : CommonUuid
- ID of parent resource
-
-title : CommonIdentifierSafeUnicode
- Title describing what this document contains
-
-content : DocsCreateDocRequestContent
- Contents of the document
-
-metadata : typing.Optional[typing.Dict[str, typing.Any]]
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-CommonResourceCreatedResponse
- The request has succeeded and a new resource has been created as a result.
-
-Examples
---------
-import asyncio
-
-from julep.client import AsyncJulepApi
-
-client = AsyncJulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-
-async def main() -> None:
- await client.user_docs_route_create(
- id="id",
- title="title",
- content="content",
- )
-
-asyncio.run(main())
-
-#### Signature
-
-```python
-async def user_docs_route_create(
- self,
- id: CommonUuid,
- title: CommonIdentifierSafeUnicode,
- content: DocsCreateDocRequestContent,
- metadata: typing.Optional[typing.Dict[str, typing.Any]] = OMIT,
- request_options: typing.Optional[RequestOptions] = None,
-) -> CommonResourceCreatedResponse: ...
-```
-
-#### See also
-
-- [OMIT](#omit)
-
-### AsyncJulepApi().user_docs_route_delete
-
-[Show source in client.py:7586](../../../../../../julep/api/client.py#L7586)
-
-Delete a Doc for this User
-
-Parameters
-----------
-id : CommonUuid
- ID of parent resource
-
-child_id : CommonUuid
- ID of the resource to be deleted
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-CommonResourceDeletedResponse
- The request has been accepted for processing, but processing has not yet completed.
-
-Examples
---------
-import asyncio
-
-from julep.client import AsyncJulepApi
-
-client = AsyncJulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-
-async def main() -> None:
- await client.user_docs_route_delete(
- id="id",
- child_id="child_id",
- )
-
-asyncio.run(main())
-
-#### Signature
-
-```python
-async def user_docs_route_delete(
- self,
- id: CommonUuid,
- child_id: CommonUuid,
- request_options: typing.Optional[RequestOptions] = None,
-) -> CommonResourceDeletedResponse: ...
-```
-
-### AsyncJulepApi().user_docs_route_list
-
-[Show source in client.py:7429](../../../../../../julep/api/client.py#L7429)
-
-List Docs owned by a User
-
-Parameters
-----------
-id : CommonUuid
- ID of parent
-
-limit : CommonLimit
- Limit the number of items returned
-
-offset : CommonOffset
- Offset the items returned
-
-sort_by : UserDocsRouteListRequestSortBy
- Sort by a field
-
-direction : UserDocsRouteListRequestDirection
- Sort direction
-
-metadata_filter : str
- JSON string of object that should be used to filter objects by metadata
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-UserDocsRouteListResponse
- The request has succeeded.
-
-Examples
---------
-import asyncio
-
-from julep.client import AsyncJulepApi
-
-client = AsyncJulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-
-async def main() -> None:
- await client.user_docs_route_list(
- id="id",
- limit=1,
- offset=1,
- sort_by="created_at",
- direction="asc",
- metadata_filter="metadata_filter",
- )
-
-asyncio.run(main())
-
-#### Signature
-
-```python
-async def user_docs_route_list(
- self,
- id: CommonUuid,
- limit: CommonLimit,
- offset: CommonOffset,
- sort_by: UserDocsRouteListRequestSortBy,
- direction: UserDocsRouteListRequestDirection,
- metadata_filter: str,
- request_options: typing.Optional[RequestOptions] = None,
-) -> UserDocsRouteListResponse: ...
-```
-
-### AsyncJulepApi().user_docs_search_route_search
-
-[Show source in client.py:7646](../../../../../../julep/api/client.py#L7646)
-
-Search Docs owned by a User
-
-Parameters
-----------
-id : CommonUuid
- ID of the parent
-
-body : UserDocsSearchRouteSearchRequestBody
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-DocsDocSearchResponse
- The request has succeeded.
-
-Examples
---------
-import asyncio
-
-from julep import DocsVectorDocSearchRequest
-from julep.client import AsyncJulepApi
-
-client = AsyncJulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-
-async def main() -> None:
- await client.user_docs_search_route_search(
- id="id",
- body=DocsVectorDocSearchRequest(
- limit=1,
- confidence=1.1,
- vector=[1.1],
- ),
- )
-
-asyncio.run(main())
-
-#### Signature
-
-```python
-async def user_docs_search_route_search(
- self,
- id: CommonUuid,
- body: UserDocsSearchRouteSearchRequestBody,
- request_options: typing.Optional[RequestOptions] = None,
-) -> DocsDocSearchResponse: ...
-```
-
-### AsyncJulepApi().users_route_create
-
-[Show source in client.py:7053](../../../../../../julep/api/client.py#L7053)
-
-Create a new user
-
-Parameters
-----------
-name : CommonIdentifierSafeUnicode
- Name of the user
-
-about : str
- About the user
-
-metadata : typing.Optional[typing.Dict[str, typing.Any]]
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-CommonResourceCreatedResponse
- The request has succeeded and a new resource has been created as a result.
-
-Examples
---------
-import asyncio
-
-from julep.client import AsyncJulepApi
-
-client = AsyncJulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-
-async def main() -> None:
- await client.users_route_create(
- name="name",
- about="about",
- )
-
-asyncio.run(main())
-
-#### Signature
-
-```python
-async def users_route_create(
- self,
- name: CommonIdentifierSafeUnicode,
- about: str,
- metadata: typing.Optional[typing.Dict[str, typing.Any]] = OMIT,
- request_options: typing.Optional[RequestOptions] = None,
-) -> CommonResourceCreatedResponse: ...
-```
-
-#### See also
-
-- [OMIT](#omit)
-
-### AsyncJulepApi().users_route_create_or_update
-
-[Show source in client.py:7170](../../../../../../julep/api/client.py#L7170)
-
-Create or update a user
-
-Parameters
-----------
-id : CommonUuid
-
-name : CommonIdentifierSafeUnicode
- Name of the user
-
-about : str
- About the user
-
-metadata : typing.Optional[typing.Dict[str, typing.Any]]
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-CommonResourceUpdatedResponse
- The request has succeeded.
-
-Examples
---------
-import asyncio
-
-from julep.client import AsyncJulepApi
-
-client = AsyncJulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-
-async def main() -> None:
- await client.users_route_create_or_update(
- id="id",
- name="name",
- about="about",
- )
-
-asyncio.run(main())
-
-#### Signature
-
-```python
-async def users_route_create_or_update(
- self,
- id: CommonUuid,
- name: CommonIdentifierSafeUnicode,
- about: str,
- metadata: typing.Optional[typing.Dict[str, typing.Any]] = OMIT,
- request_options: typing.Optional[RequestOptions] = None,
-) -> CommonResourceUpdatedResponse: ...
-```
-
-#### See also
-
-- [OMIT](#omit)
-
-### AsyncJulepApi().users_route_delete
-
-[Show source in client.py:7309](../../../../../../julep/api/client.py#L7309)
-
-Delete a user by id
-
-Parameters
-----------
-id : CommonUuid
- ID of the resource
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-CommonResourceDeletedResponse
- The request has been accepted for processing, but processing has not yet completed.
-
-Examples
---------
-import asyncio
-
-from julep.client import AsyncJulepApi
-
-client = AsyncJulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-
-async def main() -> None:
- await client.users_route_delete(
- id="id",
- )
-
-asyncio.run(main())
-
-#### Signature
-
-```python
-async def users_route_delete(
- self, id: CommonUuid, request_options: typing.Optional[RequestOptions] = None
-) -> CommonResourceDeletedResponse: ...
-```
-
-### AsyncJulepApi().users_route_get
-
-[Show source in client.py:7118](../../../../../../julep/api/client.py#L7118)
-
-Get a user by id
-
-Parameters
-----------
-id : CommonUuid
- ID of the resource
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-UsersUser
- The request has succeeded.
-
-Examples
---------
-import asyncio
-
-from julep.client import AsyncJulepApi
-
-client = AsyncJulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-
-async def main() -> None:
- await client.users_route_get(
- id="id",
- )
-
-asyncio.run(main())
-
-#### Signature
-
-```python
-async def users_route_get(
- self, id: CommonUuid, request_options: typing.Optional[RequestOptions] = None
-) -> UsersUser: ...
-```
-
-### AsyncJulepApi().users_route_list
-
-[Show source in client.py:6971](../../../../../../julep/api/client.py#L6971)
-
-List users (paginated)
-
-Parameters
-----------
-limit : CommonLimit
- Limit the number of items returned
-
-offset : CommonOffset
- Offset the items returned
-
-sort_by : UsersRouteListRequestSortBy
- Sort by a field
-
-direction : UsersRouteListRequestDirection
- Sort direction
-
-metadata_filter : str
- JSON string of object that should be used to filter objects by metadata
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-UsersRouteListResponse
- The request has succeeded.
-
-Examples
---------
-import asyncio
-
-from julep.client import AsyncJulepApi
-
-client = AsyncJulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-
-async def main() -> None:
- await client.users_route_list(
- limit=1,
- offset=1,
- sort_by="created_at",
- direction="asc",
- metadata_filter="metadata_filter",
- )
-
-asyncio.run(main())
-
-#### Signature
-
-```python
-async def users_route_list(
- self,
- limit: CommonLimit,
- offset: CommonOffset,
- sort_by: UsersRouteListRequestSortBy,
- direction: UsersRouteListRequestDirection,
- metadata_filter: str,
- request_options: typing.Optional[RequestOptions] = None,
-) -> UsersRouteListResponse: ...
-```
-
-### AsyncJulepApi().users_route_patch
-
-[Show source in client.py:7361](../../../../../../julep/api/client.py#L7361)
-
-Update an existing user by id (merge with existing values)
-
-Parameters
-----------
-id : CommonUuid
- ID of the resource
-
-metadata : typing.Optional[typing.Dict[str, typing.Any]]
-
-name : typing.Optional[CommonIdentifierSafeUnicode]
- Name of the user
-
-about : typing.Optional[str]
- About the user
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-CommonResourceUpdatedResponse
- The request has succeeded.
-
-Examples
---------
-import asyncio
-
-from julep.client import AsyncJulepApi
-
-client = AsyncJulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-
-async def main() -> None:
- await client.users_route_patch(
- id="id",
- )
-
-asyncio.run(main())
-
-#### Signature
-
-```python
-async def users_route_patch(
- self,
- id: CommonUuid,
- metadata: typing.Optional[typing.Dict[str, typing.Any]] = OMIT,
- name: typing.Optional[CommonIdentifierSafeUnicode] = OMIT,
- about: typing.Optional[str] = OMIT,
- request_options: typing.Optional[RequestOptions] = None,
-) -> CommonResourceUpdatedResponse: ...
-```
-
-#### See also
-
-- [OMIT](#omit)
-
-### AsyncJulepApi().users_route_update
-
-[Show source in client.py:7239](../../../../../../julep/api/client.py#L7239)
-
-Update an existing user by id (overwrite existing values)
-
-Parameters
-----------
-id : CommonUuid
- ID of the resource
-
-name : CommonIdentifierSafeUnicode
- Name of the user
-
-about : str
- About the user
-
-metadata : typing.Optional[typing.Dict[str, typing.Any]]
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-CommonResourceUpdatedResponse
- The request has succeeded.
-
-Examples
---------
-import asyncio
-
-from julep.client import AsyncJulepApi
-
-client = AsyncJulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-
-async def main() -> None:
- await client.users_route_update(
- id="id",
- name="name",
- about="about",
- )
-
-asyncio.run(main())
-
-#### Signature
-
-```python
-async def users_route_update(
- self,
- id: CommonUuid,
- name: CommonIdentifierSafeUnicode,
- about: str,
- metadata: typing.Optional[typing.Dict[str, typing.Any]] = OMIT,
- request_options: typing.Optional[RequestOptions] = None,
-) -> CommonResourceUpdatedResponse: ...
-```
-
-#### See also
-
-- [OMIT](#omit)
-
-
-
-## JulepApi
-
-[Show source in client.py:115](../../../../../../julep/api/client.py#L115)
-
-Use this class to access the different functions within the SDK. You can instantiate any number of clients with different configuration that will propagate to these functions.
-
-Parameters
-----------
-base_url : typing.Optional[str]
- The base url to use for requests from the client.
-
-environment : JulepApiEnvironment
- The environment to use for requests from the client. from .environment import JulepApiEnvironment
-
-Defaults to JulepApiEnvironment.DEFAULT
-
-auth_key : str
-api_key : str
-timeout : typing.Optional[float]
- The timeout to be used, in seconds, for requests. By default the timeout is 300 seconds, unless a custom httpx client is used, in which case this default is not enforced.
-
-follow_redirects : typing.Optional[bool]
- Whether the default httpx client follows redirects or not, this is irrelevant if a custom httpx client is passed in.
-
-httpx_client : typing.Optional[httpx.Client]
- The httpx client to use for making requests, a preconfigured client is used by default, however this is useful should you want to pass in any custom httpx configuration.
-
-Examples
---------
-from julep.client import JulepApi
-
-client = JulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-
-#### Signature
-
-```python
-class JulepApi:
- def __init__(
- self,
- base_url: typing.Optional[str] = None,
- environment: JulepApiEnvironment = JulepApiEnvironment.DEFAULT,
- auth_key: str,
- api_key: str,
- timeout: typing.Optional[float] = None,
- follow_redirects: typing.Optional[bool] = True,
- httpx_client: typing.Optional[httpx.Client] = None,
- ): ...
-```
-
-### JulepApi().agent_docs_route_create
-
-[Show source in client.py:749](../../../../../../julep/api/client.py#L749)
-
-Create a Doc for this Agent
-
-Parameters
-----------
-id : CommonUuid
- ID of parent resource
-
-title : CommonIdentifierSafeUnicode
- Title describing what this document contains
-
-content : DocsCreateDocRequestContent
- Contents of the document
-
-metadata : typing.Optional[typing.Dict[str, typing.Any]]
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-CommonResourceCreatedResponse
- The request has succeeded and a new resource has been created as a result.
-
-Examples
---------
-from julep.client import JulepApi
-
-client = JulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-client.agent_docs_route_create(
- id="id",
- title="title",
- content="content",
-)
-
-#### Signature
-
-```python
-def agent_docs_route_create(
- self,
- id: CommonUuid,
- title: CommonIdentifierSafeUnicode,
- content: DocsCreateDocRequestContent,
- metadata: typing.Optional[typing.Dict[str, typing.Any]] = OMIT,
- request_options: typing.Optional[RequestOptions] = None,
-) -> CommonResourceCreatedResponse: ...
-```
-
-#### See also
-
-- [OMIT](#omit)
-
-### JulepApi().agent_docs_route_delete
-
-[Show source in client.py:811](../../../../../../julep/api/client.py#L811)
-
-Delete a Doc for this Agent
-
-Parameters
-----------
-id : CommonUuid
- ID of parent resource
-
-child_id : CommonUuid
- ID of the resource to be deleted
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-CommonResourceDeletedResponse
- The request has been accepted for processing, but processing has not yet completed.
-
-Examples
---------
-from julep.client import JulepApi
-
-client = JulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-client.agent_docs_route_delete(
- id="id",
- child_id="child_id",
-)
-
-#### Signature
-
-```python
-def agent_docs_route_delete(
- self,
- id: CommonUuid,
- child_id: CommonUuid,
- request_options: typing.Optional[RequestOptions] = None,
-) -> CommonResourceDeletedResponse: ...
-```
-
-### JulepApi().agent_docs_route_list
-
-[Show source in client.py:670](../../../../../../julep/api/client.py#L670)
-
-List Docs owned by an Agent
-
-Parameters
-----------
-id : CommonUuid
- ID of parent
-
-limit : CommonLimit
- Limit the number of items returned
-
-offset : CommonOffset
- Offset the items returned
-
-sort_by : AgentDocsRouteListRequestSortBy
- Sort by a field
-
-direction : AgentDocsRouteListRequestDirection
- Sort direction
-
-metadata_filter : str
- JSON string of object that should be used to filter objects by metadata
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-AgentDocsRouteListResponse
- The request has succeeded.
-
-Examples
---------
-from julep.client import JulepApi
-
-client = JulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-client.agent_docs_route_list(
- id="id",
- limit=1,
- offset=1,
- sort_by="created_at",
- direction="asc",
- metadata_filter="metadata_filter",
-)
-
-#### Signature
-
-```python
-def agent_docs_route_list(
- self,
- id: CommonUuid,
- limit: CommonLimit,
- offset: CommonOffset,
- sort_by: AgentDocsRouteListRequestSortBy,
- direction: AgentDocsRouteListRequestDirection,
- metadata_filter: str,
- request_options: typing.Optional[RequestOptions] = None,
-) -> AgentDocsRouteListResponse: ...
-```
-
-### JulepApi().agent_tools_route_create
-
-[Show source in client.py:1400](../../../../../../julep/api/client.py#L1400)
-
-Create a new tool for this agent
-
-Parameters
-----------
-id : CommonUuid
- ID of parent resource
-
-name : CommonIdentifierSafeUnicode
- Name of the agent
-
-about : str
- About the agent
-
-model : str
- Model name to use (gpt-4-turbo, gemini-nano etc)
-
-instructions : AgentsCreateAgentRequestInstructions
- Instructions for the agent
-
-metadata : typing.Optional[typing.Dict[str, typing.Any]]
-
-default_settings : typing.Optional[ChatDefaultChatSettings]
- Default settings for all sessions created by this agent
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-CommonResourceCreatedResponse
- The request has succeeded and a new resource has been created as a result.
-
-Examples
---------
-from julep.client import JulepApi
-
-client = JulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-client.agent_tools_route_create(
- id="id",
- name="name",
- about="about",
- model="model",
- instructions="instructions",
-)
-
-#### Signature
-
-```python
-def agent_tools_route_create(
- self,
- id: CommonUuid,
- name: CommonIdentifierSafeUnicode,
- about: str,
- model: str,
- instructions: AgentsCreateAgentRequestInstructions,
- metadata: typing.Optional[typing.Dict[str, typing.Any]] = OMIT,
- default_settings: typing.Optional[ChatDefaultChatSettings] = OMIT,
- request_options: typing.Optional[RequestOptions] = None,
-) -> CommonResourceCreatedResponse: ...
-```
-
-#### See also
-
-- [OMIT](#omit)
-
-### JulepApi().agent_tools_route_delete
-
-[Show source in client.py:1566](../../../../../../julep/api/client.py#L1566)
-
-Delete an existing tool by id
-
-Parameters
-----------
-id : CommonUuid
- ID of parent resource
-
-child_id : CommonUuid
- ID of the resource to be deleted
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-CommonResourceDeletedResponse
- The request has been accepted for processing, but processing has not yet completed.
-
-Examples
---------
-from julep.client import JulepApi
-
-client = JulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-client.agent_tools_route_delete(
- id="id",
- child_id="child_id",
-)
-
-#### Signature
-
-```python
-def agent_tools_route_delete(
- self,
- id: CommonUuid,
- child_id: CommonUuid,
- request_options: typing.Optional[RequestOptions] = None,
-) -> CommonResourceDeletedResponse: ...
-```
-
-### JulepApi().agent_tools_route_list
-
-[Show source in client.py:1321](../../../../../../julep/api/client.py#L1321)
-
-List tools of the given agent
-
-Parameters
-----------
-id : CommonUuid
- ID of parent
-
-limit : CommonLimit
- Limit the number of items returned
-
-offset : CommonOffset
- Offset the items returned
-
-sort_by : AgentToolsRouteListRequestSortBy
- Sort by a field
-
-direction : AgentToolsRouteListRequestDirection
- Sort direction
-
-metadata_filter : str
- JSON string of object that should be used to filter objects by metadata
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-AgentToolsRouteListResponse
- The request has succeeded.
-
-Examples
---------
-from julep.client import JulepApi
-
-client = JulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-client.agent_tools_route_list(
- id="id",
- limit=1,
- offset=1,
- sort_by="created_at",
- direction="asc",
- metadata_filter="metadata_filter",
-)
-
-#### Signature
-
-```python
-def agent_tools_route_list(
- self,
- id: CommonUuid,
- limit: CommonLimit,
- offset: CommonOffset,
- sort_by: AgentToolsRouteListRequestSortBy,
- direction: AgentToolsRouteListRequestDirection,
- metadata_filter: str,
- request_options: typing.Optional[RequestOptions] = None,
-) -> AgentToolsRouteListResponse: ...
-```
-
-### JulepApi().agent_tools_route_patch
-
-[Show source in client.py:1618](../../../../../../julep/api/client.py#L1618)
-
-Update an existing tool (merges with existing values)
-
-Parameters
-----------
-id : CommonUuid
- ID of parent resource
-
-child_id : CommonUuid
- ID of the resource to be patched
-
-type : typing.Optional[ToolsToolType]
- Whether this tool is a `function`, `api_call`, `system` etc. (Only `function` tool supported right now)
-
-name : typing.Optional[CommonValidPythonIdentifier]
- Name of the tool (must be unique for this agent and a valid python identifier string )
-
-function : typing.Optional[ToolsFunctionDef]
-
-integration : typing.Optional[typing.Any]
-
-system : typing.Optional[typing.Any]
-
-api_call : typing.Optional[typing.Any]
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-CommonResourceUpdatedResponse
- The request has succeeded.
-
-Examples
---------
-from julep.client import JulepApi
-
-client = JulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-client.agent_tools_route_patch(
- id="id",
- child_id="child_id",
-)
-
-#### Signature
-
-```python
-def agent_tools_route_patch(
- self,
- id: CommonUuid,
- child_id: CommonUuid,
- type: typing.Optional[ToolsToolType] = OMIT,
- name: typing.Optional[CommonValidPythonIdentifier] = OMIT,
- function: typing.Optional[ToolsFunctionDef] = OMIT,
- integration: typing.Optional[typing.Any] = OMIT,
- system: typing.Optional[typing.Any] = OMIT,
- api_call: typing.Optional[typing.Any] = OMIT,
- request_options: typing.Optional[RequestOptions] = None,
-) -> CommonResourceUpdatedResponse: ...
-```
-
-#### See also
-
-- [OMIT](#omit)
-
-### JulepApi().agent_tools_route_update
-
-[Show source in client.py:1483](../../../../../../julep/api/client.py#L1483)
-
-Update an existing tool (overwrite existing values)
-
-Parameters
-----------
-id : CommonUuid
- ID of parent resource
-
-child_id : CommonUuid
- ID of the resource to be updated
-
-type : ToolsToolType
- Whether this tool is a `function`, `api_call`, `system` etc. (Only `function` tool supported right now)
-
-name : CommonValidPythonIdentifier
- Name of the tool (must be unique for this agent and a valid python identifier string )
-
-function : typing.Optional[ToolsFunctionDef]
-
-integration : typing.Optional[typing.Any]
-
-system : typing.Optional[typing.Any]
-
-api_call : typing.Optional[typing.Any]
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-CommonResourceUpdatedResponse
- The request has succeeded.
-
-Examples
---------
-from julep.client import JulepApi
-
-client = JulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-client.agent_tools_route_update(
- id="id",
- child_id="child_id",
- type="function",
- name="name",
-)
-
-#### Signature
-
-```python
-def agent_tools_route_update(
- self,
- id: CommonUuid,
- child_id: CommonUuid,
- type: ToolsToolType,
- name: CommonValidPythonIdentifier,
- function: typing.Optional[ToolsFunctionDef] = OMIT,
- integration: typing.Optional[typing.Any] = OMIT,
- system: typing.Optional[typing.Any] = OMIT,
- api_call: typing.Optional[typing.Any] = OMIT,
- request_options: typing.Optional[RequestOptions] = None,
-) -> CommonResourceUpdatedResponse: ...
-```
-
-#### See also
-
-- [OMIT](#omit)
-
-### JulepApi().agents_docs_search_route_search
-
-[Show source in client.py:863](../../../../../../julep/api/client.py#L863)
-
-Search Docs owned by an Agent
-
-Parameters
-----------
-id : CommonUuid
- ID of the parent
-
-body : AgentsDocsSearchRouteSearchRequestBody
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-DocsDocSearchResponse
- The request has succeeded.
-
-Examples
---------
-from julep import DocsVectorDocSearchRequest
-from julep.client import JulepApi
-
-client = JulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-client.agents_docs_search_route_search(
- id="id",
- body=DocsVectorDocSearchRequest(
- limit=1,
- confidence=1.1,
- vector=[1.1],
- ),
-)
-
-#### Signature
-
-```python
-def agents_docs_search_route_search(
- self,
- id: CommonUuid,
- body: AgentsDocsSearchRouteSearchRequestBody,
- request_options: typing.Optional[RequestOptions] = None,
-) -> DocsDocSearchResponse: ...
-```
-
-### JulepApi().agents_route_create
-
-[Show source in client.py:260](../../../../../../julep/api/client.py#L260)
-
-Create a new Agent
-
-Parameters
-----------
-name : CommonIdentifierSafeUnicode
- Name of the agent
-
-about : str
- About the agent
-
-model : str
- Model name to use (gpt-4-turbo, gemini-nano etc)
-
-instructions : AgentsCreateAgentRequestInstructions
- Instructions for the agent
-
-metadata : typing.Optional[typing.Dict[str, typing.Any]]
-
-default_settings : typing.Optional[ChatDefaultChatSettings]
- Default settings for all sessions created by this agent
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-CommonResourceCreatedResponse
- The request has succeeded and a new resource has been created as a result.
-
-Examples
---------
-from julep.client import JulepApi
-
-client = JulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-client.agents_route_create(
- name="name",
- about="about",
- model="model",
- instructions="instructions",
-)
-
-#### Signature
-
-```python
-def agents_route_create(
- self,
- name: CommonIdentifierSafeUnicode,
- about: str,
- model: str,
- instructions: AgentsCreateAgentRequestInstructions,
- metadata: typing.Optional[typing.Dict[str, typing.Any]] = OMIT,
- default_settings: typing.Optional[ChatDefaultChatSettings] = OMIT,
- request_options: typing.Optional[RequestOptions] = None,
-) -> CommonResourceCreatedResponse: ...
-```
-
-#### See also
-
-- [OMIT](#omit)
-
-### JulepApi().agents_route_create_or_update
-
-[Show source in client.py:382](../../../../../../julep/api/client.py#L382)
-
-Create or update an Agent
-
-Parameters
-----------
-id : CommonUuid
-
-name : CommonIdentifierSafeUnicode
- Name of the agent
-
-about : str
- About the agent
-
-model : str
- Model name to use (gpt-4-turbo, gemini-nano etc)
-
-instructions : AgentsUpdateAgentRequestInstructions
- Instructions for the agent
-
-metadata : typing.Optional[typing.Dict[str, typing.Any]]
-
-default_settings : typing.Optional[ChatDefaultChatSettings]
- Default settings for all sessions created by this agent
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-CommonResourceUpdatedResponse
- The request has succeeded.
-
-Examples
---------
-from julep.client import JulepApi
-
-client = JulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-client.agents_route_create_or_update(
- id="id",
- name="name",
- about="about",
- model="model",
- instructions="instructions",
-)
-
-#### Signature
-
-```python
-def agents_route_create_or_update(
- self,
- id: CommonUuid,
- name: CommonIdentifierSafeUnicode,
- about: str,
- model: str,
- instructions: AgentsUpdateAgentRequestInstructions,
- metadata: typing.Optional[typing.Dict[str, typing.Any]] = OMIT,
- default_settings: typing.Optional[ChatDefaultChatSettings] = OMIT,
- request_options: typing.Optional[RequestOptions] = None,
-) -> CommonResourceUpdatedResponse: ...
-```
-
-#### See also
-
-- [OMIT](#omit)
-
-### JulepApi().agents_route_delete
-
-[Show source in client.py:547](../../../../../../julep/api/client.py#L547)
-
-Delete Agent by id
-
-Parameters
-----------
-id : CommonUuid
- ID of the resource
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-CommonResourceDeletedResponse
- The request has been accepted for processing, but processing has not yet completed.
-
-Examples
---------
-from julep.client import JulepApi
-
-client = JulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-client.agents_route_delete(
- id="id",
-)
-
-#### Signature
-
-```python
-def agents_route_delete(
- self, id: CommonUuid, request_options: typing.Optional[RequestOptions] = None
-) -> CommonResourceDeletedResponse: ...
-```
-
-### JulepApi().agents_route_get
-
-[Show source in client.py:338](../../../../../../julep/api/client.py#L338)
-
-Get an Agent by id
-
-Parameters
-----------
-id : CommonUuid
- ID of the resource
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-AgentsAgent
- The request has succeeded.
-
-Examples
---------
-from julep.client import JulepApi
-
-client = JulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-client.agents_route_get(
- id="id",
-)
-
-#### Signature
-
-```python
-def agents_route_get(
- self, id: CommonUuid, request_options: typing.Optional[RequestOptions] = None
-) -> AgentsAgent: ...
-```
-
-### JulepApi().agents_route_list
-
-[Show source in client.py:186](../../../../../../julep/api/client.py#L186)
-
-List Agents (paginated)
-
-Parameters
-----------
-limit : CommonLimit
- Limit the number of items returned
-
-offset : CommonOffset
- Offset the items returned
-
-sort_by : AgentsRouteListRequestSortBy
- Sort by a field
-
-direction : AgentsRouteListRequestDirection
- Sort direction
-
-metadata_filter : str
- JSON string of object that should be used to filter objects by metadata
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-AgentsRouteListResponse
- The request has succeeded.
-
-Examples
---------
-from julep.client import JulepApi
-
-client = JulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-client.agents_route_list(
- limit=1,
- offset=1,
- sort_by="created_at",
- direction="asc",
- metadata_filter="metadata_filter",
-)
-
-#### Signature
-
-```python
-def agents_route_list(
- self,
- limit: CommonLimit,
- offset: CommonOffset,
- sort_by: AgentsRouteListRequestSortBy,
- direction: AgentsRouteListRequestDirection,
- metadata_filter: str,
- request_options: typing.Optional[RequestOptions] = None,
-) -> AgentsRouteListResponse: ...
-```
-
-### JulepApi().agents_route_patch
-
-[Show source in client.py:591](../../../../../../julep/api/client.py#L591)
-
-Update an existing Agent by id (merges with existing values)
-
-Parameters
-----------
-id : CommonUuid
- ID of the resource
-
-metadata : typing.Optional[typing.Dict[str, typing.Any]]
-
-name : typing.Optional[CommonIdentifierSafeUnicode]
- Name of the agent
-
-about : typing.Optional[str]
- About the agent
-
-model : typing.Optional[str]
- Model name to use (gpt-4-turbo, gemini-nano etc)
-
-instructions : typing.Optional[AgentsPatchAgentRequestInstructions]
- Instructions for the agent
-
-default_settings : typing.Optional[ChatDefaultChatSettings]
- Default settings for all sessions created by this agent
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-CommonResourceUpdatedResponse
- The request has succeeded.
-
-Examples
---------
-from julep.client import JulepApi
-
-client = JulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-client.agents_route_patch(
- id="id",
-)
-
-#### Signature
-
-```python
-def agents_route_patch(
- self,
- id: CommonUuid,
- metadata: typing.Optional[typing.Dict[str, typing.Any]] = OMIT,
- name: typing.Optional[CommonIdentifierSafeUnicode] = OMIT,
- about: typing.Optional[str] = OMIT,
- model: typing.Optional[str] = OMIT,
- instructions: typing.Optional[AgentsPatchAgentRequestInstructions] = OMIT,
- default_settings: typing.Optional[ChatDefaultChatSettings] = OMIT,
- request_options: typing.Optional[RequestOptions] = None,
-) -> CommonResourceUpdatedResponse: ...
-```
-
-#### See also
-
-- [OMIT](#omit)
-
-### JulepApi().agents_route_update
-
-[Show source in client.py:464](../../../../../../julep/api/client.py#L464)
-
-Update an existing Agent by id (overwrites existing values; use PATCH for merging instead)
-
-Parameters
-----------
-id : CommonUuid
- ID of the resource
-
-name : CommonIdentifierSafeUnicode
- Name of the agent
-
-about : str
- About the agent
-
-model : str
- Model name to use (gpt-4-turbo, gemini-nano etc)
-
-instructions : AgentsUpdateAgentRequestInstructions
- Instructions for the agent
-
-metadata : typing.Optional[typing.Dict[str, typing.Any]]
-
-default_settings : typing.Optional[ChatDefaultChatSettings]
- Default settings for all sessions created by this agent
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-CommonResourceUpdatedResponse
- The request has succeeded.
-
-Examples
---------
-from julep.client import JulepApi
-
-client = JulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-client.agents_route_update(
- id="id",
- name="name",
- about="about",
- model="model",
- instructions="instructions",
-)
-
-#### Signature
-
-```python
-def agents_route_update(
- self,
- id: CommonUuid,
- name: CommonIdentifierSafeUnicode,
- about: str,
- model: str,
- instructions: AgentsUpdateAgentRequestInstructions,
- metadata: typing.Optional[typing.Dict[str, typing.Any]] = OMIT,
- default_settings: typing.Optional[ChatDefaultChatSettings] = OMIT,
- request_options: typing.Optional[RequestOptions] = None,
-) -> CommonResourceUpdatedResponse: ...
-```
-
-#### See also
-
-- [OMIT](#omit)
-
-### JulepApi().chat_route_generate
-
-[Show source in client.py:2662](../../../../../../julep/api/client.py#L2662)
-
-Generate a response from the model
-
-Parameters
-----------
-id : CommonUuid
- The session ID
-
-remember : bool
- DISABLED: Whether this interaction should form new memories or not (will be enabled in a future release)
-
-recall : bool
- Whether previous memories and docs should be recalled or not
-
-save : bool
- Whether this interaction should be stored in the session history or not
-
-stream : bool
- Indicates if the server should stream the response as it's generated
-
-messages : typing.Sequence[EntriesInputChatMlMessage]
- A list of new input messages comprising the conversation so far.
-
-model : typing.Optional[CommonIdentifierSafeUnicode]
- Identifier of the model to be used
-
-stop : typing.Optional[typing.Sequence[str]]
- Up to 4 sequences where the API will stop generating further tokens.
-
-seed : typing.Optional[int]
- If specified, the system will make a best effort to sample deterministically for that particular seed value
-
-max_tokens : typing.Optional[int]
- The maximum number of tokens to generate in the chat completion
-
-logit_bias : typing.Optional[typing.Dict[str, CommonLogitBias]]
- Modify the likelihood of specified tokens appearing in the completion
-
-response_format : typing.Optional[ChatCompletionResponseFormat]
- Response format (set to `json_object` to restrict output to JSON)
-
-agent : typing.Optional[CommonUuid]
- Agent ID of the agent to use for this interaction. (Only applicable for multi-agent sessions)
-
-repetition_penalty : typing.Optional[float]
- Number between 0 and 2.0. 1.0 is neutral and values larger than that penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim.
-
-length_penalty : typing.Optional[float]
- Number between 0 and 2.0. 1.0 is neutral and values larger than that penalize number of tokens generated.
-
-min_p : typing.Optional[float]
- Minimum probability compared to leading token to be considered
-
-frequency_penalty : typing.Optional[float]
- Number between -2.0 and 2.0. Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim.
-
-presence_penalty : typing.Optional[float]
- Number between -2.0 and 2.0. Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim.
-
-temperature : typing.Optional[float]
- What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic.
-
-top_p : typing.Optional[float]
- Defaults to 1 An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass. So 0.1 means only the tokens comprising the top 10% probability mass are considered. We generally recommend altering this or temperature but not both.
-
-tools : typing.Optional[typing.Sequence[ToolsFunctionTool]]
- (Advanced) List of tools that are provided in addition to agent's default set of tools.
-
-tool_choice : typing.Optional[ChatChatInputDataToolChoice]
- Can be one of existing tools given to the agent earlier or the ones provided in this request.
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-ChatRouteGenerateResponse
- The request has succeeded.
-
-Examples
---------
-from julep import EntriesInputChatMlMessage
-from julep.client import JulepApi
-
-client = JulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-client.chat_route_generate(
- id="id",
- messages=[
- EntriesInputChatMlMessage(
- role="user",
- content="content",
- )
- ],
- remember=True,
- recall=True,
- save=True,
- stream=True,
-)
-
-#### Signature
-
-```python
-def chat_route_generate(
- self,
- id: CommonUuid,
- remember: bool,
- recall: bool,
- save: bool,
- stream: bool,
- messages: typing.Sequence[EntriesInputChatMlMessage],
- model: typing.Optional[CommonIdentifierSafeUnicode] = OMIT,
- stop: typing.Optional[typing.Sequence[str]] = OMIT,
- seed: typing.Optional[int] = OMIT,
- max_tokens: typing.Optional[int] = OMIT,
- logit_bias: typing.Optional[typing.Dict[str, CommonLogitBias]] = OMIT,
- response_format: typing.Optional[ChatCompletionResponseFormat] = OMIT,
- agent: typing.Optional[CommonUuid] = OMIT,
- repetition_penalty: typing.Optional[float] = OMIT,
- length_penalty: typing.Optional[float] = OMIT,
- min_p: typing.Optional[float] = OMIT,
- frequency_penalty: typing.Optional[float] = OMIT,
- presence_penalty: typing.Optional[float] = OMIT,
- temperature: typing.Optional[float] = OMIT,
- top_p: typing.Optional[float] = OMIT,
- tools: typing.Optional[typing.Sequence[ToolsFunctionTool]] = OMIT,
- tool_choice: typing.Optional[ChatChatInputDataToolChoice] = OMIT,
- request_options: typing.Optional[RequestOptions] = None,
-) -> ChatRouteGenerateResponse: ...
-```
-
-#### See also
-
-- [OMIT](#omit)
-
-### JulepApi().embed_route_embed
-
-[Show source in client.py:1840](../../../../../../julep/api/client.py#L1840)
-
-Embed a query for search
-
-Parameters
-----------
-body : DocsEmbedQueryRequest
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-DocsEmbedQueryResponse
- The request has succeeded.
-
-Examples
---------
-from julep import DocsEmbedQueryRequest
-from julep.client import JulepApi
-
-client = JulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-client.embed_route_embed(
- body=DocsEmbedQueryRequest(
- text="text",
- ),
-)
-
-#### Signature
-
-```python
-def embed_route_embed(
- self,
- body: DocsEmbedQueryRequest,
- request_options: typing.Optional[RequestOptions] = None,
-) -> DocsEmbedQueryResponse: ...
-```
-
-### JulepApi().execution_transitions_route_list
-
-[Show source in client.py:2045](../../../../../../julep/api/client.py#L2045)
-
-List the Transitions of an Execution by id
-
-Parameters
-----------
-id : CommonUuid
- ID of parent
-
-limit : CommonLimit
- Limit the number of items returned
-
-offset : CommonOffset
- Offset the items returned
-
-sort_by : ExecutionTransitionsRouteListRequestSortBy
- Sort by a field
-
-direction : ExecutionTransitionsRouteListRequestDirection
- Sort direction
-
-metadata_filter : str
- JSON string of object that should be used to filter objects by metadata
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-ExecutionTransitionsRouteListResponse
- The request has succeeded.
-
-Examples
---------
-from julep.client import JulepApi
-
-client = JulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-client.execution_transitions_route_list(
- id="id",
- limit=1,
- offset=1,
- sort_by="created_at",
- direction="asc",
- metadata_filter="metadata_filter",
-)
-
-#### Signature
-
-```python
-def execution_transitions_route_list(
- self,
- id: CommonUuid,
- limit: CommonLimit,
- offset: CommonOffset,
- sort_by: ExecutionTransitionsRouteListRequestSortBy,
- direction: ExecutionTransitionsRouteListRequestDirection,
- metadata_filter: str,
- request_options: typing.Optional[RequestOptions] = None,
-) -> ExecutionTransitionsRouteListResponse: ...
-```
-
-### JulepApi().executions_route_get
-
-[Show source in client.py:1945](../../../../../../julep/api/client.py#L1945)
-
-Get an Execution by id
-
-Parameters
-----------
-id : CommonUuid
- ID of the resource
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-ExecutionsExecution
- The request has succeeded.
-
-Examples
---------
-from julep.client import JulepApi
-
-client = JulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-client.executions_route_get(
- id="id",
-)
-
-#### Signature
-
-```python
-def executions_route_get(
- self, id: CommonUuid, request_options: typing.Optional[RequestOptions] = None
-) -> ExecutionsExecution: ...
-```
-
-### JulepApi().executions_route_resume_with_task_token
-
-[Show source in client.py:1891](../../../../../../julep/api/client.py#L1891)
-
-Resume an execution with a task token
-
-Parameters
-----------
-task_token : str
- A Task Token is a unique identifier for a specific Task Execution.
-
-input : typing.Optional[typing.Dict[str, typing.Any]]
- The input to resume the execution with
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-CommonResourceUpdatedResponse
- The request has succeeded.
-
-Examples
---------
-from julep.client import JulepApi
-
-client = JulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-client.executions_route_resume_with_task_token(
- task_token="task_token",
-)
-
-#### Signature
-
-```python
-def executions_route_resume_with_task_token(
- self,
- task_token: str,
- input: typing.Optional[typing.Dict[str, typing.Any]] = OMIT,
- request_options: typing.Optional[RequestOptions] = None,
-) -> CommonResourceUpdatedResponse: ...
-```
-
-#### See also
-
-- [OMIT](#omit)
-
-### JulepApi().executions_route_update
-
-[Show source in client.py:1989](../../../../../../julep/api/client.py#L1989)
-
-Update an existing Execution
-
-Parameters
-----------
-id : CommonUuid
- ID of the resource
-
-request : ExecutionsUpdateExecutionRequest
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-CommonResourceUpdatedResponse
- The request has succeeded.
-
-Examples
---------
-from julep import ExecutionsUpdateExecutionRequest_Cancelled
-from julep.client import JulepApi
-
-client = JulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-client.executions_route_update(
- id="string",
- request=ExecutionsUpdateExecutionRequest_Cancelled(
- reason="string",
- ),
-)
-
-#### Signature
-
-```python
-def executions_route_update(
- self,
- id: CommonUuid,
- request: ExecutionsUpdateExecutionRequest,
- request_options: typing.Optional[RequestOptions] = None,
-) -> CommonResourceUpdatedResponse: ...
-```
-
-### JulepApi().history_route_delete
-
-[Show source in client.py:2872](../../../../../../julep/api/client.py#L2872)
-
-Clear the history of a Session (resets the Session)
-
-Parameters
-----------
-id : CommonUuid
- ID of the resource
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-CommonResourceDeletedResponse
- The request has been accepted for processing, but processing has not yet completed.
-
-Examples
---------
-from julep.client import JulepApi
-
-client = JulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-client.history_route_delete(
- id="id",
-)
-
-#### Signature
-
-```python
-def history_route_delete(
- self, id: CommonUuid, request_options: typing.Optional[RequestOptions] = None
-) -> CommonResourceDeletedResponse: ...
-```
-
-### JulepApi().history_route_history
-
-[Show source in client.py:2828](../../../../../../julep/api/client.py#L2828)
-
-Get history of a Session
-
-Parameters
-----------
-id : CommonUuid
- ID of parent
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-EntriesHistory
- The request has succeeded.
-
-Examples
---------
-from julep.client import JulepApi
-
-client = JulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-client.history_route_history(
- id="id",
-)
-
-#### Signature
-
-```python
-def history_route_history(
- self, id: CommonUuid, request_options: typing.Optional[RequestOptions] = None
-) -> EntriesHistory: ...
-```
-
-### JulepApi().individual_docs_route_get
-
-[Show source in client.py:1796](../../../../../../julep/api/client.py#L1796)
-
-Get Doc by id
-
-Parameters
-----------
-id : CommonUuid
- ID of the resource
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-DocsDoc
- The request has succeeded.
-
-Examples
---------
-from julep.client import JulepApi
-
-client = JulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-client.individual_docs_route_get(
- id="id",
-)
-
-#### Signature
-
-```python
-def individual_docs_route_get(
- self, id: CommonUuid, request_options: typing.Optional[RequestOptions] = None
-) -> DocsDoc: ...
-```
-
-### JulepApi().job_route_get
-
-[Show source in client.py:2124](../../../../../../julep/api/client.py#L2124)
-
-Get the status of an existing Job by its id
-
-Parameters
-----------
-id : CommonUuid
- ID of the resource
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-JobsJobStatus
- The request has succeeded.
-
-Examples
---------
-from julep.client import JulepApi
-
-client = JulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-client.job_route_get(
- id="id",
-)
-
-#### Signature
-
-```python
-def job_route_get(
- self, id: CommonUuid, request_options: typing.Optional[RequestOptions] = None
-) -> JobsJobStatus: ...
-```
-
-### JulepApi().sessions_route_create
-
-[Show source in client.py:2242](../../../../../../julep/api/client.py#L2242)
-
-Create a new session
-
-Parameters
-----------
-situation : str
- A specific situation that sets the background for this session
-
-render_templates : bool
- Render system and assistant message content as jinja templates
-
-user : typing.Optional[CommonUuid]
- User ID of user associated with this session
-
-users : typing.Optional[typing.Sequence[CommonUuid]]
-
-agent : typing.Optional[CommonUuid]
- Agent ID of agent associated with this session
-
-agents : typing.Optional[typing.Sequence[CommonUuid]]
-
-token_budget : typing.Optional[int]
- Threshold value for the adaptive context functionality
-
-context_overflow : typing.Optional[SessionsContextOverflowType]
- Action to start on context window overflow
-
-metadata : typing.Optional[typing.Dict[str, typing.Any]]
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-CommonResourceCreatedResponse
- The request has succeeded and a new resource has been created as a result.
-
-Examples
---------
-from julep.client import JulepApi
-
-client = JulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-client.sessions_route_create(
- situation="situation",
- render_templates=True,
-)
-
-#### Signature
-
-```python
-def sessions_route_create(
- self,
- situation: str,
- render_templates: bool,
- user: typing.Optional[CommonUuid] = OMIT,
- users: typing.Optional[typing.Sequence[CommonUuid]] = OMIT,
- agent: typing.Optional[CommonUuid] = OMIT,
- agents: typing.Optional[typing.Sequence[CommonUuid]] = OMIT,
- token_budget: typing.Optional[int] = OMIT,
- context_overflow: typing.Optional[SessionsContextOverflowType] = OMIT,
- metadata: typing.Optional[typing.Dict[str, typing.Any]] = OMIT,
- request_options: typing.Optional[RequestOptions] = None,
-) -> CommonResourceCreatedResponse: ...
-```
-
-#### See also
-
-- [OMIT](#omit)
-
-### JulepApi().sessions_route_create_or_update
-
-[Show source in client.py:2375](../../../../../../julep/api/client.py#L2375)
-
-Create or update a session
-
-Parameters
-----------
-id : CommonUuid
-
-situation : str
- A specific situation that sets the background for this session
-
-render_templates : bool
- Render system and assistant message content as jinja templates
-
-user : typing.Optional[CommonUuid]
- User ID of user associated with this session
-
-users : typing.Optional[typing.Sequence[CommonUuid]]
-
-agent : typing.Optional[CommonUuid]
- Agent ID of agent associated with this session
-
-agents : typing.Optional[typing.Sequence[CommonUuid]]
-
-token_budget : typing.Optional[int]
- Threshold value for the adaptive context functionality
-
-context_overflow : typing.Optional[SessionsContextOverflowType]
- Action to start on context window overflow
-
-metadata : typing.Optional[typing.Dict[str, typing.Any]]
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-CommonResourceUpdatedResponse
- The request has succeeded.
-
-Examples
---------
-from julep.client import JulepApi
-
-client = JulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-client.sessions_route_create_or_update(
- id="id",
- situation="situation",
- render_templates=True,
-)
-
-#### Signature
-
-```python
-def sessions_route_create_or_update(
- self,
- id: CommonUuid,
- situation: str,
- render_templates: bool,
- user: typing.Optional[CommonUuid] = OMIT,
- users: typing.Optional[typing.Sequence[CommonUuid]] = OMIT,
- agent: typing.Optional[CommonUuid] = OMIT,
- agents: typing.Optional[typing.Sequence[CommonUuid]] = OMIT,
- token_budget: typing.Optional[int] = OMIT,
- context_overflow: typing.Optional[SessionsContextOverflowType] = OMIT,
- metadata: typing.Optional[typing.Dict[str, typing.Any]] = OMIT,
- request_options: typing.Optional[RequestOptions] = None,
-) -> CommonResourceUpdatedResponse: ...
-```
-
-#### See also
-
-- [OMIT](#omit)
-
-### JulepApi().sessions_route_delete
-
-[Show source in client.py:2544](../../../../../../julep/api/client.py#L2544)
-
-Delete a session by its id
-
-Parameters
-----------
-id : CommonUuid
- ID of the resource
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-CommonResourceDeletedResponse
- The request has been accepted for processing, but processing has not yet completed.
-
-Examples
---------
-from julep.client import JulepApi
-
-client = JulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-client.sessions_route_delete(
- id="id",
-)
-
-#### Signature
-
-```python
-def sessions_route_delete(
- self, id: CommonUuid, request_options: typing.Optional[RequestOptions] = None
-) -> CommonResourceDeletedResponse: ...
-```
-
-### JulepApi().sessions_route_get
-
-[Show source in client.py:2331](../../../../../../julep/api/client.py#L2331)
-
-Get a session by id
-
-Parameters
-----------
-id : CommonUuid
- ID of the resource
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-SessionsSession
- The request has succeeded.
-
-Examples
---------
-from julep.client import JulepApi
-
-client = JulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-client.sessions_route_get(
- id="string",
-)
-
-#### Signature
-
-```python
-def sessions_route_get(
- self, id: CommonUuid, request_options: typing.Optional[RequestOptions] = None
-) -> SessionsSession: ...
-```
-
-### JulepApi().sessions_route_list
-
-[Show source in client.py:2168](../../../../../../julep/api/client.py#L2168)
-
-List sessions (paginated)
-
-Parameters
-----------
-limit : CommonLimit
- Limit the number of items returned
-
-offset : CommonOffset
- Offset the items returned
-
-sort_by : SessionsRouteListRequestSortBy
- Sort by a field
-
-direction : SessionsRouteListRequestDirection
- Sort direction
-
-metadata_filter : str
- JSON string of object that should be used to filter objects by metadata
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-SessionsRouteListResponse
- The request has succeeded.
-
-Examples
---------
-from julep.client import JulepApi
-
-client = JulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-client.sessions_route_list(
- limit=1,
- offset=1,
- sort_by="created_at",
- direction="asc",
- metadata_filter="metadata_filter",
-)
-
-#### Signature
-
-```python
-def sessions_route_list(
- self,
- limit: CommonLimit,
- offset: CommonOffset,
- sort_by: SessionsRouteListRequestSortBy,
- direction: SessionsRouteListRequestDirection,
- metadata_filter: str,
- request_options: typing.Optional[RequestOptions] = None,
-) -> SessionsRouteListResponse: ...
-```
-
-### JulepApi().sessions_route_patch
-
-[Show source in client.py:2588](../../../../../../julep/api/client.py#L2588)
-
-Update an existing session by its id (merges with existing values)
-
-Parameters
-----------
-id : CommonUuid
- ID of the resource
-
-situation : typing.Optional[str]
- A specific situation that sets the background for this session
-
-render_templates : typing.Optional[bool]
- Render system and assistant message content as jinja templates
-
-token_budget : typing.Optional[int]
- Threshold value for the adaptive context functionality
-
-context_overflow : typing.Optional[SessionsContextOverflowType]
- Action to start on context window overflow
-
-metadata : typing.Optional[typing.Dict[str, typing.Any]]
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-CommonResourceUpdatedResponse
- The request has succeeded.
-
-Examples
---------
-from julep.client import JulepApi
-
-client = JulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-client.sessions_route_patch(
- id="id",
-)
-
-#### Signature
-
-```python
-def sessions_route_patch(
- self,
- id: CommonUuid,
- situation: typing.Optional[str] = OMIT,
- render_templates: typing.Optional[bool] = OMIT,
- token_budget: typing.Optional[int] = OMIT,
- context_overflow: typing.Optional[SessionsContextOverflowType] = OMIT,
- metadata: typing.Optional[typing.Dict[str, typing.Any]] = OMIT,
- request_options: typing.Optional[RequestOptions] = None,
-) -> CommonResourceUpdatedResponse: ...
-```
-
-#### See also
-
-- [OMIT](#omit)
-
-### JulepApi().sessions_route_update
-
-[Show source in client.py:2468](../../../../../../julep/api/client.py#L2468)
-
-Update an existing session by its id (overwrites all existing values)
-
-Parameters
-----------
-id : CommonUuid
- ID of the resource
-
-situation : str
- A specific situation that sets the background for this session
-
-render_templates : bool
- Render system and assistant message content as jinja templates
-
-token_budget : typing.Optional[int]
- Threshold value for the adaptive context functionality
-
-context_overflow : typing.Optional[SessionsContextOverflowType]
- Action to start on context window overflow
-
-metadata : typing.Optional[typing.Dict[str, typing.Any]]
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-CommonResourceUpdatedResponse
- The request has succeeded.
-
-Examples
---------
-from julep.client import JulepApi
-
-client = JulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-client.sessions_route_update(
- id="id",
- situation="situation",
- render_templates=True,
-)
-
-#### Signature
-
-```python
-def sessions_route_update(
- self,
- id: CommonUuid,
- situation: str,
- render_templates: bool,
- token_budget: typing.Optional[int] = OMIT,
- context_overflow: typing.Optional[SessionsContextOverflowType] = OMIT,
- metadata: typing.Optional[typing.Dict[str, typing.Any]] = OMIT,
- request_options: typing.Optional[RequestOptions] = None,
-) -> CommonResourceUpdatedResponse: ...
-```
-
-#### See also
-
-- [OMIT](#omit)
-
-### JulepApi().task_executions_route_create
-
-[Show source in client.py:2995](../../../../../../julep/api/client.py#L2995)
-
-Create an execution for the given task
-
-Parameters
-----------
-id : CommonUuid
- ID of parent resource
-
-input : typing.Dict[str, typing.Any]
- The input to the execution
-
-metadata : typing.Optional[typing.Dict[str, typing.Any]]
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-CommonResourceCreatedResponse
- The request has succeeded and a new resource has been created as a result.
-
-Examples
---------
-from julep.client import JulepApi
-
-client = JulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-client.task_executions_route_create(
- id="id",
- input={"key": "value"},
-)
-
-#### Signature
-
-```python
-def task_executions_route_create(
- self,
- id: CommonUuid,
- input: typing.Dict[str, typing.Any],
- metadata: typing.Optional[typing.Dict[str, typing.Any]] = OMIT,
- request_options: typing.Optional[RequestOptions] = None,
-) -> CommonResourceCreatedResponse: ...
-```
-
-#### See also
-
-- [OMIT](#omit)
-
-### JulepApi().task_executions_route_list
-
-[Show source in client.py:2916](../../../../../../julep/api/client.py#L2916)
-
-List executions of the given task
-
-Parameters
-----------
-id : CommonUuid
- ID of parent
-
-limit : CommonLimit
- Limit the number of items returned
-
-offset : CommonOffset
- Offset the items returned
-
-sort_by : TaskExecutionsRouteListRequestSortBy
- Sort by a field
-
-direction : TaskExecutionsRouteListRequestDirection
- Sort direction
-
-metadata_filter : str
- JSON string of object that should be used to filter objects by metadata
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-TaskExecutionsRouteListResponse
- The request has succeeded.
-
-Examples
---------
-from julep.client import JulepApi
-
-client = JulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-client.task_executions_route_list(
- id="id",
- limit=1,
- offset=1,
- sort_by="created_at",
- direction="asc",
- metadata_filter="metadata_filter",
-)
-
-#### Signature
-
-```python
-def task_executions_route_list(
- self,
- id: CommonUuid,
- limit: CommonLimit,
- offset: CommonOffset,
- sort_by: TaskExecutionsRouteListRequestSortBy,
- direction: TaskExecutionsRouteListRequestDirection,
- metadata_filter: str,
- request_options: typing.Optional[RequestOptions] = None,
-) -> TaskExecutionsRouteListResponse: ...
-```
-
-### JulepApi().tasks_create_or_update_route_create_or_update
-
-[Show source in client.py:1699](../../../../../../julep/api/client.py#L1699)
-
-Create or update a task
-
-Parameters
-----------
-parent_id : CommonUuid
- ID of the agent
-
-id : CommonUuid
-
-name : str
-
-description : str
-
-main : typing.Sequence[TasksCreateTaskRequestMainItem]
- The entrypoint of the task.
-
-tools : typing.Sequence[TasksTaskTool]
- Tools defined specifically for this task not included in the Agent itself.
-
-inherit_tools : bool
- Whether to inherit tools from the parent agent or not. Defaults to true.
-
-input_schema : typing.Optional[typing.Dict[str, typing.Any]]
- The schema for the input to the task. `null` means all inputs are valid.
-
-metadata : typing.Optional[typing.Dict[str, typing.Any]]
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-CommonResourceCreatedResponse
- The request has succeeded and a new resource has been created as a result.
-
-Examples
---------
-from julep import TasksTaskTool
-from julep.client import JulepApi
-
-client = JulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-client.tasks_create_or_update_route_create_or_update(
- parent_id="parent_id",
- id="id",
- name="name",
- description="description",
- main=[],
- tools=[
- TasksTaskTool(
- type="function",
- name="name",
- )
- ],
- inherit_tools=True,
-)
-
-#### Signature
-
-```python
-def tasks_create_or_update_route_create_or_update(
- self,
- parent_id: CommonUuid,
- id: CommonUuid,
- name: str,
- description: str,
- main: typing.Sequence[TasksCreateTaskRequestMainItem],
- tools: typing.Sequence[TasksTaskTool],
- inherit_tools: bool,
- input_schema: typing.Optional[typing.Dict[str, typing.Any]] = OMIT,
- metadata: typing.Optional[typing.Dict[str, typing.Any]] = OMIT,
- request_options: typing.Optional[RequestOptions] = None,
-) -> CommonResourceCreatedResponse: ...
-```
-
-#### See also
-
-- [OMIT](#omit)
-
-### JulepApi().tasks_route_create
-
-[Show source in client.py:1000](../../../../../../julep/api/client.py#L1000)
-
-Create a new task
-
-Parameters
-----------
-id : CommonUuid
- ID of parent resource
-
-name : str
-
-description : str
-
-main : typing.Sequence[TasksCreateTaskRequestMainItem]
- The entrypoint of the task.
-
-tools : typing.Sequence[TasksTaskTool]
- Tools defined specifically for this task not included in the Agent itself.
-
-inherit_tools : bool
- Whether to inherit tools from the parent agent or not. Defaults to true.
-
-input_schema : typing.Optional[typing.Dict[str, typing.Any]]
- The schema for the input to the task. `null` means all inputs are valid.
-
-metadata : typing.Optional[typing.Dict[str, typing.Any]]
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-CommonResourceCreatedResponse
- The request has succeeded.
-
-Examples
---------
-from julep import TasksTaskTool
-from julep.client import JulepApi
-
-client = JulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-client.tasks_route_create(
- id="id",
- name="name",
- description="description",
- main=[],
- tools=[
- TasksTaskTool(
- type="function",
- name="name",
- )
- ],
- inherit_tools=True,
-)
-
-#### Signature
-
-```python
-def tasks_route_create(
- self,
- id: CommonUuid,
- name: str,
- description: str,
- main: typing.Sequence[TasksCreateTaskRequestMainItem],
- tools: typing.Sequence[TasksTaskTool],
- inherit_tools: bool,
- input_schema: typing.Optional[typing.Dict[str, typing.Any]] = OMIT,
- metadata: typing.Optional[typing.Dict[str, typing.Any]] = OMIT,
- request_options: typing.Optional[RequestOptions] = None,
-) -> CommonResourceCreatedResponse: ...
-```
-
-#### See also
-
-- [OMIT](#omit)
-
-### JulepApi().tasks_route_delete
-
-[Show source in client.py:1186](../../../../../../julep/api/client.py#L1186)
-
-Delete a task by its id
-
-Parameters
-----------
-id : CommonUuid
- ID of parent resource
-
-child_id : CommonUuid
- ID of the resource to be deleted
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-CommonResourceDeletedResponse
- The request has been accepted for processing, but processing has not yet completed.
-
-Examples
---------
-from julep.client import JulepApi
-
-client = JulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-client.tasks_route_delete(
- id="id",
- child_id="child_id",
-)
-
-#### Signature
-
-```python
-def tasks_route_delete(
- self,
- id: CommonUuid,
- child_id: CommonUuid,
- request_options: typing.Optional[RequestOptions] = None,
-) -> CommonResourceDeletedResponse: ...
-```
-
-### JulepApi().tasks_route_list
-
-[Show source in client.py:921](../../../../../../julep/api/client.py#L921)
-
-List tasks (paginated)
-
-Parameters
-----------
-id : CommonUuid
- ID of parent
-
-limit : CommonLimit
- Limit the number of items returned
-
-offset : CommonOffset
- Offset the items returned
-
-sort_by : TasksRouteListRequestSortBy
- Sort by a field
-
-direction : TasksRouteListRequestDirection
- Sort direction
-
-metadata_filter : str
- JSON string of object that should be used to filter objects by metadata
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-TasksRouteListResponse
- The request has succeeded.
-
-Examples
---------
-from julep.client import JulepApi
-
-client = JulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-client.tasks_route_list(
- id="id",
- limit=1,
- offset=1,
- sort_by="created_at",
- direction="asc",
- metadata_filter="metadata_filter",
-)
-
-#### Signature
-
-```python
-def tasks_route_list(
- self,
- id: CommonUuid,
- limit: CommonLimit,
- offset: CommonOffset,
- sort_by: TasksRouteListRequestSortBy,
- direction: TasksRouteListRequestDirection,
- metadata_filter: str,
- request_options: typing.Optional[RequestOptions] = None,
-) -> TasksRouteListResponse: ...
-```
-
-### JulepApi().tasks_route_patch
-
-[Show source in client.py:1238](../../../../../../julep/api/client.py#L1238)
-
-Update an existing task (merges with existing values)
-
-Parameters
-----------
-id : CommonUuid
- ID of parent resource
-
-child_id : CommonUuid
- ID of the resource to be patched
-
-description : typing.Optional[str]
-
-main : typing.Optional[typing.Sequence[TasksPatchTaskRequestMainItem]]
- The entrypoint of the task.
-
-input_schema : typing.Optional[typing.Dict[str, typing.Any]]
- The schema for the input to the task. `null` means all inputs are valid.
-
-tools : typing.Optional[typing.Sequence[TasksTaskTool]]
- Tools defined specifically for this task not included in the Agent itself.
-
-inherit_tools : typing.Optional[bool]
- Whether to inherit tools from the parent agent or not. Defaults to true.
-
-metadata : typing.Optional[typing.Dict[str, typing.Any]]
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-CommonResourceUpdatedResponse
- The request has succeeded.
-
-Examples
---------
-from julep.client import JulepApi
-
-client = JulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-client.tasks_route_patch(
- id="id",
- child_id="child_id",
-)
-
-#### Signature
-
-```python
-def tasks_route_patch(
- self,
- id: CommonUuid,
- child_id: CommonUuid,
- description: typing.Optional[str] = OMIT,
- main: typing.Optional[typing.Sequence[TasksPatchTaskRequestMainItem]] = OMIT,
- input_schema: typing.Optional[typing.Dict[str, typing.Any]] = OMIT,
- tools: typing.Optional[typing.Sequence[TasksTaskTool]] = OMIT,
- inherit_tools: typing.Optional[bool] = OMIT,
- metadata: typing.Optional[typing.Dict[str, typing.Any]] = OMIT,
- request_options: typing.Optional[RequestOptions] = None,
-) -> CommonResourceUpdatedResponse: ...
-```
-
-#### See also
-
-- [OMIT](#omit)
-
-### JulepApi().tasks_route_update
-
-[Show source in client.py:1093](../../../../../../julep/api/client.py#L1093)
-
-Update an existing task (overwrite existing values)
-
-Parameters
-----------
-id : CommonUuid
- ID of parent resource
-
-child_id : CommonUuid
- ID of the resource to be updated
-
-description : str
-
-main : typing.Sequence[TasksUpdateTaskRequestMainItem]
- The entrypoint of the task.
-
-tools : typing.Sequence[TasksTaskTool]
- Tools defined specifically for this task not included in the Agent itself.
-
-inherit_tools : bool
- Whether to inherit tools from the parent agent or not. Defaults to true.
-
-input_schema : typing.Optional[typing.Dict[str, typing.Any]]
- The schema for the input to the task. `null` means all inputs are valid.
-
-metadata : typing.Optional[typing.Dict[str, typing.Any]]
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-CommonResourceUpdatedResponse
- The request has succeeded.
-
-Examples
---------
-from julep import TasksTaskTool
-from julep.client import JulepApi
-
-client = JulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-client.tasks_route_update(
- id="id",
- child_id="child_id",
- description="description",
- main=[],
- tools=[
- TasksTaskTool(
- type="function",
- name="name",
- )
- ],
- inherit_tools=True,
-)
-
-#### Signature
-
-```python
-def tasks_route_update(
- self,
- id: CommonUuid,
- child_id: CommonUuid,
- description: str,
- main: typing.Sequence[TasksUpdateTaskRequestMainItem],
- tools: typing.Sequence[TasksTaskTool],
- inherit_tools: bool,
- input_schema: typing.Optional[typing.Dict[str, typing.Any]] = OMIT,
- metadata: typing.Optional[typing.Dict[str, typing.Any]] = OMIT,
- request_options: typing.Optional[RequestOptions] = None,
-) -> CommonResourceUpdatedResponse: ...
-```
-
-#### See also
-
-- [OMIT](#omit)
-
-### JulepApi().user_docs_route_create
-
-[Show source in client.py:3533](../../../../../../julep/api/client.py#L3533)
-
-Create a Doc for this User
-
-Parameters
-----------
-id : CommonUuid
- ID of parent resource
-
-title : CommonIdentifierSafeUnicode
- Title describing what this document contains
-
-content : DocsCreateDocRequestContent
- Contents of the document
-
-metadata : typing.Optional[typing.Dict[str, typing.Any]]
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-CommonResourceCreatedResponse
- The request has succeeded and a new resource has been created as a result.
-
-Examples
---------
-from julep.client import JulepApi
-
-client = JulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-client.user_docs_route_create(
- id="id",
- title="title",
- content="content",
-)
-
-#### Signature
-
-```python
-def user_docs_route_create(
- self,
- id: CommonUuid,
- title: CommonIdentifierSafeUnicode,
- content: DocsCreateDocRequestContent,
- metadata: typing.Optional[typing.Dict[str, typing.Any]] = OMIT,
- request_options: typing.Optional[RequestOptions] = None,
-) -> CommonResourceCreatedResponse: ...
-```
-
-#### See also
-
-- [OMIT](#omit)
-
-### JulepApi().user_docs_route_delete
-
-[Show source in client.py:3595](../../../../../../julep/api/client.py#L3595)
-
-Delete a Doc for this User
-
-Parameters
-----------
-id : CommonUuid
- ID of parent resource
-
-child_id : CommonUuid
- ID of the resource to be deleted
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-CommonResourceDeletedResponse
- The request has been accepted for processing, but processing has not yet completed.
-
-Examples
---------
-from julep.client import JulepApi
-
-client = JulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-client.user_docs_route_delete(
- id="id",
- child_id="child_id",
-)
-
-#### Signature
-
-```python
-def user_docs_route_delete(
- self,
- id: CommonUuid,
- child_id: CommonUuid,
- request_options: typing.Optional[RequestOptions] = None,
-) -> CommonResourceDeletedResponse: ...
-```
-
-### JulepApi().user_docs_route_list
-
-[Show source in client.py:3454](../../../../../../julep/api/client.py#L3454)
-
-List Docs owned by a User
-
-Parameters
-----------
-id : CommonUuid
- ID of parent
-
-limit : CommonLimit
- Limit the number of items returned
-
-offset : CommonOffset
- Offset the items returned
-
-sort_by : UserDocsRouteListRequestSortBy
- Sort by a field
-
-direction : UserDocsRouteListRequestDirection
- Sort direction
-
-metadata_filter : str
- JSON string of object that should be used to filter objects by metadata
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-UserDocsRouteListResponse
- The request has succeeded.
-
-Examples
---------
-from julep.client import JulepApi
-
-client = JulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-client.user_docs_route_list(
- id="id",
- limit=1,
- offset=1,
- sort_by="created_at",
- direction="asc",
- metadata_filter="metadata_filter",
-)
-
-#### Signature
-
-```python
-def user_docs_route_list(
- self,
- id: CommonUuid,
- limit: CommonLimit,
- offset: CommonOffset,
- sort_by: UserDocsRouteListRequestSortBy,
- direction: UserDocsRouteListRequestDirection,
- metadata_filter: str,
- request_options: typing.Optional[RequestOptions] = None,
-) -> UserDocsRouteListResponse: ...
-```
-
-### JulepApi().user_docs_search_route_search
-
-[Show source in client.py:3647](../../../../../../julep/api/client.py#L3647)
-
-Search Docs owned by a User
-
-Parameters
-----------
-id : CommonUuid
- ID of the parent
-
-body : UserDocsSearchRouteSearchRequestBody
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-DocsDocSearchResponse
- The request has succeeded.
-
-Examples
---------
-from julep import DocsVectorDocSearchRequest
-from julep.client import JulepApi
-
-client = JulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-client.user_docs_search_route_search(
- id="id",
- body=DocsVectorDocSearchRequest(
- limit=1,
- confidence=1.1,
- vector=[1.1],
- ),
-)
-
-#### Signature
-
-```python
-def user_docs_search_route_search(
- self,
- id: CommonUuid,
- body: UserDocsSearchRouteSearchRequestBody,
- request_options: typing.Optional[RequestOptions] = None,
-) -> DocsDocSearchResponse: ...
-```
-
-### JulepApi().users_route_create
-
-[Show source in client.py:3126](../../../../../../julep/api/client.py#L3126)
-
-Create a new user
-
-Parameters
-----------
-name : CommonIdentifierSafeUnicode
- Name of the user
-
-about : str
- About the user
-
-metadata : typing.Optional[typing.Dict[str, typing.Any]]
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-CommonResourceCreatedResponse
- The request has succeeded and a new resource has been created as a result.
-
-Examples
---------
-from julep.client import JulepApi
-
-client = JulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-client.users_route_create(
- name="name",
- about="about",
-)
-
-#### Signature
-
-```python
-def users_route_create(
- self,
- name: CommonIdentifierSafeUnicode,
- about: str,
- metadata: typing.Optional[typing.Dict[str, typing.Any]] = OMIT,
- request_options: typing.Optional[RequestOptions] = None,
-) -> CommonResourceCreatedResponse: ...
-```
-
-#### See also
-
-- [OMIT](#omit)
-
-### JulepApi().users_route_create_or_update
-
-[Show source in client.py:3227](../../../../../../julep/api/client.py#L3227)
-
-Create or update a user
-
-Parameters
-----------
-id : CommonUuid
-
-name : CommonIdentifierSafeUnicode
- Name of the user
-
-about : str
- About the user
-
-metadata : typing.Optional[typing.Dict[str, typing.Any]]
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-CommonResourceUpdatedResponse
- The request has succeeded.
-
-Examples
---------
-from julep.client import JulepApi
-
-client = JulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-client.users_route_create_or_update(
- id="id",
- name="name",
- about="about",
-)
-
-#### Signature
-
-```python
-def users_route_create_or_update(
- self,
- id: CommonUuid,
- name: CommonIdentifierSafeUnicode,
- about: str,
- metadata: typing.Optional[typing.Dict[str, typing.Any]] = OMIT,
- request_options: typing.Optional[RequestOptions] = None,
-) -> CommonResourceUpdatedResponse: ...
-```
-
-#### See also
-
-- [OMIT](#omit)
-
-### JulepApi().users_route_delete
-
-[Show source in client.py:3350](../../../../../../julep/api/client.py#L3350)
-
-Delete a user by id
-
-Parameters
-----------
-id : CommonUuid
- ID of the resource
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-CommonResourceDeletedResponse
- The request has been accepted for processing, but processing has not yet completed.
-
-Examples
---------
-from julep.client import JulepApi
-
-client = JulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-client.users_route_delete(
- id="id",
-)
-
-#### Signature
-
-```python
-def users_route_delete(
- self, id: CommonUuid, request_options: typing.Optional[RequestOptions] = None
-) -> CommonResourceDeletedResponse: ...
-```
-
-### JulepApi().users_route_get
-
-[Show source in client.py:3183](../../../../../../julep/api/client.py#L3183)
-
-Get a user by id
-
-Parameters
-----------
-id : CommonUuid
- ID of the resource
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-UsersUser
- The request has succeeded.
-
-Examples
---------
-from julep.client import JulepApi
-
-client = JulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-client.users_route_get(
- id="id",
-)
-
-#### Signature
-
-```python
-def users_route_get(
- self, id: CommonUuid, request_options: typing.Optional[RequestOptions] = None
-) -> UsersUser: ...
-```
-
-### JulepApi().users_route_list
-
-[Show source in client.py:3052](../../../../../../julep/api/client.py#L3052)
-
-List users (paginated)
-
-Parameters
-----------
-limit : CommonLimit
- Limit the number of items returned
-
-offset : CommonOffset
- Offset the items returned
-
-sort_by : UsersRouteListRequestSortBy
- Sort by a field
-
-direction : UsersRouteListRequestDirection
- Sort direction
-
-metadata_filter : str
- JSON string of object that should be used to filter objects by metadata
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-UsersRouteListResponse
- The request has succeeded.
-
-Examples
---------
-from julep.client import JulepApi
-
-client = JulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-client.users_route_list(
- limit=1,
- offset=1,
- sort_by="created_at",
- direction="asc",
- metadata_filter="metadata_filter",
-)
-
-#### Signature
-
-```python
-def users_route_list(
- self,
- limit: CommonLimit,
- offset: CommonOffset,
- sort_by: UsersRouteListRequestSortBy,
- direction: UsersRouteListRequestDirection,
- metadata_filter: str,
- request_options: typing.Optional[RequestOptions] = None,
-) -> UsersRouteListResponse: ...
-```
-
-### JulepApi().users_route_patch
-
-[Show source in client.py:3394](../../../../../../julep/api/client.py#L3394)
-
-Update an existing user by id (merge with existing values)
-
-Parameters
-----------
-id : CommonUuid
- ID of the resource
-
-metadata : typing.Optional[typing.Dict[str, typing.Any]]
-
-name : typing.Optional[CommonIdentifierSafeUnicode]
- Name of the user
-
-about : typing.Optional[str]
- About the user
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-CommonResourceUpdatedResponse
- The request has succeeded.
-
-Examples
---------
-from julep.client import JulepApi
-
-client = JulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-client.users_route_patch(
- id="id",
-)
-
-#### Signature
-
-```python
-def users_route_patch(
- self,
- id: CommonUuid,
- metadata: typing.Optional[typing.Dict[str, typing.Any]] = OMIT,
- name: typing.Optional[CommonIdentifierSafeUnicode] = OMIT,
- about: typing.Optional[str] = OMIT,
- request_options: typing.Optional[RequestOptions] = None,
-) -> CommonResourceUpdatedResponse: ...
-```
-
-#### See also
-
-- [OMIT](#omit)
-
-### JulepApi().users_route_update
-
-[Show source in client.py:3288](../../../../../../julep/api/client.py#L3288)
-
-Update an existing user by id (overwrite existing values)
-
-Parameters
-----------
-id : CommonUuid
- ID of the resource
-
-name : CommonIdentifierSafeUnicode
- Name of the user
-
-about : str
- About the user
-
-metadata : typing.Optional[typing.Dict[str, typing.Any]]
-
-request_options : typing.Optional[RequestOptions]
- Request-specific configuration.
-
-Returns
--------
-CommonResourceUpdatedResponse
- The request has succeeded.
-
-Examples
---------
-from julep.client import JulepApi
-
-client = JulepApi(
- auth_key="YOUR_AUTH_KEY",
- api_key="YOUR_API_KEY",
-)
-client.users_route_update(
- id="id",
- name="name",
- about="about",
-)
-
-#### Signature
-
-```python
-def users_route_update(
- self,
- id: CommonUuid,
- name: CommonIdentifierSafeUnicode,
- about: str,
- metadata: typing.Optional[typing.Dict[str, typing.Any]] = OMIT,
- request_options: typing.Optional[RequestOptions] = None,
-) -> CommonResourceUpdatedResponse: ...
-```
-
-#### See also
-
-- [OMIT](#omit)
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/core/api_error.md b/docs/python-sdk-docs/julep/api/core/api_error.md
deleted file mode 100644
index 7a1374c8a..000000000
--- a/docs/python-sdk-docs/julep/api/core/api_error.md
+++ /dev/null
@@ -1,21 +0,0 @@
-# ApiError
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Core](./index.md#core) / ApiError
-
-> Auto-generated documentation for [julep.api.core.api_error](../../../../../../../julep/api/core/api_error.py) module.
-
-- [ApiError](#apierror)
- - [ApiError](#apierror-1)
-
-## ApiError
-
-[Show source in api_error.py:6](../../../../../../../julep/api/core/api_error.py#L6)
-
-#### Signature
-
-```python
-class ApiError(Exception):
- def __init__(
- self, status_code: typing.Optional[int] = None, body: typing.Any = None
- ): ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/core/client_wrapper.md b/docs/python-sdk-docs/julep/api/core/client_wrapper.md
deleted file mode 100644
index 876018f69..000000000
--- a/docs/python-sdk-docs/julep/api/core/client_wrapper.md
+++ /dev/null
@@ -1,105 +0,0 @@
-# Client Wrapper
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Core](./index.md#core) / Client Wrapper
-
-> Auto-generated documentation for [julep.api.core.client_wrapper](../../../../../../../julep/api/core/client_wrapper.py) module.
-
-- [Client Wrapper](#client-wrapper)
- - [AsyncClientWrapper](#asyncclientwrapper)
- - [BaseClientWrapper](#baseclientwrapper)
- - [SyncClientWrapper](#syncclientwrapper)
-
-## AsyncClientWrapper
-
-[Show source in client_wrapper.py:58](../../../../../../../julep/api/core/client_wrapper.py#L58)
-
-#### Signature
-
-```python
-class AsyncClientWrapper(BaseClientWrapper):
- def __init__(
- self,
- auth_key: str,
- api_key: str,
- base_url: str,
- timeout: typing.Optional[float] = None,
- httpx_client: httpx.AsyncClient,
- ): ...
-```
-
-#### See also
-
-- [BaseClientWrapper](#baseclientwrapper)
-
-
-
-## BaseClientWrapper
-
-[Show source in client_wrapper.py:10](../../../../../../../julep/api/core/client_wrapper.py#L10)
-
-#### Signature
-
-```python
-class BaseClientWrapper:
- def __init__(
- self,
- auth_key: str,
- api_key: str,
- base_url: str,
- timeout: typing.Optional[float] = None,
- ): ...
-```
-
-### BaseClientWrapper().get_base_url
-
-[Show source in client_wrapper.py:30](../../../../../../../julep/api/core/client_wrapper.py#L30)
-
-#### Signature
-
-```python
-def get_base_url(self) -> str: ...
-```
-
-### BaseClientWrapper().get_headers
-
-[Show source in client_wrapper.py:24](../../../../../../../julep/api/core/client_wrapper.py#L24)
-
-#### Signature
-
-```python
-def get_headers(self) -> typing.Dict[str, str]: ...
-```
-
-### BaseClientWrapper().get_timeout
-
-[Show source in client_wrapper.py:33](../../../../../../../julep/api/core/client_wrapper.py#L33)
-
-#### Signature
-
-```python
-def get_timeout(self) -> typing.Optional[float]: ...
-```
-
-
-
-## SyncClientWrapper
-
-[Show source in client_wrapper.py:37](../../../../../../../julep/api/core/client_wrapper.py#L37)
-
-#### Signature
-
-```python
-class SyncClientWrapper(BaseClientWrapper):
- def __init__(
- self,
- auth_key: str,
- api_key: str,
- base_url: str,
- timeout: typing.Optional[float] = None,
- httpx_client: httpx.Client,
- ): ...
-```
-
-#### See also
-
-- [BaseClientWrapper](#baseclientwrapper)
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/core/datetime_utils.md b/docs/python-sdk-docs/julep/api/core/datetime_utils.md
deleted file mode 100644
index 079e9b9c1..000000000
--- a/docs/python-sdk-docs/julep/api/core/datetime_utils.md
+++ /dev/null
@@ -1,24 +0,0 @@
-# Datetime Utils
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Core](./index.md#core) / Datetime Utils
-
-> Auto-generated documentation for [julep.api.core.datetime_utils](../../../../../../../julep/api/core/datetime_utils.py) module.
-
-- [Datetime Utils](#datetime-utils)
- - [serialize_datetime](#serialize_datetime)
-
-## serialize_datetime
-
-[Show source in datetime_utils.py:6](../../../../../../../julep/api/core/datetime_utils.py#L6)
-
-Serialize a datetime including timezone info.
-
-Uses the timezone info provided if present, otherwise uses the current runtime's timezone info.
-
-UTC datetimes end in "Z" while all other timezones are represented as offset from UTC, e.g. +05:00.
-
-#### Signature
-
-```python
-def serialize_datetime(v: dt.datetime) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/core/file.md b/docs/python-sdk-docs/julep/api/core/file.md
deleted file mode 100644
index 79d76c4cf..000000000
--- a/docs/python-sdk-docs/julep/api/core/file.md
+++ /dev/null
@@ -1,36 +0,0 @@
-# File
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Core](./index.md#core) / File
-
-> Auto-generated documentation for [julep.api.core.file](../../../../../../../julep/api/core/file.py) module.
-
-#### Attributes
-
-- `FileContent` - File typing inspired by the flexibility of types within the httpx library
- https://github.com/encode/httpx/blob/master/httpx/_types.py: typing.Union[typing.IO[bytes], bytes, str]
-
-
-- [File](#file)
- - [convert_file_dict_to_httpx_tuples](#convert_file_dict_to_httpx_tuples)
-
-## convert_file_dict_to_httpx_tuples
-
-[Show source in file.py:25](../../../../../../../julep/api/core/file.py#L25)
-
-The format we use is a list of tuples, where the first element is the
-name of the file and the second is the file object. Typically HTTPX wants
-a dict, but to be able to send lists of files, you have to use the list
-approach (which also works for non-lists)
-https://github.com/encode/httpx/pull/1032
-
-#### Signature
-
-```python
-def convert_file_dict_to_httpx_tuples(
- d: typing.Dict[str, typing.Union[File, typing.List[File]]],
-) -> typing.List[typing.Tuple[str, File]]: ...
-```
-
-#### See also
-
-- [File](#file)
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/core/http_client.md b/docs/python-sdk-docs/julep/api/core/http_client.md
deleted file mode 100644
index bdfc9598a..000000000
--- a/docs/python-sdk-docs/julep/api/core/http_client.md
+++ /dev/null
@@ -1,264 +0,0 @@
-# HttpClient
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Core](./index.md#core) / HttpClient
-
-> Auto-generated documentation for [julep.api.core.http_client](../../../../../../../julep/api/core/http_client.py) module.
-
-- [HttpClient](#httpclient)
- - [AsyncHttpClient](#asynchttpclient)
- - [HttpClient](#httpclient-1)
- - [_parse_retry_after](#_parse_retry_after)
- - [_retry_timeout](#_retry_timeout)
- - [get_request_body](#get_request_body)
- - [maybe_filter_request_body](#maybe_filter_request_body)
- - [remove_omit_from_dict](#remove_omit_from_dict)
-
-## AsyncHttpClient
-
-[Show source in http_client.py:357](../../../../../../../julep/api/core/http_client.py#L357)
-
-#### Signature
-
-```python
-class AsyncHttpClient:
- def __init__(
- self,
- httpx_client: httpx.AsyncClient,
- base_timeout: typing.Optional[float],
- base_headers: typing.Dict[str, str],
- base_url: typing.Optional[str] = None,
- ): ...
-```
-
-### AsyncHttpClient().get_base_url
-
-[Show source in http_client.py:371](../../../../../../../julep/api/core/http_client.py#L371)
-
-#### Signature
-
-```python
-def get_base_url(self, maybe_base_url: typing.Optional[str]) -> str: ...
-```
-
-### AsyncHttpClient().request
-
-[Show source in http_client.py:379](../../../../../../../julep/api/core/http_client.py#L379)
-
-#### Signature
-
-```python
-async def request(
- self,
- path: typing.Optional[str] = None,
- method: str,
- base_url: typing.Optional[str] = None,
- params: typing.Optional[typing.Dict[str, typing.Any]] = None,
- json: typing.Optional[typing.Any] = None,
- data: typing.Optional[typing.Any] = None,
- content: typing.Optional[
- typing.Union[bytes, typing.Iterator[bytes], typing.AsyncIterator[bytes]]
- ] = None,
- files: typing.Optional[
- typing.Dict[str, typing.Optional[typing.Union[File, typing.List[File]]]]
- ] = None,
- headers: typing.Optional[typing.Dict[str, typing.Any]] = None,
- request_options: typing.Optional[RequestOptions] = None,
- retries: int = 0,
- omit: typing.Optional[typing.Any] = None,
-) -> httpx.Response: ...
-```
-
-### AsyncHttpClient().stream
-
-[Show source in http_client.py:480](../../../../../../../julep/api/core/http_client.py#L480)
-
-#### Signature
-
-```python
-@asynccontextmanager
-async def stream(
- self,
- path: typing.Optional[str] = None,
- method: str,
- base_url: typing.Optional[str] = None,
- params: typing.Optional[typing.Dict[str, typing.Any]] = None,
- json: typing.Optional[typing.Any] = None,
- data: typing.Optional[typing.Any] = None,
- content: typing.Optional[
- typing.Union[bytes, typing.Iterator[bytes], typing.AsyncIterator[bytes]]
- ] = None,
- files: typing.Optional[
- typing.Dict[str, typing.Optional[typing.Union[File, typing.List[File]]]]
- ] = None,
- headers: typing.Optional[typing.Dict[str, typing.Any]] = None,
- request_options: typing.Optional[RequestOptions] = None,
- retries: int = 0,
- omit: typing.Optional[typing.Any] = None,
-) -> typing.AsyncIterator[httpx.Response]: ...
-```
-
-
-
-## HttpClient
-
-[Show source in http_client.py:153](../../../../../../../julep/api/core/http_client.py#L153)
-
-#### Signature
-
-```python
-class HttpClient:
- def __init__(
- self,
- httpx_client: httpx.Client,
- base_timeout: typing.Optional[float],
- base_headers: typing.Dict[str, str],
- base_url: typing.Optional[str] = None,
- ): ...
-```
-
-### HttpClient().get_base_url
-
-[Show source in http_client.py:167](../../../../../../../julep/api/core/http_client.py#L167)
-
-#### Signature
-
-```python
-def get_base_url(self, maybe_base_url: typing.Optional[str]) -> str: ...
-```
-
-### HttpClient().request
-
-[Show source in http_client.py:175](../../../../../../../julep/api/core/http_client.py#L175)
-
-#### Signature
-
-```python
-def request(
- self,
- path: typing.Optional[str] = None,
- method: str,
- base_url: typing.Optional[str] = None,
- params: typing.Optional[typing.Dict[str, typing.Any]] = None,
- json: typing.Optional[typing.Any] = None,
- data: typing.Optional[typing.Any] = None,
- content: typing.Optional[
- typing.Union[bytes, typing.Iterator[bytes], typing.AsyncIterator[bytes]]
- ] = None,
- files: typing.Optional[
- typing.Dict[str, typing.Optional[typing.Union[File, typing.List[File]]]]
- ] = None,
- headers: typing.Optional[typing.Dict[str, typing.Any]] = None,
- request_options: typing.Optional[RequestOptions] = None,
- retries: int = 0,
- omit: typing.Optional[typing.Any] = None,
-) -> httpx.Response: ...
-```
-
-### HttpClient().stream
-
-[Show source in http_client.py:276](../../../../../../../julep/api/core/http_client.py#L276)
-
-#### Signature
-
-```python
-@contextmanager
-def stream(
- self,
- path: typing.Optional[str] = None,
- method: str,
- base_url: typing.Optional[str] = None,
- params: typing.Optional[typing.Dict[str, typing.Any]] = None,
- json: typing.Optional[typing.Any] = None,
- data: typing.Optional[typing.Any] = None,
- content: typing.Optional[
- typing.Union[bytes, typing.Iterator[bytes], typing.AsyncIterator[bytes]]
- ] = None,
- files: typing.Optional[
- typing.Dict[str, typing.Optional[typing.Union[File, typing.List[File]]]]
- ] = None,
- headers: typing.Optional[typing.Dict[str, typing.Any]] = None,
- request_options: typing.Optional[RequestOptions] = None,
- retries: int = 0,
- omit: typing.Optional[typing.Any] = None,
-) -> typing.Iterator[httpx.Response]: ...
-```
-
-
-
-## _parse_retry_after
-
-[Show source in http_client.py:26](../../../../../../../julep/api/core/http_client.py#L26)
-
-This function parses the `Retry-After` header in a HTTP response and returns the number of seconds to wait.
-
-Inspired by the urllib3 retry implementation.
-
-#### Signature
-
-```python
-def _parse_retry_after(response_headers: httpx.Headers) -> typing.Optional[float]: ...
-```
-
-
-
-## _retry_timeout
-
-[Show source in http_client.py:67](../../../../../../../julep/api/core/http_client.py#L67)
-
-Determine the amount of time to wait before retrying a request.
-This function begins by trying to parse a retry-after header from the response, and then proceeds to use exponential backoff
-with a jitter to determine the number of seconds to wait.
-
-#### Signature
-
-```python
-def _retry_timeout(response: httpx.Response, retries: int) -> float: ...
-```
-
-
-
-## get_request_body
-
-[Show source in http_client.py:135](../../../../../../../julep/api/core/http_client.py#L135)
-
-#### Signature
-
-```python
-def get_request_body(
- json: typing.Optional[typing.Any],
- data: typing.Optional[typing.Any],
- request_options: typing.Optional[RequestOptions],
- omit: typing.Optional[typing.Any],
-) -> typing.Tuple[typing.Optional[typing.Any], typing.Optional[typing.Any]]: ...
-```
-
-
-
-## maybe_filter_request_body
-
-[Show source in http_client.py:107](../../../../../../../julep/api/core/http_client.py#L107)
-
-#### Signature
-
-```python
-def maybe_filter_request_body(
- data: typing.Optional[typing.Any],
- request_options: typing.Optional[RequestOptions],
- omit: typing.Optional[typing.Any],
-) -> typing.Optional[typing.Any]: ...
-```
-
-
-
-## remove_omit_from_dict
-
-[Show source in http_client.py:94](../../../../../../../julep/api/core/http_client.py#L94)
-
-#### Signature
-
-```python
-def remove_omit_from_dict(
- original: typing.Dict[str, typing.Optional[typing.Any]],
- omit: typing.Optional[typing.Any],
-) -> typing.Dict[str, typing.Any]: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/core/index.md b/docs/python-sdk-docs/julep/api/core/index.md
deleted file mode 100644
index 66561bb3a..000000000
--- a/docs/python-sdk-docs/julep/api/core/index.md
+++ /dev/null
@@ -1,21 +0,0 @@
-# Core
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / Core
-
-> Auto-generated documentation for [julep.api.core](../../../../../../../julep/api/core/__init__.py) module.
-
-- [Core](#core)
- - [Modules](#modules)
-
-## Modules
-
-- [ApiError](./api_error.md)
-- [Client Wrapper](./client_wrapper.md)
-- [Datetime Utils](./datetime_utils.md)
-- [File](./file.md)
-- [HttpClient](./http_client.md)
-- [Jsonable Encoder](./jsonable_encoder.md)
-- [Pydantic Utilities](./pydantic_utilities.md)
-- [Query Encoder](./query_encoder.md)
-- [Remove None From Dict](./remove_none_from_dict.md)
-- [RequestOptions](./request_options.md)
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/core/jsonable_encoder.md b/docs/python-sdk-docs/julep/api/core/jsonable_encoder.md
deleted file mode 100644
index 0f9ec18f8..000000000
--- a/docs/python-sdk-docs/julep/api/core/jsonable_encoder.md
+++ /dev/null
@@ -1,35 +0,0 @@
-# Jsonable Encoder
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Core](./index.md#core) / Jsonable Encoder
-
-> Auto-generated documentation for [julep.api.core.jsonable_encoder](../../../../../../../julep/api/core/jsonable_encoder.py) module.
-
-- [Jsonable Encoder](#jsonable-encoder)
- - [generate_encoders_by_class_tuples](#generate_encoders_by_class_tuples)
- - [jsonable_encoder](#jsonable_encoder)
-
-## generate_encoders_by_class_tuples
-
-[Show source in jsonable_encoder.py:26](../../../../../../../julep/api/core/jsonable_encoder.py#L26)
-
-#### Signature
-
-```python
-def generate_encoders_by_class_tuples(
- type_encoder_map: Dict[Any, Callable[[Any], Any]],
-) -> Dict[Callable[[Any], Any], Tuple[Any, ...]]: ...
-```
-
-
-
-## jsonable_encoder
-
-[Show source in jsonable_encoder.py:42](../../../../../../../julep/api/core/jsonable_encoder.py#L42)
-
-#### Signature
-
-```python
-def jsonable_encoder(
- obj: Any, custom_encoder: Optional[Dict[Any, Callable[[Any], Any]]] = None
-) -> Any: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/core/pydantic_utilities.md b/docs/python-sdk-docs/julep/api/core/pydantic_utilities.md
deleted file mode 100644
index 032fa4805..000000000
--- a/docs/python-sdk-docs/julep/api/core/pydantic_utilities.md
+++ /dev/null
@@ -1,6 +0,0 @@
-# Pydantic Utilities
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Core](./index.md#core) / Pydantic Utilities
-
-> Auto-generated documentation for [julep.api.core.pydantic_utilities](../../../../../../../julep/api/core/pydantic_utilities.py) module.
-- [Pydantic Utilities](#pydantic-utilities)
diff --git a/docs/python-sdk-docs/julep/api/core/query_encoder.md b/docs/python-sdk-docs/julep/api/core/query_encoder.md
deleted file mode 100644
index 2c4b4f65d..000000000
--- a/docs/python-sdk-docs/julep/api/core/query_encoder.md
+++ /dev/null
@@ -1,46 +0,0 @@
-# Query Encoder
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Core](./index.md#core) / Query Encoder
-
-> Auto-generated documentation for [julep.api.core.query_encoder](../../../../../../../julep/api/core/query_encoder.py) module.
-
-- [Query Encoder](#query-encoder)
- - [encode_query](#encode_query)
- - [single_query_encoder](#single_query_encoder)
- - [traverse_query_dict](#traverse_query_dict)
-
-## encode_query
-
-[Show source in query_encoder.py:34](../../../../../../../julep/api/core/query_encoder.py#L34)
-
-#### Signature
-
-```python
-def encode_query(query: Optional[Dict[str, Any]]) -> Optional[Dict[str, Any]]: ...
-```
-
-
-
-## single_query_encoder
-
-[Show source in query_encoder.py:23](../../../../../../../julep/api/core/query_encoder.py#L23)
-
-#### Signature
-
-```python
-def single_query_encoder(query_key: str, query_value: Any) -> Dict[str, Any]: ...
-```
-
-
-
-## traverse_query_dict
-
-[Show source in query_encoder.py:10](../../../../../../../julep/api/core/query_encoder.py#L10)
-
-#### Signature
-
-```python
-def traverse_query_dict(
- dict_flat: Dict[str, Any], key_prefix: Optional[str] = None
-) -> Dict[str, Any]: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/core/remove_none_from_dict.md b/docs/python-sdk-docs/julep/api/core/remove_none_from_dict.md
deleted file mode 100644
index 532583b48..000000000
--- a/docs/python-sdk-docs/julep/api/core/remove_none_from_dict.md
+++ /dev/null
@@ -1,18 +0,0 @@
-# Remove None From Dict
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Core](./index.md#core) / Remove None From Dict
-
-> Auto-generated documentation for [julep.api.core.remove_none_from_dict](../../../../../../../julep/api/core/remove_none_from_dict.py) module.
-
-- [Remove None From Dict](#remove-none-from-dict)
- - [remove_none_from_dict](#remove_none_from_dict)
-
-## remove_none_from_dict
-
-[Show source in remove_none_from_dict.py:6](../../../../../../../julep/api/core/remove_none_from_dict.py#L6)
-
-#### Signature
-
-```python
-def remove_none_from_dict(original: Mapping[str, Optional[Any]]) -> Dict[str, Any]: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/core/request_options.md b/docs/python-sdk-docs/julep/api/core/request_options.md
deleted file mode 100644
index cac44806f..000000000
--- a/docs/python-sdk-docs/julep/api/core/request_options.md
+++ /dev/null
@@ -1,33 +0,0 @@
-# RequestOptions
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Core](./index.md#core) / RequestOptions
-
-> Auto-generated documentation for [julep.api.core.request_options](../../../../../../../julep/api/core/request_options.py) module.
-
-- [RequestOptions](#requestoptions)
- - [RequestOptions](#requestoptions-1)
-
-## RequestOptions
-
-[Show source in request_options.py:11](../../../../../../../julep/api/core/request_options.py#L11)
-
-Additional options for request-specific configuration when calling APIs via the SDK.
-This is used primarily as an optional final parameter for service functions.
-
-#### Attributes
-
-- `-` *timeout_in_seconds* - int. The number of seconds to await an API call before timing out.
-
-- `-` *max_retries* - int. The max number of retries to attempt if the API call fails.
-
-- `-` *additional_headers* - typing.Dict[str, typing.Any]. A dictionary containing additional parameters to spread into the request's header dict
-
-- `-` *additional_query_parameters* - typing.Dict[str, typing.Any]. A dictionary containing additional parameters to spread into the request's query parameters dict
-
-- `-` *additional_body_parameters* - typing.Dict[str, typing.Any]. A dictionary containing additional parameters to spread into the request's body parameters dict
-
-#### Signature
-
-```python
-class RequestOptions(typing.TypedDict): ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/environment.md b/docs/python-sdk-docs/julep/api/environment.md
deleted file mode 100644
index d10e1aa22..000000000
--- a/docs/python-sdk-docs/julep/api/environment.md
+++ /dev/null
@@ -1,18 +0,0 @@
-# Environment
-
-[Julep Python SDK Index](../../README.md#julep-python-sdk-index) / [Julep](../index.md#julep) / [Julep Python Library](./index.md#julep-python-library) / Environment
-
-> Auto-generated documentation for [julep.api.environment](../../../../../../julep/api/environment.py) module.
-
-- [Environment](#environment)
- - [JulepApiEnvironment](#julepapienvironment)
-
-## JulepApiEnvironment
-
-[Show source in environment.py:6](../../../../../../julep/api/environment.py#L6)
-
-#### Signature
-
-```python
-class JulepApiEnvironment(enum.Enum): ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/index.md b/docs/python-sdk-docs/julep/api/index.md
deleted file mode 100644
index f943d9357..000000000
--- a/docs/python-sdk-docs/julep/api/index.md
+++ /dev/null
@@ -1,15 +0,0 @@
-# Julep Python Library
-
-[Julep Python SDK Index](../../README.md#julep-python-sdk-index) / [Julep](../index.md#julep) / Julep Python Library
-
-> Auto-generated documentation for [julep.api](../../../../../../julep/api/__init__.py) module.
-
-- [Julep Python Library](#julep-python-library)
- - [Modules](#modules)
-
-## Modules
-
-- [Client](./client.md)
-- [Core](core/index.md)
-- [Environment](./environment.md)
-- [Types](types/index.md)
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/agent_docs_route_list_request_direction.md b/docs/python-sdk-docs/julep/api/types/agent_docs_route_list_request_direction.md
deleted file mode 100644
index 6073fd184..000000000
--- a/docs/python-sdk-docs/julep/api/types/agent_docs_route_list_request_direction.md
+++ /dev/null
@@ -1,6 +0,0 @@
-# Agent Docs Route List Request Direction
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / Agent Docs Route List Request Direction
-
-> Auto-generated documentation for [julep.api.types.agent_docs_route_list_request_direction](../../../../../../../julep/api/types/agent_docs_route_list_request_direction.py) module.
-- [Agent Docs Route List Request Direction](#agent-docs-route-list-request-direction)
diff --git a/docs/python-sdk-docs/julep/api/types/agent_docs_route_list_request_sort_by.md b/docs/python-sdk-docs/julep/api/types/agent_docs_route_list_request_sort_by.md
deleted file mode 100644
index 5c28c8198..000000000
--- a/docs/python-sdk-docs/julep/api/types/agent_docs_route_list_request_sort_by.md
+++ /dev/null
@@ -1,6 +0,0 @@
-# Agent Docs Route List Request Sort By
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / Agent Docs Route List Request Sort By
-
-> Auto-generated documentation for [julep.api.types.agent_docs_route_list_request_sort_by](../../../../../../../julep/api/types/agent_docs_route_list_request_sort_by.py) module.
-- [Agent Docs Route List Request Sort By](#agent-docs-route-list-request-sort-by)
diff --git a/docs/python-sdk-docs/julep/api/types/agent_docs_route_list_response.md b/docs/python-sdk-docs/julep/api/types/agent_docs_route_list_response.md
deleted file mode 100644
index 07b9352e5..000000000
--- a/docs/python-sdk-docs/julep/api/types/agent_docs_route_list_response.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# AgentDocsRouteListResponse
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / AgentDocsRouteListResponse
-
-> Auto-generated documentation for [julep.api.types.agent_docs_route_list_response](../../../../../../../julep/api/types/agent_docs_route_list_response.py) module.
-
-- [AgentDocsRouteListResponse](#agentdocsroutelistresponse)
- - [AgentDocsRouteListResponse](#agentdocsroutelistresponse-1)
-
-## AgentDocsRouteListResponse
-
-[Show source in agent_docs_route_list_response.py:11](../../../../../../../julep/api/types/agent_docs_route_list_response.py#L11)
-
-#### Signature
-
-```python
-class AgentDocsRouteListResponse(pydantic_v1.BaseModel): ...
-```
-
-### AgentDocsRouteListResponse().dict
-
-[Show source in agent_docs_route_list_response.py:22](../../../../../../../julep/api/types/agent_docs_route_list_response.py#L22)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### AgentDocsRouteListResponse().json
-
-[Show source in agent_docs_route_list_response.py:14](../../../../../../../julep/api/types/agent_docs_route_list_response.py#L14)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/agent_tools_route_list_request_direction.md b/docs/python-sdk-docs/julep/api/types/agent_tools_route_list_request_direction.md
deleted file mode 100644
index 6a9f1e4c2..000000000
--- a/docs/python-sdk-docs/julep/api/types/agent_tools_route_list_request_direction.md
+++ /dev/null
@@ -1,6 +0,0 @@
-# Agent Tools Route List Request Direction
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / Agent Tools Route List Request Direction
-
-> Auto-generated documentation for [julep.api.types.agent_tools_route_list_request_direction](../../../../../../../julep/api/types/agent_tools_route_list_request_direction.py) module.
-- [Agent Tools Route List Request Direction](#agent-tools-route-list-request-direction)
diff --git a/docs/python-sdk-docs/julep/api/types/agent_tools_route_list_request_sort_by.md b/docs/python-sdk-docs/julep/api/types/agent_tools_route_list_request_sort_by.md
deleted file mode 100644
index f8ce5d292..000000000
--- a/docs/python-sdk-docs/julep/api/types/agent_tools_route_list_request_sort_by.md
+++ /dev/null
@@ -1,6 +0,0 @@
-# Agent Tools Route List Request Sort By
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / Agent Tools Route List Request Sort By
-
-> Auto-generated documentation for [julep.api.types.agent_tools_route_list_request_sort_by](../../../../../../../julep/api/types/agent_tools_route_list_request_sort_by.py) module.
-- [Agent Tools Route List Request Sort By](#agent-tools-route-list-request-sort-by)
diff --git a/docs/python-sdk-docs/julep/api/types/agent_tools_route_list_response.md b/docs/python-sdk-docs/julep/api/types/agent_tools_route_list_response.md
deleted file mode 100644
index 49377b911..000000000
--- a/docs/python-sdk-docs/julep/api/types/agent_tools_route_list_response.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# AgentToolsRouteListResponse
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / AgentToolsRouteListResponse
-
-> Auto-generated documentation for [julep.api.types.agent_tools_route_list_response](../../../../../../../julep/api/types/agent_tools_route_list_response.py) module.
-
-- [AgentToolsRouteListResponse](#agenttoolsroutelistresponse)
- - [AgentToolsRouteListResponse](#agenttoolsroutelistresponse-1)
-
-## AgentToolsRouteListResponse
-
-[Show source in agent_tools_route_list_response.py:11](../../../../../../../julep/api/types/agent_tools_route_list_response.py#L11)
-
-#### Signature
-
-```python
-class AgentToolsRouteListResponse(pydantic_v1.BaseModel): ...
-```
-
-### AgentToolsRouteListResponse().dict
-
-[Show source in agent_tools_route_list_response.py:22](../../../../../../../julep/api/types/agent_tools_route_list_response.py#L22)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### AgentToolsRouteListResponse().json
-
-[Show source in agent_tools_route_list_response.py:14](../../../../../../../julep/api/types/agent_tools_route_list_response.py#L14)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/agents_agent.md b/docs/python-sdk-docs/julep/api/types/agents_agent.md
deleted file mode 100644
index 0e1b52be6..000000000
--- a/docs/python-sdk-docs/julep/api/types/agents_agent.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# AgentsAgent
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / AgentsAgent
-
-> Auto-generated documentation for [julep.api.types.agents_agent](../../../../../../../julep/api/types/agents_agent.py) module.
-
-- [AgentsAgent](#agentsagent)
- - [AgentsAgent](#agentsagent-1)
-
-## AgentsAgent
-
-[Show source in agents_agent.py:14](../../../../../../../julep/api/types/agents_agent.py#L14)
-
-#### Signature
-
-```python
-class AgentsAgent(pydantic_v1.BaseModel): ...
-```
-
-### AgentsAgent().dict
-
-[Show source in agents_agent.py:62](../../../../../../../julep/api/types/agents_agent.py#L62)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### AgentsAgent().json
-
-[Show source in agents_agent.py:54](../../../../../../../julep/api/types/agents_agent.py#L54)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/agents_agent_instructions.md b/docs/python-sdk-docs/julep/api/types/agents_agent_instructions.md
deleted file mode 100644
index fde3264fe..000000000
--- a/docs/python-sdk-docs/julep/api/types/agents_agent_instructions.md
+++ /dev/null
@@ -1,6 +0,0 @@
-# Agents Agent Instructions
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / Agents Agent Instructions
-
-> Auto-generated documentation for [julep.api.types.agents_agent_instructions](../../../../../../../julep/api/types/agents_agent_instructions.py) module.
-- [Agents Agent Instructions](#agents-agent-instructions)
diff --git a/docs/python-sdk-docs/julep/api/types/agents_create_agent_request.md b/docs/python-sdk-docs/julep/api/types/agents_create_agent_request.md
deleted file mode 100644
index 0102d2005..000000000
--- a/docs/python-sdk-docs/julep/api/types/agents_create_agent_request.md
+++ /dev/null
@@ -1,40 +0,0 @@
-# AgentsCreateAgentRequest
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / AgentsCreateAgentRequest
-
-> Auto-generated documentation for [julep.api.types.agents_create_agent_request](../../../../../../../julep/api/types/agents_create_agent_request.py) module.
-
-- [AgentsCreateAgentRequest](#agentscreateagentrequest)
- - [AgentsCreateAgentRequest](#agentscreateagentrequest-1)
-
-## AgentsCreateAgentRequest
-
-[Show source in agents_create_agent_request.py:15](../../../../../../../julep/api/types/agents_create_agent_request.py#L15)
-
-Payload for creating a agent (and associated documents)
-
-#### Signature
-
-```python
-class AgentsCreateAgentRequest(pydantic_v1.BaseModel): ...
-```
-
-### AgentsCreateAgentRequest().dict
-
-[Show source in agents_create_agent_request.py:56](../../../../../../../julep/api/types/agents_create_agent_request.py#L56)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### AgentsCreateAgentRequest().json
-
-[Show source in agents_create_agent_request.py:48](../../../../../../../julep/api/types/agents_create_agent_request.py#L48)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/agents_create_agent_request_instructions.md b/docs/python-sdk-docs/julep/api/types/agents_create_agent_request_instructions.md
deleted file mode 100644
index 3b7d98899..000000000
--- a/docs/python-sdk-docs/julep/api/types/agents_create_agent_request_instructions.md
+++ /dev/null
@@ -1,6 +0,0 @@
-# Agents Create Agent Request Instructions
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / Agents Create Agent Request Instructions
-
-> Auto-generated documentation for [julep.api.types.agents_create_agent_request_instructions](../../../../../../../julep/api/types/agents_create_agent_request_instructions.py) module.
-- [Agents Create Agent Request Instructions](#agents-create-agent-request-instructions)
diff --git a/docs/python-sdk-docs/julep/api/types/agents_create_or_update_agent_request.md b/docs/python-sdk-docs/julep/api/types/agents_create_or_update_agent_request.md
deleted file mode 100644
index e13f3c7e3..000000000
--- a/docs/python-sdk-docs/julep/api/types/agents_create_or_update_agent_request.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# AgentsCreateOrUpdateAgentRequest
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / AgentsCreateOrUpdateAgentRequest
-
-> Auto-generated documentation for [julep.api.types.agents_create_or_update_agent_request](../../../../../../../julep/api/types/agents_create_or_update_agent_request.py) module.
-
-- [AgentsCreateOrUpdateAgentRequest](#agentscreateorupdateagentrequest)
- - [AgentsCreateOrUpdateAgentRequest](#agentscreateorupdateagentrequest-1)
-
-## AgentsCreateOrUpdateAgentRequest
-
-[Show source in agents_create_or_update_agent_request.py:16](../../../../../../../julep/api/types/agents_create_or_update_agent_request.py#L16)
-
-#### Signature
-
-```python
-class AgentsCreateOrUpdateAgentRequest(pydantic_v1.BaseModel): ...
-```
-
-### AgentsCreateOrUpdateAgentRequest().dict
-
-[Show source in agents_create_or_update_agent_request.py:54](../../../../../../../julep/api/types/agents_create_or_update_agent_request.py#L54)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### AgentsCreateOrUpdateAgentRequest().json
-
-[Show source in agents_create_or_update_agent_request.py:46](../../../../../../../julep/api/types/agents_create_or_update_agent_request.py#L46)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/agents_docs_search_route_search_request_body.md b/docs/python-sdk-docs/julep/api/types/agents_docs_search_route_search_request_body.md
deleted file mode 100644
index bb7c047be..000000000
--- a/docs/python-sdk-docs/julep/api/types/agents_docs_search_route_search_request_body.md
+++ /dev/null
@@ -1,6 +0,0 @@
-# Agents Docs Search Route Search Request Body
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / Agents Docs Search Route Search Request Body
-
-> Auto-generated documentation for [julep.api.types.agents_docs_search_route_search_request_body](../../../../../../../julep/api/types/agents_docs_search_route_search_request_body.py) module.
-- [Agents Docs Search Route Search Request Body](#agents-docs-search-route-search-request-body)
diff --git a/docs/python-sdk-docs/julep/api/types/agents_patch_agent_request_instructions.md b/docs/python-sdk-docs/julep/api/types/agents_patch_agent_request_instructions.md
deleted file mode 100644
index d05f16482..000000000
--- a/docs/python-sdk-docs/julep/api/types/agents_patch_agent_request_instructions.md
+++ /dev/null
@@ -1,6 +0,0 @@
-# Agents Patch Agent Request Instructions
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / Agents Patch Agent Request Instructions
-
-> Auto-generated documentation for [julep.api.types.agents_patch_agent_request_instructions](../../../../../../../julep/api/types/agents_patch_agent_request_instructions.py) module.
-- [Agents Patch Agent Request Instructions](#agents-patch-agent-request-instructions)
diff --git a/docs/python-sdk-docs/julep/api/types/agents_route_list_request_direction.md b/docs/python-sdk-docs/julep/api/types/agents_route_list_request_direction.md
deleted file mode 100644
index c723dd549..000000000
--- a/docs/python-sdk-docs/julep/api/types/agents_route_list_request_direction.md
+++ /dev/null
@@ -1,6 +0,0 @@
-# Agents Route List Request Direction
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / Agents Route List Request Direction
-
-> Auto-generated documentation for [julep.api.types.agents_route_list_request_direction](../../../../../../../julep/api/types/agents_route_list_request_direction.py) module.
-- [Agents Route List Request Direction](#agents-route-list-request-direction)
diff --git a/docs/python-sdk-docs/julep/api/types/agents_route_list_request_sort_by.md b/docs/python-sdk-docs/julep/api/types/agents_route_list_request_sort_by.md
deleted file mode 100644
index dae7a82ba..000000000
--- a/docs/python-sdk-docs/julep/api/types/agents_route_list_request_sort_by.md
+++ /dev/null
@@ -1,6 +0,0 @@
-# Agents Route List Request Sort By
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / Agents Route List Request Sort By
-
-> Auto-generated documentation for [julep.api.types.agents_route_list_request_sort_by](../../../../../../../julep/api/types/agents_route_list_request_sort_by.py) module.
-- [Agents Route List Request Sort By](#agents-route-list-request-sort-by)
diff --git a/docs/python-sdk-docs/julep/api/types/agents_route_list_response.md b/docs/python-sdk-docs/julep/api/types/agents_route_list_response.md
deleted file mode 100644
index cbe615c1e..000000000
--- a/docs/python-sdk-docs/julep/api/types/agents_route_list_response.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# AgentsRouteListResponse
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / AgentsRouteListResponse
-
-> Auto-generated documentation for [julep.api.types.agents_route_list_response](../../../../../../../julep/api/types/agents_route_list_response.py) module.
-
-- [AgentsRouteListResponse](#agentsroutelistresponse)
- - [AgentsRouteListResponse](#agentsroutelistresponse-1)
-
-## AgentsRouteListResponse
-
-[Show source in agents_route_list_response.py:11](../../../../../../../julep/api/types/agents_route_list_response.py#L11)
-
-#### Signature
-
-```python
-class AgentsRouteListResponse(pydantic_v1.BaseModel): ...
-```
-
-### AgentsRouteListResponse().dict
-
-[Show source in agents_route_list_response.py:22](../../../../../../../julep/api/types/agents_route_list_response.py#L22)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### AgentsRouteListResponse().json
-
-[Show source in agents_route_list_response.py:14](../../../../../../../julep/api/types/agents_route_list_response.py#L14)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/agents_update_agent_request.md b/docs/python-sdk-docs/julep/api/types/agents_update_agent_request.md
deleted file mode 100644
index 8f906f097..000000000
--- a/docs/python-sdk-docs/julep/api/types/agents_update_agent_request.md
+++ /dev/null
@@ -1,40 +0,0 @@
-# AgentsUpdateAgentRequest
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / AgentsUpdateAgentRequest
-
-> Auto-generated documentation for [julep.api.types.agents_update_agent_request](../../../../../../../julep/api/types/agents_update_agent_request.py) module.
-
-- [AgentsUpdateAgentRequest](#agentsupdateagentrequest)
- - [AgentsUpdateAgentRequest](#agentsupdateagentrequest-1)
-
-## AgentsUpdateAgentRequest
-
-[Show source in agents_update_agent_request.py:15](../../../../../../../julep/api/types/agents_update_agent_request.py#L15)
-
-Payload for updating a agent
-
-#### Signature
-
-```python
-class AgentsUpdateAgentRequest(pydantic_v1.BaseModel): ...
-```
-
-### AgentsUpdateAgentRequest().dict
-
-[Show source in agents_update_agent_request.py:56](../../../../../../../julep/api/types/agents_update_agent_request.py#L56)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### AgentsUpdateAgentRequest().json
-
-[Show source in agents_update_agent_request.py:48](../../../../../../../julep/api/types/agents_update_agent_request.py#L48)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/agents_update_agent_request_instructions.md b/docs/python-sdk-docs/julep/api/types/agents_update_agent_request_instructions.md
deleted file mode 100644
index a2a61914f..000000000
--- a/docs/python-sdk-docs/julep/api/types/agents_update_agent_request_instructions.md
+++ /dev/null
@@ -1,6 +0,0 @@
-# Agents Update Agent Request Instructions
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / Agents Update Agent Request Instructions
-
-> Auto-generated documentation for [julep.api.types.agents_update_agent_request_instructions](../../../../../../../julep/api/types/agents_update_agent_request_instructions.py) module.
-- [Agents Update Agent Request Instructions](#agents-update-agent-request-instructions)
diff --git a/docs/python-sdk-docs/julep/api/types/chat_base_chat_output.md b/docs/python-sdk-docs/julep/api/types/chat_base_chat_output.md
deleted file mode 100644
index 4f6fde8bc..000000000
--- a/docs/python-sdk-docs/julep/api/types/chat_base_chat_output.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# ChatBaseChatOutput
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / ChatBaseChatOutput
-
-> Auto-generated documentation for [julep.api.types.chat_base_chat_output](../../../../../../../julep/api/types/chat_base_chat_output.py) module.
-
-- [ChatBaseChatOutput](#chatbasechatoutput)
- - [ChatBaseChatOutput](#chatbasechatoutput-1)
-
-## ChatBaseChatOutput
-
-[Show source in chat_base_chat_output.py:12](../../../../../../../julep/api/types/chat_base_chat_output.py#L12)
-
-#### Signature
-
-```python
-class ChatBaseChatOutput(pydantic_v1.BaseModel): ...
-```
-
-### ChatBaseChatOutput().dict
-
-[Show source in chat_base_chat_output.py:32](../../../../../../../julep/api/types/chat_base_chat_output.py#L32)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### ChatBaseChatOutput().json
-
-[Show source in chat_base_chat_output.py:24](../../../../../../../julep/api/types/chat_base_chat_output.py#L24)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/chat_base_chat_response.md b/docs/python-sdk-docs/julep/api/types/chat_base_chat_response.md
deleted file mode 100644
index 9eef6113b..000000000
--- a/docs/python-sdk-docs/julep/api/types/chat_base_chat_response.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# ChatBaseChatResponse
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / ChatBaseChatResponse
-
-> Auto-generated documentation for [julep.api.types.chat_base_chat_response](../../../../../../../julep/api/types/chat_base_chat_response.py) module.
-
-- [ChatBaseChatResponse](#chatbasechatresponse)
- - [ChatBaseChatResponse](#chatbasechatresponse-1)
-
-## ChatBaseChatResponse
-
-[Show source in chat_base_chat_response.py:13](../../../../../../../julep/api/types/chat_base_chat_response.py#L13)
-
-#### Signature
-
-```python
-class ChatBaseChatResponse(pydantic_v1.BaseModel): ...
-```
-
-### ChatBaseChatResponse().dict
-
-[Show source in chat_base_chat_response.py:44](../../../../../../../julep/api/types/chat_base_chat_response.py#L44)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### ChatBaseChatResponse().json
-
-[Show source in chat_base_chat_response.py:36](../../../../../../../julep/api/types/chat_base_chat_response.py#L36)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/chat_base_token_log_prob.md b/docs/python-sdk-docs/julep/api/types/chat_base_token_log_prob.md
deleted file mode 100644
index 02074dd4e..000000000
--- a/docs/python-sdk-docs/julep/api/types/chat_base_token_log_prob.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# ChatBaseTokenLogProb
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / ChatBaseTokenLogProb
-
-> Auto-generated documentation for [julep.api.types.chat_base_token_log_prob](../../../../../../../julep/api/types/chat_base_token_log_prob.py) module.
-
-- [ChatBaseTokenLogProb](#chatbasetokenlogprob)
- - [ChatBaseTokenLogProb](#chatbasetokenlogprob-1)
-
-## ChatBaseTokenLogProb
-
-[Show source in chat_base_token_log_prob.py:10](../../../../../../../julep/api/types/chat_base_token_log_prob.py#L10)
-
-#### Signature
-
-```python
-class ChatBaseTokenLogProb(pydantic_v1.BaseModel): ...
-```
-
-### ChatBaseTokenLogProb().dict
-
-[Show source in chat_base_token_log_prob.py:27](../../../../../../../julep/api/types/chat_base_token_log_prob.py#L27)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### ChatBaseTokenLogProb().json
-
-[Show source in chat_base_token_log_prob.py:19](../../../../../../../julep/api/types/chat_base_token_log_prob.py#L19)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/chat_chat_input_data.md b/docs/python-sdk-docs/julep/api/types/chat_chat_input_data.md
deleted file mode 100644
index a830d7fa5..000000000
--- a/docs/python-sdk-docs/julep/api/types/chat_chat_input_data.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# ChatChatInputData
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / ChatChatInputData
-
-> Auto-generated documentation for [julep.api.types.chat_chat_input_data](../../../../../../../julep/api/types/chat_chat_input_data.py) module.
-
-- [ChatChatInputData](#chatchatinputdata)
- - [ChatChatInputData](#chatchatinputdata-1)
-
-## ChatChatInputData
-
-[Show source in chat_chat_input_data.py:13](../../../../../../../julep/api/types/chat_chat_input_data.py#L13)
-
-#### Signature
-
-```python
-class ChatChatInputData(pydantic_v1.BaseModel): ...
-```
-
-### ChatChatInputData().dict
-
-[Show source in chat_chat_input_data.py:41](../../../../../../../julep/api/types/chat_chat_input_data.py#L41)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### ChatChatInputData().json
-
-[Show source in chat_chat_input_data.py:33](../../../../../../../julep/api/types/chat_chat_input_data.py#L33)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/chat_chat_input_data_tool_choice.md b/docs/python-sdk-docs/julep/api/types/chat_chat_input_data_tool_choice.md
deleted file mode 100644
index 819c98d14..000000000
--- a/docs/python-sdk-docs/julep/api/types/chat_chat_input_data_tool_choice.md
+++ /dev/null
@@ -1,6 +0,0 @@
-# Chat Chat Input Data Tool Choice
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / Chat Chat Input Data Tool Choice
-
-> Auto-generated documentation for [julep.api.types.chat_chat_input_data_tool_choice](../../../../../../../julep/api/types/chat_chat_input_data_tool_choice.py) module.
-- [Chat Chat Input Data Tool Choice](#chat-chat-input-data-tool-choice)
diff --git a/docs/python-sdk-docs/julep/api/types/chat_chat_output_chunk.md b/docs/python-sdk-docs/julep/api/types/chat_chat_output_chunk.md
deleted file mode 100644
index 25f16b4ba..000000000
--- a/docs/python-sdk-docs/julep/api/types/chat_chat_output_chunk.md
+++ /dev/null
@@ -1,40 +0,0 @@
-# ChatChatOutputChunk
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / ChatChatOutputChunk
-
-> Auto-generated documentation for [julep.api.types.chat_chat_output_chunk](../../../../../../../julep/api/types/chat_chat_output_chunk.py) module.
-
-- [ChatChatOutputChunk](#chatchatoutputchunk)
- - [ChatChatOutputChunk](#chatchatoutputchunk-1)
-
-## ChatChatOutputChunk
-
-[Show source in chat_chat_output_chunk.py:12](../../../../../../../julep/api/types/chat_chat_output_chunk.py#L12)
-
-Streaming chat completion output
-
-#### Signature
-
-```python
-class ChatChatOutputChunk(ChatBaseChatOutput): ...
-```
-
-### ChatChatOutputChunk().dict
-
-[Show source in chat_chat_output_chunk.py:30](../../../../../../../julep/api/types/chat_chat_output_chunk.py#L30)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### ChatChatOutputChunk().json
-
-[Show source in chat_chat_output_chunk.py:22](../../../../../../../julep/api/types/chat_chat_output_chunk.py#L22)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/chat_chat_settings.md b/docs/python-sdk-docs/julep/api/types/chat_chat_settings.md
deleted file mode 100644
index af2b74943..000000000
--- a/docs/python-sdk-docs/julep/api/types/chat_chat_settings.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# ChatChatSettings
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / ChatChatSettings
-
-> Auto-generated documentation for [julep.api.types.chat_chat_settings](../../../../../../../julep/api/types/chat_chat_settings.py) module.
-
-- [ChatChatSettings](#chatchatsettings)
- - [ChatChatSettings](#chatchatsettings-1)
-
-## ChatChatSettings
-
-[Show source in chat_chat_settings.py:15](../../../../../../../julep/api/types/chat_chat_settings.py#L15)
-
-#### Signature
-
-```python
-class ChatChatSettings(ChatDefaultChatSettings): ...
-```
-
-### ChatChatSettings().dict
-
-[Show source in chat_chat_settings.py:70](../../../../../../../julep/api/types/chat_chat_settings.py#L70)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### ChatChatSettings().json
-
-[Show source in chat_chat_settings.py:62](../../../../../../../julep/api/types/chat_chat_settings.py#L62)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/chat_chunk_chat_response.md b/docs/python-sdk-docs/julep/api/types/chat_chunk_chat_response.md
deleted file mode 100644
index 2ec411b53..000000000
--- a/docs/python-sdk-docs/julep/api/types/chat_chunk_chat_response.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# ChatChunkChatResponse
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / ChatChunkChatResponse
-
-> Auto-generated documentation for [julep.api.types.chat_chunk_chat_response](../../../../../../../julep/api/types/chat_chunk_chat_response.py) module.
-
-- [ChatChunkChatResponse](#chatchunkchatresponse)
- - [ChatChunkChatResponse](#chatchunkchatresponse-1)
-
-## ChatChunkChatResponse
-
-[Show source in chat_chunk_chat_response.py:12](../../../../../../../julep/api/types/chat_chunk_chat_response.py#L12)
-
-#### Signature
-
-```python
-class ChatChunkChatResponse(ChatBaseChatResponse): ...
-```
-
-### ChatChunkChatResponse().dict
-
-[Show source in chat_chunk_chat_response.py:26](../../../../../../../julep/api/types/chat_chunk_chat_response.py#L26)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### ChatChunkChatResponse().json
-
-[Show source in chat_chunk_chat_response.py:18](../../../../../../../julep/api/types/chat_chunk_chat_response.py#L18)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/chat_competion_usage.md b/docs/python-sdk-docs/julep/api/types/chat_competion_usage.md
deleted file mode 100644
index 8c55bb12c..000000000
--- a/docs/python-sdk-docs/julep/api/types/chat_competion_usage.md
+++ /dev/null
@@ -1,40 +0,0 @@
-# ChatCompetionUsage
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / ChatCompetionUsage
-
-> Auto-generated documentation for [julep.api.types.chat_competion_usage](../../../../../../../julep/api/types/chat_competion_usage.py) module.
-
-- [ChatCompetionUsage](#chatcompetionusage)
- - [ChatCompetionUsage](#chatcompetionusage-1)
-
-## ChatCompetionUsage
-
-[Show source in chat_competion_usage.py:10](../../../../../../../julep/api/types/chat_competion_usage.py#L10)
-
-Usage statistics for the completion request
-
-#### Signature
-
-```python
-class ChatCompetionUsage(pydantic_v1.BaseModel): ...
-```
-
-### ChatCompetionUsage().dict
-
-[Show source in chat_competion_usage.py:38](../../../../../../../julep/api/types/chat_competion_usage.py#L38)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### ChatCompetionUsage().json
-
-[Show source in chat_competion_usage.py:30](../../../../../../../julep/api/types/chat_competion_usage.py#L30)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/chat_completion_response_format.md b/docs/python-sdk-docs/julep/api/types/chat_completion_response_format.md
deleted file mode 100644
index c18aab307..000000000
--- a/docs/python-sdk-docs/julep/api/types/chat_completion_response_format.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# ChatCompletionResponseFormat
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / ChatCompletionResponseFormat
-
-> Auto-generated documentation for [julep.api.types.chat_completion_response_format](../../../../../../../julep/api/types/chat_completion_response_format.py) module.
-
-- [ChatCompletionResponseFormat](#chatcompletionresponseformat)
- - [ChatCompletionResponseFormat](#chatcompletionresponseformat-1)
-
-## ChatCompletionResponseFormat
-
-[Show source in chat_completion_response_format.py:11](../../../../../../../julep/api/types/chat_completion_response_format.py#L11)
-
-#### Signature
-
-```python
-class ChatCompletionResponseFormat(pydantic_v1.BaseModel): ...
-```
-
-### ChatCompletionResponseFormat().dict
-
-[Show source in chat_completion_response_format.py:25](../../../../../../../julep/api/types/chat_completion_response_format.py#L25)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### ChatCompletionResponseFormat().json
-
-[Show source in chat_completion_response_format.py:17](../../../../../../../julep/api/types/chat_completion_response_format.py#L17)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/chat_completion_response_format_type.md b/docs/python-sdk-docs/julep/api/types/chat_completion_response_format_type.md
deleted file mode 100644
index 0630b2d84..000000000
--- a/docs/python-sdk-docs/julep/api/types/chat_completion_response_format_type.md
+++ /dev/null
@@ -1,6 +0,0 @@
-# Chat Completion Response Format Type
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / Chat Completion Response Format Type
-
-> Auto-generated documentation for [julep.api.types.chat_completion_response_format_type](../../../../../../../julep/api/types/chat_completion_response_format_type.py) module.
-- [Chat Completion Response Format Type](#chat-completion-response-format-type)
diff --git a/docs/python-sdk-docs/julep/api/types/chat_default_chat_settings.md b/docs/python-sdk-docs/julep/api/types/chat_default_chat_settings.md
deleted file mode 100644
index 5905defde..000000000
--- a/docs/python-sdk-docs/julep/api/types/chat_default_chat_settings.md
+++ /dev/null
@@ -1,40 +0,0 @@
-# ChatDefaultChatSettings
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / ChatDefaultChatSettings
-
-> Auto-generated documentation for [julep.api.types.chat_default_chat_settings](../../../../../../../julep/api/types/chat_default_chat_settings.py) module.
-
-- [ChatDefaultChatSettings](#chatdefaultchatsettings)
- - [ChatDefaultChatSettings](#chatdefaultchatsettings-1)
-
-## ChatDefaultChatSettings
-
-[Show source in chat_default_chat_settings.py:11](../../../../../../../julep/api/types/chat_default_chat_settings.py#L11)
-
-Default settings for the chat session (also used by the agent)
-
-#### Signature
-
-```python
-class ChatDefaultChatSettings(ChatOpenAiSettings): ...
-```
-
-### ChatDefaultChatSettings().dict
-
-[Show source in chat_default_chat_settings.py:39](../../../../../../../julep/api/types/chat_default_chat_settings.py#L39)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### ChatDefaultChatSettings().json
-
-[Show source in chat_default_chat_settings.py:31](../../../../../../../julep/api/types/chat_default_chat_settings.py#L31)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/chat_finish_reason.md b/docs/python-sdk-docs/julep/api/types/chat_finish_reason.md
deleted file mode 100644
index b01a1c85e..000000000
--- a/docs/python-sdk-docs/julep/api/types/chat_finish_reason.md
+++ /dev/null
@@ -1,6 +0,0 @@
-# Chat Finish Reason
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / Chat Finish Reason
-
-> Auto-generated documentation for [julep.api.types.chat_finish_reason](../../../../../../../julep/api/types/chat_finish_reason.py) module.
-- [Chat Finish Reason](#chat-finish-reason)
diff --git a/docs/python-sdk-docs/julep/api/types/chat_log_prob_response.md b/docs/python-sdk-docs/julep/api/types/chat_log_prob_response.md
deleted file mode 100644
index 3b72f98c7..000000000
--- a/docs/python-sdk-docs/julep/api/types/chat_log_prob_response.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# ChatLogProbResponse
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / ChatLogProbResponse
-
-> Auto-generated documentation for [julep.api.types.chat_log_prob_response](../../../../../../../julep/api/types/chat_log_prob_response.py) module.
-
-- [ChatLogProbResponse](#chatlogprobresponse)
- - [ChatLogProbResponse](#chatlogprobresponse-1)
-
-## ChatLogProbResponse
-
-[Show source in chat_log_prob_response.py:11](../../../../../../../julep/api/types/chat_log_prob_response.py#L11)
-
-#### Signature
-
-```python
-class ChatLogProbResponse(pydantic_v1.BaseModel): ...
-```
-
-### ChatLogProbResponse().dict
-
-[Show source in chat_log_prob_response.py:27](../../../../../../../julep/api/types/chat_log_prob_response.py#L27)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### ChatLogProbResponse().json
-
-[Show source in chat_log_prob_response.py:19](../../../../../../../julep/api/types/chat_log_prob_response.py#L19)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/chat_message_chat_response.md b/docs/python-sdk-docs/julep/api/types/chat_message_chat_response.md
deleted file mode 100644
index 361a12782..000000000
--- a/docs/python-sdk-docs/julep/api/types/chat_message_chat_response.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# ChatMessageChatResponse
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / ChatMessageChatResponse
-
-> Auto-generated documentation for [julep.api.types.chat_message_chat_response](../../../../../../../julep/api/types/chat_message_chat_response.py) module.
-
-- [ChatMessageChatResponse](#chatmessagechatresponse)
- - [ChatMessageChatResponse](#chatmessagechatresponse-1)
-
-## ChatMessageChatResponse
-
-[Show source in chat_message_chat_response.py:12](../../../../../../../julep/api/types/chat_message_chat_response.py#L12)
-
-#### Signature
-
-```python
-class ChatMessageChatResponse(ChatBaseChatResponse): ...
-```
-
-### ChatMessageChatResponse().dict
-
-[Show source in chat_message_chat_response.py:26](../../../../../../../julep/api/types/chat_message_chat_response.py#L26)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### ChatMessageChatResponse().json
-
-[Show source in chat_message_chat_response.py:18](../../../../../../../julep/api/types/chat_message_chat_response.py#L18)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/chat_message_chat_response_choices_item.md b/docs/python-sdk-docs/julep/api/types/chat_message_chat_response_choices_item.md
deleted file mode 100644
index 8cdf93ded..000000000
--- a/docs/python-sdk-docs/julep/api/types/chat_message_chat_response_choices_item.md
+++ /dev/null
@@ -1,6 +0,0 @@
-# Chat Message Chat Response Choices Item
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / Chat Message Chat Response Choices Item
-
-> Auto-generated documentation for [julep.api.types.chat_message_chat_response_choices_item](../../../../../../../julep/api/types/chat_message_chat_response_choices_item.py) module.
-- [Chat Message Chat Response Choices Item](#chat-message-chat-response-choices-item)
diff --git a/docs/python-sdk-docs/julep/api/types/chat_multiple_chat_output.md b/docs/python-sdk-docs/julep/api/types/chat_multiple_chat_output.md
deleted file mode 100644
index e6e1502ba..000000000
--- a/docs/python-sdk-docs/julep/api/types/chat_multiple_chat_output.md
+++ /dev/null
@@ -1,40 +0,0 @@
-# ChatMultipleChatOutput
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / ChatMultipleChatOutput
-
-> Auto-generated documentation for [julep.api.types.chat_multiple_chat_output](../../../../../../../julep/api/types/chat_multiple_chat_output.py) module.
-
-- [ChatMultipleChatOutput](#chatmultiplechatoutput)
- - [ChatMultipleChatOutput](#chatmultiplechatoutput-1)
-
-## ChatMultipleChatOutput
-
-[Show source in chat_multiple_chat_output.py:12](../../../../../../../julep/api/types/chat_multiple_chat_output.py#L12)
-
-The output returned by the model. Note that, depending on the model provider, they might return more than one message.
-
-#### Signature
-
-```python
-class ChatMultipleChatOutput(ChatBaseChatOutput): ...
-```
-
-### ChatMultipleChatOutput().dict
-
-[Show source in chat_multiple_chat_output.py:27](../../../../../../../julep/api/types/chat_multiple_chat_output.py#L27)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### ChatMultipleChatOutput().json
-
-[Show source in chat_multiple_chat_output.py:19](../../../../../../../julep/api/types/chat_multiple_chat_output.py#L19)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/chat_open_ai_settings.md b/docs/python-sdk-docs/julep/api/types/chat_open_ai_settings.md
deleted file mode 100644
index d04291d75..000000000
--- a/docs/python-sdk-docs/julep/api/types/chat_open_ai_settings.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# ChatOpenAiSettings
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / ChatOpenAiSettings
-
-> Auto-generated documentation for [julep.api.types.chat_open_ai_settings](../../../../../../../julep/api/types/chat_open_ai_settings.py) module.
-
-- [ChatOpenAiSettings](#chatopenaisettings)
- - [ChatOpenAiSettings](#chatopenaisettings-1)
-
-## ChatOpenAiSettings
-
-[Show source in chat_open_ai_settings.py:10](../../../../../../../julep/api/types/chat_open_ai_settings.py#L10)
-
-#### Signature
-
-```python
-class ChatOpenAiSettings(pydantic_v1.BaseModel): ...
-```
-
-### ChatOpenAiSettings().dict
-
-[Show source in chat_open_ai_settings.py:39](../../../../../../../julep/api/types/chat_open_ai_settings.py#L39)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### ChatOpenAiSettings().json
-
-[Show source in chat_open_ai_settings.py:31](../../../../../../../julep/api/types/chat_open_ai_settings.py#L31)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/chat_route_generate_response.md b/docs/python-sdk-docs/julep/api/types/chat_route_generate_response.md
deleted file mode 100644
index 947f8c61e..000000000
--- a/docs/python-sdk-docs/julep/api/types/chat_route_generate_response.md
+++ /dev/null
@@ -1,6 +0,0 @@
-# Chat Route Generate Response
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / Chat Route Generate Response
-
-> Auto-generated documentation for [julep.api.types.chat_route_generate_response](../../../../../../../julep/api/types/chat_route_generate_response.py) module.
-- [Chat Route Generate Response](#chat-route-generate-response)
diff --git a/docs/python-sdk-docs/julep/api/types/chat_single_chat_output.md b/docs/python-sdk-docs/julep/api/types/chat_single_chat_output.md
deleted file mode 100644
index dac22a9c6..000000000
--- a/docs/python-sdk-docs/julep/api/types/chat_single_chat_output.md
+++ /dev/null
@@ -1,40 +0,0 @@
-# ChatSingleChatOutput
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / ChatSingleChatOutput
-
-> Auto-generated documentation for [julep.api.types.chat_single_chat_output](../../../../../../../julep/api/types/chat_single_chat_output.py) module.
-
-- [ChatSingleChatOutput](#chatsinglechatoutput)
- - [ChatSingleChatOutput](#chatsinglechatoutput-1)
-
-## ChatSingleChatOutput
-
-[Show source in chat_single_chat_output.py:12](../../../../../../../julep/api/types/chat_single_chat_output.py#L12)
-
-The output returned by the model. Note that, depending on the model provider, they might return more than one message.
-
-#### Signature
-
-```python
-class ChatSingleChatOutput(ChatBaseChatOutput): ...
-```
-
-### ChatSingleChatOutput().dict
-
-[Show source in chat_single_chat_output.py:27](../../../../../../../julep/api/types/chat_single_chat_output.py#L27)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### ChatSingleChatOutput().json
-
-[Show source in chat_single_chat_output.py:19](../../../../../../../julep/api/types/chat_single_chat_output.py#L19)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/chat_token_log_prob.md b/docs/python-sdk-docs/julep/api/types/chat_token_log_prob.md
deleted file mode 100644
index d4a37cd47..000000000
--- a/docs/python-sdk-docs/julep/api/types/chat_token_log_prob.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# ChatTokenLogProb
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / ChatTokenLogProb
-
-> Auto-generated documentation for [julep.api.types.chat_token_log_prob](../../../../../../../julep/api/types/chat_token_log_prob.py) module.
-
-- [ChatTokenLogProb](#chattokenlogprob)
- - [ChatTokenLogProb](#chattokenlogprob-1)
-
-## ChatTokenLogProb
-
-[Show source in chat_token_log_prob.py:11](../../../../../../../julep/api/types/chat_token_log_prob.py#L11)
-
-#### Signature
-
-```python
-class ChatTokenLogProb(ChatBaseTokenLogProb): ...
-```
-
-### ChatTokenLogProb().dict
-
-[Show source in chat_token_log_prob.py:22](../../../../../../../julep/api/types/chat_token_log_prob.py#L22)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### ChatTokenLogProb().json
-
-[Show source in chat_token_log_prob.py:14](../../../../../../../julep/api/types/chat_token_log_prob.py#L14)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/common_identifier_safe_unicode.md b/docs/python-sdk-docs/julep/api/types/common_identifier_safe_unicode.md
deleted file mode 100644
index 4c4999309..000000000
--- a/docs/python-sdk-docs/julep/api/types/common_identifier_safe_unicode.md
+++ /dev/null
@@ -1,6 +0,0 @@
-# Common Identifier Safe Unicode
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / Common Identifier Safe Unicode
-
-> Auto-generated documentation for [julep.api.types.common_identifier_safe_unicode](../../../../../../../julep/api/types/common_identifier_safe_unicode.py) module.
-- [Common Identifier Safe Unicode](#common-identifier-safe-unicode)
diff --git a/docs/python-sdk-docs/julep/api/types/common_limit.md b/docs/python-sdk-docs/julep/api/types/common_limit.md
deleted file mode 100644
index df209cd76..000000000
--- a/docs/python-sdk-docs/julep/api/types/common_limit.md
+++ /dev/null
@@ -1,6 +0,0 @@
-# Common Limit
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / Common Limit
-
-> Auto-generated documentation for [julep.api.types.common_limit](../../../../../../../julep/api/types/common_limit.py) module.
-- [Common Limit](#common-limit)
diff --git a/docs/python-sdk-docs/julep/api/types/common_logit_bias.md b/docs/python-sdk-docs/julep/api/types/common_logit_bias.md
deleted file mode 100644
index ebdfac95c..000000000
--- a/docs/python-sdk-docs/julep/api/types/common_logit_bias.md
+++ /dev/null
@@ -1,6 +0,0 @@
-# Common Logit Bias
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / Common Logit Bias
-
-> Auto-generated documentation for [julep.api.types.common_logit_bias](../../../../../../../julep/api/types/common_logit_bias.py) module.
-- [Common Logit Bias](#common-logit-bias)
diff --git a/docs/python-sdk-docs/julep/api/types/common_offset.md b/docs/python-sdk-docs/julep/api/types/common_offset.md
deleted file mode 100644
index 1cda9e94c..000000000
--- a/docs/python-sdk-docs/julep/api/types/common_offset.md
+++ /dev/null
@@ -1,6 +0,0 @@
-# Common Offset
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / Common Offset
-
-> Auto-generated documentation for [julep.api.types.common_offset](../../../../../../../julep/api/types/common_offset.py) module.
-- [Common Offset](#common-offset)
diff --git a/docs/python-sdk-docs/julep/api/types/common_py_expression.md b/docs/python-sdk-docs/julep/api/types/common_py_expression.md
deleted file mode 100644
index 857f14bb7..000000000
--- a/docs/python-sdk-docs/julep/api/types/common_py_expression.md
+++ /dev/null
@@ -1,6 +0,0 @@
-# Common Py Expression
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / Common Py Expression
-
-> Auto-generated documentation for [julep.api.types.common_py_expression](../../../../../../../julep/api/types/common_py_expression.py) module.
-- [Common Py Expression](#common-py-expression)
diff --git a/docs/python-sdk-docs/julep/api/types/common_resource_created_response.md b/docs/python-sdk-docs/julep/api/types/common_resource_created_response.md
deleted file mode 100644
index 888c00989..000000000
--- a/docs/python-sdk-docs/julep/api/types/common_resource_created_response.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# CommonResourceCreatedResponse
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / CommonResourceCreatedResponse
-
-> Auto-generated documentation for [julep.api.types.common_resource_created_response](../../../../../../../julep/api/types/common_resource_created_response.py) module.
-
-- [CommonResourceCreatedResponse](#commonresourcecreatedresponse)
- - [CommonResourceCreatedResponse](#commonresourcecreatedresponse-1)
-
-## CommonResourceCreatedResponse
-
-[Show source in common_resource_created_response.py:11](../../../../../../../julep/api/types/common_resource_created_response.py#L11)
-
-#### Signature
-
-```python
-class CommonResourceCreatedResponse(pydantic_v1.BaseModel): ...
-```
-
-### CommonResourceCreatedResponse().dict
-
-[Show source in common_resource_created_response.py:35](../../../../../../../julep/api/types/common_resource_created_response.py#L35)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### CommonResourceCreatedResponse().json
-
-[Show source in common_resource_created_response.py:27](../../../../../../../julep/api/types/common_resource_created_response.py#L27)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/common_resource_deleted_response.md b/docs/python-sdk-docs/julep/api/types/common_resource_deleted_response.md
deleted file mode 100644
index 4b1f510b3..000000000
--- a/docs/python-sdk-docs/julep/api/types/common_resource_deleted_response.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# CommonResourceDeletedResponse
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / CommonResourceDeletedResponse
-
-> Auto-generated documentation for [julep.api.types.common_resource_deleted_response](../../../../../../../julep/api/types/common_resource_deleted_response.py) module.
-
-- [CommonResourceDeletedResponse](#commonresourcedeletedresponse)
- - [CommonResourceDeletedResponse](#commonresourcedeletedresponse-1)
-
-## CommonResourceDeletedResponse
-
-[Show source in common_resource_deleted_response.py:11](../../../../../../../julep/api/types/common_resource_deleted_response.py#L11)
-
-#### Signature
-
-```python
-class CommonResourceDeletedResponse(pydantic_v1.BaseModel): ...
-```
-
-### CommonResourceDeletedResponse().dict
-
-[Show source in common_resource_deleted_response.py:35](../../../../../../../julep/api/types/common_resource_deleted_response.py#L35)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### CommonResourceDeletedResponse().json
-
-[Show source in common_resource_deleted_response.py:27](../../../../../../../julep/api/types/common_resource_deleted_response.py#L27)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/common_resource_updated_response.md b/docs/python-sdk-docs/julep/api/types/common_resource_updated_response.md
deleted file mode 100644
index c01549486..000000000
--- a/docs/python-sdk-docs/julep/api/types/common_resource_updated_response.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# CommonResourceUpdatedResponse
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / CommonResourceUpdatedResponse
-
-> Auto-generated documentation for [julep.api.types.common_resource_updated_response](../../../../../../../julep/api/types/common_resource_updated_response.py) module.
-
-- [CommonResourceUpdatedResponse](#commonresourceupdatedresponse)
- - [CommonResourceUpdatedResponse](#commonresourceupdatedresponse-1)
-
-## CommonResourceUpdatedResponse
-
-[Show source in common_resource_updated_response.py:11](../../../../../../../julep/api/types/common_resource_updated_response.py#L11)
-
-#### Signature
-
-```python
-class CommonResourceUpdatedResponse(pydantic_v1.BaseModel): ...
-```
-
-### CommonResourceUpdatedResponse().dict
-
-[Show source in common_resource_updated_response.py:35](../../../../../../../julep/api/types/common_resource_updated_response.py#L35)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### CommonResourceUpdatedResponse().json
-
-[Show source in common_resource_updated_response.py:27](../../../../../../../julep/api/types/common_resource_updated_response.py#L27)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/common_tool_ref.md b/docs/python-sdk-docs/julep/api/types/common_tool_ref.md
deleted file mode 100644
index eaeedab94..000000000
--- a/docs/python-sdk-docs/julep/api/types/common_tool_ref.md
+++ /dev/null
@@ -1,6 +0,0 @@
-# Common Tool Ref
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / Common Tool Ref
-
-> Auto-generated documentation for [julep.api.types.common_tool_ref](../../../../../../../julep/api/types/common_tool_ref.py) module.
-- [Common Tool Ref](#common-tool-ref)
diff --git a/docs/python-sdk-docs/julep/api/types/common_uuid.md b/docs/python-sdk-docs/julep/api/types/common_uuid.md
deleted file mode 100644
index 6946cadd2..000000000
--- a/docs/python-sdk-docs/julep/api/types/common_uuid.md
+++ /dev/null
@@ -1,6 +0,0 @@
-# Common Uuid
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / Common Uuid
-
-> Auto-generated documentation for [julep.api.types.common_uuid](../../../../../../../julep/api/types/common_uuid.py) module.
-- [Common Uuid](#common-uuid)
diff --git a/docs/python-sdk-docs/julep/api/types/common_valid_python_identifier.md b/docs/python-sdk-docs/julep/api/types/common_valid_python_identifier.md
deleted file mode 100644
index 4f7723b0f..000000000
--- a/docs/python-sdk-docs/julep/api/types/common_valid_python_identifier.md
+++ /dev/null
@@ -1,6 +0,0 @@
-# Common Valid Python Identifier
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / Common Valid Python Identifier
-
-> Auto-generated documentation for [julep.api.types.common_valid_python_identifier](../../../../../../../julep/api/types/common_valid_python_identifier.py) module.
-- [Common Valid Python Identifier](#common-valid-python-identifier)
diff --git a/docs/python-sdk-docs/julep/api/types/docs_base_doc_search_request.md b/docs/python-sdk-docs/julep/api/types/docs_base_doc_search_request.md
deleted file mode 100644
index dfbf3cdd8..000000000
--- a/docs/python-sdk-docs/julep/api/types/docs_base_doc_search_request.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# DocsBaseDocSearchRequest
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / DocsBaseDocSearchRequest
-
-> Auto-generated documentation for [julep.api.types.docs_base_doc_search_request](../../../../../../../julep/api/types/docs_base_doc_search_request.py) module.
-
-- [DocsBaseDocSearchRequest](#docsbasedocsearchrequest)
- - [DocsBaseDocSearchRequest](#docsbasedocsearchrequest-1)
-
-## DocsBaseDocSearchRequest
-
-[Show source in docs_base_doc_search_request.py:10](../../../../../../../julep/api/types/docs_base_doc_search_request.py#L10)
-
-#### Signature
-
-```python
-class DocsBaseDocSearchRequest(pydantic_v1.BaseModel): ...
-```
-
-### DocsBaseDocSearchRequest().dict
-
-[Show source in docs_base_doc_search_request.py:25](../../../../../../../julep/api/types/docs_base_doc_search_request.py#L25)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### DocsBaseDocSearchRequest().json
-
-[Show source in docs_base_doc_search_request.py:17](../../../../../../../julep/api/types/docs_base_doc_search_request.py#L17)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/docs_create_doc_request.md b/docs/python-sdk-docs/julep/api/types/docs_create_doc_request.md
deleted file mode 100644
index ae70487ac..000000000
--- a/docs/python-sdk-docs/julep/api/types/docs_create_doc_request.md
+++ /dev/null
@@ -1,40 +0,0 @@
-# DocsCreateDocRequest
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / DocsCreateDocRequest
-
-> Auto-generated documentation for [julep.api.types.docs_create_doc_request](../../../../../../../julep/api/types/docs_create_doc_request.py) module.
-
-- [DocsCreateDocRequest](#docscreatedocrequest)
- - [DocsCreateDocRequest](#docscreatedocrequest-1)
-
-## DocsCreateDocRequest
-
-[Show source in docs_create_doc_request.py:12](../../../../../../../julep/api/types/docs_create_doc_request.py#L12)
-
-Payload for creating a doc
-
-#### Signature
-
-```python
-class DocsCreateDocRequest(pydantic_v1.BaseModel): ...
-```
-
-### DocsCreateDocRequest().dict
-
-[Show source in docs_create_doc_request.py:36](../../../../../../../julep/api/types/docs_create_doc_request.py#L36)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### DocsCreateDocRequest().json
-
-[Show source in docs_create_doc_request.py:28](../../../../../../../julep/api/types/docs_create_doc_request.py#L28)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/docs_create_doc_request_content.md b/docs/python-sdk-docs/julep/api/types/docs_create_doc_request_content.md
deleted file mode 100644
index abb30a801..000000000
--- a/docs/python-sdk-docs/julep/api/types/docs_create_doc_request_content.md
+++ /dev/null
@@ -1,6 +0,0 @@
-# Docs Create Doc Request Content
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / Docs Create Doc Request Content
-
-> Auto-generated documentation for [julep.api.types.docs_create_doc_request_content](../../../../../../../julep/api/types/docs_create_doc_request_content.py) module.
-- [Docs Create Doc Request Content](#docs-create-doc-request-content)
diff --git a/docs/python-sdk-docs/julep/api/types/docs_doc.md b/docs/python-sdk-docs/julep/api/types/docs_doc.md
deleted file mode 100644
index 514c94ec5..000000000
--- a/docs/python-sdk-docs/julep/api/types/docs_doc.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# DocsDoc
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / DocsDoc
-
-> Auto-generated documentation for [julep.api.types.docs_doc](../../../../../../../julep/api/types/docs_doc.py) module.
-
-- [DocsDoc](#docsdoc)
- - [DocsDoc](#docsdoc-1)
-
-## DocsDoc
-
-[Show source in docs_doc.py:13](../../../../../../../julep/api/types/docs_doc.py#L13)
-
-#### Signature
-
-```python
-class DocsDoc(pydantic_v1.BaseModel): ...
-```
-
-### DocsDoc().dict
-
-[Show source in docs_doc.py:39](../../../../../../../julep/api/types/docs_doc.py#L39)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### DocsDoc().json
-
-[Show source in docs_doc.py:31](../../../../../../../julep/api/types/docs_doc.py#L31)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/docs_doc_content.md b/docs/python-sdk-docs/julep/api/types/docs_doc_content.md
deleted file mode 100644
index 5215c33da..000000000
--- a/docs/python-sdk-docs/julep/api/types/docs_doc_content.md
+++ /dev/null
@@ -1,6 +0,0 @@
-# Docs Doc Content
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / Docs Doc Content
-
-> Auto-generated documentation for [julep.api.types.docs_doc_content](../../../../../../../julep/api/types/docs_doc_content.py) module.
-- [Docs Doc Content](#docs-doc-content)
diff --git a/docs/python-sdk-docs/julep/api/types/docs_doc_owner.md b/docs/python-sdk-docs/julep/api/types/docs_doc_owner.md
deleted file mode 100644
index aea6da18c..000000000
--- a/docs/python-sdk-docs/julep/api/types/docs_doc_owner.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# DocsDocOwner
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / DocsDocOwner
-
-> Auto-generated documentation for [julep.api.types.docs_doc_owner](../../../../../../../julep/api/types/docs_doc_owner.py) module.
-
-- [DocsDocOwner](#docsdocowner)
- - [DocsDocOwner](#docsdocowner-1)
-
-## DocsDocOwner
-
-[Show source in docs_doc_owner.py:12](../../../../../../../julep/api/types/docs_doc_owner.py#L12)
-
-#### Signature
-
-```python
-class DocsDocOwner(pydantic_v1.BaseModel): ...
-```
-
-### DocsDocOwner().dict
-
-[Show source in docs_doc_owner.py:24](../../../../../../../julep/api/types/docs_doc_owner.py#L24)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### DocsDocOwner().json
-
-[Show source in docs_doc_owner.py:16](../../../../../../../julep/api/types/docs_doc_owner.py#L16)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/docs_doc_owner_role.md b/docs/python-sdk-docs/julep/api/types/docs_doc_owner_role.md
deleted file mode 100644
index 847c151be..000000000
--- a/docs/python-sdk-docs/julep/api/types/docs_doc_owner_role.md
+++ /dev/null
@@ -1,6 +0,0 @@
-# Docs Doc Owner Role
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / Docs Doc Owner Role
-
-> Auto-generated documentation for [julep.api.types.docs_doc_owner_role](../../../../../../../julep/api/types/docs_doc_owner_role.py) module.
-- [Docs Doc Owner Role](#docs-doc-owner-role)
diff --git a/docs/python-sdk-docs/julep/api/types/docs_doc_reference.md b/docs/python-sdk-docs/julep/api/types/docs_doc_reference.md
deleted file mode 100644
index 7c0f740fa..000000000
--- a/docs/python-sdk-docs/julep/api/types/docs_doc_reference.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# DocsDocReference
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / DocsDocReference
-
-> Auto-generated documentation for [julep.api.types.docs_doc_reference](../../../../../../../julep/api/types/docs_doc_reference.py) module.
-
-- [DocsDocReference](#docsdocreference)
- - [DocsDocReference](#docsdocreference-1)
-
-## DocsDocReference
-
-[Show source in docs_doc_reference.py:13](../../../../../../../julep/api/types/docs_doc_reference.py#L13)
-
-#### Signature
-
-```python
-class DocsDocReference(pydantic_v1.BaseModel): ...
-```
-
-### DocsDocReference().dict
-
-[Show source in docs_doc_reference.py:36](../../../../../../../julep/api/types/docs_doc_reference.py#L36)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### DocsDocReference().json
-
-[Show source in docs_doc_reference.py:28](../../../../../../../julep/api/types/docs_doc_reference.py#L28)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/docs_doc_search_response.md b/docs/python-sdk-docs/julep/api/types/docs_doc_search_response.md
deleted file mode 100644
index ce99b009c..000000000
--- a/docs/python-sdk-docs/julep/api/types/docs_doc_search_response.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# DocsDocSearchResponse
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / DocsDocSearchResponse
-
-> Auto-generated documentation for [julep.api.types.docs_doc_search_response](../../../../../../../julep/api/types/docs_doc_search_response.py) module.
-
-- [DocsDocSearchResponse](#docsdocsearchresponse)
- - [DocsDocSearchResponse](#docsdocsearchresponse-1)
-
-## DocsDocSearchResponse
-
-[Show source in docs_doc_search_response.py:11](../../../../../../../julep/api/types/docs_doc_search_response.py#L11)
-
-#### Signature
-
-```python
-class DocsDocSearchResponse(pydantic_v1.BaseModel): ...
-```
-
-### DocsDocSearchResponse().dict
-
-[Show source in docs_doc_search_response.py:30](../../../../../../../julep/api/types/docs_doc_search_response.py#L30)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### DocsDocSearchResponse().json
-
-[Show source in docs_doc_search_response.py:22](../../../../../../../julep/api/types/docs_doc_search_response.py#L22)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/docs_embed_query_request.md b/docs/python-sdk-docs/julep/api/types/docs_embed_query_request.md
deleted file mode 100644
index 2d1f92fe2..000000000
--- a/docs/python-sdk-docs/julep/api/types/docs_embed_query_request.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# DocsEmbedQueryRequest
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / DocsEmbedQueryRequest
-
-> Auto-generated documentation for [julep.api.types.docs_embed_query_request](../../../../../../../julep/api/types/docs_embed_query_request.py) module.
-
-- [DocsEmbedQueryRequest](#docsembedqueryrequest)
- - [DocsEmbedQueryRequest](#docsembedqueryrequest-1)
-
-## DocsEmbedQueryRequest
-
-[Show source in docs_embed_query_request.py:11](../../../../../../../julep/api/types/docs_embed_query_request.py#L11)
-
-#### Signature
-
-```python
-class DocsEmbedQueryRequest(pydantic_v1.BaseModel): ...
-```
-
-### DocsEmbedQueryRequest().dict
-
-[Show source in docs_embed_query_request.py:25](../../../../../../../julep/api/types/docs_embed_query_request.py#L25)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### DocsEmbedQueryRequest().json
-
-[Show source in docs_embed_query_request.py:17](../../../../../../../julep/api/types/docs_embed_query_request.py#L17)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/docs_embed_query_request_text.md b/docs/python-sdk-docs/julep/api/types/docs_embed_query_request_text.md
deleted file mode 100644
index ac55882ee..000000000
--- a/docs/python-sdk-docs/julep/api/types/docs_embed_query_request_text.md
+++ /dev/null
@@ -1,6 +0,0 @@
-# Docs Embed Query Request Text
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / Docs Embed Query Request Text
-
-> Auto-generated documentation for [julep.api.types.docs_embed_query_request_text](../../../../../../../julep/api/types/docs_embed_query_request_text.py) module.
-- [Docs Embed Query Request Text](#docs-embed-query-request-text)
diff --git a/docs/python-sdk-docs/julep/api/types/docs_embed_query_response.md b/docs/python-sdk-docs/julep/api/types/docs_embed_query_response.md
deleted file mode 100644
index 18ca2fdb9..000000000
--- a/docs/python-sdk-docs/julep/api/types/docs_embed_query_response.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# DocsEmbedQueryResponse
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / DocsEmbedQueryResponse
-
-> Auto-generated documentation for [julep.api.types.docs_embed_query_response](../../../../../../../julep/api/types/docs_embed_query_response.py) module.
-
-- [DocsEmbedQueryResponse](#docsembedqueryresponse)
- - [DocsEmbedQueryResponse](#docsembedqueryresponse-1)
-
-## DocsEmbedQueryResponse
-
-[Show source in docs_embed_query_response.py:10](../../../../../../../julep/api/types/docs_embed_query_response.py#L10)
-
-#### Signature
-
-```python
-class DocsEmbedQueryResponse(pydantic_v1.BaseModel): ...
-```
-
-### DocsEmbedQueryResponse().dict
-
-[Show source in docs_embed_query_response.py:24](../../../../../../../julep/api/types/docs_embed_query_response.py#L24)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### DocsEmbedQueryResponse().json
-
-[Show source in docs_embed_query_response.py:16](../../../../../../../julep/api/types/docs_embed_query_response.py#L16)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/docs_hybrid_doc_search_request.md b/docs/python-sdk-docs/julep/api/types/docs_hybrid_doc_search_request.md
deleted file mode 100644
index 8c3350d45..000000000
--- a/docs/python-sdk-docs/julep/api/types/docs_hybrid_doc_search_request.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# DocsHybridDocSearchRequest
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / DocsHybridDocSearchRequest
-
-> Auto-generated documentation for [julep.api.types.docs_hybrid_doc_search_request](../../../../../../../julep/api/types/docs_hybrid_doc_search_request.py) module.
-
-- [DocsHybridDocSearchRequest](#docshybriddocsearchrequest)
- - [DocsHybridDocSearchRequest](#docshybriddocsearchrequest-1)
-
-## DocsHybridDocSearchRequest
-
-[Show source in docs_hybrid_doc_search_request.py:11](../../../../../../../julep/api/types/docs_hybrid_doc_search_request.py#L11)
-
-#### Signature
-
-```python
-class DocsHybridDocSearchRequest(DocsBaseDocSearchRequest): ...
-```
-
-### DocsHybridDocSearchRequest().dict
-
-[Show source in docs_hybrid_doc_search_request.py:40](../../../../../../../julep/api/types/docs_hybrid_doc_search_request.py#L40)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### DocsHybridDocSearchRequest().json
-
-[Show source in docs_hybrid_doc_search_request.py:32](../../../../../../../julep/api/types/docs_hybrid_doc_search_request.py#L32)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/docs_snippet.md b/docs/python-sdk-docs/julep/api/types/docs_snippet.md
deleted file mode 100644
index 772f9cbce..000000000
--- a/docs/python-sdk-docs/julep/api/types/docs_snippet.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# DocsSnippet
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / DocsSnippet
-
-> Auto-generated documentation for [julep.api.types.docs_snippet](../../../../../../../julep/api/types/docs_snippet.py) module.
-
-- [DocsSnippet](#docssnippet)
- - [DocsSnippet](#docssnippet-1)
-
-## DocsSnippet
-
-[Show source in docs_snippet.py:10](../../../../../../../julep/api/types/docs_snippet.py#L10)
-
-#### Signature
-
-```python
-class DocsSnippet(pydantic_v1.BaseModel): ...
-```
-
-### DocsSnippet().dict
-
-[Show source in docs_snippet.py:22](../../../../../../../julep/api/types/docs_snippet.py#L22)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### DocsSnippet().json
-
-[Show source in docs_snippet.py:14](../../../../../../../julep/api/types/docs_snippet.py#L14)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/docs_text_only_doc_search_request.md b/docs/python-sdk-docs/julep/api/types/docs_text_only_doc_search_request.md
deleted file mode 100644
index 8cce7a03e..000000000
--- a/docs/python-sdk-docs/julep/api/types/docs_text_only_doc_search_request.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# DocsTextOnlyDocSearchRequest
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / DocsTextOnlyDocSearchRequest
-
-> Auto-generated documentation for [julep.api.types.docs_text_only_doc_search_request](../../../../../../../julep/api/types/docs_text_only_doc_search_request.py) module.
-
-- [DocsTextOnlyDocSearchRequest](#docstextonlydocsearchrequest)
- - [DocsTextOnlyDocSearchRequest](#docstextonlydocsearchrequest-1)
-
-## DocsTextOnlyDocSearchRequest
-
-[Show source in docs_text_only_doc_search_request.py:11](../../../../../../../julep/api/types/docs_text_only_doc_search_request.py#L11)
-
-#### Signature
-
-```python
-class DocsTextOnlyDocSearchRequest(DocsBaseDocSearchRequest): ...
-```
-
-### DocsTextOnlyDocSearchRequest().dict
-
-[Show source in docs_text_only_doc_search_request.py:25](../../../../../../../julep/api/types/docs_text_only_doc_search_request.py#L25)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### DocsTextOnlyDocSearchRequest().json
-
-[Show source in docs_text_only_doc_search_request.py:17](../../../../../../../julep/api/types/docs_text_only_doc_search_request.py#L17)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/docs_vector_doc_search_request.md b/docs/python-sdk-docs/julep/api/types/docs_vector_doc_search_request.md
deleted file mode 100644
index 3b2574792..000000000
--- a/docs/python-sdk-docs/julep/api/types/docs_vector_doc_search_request.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# DocsVectorDocSearchRequest
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / DocsVectorDocSearchRequest
-
-> Auto-generated documentation for [julep.api.types.docs_vector_doc_search_request](../../../../../../../julep/api/types/docs_vector_doc_search_request.py) module.
-
-- [DocsVectorDocSearchRequest](#docsvectordocsearchrequest)
- - [DocsVectorDocSearchRequest](#docsvectordocsearchrequest-1)
-
-## DocsVectorDocSearchRequest
-
-[Show source in docs_vector_doc_search_request.py:11](../../../../../../../julep/api/types/docs_vector_doc_search_request.py#L11)
-
-#### Signature
-
-```python
-class DocsVectorDocSearchRequest(DocsBaseDocSearchRequest): ...
-```
-
-### DocsVectorDocSearchRequest().dict
-
-[Show source in docs_vector_doc_search_request.py:30](../../../../../../../julep/api/types/docs_vector_doc_search_request.py#L30)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### DocsVectorDocSearchRequest().json
-
-[Show source in docs_vector_doc_search_request.py:22](../../../../../../../julep/api/types/docs_vector_doc_search_request.py#L22)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/entries_base_entry.md b/docs/python-sdk-docs/julep/api/types/entries_base_entry.md
deleted file mode 100644
index 4b14c805b..000000000
--- a/docs/python-sdk-docs/julep/api/types/entries_base_entry.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# EntriesBaseEntry
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / EntriesBaseEntry
-
-> Auto-generated documentation for [julep.api.types.entries_base_entry](../../../../../../../julep/api/types/entries_base_entry.py) module.
-
-- [EntriesBaseEntry](#entriesbaseentry)
- - [EntriesBaseEntry](#entriesbaseentry-1)
-
-## EntriesBaseEntry
-
-[Show source in entries_base_entry.py:13](../../../../../../../julep/api/types/entries_base_entry.py#L13)
-
-#### Signature
-
-```python
-class EntriesBaseEntry(pydantic_v1.BaseModel): ...
-```
-
-### EntriesBaseEntry().dict
-
-[Show source in entries_base_entry.py:33](../../../../../../../julep/api/types/entries_base_entry.py#L33)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### EntriesBaseEntry().json
-
-[Show source in entries_base_entry.py:25](../../../../../../../julep/api/types/entries_base_entry.py#L25)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/entries_base_entry_content.md b/docs/python-sdk-docs/julep/api/types/entries_base_entry_content.md
deleted file mode 100644
index a3a9cf120..000000000
--- a/docs/python-sdk-docs/julep/api/types/entries_base_entry_content.md
+++ /dev/null
@@ -1,6 +0,0 @@
-# Entries Base Entry Content
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / Entries Base Entry Content
-
-> Auto-generated documentation for [julep.api.types.entries_base_entry_content](../../../../../../../julep/api/types/entries_base_entry_content.py) module.
-- [Entries Base Entry Content](#entries-base-entry-content)
diff --git a/docs/python-sdk-docs/julep/api/types/entries_base_entry_content_item.md b/docs/python-sdk-docs/julep/api/types/entries_base_entry_content_item.md
deleted file mode 100644
index f2479af4b..000000000
--- a/docs/python-sdk-docs/julep/api/types/entries_base_entry_content_item.md
+++ /dev/null
@@ -1,6 +0,0 @@
-# Entries Base Entry Content Item
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / Entries Base Entry Content Item
-
-> Auto-generated documentation for [julep.api.types.entries_base_entry_content_item](../../../../../../../julep/api/types/entries_base_entry_content_item.py) module.
-- [Entries Base Entry Content Item](#entries-base-entry-content-item)
diff --git a/docs/python-sdk-docs/julep/api/types/entries_base_entry_content_item_item.md b/docs/python-sdk-docs/julep/api/types/entries_base_entry_content_item_item.md
deleted file mode 100644
index 4e0d20f25..000000000
--- a/docs/python-sdk-docs/julep/api/types/entries_base_entry_content_item_item.md
+++ /dev/null
@@ -1,71 +0,0 @@
-# Entries Base Entry Content Item Item
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / Entries Base Entry Content Item Item
-
-> Auto-generated documentation for [julep.api.types.entries_base_entry_content_item_item](../../../../../../../julep/api/types/entries_base_entry_content_item_item.py) module.
-
-- [Entries Base Entry Content Item Item](#entries-base-entry-content-item-item)
- - [EntriesBaseEntryContentItemItem_ImageUrl](#entriesbaseentrycontentitemitem_imageurl)
- - [EntriesBaseEntryContentItemItem_Text](#entriesbaseentrycontentitemitem_text)
-
-## EntriesBaseEntryContentItemItem_ImageUrl
-
-[Show source in entries_base_entry_content_item_item.py:49](../../../../../../../julep/api/types/entries_base_entry_content_item_item.py#L49)
-
-#### Signature
-
-```python
-class EntriesBaseEntryContentItemItem_ImageUrl(pydantic_v1.BaseModel): ...
-```
-
-### EntriesBaseEntryContentItemItem_ImageUrl().dict
-
-[Show source in entries_base_entry_content_item_item.py:61](../../../../../../../julep/api/types/entries_base_entry_content_item_item.py#L61)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### EntriesBaseEntryContentItemItem_ImageUrl().json
-
-[Show source in entries_base_entry_content_item_item.py:53](../../../../../../../julep/api/types/entries_base_entry_content_item_item.py#L53)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## EntriesBaseEntryContentItemItem_Text
-
-[Show source in entries_base_entry_content_item_item.py:13](../../../../../../../julep/api/types/entries_base_entry_content_item_item.py#L13)
-
-#### Signature
-
-```python
-class EntriesBaseEntryContentItemItem_Text(pydantic_v1.BaseModel): ...
-```
-
-### EntriesBaseEntryContentItemItem_Text().dict
-
-[Show source in entries_base_entry_content_item_item.py:25](../../../../../../../julep/api/types/entries_base_entry_content_item_item.py#L25)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### EntriesBaseEntryContentItemItem_Text().json
-
-[Show source in entries_base_entry_content_item_item.py:17](../../../../../../../julep/api/types/entries_base_entry_content_item_item.py#L17)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/entries_base_entry_source.md b/docs/python-sdk-docs/julep/api/types/entries_base_entry_source.md
deleted file mode 100644
index 49ec1c8c6..000000000
--- a/docs/python-sdk-docs/julep/api/types/entries_base_entry_source.md
+++ /dev/null
@@ -1,6 +0,0 @@
-# Entries Base Entry Source
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / Entries Base Entry Source
-
-> Auto-generated documentation for [julep.api.types.entries_base_entry_source](../../../../../../../julep/api/types/entries_base_entry_source.py) module.
-- [Entries Base Entry Source](#entries-base-entry-source)
diff --git a/docs/python-sdk-docs/julep/api/types/entries_chat_ml_image_content_part.md b/docs/python-sdk-docs/julep/api/types/entries_chat_ml_image_content_part.md
deleted file mode 100644
index a635515a2..000000000
--- a/docs/python-sdk-docs/julep/api/types/entries_chat_ml_image_content_part.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# EntriesChatMlImageContentPart
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / EntriesChatMlImageContentPart
-
-> Auto-generated documentation for [julep.api.types.entries_chat_ml_image_content_part](../../../../../../../julep/api/types/entries_chat_ml_image_content_part.py) module.
-
-- [EntriesChatMlImageContentPart](#entrieschatmlimagecontentpart)
- - [EntriesChatMlImageContentPart](#entrieschatmlimagecontentpart-1)
-
-## EntriesChatMlImageContentPart
-
-[Show source in entries_chat_ml_image_content_part.py:11](../../../../../../../julep/api/types/entries_chat_ml_image_content_part.py#L11)
-
-#### Signature
-
-```python
-class EntriesChatMlImageContentPart(pydantic_v1.BaseModel): ...
-```
-
-### EntriesChatMlImageContentPart().dict
-
-[Show source in entries_chat_ml_image_content_part.py:25](../../../../../../../julep/api/types/entries_chat_ml_image_content_part.py#L25)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### EntriesChatMlImageContentPart().json
-
-[Show source in entries_chat_ml_image_content_part.py:17](../../../../../../../julep/api/types/entries_chat_ml_image_content_part.py#L17)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/entries_chat_ml_role.md b/docs/python-sdk-docs/julep/api/types/entries_chat_ml_role.md
deleted file mode 100644
index 7f92f26f0..000000000
--- a/docs/python-sdk-docs/julep/api/types/entries_chat_ml_role.md
+++ /dev/null
@@ -1,6 +0,0 @@
-# Entries Chat Ml Role
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / Entries Chat Ml Role
-
-> Auto-generated documentation for [julep.api.types.entries_chat_ml_role](../../../../../../../julep/api/types/entries_chat_ml_role.py) module.
-- [Entries Chat Ml Role](#entries-chat-ml-role)
diff --git a/docs/python-sdk-docs/julep/api/types/entries_chat_ml_text_content_part.md b/docs/python-sdk-docs/julep/api/types/entries_chat_ml_text_content_part.md
deleted file mode 100644
index a09d2f597..000000000
--- a/docs/python-sdk-docs/julep/api/types/entries_chat_ml_text_content_part.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# EntriesChatMlTextContentPart
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / EntriesChatMlTextContentPart
-
-> Auto-generated documentation for [julep.api.types.entries_chat_ml_text_content_part](../../../../../../../julep/api/types/entries_chat_ml_text_content_part.py) module.
-
-- [EntriesChatMlTextContentPart](#entrieschatmltextcontentpart)
- - [EntriesChatMlTextContentPart](#entrieschatmltextcontentpart-1)
-
-## EntriesChatMlTextContentPart
-
-[Show source in entries_chat_ml_text_content_part.py:10](../../../../../../../julep/api/types/entries_chat_ml_text_content_part.py#L10)
-
-#### Signature
-
-```python
-class EntriesChatMlTextContentPart(pydantic_v1.BaseModel): ...
-```
-
-### EntriesChatMlTextContentPart().dict
-
-[Show source in entries_chat_ml_text_content_part.py:21](../../../../../../../julep/api/types/entries_chat_ml_text_content_part.py#L21)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### EntriesChatMlTextContentPart().json
-
-[Show source in entries_chat_ml_text_content_part.py:13](../../../../../../../julep/api/types/entries_chat_ml_text_content_part.py#L13)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/entries_entry.md b/docs/python-sdk-docs/julep/api/types/entries_entry.md
deleted file mode 100644
index 6aa64b67d..000000000
--- a/docs/python-sdk-docs/julep/api/types/entries_entry.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# EntriesEntry
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / EntriesEntry
-
-> Auto-generated documentation for [julep.api.types.entries_entry](../../../../../../../julep/api/types/entries_entry.py) module.
-
-- [EntriesEntry](#entriesentry)
- - [EntriesEntry](#entriesentry-1)
-
-## EntriesEntry
-
-[Show source in entries_entry.py:12](../../../../../../../julep/api/types/entries_entry.py#L12)
-
-#### Signature
-
-```python
-class EntriesEntry(EntriesBaseEntry): ...
-```
-
-### EntriesEntry().dict
-
-[Show source in entries_entry.py:28](../../../../../../../julep/api/types/entries_entry.py#L28)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### EntriesEntry().json
-
-[Show source in entries_entry.py:20](../../../../../../../julep/api/types/entries_entry.py#L20)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/entries_history.md b/docs/python-sdk-docs/julep/api/types/entries_history.md
deleted file mode 100644
index 615f6b666..000000000
--- a/docs/python-sdk-docs/julep/api/types/entries_history.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# EntriesHistory
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / EntriesHistory
-
-> Auto-generated documentation for [julep.api.types.entries_history](../../../../../../../julep/api/types/entries_history.py) module.
-
-- [EntriesHistory](#entrieshistory)
- - [EntriesHistory](#entrieshistory-1)
-
-## EntriesHistory
-
-[Show source in entries_history.py:13](../../../../../../../julep/api/types/entries_history.py#L13)
-
-#### Signature
-
-```python
-class EntriesHistory(pydantic_v1.BaseModel): ...
-```
-
-### EntriesHistory().dict
-
-[Show source in entries_history.py:30](../../../../../../../julep/api/types/entries_history.py#L30)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### EntriesHistory().json
-
-[Show source in entries_history.py:22](../../../../../../../julep/api/types/entries_history.py#L22)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/entries_image_detail.md b/docs/python-sdk-docs/julep/api/types/entries_image_detail.md
deleted file mode 100644
index 5e98b5628..000000000
--- a/docs/python-sdk-docs/julep/api/types/entries_image_detail.md
+++ /dev/null
@@ -1,6 +0,0 @@
-# Entries Image Detail
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / Entries Image Detail
-
-> Auto-generated documentation for [julep.api.types.entries_image_detail](../../../../../../../julep/api/types/entries_image_detail.py) module.
-- [Entries Image Detail](#entries-image-detail)
diff --git a/docs/python-sdk-docs/julep/api/types/entries_image_url.md b/docs/python-sdk-docs/julep/api/types/entries_image_url.md
deleted file mode 100644
index 4b6870f88..000000000
--- a/docs/python-sdk-docs/julep/api/types/entries_image_url.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# EntriesImageUrl
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / EntriesImageUrl
-
-> Auto-generated documentation for [julep.api.types.entries_image_url](../../../../../../../julep/api/types/entries_image_url.py) module.
-
-- [EntriesImageUrl](#entriesimageurl)
- - [EntriesImageUrl](#entriesimageurl-1)
-
-## EntriesImageUrl
-
-[Show source in entries_image_url.py:11](../../../../../../../julep/api/types/entries_image_url.py#L11)
-
-#### Signature
-
-```python
-class EntriesImageUrl(pydantic_v1.BaseModel): ...
-```
-
-### EntriesImageUrl().dict
-
-[Show source in entries_image_url.py:30](../../../../../../../julep/api/types/entries_image_url.py#L30)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### EntriesImageUrl().json
-
-[Show source in entries_image_url.py:22](../../../../../../../julep/api/types/entries_image_url.py#L22)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/entries_input_chat_ml_message.md b/docs/python-sdk-docs/julep/api/types/entries_input_chat_ml_message.md
deleted file mode 100644
index 7beba9d20..000000000
--- a/docs/python-sdk-docs/julep/api/types/entries_input_chat_ml_message.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# EntriesInputChatMlMessage
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / EntriesInputChatMlMessage
-
-> Auto-generated documentation for [julep.api.types.entries_input_chat_ml_message](../../../../../../../julep/api/types/entries_input_chat_ml_message.py) module.
-
-- [EntriesInputChatMlMessage](#entriesinputchatmlmessage)
- - [EntriesInputChatMlMessage](#entriesinputchatmlmessage-1)
-
-## EntriesInputChatMlMessage
-
-[Show source in entries_input_chat_ml_message.py:12](../../../../../../../julep/api/types/entries_input_chat_ml_message.py#L12)
-
-#### Signature
-
-```python
-class EntriesInputChatMlMessage(pydantic_v1.BaseModel): ...
-```
-
-### EntriesInputChatMlMessage().dict
-
-[Show source in entries_input_chat_ml_message.py:41](../../../../../../../julep/api/types/entries_input_chat_ml_message.py#L41)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### EntriesInputChatMlMessage().json
-
-[Show source in entries_input_chat_ml_message.py:33](../../../../../../../julep/api/types/entries_input_chat_ml_message.py#L33)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/entries_input_chat_ml_message_content.md b/docs/python-sdk-docs/julep/api/types/entries_input_chat_ml_message_content.md
deleted file mode 100644
index e4a4d9b27..000000000
--- a/docs/python-sdk-docs/julep/api/types/entries_input_chat_ml_message_content.md
+++ /dev/null
@@ -1,6 +0,0 @@
-# Entries Input Chat Ml Message Content
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / Entries Input Chat Ml Message Content
-
-> Auto-generated documentation for [julep.api.types.entries_input_chat_ml_message_content](../../../../../../../julep/api/types/entries_input_chat_ml_message_content.py) module.
-- [Entries Input Chat Ml Message Content](#entries-input-chat-ml-message-content)
diff --git a/docs/python-sdk-docs/julep/api/types/entries_input_chat_ml_message_content_item.md b/docs/python-sdk-docs/julep/api/types/entries_input_chat_ml_message_content_item.md
deleted file mode 100644
index 2f25e9173..000000000
--- a/docs/python-sdk-docs/julep/api/types/entries_input_chat_ml_message_content_item.md
+++ /dev/null
@@ -1,71 +0,0 @@
-# Entries Input Chat Ml Message Content Item
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / Entries Input Chat Ml Message Content Item
-
-> Auto-generated documentation for [julep.api.types.entries_input_chat_ml_message_content_item](../../../../../../../julep/api/types/entries_input_chat_ml_message_content_item.py) module.
-
-- [Entries Input Chat Ml Message Content Item](#entries-input-chat-ml-message-content-item)
- - [EntriesInputChatMlMessageContentItem_ImageUrl](#entriesinputchatmlmessagecontentitem_imageurl)
- - [EntriesInputChatMlMessageContentItem_Text](#entriesinputchatmlmessagecontentitem_text)
-
-## EntriesInputChatMlMessageContentItem_ImageUrl
-
-[Show source in entries_input_chat_ml_message_content_item.py:49](../../../../../../../julep/api/types/entries_input_chat_ml_message_content_item.py#L49)
-
-#### Signature
-
-```python
-class EntriesInputChatMlMessageContentItem_ImageUrl(pydantic_v1.BaseModel): ...
-```
-
-### EntriesInputChatMlMessageContentItem_ImageUrl().dict
-
-[Show source in entries_input_chat_ml_message_content_item.py:61](../../../../../../../julep/api/types/entries_input_chat_ml_message_content_item.py#L61)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### EntriesInputChatMlMessageContentItem_ImageUrl().json
-
-[Show source in entries_input_chat_ml_message_content_item.py:53](../../../../../../../julep/api/types/entries_input_chat_ml_message_content_item.py#L53)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## EntriesInputChatMlMessageContentItem_Text
-
-[Show source in entries_input_chat_ml_message_content_item.py:13](../../../../../../../julep/api/types/entries_input_chat_ml_message_content_item.py#L13)
-
-#### Signature
-
-```python
-class EntriesInputChatMlMessageContentItem_Text(pydantic_v1.BaseModel): ...
-```
-
-### EntriesInputChatMlMessageContentItem_Text().dict
-
-[Show source in entries_input_chat_ml_message_content_item.py:25](../../../../../../../julep/api/types/entries_input_chat_ml_message_content_item.py#L25)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### EntriesInputChatMlMessageContentItem_Text().json
-
-[Show source in entries_input_chat_ml_message_content_item.py:17](../../../../../../../julep/api/types/entries_input_chat_ml_message_content_item.py#L17)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/entries_relation.md b/docs/python-sdk-docs/julep/api/types/entries_relation.md
deleted file mode 100644
index 9694b3b08..000000000
--- a/docs/python-sdk-docs/julep/api/types/entries_relation.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# EntriesRelation
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / EntriesRelation
-
-> Auto-generated documentation for [julep.api.types.entries_relation](../../../../../../../julep/api/types/entries_relation.py) module.
-
-- [EntriesRelation](#entriesrelation)
- - [EntriesRelation](#entriesrelation-1)
-
-## EntriesRelation
-
-[Show source in entries_relation.py:11](../../../../../../../julep/api/types/entries_relation.py#L11)
-
-#### Signature
-
-```python
-class EntriesRelation(pydantic_v1.BaseModel): ...
-```
-
-### EntriesRelation().dict
-
-[Show source in entries_relation.py:24](../../../../../../../julep/api/types/entries_relation.py#L24)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### EntriesRelation().json
-
-[Show source in entries_relation.py:16](../../../../../../../julep/api/types/entries_relation.py#L16)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/execution_transitions_route_list_request_direction.md b/docs/python-sdk-docs/julep/api/types/execution_transitions_route_list_request_direction.md
deleted file mode 100644
index 24fd3b5ca..000000000
--- a/docs/python-sdk-docs/julep/api/types/execution_transitions_route_list_request_direction.md
+++ /dev/null
@@ -1,6 +0,0 @@
-# Execution Transitions Route List Request Direction
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / Execution Transitions Route List Request Direction
-
-> Auto-generated documentation for [julep.api.types.execution_transitions_route_list_request_direction](../../../../../../../julep/api/types/execution_transitions_route_list_request_direction.py) module.
-- [Execution Transitions Route List Request Direction](#execution-transitions-route-list-request-direction)
diff --git a/docs/python-sdk-docs/julep/api/types/execution_transitions_route_list_request_sort_by.md b/docs/python-sdk-docs/julep/api/types/execution_transitions_route_list_request_sort_by.md
deleted file mode 100644
index 5c393c4bd..000000000
--- a/docs/python-sdk-docs/julep/api/types/execution_transitions_route_list_request_sort_by.md
+++ /dev/null
@@ -1,6 +0,0 @@
-# Execution Transitions Route List Request Sort By
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / Execution Transitions Route List Request Sort By
-
-> Auto-generated documentation for [julep.api.types.execution_transitions_route_list_request_sort_by](../../../../../../../julep/api/types/execution_transitions_route_list_request_sort_by.py) module.
-- [Execution Transitions Route List Request Sort By](#execution-transitions-route-list-request-sort-by)
diff --git a/docs/python-sdk-docs/julep/api/types/execution_transitions_route_list_response.md b/docs/python-sdk-docs/julep/api/types/execution_transitions_route_list_response.md
deleted file mode 100644
index d515b6efc..000000000
--- a/docs/python-sdk-docs/julep/api/types/execution_transitions_route_list_response.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# ExecutionTransitionsRouteListResponse
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / ExecutionTransitionsRouteListResponse
-
-> Auto-generated documentation for [julep.api.types.execution_transitions_route_list_response](../../../../../../../julep/api/types/execution_transitions_route_list_response.py) module.
-
-- [ExecutionTransitionsRouteListResponse](#executiontransitionsroutelistresponse)
- - [ExecutionTransitionsRouteListResponse](#executiontransitionsroutelistresponse-1)
-
-## ExecutionTransitionsRouteListResponse
-
-[Show source in execution_transitions_route_list_response.py:13](../../../../../../../julep/api/types/execution_transitions_route_list_response.py#L13)
-
-#### Signature
-
-```python
-class ExecutionTransitionsRouteListResponse(pydantic_v1.BaseModel): ...
-```
-
-### ExecutionTransitionsRouteListResponse().dict
-
-[Show source in execution_transitions_route_list_response.py:24](../../../../../../../julep/api/types/execution_transitions_route_list_response.py#L24)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### ExecutionTransitionsRouteListResponse().json
-
-[Show source in execution_transitions_route_list_response.py:16](../../../../../../../julep/api/types/execution_transitions_route_list_response.py#L16)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/execution_transitions_route_list_response_results_item.md b/docs/python-sdk-docs/julep/api/types/execution_transitions_route_list_response_results_item.md
deleted file mode 100644
index ca9cbc082..000000000
--- a/docs/python-sdk-docs/julep/api/types/execution_transitions_route_list_response_results_item.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# ExecutionTransitionsRouteListResponseResultsItem
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / ExecutionTransitionsRouteListResponseResultsItem
-
-> Auto-generated documentation for [julep.api.types.execution_transitions_route_list_response_results_item](../../../../../../../julep/api/types/execution_transitions_route_list_response_results_item.py) module.
-
-- [ExecutionTransitionsRouteListResponseResultsItem](#executiontransitionsroutelistresponseresultsitem)
- - [ExecutionTransitionsRouteListResponseResultsItem](#executiontransitionsroutelistresponseresultsitem-1)
-
-## ExecutionTransitionsRouteListResponseResultsItem
-
-[Show source in execution_transitions_route_list_response_results_item.py:11](../../../../../../../julep/api/types/execution_transitions_route_list_response_results_item.py#L11)
-
-#### Signature
-
-```python
-class ExecutionTransitionsRouteListResponseResultsItem(pydantic_v1.BaseModel): ...
-```
-
-### ExecutionTransitionsRouteListResponseResultsItem().dict
-
-[Show source in execution_transitions_route_list_response_results_item.py:22](../../../../../../../julep/api/types/execution_transitions_route_list_response_results_item.py#L22)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### ExecutionTransitionsRouteListResponseResultsItem().json
-
-[Show source in execution_transitions_route_list_response_results_item.py:14](../../../../../../../julep/api/types/execution_transitions_route_list_response_results_item.py#L14)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/executions_execution.md b/docs/python-sdk-docs/julep/api/types/executions_execution.md
deleted file mode 100644
index e79809fe6..000000000
--- a/docs/python-sdk-docs/julep/api/types/executions_execution.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# ExecutionsExecution
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / ExecutionsExecution
-
-> Auto-generated documentation for [julep.api.types.executions_execution](../../../../../../../julep/api/types/executions_execution.py) module.
-
-- [ExecutionsExecution](#executionsexecution)
- - [ExecutionsExecution](#executionsexecution-1)
-
-## ExecutionsExecution
-
-[Show source in executions_execution.py:12](../../../../../../../julep/api/types/executions_execution.py#L12)
-
-#### Signature
-
-```python
-class ExecutionsExecution(pydantic_v1.BaseModel): ...
-```
-
-### ExecutionsExecution().dict
-
-[Show source in executions_execution.py:49](../../../../../../../julep/api/types/executions_execution.py#L49)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### ExecutionsExecution().json
-
-[Show source in executions_execution.py:41](../../../../../../../julep/api/types/executions_execution.py#L41)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/executions_execution_status.md b/docs/python-sdk-docs/julep/api/types/executions_execution_status.md
deleted file mode 100644
index 419ddcb50..000000000
--- a/docs/python-sdk-docs/julep/api/types/executions_execution_status.md
+++ /dev/null
@@ -1,6 +0,0 @@
-# Executions Execution Status
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / Executions Execution Status
-
-> Auto-generated documentation for [julep.api.types.executions_execution_status](../../../../../../../julep/api/types/executions_execution_status.py) module.
-- [Executions Execution Status](#executions-execution-status)
diff --git a/docs/python-sdk-docs/julep/api/types/executions_resume_execution_request.md b/docs/python-sdk-docs/julep/api/types/executions_resume_execution_request.md
deleted file mode 100644
index b5d6cf960..000000000
--- a/docs/python-sdk-docs/julep/api/types/executions_resume_execution_request.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# ExecutionsResumeExecutionRequest
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / ExecutionsResumeExecutionRequest
-
-> Auto-generated documentation for [julep.api.types.executions_resume_execution_request](../../../../../../../julep/api/types/executions_resume_execution_request.py) module.
-
-- [ExecutionsResumeExecutionRequest](#executionsresumeexecutionrequest)
- - [ExecutionsResumeExecutionRequest](#executionsresumeexecutionrequest-1)
-
-## ExecutionsResumeExecutionRequest
-
-[Show source in executions_resume_execution_request.py:10](../../../../../../../julep/api/types/executions_resume_execution_request.py#L10)
-
-#### Signature
-
-```python
-class ExecutionsResumeExecutionRequest(pydantic_v1.BaseModel): ...
-```
-
-### ExecutionsResumeExecutionRequest().dict
-
-[Show source in executions_resume_execution_request.py:26](../../../../../../../julep/api/types/executions_resume_execution_request.py#L26)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### ExecutionsResumeExecutionRequest().json
-
-[Show source in executions_resume_execution_request.py:18](../../../../../../../julep/api/types/executions_resume_execution_request.py#L18)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/executions_stop_execution_request.md b/docs/python-sdk-docs/julep/api/types/executions_stop_execution_request.md
deleted file mode 100644
index 6142b3737..000000000
--- a/docs/python-sdk-docs/julep/api/types/executions_stop_execution_request.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# ExecutionsStopExecutionRequest
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / ExecutionsStopExecutionRequest
-
-> Auto-generated documentation for [julep.api.types.executions_stop_execution_request](../../../../../../../julep/api/types/executions_stop_execution_request.py) module.
-
-- [ExecutionsStopExecutionRequest](#executionsstopexecutionrequest)
- - [ExecutionsStopExecutionRequest](#executionsstopexecutionrequest-1)
-
-## ExecutionsStopExecutionRequest
-
-[Show source in executions_stop_execution_request.py:10](../../../../../../../julep/api/types/executions_stop_execution_request.py#L10)
-
-#### Signature
-
-```python
-class ExecutionsStopExecutionRequest(pydantic_v1.BaseModel): ...
-```
-
-### ExecutionsStopExecutionRequest().dict
-
-[Show source in executions_stop_execution_request.py:24](../../../../../../../julep/api/types/executions_stop_execution_request.py#L24)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### ExecutionsStopExecutionRequest().json
-
-[Show source in executions_stop_execution_request.py:16](../../../../../../../julep/api/types/executions_stop_execution_request.py#L16)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/executions_transition.md b/docs/python-sdk-docs/julep/api/types/executions_transition.md
deleted file mode 100644
index 51de83c30..000000000
--- a/docs/python-sdk-docs/julep/api/types/executions_transition.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# ExecutionsTransition
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / ExecutionsTransition
-
-> Auto-generated documentation for [julep.api.types.executions_transition](../../../../../../../julep/api/types/executions_transition.py) module.
-
-- [ExecutionsTransition](#executionstransition)
- - [ExecutionsTransition](#executionstransition-1)
-
-## ExecutionsTransition
-
-[Show source in executions_transition.py:13](../../../../../../../julep/api/types/executions_transition.py#L13)
-
-#### Signature
-
-```python
-class ExecutionsTransition(pydantic_v1.BaseModel): ...
-```
-
-### ExecutionsTransition().dict
-
-[Show source in executions_transition.py:39](../../../../../../../julep/api/types/executions_transition.py#L39)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### ExecutionsTransition().json
-
-[Show source in executions_transition.py:31](../../../../../../../julep/api/types/executions_transition.py#L31)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/executions_transition_target.md b/docs/python-sdk-docs/julep/api/types/executions_transition_target.md
deleted file mode 100644
index 28a2b6282..000000000
--- a/docs/python-sdk-docs/julep/api/types/executions_transition_target.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# ExecutionsTransitionTarget
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / ExecutionsTransitionTarget
-
-> Auto-generated documentation for [julep.api.types.executions_transition_target](../../../../../../../julep/api/types/executions_transition_target.py) module.
-
-- [ExecutionsTransitionTarget](#executionstransitiontarget)
- - [ExecutionsTransitionTarget](#executionstransitiontarget-1)
-
-## ExecutionsTransitionTarget
-
-[Show source in executions_transition_target.py:11](../../../../../../../julep/api/types/executions_transition_target.py#L11)
-
-#### Signature
-
-```python
-class ExecutionsTransitionTarget(pydantic_v1.BaseModel): ...
-```
-
-### ExecutionsTransitionTarget().dict
-
-[Show source in executions_transition_target.py:23](../../../../../../../julep/api/types/executions_transition_target.py#L23)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### ExecutionsTransitionTarget().json
-
-[Show source in executions_transition_target.py:15](../../../../../../../julep/api/types/executions_transition_target.py#L15)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/executions_transition_type.md b/docs/python-sdk-docs/julep/api/types/executions_transition_type.md
deleted file mode 100644
index 0d1435e49..000000000
--- a/docs/python-sdk-docs/julep/api/types/executions_transition_type.md
+++ /dev/null
@@ -1,6 +0,0 @@
-# Executions Transition Type
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / Executions Transition Type
-
-> Auto-generated documentation for [julep.api.types.executions_transition_type](../../../../../../../julep/api/types/executions_transition_type.py) module.
-- [Executions Transition Type](#executions-transition-type)
diff --git a/docs/python-sdk-docs/julep/api/types/executions_update_execution_request.md b/docs/python-sdk-docs/julep/api/types/executions_update_execution_request.md
deleted file mode 100644
index da3204548..000000000
--- a/docs/python-sdk-docs/julep/api/types/executions_update_execution_request.md
+++ /dev/null
@@ -1,71 +0,0 @@
-# Executions Update Execution Request
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / Executions Update Execution Request
-
-> Auto-generated documentation for [julep.api.types.executions_update_execution_request](../../../../../../../julep/api/types/executions_update_execution_request.py) module.
-
-- [Executions Update Execution Request](#executions-update-execution-request)
- - [ExecutionsUpdateExecutionRequest_Cancelled](#executionsupdateexecutionrequest_cancelled)
- - [ExecutionsUpdateExecutionRequest_Running](#executionsupdateexecutionrequest_running)
-
-## ExecutionsUpdateExecutionRequest_Cancelled
-
-[Show source in executions_update_execution_request.py:12](../../../../../../../julep/api/types/executions_update_execution_request.py#L12)
-
-#### Signature
-
-```python
-class ExecutionsUpdateExecutionRequest_Cancelled(pydantic_v1.BaseModel): ...
-```
-
-### ExecutionsUpdateExecutionRequest_Cancelled().dict
-
-[Show source in executions_update_execution_request.py:24](../../../../../../../julep/api/types/executions_update_execution_request.py#L24)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### ExecutionsUpdateExecutionRequest_Cancelled().json
-
-[Show source in executions_update_execution_request.py:16](../../../../../../../julep/api/types/executions_update_execution_request.py#L16)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## ExecutionsUpdateExecutionRequest_Running
-
-[Show source in executions_update_execution_request.py:48](../../../../../../../julep/api/types/executions_update_execution_request.py#L48)
-
-#### Signature
-
-```python
-class ExecutionsUpdateExecutionRequest_Running(pydantic_v1.BaseModel): ...
-```
-
-### ExecutionsUpdateExecutionRequest_Running().dict
-
-[Show source in executions_update_execution_request.py:60](../../../../../../../julep/api/types/executions_update_execution_request.py#L60)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### ExecutionsUpdateExecutionRequest_Running().json
-
-[Show source in executions_update_execution_request.py:52](../../../../../../../julep/api/types/executions_update_execution_request.py#L52)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/index.md b/docs/python-sdk-docs/julep/api/types/index.md
deleted file mode 100644
index 1e1c8a509..000000000
--- a/docs/python-sdk-docs/julep/api/types/index.md
+++ /dev/null
@@ -1,186 +0,0 @@
-# Types
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / Types
-
-> Auto-generated documentation for [julep.api.types](../../../../../../../julep/api/types/__init__.py) module.
-
-- [Types](#types)
- - [Modules](#modules)
-
-## Modules
-
-- [Agent Docs Route List Request Direction](./agent_docs_route_list_request_direction.md)
-- [Agent Docs Route List Request Sort By](./agent_docs_route_list_request_sort_by.md)
-- [AgentDocsRouteListResponse](./agent_docs_route_list_response.md)
-- [Agent Tools Route List Request Direction](./agent_tools_route_list_request_direction.md)
-- [Agent Tools Route List Request Sort By](./agent_tools_route_list_request_sort_by.md)
-- [AgentToolsRouteListResponse](./agent_tools_route_list_response.md)
-- [AgentsAgent](./agents_agent.md)
-- [Agents Agent Instructions](./agents_agent_instructions.md)
-- [AgentsCreateAgentRequest](./agents_create_agent_request.md)
-- [Agents Create Agent Request Instructions](./agents_create_agent_request_instructions.md)
-- [AgentsCreateOrUpdateAgentRequest](./agents_create_or_update_agent_request.md)
-- [Agents Docs Search Route Search Request Body](./agents_docs_search_route_search_request_body.md)
-- [Agents Patch Agent Request Instructions](./agents_patch_agent_request_instructions.md)
-- [Agents Route List Request Direction](./agents_route_list_request_direction.md)
-- [Agents Route List Request Sort By](./agents_route_list_request_sort_by.md)
-- [AgentsRouteListResponse](./agents_route_list_response.md)
-- [AgentsUpdateAgentRequest](./agents_update_agent_request.md)
-- [Agents Update Agent Request Instructions](./agents_update_agent_request_instructions.md)
-- [ChatBaseChatOutput](./chat_base_chat_output.md)
-- [ChatBaseChatResponse](./chat_base_chat_response.md)
-- [ChatBaseTokenLogProb](./chat_base_token_log_prob.md)
-- [ChatChatInputData](./chat_chat_input_data.md)
-- [Chat Chat Input Data Tool Choice](./chat_chat_input_data_tool_choice.md)
-- [ChatChatOutputChunk](./chat_chat_output_chunk.md)
-- [ChatChatSettings](./chat_chat_settings.md)
-- [ChatChunkChatResponse](./chat_chunk_chat_response.md)
-- [ChatCompetionUsage](./chat_competion_usage.md)
-- [ChatCompletionResponseFormat](./chat_completion_response_format.md)
-- [Chat Completion Response Format Type](./chat_completion_response_format_type.md)
-- [ChatDefaultChatSettings](./chat_default_chat_settings.md)
-- [Chat Finish Reason](./chat_finish_reason.md)
-- [ChatLogProbResponse](./chat_log_prob_response.md)
-- [ChatMessageChatResponse](./chat_message_chat_response.md)
-- [Chat Message Chat Response Choices Item](./chat_message_chat_response_choices_item.md)
-- [ChatMultipleChatOutput](./chat_multiple_chat_output.md)
-- [ChatOpenAiSettings](./chat_open_ai_settings.md)
-- [Chat Route Generate Response](./chat_route_generate_response.md)
-- [ChatSingleChatOutput](./chat_single_chat_output.md)
-- [ChatTokenLogProb](./chat_token_log_prob.md)
-- [Common Identifier Safe Unicode](./common_identifier_safe_unicode.md)
-- [Common Limit](./common_limit.md)
-- [Common Logit Bias](./common_logit_bias.md)
-- [Common Offset](./common_offset.md)
-- [Common Py Expression](./common_py_expression.md)
-- [CommonResourceCreatedResponse](./common_resource_created_response.md)
-- [CommonResourceDeletedResponse](./common_resource_deleted_response.md)
-- [CommonResourceUpdatedResponse](./common_resource_updated_response.md)
-- [Common Tool Ref](./common_tool_ref.md)
-- [Common Uuid](./common_uuid.md)
-- [Common Valid Python Identifier](./common_valid_python_identifier.md)
-- [DocsBaseDocSearchRequest](./docs_base_doc_search_request.md)
-- [DocsCreateDocRequest](./docs_create_doc_request.md)
-- [Docs Create Doc Request Content](./docs_create_doc_request_content.md)
-- [DocsDoc](./docs_doc.md)
-- [Docs Doc Content](./docs_doc_content.md)
-- [DocsDocOwner](./docs_doc_owner.md)
-- [Docs Doc Owner Role](./docs_doc_owner_role.md)
-- [DocsDocReference](./docs_doc_reference.md)
-- [DocsDocSearchResponse](./docs_doc_search_response.md)
-- [DocsEmbedQueryRequest](./docs_embed_query_request.md)
-- [Docs Embed Query Request Text](./docs_embed_query_request_text.md)
-- [DocsEmbedQueryResponse](./docs_embed_query_response.md)
-- [DocsHybridDocSearchRequest](./docs_hybrid_doc_search_request.md)
-- [DocsSnippet](./docs_snippet.md)
-- [DocsTextOnlyDocSearchRequest](./docs_text_only_doc_search_request.md)
-- [DocsVectorDocSearchRequest](./docs_vector_doc_search_request.md)
-- [EntriesBaseEntry](./entries_base_entry.md)
-- [Entries Base Entry Content](./entries_base_entry_content.md)
-- [Entries Base Entry Content Item](./entries_base_entry_content_item.md)
-- [Entries Base Entry Content Item Item](./entries_base_entry_content_item_item.md)
-- [Entries Base Entry Source](./entries_base_entry_source.md)
-- [EntriesChatMlImageContentPart](./entries_chat_ml_image_content_part.md)
-- [Entries Chat Ml Role](./entries_chat_ml_role.md)
-- [EntriesChatMlTextContentPart](./entries_chat_ml_text_content_part.md)
-- [EntriesEntry](./entries_entry.md)
-- [EntriesHistory](./entries_history.md)
-- [Entries Image Detail](./entries_image_detail.md)
-- [EntriesImageUrl](./entries_image_url.md)
-- [EntriesInputChatMlMessage](./entries_input_chat_ml_message.md)
-- [Entries Input Chat Ml Message Content](./entries_input_chat_ml_message_content.md)
-- [Entries Input Chat Ml Message Content Item](./entries_input_chat_ml_message_content_item.md)
-- [EntriesRelation](./entries_relation.md)
-- [Execution Transitions Route List Request Direction](./execution_transitions_route_list_request_direction.md)
-- [Execution Transitions Route List Request Sort By](./execution_transitions_route_list_request_sort_by.md)
-- [ExecutionTransitionsRouteListResponse](./execution_transitions_route_list_response.md)
-- [ExecutionTransitionsRouteListResponseResultsItem](./execution_transitions_route_list_response_results_item.md)
-- [ExecutionsExecution](./executions_execution.md)
-- [Executions Execution Status](./executions_execution_status.md)
-- [ExecutionsResumeExecutionRequest](./executions_resume_execution_request.md)
-- [ExecutionsStopExecutionRequest](./executions_stop_execution_request.md)
-- [ExecutionsTransition](./executions_transition.md)
-- [ExecutionsTransitionTarget](./executions_transition_target.md)
-- [Executions Transition Type](./executions_transition_type.md)
-- [Executions Update Execution Request](./executions_update_execution_request.md)
-- [Jobs Job State](./jobs_job_state.md)
-- [JobsJobStatus](./jobs_job_status.md)
-- [Sessions Context Overflow Type](./sessions_context_overflow_type.md)
-- [SessionsCreateOrUpdateSessionRequest](./sessions_create_or_update_session_request.md)
-- [SessionsCreateSessionRequest](./sessions_create_session_request.md)
-- [SessionsMultiAgentMultiUserSession](./sessions_multi_agent_multi_user_session.md)
-- [SessionsMultiAgentNoUserSession](./sessions_multi_agent_no_user_session.md)
-- [SessionsMultiAgentSingleUserSession](./sessions_multi_agent_single_user_session.md)
-- [Sessions Route List Request Direction](./sessions_route_list_request_direction.md)
-- [Sessions Route List Request Sort By](./sessions_route_list_request_sort_by.md)
-- [SessionsRouteListResponse](./sessions_route_list_response.md)
-- [Sessions Session](./sessions_session.md)
-- [SessionsSingleAgentMultiUserSession](./sessions_single_agent_multi_user_session.md)
-- [SessionsSingleAgentNoUserSession](./sessions_single_agent_no_user_session.md)
-- [SessionsSingleAgentSingleUserSession](./sessions_single_agent_single_user_session.md)
-- [Task Executions Route List Request Direction](./task_executions_route_list_request_direction.md)
-- [Task Executions Route List Request Sort By](./task_executions_route_list_request_sort_by.md)
-- [TaskExecutionsRouteListResponse](./task_executions_route_list_response.md)
-- [Tasks Base Workflow Step](./tasks_base_workflow_step.md)
-- [TasksCaseThen](./tasks_case_then.md)
-- [Tasks Case Then Then](./tasks_case_then_then.md)
-- [TasksCreateTaskRequest](./tasks_create_task_request.md)
-- [Tasks Create Task Request Main Item](./tasks_create_task_request_main_item.md)
-- [TasksEmbedStep](./tasks_embed_step.md)
-- [TasksErrorWorkflowStep](./tasks_error_workflow_step.md)
-- [TasksEvaluateStep](./tasks_evaluate_step.md)
-- [TasksForeachDo](./tasks_foreach_do.md)
-- [Tasks Foreach Do Do](./tasks_foreach_do_do.md)
-- [TasksForeachStep](./tasks_foreach_step.md)
-- [TasksGetStep](./tasks_get_step.md)
-- [TasksIfElseWorkflowStep](./tasks_if_else_workflow_step.md)
-- [Tasks If Else Workflow Step Else](./tasks_if_else_workflow_step_else.md)
-- [Tasks If Else Workflow Step Then](./tasks_if_else_workflow_step_then.md)
-- [TasksLogStep](./tasks_log_step.md)
-- [TasksMapOver](./tasks_map_over.md)
-- [TasksMapReduceStep](./tasks_map_reduce_step.md)
-- [TasksParallelStep](./tasks_parallel_step.md)
-- [Tasks Parallel Step Parallel Item](./tasks_parallel_step_parallel_item.md)
-- [Tasks Patch Task Request Main Item](./tasks_patch_task_request_main_item.md)
-- [TasksPromptStep](./tasks_prompt_step.md)
-- [Tasks Prompt Step Prompt](./tasks_prompt_step_prompt.md)
-- [TasksReturnStep](./tasks_return_step.md)
-- [Tasks Route List Request Direction](./tasks_route_list_request_direction.md)
-- [Tasks Route List Request Sort By](./tasks_route_list_request_sort_by.md)
-- [TasksRouteListResponse](./tasks_route_list_response.md)
-- [TasksSearchStep](./tasks_search_step.md)
-- [Tasks Search Step Search](./tasks_search_step_search.md)
-- [TasksSetKey](./tasks_set_key.md)
-- [TasksSetStep](./tasks_set_step.md)
-- [Tasks Set Step Set](./tasks_set_step_set.md)
-- [TasksSleepFor](./tasks_sleep_for.md)
-- [TasksSleepStep](./tasks_sleep_step.md)
-- [TasksSwitchStep](./tasks_switch_step.md)
-- [TasksTask](./tasks_task.md)
-- [Tasks Task Main Item](./tasks_task_main_item.md)
-- [TasksTaskTool](./tasks_task_tool.md)
-- [TasksToolCallStep](./tasks_tool_call_step.md)
-- [Tasks Update Task Request Main Item](./tasks_update_task_request_main_item.md)
-- [TasksWaitForInputStep](./tasks_wait_for_input_step.md)
-- [TasksYieldStep](./tasks_yield_step.md)
-- [ToolsChosenFunctionCall](./tools_chosen_function_call.md)
-- [Tools Chosen Tool Call](./tools_chosen_tool_call.md)
-- [ToolsCreateToolRequest](./tools_create_tool_request.md)
-- [ToolsFunctionCallOption](./tools_function_call_option.md)
-- [ToolsFunctionDef](./tools_function_def.md)
-- [ToolsFunctionTool](./tools_function_tool.md)
-- [ToolsNamedFunctionChoice](./tools_named_function_choice.md)
-- [Tools Named Tool Choice](./tools_named_tool_choice.md)
-- [Tools Tool](./tools_tool.md)
-- [ToolsToolResponse](./tools_tool_response.md)
-- [Tools Tool Type](./tools_tool_type.md)
-- [User Docs Route List Request Direction](./user_docs_route_list_request_direction.md)
-- [User Docs Route List Request Sort By](./user_docs_route_list_request_sort_by.md)
-- [UserDocsRouteListResponse](./user_docs_route_list_response.md)
-- [User Docs Search Route Search Request Body](./user_docs_search_route_search_request_body.md)
-- [UsersCreateOrUpdateUserRequest](./users_create_or_update_user_request.md)
-- [UsersCreateUserRequest](./users_create_user_request.md)
-- [Users Route List Request Direction](./users_route_list_request_direction.md)
-- [Users Route List Request Sort By](./users_route_list_request_sort_by.md)
-- [UsersRouteListResponse](./users_route_list_response.md)
-- [UsersUser](./users_user.md)
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/jobs_job_state.md b/docs/python-sdk-docs/julep/api/types/jobs_job_state.md
deleted file mode 100644
index b5e138867..000000000
--- a/docs/python-sdk-docs/julep/api/types/jobs_job_state.md
+++ /dev/null
@@ -1,6 +0,0 @@
-# Jobs Job State
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / Jobs Job State
-
-> Auto-generated documentation for [julep.api.types.jobs_job_state](../../../../../../../julep/api/types/jobs_job_state.py) module.
-- [Jobs Job State](#jobs-job-state)
diff --git a/docs/python-sdk-docs/julep/api/types/jobs_job_status.md b/docs/python-sdk-docs/julep/api/types/jobs_job_status.md
deleted file mode 100644
index 2055a3811..000000000
--- a/docs/python-sdk-docs/julep/api/types/jobs_job_status.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# JobsJobStatus
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / JobsJobStatus
-
-> Auto-generated documentation for [julep.api.types.jobs_job_status](../../../../../../../julep/api/types/jobs_job_status.py) module.
-
-- [JobsJobStatus](#jobsjobstatus)
- - [JobsJobStatus](#jobsjobstatus-1)
-
-## JobsJobStatus
-
-[Show source in jobs_job_status.py:13](../../../../../../../julep/api/types/jobs_job_status.py#L13)
-
-#### Signature
-
-```python
-class JobsJobStatus(pydantic_v1.BaseModel): ...
-```
-
-### JobsJobStatus().dict
-
-[Show source in jobs_job_status.py:58](../../../../../../../julep/api/types/jobs_job_status.py#L58)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### JobsJobStatus().json
-
-[Show source in jobs_job_status.py:50](../../../../../../../julep/api/types/jobs_job_status.py#L50)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/sessions_context_overflow_type.md b/docs/python-sdk-docs/julep/api/types/sessions_context_overflow_type.md
deleted file mode 100644
index 4009e89ec..000000000
--- a/docs/python-sdk-docs/julep/api/types/sessions_context_overflow_type.md
+++ /dev/null
@@ -1,6 +0,0 @@
-# Sessions Context Overflow Type
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / Sessions Context Overflow Type
-
-> Auto-generated documentation for [julep.api.types.sessions_context_overflow_type](../../../../../../../julep/api/types/sessions_context_overflow_type.py) module.
-- [Sessions Context Overflow Type](#sessions-context-overflow-type)
diff --git a/docs/python-sdk-docs/julep/api/types/sessions_create_or_update_session_request.md b/docs/python-sdk-docs/julep/api/types/sessions_create_or_update_session_request.md
deleted file mode 100644
index d94fcfd40..000000000
--- a/docs/python-sdk-docs/julep/api/types/sessions_create_or_update_session_request.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# SessionsCreateOrUpdateSessionRequest
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / SessionsCreateOrUpdateSessionRequest
-
-> Auto-generated documentation for [julep.api.types.sessions_create_or_update_session_request](../../../../../../../julep/api/types/sessions_create_or_update_session_request.py) module.
-
-- [SessionsCreateOrUpdateSessionRequest](#sessionscreateorupdatesessionrequest)
- - [SessionsCreateOrUpdateSessionRequest](#sessionscreateorupdatesessionrequest-1)
-
-## SessionsCreateOrUpdateSessionRequest
-
-[Show source in sessions_create_or_update_session_request.py:12](../../../../../../../julep/api/types/sessions_create_or_update_session_request.py#L12)
-
-#### Signature
-
-```python
-class SessionsCreateOrUpdateSessionRequest(pydantic_v1.BaseModel): ...
-```
-
-### SessionsCreateOrUpdateSessionRequest().dict
-
-[Show source in sessions_create_or_update_session_request.py:57](../../../../../../../julep/api/types/sessions_create_or_update_session_request.py#L57)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### SessionsCreateOrUpdateSessionRequest().json
-
-[Show source in sessions_create_or_update_session_request.py:49](../../../../../../../julep/api/types/sessions_create_or_update_session_request.py#L49)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/sessions_create_session_request.md b/docs/python-sdk-docs/julep/api/types/sessions_create_session_request.md
deleted file mode 100644
index d9b07631d..000000000
--- a/docs/python-sdk-docs/julep/api/types/sessions_create_session_request.md
+++ /dev/null
@@ -1,40 +0,0 @@
-# SessionsCreateSessionRequest
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / SessionsCreateSessionRequest
-
-> Auto-generated documentation for [julep.api.types.sessions_create_session_request](../../../../../../../julep/api/types/sessions_create_session_request.py) module.
-
-- [SessionsCreateSessionRequest](#sessionscreatesessionrequest)
- - [SessionsCreateSessionRequest](#sessionscreatesessionrequest-1)
-
-## SessionsCreateSessionRequest
-
-[Show source in sessions_create_session_request.py:12](../../../../../../../julep/api/types/sessions_create_session_request.py#L12)
-
-Payload for creating a session
-
-#### Signature
-
-```python
-class SessionsCreateSessionRequest(pydantic_v1.BaseModel): ...
-```
-
-### SessionsCreateSessionRequest().dict
-
-[Show source in sessions_create_session_request.py:61](../../../../../../../julep/api/types/sessions_create_session_request.py#L61)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### SessionsCreateSessionRequest().json
-
-[Show source in sessions_create_session_request.py:53](../../../../../../../julep/api/types/sessions_create_session_request.py#L53)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/sessions_multi_agent_multi_user_session.md b/docs/python-sdk-docs/julep/api/types/sessions_multi_agent_multi_user_session.md
deleted file mode 100644
index f7c407cbd..000000000
--- a/docs/python-sdk-docs/julep/api/types/sessions_multi_agent_multi_user_session.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# SessionsMultiAgentMultiUserSession
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / SessionsMultiAgentMultiUserSession
-
-> Auto-generated documentation for [julep.api.types.sessions_multi_agent_multi_user_session](../../../../../../../julep/api/types/sessions_multi_agent_multi_user_session.py) module.
-
-- [SessionsMultiAgentMultiUserSession](#sessionsmultiagentmultiusersession)
- - [SessionsMultiAgentMultiUserSession](#sessionsmultiagentmultiusersession-1)
-
-## SessionsMultiAgentMultiUserSession
-
-[Show source in sessions_multi_agent_multi_user_session.py:11](../../../../../../../julep/api/types/sessions_multi_agent_multi_user_session.py#L11)
-
-#### Signature
-
-```python
-class SessionsMultiAgentMultiUserSession(pydantic_v1.BaseModel): ...
-```
-
-### SessionsMultiAgentMultiUserSession().dict
-
-[Show source in sessions_multi_agent_multi_user_session.py:23](../../../../../../../julep/api/types/sessions_multi_agent_multi_user_session.py#L23)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### SessionsMultiAgentMultiUserSession().json
-
-[Show source in sessions_multi_agent_multi_user_session.py:15](../../../../../../../julep/api/types/sessions_multi_agent_multi_user_session.py#L15)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/sessions_multi_agent_no_user_session.md b/docs/python-sdk-docs/julep/api/types/sessions_multi_agent_no_user_session.md
deleted file mode 100644
index a6ad4554f..000000000
--- a/docs/python-sdk-docs/julep/api/types/sessions_multi_agent_no_user_session.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# SessionsMultiAgentNoUserSession
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / SessionsMultiAgentNoUserSession
-
-> Auto-generated documentation for [julep.api.types.sessions_multi_agent_no_user_session](../../../../../../../julep/api/types/sessions_multi_agent_no_user_session.py) module.
-
-- [SessionsMultiAgentNoUserSession](#sessionsmultiagentnousersession)
- - [SessionsMultiAgentNoUserSession](#sessionsmultiagentnousersession-1)
-
-## SessionsMultiAgentNoUserSession
-
-[Show source in sessions_multi_agent_no_user_session.py:11](../../../../../../../julep/api/types/sessions_multi_agent_no_user_session.py#L11)
-
-#### Signature
-
-```python
-class SessionsMultiAgentNoUserSession(pydantic_v1.BaseModel): ...
-```
-
-### SessionsMultiAgentNoUserSession().dict
-
-[Show source in sessions_multi_agent_no_user_session.py:22](../../../../../../../julep/api/types/sessions_multi_agent_no_user_session.py#L22)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### SessionsMultiAgentNoUserSession().json
-
-[Show source in sessions_multi_agent_no_user_session.py:14](../../../../../../../julep/api/types/sessions_multi_agent_no_user_session.py#L14)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/sessions_multi_agent_single_user_session.md b/docs/python-sdk-docs/julep/api/types/sessions_multi_agent_single_user_session.md
deleted file mode 100644
index 77f842cfd..000000000
--- a/docs/python-sdk-docs/julep/api/types/sessions_multi_agent_single_user_session.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# SessionsMultiAgentSingleUserSession
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / SessionsMultiAgentSingleUserSession
-
-> Auto-generated documentation for [julep.api.types.sessions_multi_agent_single_user_session](../../../../../../../julep/api/types/sessions_multi_agent_single_user_session.py) module.
-
-- [SessionsMultiAgentSingleUserSession](#sessionsmultiagentsingleusersession)
- - [SessionsMultiAgentSingleUserSession](#sessionsmultiagentsingleusersession-1)
-
-## SessionsMultiAgentSingleUserSession
-
-[Show source in sessions_multi_agent_single_user_session.py:11](../../../../../../../julep/api/types/sessions_multi_agent_single_user_session.py#L11)
-
-#### Signature
-
-```python
-class SessionsMultiAgentSingleUserSession(pydantic_v1.BaseModel): ...
-```
-
-### SessionsMultiAgentSingleUserSession().dict
-
-[Show source in sessions_multi_agent_single_user_session.py:23](../../../../../../../julep/api/types/sessions_multi_agent_single_user_session.py#L23)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### SessionsMultiAgentSingleUserSession().json
-
-[Show source in sessions_multi_agent_single_user_session.py:15](../../../../../../../julep/api/types/sessions_multi_agent_single_user_session.py#L15)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/sessions_route_list_request_direction.md b/docs/python-sdk-docs/julep/api/types/sessions_route_list_request_direction.md
deleted file mode 100644
index d23a5296e..000000000
--- a/docs/python-sdk-docs/julep/api/types/sessions_route_list_request_direction.md
+++ /dev/null
@@ -1,6 +0,0 @@
-# Sessions Route List Request Direction
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / Sessions Route List Request Direction
-
-> Auto-generated documentation for [julep.api.types.sessions_route_list_request_direction](../../../../../../../julep/api/types/sessions_route_list_request_direction.py) module.
-- [Sessions Route List Request Direction](#sessions-route-list-request-direction)
diff --git a/docs/python-sdk-docs/julep/api/types/sessions_route_list_request_sort_by.md b/docs/python-sdk-docs/julep/api/types/sessions_route_list_request_sort_by.md
deleted file mode 100644
index 0b38dd9b4..000000000
--- a/docs/python-sdk-docs/julep/api/types/sessions_route_list_request_sort_by.md
+++ /dev/null
@@ -1,6 +0,0 @@
-# Sessions Route List Request Sort By
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / Sessions Route List Request Sort By
-
-> Auto-generated documentation for [julep.api.types.sessions_route_list_request_sort_by](../../../../../../../julep/api/types/sessions_route_list_request_sort_by.py) module.
-- [Sessions Route List Request Sort By](#sessions-route-list-request-sort-by)
diff --git a/docs/python-sdk-docs/julep/api/types/sessions_route_list_response.md b/docs/python-sdk-docs/julep/api/types/sessions_route_list_response.md
deleted file mode 100644
index 5d5e37ed3..000000000
--- a/docs/python-sdk-docs/julep/api/types/sessions_route_list_response.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# SessionsRouteListResponse
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / SessionsRouteListResponse
-
-> Auto-generated documentation for [julep.api.types.sessions_route_list_response](../../../../../../../julep/api/types/sessions_route_list_response.py) module.
-
-- [SessionsRouteListResponse](#sessionsroutelistresponse)
- - [SessionsRouteListResponse](#sessionsroutelistresponse-1)
-
-## SessionsRouteListResponse
-
-[Show source in sessions_route_list_response.py:11](../../../../../../../julep/api/types/sessions_route_list_response.py#L11)
-
-#### Signature
-
-```python
-class SessionsRouteListResponse(pydantic_v1.BaseModel): ...
-```
-
-### SessionsRouteListResponse().dict
-
-[Show source in sessions_route_list_response.py:22](../../../../../../../julep/api/types/sessions_route_list_response.py#L22)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### SessionsRouteListResponse().json
-
-[Show source in sessions_route_list_response.py:14](../../../../../../../julep/api/types/sessions_route_list_response.py#L14)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/sessions_session.md b/docs/python-sdk-docs/julep/api/types/sessions_session.md
deleted file mode 100644
index 6bba8275e..000000000
--- a/docs/python-sdk-docs/julep/api/types/sessions_session.md
+++ /dev/null
@@ -1,260 +0,0 @@
-# Sessions Session
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / Sessions Session
-
-> Auto-generated documentation for [julep.api.types.sessions_session](../../../../../../../julep/api/types/sessions_session.py) module.
-
-- [Sessions Session](#sessions-session)
- - [Base](#base)
- - [SessionsSession_MultiAgentMultiUser](#sessionssession_multiagentmultiuser)
- - [SessionsSession_MultiAgentNoUser](#sessionssession_multiagentnouser)
- - [SessionsSession_MultiAgentSingleUser](#sessionssession_multiagentsingleuser)
- - [SessionsSession_SingleAgentMultiUser](#sessionssession_singleagentmultiuser)
- - [SessionsSession_SingleAgentNoUser](#sessionssession_singleagentnouser)
- - [SessionsSession_SingleAgentSingleUser](#sessionssession_singleagentsingleuser)
-
-## Base
-
-[Show source in sessions_session.py:14](../../../../../../../julep/api/types/sessions_session.py#L14)
-
-#### Signature
-
-```python
-class Base(pydantic_v1.BaseModel): ...
-```
-
-### Base().dict
-
-[Show source in sessions_session.py:62](../../../../../../../julep/api/types/sessions_session.py#L62)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### Base().json
-
-[Show source in sessions_session.py:54](../../../../../../../julep/api/types/sessions_session.py#L54)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## SessionsSession_MultiAgentMultiUser
-
-[Show source in sessions_session.py:279](../../../../../../../julep/api/types/sessions_session.py#L279)
-
-#### Signature
-
-```python
-class SessionsSession_MultiAgentMultiUser(Base): ...
-```
-
-#### See also
-
-- [Base](#base)
-
-### SessionsSession_MultiAgentMultiUser().dict
-
-[Show source in sessions_session.py:292](../../../../../../../julep/api/types/sessions_session.py#L292)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### SessionsSession_MultiAgentMultiUser().json
-
-[Show source in sessions_session.py:284](../../../../../../../julep/api/types/sessions_session.py#L284)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## SessionsSession_MultiAgentNoUser
-
-[Show source in sessions_session.py:202](../../../../../../../julep/api/types/sessions_session.py#L202)
-
-#### Signature
-
-```python
-class SessionsSession_MultiAgentNoUser(Base): ...
-```
-
-#### See also
-
-- [Base](#base)
-
-### SessionsSession_MultiAgentNoUser().dict
-
-[Show source in sessions_session.py:214](../../../../../../../julep/api/types/sessions_session.py#L214)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### SessionsSession_MultiAgentNoUser().json
-
-[Show source in sessions_session.py:206](../../../../../../../julep/api/types/sessions_session.py#L206)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## SessionsSession_MultiAgentSingleUser
-
-[Show source in sessions_session.py:240](../../../../../../../julep/api/types/sessions_session.py#L240)
-
-#### Signature
-
-```python
-class SessionsSession_MultiAgentSingleUser(Base): ...
-```
-
-#### See also
-
-- [Base](#base)
-
-### SessionsSession_MultiAgentSingleUser().dict
-
-[Show source in sessions_session.py:253](../../../../../../../julep/api/types/sessions_session.py#L253)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### SessionsSession_MultiAgentSingleUser().json
-
-[Show source in sessions_session.py:245](../../../../../../../julep/api/types/sessions_session.py#L245)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## SessionsSession_SingleAgentMultiUser
-
-[Show source in sessions_session.py:163](../../../../../../../julep/api/types/sessions_session.py#L163)
-
-#### Signature
-
-```python
-class SessionsSession_SingleAgentMultiUser(Base): ...
-```
-
-#### See also
-
-- [Base](#base)
-
-### SessionsSession_SingleAgentMultiUser().dict
-
-[Show source in sessions_session.py:176](../../../../../../../julep/api/types/sessions_session.py#L176)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### SessionsSession_SingleAgentMultiUser().json
-
-[Show source in sessions_session.py:168](../../../../../../../julep/api/types/sessions_session.py#L168)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## SessionsSession_SingleAgentNoUser
-
-[Show source in sessions_session.py:86](../../../../../../../julep/api/types/sessions_session.py#L86)
-
-#### Signature
-
-```python
-class SessionsSession_SingleAgentNoUser(Base): ...
-```
-
-#### See also
-
-- [Base](#base)
-
-### SessionsSession_SingleAgentNoUser().dict
-
-[Show source in sessions_session.py:98](../../../../../../../julep/api/types/sessions_session.py#L98)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### SessionsSession_SingleAgentNoUser().json
-
-[Show source in sessions_session.py:90](../../../../../../../julep/api/types/sessions_session.py#L90)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## SessionsSession_SingleAgentSingleUser
-
-[Show source in sessions_session.py:124](../../../../../../../julep/api/types/sessions_session.py#L124)
-
-#### Signature
-
-```python
-class SessionsSession_SingleAgentSingleUser(Base): ...
-```
-
-#### See also
-
-- [Base](#base)
-
-### SessionsSession_SingleAgentSingleUser().dict
-
-[Show source in sessions_session.py:137](../../../../../../../julep/api/types/sessions_session.py#L137)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### SessionsSession_SingleAgentSingleUser().json
-
-[Show source in sessions_session.py:129](../../../../../../../julep/api/types/sessions_session.py#L129)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/sessions_single_agent_multi_user_session.md b/docs/python-sdk-docs/julep/api/types/sessions_single_agent_multi_user_session.md
deleted file mode 100644
index caccf2166..000000000
--- a/docs/python-sdk-docs/julep/api/types/sessions_single_agent_multi_user_session.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# SessionsSingleAgentMultiUserSession
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / SessionsSingleAgentMultiUserSession
-
-> Auto-generated documentation for [julep.api.types.sessions_single_agent_multi_user_session](../../../../../../../julep/api/types/sessions_single_agent_multi_user_session.py) module.
-
-- [SessionsSingleAgentMultiUserSession](#sessionssingleagentmultiusersession)
- - [SessionsSingleAgentMultiUserSession](#sessionssingleagentmultiusersession-1)
-
-## SessionsSingleAgentMultiUserSession
-
-[Show source in sessions_single_agent_multi_user_session.py:11](../../../../../../../julep/api/types/sessions_single_agent_multi_user_session.py#L11)
-
-#### Signature
-
-```python
-class SessionsSingleAgentMultiUserSession(pydantic_v1.BaseModel): ...
-```
-
-### SessionsSingleAgentMultiUserSession().dict
-
-[Show source in sessions_single_agent_multi_user_session.py:23](../../../../../../../julep/api/types/sessions_single_agent_multi_user_session.py#L23)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### SessionsSingleAgentMultiUserSession().json
-
-[Show source in sessions_single_agent_multi_user_session.py:15](../../../../../../../julep/api/types/sessions_single_agent_multi_user_session.py#L15)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/sessions_single_agent_no_user_session.md b/docs/python-sdk-docs/julep/api/types/sessions_single_agent_no_user_session.md
deleted file mode 100644
index 0f45b6d06..000000000
--- a/docs/python-sdk-docs/julep/api/types/sessions_single_agent_no_user_session.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# SessionsSingleAgentNoUserSession
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / SessionsSingleAgentNoUserSession
-
-> Auto-generated documentation for [julep.api.types.sessions_single_agent_no_user_session](../../../../../../../julep/api/types/sessions_single_agent_no_user_session.py) module.
-
-- [SessionsSingleAgentNoUserSession](#sessionssingleagentnousersession)
- - [SessionsSingleAgentNoUserSession](#sessionssingleagentnousersession-1)
-
-## SessionsSingleAgentNoUserSession
-
-[Show source in sessions_single_agent_no_user_session.py:11](../../../../../../../julep/api/types/sessions_single_agent_no_user_session.py#L11)
-
-#### Signature
-
-```python
-class SessionsSingleAgentNoUserSession(pydantic_v1.BaseModel): ...
-```
-
-### SessionsSingleAgentNoUserSession().dict
-
-[Show source in sessions_single_agent_no_user_session.py:22](../../../../../../../julep/api/types/sessions_single_agent_no_user_session.py#L22)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### SessionsSingleAgentNoUserSession().json
-
-[Show source in sessions_single_agent_no_user_session.py:14](../../../../../../../julep/api/types/sessions_single_agent_no_user_session.py#L14)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/sessions_single_agent_single_user_session.md b/docs/python-sdk-docs/julep/api/types/sessions_single_agent_single_user_session.md
deleted file mode 100644
index be8bab1e7..000000000
--- a/docs/python-sdk-docs/julep/api/types/sessions_single_agent_single_user_session.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# SessionsSingleAgentSingleUserSession
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / SessionsSingleAgentSingleUserSession
-
-> Auto-generated documentation for [julep.api.types.sessions_single_agent_single_user_session](../../../../../../../julep/api/types/sessions_single_agent_single_user_session.py) module.
-
-- [SessionsSingleAgentSingleUserSession](#sessionssingleagentsingleusersession)
- - [SessionsSingleAgentSingleUserSession](#sessionssingleagentsingleusersession-1)
-
-## SessionsSingleAgentSingleUserSession
-
-[Show source in sessions_single_agent_single_user_session.py:11](../../../../../../../julep/api/types/sessions_single_agent_single_user_session.py#L11)
-
-#### Signature
-
-```python
-class SessionsSingleAgentSingleUserSession(pydantic_v1.BaseModel): ...
-```
-
-### SessionsSingleAgentSingleUserSession().dict
-
-[Show source in sessions_single_agent_single_user_session.py:23](../../../../../../../julep/api/types/sessions_single_agent_single_user_session.py#L23)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### SessionsSingleAgentSingleUserSession().json
-
-[Show source in sessions_single_agent_single_user_session.py:15](../../../../../../../julep/api/types/sessions_single_agent_single_user_session.py#L15)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/task_executions_route_list_request_direction.md b/docs/python-sdk-docs/julep/api/types/task_executions_route_list_request_direction.md
deleted file mode 100644
index eca88dcfc..000000000
--- a/docs/python-sdk-docs/julep/api/types/task_executions_route_list_request_direction.md
+++ /dev/null
@@ -1,6 +0,0 @@
-# Task Executions Route List Request Direction
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / Task Executions Route List Request Direction
-
-> Auto-generated documentation for [julep.api.types.task_executions_route_list_request_direction](../../../../../../../julep/api/types/task_executions_route_list_request_direction.py) module.
-- [Task Executions Route List Request Direction](#task-executions-route-list-request-direction)
diff --git a/docs/python-sdk-docs/julep/api/types/task_executions_route_list_request_sort_by.md b/docs/python-sdk-docs/julep/api/types/task_executions_route_list_request_sort_by.md
deleted file mode 100644
index 19c4abc9a..000000000
--- a/docs/python-sdk-docs/julep/api/types/task_executions_route_list_request_sort_by.md
+++ /dev/null
@@ -1,6 +0,0 @@
-# Task Executions Route List Request Sort By
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / Task Executions Route List Request Sort By
-
-> Auto-generated documentation for [julep.api.types.task_executions_route_list_request_sort_by](../../../../../../../julep/api/types/task_executions_route_list_request_sort_by.py) module.
-- [Task Executions Route List Request Sort By](#task-executions-route-list-request-sort-by)
diff --git a/docs/python-sdk-docs/julep/api/types/task_executions_route_list_response.md b/docs/python-sdk-docs/julep/api/types/task_executions_route_list_response.md
deleted file mode 100644
index 3ed80a5bd..000000000
--- a/docs/python-sdk-docs/julep/api/types/task_executions_route_list_response.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# TaskExecutionsRouteListResponse
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / TaskExecutionsRouteListResponse
-
-> Auto-generated documentation for [julep.api.types.task_executions_route_list_response](../../../../../../../julep/api/types/task_executions_route_list_response.py) module.
-
-- [TaskExecutionsRouteListResponse](#taskexecutionsroutelistresponse)
- - [TaskExecutionsRouteListResponse](#taskexecutionsroutelistresponse-1)
-
-## TaskExecutionsRouteListResponse
-
-[Show source in task_executions_route_list_response.py:11](../../../../../../../julep/api/types/task_executions_route_list_response.py#L11)
-
-#### Signature
-
-```python
-class TaskExecutionsRouteListResponse(pydantic_v1.BaseModel): ...
-```
-
-### TaskExecutionsRouteListResponse().dict
-
-[Show source in task_executions_route_list_response.py:22](../../../../../../../julep/api/types/task_executions_route_list_response.py#L22)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TaskExecutionsRouteListResponse().json
-
-[Show source in task_executions_route_list_response.py:14](../../../../../../../julep/api/types/task_executions_route_list_response.py#L14)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/tasks_base_workflow_step.md b/docs/python-sdk-docs/julep/api/types/tasks_base_workflow_step.md
deleted file mode 100644
index 21731b101..000000000
--- a/docs/python-sdk-docs/julep/api/types/tasks_base_workflow_step.md
+++ /dev/null
@@ -1,566 +0,0 @@
-# Tasks Base Workflow Step
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / Tasks Base Workflow Step
-
-> Auto-generated documentation for [julep.api.types.tasks_base_workflow_step](../../../../../../../julep/api/types/tasks_base_workflow_step.py) module.
-
-- [Tasks Base Workflow Step](#tasks-base-workflow-step)
- - [TasksBaseWorkflowStep_Embed](#tasksbaseworkflowstep_embed)
- - [TasksBaseWorkflowStep_Error](#tasksbaseworkflowstep_error)
- - [TasksBaseWorkflowStep_Foreach](#tasksbaseworkflowstep_foreach)
- - [TasksBaseWorkflowStep_Get](#tasksbaseworkflowstep_get)
- - [TasksBaseWorkflowStep_IfElse](#tasksbaseworkflowstep_ifelse)
- - [TasksBaseWorkflowStep_Log](#tasksbaseworkflowstep_log)
- - [TasksBaseWorkflowStep_MapReduce](#tasksbaseworkflowstep_mapreduce)
- - [TasksBaseWorkflowStep_Parallel](#tasksbaseworkflowstep_parallel)
- - [TasksBaseWorkflowStep_Prompt](#tasksbaseworkflowstep_prompt)
- - [TasksBaseWorkflowStep_Return](#tasksbaseworkflowstep_return)
- - [TasksBaseWorkflowStep_Search](#tasksbaseworkflowstep_search)
- - [TasksBaseWorkflowStep_Set](#tasksbaseworkflowstep_set)
- - [TasksBaseWorkflowStep_Sleep](#tasksbaseworkflowstep_sleep)
- - [TasksBaseWorkflowStep_Switch](#tasksbaseworkflowstep_switch)
- - [TasksBaseWorkflowStep_ToolCall](#tasksbaseworkflowstep_toolcall)
- - [TasksBaseWorkflowStep_WaitForInput](#tasksbaseworkflowstep_waitforinput)
- - [TasksBaseWorkflowStep_Yield](#tasksbaseworkflowstep_yield)
-
-## TasksBaseWorkflowStep_Embed
-
-[Show source in tasks_base_workflow_step.py:373](../../../../../../../julep/api/types/tasks_base_workflow_step.py#L373)
-
-#### Signature
-
-```python
-class TasksBaseWorkflowStep_Embed(pydantic_v1.BaseModel): ...
-```
-
-### TasksBaseWorkflowStep_Embed().dict
-
-[Show source in tasks_base_workflow_step.py:385](../../../../../../../julep/api/types/tasks_base_workflow_step.py#L385)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksBaseWorkflowStep_Embed().json
-
-[Show source in tasks_base_workflow_step.py:377](../../../../../../../julep/api/types/tasks_base_workflow_step.py#L377)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksBaseWorkflowStep_Error
-
-[Show source in tasks_base_workflow_step.py:145](../../../../../../../julep/api/types/tasks_base_workflow_step.py#L145)
-
-#### Signature
-
-```python
-class TasksBaseWorkflowStep_Error(pydantic_v1.BaseModel): ...
-```
-
-### TasksBaseWorkflowStep_Error().dict
-
-[Show source in tasks_base_workflow_step.py:157](../../../../../../../julep/api/types/tasks_base_workflow_step.py#L157)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksBaseWorkflowStep_Error().json
-
-[Show source in tasks_base_workflow_step.py:149](../../../../../../../julep/api/types/tasks_base_workflow_step.py#L149)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksBaseWorkflowStep_Foreach
-
-[Show source in tasks_base_workflow_step.py:569](../../../../../../../julep/api/types/tasks_base_workflow_step.py#L569)
-
-#### Signature
-
-```python
-class TasksBaseWorkflowStep_Foreach(pydantic_v1.BaseModel): ...
-```
-
-### TasksBaseWorkflowStep_Foreach().dict
-
-[Show source in tasks_base_workflow_step.py:583](../../../../../../../julep/api/types/tasks_base_workflow_step.py#L583)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksBaseWorkflowStep_Foreach().json
-
-[Show source in tasks_base_workflow_step.py:575](../../../../../../../julep/api/types/tasks_base_workflow_step.py#L575)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksBaseWorkflowStep_Get
-
-[Show source in tasks_base_workflow_step.py:259](../../../../../../../julep/api/types/tasks_base_workflow_step.py#L259)
-
-#### Signature
-
-```python
-class TasksBaseWorkflowStep_Get(pydantic_v1.BaseModel): ...
-```
-
-### TasksBaseWorkflowStep_Get().dict
-
-[Show source in tasks_base_workflow_step.py:271](../../../../../../../julep/api/types/tasks_base_workflow_step.py#L271)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksBaseWorkflowStep_Get().json
-
-[Show source in tasks_base_workflow_step.py:263](../../../../../../../julep/api/types/tasks_base_workflow_step.py#L263)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksBaseWorkflowStep_IfElse
-
-[Show source in tasks_base_workflow_step.py:489](../../../../../../../julep/api/types/tasks_base_workflow_step.py#L489)
-
-#### Signature
-
-```python
-class TasksBaseWorkflowStep_IfElse(pydantic_v1.BaseModel): ...
-```
-
-### TasksBaseWorkflowStep_IfElse().dict
-
-[Show source in tasks_base_workflow_step.py:505](../../../../../../../julep/api/types/tasks_base_workflow_step.py#L505)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksBaseWorkflowStep_IfElse().json
-
-[Show source in tasks_base_workflow_step.py:497](../../../../../../../julep/api/types/tasks_base_workflow_step.py#L497)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksBaseWorkflowStep_Log
-
-[Show source in tasks_base_workflow_step.py:335](../../../../../../../julep/api/types/tasks_base_workflow_step.py#L335)
-
-#### Signature
-
-```python
-class TasksBaseWorkflowStep_Log(pydantic_v1.BaseModel): ...
-```
-
-### TasksBaseWorkflowStep_Log().dict
-
-[Show source in tasks_base_workflow_step.py:347](../../../../../../../julep/api/types/tasks_base_workflow_step.py#L347)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksBaseWorkflowStep_Log().json
-
-[Show source in tasks_base_workflow_step.py:339](../../../../../../../julep/api/types/tasks_base_workflow_step.py#L339)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksBaseWorkflowStep_MapReduce
-
-[Show source in tasks_base_workflow_step.py:649](../../../../../../../julep/api/types/tasks_base_workflow_step.py#L649)
-
-#### Signature
-
-```python
-class TasksBaseWorkflowStep_MapReduce(pydantic_v1.BaseModel): ...
-```
-
-### TasksBaseWorkflowStep_MapReduce().dict
-
-[Show source in tasks_base_workflow_step.py:664](../../../../../../../julep/api/types/tasks_base_workflow_step.py#L664)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksBaseWorkflowStep_MapReduce().json
-
-[Show source in tasks_base_workflow_step.py:656](../../../../../../../julep/api/types/tasks_base_workflow_step.py#L656)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksBaseWorkflowStep_Parallel
-
-[Show source in tasks_base_workflow_step.py:609](../../../../../../../julep/api/types/tasks_base_workflow_step.py#L609)
-
-#### Signature
-
-```python
-class TasksBaseWorkflowStep_Parallel(pydantic_v1.BaseModel): ...
-```
-
-### TasksBaseWorkflowStep_Parallel().dict
-
-[Show source in tasks_base_workflow_step.py:623](../../../../../../../julep/api/types/tasks_base_workflow_step.py#L623)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksBaseWorkflowStep_Parallel().json
-
-[Show source in tasks_base_workflow_step.py:615](../../../../../../../julep/api/types/tasks_base_workflow_step.py#L615)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksBaseWorkflowStep_Prompt
-
-[Show source in tasks_base_workflow_step.py:106](../../../../../../../julep/api/types/tasks_base_workflow_step.py#L106)
-
-#### Signature
-
-```python
-class TasksBaseWorkflowStep_Prompt(pydantic_v1.BaseModel): ...
-```
-
-### TasksBaseWorkflowStep_Prompt().dict
-
-[Show source in tasks_base_workflow_step.py:119](../../../../../../../julep/api/types/tasks_base_workflow_step.py#L119)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksBaseWorkflowStep_Prompt().json
-
-[Show source in tasks_base_workflow_step.py:111](../../../../../../../julep/api/types/tasks_base_workflow_step.py#L111)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksBaseWorkflowStep_Return
-
-[Show source in tasks_base_workflow_step.py:221](../../../../../../../julep/api/types/tasks_base_workflow_step.py#L221)
-
-#### Signature
-
-```python
-class TasksBaseWorkflowStep_Return(pydantic_v1.BaseModel): ...
-```
-
-### TasksBaseWorkflowStep_Return().dict
-
-[Show source in tasks_base_workflow_step.py:233](../../../../../../../julep/api/types/tasks_base_workflow_step.py#L233)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksBaseWorkflowStep_Return().json
-
-[Show source in tasks_base_workflow_step.py:225](../../../../../../../julep/api/types/tasks_base_workflow_step.py#L225)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksBaseWorkflowStep_Search
-
-[Show source in tasks_base_workflow_step.py:411](../../../../../../../julep/api/types/tasks_base_workflow_step.py#L411)
-
-#### Signature
-
-```python
-class TasksBaseWorkflowStep_Search(pydantic_v1.BaseModel): ...
-```
-
-### TasksBaseWorkflowStep_Search().dict
-
-[Show source in tasks_base_workflow_step.py:423](../../../../../../../julep/api/types/tasks_base_workflow_step.py#L423)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksBaseWorkflowStep_Search().json
-
-[Show source in tasks_base_workflow_step.py:415](../../../../../../../julep/api/types/tasks_base_workflow_step.py#L415)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksBaseWorkflowStep_Set
-
-[Show source in tasks_base_workflow_step.py:297](../../../../../../../julep/api/types/tasks_base_workflow_step.py#L297)
-
-#### Signature
-
-```python
-class TasksBaseWorkflowStep_Set(pydantic_v1.BaseModel): ...
-```
-
-### TasksBaseWorkflowStep_Set().dict
-
-[Show source in tasks_base_workflow_step.py:309](../../../../../../../julep/api/types/tasks_base_workflow_step.py#L309)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksBaseWorkflowStep_Set().json
-
-[Show source in tasks_base_workflow_step.py:301](../../../../../../../julep/api/types/tasks_base_workflow_step.py#L301)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksBaseWorkflowStep_Sleep
-
-[Show source in tasks_base_workflow_step.py:183](../../../../../../../julep/api/types/tasks_base_workflow_step.py#L183)
-
-#### Signature
-
-```python
-class TasksBaseWorkflowStep_Sleep(pydantic_v1.BaseModel): ...
-```
-
-### TasksBaseWorkflowStep_Sleep().dict
-
-[Show source in tasks_base_workflow_step.py:195](../../../../../../../julep/api/types/tasks_base_workflow_step.py#L195)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksBaseWorkflowStep_Sleep().json
-
-[Show source in tasks_base_workflow_step.py:187](../../../../../../../julep/api/types/tasks_base_workflow_step.py#L187)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksBaseWorkflowStep_Switch
-
-[Show source in tasks_base_workflow_step.py:531](../../../../../../../julep/api/types/tasks_base_workflow_step.py#L531)
-
-#### Signature
-
-```python
-class TasksBaseWorkflowStep_Switch(pydantic_v1.BaseModel): ...
-```
-
-### TasksBaseWorkflowStep_Switch().dict
-
-[Show source in tasks_base_workflow_step.py:543](../../../../../../../julep/api/types/tasks_base_workflow_step.py#L543)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksBaseWorkflowStep_Switch().json
-
-[Show source in tasks_base_workflow_step.py:535](../../../../../../../julep/api/types/tasks_base_workflow_step.py#L535)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksBaseWorkflowStep_ToolCall
-
-[Show source in tasks_base_workflow_step.py:26](../../../../../../../julep/api/types/tasks_base_workflow_step.py#L26)
-
-#### Signature
-
-```python
-class TasksBaseWorkflowStep_ToolCall(pydantic_v1.BaseModel): ...
-```
-
-### TasksBaseWorkflowStep_ToolCall().dict
-
-[Show source in tasks_base_workflow_step.py:41](../../../../../../../julep/api/types/tasks_base_workflow_step.py#L41)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksBaseWorkflowStep_ToolCall().json
-
-[Show source in tasks_base_workflow_step.py:33](../../../../../../../julep/api/types/tasks_base_workflow_step.py#L33)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksBaseWorkflowStep_WaitForInput
-
-[Show source in tasks_base_workflow_step.py:449](../../../../../../../julep/api/types/tasks_base_workflow_step.py#L449)
-
-#### Signature
-
-```python
-class TasksBaseWorkflowStep_WaitForInput(pydantic_v1.BaseModel): ...
-```
-
-### TasksBaseWorkflowStep_WaitForInput().dict
-
-[Show source in tasks_base_workflow_step.py:463](../../../../../../../julep/api/types/tasks_base_workflow_step.py#L463)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksBaseWorkflowStep_WaitForInput().json
-
-[Show source in tasks_base_workflow_step.py:455](../../../../../../../julep/api/types/tasks_base_workflow_step.py#L455)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksBaseWorkflowStep_Yield
-
-[Show source in tasks_base_workflow_step.py:67](../../../../../../../julep/api/types/tasks_base_workflow_step.py#L67)
-
-#### Signature
-
-```python
-class TasksBaseWorkflowStep_Yield(pydantic_v1.BaseModel): ...
-```
-
-### TasksBaseWorkflowStep_Yield().dict
-
-[Show source in tasks_base_workflow_step.py:80](../../../../../../../julep/api/types/tasks_base_workflow_step.py#L80)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksBaseWorkflowStep_Yield().json
-
-[Show source in tasks_base_workflow_step.py:72](../../../../../../../julep/api/types/tasks_base_workflow_step.py#L72)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/tasks_case_then.md b/docs/python-sdk-docs/julep/api/types/tasks_case_then.md
deleted file mode 100644
index 388ee34d0..000000000
--- a/docs/python-sdk-docs/julep/api/types/tasks_case_then.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# TasksCaseThen
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / TasksCaseThen
-
-> Auto-generated documentation for [julep.api.types.tasks_case_then](../../../../../../../julep/api/types/tasks_case_then.py) module.
-
-- [TasksCaseThen](#taskscasethen)
- - [TasksCaseThen](#taskscasethen-1)
-
-## TasksCaseThen
-
-[Show source in tasks_case_then.py:12](../../../../../../../julep/api/types/tasks_case_then.py#L12)
-
-#### Signature
-
-```python
-class TasksCaseThen(pydantic_v1.BaseModel): ...
-```
-
-### TasksCaseThen().dict
-
-[Show source in tasks_case_then.py:31](../../../../../../../julep/api/types/tasks_case_then.py#L31)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksCaseThen().json
-
-[Show source in tasks_case_then.py:23](../../../../../../../julep/api/types/tasks_case_then.py#L23)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/tasks_case_then_then.md b/docs/python-sdk-docs/julep/api/types/tasks_case_then_then.md
deleted file mode 100644
index dc1a9eb70..000000000
--- a/docs/python-sdk-docs/julep/api/types/tasks_case_then_then.md
+++ /dev/null
@@ -1,460 +0,0 @@
-# Tasks Case Then Then
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / Tasks Case Then Then
-
-> Auto-generated documentation for [julep.api.types.tasks_case_then_then](../../../../../../../julep/api/types/tasks_case_then_then.py) module.
-
-- [Tasks Case Then Then](#tasks-case-then-then)
- - [TasksCaseThenThen_Embed](#taskscasethenthen_embed)
- - [TasksCaseThenThen_Error](#taskscasethenthen_error)
- - [TasksCaseThenThen_Evaluate](#taskscasethenthen_evaluate)
- - [TasksCaseThenThen_Get](#taskscasethenthen_get)
- - [TasksCaseThenThen_Log](#taskscasethenthen_log)
- - [TasksCaseThenThen_Prompt](#taskscasethenthen_prompt)
- - [TasksCaseThenThen_Return](#taskscasethenthen_return)
- - [TasksCaseThenThen_Search](#taskscasethenthen_search)
- - [TasksCaseThenThen_Set](#taskscasethenthen_set)
- - [TasksCaseThenThen_Sleep](#taskscasethenthen_sleep)
- - [TasksCaseThenThen_ToolCall](#taskscasethenthen_toolcall)
- - [TasksCaseThenThen_WaitForInput](#taskscasethenthen_waitforinput)
- - [TasksCaseThenThen_Yield](#taskscasethenthen_yield)
-
-## TasksCaseThenThen_Embed
-
-[Show source in tasks_case_then_then.py:447](../../../../../../../julep/api/types/tasks_case_then_then.py#L447)
-
-The steps to run if the condition is true
-
-#### Signature
-
-```python
-class TasksCaseThenThen_Embed(pydantic_v1.BaseModel): ...
-```
-
-### TasksCaseThenThen_Embed().dict
-
-[Show source in tasks_case_then_then.py:463](../../../../../../../julep/api/types/tasks_case_then_then.py#L463)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksCaseThenThen_Embed().json
-
-[Show source in tasks_case_then_then.py:455](../../../../../../../julep/api/types/tasks_case_then_then.py#L455)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksCaseThenThen_Error
-
-[Show source in tasks_case_then_then.py:195](../../../../../../../julep/api/types/tasks_case_then_then.py#L195)
-
-The steps to run if the condition is true
-
-#### Signature
-
-```python
-class TasksCaseThenThen_Error(pydantic_v1.BaseModel): ...
-```
-
-### TasksCaseThenThen_Error().dict
-
-[Show source in tasks_case_then_then.py:211](../../../../../../../julep/api/types/tasks_case_then_then.py#L211)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksCaseThenThen_Error().json
-
-[Show source in tasks_case_then_then.py:203](../../../../../../../julep/api/types/tasks_case_then_then.py#L203)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksCaseThenThen_Evaluate
-
-[Show source in tasks_case_then_then.py:20](../../../../../../../julep/api/types/tasks_case_then_then.py#L20)
-
-The steps to run if the condition is true
-
-#### Signature
-
-```python
-class TasksCaseThenThen_Evaluate(pydantic_v1.BaseModel): ...
-```
-
-### TasksCaseThenThen_Evaluate().dict
-
-[Show source in tasks_case_then_then.py:38](../../../../../../../julep/api/types/tasks_case_then_then.py#L38)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksCaseThenThen_Evaluate().json
-
-[Show source in tasks_case_then_then.py:30](../../../../../../../julep/api/types/tasks_case_then_then.py#L30)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksCaseThenThen_Get
-
-[Show source in tasks_case_then_then.py:321](../../../../../../../julep/api/types/tasks_case_then_then.py#L321)
-
-The steps to run if the condition is true
-
-#### Signature
-
-```python
-class TasksCaseThenThen_Get(pydantic_v1.BaseModel): ...
-```
-
-### TasksCaseThenThen_Get().dict
-
-[Show source in tasks_case_then_then.py:337](../../../../../../../julep/api/types/tasks_case_then_then.py#L337)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksCaseThenThen_Get().json
-
-[Show source in tasks_case_then_then.py:329](../../../../../../../julep/api/types/tasks_case_then_then.py#L329)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksCaseThenThen_Log
-
-[Show source in tasks_case_then_then.py:405](../../../../../../../julep/api/types/tasks_case_then_then.py#L405)
-
-The steps to run if the condition is true
-
-#### Signature
-
-```python
-class TasksCaseThenThen_Log(pydantic_v1.BaseModel): ...
-```
-
-### TasksCaseThenThen_Log().dict
-
-[Show source in tasks_case_then_then.py:421](../../../../../../../julep/api/types/tasks_case_then_then.py#L421)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksCaseThenThen_Log().json
-
-[Show source in tasks_case_then_then.py:413](../../../../../../../julep/api/types/tasks_case_then_then.py#L413)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksCaseThenThen_Prompt
-
-[Show source in tasks_case_then_then.py:152](../../../../../../../julep/api/types/tasks_case_then_then.py#L152)
-
-The steps to run if the condition is true
-
-#### Signature
-
-```python
-class TasksCaseThenThen_Prompt(pydantic_v1.BaseModel): ...
-```
-
-### TasksCaseThenThen_Prompt().dict
-
-[Show source in tasks_case_then_then.py:169](../../../../../../../julep/api/types/tasks_case_then_then.py#L169)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksCaseThenThen_Prompt().json
-
-[Show source in tasks_case_then_then.py:161](../../../../../../../julep/api/types/tasks_case_then_then.py#L161)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksCaseThenThen_Return
-
-[Show source in tasks_case_then_then.py:279](../../../../../../../julep/api/types/tasks_case_then_then.py#L279)
-
-The steps to run if the condition is true
-
-#### Signature
-
-```python
-class TasksCaseThenThen_Return(pydantic_v1.BaseModel): ...
-```
-
-### TasksCaseThenThen_Return().dict
-
-[Show source in tasks_case_then_then.py:295](../../../../../../../julep/api/types/tasks_case_then_then.py#L295)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksCaseThenThen_Return().json
-
-[Show source in tasks_case_then_then.py:287](../../../../../../../julep/api/types/tasks_case_then_then.py#L287)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksCaseThenThen_Search
-
-[Show source in tasks_case_then_then.py:489](../../../../../../../julep/api/types/tasks_case_then_then.py#L489)
-
-The steps to run if the condition is true
-
-#### Signature
-
-```python
-class TasksCaseThenThen_Search(pydantic_v1.BaseModel): ...
-```
-
-### TasksCaseThenThen_Search().dict
-
-[Show source in tasks_case_then_then.py:505](../../../../../../../julep/api/types/tasks_case_then_then.py#L505)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksCaseThenThen_Search().json
-
-[Show source in tasks_case_then_then.py:497](../../../../../../../julep/api/types/tasks_case_then_then.py#L497)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksCaseThenThen_Set
-
-[Show source in tasks_case_then_then.py:363](../../../../../../../julep/api/types/tasks_case_then_then.py#L363)
-
-The steps to run if the condition is true
-
-#### Signature
-
-```python
-class TasksCaseThenThen_Set(pydantic_v1.BaseModel): ...
-```
-
-### TasksCaseThenThen_Set().dict
-
-[Show source in tasks_case_then_then.py:379](../../../../../../../julep/api/types/tasks_case_then_then.py#L379)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksCaseThenThen_Set().json
-
-[Show source in tasks_case_then_then.py:371](../../../../../../../julep/api/types/tasks_case_then_then.py#L371)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksCaseThenThen_Sleep
-
-[Show source in tasks_case_then_then.py:237](../../../../../../../julep/api/types/tasks_case_then_then.py#L237)
-
-The steps to run if the condition is true
-
-#### Signature
-
-```python
-class TasksCaseThenThen_Sleep(pydantic_v1.BaseModel): ...
-```
-
-### TasksCaseThenThen_Sleep().dict
-
-[Show source in tasks_case_then_then.py:253](../../../../../../../julep/api/types/tasks_case_then_then.py#L253)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksCaseThenThen_Sleep().json
-
-[Show source in tasks_case_then_then.py:245](../../../../../../../julep/api/types/tasks_case_then_then.py#L245)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksCaseThenThen_ToolCall
-
-[Show source in tasks_case_then_then.py:64](../../../../../../../julep/api/types/tasks_case_then_then.py#L64)
-
-The steps to run if the condition is true
-
-#### Signature
-
-```python
-class TasksCaseThenThen_ToolCall(pydantic_v1.BaseModel): ...
-```
-
-### TasksCaseThenThen_ToolCall().dict
-
-[Show source in tasks_case_then_then.py:83](../../../../../../../julep/api/types/tasks_case_then_then.py#L83)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksCaseThenThen_ToolCall().json
-
-[Show source in tasks_case_then_then.py:75](../../../../../../../julep/api/types/tasks_case_then_then.py#L75)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksCaseThenThen_WaitForInput
-
-[Show source in tasks_case_then_then.py:531](../../../../../../../julep/api/types/tasks_case_then_then.py#L531)
-
-The steps to run if the condition is true
-
-#### Signature
-
-```python
-class TasksCaseThenThen_WaitForInput(pydantic_v1.BaseModel): ...
-```
-
-### TasksCaseThenThen_WaitForInput().dict
-
-[Show source in tasks_case_then_then.py:549](../../../../../../../julep/api/types/tasks_case_then_then.py#L549)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksCaseThenThen_WaitForInput().json
-
-[Show source in tasks_case_then_then.py:541](../../../../../../../julep/api/types/tasks_case_then_then.py#L541)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksCaseThenThen_Yield
-
-[Show source in tasks_case_then_then.py:109](../../../../../../../julep/api/types/tasks_case_then_then.py#L109)
-
-The steps to run if the condition is true
-
-#### Signature
-
-```python
-class TasksCaseThenThen_Yield(pydantic_v1.BaseModel): ...
-```
-
-### TasksCaseThenThen_Yield().dict
-
-[Show source in tasks_case_then_then.py:126](../../../../../../../julep/api/types/tasks_case_then_then.py#L126)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksCaseThenThen_Yield().json
-
-[Show source in tasks_case_then_then.py:118](../../../../../../../julep/api/types/tasks_case_then_then.py#L118)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/tasks_create_task_request.md b/docs/python-sdk-docs/julep/api/types/tasks_create_task_request.md
deleted file mode 100644
index d49ae4afa..000000000
--- a/docs/python-sdk-docs/julep/api/types/tasks_create_task_request.md
+++ /dev/null
@@ -1,40 +0,0 @@
-# TasksCreateTaskRequest
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / TasksCreateTaskRequest
-
-> Auto-generated documentation for [julep.api.types.tasks_create_task_request](../../../../../../../julep/api/types/tasks_create_task_request.py) module.
-
-- [TasksCreateTaskRequest](#taskscreatetaskrequest)
- - [TasksCreateTaskRequest](#taskscreatetaskrequest-1)
-
-## TasksCreateTaskRequest
-
-[Show source in tasks_create_task_request.py:12](../../../../../../../julep/api/types/tasks_create_task_request.py#L12)
-
-Payload for creating a task
-
-#### Signature
-
-```python
-class TasksCreateTaskRequest(pydantic_v1.BaseModel): ...
-```
-
-### TasksCreateTaskRequest().dict
-
-[Show source in tasks_create_task_request.py:51](../../../../../../../julep/api/types/tasks_create_task_request.py#L51)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksCreateTaskRequest().json
-
-[Show source in tasks_create_task_request.py:43](../../../../../../../julep/api/types/tasks_create_task_request.py#L43)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/tasks_create_task_request_main_item.md b/docs/python-sdk-docs/julep/api/types/tasks_create_task_request_main_item.md
deleted file mode 100644
index a0105a35b..000000000
--- a/docs/python-sdk-docs/julep/api/types/tasks_create_task_request_main_item.md
+++ /dev/null
@@ -1,599 +0,0 @@
-# Tasks Create Task Request Main Item
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / Tasks Create Task Request Main Item
-
-> Auto-generated documentation for [julep.api.types.tasks_create_task_request_main_item](../../../../../../../julep/api/types/tasks_create_task_request_main_item.py) module.
-
-- [Tasks Create Task Request Main Item](#tasks-create-task-request-main-item)
- - [TasksCreateTaskRequestMainItem_Embed](#taskscreatetaskrequestmainitem_embed)
- - [TasksCreateTaskRequestMainItem_Error](#taskscreatetaskrequestmainitem_error)
- - [TasksCreateTaskRequestMainItem_Evaluate](#taskscreatetaskrequestmainitem_evaluate)
- - [TasksCreateTaskRequestMainItem_Foreach](#taskscreatetaskrequestmainitem_foreach)
- - [TasksCreateTaskRequestMainItem_Get](#taskscreatetaskrequestmainitem_get)
- - [TasksCreateTaskRequestMainItem_IfElse](#taskscreatetaskrequestmainitem_ifelse)
- - [TasksCreateTaskRequestMainItem_Log](#taskscreatetaskrequestmainitem_log)
- - [TasksCreateTaskRequestMainItem_MapReduce](#taskscreatetaskrequestmainitem_mapreduce)
- - [TasksCreateTaskRequestMainItem_Parallel](#taskscreatetaskrequestmainitem_parallel)
- - [TasksCreateTaskRequestMainItem_Prompt](#taskscreatetaskrequestmainitem_prompt)
- - [TasksCreateTaskRequestMainItem_Return](#taskscreatetaskrequestmainitem_return)
- - [TasksCreateTaskRequestMainItem_Search](#taskscreatetaskrequestmainitem_search)
- - [TasksCreateTaskRequestMainItem_Set](#taskscreatetaskrequestmainitem_set)
- - [TasksCreateTaskRequestMainItem_Sleep](#taskscreatetaskrequestmainitem_sleep)
- - [TasksCreateTaskRequestMainItem_Switch](#taskscreatetaskrequestmainitem_switch)
- - [TasksCreateTaskRequestMainItem_ToolCall](#taskscreatetaskrequestmainitem_toolcall)
- - [TasksCreateTaskRequestMainItem_WaitForInput](#taskscreatetaskrequestmainitem_waitforinput)
- - [TasksCreateTaskRequestMainItem_Yield](#taskscreatetaskrequestmainitem_yield)
-
-## TasksCreateTaskRequestMainItem_Embed
-
-[Show source in tasks_create_task_request_main_item.py:413](../../../../../../../julep/api/types/tasks_create_task_request_main_item.py#L413)
-
-#### Signature
-
-```python
-class TasksCreateTaskRequestMainItem_Embed(pydantic_v1.BaseModel): ...
-```
-
-### TasksCreateTaskRequestMainItem_Embed().dict
-
-[Show source in tasks_create_task_request_main_item.py:425](../../../../../../../julep/api/types/tasks_create_task_request_main_item.py#L425)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksCreateTaskRequestMainItem_Embed().json
-
-[Show source in tasks_create_task_request_main_item.py:417](../../../../../../../julep/api/types/tasks_create_task_request_main_item.py#L417)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksCreateTaskRequestMainItem_Error
-
-[Show source in tasks_create_task_request_main_item.py:185](../../../../../../../julep/api/types/tasks_create_task_request_main_item.py#L185)
-
-#### Signature
-
-```python
-class TasksCreateTaskRequestMainItem_Error(pydantic_v1.BaseModel): ...
-```
-
-### TasksCreateTaskRequestMainItem_Error().dict
-
-[Show source in tasks_create_task_request_main_item.py:197](../../../../../../../julep/api/types/tasks_create_task_request_main_item.py#L197)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksCreateTaskRequestMainItem_Error().json
-
-[Show source in tasks_create_task_request_main_item.py:189](../../../../../../../julep/api/types/tasks_create_task_request_main_item.py#L189)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksCreateTaskRequestMainItem_Evaluate
-
-[Show source in tasks_create_task_request_main_item.py:26](../../../../../../../julep/api/types/tasks_create_task_request_main_item.py#L26)
-
-#### Signature
-
-```python
-class TasksCreateTaskRequestMainItem_Evaluate(pydantic_v1.BaseModel): ...
-```
-
-### TasksCreateTaskRequestMainItem_Evaluate().dict
-
-[Show source in tasks_create_task_request_main_item.py:40](../../../../../../../julep/api/types/tasks_create_task_request_main_item.py#L40)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksCreateTaskRequestMainItem_Evaluate().json
-
-[Show source in tasks_create_task_request_main_item.py:32](../../../../../../../julep/api/types/tasks_create_task_request_main_item.py#L32)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksCreateTaskRequestMainItem_Foreach
-
-[Show source in tasks_create_task_request_main_item.py:609](../../../../../../../julep/api/types/tasks_create_task_request_main_item.py#L609)
-
-#### Signature
-
-```python
-class TasksCreateTaskRequestMainItem_Foreach(pydantic_v1.BaseModel): ...
-```
-
-### TasksCreateTaskRequestMainItem_Foreach().dict
-
-[Show source in tasks_create_task_request_main_item.py:623](../../../../../../../julep/api/types/tasks_create_task_request_main_item.py#L623)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksCreateTaskRequestMainItem_Foreach().json
-
-[Show source in tasks_create_task_request_main_item.py:615](../../../../../../../julep/api/types/tasks_create_task_request_main_item.py#L615)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksCreateTaskRequestMainItem_Get
-
-[Show source in tasks_create_task_request_main_item.py:299](../../../../../../../julep/api/types/tasks_create_task_request_main_item.py#L299)
-
-#### Signature
-
-```python
-class TasksCreateTaskRequestMainItem_Get(pydantic_v1.BaseModel): ...
-```
-
-### TasksCreateTaskRequestMainItem_Get().dict
-
-[Show source in tasks_create_task_request_main_item.py:311](../../../../../../../julep/api/types/tasks_create_task_request_main_item.py#L311)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksCreateTaskRequestMainItem_Get().json
-
-[Show source in tasks_create_task_request_main_item.py:303](../../../../../../../julep/api/types/tasks_create_task_request_main_item.py#L303)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksCreateTaskRequestMainItem_IfElse
-
-[Show source in tasks_create_task_request_main_item.py:529](../../../../../../../julep/api/types/tasks_create_task_request_main_item.py#L529)
-
-#### Signature
-
-```python
-class TasksCreateTaskRequestMainItem_IfElse(pydantic_v1.BaseModel): ...
-```
-
-### TasksCreateTaskRequestMainItem_IfElse().dict
-
-[Show source in tasks_create_task_request_main_item.py:545](../../../../../../../julep/api/types/tasks_create_task_request_main_item.py#L545)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksCreateTaskRequestMainItem_IfElse().json
-
-[Show source in tasks_create_task_request_main_item.py:537](../../../../../../../julep/api/types/tasks_create_task_request_main_item.py#L537)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksCreateTaskRequestMainItem_Log
-
-[Show source in tasks_create_task_request_main_item.py:375](../../../../../../../julep/api/types/tasks_create_task_request_main_item.py#L375)
-
-#### Signature
-
-```python
-class TasksCreateTaskRequestMainItem_Log(pydantic_v1.BaseModel): ...
-```
-
-### TasksCreateTaskRequestMainItem_Log().dict
-
-[Show source in tasks_create_task_request_main_item.py:387](../../../../../../../julep/api/types/tasks_create_task_request_main_item.py#L387)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksCreateTaskRequestMainItem_Log().json
-
-[Show source in tasks_create_task_request_main_item.py:379](../../../../../../../julep/api/types/tasks_create_task_request_main_item.py#L379)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksCreateTaskRequestMainItem_MapReduce
-
-[Show source in tasks_create_task_request_main_item.py:689](../../../../../../../julep/api/types/tasks_create_task_request_main_item.py#L689)
-
-#### Signature
-
-```python
-class TasksCreateTaskRequestMainItem_MapReduce(pydantic_v1.BaseModel): ...
-```
-
-### TasksCreateTaskRequestMainItem_MapReduce().dict
-
-[Show source in tasks_create_task_request_main_item.py:704](../../../../../../../julep/api/types/tasks_create_task_request_main_item.py#L704)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksCreateTaskRequestMainItem_MapReduce().json
-
-[Show source in tasks_create_task_request_main_item.py:696](../../../../../../../julep/api/types/tasks_create_task_request_main_item.py#L696)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksCreateTaskRequestMainItem_Parallel
-
-[Show source in tasks_create_task_request_main_item.py:649](../../../../../../../julep/api/types/tasks_create_task_request_main_item.py#L649)
-
-#### Signature
-
-```python
-class TasksCreateTaskRequestMainItem_Parallel(pydantic_v1.BaseModel): ...
-```
-
-### TasksCreateTaskRequestMainItem_Parallel().dict
-
-[Show source in tasks_create_task_request_main_item.py:663](../../../../../../../julep/api/types/tasks_create_task_request_main_item.py#L663)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksCreateTaskRequestMainItem_Parallel().json
-
-[Show source in tasks_create_task_request_main_item.py:655](../../../../../../../julep/api/types/tasks_create_task_request_main_item.py#L655)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksCreateTaskRequestMainItem_Prompt
-
-[Show source in tasks_create_task_request_main_item.py:146](../../../../../../../julep/api/types/tasks_create_task_request_main_item.py#L146)
-
-#### Signature
-
-```python
-class TasksCreateTaskRequestMainItem_Prompt(pydantic_v1.BaseModel): ...
-```
-
-### TasksCreateTaskRequestMainItem_Prompt().dict
-
-[Show source in tasks_create_task_request_main_item.py:159](../../../../../../../julep/api/types/tasks_create_task_request_main_item.py#L159)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksCreateTaskRequestMainItem_Prompt().json
-
-[Show source in tasks_create_task_request_main_item.py:151](../../../../../../../julep/api/types/tasks_create_task_request_main_item.py#L151)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksCreateTaskRequestMainItem_Return
-
-[Show source in tasks_create_task_request_main_item.py:261](../../../../../../../julep/api/types/tasks_create_task_request_main_item.py#L261)
-
-#### Signature
-
-```python
-class TasksCreateTaskRequestMainItem_Return(pydantic_v1.BaseModel): ...
-```
-
-### TasksCreateTaskRequestMainItem_Return().dict
-
-[Show source in tasks_create_task_request_main_item.py:273](../../../../../../../julep/api/types/tasks_create_task_request_main_item.py#L273)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksCreateTaskRequestMainItem_Return().json
-
-[Show source in tasks_create_task_request_main_item.py:265](../../../../../../../julep/api/types/tasks_create_task_request_main_item.py#L265)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksCreateTaskRequestMainItem_Search
-
-[Show source in tasks_create_task_request_main_item.py:451](../../../../../../../julep/api/types/tasks_create_task_request_main_item.py#L451)
-
-#### Signature
-
-```python
-class TasksCreateTaskRequestMainItem_Search(pydantic_v1.BaseModel): ...
-```
-
-### TasksCreateTaskRequestMainItem_Search().dict
-
-[Show source in tasks_create_task_request_main_item.py:463](../../../../../../../julep/api/types/tasks_create_task_request_main_item.py#L463)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksCreateTaskRequestMainItem_Search().json
-
-[Show source in tasks_create_task_request_main_item.py:455](../../../../../../../julep/api/types/tasks_create_task_request_main_item.py#L455)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksCreateTaskRequestMainItem_Set
-
-[Show source in tasks_create_task_request_main_item.py:337](../../../../../../../julep/api/types/tasks_create_task_request_main_item.py#L337)
-
-#### Signature
-
-```python
-class TasksCreateTaskRequestMainItem_Set(pydantic_v1.BaseModel): ...
-```
-
-### TasksCreateTaskRequestMainItem_Set().dict
-
-[Show source in tasks_create_task_request_main_item.py:349](../../../../../../../julep/api/types/tasks_create_task_request_main_item.py#L349)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksCreateTaskRequestMainItem_Set().json
-
-[Show source in tasks_create_task_request_main_item.py:341](../../../../../../../julep/api/types/tasks_create_task_request_main_item.py#L341)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksCreateTaskRequestMainItem_Sleep
-
-[Show source in tasks_create_task_request_main_item.py:223](../../../../../../../julep/api/types/tasks_create_task_request_main_item.py#L223)
-
-#### Signature
-
-```python
-class TasksCreateTaskRequestMainItem_Sleep(pydantic_v1.BaseModel): ...
-```
-
-### TasksCreateTaskRequestMainItem_Sleep().dict
-
-[Show source in tasks_create_task_request_main_item.py:235](../../../../../../../julep/api/types/tasks_create_task_request_main_item.py#L235)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksCreateTaskRequestMainItem_Sleep().json
-
-[Show source in tasks_create_task_request_main_item.py:227](../../../../../../../julep/api/types/tasks_create_task_request_main_item.py#L227)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksCreateTaskRequestMainItem_Switch
-
-[Show source in tasks_create_task_request_main_item.py:571](../../../../../../../julep/api/types/tasks_create_task_request_main_item.py#L571)
-
-#### Signature
-
-```python
-class TasksCreateTaskRequestMainItem_Switch(pydantic_v1.BaseModel): ...
-```
-
-### TasksCreateTaskRequestMainItem_Switch().dict
-
-[Show source in tasks_create_task_request_main_item.py:583](../../../../../../../julep/api/types/tasks_create_task_request_main_item.py#L583)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksCreateTaskRequestMainItem_Switch().json
-
-[Show source in tasks_create_task_request_main_item.py:575](../../../../../../../julep/api/types/tasks_create_task_request_main_item.py#L575)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksCreateTaskRequestMainItem_ToolCall
-
-[Show source in tasks_create_task_request_main_item.py:66](../../../../../../../julep/api/types/tasks_create_task_request_main_item.py#L66)
-
-#### Signature
-
-```python
-class TasksCreateTaskRequestMainItem_ToolCall(pydantic_v1.BaseModel): ...
-```
-
-### TasksCreateTaskRequestMainItem_ToolCall().dict
-
-[Show source in tasks_create_task_request_main_item.py:81](../../../../../../../julep/api/types/tasks_create_task_request_main_item.py#L81)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksCreateTaskRequestMainItem_ToolCall().json
-
-[Show source in tasks_create_task_request_main_item.py:73](../../../../../../../julep/api/types/tasks_create_task_request_main_item.py#L73)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksCreateTaskRequestMainItem_WaitForInput
-
-[Show source in tasks_create_task_request_main_item.py:489](../../../../../../../julep/api/types/tasks_create_task_request_main_item.py#L489)
-
-#### Signature
-
-```python
-class TasksCreateTaskRequestMainItem_WaitForInput(pydantic_v1.BaseModel): ...
-```
-
-### TasksCreateTaskRequestMainItem_WaitForInput().dict
-
-[Show source in tasks_create_task_request_main_item.py:503](../../../../../../../julep/api/types/tasks_create_task_request_main_item.py#L503)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksCreateTaskRequestMainItem_WaitForInput().json
-
-[Show source in tasks_create_task_request_main_item.py:495](../../../../../../../julep/api/types/tasks_create_task_request_main_item.py#L495)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksCreateTaskRequestMainItem_Yield
-
-[Show source in tasks_create_task_request_main_item.py:107](../../../../../../../julep/api/types/tasks_create_task_request_main_item.py#L107)
-
-#### Signature
-
-```python
-class TasksCreateTaskRequestMainItem_Yield(pydantic_v1.BaseModel): ...
-```
-
-### TasksCreateTaskRequestMainItem_Yield().dict
-
-[Show source in tasks_create_task_request_main_item.py:120](../../../../../../../julep/api/types/tasks_create_task_request_main_item.py#L120)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksCreateTaskRequestMainItem_Yield().json
-
-[Show source in tasks_create_task_request_main_item.py:112](../../../../../../../julep/api/types/tasks_create_task_request_main_item.py#L112)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/tasks_embed_step.md b/docs/python-sdk-docs/julep/api/types/tasks_embed_step.md
deleted file mode 100644
index af18dfe3b..000000000
--- a/docs/python-sdk-docs/julep/api/types/tasks_embed_step.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# TasksEmbedStep
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / TasksEmbedStep
-
-> Auto-generated documentation for [julep.api.types.tasks_embed_step](../../../../../../../julep/api/types/tasks_embed_step.py) module.
-
-- [TasksEmbedStep](#tasksembedstep)
- - [TasksEmbedStep](#tasksembedstep-1)
-
-## TasksEmbedStep
-
-[Show source in tasks_embed_step.py:11](../../../../../../../julep/api/types/tasks_embed_step.py#L11)
-
-#### Signature
-
-```python
-class TasksEmbedStep(pydantic_v1.BaseModel): ...
-```
-
-### TasksEmbedStep().dict
-
-[Show source in tasks_embed_step.py:25](../../../../../../../julep/api/types/tasks_embed_step.py#L25)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksEmbedStep().json
-
-[Show source in tasks_embed_step.py:17](../../../../../../../julep/api/types/tasks_embed_step.py#L17)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/tasks_error_workflow_step.md b/docs/python-sdk-docs/julep/api/types/tasks_error_workflow_step.md
deleted file mode 100644
index 457cc00b6..000000000
--- a/docs/python-sdk-docs/julep/api/types/tasks_error_workflow_step.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# TasksErrorWorkflowStep
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / TasksErrorWorkflowStep
-
-> Auto-generated documentation for [julep.api.types.tasks_error_workflow_step](../../../../../../../julep/api/types/tasks_error_workflow_step.py) module.
-
-- [TasksErrorWorkflowStep](#taskserrorworkflowstep)
- - [TasksErrorWorkflowStep](#taskserrorworkflowstep-1)
-
-## TasksErrorWorkflowStep
-
-[Show source in tasks_error_workflow_step.py:10](../../../../../../../julep/api/types/tasks_error_workflow_step.py#L10)
-
-#### Signature
-
-```python
-class TasksErrorWorkflowStep(pydantic_v1.BaseModel): ...
-```
-
-### TasksErrorWorkflowStep().dict
-
-[Show source in tasks_error_workflow_step.py:24](../../../../../../../julep/api/types/tasks_error_workflow_step.py#L24)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksErrorWorkflowStep().json
-
-[Show source in tasks_error_workflow_step.py:16](../../../../../../../julep/api/types/tasks_error_workflow_step.py#L16)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/tasks_evaluate_step.md b/docs/python-sdk-docs/julep/api/types/tasks_evaluate_step.md
deleted file mode 100644
index cc9d0b45e..000000000
--- a/docs/python-sdk-docs/julep/api/types/tasks_evaluate_step.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# TasksEvaluateStep
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / TasksEvaluateStep
-
-> Auto-generated documentation for [julep.api.types.tasks_evaluate_step](../../../../../../../julep/api/types/tasks_evaluate_step.py) module.
-
-- [TasksEvaluateStep](#tasksevaluatestep)
- - [TasksEvaluateStep](#tasksevaluatestep-1)
-
-## TasksEvaluateStep
-
-[Show source in tasks_evaluate_step.py:11](../../../../../../../julep/api/types/tasks_evaluate_step.py#L11)
-
-#### Signature
-
-```python
-class TasksEvaluateStep(pydantic_v1.BaseModel): ...
-```
-
-### TasksEvaluateStep().dict
-
-[Show source in tasks_evaluate_step.py:25](../../../../../../../julep/api/types/tasks_evaluate_step.py#L25)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksEvaluateStep().json
-
-[Show source in tasks_evaluate_step.py:17](../../../../../../../julep/api/types/tasks_evaluate_step.py#L17)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/tasks_foreach_do.md b/docs/python-sdk-docs/julep/api/types/tasks_foreach_do.md
deleted file mode 100644
index 29730240e..000000000
--- a/docs/python-sdk-docs/julep/api/types/tasks_foreach_do.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# TasksForeachDo
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / TasksForeachDo
-
-> Auto-generated documentation for [julep.api.types.tasks_foreach_do](../../../../../../../julep/api/types/tasks_foreach_do.py) module.
-
-- [TasksForeachDo](#tasksforeachdo)
- - [TasksForeachDo](#tasksforeachdo-1)
-
-## TasksForeachDo
-
-[Show source in tasks_foreach_do.py:12](../../../../../../../julep/api/types/tasks_foreach_do.py#L12)
-
-#### Signature
-
-```python
-class TasksForeachDo(pydantic_v1.BaseModel): ...
-```
-
-### TasksForeachDo().dict
-
-[Show source in tasks_foreach_do.py:31](../../../../../../../julep/api/types/tasks_foreach_do.py#L31)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksForeachDo().json
-
-[Show source in tasks_foreach_do.py:23](../../../../../../../julep/api/types/tasks_foreach_do.py#L23)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/tasks_foreach_do_do.md b/docs/python-sdk-docs/julep/api/types/tasks_foreach_do_do.md
deleted file mode 100644
index 729006800..000000000
--- a/docs/python-sdk-docs/julep/api/types/tasks_foreach_do_do.md
+++ /dev/null
@@ -1,460 +0,0 @@
-# Tasks Foreach Do Do
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / Tasks Foreach Do Do
-
-> Auto-generated documentation for [julep.api.types.tasks_foreach_do_do](../../../../../../../julep/api/types/tasks_foreach_do_do.py) module.
-
-- [Tasks Foreach Do Do](#tasks-foreach-do-do)
- - [TasksForeachDoDo_Embed](#tasksforeachdodo_embed)
- - [TasksForeachDoDo_Error](#tasksforeachdodo_error)
- - [TasksForeachDoDo_Evaluate](#tasksforeachdodo_evaluate)
- - [TasksForeachDoDo_Get](#tasksforeachdodo_get)
- - [TasksForeachDoDo_Log](#tasksforeachdodo_log)
- - [TasksForeachDoDo_Prompt](#tasksforeachdodo_prompt)
- - [TasksForeachDoDo_Return](#tasksforeachdodo_return)
- - [TasksForeachDoDo_Search](#tasksforeachdodo_search)
- - [TasksForeachDoDo_Set](#tasksforeachdodo_set)
- - [TasksForeachDoDo_Sleep](#tasksforeachdodo_sleep)
- - [TasksForeachDoDo_ToolCall](#tasksforeachdodo_toolcall)
- - [TasksForeachDoDo_WaitForInput](#tasksforeachdodo_waitforinput)
- - [TasksForeachDoDo_Yield](#tasksforeachdodo_yield)
-
-## TasksForeachDoDo_Embed
-
-[Show source in tasks_foreach_do_do.py:447](../../../../../../../julep/api/types/tasks_foreach_do_do.py#L447)
-
-The steps to run for each iteration
-
-#### Signature
-
-```python
-class TasksForeachDoDo_Embed(pydantic_v1.BaseModel): ...
-```
-
-### TasksForeachDoDo_Embed().dict
-
-[Show source in tasks_foreach_do_do.py:463](../../../../../../../julep/api/types/tasks_foreach_do_do.py#L463)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksForeachDoDo_Embed().json
-
-[Show source in tasks_foreach_do_do.py:455](../../../../../../../julep/api/types/tasks_foreach_do_do.py#L455)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksForeachDoDo_Error
-
-[Show source in tasks_foreach_do_do.py:195](../../../../../../../julep/api/types/tasks_foreach_do_do.py#L195)
-
-The steps to run for each iteration
-
-#### Signature
-
-```python
-class TasksForeachDoDo_Error(pydantic_v1.BaseModel): ...
-```
-
-### TasksForeachDoDo_Error().dict
-
-[Show source in tasks_foreach_do_do.py:211](../../../../../../../julep/api/types/tasks_foreach_do_do.py#L211)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksForeachDoDo_Error().json
-
-[Show source in tasks_foreach_do_do.py:203](../../../../../../../julep/api/types/tasks_foreach_do_do.py#L203)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksForeachDoDo_Evaluate
-
-[Show source in tasks_foreach_do_do.py:20](../../../../../../../julep/api/types/tasks_foreach_do_do.py#L20)
-
-The steps to run for each iteration
-
-#### Signature
-
-```python
-class TasksForeachDoDo_Evaluate(pydantic_v1.BaseModel): ...
-```
-
-### TasksForeachDoDo_Evaluate().dict
-
-[Show source in tasks_foreach_do_do.py:38](../../../../../../../julep/api/types/tasks_foreach_do_do.py#L38)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksForeachDoDo_Evaluate().json
-
-[Show source in tasks_foreach_do_do.py:30](../../../../../../../julep/api/types/tasks_foreach_do_do.py#L30)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksForeachDoDo_Get
-
-[Show source in tasks_foreach_do_do.py:321](../../../../../../../julep/api/types/tasks_foreach_do_do.py#L321)
-
-The steps to run for each iteration
-
-#### Signature
-
-```python
-class TasksForeachDoDo_Get(pydantic_v1.BaseModel): ...
-```
-
-### TasksForeachDoDo_Get().dict
-
-[Show source in tasks_foreach_do_do.py:337](../../../../../../../julep/api/types/tasks_foreach_do_do.py#L337)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksForeachDoDo_Get().json
-
-[Show source in tasks_foreach_do_do.py:329](../../../../../../../julep/api/types/tasks_foreach_do_do.py#L329)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksForeachDoDo_Log
-
-[Show source in tasks_foreach_do_do.py:405](../../../../../../../julep/api/types/tasks_foreach_do_do.py#L405)
-
-The steps to run for each iteration
-
-#### Signature
-
-```python
-class TasksForeachDoDo_Log(pydantic_v1.BaseModel): ...
-```
-
-### TasksForeachDoDo_Log().dict
-
-[Show source in tasks_foreach_do_do.py:421](../../../../../../../julep/api/types/tasks_foreach_do_do.py#L421)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksForeachDoDo_Log().json
-
-[Show source in tasks_foreach_do_do.py:413](../../../../../../../julep/api/types/tasks_foreach_do_do.py#L413)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksForeachDoDo_Prompt
-
-[Show source in tasks_foreach_do_do.py:152](../../../../../../../julep/api/types/tasks_foreach_do_do.py#L152)
-
-The steps to run for each iteration
-
-#### Signature
-
-```python
-class TasksForeachDoDo_Prompt(pydantic_v1.BaseModel): ...
-```
-
-### TasksForeachDoDo_Prompt().dict
-
-[Show source in tasks_foreach_do_do.py:169](../../../../../../../julep/api/types/tasks_foreach_do_do.py#L169)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksForeachDoDo_Prompt().json
-
-[Show source in tasks_foreach_do_do.py:161](../../../../../../../julep/api/types/tasks_foreach_do_do.py#L161)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksForeachDoDo_Return
-
-[Show source in tasks_foreach_do_do.py:279](../../../../../../../julep/api/types/tasks_foreach_do_do.py#L279)
-
-The steps to run for each iteration
-
-#### Signature
-
-```python
-class TasksForeachDoDo_Return(pydantic_v1.BaseModel): ...
-```
-
-### TasksForeachDoDo_Return().dict
-
-[Show source in tasks_foreach_do_do.py:295](../../../../../../../julep/api/types/tasks_foreach_do_do.py#L295)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksForeachDoDo_Return().json
-
-[Show source in tasks_foreach_do_do.py:287](../../../../../../../julep/api/types/tasks_foreach_do_do.py#L287)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksForeachDoDo_Search
-
-[Show source in tasks_foreach_do_do.py:489](../../../../../../../julep/api/types/tasks_foreach_do_do.py#L489)
-
-The steps to run for each iteration
-
-#### Signature
-
-```python
-class TasksForeachDoDo_Search(pydantic_v1.BaseModel): ...
-```
-
-### TasksForeachDoDo_Search().dict
-
-[Show source in tasks_foreach_do_do.py:505](../../../../../../../julep/api/types/tasks_foreach_do_do.py#L505)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksForeachDoDo_Search().json
-
-[Show source in tasks_foreach_do_do.py:497](../../../../../../../julep/api/types/tasks_foreach_do_do.py#L497)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksForeachDoDo_Set
-
-[Show source in tasks_foreach_do_do.py:363](../../../../../../../julep/api/types/tasks_foreach_do_do.py#L363)
-
-The steps to run for each iteration
-
-#### Signature
-
-```python
-class TasksForeachDoDo_Set(pydantic_v1.BaseModel): ...
-```
-
-### TasksForeachDoDo_Set().dict
-
-[Show source in tasks_foreach_do_do.py:379](../../../../../../../julep/api/types/tasks_foreach_do_do.py#L379)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksForeachDoDo_Set().json
-
-[Show source in tasks_foreach_do_do.py:371](../../../../../../../julep/api/types/tasks_foreach_do_do.py#L371)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksForeachDoDo_Sleep
-
-[Show source in tasks_foreach_do_do.py:237](../../../../../../../julep/api/types/tasks_foreach_do_do.py#L237)
-
-The steps to run for each iteration
-
-#### Signature
-
-```python
-class TasksForeachDoDo_Sleep(pydantic_v1.BaseModel): ...
-```
-
-### TasksForeachDoDo_Sleep().dict
-
-[Show source in tasks_foreach_do_do.py:253](../../../../../../../julep/api/types/tasks_foreach_do_do.py#L253)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksForeachDoDo_Sleep().json
-
-[Show source in tasks_foreach_do_do.py:245](../../../../../../../julep/api/types/tasks_foreach_do_do.py#L245)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksForeachDoDo_ToolCall
-
-[Show source in tasks_foreach_do_do.py:64](../../../../../../../julep/api/types/tasks_foreach_do_do.py#L64)
-
-The steps to run for each iteration
-
-#### Signature
-
-```python
-class TasksForeachDoDo_ToolCall(pydantic_v1.BaseModel): ...
-```
-
-### TasksForeachDoDo_ToolCall().dict
-
-[Show source in tasks_foreach_do_do.py:83](../../../../../../../julep/api/types/tasks_foreach_do_do.py#L83)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksForeachDoDo_ToolCall().json
-
-[Show source in tasks_foreach_do_do.py:75](../../../../../../../julep/api/types/tasks_foreach_do_do.py#L75)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksForeachDoDo_WaitForInput
-
-[Show source in tasks_foreach_do_do.py:531](../../../../../../../julep/api/types/tasks_foreach_do_do.py#L531)
-
-The steps to run for each iteration
-
-#### Signature
-
-```python
-class TasksForeachDoDo_WaitForInput(pydantic_v1.BaseModel): ...
-```
-
-### TasksForeachDoDo_WaitForInput().dict
-
-[Show source in tasks_foreach_do_do.py:549](../../../../../../../julep/api/types/tasks_foreach_do_do.py#L549)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksForeachDoDo_WaitForInput().json
-
-[Show source in tasks_foreach_do_do.py:541](../../../../../../../julep/api/types/tasks_foreach_do_do.py#L541)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksForeachDoDo_Yield
-
-[Show source in tasks_foreach_do_do.py:109](../../../../../../../julep/api/types/tasks_foreach_do_do.py#L109)
-
-The steps to run for each iteration
-
-#### Signature
-
-```python
-class TasksForeachDoDo_Yield(pydantic_v1.BaseModel): ...
-```
-
-### TasksForeachDoDo_Yield().dict
-
-[Show source in tasks_foreach_do_do.py:126](../../../../../../../julep/api/types/tasks_foreach_do_do.py#L126)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksForeachDoDo_Yield().json
-
-[Show source in tasks_foreach_do_do.py:118](../../../../../../../julep/api/types/tasks_foreach_do_do.py#L118)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/tasks_foreach_step.md b/docs/python-sdk-docs/julep/api/types/tasks_foreach_step.md
deleted file mode 100644
index 563f1c526..000000000
--- a/docs/python-sdk-docs/julep/api/types/tasks_foreach_step.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# TasksForeachStep
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / TasksForeachStep
-
-> Auto-generated documentation for [julep.api.types.tasks_foreach_step](../../../../../../../julep/api/types/tasks_foreach_step.py) module.
-
-- [TasksForeachStep](#tasksforeachstep)
- - [TasksForeachStep](#tasksforeachstep-1)
-
-## TasksForeachStep
-
-[Show source in tasks_foreach_step.py:11](../../../../../../../julep/api/types/tasks_foreach_step.py#L11)
-
-#### Signature
-
-```python
-class TasksForeachStep(pydantic_v1.BaseModel): ...
-```
-
-### TasksForeachStep().dict
-
-[Show source in tasks_foreach_step.py:25](../../../../../../../julep/api/types/tasks_foreach_step.py#L25)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksForeachStep().json
-
-[Show source in tasks_foreach_step.py:17](../../../../../../../julep/api/types/tasks_foreach_step.py#L17)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/tasks_get_step.md b/docs/python-sdk-docs/julep/api/types/tasks_get_step.md
deleted file mode 100644
index 0bda9cb54..000000000
--- a/docs/python-sdk-docs/julep/api/types/tasks_get_step.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# TasksGetStep
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / TasksGetStep
-
-> Auto-generated documentation for [julep.api.types.tasks_get_step](../../../../../../../julep/api/types/tasks_get_step.py) module.
-
-- [TasksGetStep](#tasksgetstep)
- - [TasksGetStep](#tasksgetstep-1)
-
-## TasksGetStep
-
-[Show source in tasks_get_step.py:10](../../../../../../../julep/api/types/tasks_get_step.py#L10)
-
-#### Signature
-
-```python
-class TasksGetStep(pydantic_v1.BaseModel): ...
-```
-
-### TasksGetStep().dict
-
-[Show source in tasks_get_step.py:24](../../../../../../../julep/api/types/tasks_get_step.py#L24)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksGetStep().json
-
-[Show source in tasks_get_step.py:16](../../../../../../../julep/api/types/tasks_get_step.py#L16)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/tasks_if_else_workflow_step.md b/docs/python-sdk-docs/julep/api/types/tasks_if_else_workflow_step.md
deleted file mode 100644
index 27aa1d222..000000000
--- a/docs/python-sdk-docs/julep/api/types/tasks_if_else_workflow_step.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# TasksIfElseWorkflowStep
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / TasksIfElseWorkflowStep
-
-> Auto-generated documentation for [julep.api.types.tasks_if_else_workflow_step](../../../../../../../julep/api/types/tasks_if_else_workflow_step.py) module.
-
-- [TasksIfElseWorkflowStep](#tasksifelseworkflowstep)
- - [TasksIfElseWorkflowStep](#tasksifelseworkflowstep-1)
-
-## TasksIfElseWorkflowStep
-
-[Show source in tasks_if_else_workflow_step.py:13](../../../../../../../julep/api/types/tasks_if_else_workflow_step.py#L13)
-
-#### Signature
-
-```python
-class TasksIfElseWorkflowStep(pydantic_v1.BaseModel): ...
-```
-
-### TasksIfElseWorkflowStep().dict
-
-[Show source in tasks_if_else_workflow_step.py:37](../../../../../../../julep/api/types/tasks_if_else_workflow_step.py#L37)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksIfElseWorkflowStep().json
-
-[Show source in tasks_if_else_workflow_step.py:29](../../../../../../../julep/api/types/tasks_if_else_workflow_step.py#L29)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/tasks_if_else_workflow_step_else.md b/docs/python-sdk-docs/julep/api/types/tasks_if_else_workflow_step_else.md
deleted file mode 100644
index e3928449c..000000000
--- a/docs/python-sdk-docs/julep/api/types/tasks_if_else_workflow_step_else.md
+++ /dev/null
@@ -1,460 +0,0 @@
-# Tasks If Else Workflow Step Else
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / Tasks If Else Workflow Step Else
-
-> Auto-generated documentation for [julep.api.types.tasks_if_else_workflow_step_else](../../../../../../../julep/api/types/tasks_if_else_workflow_step_else.py) module.
-
-- [Tasks If Else Workflow Step Else](#tasks-if-else-workflow-step-else)
- - [TasksIfElseWorkflowStepElse_Embed](#tasksifelseworkflowstepelse_embed)
- - [TasksIfElseWorkflowStepElse_Error](#tasksifelseworkflowstepelse_error)
- - [TasksIfElseWorkflowStepElse_Evaluate](#tasksifelseworkflowstepelse_evaluate)
- - [TasksIfElseWorkflowStepElse_Get](#tasksifelseworkflowstepelse_get)
- - [TasksIfElseWorkflowStepElse_Log](#tasksifelseworkflowstepelse_log)
- - [TasksIfElseWorkflowStepElse_Prompt](#tasksifelseworkflowstepelse_prompt)
- - [TasksIfElseWorkflowStepElse_Return](#tasksifelseworkflowstepelse_return)
- - [TasksIfElseWorkflowStepElse_Search](#tasksifelseworkflowstepelse_search)
- - [TasksIfElseWorkflowStepElse_Set](#tasksifelseworkflowstepelse_set)
- - [TasksIfElseWorkflowStepElse_Sleep](#tasksifelseworkflowstepelse_sleep)
- - [TasksIfElseWorkflowStepElse_ToolCall](#tasksifelseworkflowstepelse_toolcall)
- - [TasksIfElseWorkflowStepElse_WaitForInput](#tasksifelseworkflowstepelse_waitforinput)
- - [TasksIfElseWorkflowStepElse_Yield](#tasksifelseworkflowstepelse_yield)
-
-## TasksIfElseWorkflowStepElse_Embed
-
-[Show source in tasks_if_else_workflow_step_else.py:447](../../../../../../../julep/api/types/tasks_if_else_workflow_step_else.py#L447)
-
-The steps to run if the condition is false
-
-#### Signature
-
-```python
-class TasksIfElseWorkflowStepElse_Embed(pydantic_v1.BaseModel): ...
-```
-
-### TasksIfElseWorkflowStepElse_Embed().dict
-
-[Show source in tasks_if_else_workflow_step_else.py:463](../../../../../../../julep/api/types/tasks_if_else_workflow_step_else.py#L463)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksIfElseWorkflowStepElse_Embed().json
-
-[Show source in tasks_if_else_workflow_step_else.py:455](../../../../../../../julep/api/types/tasks_if_else_workflow_step_else.py#L455)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksIfElseWorkflowStepElse_Error
-
-[Show source in tasks_if_else_workflow_step_else.py:195](../../../../../../../julep/api/types/tasks_if_else_workflow_step_else.py#L195)
-
-The steps to run if the condition is false
-
-#### Signature
-
-```python
-class TasksIfElseWorkflowStepElse_Error(pydantic_v1.BaseModel): ...
-```
-
-### TasksIfElseWorkflowStepElse_Error().dict
-
-[Show source in tasks_if_else_workflow_step_else.py:211](../../../../../../../julep/api/types/tasks_if_else_workflow_step_else.py#L211)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksIfElseWorkflowStepElse_Error().json
-
-[Show source in tasks_if_else_workflow_step_else.py:203](../../../../../../../julep/api/types/tasks_if_else_workflow_step_else.py#L203)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksIfElseWorkflowStepElse_Evaluate
-
-[Show source in tasks_if_else_workflow_step_else.py:20](../../../../../../../julep/api/types/tasks_if_else_workflow_step_else.py#L20)
-
-The steps to run if the condition is false
-
-#### Signature
-
-```python
-class TasksIfElseWorkflowStepElse_Evaluate(pydantic_v1.BaseModel): ...
-```
-
-### TasksIfElseWorkflowStepElse_Evaluate().dict
-
-[Show source in tasks_if_else_workflow_step_else.py:38](../../../../../../../julep/api/types/tasks_if_else_workflow_step_else.py#L38)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksIfElseWorkflowStepElse_Evaluate().json
-
-[Show source in tasks_if_else_workflow_step_else.py:30](../../../../../../../julep/api/types/tasks_if_else_workflow_step_else.py#L30)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksIfElseWorkflowStepElse_Get
-
-[Show source in tasks_if_else_workflow_step_else.py:321](../../../../../../../julep/api/types/tasks_if_else_workflow_step_else.py#L321)
-
-The steps to run if the condition is false
-
-#### Signature
-
-```python
-class TasksIfElseWorkflowStepElse_Get(pydantic_v1.BaseModel): ...
-```
-
-### TasksIfElseWorkflowStepElse_Get().dict
-
-[Show source in tasks_if_else_workflow_step_else.py:337](../../../../../../../julep/api/types/tasks_if_else_workflow_step_else.py#L337)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksIfElseWorkflowStepElse_Get().json
-
-[Show source in tasks_if_else_workflow_step_else.py:329](../../../../../../../julep/api/types/tasks_if_else_workflow_step_else.py#L329)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksIfElseWorkflowStepElse_Log
-
-[Show source in tasks_if_else_workflow_step_else.py:405](../../../../../../../julep/api/types/tasks_if_else_workflow_step_else.py#L405)
-
-The steps to run if the condition is false
-
-#### Signature
-
-```python
-class TasksIfElseWorkflowStepElse_Log(pydantic_v1.BaseModel): ...
-```
-
-### TasksIfElseWorkflowStepElse_Log().dict
-
-[Show source in tasks_if_else_workflow_step_else.py:421](../../../../../../../julep/api/types/tasks_if_else_workflow_step_else.py#L421)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksIfElseWorkflowStepElse_Log().json
-
-[Show source in tasks_if_else_workflow_step_else.py:413](../../../../../../../julep/api/types/tasks_if_else_workflow_step_else.py#L413)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksIfElseWorkflowStepElse_Prompt
-
-[Show source in tasks_if_else_workflow_step_else.py:152](../../../../../../../julep/api/types/tasks_if_else_workflow_step_else.py#L152)
-
-The steps to run if the condition is false
-
-#### Signature
-
-```python
-class TasksIfElseWorkflowStepElse_Prompt(pydantic_v1.BaseModel): ...
-```
-
-### TasksIfElseWorkflowStepElse_Prompt().dict
-
-[Show source in tasks_if_else_workflow_step_else.py:169](../../../../../../../julep/api/types/tasks_if_else_workflow_step_else.py#L169)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksIfElseWorkflowStepElse_Prompt().json
-
-[Show source in tasks_if_else_workflow_step_else.py:161](../../../../../../../julep/api/types/tasks_if_else_workflow_step_else.py#L161)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksIfElseWorkflowStepElse_Return
-
-[Show source in tasks_if_else_workflow_step_else.py:279](../../../../../../../julep/api/types/tasks_if_else_workflow_step_else.py#L279)
-
-The steps to run if the condition is false
-
-#### Signature
-
-```python
-class TasksIfElseWorkflowStepElse_Return(pydantic_v1.BaseModel): ...
-```
-
-### TasksIfElseWorkflowStepElse_Return().dict
-
-[Show source in tasks_if_else_workflow_step_else.py:295](../../../../../../../julep/api/types/tasks_if_else_workflow_step_else.py#L295)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksIfElseWorkflowStepElse_Return().json
-
-[Show source in tasks_if_else_workflow_step_else.py:287](../../../../../../../julep/api/types/tasks_if_else_workflow_step_else.py#L287)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksIfElseWorkflowStepElse_Search
-
-[Show source in tasks_if_else_workflow_step_else.py:489](../../../../../../../julep/api/types/tasks_if_else_workflow_step_else.py#L489)
-
-The steps to run if the condition is false
-
-#### Signature
-
-```python
-class TasksIfElseWorkflowStepElse_Search(pydantic_v1.BaseModel): ...
-```
-
-### TasksIfElseWorkflowStepElse_Search().dict
-
-[Show source in tasks_if_else_workflow_step_else.py:505](../../../../../../../julep/api/types/tasks_if_else_workflow_step_else.py#L505)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksIfElseWorkflowStepElse_Search().json
-
-[Show source in tasks_if_else_workflow_step_else.py:497](../../../../../../../julep/api/types/tasks_if_else_workflow_step_else.py#L497)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksIfElseWorkflowStepElse_Set
-
-[Show source in tasks_if_else_workflow_step_else.py:363](../../../../../../../julep/api/types/tasks_if_else_workflow_step_else.py#L363)
-
-The steps to run if the condition is false
-
-#### Signature
-
-```python
-class TasksIfElseWorkflowStepElse_Set(pydantic_v1.BaseModel): ...
-```
-
-### TasksIfElseWorkflowStepElse_Set().dict
-
-[Show source in tasks_if_else_workflow_step_else.py:379](../../../../../../../julep/api/types/tasks_if_else_workflow_step_else.py#L379)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksIfElseWorkflowStepElse_Set().json
-
-[Show source in tasks_if_else_workflow_step_else.py:371](../../../../../../../julep/api/types/tasks_if_else_workflow_step_else.py#L371)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksIfElseWorkflowStepElse_Sleep
-
-[Show source in tasks_if_else_workflow_step_else.py:237](../../../../../../../julep/api/types/tasks_if_else_workflow_step_else.py#L237)
-
-The steps to run if the condition is false
-
-#### Signature
-
-```python
-class TasksIfElseWorkflowStepElse_Sleep(pydantic_v1.BaseModel): ...
-```
-
-### TasksIfElseWorkflowStepElse_Sleep().dict
-
-[Show source in tasks_if_else_workflow_step_else.py:253](../../../../../../../julep/api/types/tasks_if_else_workflow_step_else.py#L253)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksIfElseWorkflowStepElse_Sleep().json
-
-[Show source in tasks_if_else_workflow_step_else.py:245](../../../../../../../julep/api/types/tasks_if_else_workflow_step_else.py#L245)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksIfElseWorkflowStepElse_ToolCall
-
-[Show source in tasks_if_else_workflow_step_else.py:64](../../../../../../../julep/api/types/tasks_if_else_workflow_step_else.py#L64)
-
-The steps to run if the condition is false
-
-#### Signature
-
-```python
-class TasksIfElseWorkflowStepElse_ToolCall(pydantic_v1.BaseModel): ...
-```
-
-### TasksIfElseWorkflowStepElse_ToolCall().dict
-
-[Show source in tasks_if_else_workflow_step_else.py:83](../../../../../../../julep/api/types/tasks_if_else_workflow_step_else.py#L83)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksIfElseWorkflowStepElse_ToolCall().json
-
-[Show source in tasks_if_else_workflow_step_else.py:75](../../../../../../../julep/api/types/tasks_if_else_workflow_step_else.py#L75)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksIfElseWorkflowStepElse_WaitForInput
-
-[Show source in tasks_if_else_workflow_step_else.py:531](../../../../../../../julep/api/types/tasks_if_else_workflow_step_else.py#L531)
-
-The steps to run if the condition is false
-
-#### Signature
-
-```python
-class TasksIfElseWorkflowStepElse_WaitForInput(pydantic_v1.BaseModel): ...
-```
-
-### TasksIfElseWorkflowStepElse_WaitForInput().dict
-
-[Show source in tasks_if_else_workflow_step_else.py:549](../../../../../../../julep/api/types/tasks_if_else_workflow_step_else.py#L549)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksIfElseWorkflowStepElse_WaitForInput().json
-
-[Show source in tasks_if_else_workflow_step_else.py:541](../../../../../../../julep/api/types/tasks_if_else_workflow_step_else.py#L541)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksIfElseWorkflowStepElse_Yield
-
-[Show source in tasks_if_else_workflow_step_else.py:109](../../../../../../../julep/api/types/tasks_if_else_workflow_step_else.py#L109)
-
-The steps to run if the condition is false
-
-#### Signature
-
-```python
-class TasksIfElseWorkflowStepElse_Yield(pydantic_v1.BaseModel): ...
-```
-
-### TasksIfElseWorkflowStepElse_Yield().dict
-
-[Show source in tasks_if_else_workflow_step_else.py:126](../../../../../../../julep/api/types/tasks_if_else_workflow_step_else.py#L126)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksIfElseWorkflowStepElse_Yield().json
-
-[Show source in tasks_if_else_workflow_step_else.py:118](../../../../../../../julep/api/types/tasks_if_else_workflow_step_else.py#L118)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/tasks_if_else_workflow_step_then.md b/docs/python-sdk-docs/julep/api/types/tasks_if_else_workflow_step_then.md
deleted file mode 100644
index 75ef5edf1..000000000
--- a/docs/python-sdk-docs/julep/api/types/tasks_if_else_workflow_step_then.md
+++ /dev/null
@@ -1,460 +0,0 @@
-# Tasks If Else Workflow Step Then
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / Tasks If Else Workflow Step Then
-
-> Auto-generated documentation for [julep.api.types.tasks_if_else_workflow_step_then](../../../../../../../julep/api/types/tasks_if_else_workflow_step_then.py) module.
-
-- [Tasks If Else Workflow Step Then](#tasks-if-else-workflow-step-then)
- - [TasksIfElseWorkflowStepThen_Embed](#tasksifelseworkflowstepthen_embed)
- - [TasksIfElseWorkflowStepThen_Error](#tasksifelseworkflowstepthen_error)
- - [TasksIfElseWorkflowStepThen_Evaluate](#tasksifelseworkflowstepthen_evaluate)
- - [TasksIfElseWorkflowStepThen_Get](#tasksifelseworkflowstepthen_get)
- - [TasksIfElseWorkflowStepThen_Log](#tasksifelseworkflowstepthen_log)
- - [TasksIfElseWorkflowStepThen_Prompt](#tasksifelseworkflowstepthen_prompt)
- - [TasksIfElseWorkflowStepThen_Return](#tasksifelseworkflowstepthen_return)
- - [TasksIfElseWorkflowStepThen_Search](#tasksifelseworkflowstepthen_search)
- - [TasksIfElseWorkflowStepThen_Set](#tasksifelseworkflowstepthen_set)
- - [TasksIfElseWorkflowStepThen_Sleep](#tasksifelseworkflowstepthen_sleep)
- - [TasksIfElseWorkflowStepThen_ToolCall](#tasksifelseworkflowstepthen_toolcall)
- - [TasksIfElseWorkflowStepThen_WaitForInput](#tasksifelseworkflowstepthen_waitforinput)
- - [TasksIfElseWorkflowStepThen_Yield](#tasksifelseworkflowstepthen_yield)
-
-## TasksIfElseWorkflowStepThen_Embed
-
-[Show source in tasks_if_else_workflow_step_then.py:447](../../../../../../../julep/api/types/tasks_if_else_workflow_step_then.py#L447)
-
-The steps to run if the condition is true
-
-#### Signature
-
-```python
-class TasksIfElseWorkflowStepThen_Embed(pydantic_v1.BaseModel): ...
-```
-
-### TasksIfElseWorkflowStepThen_Embed().dict
-
-[Show source in tasks_if_else_workflow_step_then.py:463](../../../../../../../julep/api/types/tasks_if_else_workflow_step_then.py#L463)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksIfElseWorkflowStepThen_Embed().json
-
-[Show source in tasks_if_else_workflow_step_then.py:455](../../../../../../../julep/api/types/tasks_if_else_workflow_step_then.py#L455)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksIfElseWorkflowStepThen_Error
-
-[Show source in tasks_if_else_workflow_step_then.py:195](../../../../../../../julep/api/types/tasks_if_else_workflow_step_then.py#L195)
-
-The steps to run if the condition is true
-
-#### Signature
-
-```python
-class TasksIfElseWorkflowStepThen_Error(pydantic_v1.BaseModel): ...
-```
-
-### TasksIfElseWorkflowStepThen_Error().dict
-
-[Show source in tasks_if_else_workflow_step_then.py:211](../../../../../../../julep/api/types/tasks_if_else_workflow_step_then.py#L211)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksIfElseWorkflowStepThen_Error().json
-
-[Show source in tasks_if_else_workflow_step_then.py:203](../../../../../../../julep/api/types/tasks_if_else_workflow_step_then.py#L203)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksIfElseWorkflowStepThen_Evaluate
-
-[Show source in tasks_if_else_workflow_step_then.py:20](../../../../../../../julep/api/types/tasks_if_else_workflow_step_then.py#L20)
-
-The steps to run if the condition is true
-
-#### Signature
-
-```python
-class TasksIfElseWorkflowStepThen_Evaluate(pydantic_v1.BaseModel): ...
-```
-
-### TasksIfElseWorkflowStepThen_Evaluate().dict
-
-[Show source in tasks_if_else_workflow_step_then.py:38](../../../../../../../julep/api/types/tasks_if_else_workflow_step_then.py#L38)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksIfElseWorkflowStepThen_Evaluate().json
-
-[Show source in tasks_if_else_workflow_step_then.py:30](../../../../../../../julep/api/types/tasks_if_else_workflow_step_then.py#L30)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksIfElseWorkflowStepThen_Get
-
-[Show source in tasks_if_else_workflow_step_then.py:321](../../../../../../../julep/api/types/tasks_if_else_workflow_step_then.py#L321)
-
-The steps to run if the condition is true
-
-#### Signature
-
-```python
-class TasksIfElseWorkflowStepThen_Get(pydantic_v1.BaseModel): ...
-```
-
-### TasksIfElseWorkflowStepThen_Get().dict
-
-[Show source in tasks_if_else_workflow_step_then.py:337](../../../../../../../julep/api/types/tasks_if_else_workflow_step_then.py#L337)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksIfElseWorkflowStepThen_Get().json
-
-[Show source in tasks_if_else_workflow_step_then.py:329](../../../../../../../julep/api/types/tasks_if_else_workflow_step_then.py#L329)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksIfElseWorkflowStepThen_Log
-
-[Show source in tasks_if_else_workflow_step_then.py:405](../../../../../../../julep/api/types/tasks_if_else_workflow_step_then.py#L405)
-
-The steps to run if the condition is true
-
-#### Signature
-
-```python
-class TasksIfElseWorkflowStepThen_Log(pydantic_v1.BaseModel): ...
-```
-
-### TasksIfElseWorkflowStepThen_Log().dict
-
-[Show source in tasks_if_else_workflow_step_then.py:421](../../../../../../../julep/api/types/tasks_if_else_workflow_step_then.py#L421)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksIfElseWorkflowStepThen_Log().json
-
-[Show source in tasks_if_else_workflow_step_then.py:413](../../../../../../../julep/api/types/tasks_if_else_workflow_step_then.py#L413)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksIfElseWorkflowStepThen_Prompt
-
-[Show source in tasks_if_else_workflow_step_then.py:152](../../../../../../../julep/api/types/tasks_if_else_workflow_step_then.py#L152)
-
-The steps to run if the condition is true
-
-#### Signature
-
-```python
-class TasksIfElseWorkflowStepThen_Prompt(pydantic_v1.BaseModel): ...
-```
-
-### TasksIfElseWorkflowStepThen_Prompt().dict
-
-[Show source in tasks_if_else_workflow_step_then.py:169](../../../../../../../julep/api/types/tasks_if_else_workflow_step_then.py#L169)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksIfElseWorkflowStepThen_Prompt().json
-
-[Show source in tasks_if_else_workflow_step_then.py:161](../../../../../../../julep/api/types/tasks_if_else_workflow_step_then.py#L161)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksIfElseWorkflowStepThen_Return
-
-[Show source in tasks_if_else_workflow_step_then.py:279](../../../../../../../julep/api/types/tasks_if_else_workflow_step_then.py#L279)
-
-The steps to run if the condition is true
-
-#### Signature
-
-```python
-class TasksIfElseWorkflowStepThen_Return(pydantic_v1.BaseModel): ...
-```
-
-### TasksIfElseWorkflowStepThen_Return().dict
-
-[Show source in tasks_if_else_workflow_step_then.py:295](../../../../../../../julep/api/types/tasks_if_else_workflow_step_then.py#L295)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksIfElseWorkflowStepThen_Return().json
-
-[Show source in tasks_if_else_workflow_step_then.py:287](../../../../../../../julep/api/types/tasks_if_else_workflow_step_then.py#L287)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksIfElseWorkflowStepThen_Search
-
-[Show source in tasks_if_else_workflow_step_then.py:489](../../../../../../../julep/api/types/tasks_if_else_workflow_step_then.py#L489)
-
-The steps to run if the condition is true
-
-#### Signature
-
-```python
-class TasksIfElseWorkflowStepThen_Search(pydantic_v1.BaseModel): ...
-```
-
-### TasksIfElseWorkflowStepThen_Search().dict
-
-[Show source in tasks_if_else_workflow_step_then.py:505](../../../../../../../julep/api/types/tasks_if_else_workflow_step_then.py#L505)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksIfElseWorkflowStepThen_Search().json
-
-[Show source in tasks_if_else_workflow_step_then.py:497](../../../../../../../julep/api/types/tasks_if_else_workflow_step_then.py#L497)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksIfElseWorkflowStepThen_Set
-
-[Show source in tasks_if_else_workflow_step_then.py:363](../../../../../../../julep/api/types/tasks_if_else_workflow_step_then.py#L363)
-
-The steps to run if the condition is true
-
-#### Signature
-
-```python
-class TasksIfElseWorkflowStepThen_Set(pydantic_v1.BaseModel): ...
-```
-
-### TasksIfElseWorkflowStepThen_Set().dict
-
-[Show source in tasks_if_else_workflow_step_then.py:379](../../../../../../../julep/api/types/tasks_if_else_workflow_step_then.py#L379)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksIfElseWorkflowStepThen_Set().json
-
-[Show source in tasks_if_else_workflow_step_then.py:371](../../../../../../../julep/api/types/tasks_if_else_workflow_step_then.py#L371)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksIfElseWorkflowStepThen_Sleep
-
-[Show source in tasks_if_else_workflow_step_then.py:237](../../../../../../../julep/api/types/tasks_if_else_workflow_step_then.py#L237)
-
-The steps to run if the condition is true
-
-#### Signature
-
-```python
-class TasksIfElseWorkflowStepThen_Sleep(pydantic_v1.BaseModel): ...
-```
-
-### TasksIfElseWorkflowStepThen_Sleep().dict
-
-[Show source in tasks_if_else_workflow_step_then.py:253](../../../../../../../julep/api/types/tasks_if_else_workflow_step_then.py#L253)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksIfElseWorkflowStepThen_Sleep().json
-
-[Show source in tasks_if_else_workflow_step_then.py:245](../../../../../../../julep/api/types/tasks_if_else_workflow_step_then.py#L245)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksIfElseWorkflowStepThen_ToolCall
-
-[Show source in tasks_if_else_workflow_step_then.py:64](../../../../../../../julep/api/types/tasks_if_else_workflow_step_then.py#L64)
-
-The steps to run if the condition is true
-
-#### Signature
-
-```python
-class TasksIfElseWorkflowStepThen_ToolCall(pydantic_v1.BaseModel): ...
-```
-
-### TasksIfElseWorkflowStepThen_ToolCall().dict
-
-[Show source in tasks_if_else_workflow_step_then.py:83](../../../../../../../julep/api/types/tasks_if_else_workflow_step_then.py#L83)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksIfElseWorkflowStepThen_ToolCall().json
-
-[Show source in tasks_if_else_workflow_step_then.py:75](../../../../../../../julep/api/types/tasks_if_else_workflow_step_then.py#L75)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksIfElseWorkflowStepThen_WaitForInput
-
-[Show source in tasks_if_else_workflow_step_then.py:531](../../../../../../../julep/api/types/tasks_if_else_workflow_step_then.py#L531)
-
-The steps to run if the condition is true
-
-#### Signature
-
-```python
-class TasksIfElseWorkflowStepThen_WaitForInput(pydantic_v1.BaseModel): ...
-```
-
-### TasksIfElseWorkflowStepThen_WaitForInput().dict
-
-[Show source in tasks_if_else_workflow_step_then.py:549](../../../../../../../julep/api/types/tasks_if_else_workflow_step_then.py#L549)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksIfElseWorkflowStepThen_WaitForInput().json
-
-[Show source in tasks_if_else_workflow_step_then.py:541](../../../../../../../julep/api/types/tasks_if_else_workflow_step_then.py#L541)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksIfElseWorkflowStepThen_Yield
-
-[Show source in tasks_if_else_workflow_step_then.py:109](../../../../../../../julep/api/types/tasks_if_else_workflow_step_then.py#L109)
-
-The steps to run if the condition is true
-
-#### Signature
-
-```python
-class TasksIfElseWorkflowStepThen_Yield(pydantic_v1.BaseModel): ...
-```
-
-### TasksIfElseWorkflowStepThen_Yield().dict
-
-[Show source in tasks_if_else_workflow_step_then.py:126](../../../../../../../julep/api/types/tasks_if_else_workflow_step_then.py#L126)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksIfElseWorkflowStepThen_Yield().json
-
-[Show source in tasks_if_else_workflow_step_then.py:118](../../../../../../../julep/api/types/tasks_if_else_workflow_step_then.py#L118)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/tasks_log_step.md b/docs/python-sdk-docs/julep/api/types/tasks_log_step.md
deleted file mode 100644
index 2ab4a3c39..000000000
--- a/docs/python-sdk-docs/julep/api/types/tasks_log_step.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# TasksLogStep
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / TasksLogStep
-
-> Auto-generated documentation for [julep.api.types.tasks_log_step](../../../../../../../julep/api/types/tasks_log_step.py) module.
-
-- [TasksLogStep](#taskslogstep)
- - [TasksLogStep](#taskslogstep-1)
-
-## TasksLogStep
-
-[Show source in tasks_log_step.py:11](../../../../../../../julep/api/types/tasks_log_step.py#L11)
-
-#### Signature
-
-```python
-class TasksLogStep(pydantic_v1.BaseModel): ...
-```
-
-### TasksLogStep().dict
-
-[Show source in tasks_log_step.py:25](../../../../../../../julep/api/types/tasks_log_step.py#L25)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksLogStep().json
-
-[Show source in tasks_log_step.py:17](../../../../../../../julep/api/types/tasks_log_step.py#L17)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/tasks_map_over.md b/docs/python-sdk-docs/julep/api/types/tasks_map_over.md
deleted file mode 100644
index af877ed87..000000000
--- a/docs/python-sdk-docs/julep/api/types/tasks_map_over.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# TasksMapOver
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / TasksMapOver
-
-> Auto-generated documentation for [julep.api.types.tasks_map_over](../../../../../../../julep/api/types/tasks_map_over.py) module.
-
-- [TasksMapOver](#tasksmapover)
- - [TasksMapOver](#tasksmapover-1)
-
-## TasksMapOver
-
-[Show source in tasks_map_over.py:11](../../../../../../../julep/api/types/tasks_map_over.py#L11)
-
-#### Signature
-
-```python
-class TasksMapOver(pydantic_v1.BaseModel): ...
-```
-
-### TasksMapOver().dict
-
-[Show source in tasks_map_over.py:30](../../../../../../../julep/api/types/tasks_map_over.py#L30)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksMapOver().json
-
-[Show source in tasks_map_over.py:22](../../../../../../../julep/api/types/tasks_map_over.py#L22)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/tasks_map_reduce_step.md b/docs/python-sdk-docs/julep/api/types/tasks_map_reduce_step.md
deleted file mode 100644
index 15fe7be42..000000000
--- a/docs/python-sdk-docs/julep/api/types/tasks_map_reduce_step.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# TasksMapReduceStep
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / TasksMapReduceStep
-
-> Auto-generated documentation for [julep.api.types.tasks_map_reduce_step](../../../../../../../julep/api/types/tasks_map_reduce_step.py) module.
-
-- [TasksMapReduceStep](#tasksmapreducestep)
- - [TasksMapReduceStep](#tasksmapreducestep-1)
-
-## TasksMapReduceStep
-
-[Show source in tasks_map_reduce_step.py:12](../../../../../../../julep/api/types/tasks_map_reduce_step.py#L12)
-
-#### Signature
-
-```python
-class TasksMapReduceStep(pydantic_v1.BaseModel): ...
-```
-
-### TasksMapReduceStep().dict
-
-[Show source in tasks_map_reduce_step.py:31](../../../../../../../julep/api/types/tasks_map_reduce_step.py#L31)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksMapReduceStep().json
-
-[Show source in tasks_map_reduce_step.py:23](../../../../../../../julep/api/types/tasks_map_reduce_step.py#L23)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/tasks_parallel_step.md b/docs/python-sdk-docs/julep/api/types/tasks_parallel_step.md
deleted file mode 100644
index 3c2c08d7d..000000000
--- a/docs/python-sdk-docs/julep/api/types/tasks_parallel_step.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# TasksParallelStep
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / TasksParallelStep
-
-> Auto-generated documentation for [julep.api.types.tasks_parallel_step](../../../../../../../julep/api/types/tasks_parallel_step.py) module.
-
-- [TasksParallelStep](#tasksparallelstep)
- - [TasksParallelStep](#tasksparallelstep-1)
-
-## TasksParallelStep
-
-[Show source in tasks_parallel_step.py:11](../../../../../../../julep/api/types/tasks_parallel_step.py#L11)
-
-#### Signature
-
-```python
-class TasksParallelStep(pydantic_v1.BaseModel): ...
-```
-
-### TasksParallelStep().dict
-
-[Show source in tasks_parallel_step.py:25](../../../../../../../julep/api/types/tasks_parallel_step.py#L25)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksParallelStep().json
-
-[Show source in tasks_parallel_step.py:17](../../../../../../../julep/api/types/tasks_parallel_step.py#L17)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/tasks_parallel_step_parallel_item.md b/docs/python-sdk-docs/julep/api/types/tasks_parallel_step_parallel_item.md
deleted file mode 100644
index 6ac00488b..000000000
--- a/docs/python-sdk-docs/julep/api/types/tasks_parallel_step_parallel_item.md
+++ /dev/null
@@ -1,434 +0,0 @@
-# Tasks Parallel Step Parallel Item
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / Tasks Parallel Step Parallel Item
-
-> Auto-generated documentation for [julep.api.types.tasks_parallel_step_parallel_item](../../../../../../../julep/api/types/tasks_parallel_step_parallel_item.py) module.
-
-- [Tasks Parallel Step Parallel Item](#tasks-parallel-step-parallel-item)
- - [TasksParallelStepParallelItem_Embed](#tasksparallelstepparallelitem_embed)
- - [TasksParallelStepParallelItem_Error](#tasksparallelstepparallelitem_error)
- - [TasksParallelStepParallelItem_Evaluate](#tasksparallelstepparallelitem_evaluate)
- - [TasksParallelStepParallelItem_Get](#tasksparallelstepparallelitem_get)
- - [TasksParallelStepParallelItem_Log](#tasksparallelstepparallelitem_log)
- - [TasksParallelStepParallelItem_Prompt](#tasksparallelstepparallelitem_prompt)
- - [TasksParallelStepParallelItem_Return](#tasksparallelstepparallelitem_return)
- - [TasksParallelStepParallelItem_Search](#tasksparallelstepparallelitem_search)
- - [TasksParallelStepParallelItem_Set](#tasksparallelstepparallelitem_set)
- - [TasksParallelStepParallelItem_Sleep](#tasksparallelstepparallelitem_sleep)
- - [TasksParallelStepParallelItem_ToolCall](#tasksparallelstepparallelitem_toolcall)
- - [TasksParallelStepParallelItem_WaitForInput](#tasksparallelstepparallelitem_waitforinput)
- - [TasksParallelStepParallelItem_Yield](#tasksparallelstepparallelitem_yield)
-
-## TasksParallelStepParallelItem_Embed
-
-[Show source in tasks_parallel_step_parallel_item.py:407](../../../../../../../julep/api/types/tasks_parallel_step_parallel_item.py#L407)
-
-#### Signature
-
-```python
-class TasksParallelStepParallelItem_Embed(pydantic_v1.BaseModel): ...
-```
-
-### TasksParallelStepParallelItem_Embed().dict
-
-[Show source in tasks_parallel_step_parallel_item.py:419](../../../../../../../julep/api/types/tasks_parallel_step_parallel_item.py#L419)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksParallelStepParallelItem_Embed().json
-
-[Show source in tasks_parallel_step_parallel_item.py:411](../../../../../../../julep/api/types/tasks_parallel_step_parallel_item.py#L411)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksParallelStepParallelItem_Error
-
-[Show source in tasks_parallel_step_parallel_item.py:179](../../../../../../../julep/api/types/tasks_parallel_step_parallel_item.py#L179)
-
-#### Signature
-
-```python
-class TasksParallelStepParallelItem_Error(pydantic_v1.BaseModel): ...
-```
-
-### TasksParallelStepParallelItem_Error().dict
-
-[Show source in tasks_parallel_step_parallel_item.py:191](../../../../../../../julep/api/types/tasks_parallel_step_parallel_item.py#L191)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksParallelStepParallelItem_Error().json
-
-[Show source in tasks_parallel_step_parallel_item.py:183](../../../../../../../julep/api/types/tasks_parallel_step_parallel_item.py#L183)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksParallelStepParallelItem_Evaluate
-
-[Show source in tasks_parallel_step_parallel_item.py:20](../../../../../../../julep/api/types/tasks_parallel_step_parallel_item.py#L20)
-
-#### Signature
-
-```python
-class TasksParallelStepParallelItem_Evaluate(pydantic_v1.BaseModel): ...
-```
-
-### TasksParallelStepParallelItem_Evaluate().dict
-
-[Show source in tasks_parallel_step_parallel_item.py:34](../../../../../../../julep/api/types/tasks_parallel_step_parallel_item.py#L34)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksParallelStepParallelItem_Evaluate().json
-
-[Show source in tasks_parallel_step_parallel_item.py:26](../../../../../../../julep/api/types/tasks_parallel_step_parallel_item.py#L26)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksParallelStepParallelItem_Get
-
-[Show source in tasks_parallel_step_parallel_item.py:293](../../../../../../../julep/api/types/tasks_parallel_step_parallel_item.py#L293)
-
-#### Signature
-
-```python
-class TasksParallelStepParallelItem_Get(pydantic_v1.BaseModel): ...
-```
-
-### TasksParallelStepParallelItem_Get().dict
-
-[Show source in tasks_parallel_step_parallel_item.py:305](../../../../../../../julep/api/types/tasks_parallel_step_parallel_item.py#L305)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksParallelStepParallelItem_Get().json
-
-[Show source in tasks_parallel_step_parallel_item.py:297](../../../../../../../julep/api/types/tasks_parallel_step_parallel_item.py#L297)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksParallelStepParallelItem_Log
-
-[Show source in tasks_parallel_step_parallel_item.py:369](../../../../../../../julep/api/types/tasks_parallel_step_parallel_item.py#L369)
-
-#### Signature
-
-```python
-class TasksParallelStepParallelItem_Log(pydantic_v1.BaseModel): ...
-```
-
-### TasksParallelStepParallelItem_Log().dict
-
-[Show source in tasks_parallel_step_parallel_item.py:381](../../../../../../../julep/api/types/tasks_parallel_step_parallel_item.py#L381)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksParallelStepParallelItem_Log().json
-
-[Show source in tasks_parallel_step_parallel_item.py:373](../../../../../../../julep/api/types/tasks_parallel_step_parallel_item.py#L373)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksParallelStepParallelItem_Prompt
-
-[Show source in tasks_parallel_step_parallel_item.py:140](../../../../../../../julep/api/types/tasks_parallel_step_parallel_item.py#L140)
-
-#### Signature
-
-```python
-class TasksParallelStepParallelItem_Prompt(pydantic_v1.BaseModel): ...
-```
-
-### TasksParallelStepParallelItem_Prompt().dict
-
-[Show source in tasks_parallel_step_parallel_item.py:153](../../../../../../../julep/api/types/tasks_parallel_step_parallel_item.py#L153)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksParallelStepParallelItem_Prompt().json
-
-[Show source in tasks_parallel_step_parallel_item.py:145](../../../../../../../julep/api/types/tasks_parallel_step_parallel_item.py#L145)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksParallelStepParallelItem_Return
-
-[Show source in tasks_parallel_step_parallel_item.py:255](../../../../../../../julep/api/types/tasks_parallel_step_parallel_item.py#L255)
-
-#### Signature
-
-```python
-class TasksParallelStepParallelItem_Return(pydantic_v1.BaseModel): ...
-```
-
-### TasksParallelStepParallelItem_Return().dict
-
-[Show source in tasks_parallel_step_parallel_item.py:267](../../../../../../../julep/api/types/tasks_parallel_step_parallel_item.py#L267)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksParallelStepParallelItem_Return().json
-
-[Show source in tasks_parallel_step_parallel_item.py:259](../../../../../../../julep/api/types/tasks_parallel_step_parallel_item.py#L259)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksParallelStepParallelItem_Search
-
-[Show source in tasks_parallel_step_parallel_item.py:445](../../../../../../../julep/api/types/tasks_parallel_step_parallel_item.py#L445)
-
-#### Signature
-
-```python
-class TasksParallelStepParallelItem_Search(pydantic_v1.BaseModel): ...
-```
-
-### TasksParallelStepParallelItem_Search().dict
-
-[Show source in tasks_parallel_step_parallel_item.py:457](../../../../../../../julep/api/types/tasks_parallel_step_parallel_item.py#L457)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksParallelStepParallelItem_Search().json
-
-[Show source in tasks_parallel_step_parallel_item.py:449](../../../../../../../julep/api/types/tasks_parallel_step_parallel_item.py#L449)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksParallelStepParallelItem_Set
-
-[Show source in tasks_parallel_step_parallel_item.py:331](../../../../../../../julep/api/types/tasks_parallel_step_parallel_item.py#L331)
-
-#### Signature
-
-```python
-class TasksParallelStepParallelItem_Set(pydantic_v1.BaseModel): ...
-```
-
-### TasksParallelStepParallelItem_Set().dict
-
-[Show source in tasks_parallel_step_parallel_item.py:343](../../../../../../../julep/api/types/tasks_parallel_step_parallel_item.py#L343)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksParallelStepParallelItem_Set().json
-
-[Show source in tasks_parallel_step_parallel_item.py:335](../../../../../../../julep/api/types/tasks_parallel_step_parallel_item.py#L335)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksParallelStepParallelItem_Sleep
-
-[Show source in tasks_parallel_step_parallel_item.py:217](../../../../../../../julep/api/types/tasks_parallel_step_parallel_item.py#L217)
-
-#### Signature
-
-```python
-class TasksParallelStepParallelItem_Sleep(pydantic_v1.BaseModel): ...
-```
-
-### TasksParallelStepParallelItem_Sleep().dict
-
-[Show source in tasks_parallel_step_parallel_item.py:229](../../../../../../../julep/api/types/tasks_parallel_step_parallel_item.py#L229)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksParallelStepParallelItem_Sleep().json
-
-[Show source in tasks_parallel_step_parallel_item.py:221](../../../../../../../julep/api/types/tasks_parallel_step_parallel_item.py#L221)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksParallelStepParallelItem_ToolCall
-
-[Show source in tasks_parallel_step_parallel_item.py:60](../../../../../../../julep/api/types/tasks_parallel_step_parallel_item.py#L60)
-
-#### Signature
-
-```python
-class TasksParallelStepParallelItem_ToolCall(pydantic_v1.BaseModel): ...
-```
-
-### TasksParallelStepParallelItem_ToolCall().dict
-
-[Show source in tasks_parallel_step_parallel_item.py:75](../../../../../../../julep/api/types/tasks_parallel_step_parallel_item.py#L75)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksParallelStepParallelItem_ToolCall().json
-
-[Show source in tasks_parallel_step_parallel_item.py:67](../../../../../../../julep/api/types/tasks_parallel_step_parallel_item.py#L67)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksParallelStepParallelItem_WaitForInput
-
-[Show source in tasks_parallel_step_parallel_item.py:483](../../../../../../../julep/api/types/tasks_parallel_step_parallel_item.py#L483)
-
-#### Signature
-
-```python
-class TasksParallelStepParallelItem_WaitForInput(pydantic_v1.BaseModel): ...
-```
-
-### TasksParallelStepParallelItem_WaitForInput().dict
-
-[Show source in tasks_parallel_step_parallel_item.py:497](../../../../../../../julep/api/types/tasks_parallel_step_parallel_item.py#L497)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksParallelStepParallelItem_WaitForInput().json
-
-[Show source in tasks_parallel_step_parallel_item.py:489](../../../../../../../julep/api/types/tasks_parallel_step_parallel_item.py#L489)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksParallelStepParallelItem_Yield
-
-[Show source in tasks_parallel_step_parallel_item.py:101](../../../../../../../julep/api/types/tasks_parallel_step_parallel_item.py#L101)
-
-#### Signature
-
-```python
-class TasksParallelStepParallelItem_Yield(pydantic_v1.BaseModel): ...
-```
-
-### TasksParallelStepParallelItem_Yield().dict
-
-[Show source in tasks_parallel_step_parallel_item.py:114](../../../../../../../julep/api/types/tasks_parallel_step_parallel_item.py#L114)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksParallelStepParallelItem_Yield().json
-
-[Show source in tasks_parallel_step_parallel_item.py:106](../../../../../../../julep/api/types/tasks_parallel_step_parallel_item.py#L106)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/tasks_patch_task_request_main_item.md b/docs/python-sdk-docs/julep/api/types/tasks_patch_task_request_main_item.md
deleted file mode 100644
index de1078439..000000000
--- a/docs/python-sdk-docs/julep/api/types/tasks_patch_task_request_main_item.md
+++ /dev/null
@@ -1,599 +0,0 @@
-# Tasks Patch Task Request Main Item
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / Tasks Patch Task Request Main Item
-
-> Auto-generated documentation for [julep.api.types.tasks_patch_task_request_main_item](../../../../../../../julep/api/types/tasks_patch_task_request_main_item.py) module.
-
-- [Tasks Patch Task Request Main Item](#tasks-patch-task-request-main-item)
- - [TasksPatchTaskRequestMainItem_Embed](#taskspatchtaskrequestmainitem_embed)
- - [TasksPatchTaskRequestMainItem_Error](#taskspatchtaskrequestmainitem_error)
- - [TasksPatchTaskRequestMainItem_Evaluate](#taskspatchtaskrequestmainitem_evaluate)
- - [TasksPatchTaskRequestMainItem_Foreach](#taskspatchtaskrequestmainitem_foreach)
- - [TasksPatchTaskRequestMainItem_Get](#taskspatchtaskrequestmainitem_get)
- - [TasksPatchTaskRequestMainItem_IfElse](#taskspatchtaskrequestmainitem_ifelse)
- - [TasksPatchTaskRequestMainItem_Log](#taskspatchtaskrequestmainitem_log)
- - [TasksPatchTaskRequestMainItem_MapReduce](#taskspatchtaskrequestmainitem_mapreduce)
- - [TasksPatchTaskRequestMainItem_Parallel](#taskspatchtaskrequestmainitem_parallel)
- - [TasksPatchTaskRequestMainItem_Prompt](#taskspatchtaskrequestmainitem_prompt)
- - [TasksPatchTaskRequestMainItem_Return](#taskspatchtaskrequestmainitem_return)
- - [TasksPatchTaskRequestMainItem_Search](#taskspatchtaskrequestmainitem_search)
- - [TasksPatchTaskRequestMainItem_Set](#taskspatchtaskrequestmainitem_set)
- - [TasksPatchTaskRequestMainItem_Sleep](#taskspatchtaskrequestmainitem_sleep)
- - [TasksPatchTaskRequestMainItem_Switch](#taskspatchtaskrequestmainitem_switch)
- - [TasksPatchTaskRequestMainItem_ToolCall](#taskspatchtaskrequestmainitem_toolcall)
- - [TasksPatchTaskRequestMainItem_WaitForInput](#taskspatchtaskrequestmainitem_waitforinput)
- - [TasksPatchTaskRequestMainItem_Yield](#taskspatchtaskrequestmainitem_yield)
-
-## TasksPatchTaskRequestMainItem_Embed
-
-[Show source in tasks_patch_task_request_main_item.py:413](../../../../../../../julep/api/types/tasks_patch_task_request_main_item.py#L413)
-
-#### Signature
-
-```python
-class TasksPatchTaskRequestMainItem_Embed(pydantic_v1.BaseModel): ...
-```
-
-### TasksPatchTaskRequestMainItem_Embed().dict
-
-[Show source in tasks_patch_task_request_main_item.py:425](../../../../../../../julep/api/types/tasks_patch_task_request_main_item.py#L425)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksPatchTaskRequestMainItem_Embed().json
-
-[Show source in tasks_patch_task_request_main_item.py:417](../../../../../../../julep/api/types/tasks_patch_task_request_main_item.py#L417)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksPatchTaskRequestMainItem_Error
-
-[Show source in tasks_patch_task_request_main_item.py:185](../../../../../../../julep/api/types/tasks_patch_task_request_main_item.py#L185)
-
-#### Signature
-
-```python
-class TasksPatchTaskRequestMainItem_Error(pydantic_v1.BaseModel): ...
-```
-
-### TasksPatchTaskRequestMainItem_Error().dict
-
-[Show source in tasks_patch_task_request_main_item.py:197](../../../../../../../julep/api/types/tasks_patch_task_request_main_item.py#L197)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksPatchTaskRequestMainItem_Error().json
-
-[Show source in tasks_patch_task_request_main_item.py:189](../../../../../../../julep/api/types/tasks_patch_task_request_main_item.py#L189)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksPatchTaskRequestMainItem_Evaluate
-
-[Show source in tasks_patch_task_request_main_item.py:26](../../../../../../../julep/api/types/tasks_patch_task_request_main_item.py#L26)
-
-#### Signature
-
-```python
-class TasksPatchTaskRequestMainItem_Evaluate(pydantic_v1.BaseModel): ...
-```
-
-### TasksPatchTaskRequestMainItem_Evaluate().dict
-
-[Show source in tasks_patch_task_request_main_item.py:40](../../../../../../../julep/api/types/tasks_patch_task_request_main_item.py#L40)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksPatchTaskRequestMainItem_Evaluate().json
-
-[Show source in tasks_patch_task_request_main_item.py:32](../../../../../../../julep/api/types/tasks_patch_task_request_main_item.py#L32)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksPatchTaskRequestMainItem_Foreach
-
-[Show source in tasks_patch_task_request_main_item.py:609](../../../../../../../julep/api/types/tasks_patch_task_request_main_item.py#L609)
-
-#### Signature
-
-```python
-class TasksPatchTaskRequestMainItem_Foreach(pydantic_v1.BaseModel): ...
-```
-
-### TasksPatchTaskRequestMainItem_Foreach().dict
-
-[Show source in tasks_patch_task_request_main_item.py:623](../../../../../../../julep/api/types/tasks_patch_task_request_main_item.py#L623)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksPatchTaskRequestMainItem_Foreach().json
-
-[Show source in tasks_patch_task_request_main_item.py:615](../../../../../../../julep/api/types/tasks_patch_task_request_main_item.py#L615)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksPatchTaskRequestMainItem_Get
-
-[Show source in tasks_patch_task_request_main_item.py:299](../../../../../../../julep/api/types/tasks_patch_task_request_main_item.py#L299)
-
-#### Signature
-
-```python
-class TasksPatchTaskRequestMainItem_Get(pydantic_v1.BaseModel): ...
-```
-
-### TasksPatchTaskRequestMainItem_Get().dict
-
-[Show source in tasks_patch_task_request_main_item.py:311](../../../../../../../julep/api/types/tasks_patch_task_request_main_item.py#L311)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksPatchTaskRequestMainItem_Get().json
-
-[Show source in tasks_patch_task_request_main_item.py:303](../../../../../../../julep/api/types/tasks_patch_task_request_main_item.py#L303)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksPatchTaskRequestMainItem_IfElse
-
-[Show source in tasks_patch_task_request_main_item.py:529](../../../../../../../julep/api/types/tasks_patch_task_request_main_item.py#L529)
-
-#### Signature
-
-```python
-class TasksPatchTaskRequestMainItem_IfElse(pydantic_v1.BaseModel): ...
-```
-
-### TasksPatchTaskRequestMainItem_IfElse().dict
-
-[Show source in tasks_patch_task_request_main_item.py:545](../../../../../../../julep/api/types/tasks_patch_task_request_main_item.py#L545)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksPatchTaskRequestMainItem_IfElse().json
-
-[Show source in tasks_patch_task_request_main_item.py:537](../../../../../../../julep/api/types/tasks_patch_task_request_main_item.py#L537)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksPatchTaskRequestMainItem_Log
-
-[Show source in tasks_patch_task_request_main_item.py:375](../../../../../../../julep/api/types/tasks_patch_task_request_main_item.py#L375)
-
-#### Signature
-
-```python
-class TasksPatchTaskRequestMainItem_Log(pydantic_v1.BaseModel): ...
-```
-
-### TasksPatchTaskRequestMainItem_Log().dict
-
-[Show source in tasks_patch_task_request_main_item.py:387](../../../../../../../julep/api/types/tasks_patch_task_request_main_item.py#L387)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksPatchTaskRequestMainItem_Log().json
-
-[Show source in tasks_patch_task_request_main_item.py:379](../../../../../../../julep/api/types/tasks_patch_task_request_main_item.py#L379)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksPatchTaskRequestMainItem_MapReduce
-
-[Show source in tasks_patch_task_request_main_item.py:689](../../../../../../../julep/api/types/tasks_patch_task_request_main_item.py#L689)
-
-#### Signature
-
-```python
-class TasksPatchTaskRequestMainItem_MapReduce(pydantic_v1.BaseModel): ...
-```
-
-### TasksPatchTaskRequestMainItem_MapReduce().dict
-
-[Show source in tasks_patch_task_request_main_item.py:704](../../../../../../../julep/api/types/tasks_patch_task_request_main_item.py#L704)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksPatchTaskRequestMainItem_MapReduce().json
-
-[Show source in tasks_patch_task_request_main_item.py:696](../../../../../../../julep/api/types/tasks_patch_task_request_main_item.py#L696)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksPatchTaskRequestMainItem_Parallel
-
-[Show source in tasks_patch_task_request_main_item.py:649](../../../../../../../julep/api/types/tasks_patch_task_request_main_item.py#L649)
-
-#### Signature
-
-```python
-class TasksPatchTaskRequestMainItem_Parallel(pydantic_v1.BaseModel): ...
-```
-
-### TasksPatchTaskRequestMainItem_Parallel().dict
-
-[Show source in tasks_patch_task_request_main_item.py:663](../../../../../../../julep/api/types/tasks_patch_task_request_main_item.py#L663)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksPatchTaskRequestMainItem_Parallel().json
-
-[Show source in tasks_patch_task_request_main_item.py:655](../../../../../../../julep/api/types/tasks_patch_task_request_main_item.py#L655)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksPatchTaskRequestMainItem_Prompt
-
-[Show source in tasks_patch_task_request_main_item.py:146](../../../../../../../julep/api/types/tasks_patch_task_request_main_item.py#L146)
-
-#### Signature
-
-```python
-class TasksPatchTaskRequestMainItem_Prompt(pydantic_v1.BaseModel): ...
-```
-
-### TasksPatchTaskRequestMainItem_Prompt().dict
-
-[Show source in tasks_patch_task_request_main_item.py:159](../../../../../../../julep/api/types/tasks_patch_task_request_main_item.py#L159)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksPatchTaskRequestMainItem_Prompt().json
-
-[Show source in tasks_patch_task_request_main_item.py:151](../../../../../../../julep/api/types/tasks_patch_task_request_main_item.py#L151)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksPatchTaskRequestMainItem_Return
-
-[Show source in tasks_patch_task_request_main_item.py:261](../../../../../../../julep/api/types/tasks_patch_task_request_main_item.py#L261)
-
-#### Signature
-
-```python
-class TasksPatchTaskRequestMainItem_Return(pydantic_v1.BaseModel): ...
-```
-
-### TasksPatchTaskRequestMainItem_Return().dict
-
-[Show source in tasks_patch_task_request_main_item.py:273](../../../../../../../julep/api/types/tasks_patch_task_request_main_item.py#L273)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksPatchTaskRequestMainItem_Return().json
-
-[Show source in tasks_patch_task_request_main_item.py:265](../../../../../../../julep/api/types/tasks_patch_task_request_main_item.py#L265)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksPatchTaskRequestMainItem_Search
-
-[Show source in tasks_patch_task_request_main_item.py:451](../../../../../../../julep/api/types/tasks_patch_task_request_main_item.py#L451)
-
-#### Signature
-
-```python
-class TasksPatchTaskRequestMainItem_Search(pydantic_v1.BaseModel): ...
-```
-
-### TasksPatchTaskRequestMainItem_Search().dict
-
-[Show source in tasks_patch_task_request_main_item.py:463](../../../../../../../julep/api/types/tasks_patch_task_request_main_item.py#L463)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksPatchTaskRequestMainItem_Search().json
-
-[Show source in tasks_patch_task_request_main_item.py:455](../../../../../../../julep/api/types/tasks_patch_task_request_main_item.py#L455)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksPatchTaskRequestMainItem_Set
-
-[Show source in tasks_patch_task_request_main_item.py:337](../../../../../../../julep/api/types/tasks_patch_task_request_main_item.py#L337)
-
-#### Signature
-
-```python
-class TasksPatchTaskRequestMainItem_Set(pydantic_v1.BaseModel): ...
-```
-
-### TasksPatchTaskRequestMainItem_Set().dict
-
-[Show source in tasks_patch_task_request_main_item.py:349](../../../../../../../julep/api/types/tasks_patch_task_request_main_item.py#L349)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksPatchTaskRequestMainItem_Set().json
-
-[Show source in tasks_patch_task_request_main_item.py:341](../../../../../../../julep/api/types/tasks_patch_task_request_main_item.py#L341)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksPatchTaskRequestMainItem_Sleep
-
-[Show source in tasks_patch_task_request_main_item.py:223](../../../../../../../julep/api/types/tasks_patch_task_request_main_item.py#L223)
-
-#### Signature
-
-```python
-class TasksPatchTaskRequestMainItem_Sleep(pydantic_v1.BaseModel): ...
-```
-
-### TasksPatchTaskRequestMainItem_Sleep().dict
-
-[Show source in tasks_patch_task_request_main_item.py:235](../../../../../../../julep/api/types/tasks_patch_task_request_main_item.py#L235)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksPatchTaskRequestMainItem_Sleep().json
-
-[Show source in tasks_patch_task_request_main_item.py:227](../../../../../../../julep/api/types/tasks_patch_task_request_main_item.py#L227)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksPatchTaskRequestMainItem_Switch
-
-[Show source in tasks_patch_task_request_main_item.py:571](../../../../../../../julep/api/types/tasks_patch_task_request_main_item.py#L571)
-
-#### Signature
-
-```python
-class TasksPatchTaskRequestMainItem_Switch(pydantic_v1.BaseModel): ...
-```
-
-### TasksPatchTaskRequestMainItem_Switch().dict
-
-[Show source in tasks_patch_task_request_main_item.py:583](../../../../../../../julep/api/types/tasks_patch_task_request_main_item.py#L583)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksPatchTaskRequestMainItem_Switch().json
-
-[Show source in tasks_patch_task_request_main_item.py:575](../../../../../../../julep/api/types/tasks_patch_task_request_main_item.py#L575)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksPatchTaskRequestMainItem_ToolCall
-
-[Show source in tasks_patch_task_request_main_item.py:66](../../../../../../../julep/api/types/tasks_patch_task_request_main_item.py#L66)
-
-#### Signature
-
-```python
-class TasksPatchTaskRequestMainItem_ToolCall(pydantic_v1.BaseModel): ...
-```
-
-### TasksPatchTaskRequestMainItem_ToolCall().dict
-
-[Show source in tasks_patch_task_request_main_item.py:81](../../../../../../../julep/api/types/tasks_patch_task_request_main_item.py#L81)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksPatchTaskRequestMainItem_ToolCall().json
-
-[Show source in tasks_patch_task_request_main_item.py:73](../../../../../../../julep/api/types/tasks_patch_task_request_main_item.py#L73)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksPatchTaskRequestMainItem_WaitForInput
-
-[Show source in tasks_patch_task_request_main_item.py:489](../../../../../../../julep/api/types/tasks_patch_task_request_main_item.py#L489)
-
-#### Signature
-
-```python
-class TasksPatchTaskRequestMainItem_WaitForInput(pydantic_v1.BaseModel): ...
-```
-
-### TasksPatchTaskRequestMainItem_WaitForInput().dict
-
-[Show source in tasks_patch_task_request_main_item.py:503](../../../../../../../julep/api/types/tasks_patch_task_request_main_item.py#L503)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksPatchTaskRequestMainItem_WaitForInput().json
-
-[Show source in tasks_patch_task_request_main_item.py:495](../../../../../../../julep/api/types/tasks_patch_task_request_main_item.py#L495)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksPatchTaskRequestMainItem_Yield
-
-[Show source in tasks_patch_task_request_main_item.py:107](../../../../../../../julep/api/types/tasks_patch_task_request_main_item.py#L107)
-
-#### Signature
-
-```python
-class TasksPatchTaskRequestMainItem_Yield(pydantic_v1.BaseModel): ...
-```
-
-### TasksPatchTaskRequestMainItem_Yield().dict
-
-[Show source in tasks_patch_task_request_main_item.py:120](../../../../../../../julep/api/types/tasks_patch_task_request_main_item.py#L120)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksPatchTaskRequestMainItem_Yield().json
-
-[Show source in tasks_patch_task_request_main_item.py:112](../../../../../../../julep/api/types/tasks_patch_task_request_main_item.py#L112)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/tasks_prompt_step.md b/docs/python-sdk-docs/julep/api/types/tasks_prompt_step.md
deleted file mode 100644
index aead87f7b..000000000
--- a/docs/python-sdk-docs/julep/api/types/tasks_prompt_step.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# TasksPromptStep
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / TasksPromptStep
-
-> Auto-generated documentation for [julep.api.types.tasks_prompt_step](../../../../../../../julep/api/types/tasks_prompt_step.py) module.
-
-- [TasksPromptStep](#taskspromptstep)
- - [TasksPromptStep](#taskspromptstep-1)
-
-## TasksPromptStep
-
-[Show source in tasks_prompt_step.py:12](../../../../../../../julep/api/types/tasks_prompt_step.py#L12)
-
-#### Signature
-
-```python
-class TasksPromptStep(pydantic_v1.BaseModel): ...
-```
-
-### TasksPromptStep().dict
-
-[Show source in tasks_prompt_step.py:31](../../../../../../../julep/api/types/tasks_prompt_step.py#L31)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksPromptStep().json
-
-[Show source in tasks_prompt_step.py:23](../../../../../../../julep/api/types/tasks_prompt_step.py#L23)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/tasks_prompt_step_prompt.md b/docs/python-sdk-docs/julep/api/types/tasks_prompt_step_prompt.md
deleted file mode 100644
index dcaf88924..000000000
--- a/docs/python-sdk-docs/julep/api/types/tasks_prompt_step_prompt.md
+++ /dev/null
@@ -1,6 +0,0 @@
-# Tasks Prompt Step Prompt
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / Tasks Prompt Step Prompt
-
-> Auto-generated documentation for [julep.api.types.tasks_prompt_step_prompt](../../../../../../../julep/api/types/tasks_prompt_step_prompt.py) module.
-- [Tasks Prompt Step Prompt](#tasks-prompt-step-prompt)
diff --git a/docs/python-sdk-docs/julep/api/types/tasks_return_step.md b/docs/python-sdk-docs/julep/api/types/tasks_return_step.md
deleted file mode 100644
index 6ffe79f9a..000000000
--- a/docs/python-sdk-docs/julep/api/types/tasks_return_step.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# TasksReturnStep
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / TasksReturnStep
-
-> Auto-generated documentation for [julep.api.types.tasks_return_step](../../../../../../../julep/api/types/tasks_return_step.py) module.
-
-- [TasksReturnStep](#tasksreturnstep)
- - [TasksReturnStep](#tasksreturnstep-1)
-
-## TasksReturnStep
-
-[Show source in tasks_return_step.py:11](../../../../../../../julep/api/types/tasks_return_step.py#L11)
-
-#### Signature
-
-```python
-class TasksReturnStep(pydantic_v1.BaseModel): ...
-```
-
-### TasksReturnStep().dict
-
-[Show source in tasks_return_step.py:25](../../../../../../../julep/api/types/tasks_return_step.py#L25)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksReturnStep().json
-
-[Show source in tasks_return_step.py:17](../../../../../../../julep/api/types/tasks_return_step.py#L17)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/tasks_route_list_request_direction.md b/docs/python-sdk-docs/julep/api/types/tasks_route_list_request_direction.md
deleted file mode 100644
index a770714c2..000000000
--- a/docs/python-sdk-docs/julep/api/types/tasks_route_list_request_direction.md
+++ /dev/null
@@ -1,6 +0,0 @@
-# Tasks Route List Request Direction
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / Tasks Route List Request Direction
-
-> Auto-generated documentation for [julep.api.types.tasks_route_list_request_direction](../../../../../../../julep/api/types/tasks_route_list_request_direction.py) module.
-- [Tasks Route List Request Direction](#tasks-route-list-request-direction)
diff --git a/docs/python-sdk-docs/julep/api/types/tasks_route_list_request_sort_by.md b/docs/python-sdk-docs/julep/api/types/tasks_route_list_request_sort_by.md
deleted file mode 100644
index 6724a2a5e..000000000
--- a/docs/python-sdk-docs/julep/api/types/tasks_route_list_request_sort_by.md
+++ /dev/null
@@ -1,6 +0,0 @@
-# Tasks Route List Request Sort By
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / Tasks Route List Request Sort By
-
-> Auto-generated documentation for [julep.api.types.tasks_route_list_request_sort_by](../../../../../../../julep/api/types/tasks_route_list_request_sort_by.py) module.
-- [Tasks Route List Request Sort By](#tasks-route-list-request-sort-by)
diff --git a/docs/python-sdk-docs/julep/api/types/tasks_route_list_response.md b/docs/python-sdk-docs/julep/api/types/tasks_route_list_response.md
deleted file mode 100644
index 567d53784..000000000
--- a/docs/python-sdk-docs/julep/api/types/tasks_route_list_response.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# TasksRouteListResponse
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / TasksRouteListResponse
-
-> Auto-generated documentation for [julep.api.types.tasks_route_list_response](../../../../../../../julep/api/types/tasks_route_list_response.py) module.
-
-- [TasksRouteListResponse](#tasksroutelistresponse)
- - [TasksRouteListResponse](#tasksroutelistresponse-1)
-
-## TasksRouteListResponse
-
-[Show source in tasks_route_list_response.py:11](../../../../../../../julep/api/types/tasks_route_list_response.py#L11)
-
-#### Signature
-
-```python
-class TasksRouteListResponse(pydantic_v1.BaseModel): ...
-```
-
-### TasksRouteListResponse().dict
-
-[Show source in tasks_route_list_response.py:22](../../../../../../../julep/api/types/tasks_route_list_response.py#L22)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksRouteListResponse().json
-
-[Show source in tasks_route_list_response.py:14](../../../../../../../julep/api/types/tasks_route_list_response.py#L14)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/tasks_search_step.md b/docs/python-sdk-docs/julep/api/types/tasks_search_step.md
deleted file mode 100644
index 261961a32..000000000
--- a/docs/python-sdk-docs/julep/api/types/tasks_search_step.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# TasksSearchStep
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / TasksSearchStep
-
-> Auto-generated documentation for [julep.api.types.tasks_search_step](../../../../../../../julep/api/types/tasks_search_step.py) module.
-
-- [TasksSearchStep](#taskssearchstep)
- - [TasksSearchStep](#taskssearchstep-1)
-
-## TasksSearchStep
-
-[Show source in tasks_search_step.py:11](../../../../../../../julep/api/types/tasks_search_step.py#L11)
-
-#### Signature
-
-```python
-class TasksSearchStep(pydantic_v1.BaseModel): ...
-```
-
-### TasksSearchStep().dict
-
-[Show source in tasks_search_step.py:25](../../../../../../../julep/api/types/tasks_search_step.py#L25)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksSearchStep().json
-
-[Show source in tasks_search_step.py:17](../../../../../../../julep/api/types/tasks_search_step.py#L17)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/tasks_search_step_search.md b/docs/python-sdk-docs/julep/api/types/tasks_search_step_search.md
deleted file mode 100644
index 3a493bb23..000000000
--- a/docs/python-sdk-docs/julep/api/types/tasks_search_step_search.md
+++ /dev/null
@@ -1,6 +0,0 @@
-# Tasks Search Step Search
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / Tasks Search Step Search
-
-> Auto-generated documentation for [julep.api.types.tasks_search_step_search](../../../../../../../julep/api/types/tasks_search_step_search.py) module.
-- [Tasks Search Step Search](#tasks-search-step-search)
diff --git a/docs/python-sdk-docs/julep/api/types/tasks_set_key.md b/docs/python-sdk-docs/julep/api/types/tasks_set_key.md
deleted file mode 100644
index 38598bcf3..000000000
--- a/docs/python-sdk-docs/julep/api/types/tasks_set_key.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# TasksSetKey
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / TasksSetKey
-
-> Auto-generated documentation for [julep.api.types.tasks_set_key](../../../../../../../julep/api/types/tasks_set_key.py) module.
-
-- [TasksSetKey](#taskssetkey)
- - [TasksSetKey](#taskssetkey-1)
-
-## TasksSetKey
-
-[Show source in tasks_set_key.py:11](../../../../../../../julep/api/types/tasks_set_key.py#L11)
-
-#### Signature
-
-```python
-class TasksSetKey(pydantic_v1.BaseModel): ...
-```
-
-### TasksSetKey().dict
-
-[Show source in tasks_set_key.py:30](../../../../../../../julep/api/types/tasks_set_key.py#L30)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksSetKey().json
-
-[Show source in tasks_set_key.py:22](../../../../../../../julep/api/types/tasks_set_key.py#L22)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/tasks_set_step.md b/docs/python-sdk-docs/julep/api/types/tasks_set_step.md
deleted file mode 100644
index e8de84022..000000000
--- a/docs/python-sdk-docs/julep/api/types/tasks_set_step.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# TasksSetStep
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / TasksSetStep
-
-> Auto-generated documentation for [julep.api.types.tasks_set_step](../../../../../../../julep/api/types/tasks_set_step.py) module.
-
-- [TasksSetStep](#taskssetstep)
- - [TasksSetStep](#taskssetstep-1)
-
-## TasksSetStep
-
-[Show source in tasks_set_step.py:11](../../../../../../../julep/api/types/tasks_set_step.py#L11)
-
-#### Signature
-
-```python
-class TasksSetStep(pydantic_v1.BaseModel): ...
-```
-
-### TasksSetStep().dict
-
-[Show source in tasks_set_step.py:25](../../../../../../../julep/api/types/tasks_set_step.py#L25)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksSetStep().json
-
-[Show source in tasks_set_step.py:17](../../../../../../../julep/api/types/tasks_set_step.py#L17)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/tasks_set_step_set.md b/docs/python-sdk-docs/julep/api/types/tasks_set_step_set.md
deleted file mode 100644
index 142512310..000000000
--- a/docs/python-sdk-docs/julep/api/types/tasks_set_step_set.md
+++ /dev/null
@@ -1,6 +0,0 @@
-# Tasks Set Step Set
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / Tasks Set Step Set
-
-> Auto-generated documentation for [julep.api.types.tasks_set_step_set](../../../../../../../julep/api/types/tasks_set_step_set.py) module.
-- [Tasks Set Step Set](#tasks-set-step-set)
diff --git a/docs/python-sdk-docs/julep/api/types/tasks_sleep_for.md b/docs/python-sdk-docs/julep/api/types/tasks_sleep_for.md
deleted file mode 100644
index 884627663..000000000
--- a/docs/python-sdk-docs/julep/api/types/tasks_sleep_for.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# TasksSleepFor
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / TasksSleepFor
-
-> Auto-generated documentation for [julep.api.types.tasks_sleep_for](../../../../../../../julep/api/types/tasks_sleep_for.py) module.
-
-- [TasksSleepFor](#taskssleepfor)
- - [TasksSleepFor](#taskssleepfor-1)
-
-## TasksSleepFor
-
-[Show source in tasks_sleep_for.py:10](../../../../../../../julep/api/types/tasks_sleep_for.py#L10)
-
-#### Signature
-
-```python
-class TasksSleepFor(pydantic_v1.BaseModel): ...
-```
-
-### TasksSleepFor().dict
-
-[Show source in tasks_sleep_for.py:39](../../../../../../../julep/api/types/tasks_sleep_for.py#L39)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksSleepFor().json
-
-[Show source in tasks_sleep_for.py:31](../../../../../../../julep/api/types/tasks_sleep_for.py#L31)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/tasks_sleep_step.md b/docs/python-sdk-docs/julep/api/types/tasks_sleep_step.md
deleted file mode 100644
index b286704b0..000000000
--- a/docs/python-sdk-docs/julep/api/types/tasks_sleep_step.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# TasksSleepStep
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / TasksSleepStep
-
-> Auto-generated documentation for [julep.api.types.tasks_sleep_step](../../../../../../../julep/api/types/tasks_sleep_step.py) module.
-
-- [TasksSleepStep](#taskssleepstep)
- - [TasksSleepStep](#taskssleepstep-1)
-
-## TasksSleepStep
-
-[Show source in tasks_sleep_step.py:11](../../../../../../../julep/api/types/tasks_sleep_step.py#L11)
-
-#### Signature
-
-```python
-class TasksSleepStep(pydantic_v1.BaseModel): ...
-```
-
-### TasksSleepStep().dict
-
-[Show source in tasks_sleep_step.py:25](../../../../../../../julep/api/types/tasks_sleep_step.py#L25)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksSleepStep().json
-
-[Show source in tasks_sleep_step.py:17](../../../../../../../julep/api/types/tasks_sleep_step.py#L17)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/tasks_switch_step.md b/docs/python-sdk-docs/julep/api/types/tasks_switch_step.md
deleted file mode 100644
index ac6daef52..000000000
--- a/docs/python-sdk-docs/julep/api/types/tasks_switch_step.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# TasksSwitchStep
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / TasksSwitchStep
-
-> Auto-generated documentation for [julep.api.types.tasks_switch_step](../../../../../../../julep/api/types/tasks_switch_step.py) module.
-
-- [TasksSwitchStep](#tasksswitchstep)
- - [TasksSwitchStep](#tasksswitchstep-1)
-
-## TasksSwitchStep
-
-[Show source in tasks_switch_step.py:11](../../../../../../../julep/api/types/tasks_switch_step.py#L11)
-
-#### Signature
-
-```python
-class TasksSwitchStep(pydantic_v1.BaseModel): ...
-```
-
-### TasksSwitchStep().dict
-
-[Show source in tasks_switch_step.py:25](../../../../../../../julep/api/types/tasks_switch_step.py#L25)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksSwitchStep().json
-
-[Show source in tasks_switch_step.py:17](../../../../../../../julep/api/types/tasks_switch_step.py#L17)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/tasks_task.md b/docs/python-sdk-docs/julep/api/types/tasks_task.md
deleted file mode 100644
index 64d55c76d..000000000
--- a/docs/python-sdk-docs/julep/api/types/tasks_task.md
+++ /dev/null
@@ -1,40 +0,0 @@
-# TasksTask
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / TasksTask
-
-> Auto-generated documentation for [julep.api.types.tasks_task](../../../../../../../julep/api/types/tasks_task.py) module.
-
-- [TasksTask](#taskstask)
- - [TasksTask](#taskstask-1)
-
-## TasksTask
-
-[Show source in tasks_task.py:13](../../../../../../../julep/api/types/tasks_task.py#L13)
-
-Object describing a Task
-
-#### Signature
-
-```python
-class TasksTask(pydantic_v1.BaseModel): ...
-```
-
-### TasksTask().dict
-
-[Show source in tasks_task.py:63](../../../../../../../julep/api/types/tasks_task.py#L63)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksTask().json
-
-[Show source in tasks_task.py:55](../../../../../../../julep/api/types/tasks_task.py#L55)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/tasks_task_main_item.md b/docs/python-sdk-docs/julep/api/types/tasks_task_main_item.md
deleted file mode 100644
index ae12a2f50..000000000
--- a/docs/python-sdk-docs/julep/api/types/tasks_task_main_item.md
+++ /dev/null
@@ -1,599 +0,0 @@
-# Tasks Task Main Item
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / Tasks Task Main Item
-
-> Auto-generated documentation for [julep.api.types.tasks_task_main_item](../../../../../../../julep/api/types/tasks_task_main_item.py) module.
-
-- [Tasks Task Main Item](#tasks-task-main-item)
- - [TasksTaskMainItem_Embed](#taskstaskmainitem_embed)
- - [TasksTaskMainItem_Error](#taskstaskmainitem_error)
- - [TasksTaskMainItem_Evaluate](#taskstaskmainitem_evaluate)
- - [TasksTaskMainItem_Foreach](#taskstaskmainitem_foreach)
- - [TasksTaskMainItem_Get](#taskstaskmainitem_get)
- - [TasksTaskMainItem_IfElse](#taskstaskmainitem_ifelse)
- - [TasksTaskMainItem_Log](#taskstaskmainitem_log)
- - [TasksTaskMainItem_MapReduce](#taskstaskmainitem_mapreduce)
- - [TasksTaskMainItem_Parallel](#taskstaskmainitem_parallel)
- - [TasksTaskMainItem_Prompt](#taskstaskmainitem_prompt)
- - [TasksTaskMainItem_Return](#taskstaskmainitem_return)
- - [TasksTaskMainItem_Search](#taskstaskmainitem_search)
- - [TasksTaskMainItem_Set](#taskstaskmainitem_set)
- - [TasksTaskMainItem_Sleep](#taskstaskmainitem_sleep)
- - [TasksTaskMainItem_Switch](#taskstaskmainitem_switch)
- - [TasksTaskMainItem_ToolCall](#taskstaskmainitem_toolcall)
- - [TasksTaskMainItem_WaitForInput](#taskstaskmainitem_waitforinput)
- - [TasksTaskMainItem_Yield](#taskstaskmainitem_yield)
-
-## TasksTaskMainItem_Embed
-
-[Show source in tasks_task_main_item.py:413](../../../../../../../julep/api/types/tasks_task_main_item.py#L413)
-
-#### Signature
-
-```python
-class TasksTaskMainItem_Embed(pydantic_v1.BaseModel): ...
-```
-
-### TasksTaskMainItem_Embed().dict
-
-[Show source in tasks_task_main_item.py:425](../../../../../../../julep/api/types/tasks_task_main_item.py#L425)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksTaskMainItem_Embed().json
-
-[Show source in tasks_task_main_item.py:417](../../../../../../../julep/api/types/tasks_task_main_item.py#L417)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksTaskMainItem_Error
-
-[Show source in tasks_task_main_item.py:185](../../../../../../../julep/api/types/tasks_task_main_item.py#L185)
-
-#### Signature
-
-```python
-class TasksTaskMainItem_Error(pydantic_v1.BaseModel): ...
-```
-
-### TasksTaskMainItem_Error().dict
-
-[Show source in tasks_task_main_item.py:197](../../../../../../../julep/api/types/tasks_task_main_item.py#L197)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksTaskMainItem_Error().json
-
-[Show source in tasks_task_main_item.py:189](../../../../../../../julep/api/types/tasks_task_main_item.py#L189)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksTaskMainItem_Evaluate
-
-[Show source in tasks_task_main_item.py:26](../../../../../../../julep/api/types/tasks_task_main_item.py#L26)
-
-#### Signature
-
-```python
-class TasksTaskMainItem_Evaluate(pydantic_v1.BaseModel): ...
-```
-
-### TasksTaskMainItem_Evaluate().dict
-
-[Show source in tasks_task_main_item.py:40](../../../../../../../julep/api/types/tasks_task_main_item.py#L40)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksTaskMainItem_Evaluate().json
-
-[Show source in tasks_task_main_item.py:32](../../../../../../../julep/api/types/tasks_task_main_item.py#L32)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksTaskMainItem_Foreach
-
-[Show source in tasks_task_main_item.py:609](../../../../../../../julep/api/types/tasks_task_main_item.py#L609)
-
-#### Signature
-
-```python
-class TasksTaskMainItem_Foreach(pydantic_v1.BaseModel): ...
-```
-
-### TasksTaskMainItem_Foreach().dict
-
-[Show source in tasks_task_main_item.py:623](../../../../../../../julep/api/types/tasks_task_main_item.py#L623)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksTaskMainItem_Foreach().json
-
-[Show source in tasks_task_main_item.py:615](../../../../../../../julep/api/types/tasks_task_main_item.py#L615)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksTaskMainItem_Get
-
-[Show source in tasks_task_main_item.py:299](../../../../../../../julep/api/types/tasks_task_main_item.py#L299)
-
-#### Signature
-
-```python
-class TasksTaskMainItem_Get(pydantic_v1.BaseModel): ...
-```
-
-### TasksTaskMainItem_Get().dict
-
-[Show source in tasks_task_main_item.py:311](../../../../../../../julep/api/types/tasks_task_main_item.py#L311)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksTaskMainItem_Get().json
-
-[Show source in tasks_task_main_item.py:303](../../../../../../../julep/api/types/tasks_task_main_item.py#L303)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksTaskMainItem_IfElse
-
-[Show source in tasks_task_main_item.py:529](../../../../../../../julep/api/types/tasks_task_main_item.py#L529)
-
-#### Signature
-
-```python
-class TasksTaskMainItem_IfElse(pydantic_v1.BaseModel): ...
-```
-
-### TasksTaskMainItem_IfElse().dict
-
-[Show source in tasks_task_main_item.py:545](../../../../../../../julep/api/types/tasks_task_main_item.py#L545)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksTaskMainItem_IfElse().json
-
-[Show source in tasks_task_main_item.py:537](../../../../../../../julep/api/types/tasks_task_main_item.py#L537)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksTaskMainItem_Log
-
-[Show source in tasks_task_main_item.py:375](../../../../../../../julep/api/types/tasks_task_main_item.py#L375)
-
-#### Signature
-
-```python
-class TasksTaskMainItem_Log(pydantic_v1.BaseModel): ...
-```
-
-### TasksTaskMainItem_Log().dict
-
-[Show source in tasks_task_main_item.py:387](../../../../../../../julep/api/types/tasks_task_main_item.py#L387)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksTaskMainItem_Log().json
-
-[Show source in tasks_task_main_item.py:379](../../../../../../../julep/api/types/tasks_task_main_item.py#L379)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksTaskMainItem_MapReduce
-
-[Show source in tasks_task_main_item.py:689](../../../../../../../julep/api/types/tasks_task_main_item.py#L689)
-
-#### Signature
-
-```python
-class TasksTaskMainItem_MapReduce(pydantic_v1.BaseModel): ...
-```
-
-### TasksTaskMainItem_MapReduce().dict
-
-[Show source in tasks_task_main_item.py:704](../../../../../../../julep/api/types/tasks_task_main_item.py#L704)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksTaskMainItem_MapReduce().json
-
-[Show source in tasks_task_main_item.py:696](../../../../../../../julep/api/types/tasks_task_main_item.py#L696)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksTaskMainItem_Parallel
-
-[Show source in tasks_task_main_item.py:649](../../../../../../../julep/api/types/tasks_task_main_item.py#L649)
-
-#### Signature
-
-```python
-class TasksTaskMainItem_Parallel(pydantic_v1.BaseModel): ...
-```
-
-### TasksTaskMainItem_Parallel().dict
-
-[Show source in tasks_task_main_item.py:663](../../../../../../../julep/api/types/tasks_task_main_item.py#L663)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksTaskMainItem_Parallel().json
-
-[Show source in tasks_task_main_item.py:655](../../../../../../../julep/api/types/tasks_task_main_item.py#L655)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksTaskMainItem_Prompt
-
-[Show source in tasks_task_main_item.py:146](../../../../../../../julep/api/types/tasks_task_main_item.py#L146)
-
-#### Signature
-
-```python
-class TasksTaskMainItem_Prompt(pydantic_v1.BaseModel): ...
-```
-
-### TasksTaskMainItem_Prompt().dict
-
-[Show source in tasks_task_main_item.py:159](../../../../../../../julep/api/types/tasks_task_main_item.py#L159)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksTaskMainItem_Prompt().json
-
-[Show source in tasks_task_main_item.py:151](../../../../../../../julep/api/types/tasks_task_main_item.py#L151)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksTaskMainItem_Return
-
-[Show source in tasks_task_main_item.py:261](../../../../../../../julep/api/types/tasks_task_main_item.py#L261)
-
-#### Signature
-
-```python
-class TasksTaskMainItem_Return(pydantic_v1.BaseModel): ...
-```
-
-### TasksTaskMainItem_Return().dict
-
-[Show source in tasks_task_main_item.py:273](../../../../../../../julep/api/types/tasks_task_main_item.py#L273)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksTaskMainItem_Return().json
-
-[Show source in tasks_task_main_item.py:265](../../../../../../../julep/api/types/tasks_task_main_item.py#L265)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksTaskMainItem_Search
-
-[Show source in tasks_task_main_item.py:451](../../../../../../../julep/api/types/tasks_task_main_item.py#L451)
-
-#### Signature
-
-```python
-class TasksTaskMainItem_Search(pydantic_v1.BaseModel): ...
-```
-
-### TasksTaskMainItem_Search().dict
-
-[Show source in tasks_task_main_item.py:463](../../../../../../../julep/api/types/tasks_task_main_item.py#L463)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksTaskMainItem_Search().json
-
-[Show source in tasks_task_main_item.py:455](../../../../../../../julep/api/types/tasks_task_main_item.py#L455)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksTaskMainItem_Set
-
-[Show source in tasks_task_main_item.py:337](../../../../../../../julep/api/types/tasks_task_main_item.py#L337)
-
-#### Signature
-
-```python
-class TasksTaskMainItem_Set(pydantic_v1.BaseModel): ...
-```
-
-### TasksTaskMainItem_Set().dict
-
-[Show source in tasks_task_main_item.py:349](../../../../../../../julep/api/types/tasks_task_main_item.py#L349)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksTaskMainItem_Set().json
-
-[Show source in tasks_task_main_item.py:341](../../../../../../../julep/api/types/tasks_task_main_item.py#L341)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksTaskMainItem_Sleep
-
-[Show source in tasks_task_main_item.py:223](../../../../../../../julep/api/types/tasks_task_main_item.py#L223)
-
-#### Signature
-
-```python
-class TasksTaskMainItem_Sleep(pydantic_v1.BaseModel): ...
-```
-
-### TasksTaskMainItem_Sleep().dict
-
-[Show source in tasks_task_main_item.py:235](../../../../../../../julep/api/types/tasks_task_main_item.py#L235)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksTaskMainItem_Sleep().json
-
-[Show source in tasks_task_main_item.py:227](../../../../../../../julep/api/types/tasks_task_main_item.py#L227)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksTaskMainItem_Switch
-
-[Show source in tasks_task_main_item.py:571](../../../../../../../julep/api/types/tasks_task_main_item.py#L571)
-
-#### Signature
-
-```python
-class TasksTaskMainItem_Switch(pydantic_v1.BaseModel): ...
-```
-
-### TasksTaskMainItem_Switch().dict
-
-[Show source in tasks_task_main_item.py:583](../../../../../../../julep/api/types/tasks_task_main_item.py#L583)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksTaskMainItem_Switch().json
-
-[Show source in tasks_task_main_item.py:575](../../../../../../../julep/api/types/tasks_task_main_item.py#L575)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksTaskMainItem_ToolCall
-
-[Show source in tasks_task_main_item.py:66](../../../../../../../julep/api/types/tasks_task_main_item.py#L66)
-
-#### Signature
-
-```python
-class TasksTaskMainItem_ToolCall(pydantic_v1.BaseModel): ...
-```
-
-### TasksTaskMainItem_ToolCall().dict
-
-[Show source in tasks_task_main_item.py:81](../../../../../../../julep/api/types/tasks_task_main_item.py#L81)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksTaskMainItem_ToolCall().json
-
-[Show source in tasks_task_main_item.py:73](../../../../../../../julep/api/types/tasks_task_main_item.py#L73)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksTaskMainItem_WaitForInput
-
-[Show source in tasks_task_main_item.py:489](../../../../../../../julep/api/types/tasks_task_main_item.py#L489)
-
-#### Signature
-
-```python
-class TasksTaskMainItem_WaitForInput(pydantic_v1.BaseModel): ...
-```
-
-### TasksTaskMainItem_WaitForInput().dict
-
-[Show source in tasks_task_main_item.py:503](../../../../../../../julep/api/types/tasks_task_main_item.py#L503)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksTaskMainItem_WaitForInput().json
-
-[Show source in tasks_task_main_item.py:495](../../../../../../../julep/api/types/tasks_task_main_item.py#L495)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksTaskMainItem_Yield
-
-[Show source in tasks_task_main_item.py:107](../../../../../../../julep/api/types/tasks_task_main_item.py#L107)
-
-#### Signature
-
-```python
-class TasksTaskMainItem_Yield(pydantic_v1.BaseModel): ...
-```
-
-### TasksTaskMainItem_Yield().dict
-
-[Show source in tasks_task_main_item.py:120](../../../../../../../julep/api/types/tasks_task_main_item.py#L120)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksTaskMainItem_Yield().json
-
-[Show source in tasks_task_main_item.py:112](../../../../../../../julep/api/types/tasks_task_main_item.py#L112)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/tasks_task_tool.md b/docs/python-sdk-docs/julep/api/types/tasks_task_tool.md
deleted file mode 100644
index 7be0648db..000000000
--- a/docs/python-sdk-docs/julep/api/types/tasks_task_tool.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# TasksTaskTool
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / TasksTaskTool
-
-> Auto-generated documentation for [julep.api.types.tasks_task_tool](../../../../../../../julep/api/types/tasks_task_tool.py) module.
-
-- [TasksTaskTool](#taskstasktool)
- - [TasksTaskTool](#taskstasktool-1)
-
-## TasksTaskTool
-
-[Show source in tasks_task_tool.py:11](../../../../../../../julep/api/types/tasks_task_tool.py#L11)
-
-#### Signature
-
-```python
-class TasksTaskTool(ToolsCreateToolRequest): ...
-```
-
-### TasksTaskTool().dict
-
-[Show source in tasks_task_tool.py:25](../../../../../../../julep/api/types/tasks_task_tool.py#L25)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksTaskTool().json
-
-[Show source in tasks_task_tool.py:17](../../../../../../../julep/api/types/tasks_task_tool.py#L17)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/tasks_tool_call_step.md b/docs/python-sdk-docs/julep/api/types/tasks_tool_call_step.md
deleted file mode 100644
index 871140201..000000000
--- a/docs/python-sdk-docs/julep/api/types/tasks_tool_call_step.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# TasksToolCallStep
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / TasksToolCallStep
-
-> Auto-generated documentation for [julep.api.types.tasks_tool_call_step](../../../../../../../julep/api/types/tasks_tool_call_step.py) module.
-
-- [TasksToolCallStep](#taskstoolcallstep)
- - [TasksToolCallStep](#taskstoolcallstep-1)
-
-## TasksToolCallStep
-
-[Show source in tasks_tool_call_step.py:12](../../../../../../../julep/api/types/tasks_tool_call_step.py#L12)
-
-#### Signature
-
-```python
-class TasksToolCallStep(pydantic_v1.BaseModel): ...
-```
-
-### TasksToolCallStep().dict
-
-[Show source in tasks_tool_call_step.py:31](../../../../../../../julep/api/types/tasks_tool_call_step.py#L31)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksToolCallStep().json
-
-[Show source in tasks_tool_call_step.py:23](../../../../../../../julep/api/types/tasks_tool_call_step.py#L23)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/tasks_update_task_request_main_item.md b/docs/python-sdk-docs/julep/api/types/tasks_update_task_request_main_item.md
deleted file mode 100644
index e0a8569f9..000000000
--- a/docs/python-sdk-docs/julep/api/types/tasks_update_task_request_main_item.md
+++ /dev/null
@@ -1,599 +0,0 @@
-# Tasks Update Task Request Main Item
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / Tasks Update Task Request Main Item
-
-> Auto-generated documentation for [julep.api.types.tasks_update_task_request_main_item](../../../../../../../julep/api/types/tasks_update_task_request_main_item.py) module.
-
-- [Tasks Update Task Request Main Item](#tasks-update-task-request-main-item)
- - [TasksUpdateTaskRequestMainItem_Embed](#tasksupdatetaskrequestmainitem_embed)
- - [TasksUpdateTaskRequestMainItem_Error](#tasksupdatetaskrequestmainitem_error)
- - [TasksUpdateTaskRequestMainItem_Evaluate](#tasksupdatetaskrequestmainitem_evaluate)
- - [TasksUpdateTaskRequestMainItem_Foreach](#tasksupdatetaskrequestmainitem_foreach)
- - [TasksUpdateTaskRequestMainItem_Get](#tasksupdatetaskrequestmainitem_get)
- - [TasksUpdateTaskRequestMainItem_IfElse](#tasksupdatetaskrequestmainitem_ifelse)
- - [TasksUpdateTaskRequestMainItem_Log](#tasksupdatetaskrequestmainitem_log)
- - [TasksUpdateTaskRequestMainItem_MapReduce](#tasksupdatetaskrequestmainitem_mapreduce)
- - [TasksUpdateTaskRequestMainItem_Parallel](#tasksupdatetaskrequestmainitem_parallel)
- - [TasksUpdateTaskRequestMainItem_Prompt](#tasksupdatetaskrequestmainitem_prompt)
- - [TasksUpdateTaskRequestMainItem_Return](#tasksupdatetaskrequestmainitem_return)
- - [TasksUpdateTaskRequestMainItem_Search](#tasksupdatetaskrequestmainitem_search)
- - [TasksUpdateTaskRequestMainItem_Set](#tasksupdatetaskrequestmainitem_set)
- - [TasksUpdateTaskRequestMainItem_Sleep](#tasksupdatetaskrequestmainitem_sleep)
- - [TasksUpdateTaskRequestMainItem_Switch](#tasksupdatetaskrequestmainitem_switch)
- - [TasksUpdateTaskRequestMainItem_ToolCall](#tasksupdatetaskrequestmainitem_toolcall)
- - [TasksUpdateTaskRequestMainItem_WaitForInput](#tasksupdatetaskrequestmainitem_waitforinput)
- - [TasksUpdateTaskRequestMainItem_Yield](#tasksupdatetaskrequestmainitem_yield)
-
-## TasksUpdateTaskRequestMainItem_Embed
-
-[Show source in tasks_update_task_request_main_item.py:413](../../../../../../../julep/api/types/tasks_update_task_request_main_item.py#L413)
-
-#### Signature
-
-```python
-class TasksUpdateTaskRequestMainItem_Embed(pydantic_v1.BaseModel): ...
-```
-
-### TasksUpdateTaskRequestMainItem_Embed().dict
-
-[Show source in tasks_update_task_request_main_item.py:425](../../../../../../../julep/api/types/tasks_update_task_request_main_item.py#L425)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksUpdateTaskRequestMainItem_Embed().json
-
-[Show source in tasks_update_task_request_main_item.py:417](../../../../../../../julep/api/types/tasks_update_task_request_main_item.py#L417)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksUpdateTaskRequestMainItem_Error
-
-[Show source in tasks_update_task_request_main_item.py:185](../../../../../../../julep/api/types/tasks_update_task_request_main_item.py#L185)
-
-#### Signature
-
-```python
-class TasksUpdateTaskRequestMainItem_Error(pydantic_v1.BaseModel): ...
-```
-
-### TasksUpdateTaskRequestMainItem_Error().dict
-
-[Show source in tasks_update_task_request_main_item.py:197](../../../../../../../julep/api/types/tasks_update_task_request_main_item.py#L197)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksUpdateTaskRequestMainItem_Error().json
-
-[Show source in tasks_update_task_request_main_item.py:189](../../../../../../../julep/api/types/tasks_update_task_request_main_item.py#L189)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksUpdateTaskRequestMainItem_Evaluate
-
-[Show source in tasks_update_task_request_main_item.py:26](../../../../../../../julep/api/types/tasks_update_task_request_main_item.py#L26)
-
-#### Signature
-
-```python
-class TasksUpdateTaskRequestMainItem_Evaluate(pydantic_v1.BaseModel): ...
-```
-
-### TasksUpdateTaskRequestMainItem_Evaluate().dict
-
-[Show source in tasks_update_task_request_main_item.py:40](../../../../../../../julep/api/types/tasks_update_task_request_main_item.py#L40)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksUpdateTaskRequestMainItem_Evaluate().json
-
-[Show source in tasks_update_task_request_main_item.py:32](../../../../../../../julep/api/types/tasks_update_task_request_main_item.py#L32)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksUpdateTaskRequestMainItem_Foreach
-
-[Show source in tasks_update_task_request_main_item.py:609](../../../../../../../julep/api/types/tasks_update_task_request_main_item.py#L609)
-
-#### Signature
-
-```python
-class TasksUpdateTaskRequestMainItem_Foreach(pydantic_v1.BaseModel): ...
-```
-
-### TasksUpdateTaskRequestMainItem_Foreach().dict
-
-[Show source in tasks_update_task_request_main_item.py:623](../../../../../../../julep/api/types/tasks_update_task_request_main_item.py#L623)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksUpdateTaskRequestMainItem_Foreach().json
-
-[Show source in tasks_update_task_request_main_item.py:615](../../../../../../../julep/api/types/tasks_update_task_request_main_item.py#L615)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksUpdateTaskRequestMainItem_Get
-
-[Show source in tasks_update_task_request_main_item.py:299](../../../../../../../julep/api/types/tasks_update_task_request_main_item.py#L299)
-
-#### Signature
-
-```python
-class TasksUpdateTaskRequestMainItem_Get(pydantic_v1.BaseModel): ...
-```
-
-### TasksUpdateTaskRequestMainItem_Get().dict
-
-[Show source in tasks_update_task_request_main_item.py:311](../../../../../../../julep/api/types/tasks_update_task_request_main_item.py#L311)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksUpdateTaskRequestMainItem_Get().json
-
-[Show source in tasks_update_task_request_main_item.py:303](../../../../../../../julep/api/types/tasks_update_task_request_main_item.py#L303)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksUpdateTaskRequestMainItem_IfElse
-
-[Show source in tasks_update_task_request_main_item.py:529](../../../../../../../julep/api/types/tasks_update_task_request_main_item.py#L529)
-
-#### Signature
-
-```python
-class TasksUpdateTaskRequestMainItem_IfElse(pydantic_v1.BaseModel): ...
-```
-
-### TasksUpdateTaskRequestMainItem_IfElse().dict
-
-[Show source in tasks_update_task_request_main_item.py:545](../../../../../../../julep/api/types/tasks_update_task_request_main_item.py#L545)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksUpdateTaskRequestMainItem_IfElse().json
-
-[Show source in tasks_update_task_request_main_item.py:537](../../../../../../../julep/api/types/tasks_update_task_request_main_item.py#L537)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksUpdateTaskRequestMainItem_Log
-
-[Show source in tasks_update_task_request_main_item.py:375](../../../../../../../julep/api/types/tasks_update_task_request_main_item.py#L375)
-
-#### Signature
-
-```python
-class TasksUpdateTaskRequestMainItem_Log(pydantic_v1.BaseModel): ...
-```
-
-### TasksUpdateTaskRequestMainItem_Log().dict
-
-[Show source in tasks_update_task_request_main_item.py:387](../../../../../../../julep/api/types/tasks_update_task_request_main_item.py#L387)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksUpdateTaskRequestMainItem_Log().json
-
-[Show source in tasks_update_task_request_main_item.py:379](../../../../../../../julep/api/types/tasks_update_task_request_main_item.py#L379)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksUpdateTaskRequestMainItem_MapReduce
-
-[Show source in tasks_update_task_request_main_item.py:689](../../../../../../../julep/api/types/tasks_update_task_request_main_item.py#L689)
-
-#### Signature
-
-```python
-class TasksUpdateTaskRequestMainItem_MapReduce(pydantic_v1.BaseModel): ...
-```
-
-### TasksUpdateTaskRequestMainItem_MapReduce().dict
-
-[Show source in tasks_update_task_request_main_item.py:704](../../../../../../../julep/api/types/tasks_update_task_request_main_item.py#L704)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksUpdateTaskRequestMainItem_MapReduce().json
-
-[Show source in tasks_update_task_request_main_item.py:696](../../../../../../../julep/api/types/tasks_update_task_request_main_item.py#L696)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksUpdateTaskRequestMainItem_Parallel
-
-[Show source in tasks_update_task_request_main_item.py:649](../../../../../../../julep/api/types/tasks_update_task_request_main_item.py#L649)
-
-#### Signature
-
-```python
-class TasksUpdateTaskRequestMainItem_Parallel(pydantic_v1.BaseModel): ...
-```
-
-### TasksUpdateTaskRequestMainItem_Parallel().dict
-
-[Show source in tasks_update_task_request_main_item.py:663](../../../../../../../julep/api/types/tasks_update_task_request_main_item.py#L663)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksUpdateTaskRequestMainItem_Parallel().json
-
-[Show source in tasks_update_task_request_main_item.py:655](../../../../../../../julep/api/types/tasks_update_task_request_main_item.py#L655)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksUpdateTaskRequestMainItem_Prompt
-
-[Show source in tasks_update_task_request_main_item.py:146](../../../../../../../julep/api/types/tasks_update_task_request_main_item.py#L146)
-
-#### Signature
-
-```python
-class TasksUpdateTaskRequestMainItem_Prompt(pydantic_v1.BaseModel): ...
-```
-
-### TasksUpdateTaskRequestMainItem_Prompt().dict
-
-[Show source in tasks_update_task_request_main_item.py:159](../../../../../../../julep/api/types/tasks_update_task_request_main_item.py#L159)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksUpdateTaskRequestMainItem_Prompt().json
-
-[Show source in tasks_update_task_request_main_item.py:151](../../../../../../../julep/api/types/tasks_update_task_request_main_item.py#L151)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksUpdateTaskRequestMainItem_Return
-
-[Show source in tasks_update_task_request_main_item.py:261](../../../../../../../julep/api/types/tasks_update_task_request_main_item.py#L261)
-
-#### Signature
-
-```python
-class TasksUpdateTaskRequestMainItem_Return(pydantic_v1.BaseModel): ...
-```
-
-### TasksUpdateTaskRequestMainItem_Return().dict
-
-[Show source in tasks_update_task_request_main_item.py:273](../../../../../../../julep/api/types/tasks_update_task_request_main_item.py#L273)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksUpdateTaskRequestMainItem_Return().json
-
-[Show source in tasks_update_task_request_main_item.py:265](../../../../../../../julep/api/types/tasks_update_task_request_main_item.py#L265)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksUpdateTaskRequestMainItem_Search
-
-[Show source in tasks_update_task_request_main_item.py:451](../../../../../../../julep/api/types/tasks_update_task_request_main_item.py#L451)
-
-#### Signature
-
-```python
-class TasksUpdateTaskRequestMainItem_Search(pydantic_v1.BaseModel): ...
-```
-
-### TasksUpdateTaskRequestMainItem_Search().dict
-
-[Show source in tasks_update_task_request_main_item.py:463](../../../../../../../julep/api/types/tasks_update_task_request_main_item.py#L463)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksUpdateTaskRequestMainItem_Search().json
-
-[Show source in tasks_update_task_request_main_item.py:455](../../../../../../../julep/api/types/tasks_update_task_request_main_item.py#L455)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksUpdateTaskRequestMainItem_Set
-
-[Show source in tasks_update_task_request_main_item.py:337](../../../../../../../julep/api/types/tasks_update_task_request_main_item.py#L337)
-
-#### Signature
-
-```python
-class TasksUpdateTaskRequestMainItem_Set(pydantic_v1.BaseModel): ...
-```
-
-### TasksUpdateTaskRequestMainItem_Set().dict
-
-[Show source in tasks_update_task_request_main_item.py:349](../../../../../../../julep/api/types/tasks_update_task_request_main_item.py#L349)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksUpdateTaskRequestMainItem_Set().json
-
-[Show source in tasks_update_task_request_main_item.py:341](../../../../../../../julep/api/types/tasks_update_task_request_main_item.py#L341)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksUpdateTaskRequestMainItem_Sleep
-
-[Show source in tasks_update_task_request_main_item.py:223](../../../../../../../julep/api/types/tasks_update_task_request_main_item.py#L223)
-
-#### Signature
-
-```python
-class TasksUpdateTaskRequestMainItem_Sleep(pydantic_v1.BaseModel): ...
-```
-
-### TasksUpdateTaskRequestMainItem_Sleep().dict
-
-[Show source in tasks_update_task_request_main_item.py:235](../../../../../../../julep/api/types/tasks_update_task_request_main_item.py#L235)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksUpdateTaskRequestMainItem_Sleep().json
-
-[Show source in tasks_update_task_request_main_item.py:227](../../../../../../../julep/api/types/tasks_update_task_request_main_item.py#L227)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksUpdateTaskRequestMainItem_Switch
-
-[Show source in tasks_update_task_request_main_item.py:571](../../../../../../../julep/api/types/tasks_update_task_request_main_item.py#L571)
-
-#### Signature
-
-```python
-class TasksUpdateTaskRequestMainItem_Switch(pydantic_v1.BaseModel): ...
-```
-
-### TasksUpdateTaskRequestMainItem_Switch().dict
-
-[Show source in tasks_update_task_request_main_item.py:583](../../../../../../../julep/api/types/tasks_update_task_request_main_item.py#L583)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksUpdateTaskRequestMainItem_Switch().json
-
-[Show source in tasks_update_task_request_main_item.py:575](../../../../../../../julep/api/types/tasks_update_task_request_main_item.py#L575)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksUpdateTaskRequestMainItem_ToolCall
-
-[Show source in tasks_update_task_request_main_item.py:66](../../../../../../../julep/api/types/tasks_update_task_request_main_item.py#L66)
-
-#### Signature
-
-```python
-class TasksUpdateTaskRequestMainItem_ToolCall(pydantic_v1.BaseModel): ...
-```
-
-### TasksUpdateTaskRequestMainItem_ToolCall().dict
-
-[Show source in tasks_update_task_request_main_item.py:81](../../../../../../../julep/api/types/tasks_update_task_request_main_item.py#L81)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksUpdateTaskRequestMainItem_ToolCall().json
-
-[Show source in tasks_update_task_request_main_item.py:73](../../../../../../../julep/api/types/tasks_update_task_request_main_item.py#L73)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksUpdateTaskRequestMainItem_WaitForInput
-
-[Show source in tasks_update_task_request_main_item.py:489](../../../../../../../julep/api/types/tasks_update_task_request_main_item.py#L489)
-
-#### Signature
-
-```python
-class TasksUpdateTaskRequestMainItem_WaitForInput(pydantic_v1.BaseModel): ...
-```
-
-### TasksUpdateTaskRequestMainItem_WaitForInput().dict
-
-[Show source in tasks_update_task_request_main_item.py:503](../../../../../../../julep/api/types/tasks_update_task_request_main_item.py#L503)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksUpdateTaskRequestMainItem_WaitForInput().json
-
-[Show source in tasks_update_task_request_main_item.py:495](../../../../../../../julep/api/types/tasks_update_task_request_main_item.py#L495)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## TasksUpdateTaskRequestMainItem_Yield
-
-[Show source in tasks_update_task_request_main_item.py:107](../../../../../../../julep/api/types/tasks_update_task_request_main_item.py#L107)
-
-#### Signature
-
-```python
-class TasksUpdateTaskRequestMainItem_Yield(pydantic_v1.BaseModel): ...
-```
-
-### TasksUpdateTaskRequestMainItem_Yield().dict
-
-[Show source in tasks_update_task_request_main_item.py:120](../../../../../../../julep/api/types/tasks_update_task_request_main_item.py#L120)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksUpdateTaskRequestMainItem_Yield().json
-
-[Show source in tasks_update_task_request_main_item.py:112](../../../../../../../julep/api/types/tasks_update_task_request_main_item.py#L112)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/tasks_wait_for_input_step.md b/docs/python-sdk-docs/julep/api/types/tasks_wait_for_input_step.md
deleted file mode 100644
index 94949a2f6..000000000
--- a/docs/python-sdk-docs/julep/api/types/tasks_wait_for_input_step.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# TasksWaitForInputStep
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / TasksWaitForInputStep
-
-> Auto-generated documentation for [julep.api.types.tasks_wait_for_input_step](../../../../../../../julep/api/types/tasks_wait_for_input_step.py) module.
-
-- [TasksWaitForInputStep](#taskswaitforinputstep)
- - [TasksWaitForInputStep](#taskswaitforinputstep-1)
-
-## TasksWaitForInputStep
-
-[Show source in tasks_wait_for_input_step.py:11](../../../../../../../julep/api/types/tasks_wait_for_input_step.py#L11)
-
-#### Signature
-
-```python
-class TasksWaitForInputStep(pydantic_v1.BaseModel): ...
-```
-
-### TasksWaitForInputStep().dict
-
-[Show source in tasks_wait_for_input_step.py:25](../../../../../../../julep/api/types/tasks_wait_for_input_step.py#L25)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksWaitForInputStep().json
-
-[Show source in tasks_wait_for_input_step.py:17](../../../../../../../julep/api/types/tasks_wait_for_input_step.py#L17)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/tasks_yield_step.md b/docs/python-sdk-docs/julep/api/types/tasks_yield_step.md
deleted file mode 100644
index fb4038462..000000000
--- a/docs/python-sdk-docs/julep/api/types/tasks_yield_step.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# TasksYieldStep
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / TasksYieldStep
-
-> Auto-generated documentation for [julep.api.types.tasks_yield_step](../../../../../../../julep/api/types/tasks_yield_step.py) module.
-
-- [TasksYieldStep](#tasksyieldstep)
- - [TasksYieldStep](#tasksyieldstep-1)
-
-## TasksYieldStep
-
-[Show source in tasks_yield_step.py:11](../../../../../../../julep/api/types/tasks_yield_step.py#L11)
-
-#### Signature
-
-```python
-class TasksYieldStep(pydantic_v1.BaseModel): ...
-```
-
-### TasksYieldStep().dict
-
-[Show source in tasks_yield_step.py:30](../../../../../../../julep/api/types/tasks_yield_step.py#L30)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### TasksYieldStep().json
-
-[Show source in tasks_yield_step.py:22](../../../../../../../julep/api/types/tasks_yield_step.py#L22)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/tools_chosen_function_call.md b/docs/python-sdk-docs/julep/api/types/tools_chosen_function_call.md
deleted file mode 100644
index e07a53092..000000000
--- a/docs/python-sdk-docs/julep/api/types/tools_chosen_function_call.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# ToolsChosenFunctionCall
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / ToolsChosenFunctionCall
-
-> Auto-generated documentation for [julep.api.types.tools_chosen_function_call](../../../../../../../julep/api/types/tools_chosen_function_call.py) module.
-
-- [ToolsChosenFunctionCall](#toolschosenfunctioncall)
- - [ToolsChosenFunctionCall](#toolschosenfunctioncall-1)
-
-## ToolsChosenFunctionCall
-
-[Show source in tools_chosen_function_call.py:11](../../../../../../../julep/api/types/tools_chosen_function_call.py#L11)
-
-#### Signature
-
-```python
-class ToolsChosenFunctionCall(pydantic_v1.BaseModel): ...
-```
-
-### ToolsChosenFunctionCall().dict
-
-[Show source in tools_chosen_function_call.py:25](../../../../../../../julep/api/types/tools_chosen_function_call.py#L25)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### ToolsChosenFunctionCall().json
-
-[Show source in tools_chosen_function_call.py:17](../../../../../../../julep/api/types/tools_chosen_function_call.py#L17)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/tools_chosen_tool_call.md b/docs/python-sdk-docs/julep/api/types/tools_chosen_tool_call.md
deleted file mode 100644
index 676f843f8..000000000
--- a/docs/python-sdk-docs/julep/api/types/tools_chosen_tool_call.md
+++ /dev/null
@@ -1,77 +0,0 @@
-# Tools Chosen Tool Call
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / Tools Chosen Tool Call
-
-> Auto-generated documentation for [julep.api.types.tools_chosen_tool_call](../../../../../../../julep/api/types/tools_chosen_tool_call.py) module.
-
-- [Tools Chosen Tool Call](#tools-chosen-tool-call)
- - [Base](#base)
- - [ToolsChosenToolCall_Function](#toolschosentoolcall_function)
-
-## Base
-
-[Show source in tools_chosen_tool_call.py:14](../../../../../../../julep/api/types/tools_chosen_tool_call.py#L14)
-
-#### Signature
-
-```python
-class Base(pydantic_v1.BaseModel): ...
-```
-
-### Base().dict
-
-[Show source in tools_chosen_tool_call.py:29](../../../../../../../julep/api/types/tools_chosen_tool_call.py#L29)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### Base().json
-
-[Show source in tools_chosen_tool_call.py:21](../../../../../../../julep/api/types/tools_chosen_tool_call.py#L21)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## ToolsChosenToolCall_Function
-
-[Show source in tools_chosen_tool_call.py:53](../../../../../../../julep/api/types/tools_chosen_tool_call.py#L53)
-
-The response tool value generated by the model
-
-#### Signature
-
-```python
-class ToolsChosenToolCall_Function(Base): ...
-```
-
-#### See also
-
-- [Base](#base)
-
-### ToolsChosenToolCall_Function().dict
-
-[Show source in tools_chosen_tool_call.py:69](../../../../../../../julep/api/types/tools_chosen_tool_call.py#L69)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### ToolsChosenToolCall_Function().json
-
-[Show source in tools_chosen_tool_call.py:61](../../../../../../../julep/api/types/tools_chosen_tool_call.py#L61)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/tools_create_tool_request.md b/docs/python-sdk-docs/julep/api/types/tools_create_tool_request.md
deleted file mode 100644
index 7fb2bcb10..000000000
--- a/docs/python-sdk-docs/julep/api/types/tools_create_tool_request.md
+++ /dev/null
@@ -1,40 +0,0 @@
-# ToolsCreateToolRequest
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / ToolsCreateToolRequest
-
-> Auto-generated documentation for [julep.api.types.tools_create_tool_request](../../../../../../../julep/api/types/tools_create_tool_request.py) module.
-
-- [ToolsCreateToolRequest](#toolscreatetoolrequest)
- - [ToolsCreateToolRequest](#toolscreatetoolrequest-1)
-
-## ToolsCreateToolRequest
-
-[Show source in tools_create_tool_request.py:13](../../../../../../../julep/api/types/tools_create_tool_request.py#L13)
-
-Payload for creating a tool
-
-#### Signature
-
-```python
-class ToolsCreateToolRequest(pydantic_v1.BaseModel): ...
-```
-
-### ToolsCreateToolRequest().dict
-
-[Show source in tools_create_tool_request.py:41](../../../../../../../julep/api/types/tools_create_tool_request.py#L41)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### ToolsCreateToolRequest().json
-
-[Show source in tools_create_tool_request.py:33](../../../../../../../julep/api/types/tools_create_tool_request.py#L33)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/tools_function_call_option.md b/docs/python-sdk-docs/julep/api/types/tools_function_call_option.md
deleted file mode 100644
index 277b38b40..000000000
--- a/docs/python-sdk-docs/julep/api/types/tools_function_call_option.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# ToolsFunctionCallOption
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / ToolsFunctionCallOption
-
-> Auto-generated documentation for [julep.api.types.tools_function_call_option](../../../../../../../julep/api/types/tools_function_call_option.py) module.
-
-- [ToolsFunctionCallOption](#toolsfunctioncalloption)
- - [ToolsFunctionCallOption](#toolsfunctioncalloption-1)
-
-## ToolsFunctionCallOption
-
-[Show source in tools_function_call_option.py:10](../../../../../../../julep/api/types/tools_function_call_option.py#L10)
-
-#### Signature
-
-```python
-class ToolsFunctionCallOption(pydantic_v1.BaseModel): ...
-```
-
-### ToolsFunctionCallOption().dict
-
-[Show source in tools_function_call_option.py:24](../../../../../../../julep/api/types/tools_function_call_option.py#L24)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### ToolsFunctionCallOption().json
-
-[Show source in tools_function_call_option.py:16](../../../../../../../julep/api/types/tools_function_call_option.py#L16)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/tools_function_def.md b/docs/python-sdk-docs/julep/api/types/tools_function_def.md
deleted file mode 100644
index f08e87dae..000000000
--- a/docs/python-sdk-docs/julep/api/types/tools_function_def.md
+++ /dev/null
@@ -1,40 +0,0 @@
-# ToolsFunctionDef
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / ToolsFunctionDef
-
-> Auto-generated documentation for [julep.api.types.tools_function_def](../../../../../../../julep/api/types/tools_function_def.py) module.
-
-- [ToolsFunctionDef](#toolsfunctiondef)
- - [ToolsFunctionDef](#toolsfunctiondef-1)
-
-## ToolsFunctionDef
-
-[Show source in tools_function_def.py:11](../../../../../../../julep/api/types/tools_function_def.py#L11)
-
-Function definition
-
-#### Signature
-
-```python
-class ToolsFunctionDef(pydantic_v1.BaseModel): ...
-```
-
-### ToolsFunctionDef().dict
-
-[Show source in tools_function_def.py:39](../../../../../../../julep/api/types/tools_function_def.py#L39)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### ToolsFunctionDef().json
-
-[Show source in tools_function_def.py:31](../../../../../../../julep/api/types/tools_function_def.py#L31)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/tools_function_tool.md b/docs/python-sdk-docs/julep/api/types/tools_function_tool.md
deleted file mode 100644
index 5ef4f60a5..000000000
--- a/docs/python-sdk-docs/julep/api/types/tools_function_tool.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# ToolsFunctionTool
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / ToolsFunctionTool
-
-> Auto-generated documentation for [julep.api.types.tools_function_tool](../../../../../../../julep/api/types/tools_function_tool.py) module.
-
-- [ToolsFunctionTool](#toolsfunctiontool)
- - [ToolsFunctionTool](#toolsfunctiontool-1)
-
-## ToolsFunctionTool
-
-[Show source in tools_function_tool.py:11](../../../../../../../julep/api/types/tools_function_tool.py#L11)
-
-#### Signature
-
-```python
-class ToolsFunctionTool(pydantic_v1.BaseModel): ...
-```
-
-### ToolsFunctionTool().dict
-
-[Show source in tools_function_tool.py:26](../../../../../../../julep/api/types/tools_function_tool.py#L26)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### ToolsFunctionTool().json
-
-[Show source in tools_function_tool.py:18](../../../../../../../julep/api/types/tools_function_tool.py#L18)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/tools_named_function_choice.md b/docs/python-sdk-docs/julep/api/types/tools_named_function_choice.md
deleted file mode 100644
index 388aed5dc..000000000
--- a/docs/python-sdk-docs/julep/api/types/tools_named_function_choice.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# ToolsNamedFunctionChoice
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / ToolsNamedFunctionChoice
-
-> Auto-generated documentation for [julep.api.types.tools_named_function_choice](../../../../../../../julep/api/types/tools_named_function_choice.py) module.
-
-- [ToolsNamedFunctionChoice](#toolsnamedfunctionchoice)
- - [ToolsNamedFunctionChoice](#toolsnamedfunctionchoice-1)
-
-## ToolsNamedFunctionChoice
-
-[Show source in tools_named_function_choice.py:11](../../../../../../../julep/api/types/tools_named_function_choice.py#L11)
-
-#### Signature
-
-```python
-class ToolsNamedFunctionChoice(pydantic_v1.BaseModel): ...
-```
-
-### ToolsNamedFunctionChoice().dict
-
-[Show source in tools_named_function_choice.py:25](../../../../../../../julep/api/types/tools_named_function_choice.py#L25)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### ToolsNamedFunctionChoice().json
-
-[Show source in tools_named_function_choice.py:17](../../../../../../../julep/api/types/tools_named_function_choice.py#L17)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/tools_named_tool_choice.md b/docs/python-sdk-docs/julep/api/types/tools_named_tool_choice.md
deleted file mode 100644
index 67ac8f4c2..000000000
--- a/docs/python-sdk-docs/julep/api/types/tools_named_tool_choice.md
+++ /dev/null
@@ -1,75 +0,0 @@
-# Tools Named Tool Choice
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / Tools Named Tool Choice
-
-> Auto-generated documentation for [julep.api.types.tools_named_tool_choice](../../../../../../../julep/api/types/tools_named_tool_choice.py) module.
-
-- [Tools Named Tool Choice](#tools-named-tool-choice)
- - [Base](#base)
- - [ToolsNamedToolChoice_Function](#toolsnamedtoolchoice_function)
-
-## Base
-
-[Show source in tools_named_tool_choice.py:13](../../../../../../../julep/api/types/tools_named_tool_choice.py#L13)
-
-#### Signature
-
-```python
-class Base(pydantic_v1.BaseModel): ...
-```
-
-### Base().dict
-
-[Show source in tools_named_tool_choice.py:27](../../../../../../../julep/api/types/tools_named_tool_choice.py#L27)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### Base().json
-
-[Show source in tools_named_tool_choice.py:19](../../../../../../../julep/api/types/tools_named_tool_choice.py#L19)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## ToolsNamedToolChoice_Function
-
-[Show source in tools_named_tool_choice.py:51](../../../../../../../julep/api/types/tools_named_tool_choice.py#L51)
-
-#### Signature
-
-```python
-class ToolsNamedToolChoice_Function(Base): ...
-```
-
-#### See also
-
-- [Base](#base)
-
-### ToolsNamedToolChoice_Function().dict
-
-[Show source in tools_named_tool_choice.py:63](../../../../../../../julep/api/types/tools_named_tool_choice.py#L63)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### ToolsNamedToolChoice_Function().json
-
-[Show source in tools_named_tool_choice.py:55](../../../../../../../julep/api/types/tools_named_tool_choice.py#L55)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/tools_tool.md b/docs/python-sdk-docs/julep/api/types/tools_tool.md
deleted file mode 100644
index 4d33f1985..000000000
--- a/docs/python-sdk-docs/julep/api/types/tools_tool.md
+++ /dev/null
@@ -1,75 +0,0 @@
-# Tools Tool
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / Tools Tool
-
-> Auto-generated documentation for [julep.api.types.tools_tool](../../../../../../../julep/api/types/tools_tool.py) module.
-
-- [Tools Tool](#tools-tool)
- - [Base](#base)
- - [ToolsTool_Function](#toolstool_function)
-
-## Base
-
-[Show source in tools_tool.py:16](../../../../../../../julep/api/types/tools_tool.py#L16)
-
-#### Signature
-
-```python
-class Base(pydantic_v1.BaseModel): ...
-```
-
-### Base().dict
-
-[Show source in tools_tool.py:46](../../../../../../../julep/api/types/tools_tool.py#L46)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### Base().json
-
-[Show source in tools_tool.py:38](../../../../../../../julep/api/types/tools_tool.py#L38)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
-
-
-
-## ToolsTool_Function
-
-[Show source in tools_tool.py:70](../../../../../../../julep/api/types/tools_tool.py#L70)
-
-#### Signature
-
-```python
-class ToolsTool_Function(Base): ...
-```
-
-#### See also
-
-- [Base](#base)
-
-### ToolsTool_Function().dict
-
-[Show source in tools_tool.py:83](../../../../../../../julep/api/types/tools_tool.py#L83)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### ToolsTool_Function().json
-
-[Show source in tools_tool.py:75](../../../../../../../julep/api/types/tools_tool.py#L75)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/tools_tool_response.md b/docs/python-sdk-docs/julep/api/types/tools_tool_response.md
deleted file mode 100644
index 7655fb126..000000000
--- a/docs/python-sdk-docs/julep/api/types/tools_tool_response.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# ToolsToolResponse
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / ToolsToolResponse
-
-> Auto-generated documentation for [julep.api.types.tools_tool_response](../../../../../../../julep/api/types/tools_tool_response.py) module.
-
-- [ToolsToolResponse](#toolstoolresponse)
- - [ToolsToolResponse](#toolstoolresponse-1)
-
-## ToolsToolResponse
-
-[Show source in tools_tool_response.py:11](../../../../../../../julep/api/types/tools_tool_response.py#L11)
-
-#### Signature
-
-```python
-class ToolsToolResponse(pydantic_v1.BaseModel): ...
-```
-
-### ToolsToolResponse().dict
-
-[Show source in tools_tool_response.py:26](../../../../../../../julep/api/types/tools_tool_response.py#L26)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### ToolsToolResponse().json
-
-[Show source in tools_tool_response.py:18](../../../../../../../julep/api/types/tools_tool_response.py#L18)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/tools_tool_type.md b/docs/python-sdk-docs/julep/api/types/tools_tool_type.md
deleted file mode 100644
index 704512b7d..000000000
--- a/docs/python-sdk-docs/julep/api/types/tools_tool_type.md
+++ /dev/null
@@ -1,6 +0,0 @@
-# Tools Tool Type
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / Tools Tool Type
-
-> Auto-generated documentation for [julep.api.types.tools_tool_type](../../../../../../../julep/api/types/tools_tool_type.py) module.
-- [Tools Tool Type](#tools-tool-type)
diff --git a/docs/python-sdk-docs/julep/api/types/user_docs_route_list_request_direction.md b/docs/python-sdk-docs/julep/api/types/user_docs_route_list_request_direction.md
deleted file mode 100644
index 942657be7..000000000
--- a/docs/python-sdk-docs/julep/api/types/user_docs_route_list_request_direction.md
+++ /dev/null
@@ -1,6 +0,0 @@
-# User Docs Route List Request Direction
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / User Docs Route List Request Direction
-
-> Auto-generated documentation for [julep.api.types.user_docs_route_list_request_direction](../../../../../../../julep/api/types/user_docs_route_list_request_direction.py) module.
-- [User Docs Route List Request Direction](#user-docs-route-list-request-direction)
diff --git a/docs/python-sdk-docs/julep/api/types/user_docs_route_list_request_sort_by.md b/docs/python-sdk-docs/julep/api/types/user_docs_route_list_request_sort_by.md
deleted file mode 100644
index 49add30a0..000000000
--- a/docs/python-sdk-docs/julep/api/types/user_docs_route_list_request_sort_by.md
+++ /dev/null
@@ -1,6 +0,0 @@
-# User Docs Route List Request Sort By
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / User Docs Route List Request Sort By
-
-> Auto-generated documentation for [julep.api.types.user_docs_route_list_request_sort_by](../../../../../../../julep/api/types/user_docs_route_list_request_sort_by.py) module.
-- [User Docs Route List Request Sort By](#user-docs-route-list-request-sort-by)
diff --git a/docs/python-sdk-docs/julep/api/types/user_docs_route_list_response.md b/docs/python-sdk-docs/julep/api/types/user_docs_route_list_response.md
deleted file mode 100644
index 272cf8500..000000000
--- a/docs/python-sdk-docs/julep/api/types/user_docs_route_list_response.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# UserDocsRouteListResponse
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / UserDocsRouteListResponse
-
-> Auto-generated documentation for [julep.api.types.user_docs_route_list_response](../../../../../../../julep/api/types/user_docs_route_list_response.py) module.
-
-- [UserDocsRouteListResponse](#userdocsroutelistresponse)
- - [UserDocsRouteListResponse](#userdocsroutelistresponse-1)
-
-## UserDocsRouteListResponse
-
-[Show source in user_docs_route_list_response.py:11](../../../../../../../julep/api/types/user_docs_route_list_response.py#L11)
-
-#### Signature
-
-```python
-class UserDocsRouteListResponse(pydantic_v1.BaseModel): ...
-```
-
-### UserDocsRouteListResponse().dict
-
-[Show source in user_docs_route_list_response.py:22](../../../../../../../julep/api/types/user_docs_route_list_response.py#L22)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### UserDocsRouteListResponse().json
-
-[Show source in user_docs_route_list_response.py:14](../../../../../../../julep/api/types/user_docs_route_list_response.py#L14)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/user_docs_search_route_search_request_body.md b/docs/python-sdk-docs/julep/api/types/user_docs_search_route_search_request_body.md
deleted file mode 100644
index 69e2cefff..000000000
--- a/docs/python-sdk-docs/julep/api/types/user_docs_search_route_search_request_body.md
+++ /dev/null
@@ -1,6 +0,0 @@
-# User Docs Search Route Search Request Body
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / User Docs Search Route Search Request Body
-
-> Auto-generated documentation for [julep.api.types.user_docs_search_route_search_request_body](../../../../../../../julep/api/types/user_docs_search_route_search_request_body.py) module.
-- [User Docs Search Route Search Request Body](#user-docs-search-route-search-request-body)
diff --git a/docs/python-sdk-docs/julep/api/types/users_create_or_update_user_request.md b/docs/python-sdk-docs/julep/api/types/users_create_or_update_user_request.md
deleted file mode 100644
index 5dd9a655a..000000000
--- a/docs/python-sdk-docs/julep/api/types/users_create_or_update_user_request.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# UsersCreateOrUpdateUserRequest
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / UsersCreateOrUpdateUserRequest
-
-> Auto-generated documentation for [julep.api.types.users_create_or_update_user_request](../../../../../../../julep/api/types/users_create_or_update_user_request.py) module.
-
-- [UsersCreateOrUpdateUserRequest](#userscreateorupdateuserrequest)
- - [UsersCreateOrUpdateUserRequest](#userscreateorupdateuserrequest-1)
-
-## UsersCreateOrUpdateUserRequest
-
-[Show source in users_create_or_update_user_request.py:12](../../../../../../../julep/api/types/users_create_or_update_user_request.py#L12)
-
-#### Signature
-
-```python
-class UsersCreateOrUpdateUserRequest(UsersCreateUserRequest): ...
-```
-
-### UsersCreateOrUpdateUserRequest().dict
-
-[Show source in users_create_or_update_user_request.py:23](../../../../../../../julep/api/types/users_create_or_update_user_request.py#L23)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### UsersCreateOrUpdateUserRequest().json
-
-[Show source in users_create_or_update_user_request.py:15](../../../../../../../julep/api/types/users_create_or_update_user_request.py#L15)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/users_create_user_request.md b/docs/python-sdk-docs/julep/api/types/users_create_user_request.md
deleted file mode 100644
index 3f765ed01..000000000
--- a/docs/python-sdk-docs/julep/api/types/users_create_user_request.md
+++ /dev/null
@@ -1,40 +0,0 @@
-# UsersCreateUserRequest
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / UsersCreateUserRequest
-
-> Auto-generated documentation for [julep.api.types.users_create_user_request](../../../../../../../julep/api/types/users_create_user_request.py) module.
-
-- [UsersCreateUserRequest](#userscreateuserrequest)
- - [UsersCreateUserRequest](#userscreateuserrequest-1)
-
-## UsersCreateUserRequest
-
-[Show source in users_create_user_request.py:11](../../../../../../../julep/api/types/users_create_user_request.py#L11)
-
-Payload for creating a user (and associated documents)
-
-#### Signature
-
-```python
-class UsersCreateUserRequest(pydantic_v1.BaseModel): ...
-```
-
-### UsersCreateUserRequest().dict
-
-[Show source in users_create_user_request.py:35](../../../../../../../julep/api/types/users_create_user_request.py#L35)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### UsersCreateUserRequest().json
-
-[Show source in users_create_user_request.py:27](../../../../../../../julep/api/types/users_create_user_request.py#L27)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/users_route_list_request_direction.md b/docs/python-sdk-docs/julep/api/types/users_route_list_request_direction.md
deleted file mode 100644
index 977ec383d..000000000
--- a/docs/python-sdk-docs/julep/api/types/users_route_list_request_direction.md
+++ /dev/null
@@ -1,6 +0,0 @@
-# Users Route List Request Direction
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / Users Route List Request Direction
-
-> Auto-generated documentation for [julep.api.types.users_route_list_request_direction](../../../../../../../julep/api/types/users_route_list_request_direction.py) module.
-- [Users Route List Request Direction](#users-route-list-request-direction)
diff --git a/docs/python-sdk-docs/julep/api/types/users_route_list_request_sort_by.md b/docs/python-sdk-docs/julep/api/types/users_route_list_request_sort_by.md
deleted file mode 100644
index a155de328..000000000
--- a/docs/python-sdk-docs/julep/api/types/users_route_list_request_sort_by.md
+++ /dev/null
@@ -1,6 +0,0 @@
-# Users Route List Request Sort By
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / Users Route List Request Sort By
-
-> Auto-generated documentation for [julep.api.types.users_route_list_request_sort_by](../../../../../../../julep/api/types/users_route_list_request_sort_by.py) module.
-- [Users Route List Request Sort By](#users-route-list-request-sort-by)
diff --git a/docs/python-sdk-docs/julep/api/types/users_route_list_response.md b/docs/python-sdk-docs/julep/api/types/users_route_list_response.md
deleted file mode 100644
index 4baec8697..000000000
--- a/docs/python-sdk-docs/julep/api/types/users_route_list_response.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# UsersRouteListResponse
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / UsersRouteListResponse
-
-> Auto-generated documentation for [julep.api.types.users_route_list_response](../../../../../../../julep/api/types/users_route_list_response.py) module.
-
-- [UsersRouteListResponse](#usersroutelistresponse)
- - [UsersRouteListResponse](#usersroutelistresponse-1)
-
-## UsersRouteListResponse
-
-[Show source in users_route_list_response.py:11](../../../../../../../julep/api/types/users_route_list_response.py#L11)
-
-#### Signature
-
-```python
-class UsersRouteListResponse(pydantic_v1.BaseModel): ...
-```
-
-### UsersRouteListResponse().dict
-
-[Show source in users_route_list_response.py:22](../../../../../../../julep/api/types/users_route_list_response.py#L22)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### UsersRouteListResponse().json
-
-[Show source in users_route_list_response.py:14](../../../../../../../julep/api/types/users_route_list_response.py#L14)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/api/types/users_user.md b/docs/python-sdk-docs/julep/api/types/users_user.md
deleted file mode 100644
index e83f75d39..000000000
--- a/docs/python-sdk-docs/julep/api/types/users_user.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# UsersUser
-
-[Julep Python SDK Index](../../../README.md#julep-python-sdk-index) / [Julep](../../index.md#julep) / [Julep Python Library](../index.md#julep-python-library) / [Types](./index.md#types) / UsersUser
-
-> Auto-generated documentation for [julep.api.types.users_user](../../../../../../../julep/api/types/users_user.py) module.
-
-- [UsersUser](#usersuser)
- - [UsersUser](#usersuser-1)
-
-## UsersUser
-
-[Show source in users_user.py:12](../../../../../../../julep/api/types/users_user.py#L12)
-
-#### Signature
-
-```python
-class UsersUser(pydantic_v1.BaseModel): ...
-```
-
-### UsersUser().dict
-
-[Show source in users_user.py:43](../../../../../../../julep/api/types/users_user.py#L43)
-
-#### Signature
-
-```python
-def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: ...
-```
-
-### UsersUser().json
-
-[Show source in users_user.py:35](../../../../../../../julep/api/types/users_user.py#L35)
-
-#### Signature
-
-```python
-def json(self, **kwargs: typing.Any) -> str: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/client.md b/docs/python-sdk-docs/julep/client.md
deleted file mode 100644
index 589c499ee..000000000
--- a/docs/python-sdk-docs/julep/client.md
+++ /dev/null
@@ -1,112 +0,0 @@
-# Client
-
-[Julep Python SDK Index](../README.md#julep-python-sdk-index) / [Julep](./index.md#julep) / Client
-
-> Auto-generated documentation for [julep.client](../../../../../julep/client.py) module.
-
-- [Client](#client)
- - [AsyncClient](#asyncclient)
- - [Client](#client-1)
-
-## AsyncClient
-
-[Show source in client.py:158](../../../../../julep/client.py#L158)
-
-A class representing an asynchronous client for interacting with various managers.
-
-This class initializes asynchronous managers for agents, users, sessions, documents, memories,
-and tools. It requires an API key and a base URL to establish a connection with the backend
-service. If these are not explicitly provided, it looks for them in the environment variables.
-
-#### Attributes
-
-- `agents` *AsyncAgentsManager* - Manager for handling agent-related interactions.
-- `users` *AsyncUsersManager* - Manager for handling user-related interactions.
-- `sessions` *AsyncSessionsManager* - Manager for handling session-related interactions.
-- `docs` *AsyncDocsManager* - Manager for handling document-related interactions.
-- `memories` *AsyncMemoriesManager* - Manager for handling memory-related interactions.
-- `tools` *AsyncToolsManager* - Manager for handling tool-related interactions.
-- `chat` *AsyncChat* - A chat manager instance for handling chat interactions (based on OpenAI client).
-- `completions` *AsyncCompletions* - A manager instance for handling completions (based on OpenAI client).
-
-#### Raises
-
-- `AssertionError` - If `api_key` or `base_url` is not provided and also not set as an
- environment variable.
-
-#### Notes
-
-The `api_key` and `base_url` can either be passed explicitly or set as environment
-variables `JULEP_API_KEY` and `JULEP_API_URL`, respectively.
-
-#### Arguments
-
-- `api_key` *Optional[str]* - The API key required to authenticate with the service.
- Defaults to the value of the `JULEP_API_KEY` environment variable.
-- `base_url` *Optional[str]* - The base URL of the API service.
- Defaults to the value of the `JULEP_API_URL` environment variable.
-- `*args` - Variable length argument list.
-- `**kwargs` - Arbitrary keyword arguments.
-
-#### Signature
-
-```python
-class AsyncClient:
- @beartype
- def __init__(
- self,
- api_key: Optional[str] = JULEP_API_KEY,
- base_url: Optional[str] = JULEP_API_URL,
- *args,
- **kwargs
- ): ...
-```
-
-
-
-## Client
-
-[Show source in client.py:40](../../../../../julep/client.py#L40)
-
-A class that encapsulates managers for different aspects of a system and provides an interface for interacting with an API.
-
-This class initializes and makes use of various manager classes to handle agents, users, sessions, documents, memories, and tools. It requires an API key and a base URL to initialize the API client that the managers will use.
-
-Attributes:
- agents (AgentsManager): A manager instance for handling agents.
- users (UsersManager): A manager instance for handling users.
- sessions (SessionsManager): A manager instance for handling sessions.
- docs (DocsManager): A manager instance for handling documents.
- memories (MemoriesManager): A manager instance for handling memories.
- tools (ToolsManager): A manager instance for handling tools.
- chat (Chat): A chat manager instance for handling chat interactions (based on OpenAI client).
- completions (Completions): A manager instance for handling completions (based on OpenAI client).
-
-Args:
- api_key (Optional[str]): The API key needed to authenticate with the API. Defaults to the JULEP_API_KEY environment variable.
- base_url (Optional[str]): The base URL for the API endpoints. Defaults to the JULEP_API_URL environment variable.
- *args: Variable length argument list.
- **kwargs: Arbitrary keyword arguments.
-
-Raises:
- AssertionError: If either `api_key` or `base_url` is not provided and not set as an environment variable.
-
-Note:
- `beartype` decorator is expected to ensure type checking on the parameters during runtime. The constants `JULEP_API_KEY` and `JULEP_API_URL` should be predefined and represent default values for the API key and base URL, respectively, which can be overridden by providing a value at instantiation.
-
-#### Signature
-
-```python
-class Client:
- @beartype
- def __init__(
- self,
- api_key: Optional[str] = JULEP_API_KEY,
- base_url: Optional[str] = JULEP_API_URL,
- timeout: int = 300,
- additional_headers: Dict[str, str] = {},
- _httpx_client: Optional[httpx.Client] = None,
- *args,
- **kwargs
- ): ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/env.md b/docs/python-sdk-docs/julep/env.md
deleted file mode 100644
index b0a6fe385..000000000
--- a/docs/python-sdk-docs/julep/env.md
+++ /dev/null
@@ -1,14 +0,0 @@
-# Env
-
-[Julep Python SDK Index](../README.md#julep-python-sdk-index) / [Julep](./index.md#julep) / Env
-
-> Auto-generated documentation for [julep.env](../../../../../julep/env.py) module.
-
-#### Attributes
-
-- `env` - Initialize the environment variable handler.: Env()
-
-- `JULEP_API_KEY`: `Optional[str]` - Optional environment variable for the Julep API key. Defaults to None if not set.: env.str('JULEP_API_KEY', None)
-
-- `JULEP_API_URL`: `Optional[str]` - Optional environment variable for the Julep API URL. Defaults to the Julep API's default environment URL if not set.: env.str('JULEP_API_URL', JulepApiEnvironment.DEFAULT.value)
-- [Env](#env)
diff --git a/docs/python-sdk-docs/julep/index.md b/docs/python-sdk-docs/julep/index.md
deleted file mode 100644
index 956edacf9..000000000
--- a/docs/python-sdk-docs/julep/index.md
+++ /dev/null
@@ -1,16 +0,0 @@
-# Julep
-
-[Julep Python SDK Index](../README.md#julep-python-sdk-index) / Julep
-
-> Auto-generated documentation for [julep](../../../../../julep/__init__.py) module.
-
-- [Julep](#julep)
- - [Modules](#modules)
-
-## Modules
-
-- [Julep Python Library](api/index.md)
-- [Client](./client.md)
-- [Env](./env.md)
-- [Managers](managers/index.md)
-- [Utils](utils/index.md)
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/managers/agent.md b/docs/python-sdk-docs/julep/managers/agent.md
deleted file mode 100644
index aaf04fd29..000000000
--- a/docs/python-sdk-docs/julep/managers/agent.md
+++ /dev/null
@@ -1,748 +0,0 @@
-# Agent
-
-[Julep Python SDK Index](../../README.md#julep-python-sdk-index) / [Julep](../index.md#julep) / [Managers](./index.md#managers) / Agent
-
-> Auto-generated documentation for [julep.managers.agent](../../../../../../julep/managers/agent.py) module.
-
-- [Agent](#agent)
- - [AgentCreateArgs](#agentcreateargs)
- - [AgentUpdateArgs](#agentupdateargs)
- - [AgentsManager](#agentsmanager)
- - [AsyncAgentsManager](#asyncagentsmanager)
- - [BaseAgentsManager](#baseagentsmanager)
-
-## AgentCreateArgs
-
-[Show source in agent.py:41](../../../../../../julep/managers/agent.py#L41)
-
-#### Signature
-
-```python
-class AgentCreateArgs(TypedDict): ...
-```
-
-
-
-## AgentUpdateArgs
-
-[Show source in agent.py:53](../../../../../../julep/managers/agent.py#L53)
-
-#### Signature
-
-```python
-class AgentUpdateArgs(TypedDict): ...
-```
-
-
-
-## AgentsManager
-
-[Show source in agent.py:312](../../../../../../julep/managers/agent.py#L312)
-
-A class for managing agents, inheriting from [BaseAgentsManager](#baseagentsmanager).
-
-This class provides functionalities to interact with and manage agents, including creating, retrieving, listing, updating, and deleting agents. It utilizes type annotations to ensure type correctness at runtime using the `beartype` decorator.
-
-#### Methods
-
-- `get(id` - Union[str, UUID]) -> Agent:
- Retrieves an agent by its unique identifier.
-
-#### Arguments
-
-id (Union[str, UUID]): The unique identifier of the agent, which can be either a string or a UUID.
-
-- `name` *str* - The name of the agent.
-- `about` *str* - A description of the agent.
-- `instructions` *List[str]* - A list of instructions or dictionaries defining instructions.
-- `tools` *List[ToolDict], optional* - A list of dictionaries defining tools. Defaults to an empty list.
-- `functions` *List[FunctionDefDict], optional* - A list of dictionaries defining functions. Defaults to an empty list.
-- `default_settings` *DefaultSettingsDict, optional* - A dictionary of default settings. Defaults to an empty dictionary.
-- `model` *ModelName, optional* - The model name to be used. Defaults to 'julep-ai/samantha-1-turbo'.
-- `docs` *List[DocDict], optional* - A list of dictionaries defining documentation. Defaults to an empty list.
-metadata (Dict[str, Any])
-
-- `limit` *Optional[int], optional* - The maximum number of agents to retrieve. Defaults to None, meaning no limit.
-- `offset` *Optional[int], optional* - The number of agents to skip (for pagination). Defaults to None.
-
-agent_id (Union[str, UUID]): The unique identifier of the agent to be deleted.
-
-- `update(*,` *agent_id* - Union[str, UUID], about: Optional[str]=None, instructions: Optional[List[str]]=None, name: Optional[str]=None, model: Optional[str]=None, default_settings: Optional[DefaultSettingsDict]=None) -> ResourceUpdatedResponse:
- Updates an existing agent with new details.
-
-agent_id (Union[str, UUID]): The unique identifier of the agent to be updated.
-- `about` *Optional[str], optional* - A new description of the agent. Defaults to None (no change).
-- `instructions` *Optional[List[str]], optional* - A new list of instructions or dictionaries defining instructions. Defaults to None (no change).
-- `name` *Optional[str], optional* - A new name for the agent. Defaults to None (no change).
-- `model` *Optional[str], optional* - A new model name to be used. Defaults to None (no change).
-- `default_settings` *Optional[DefaultSettingsDict], optional* - A new dictionary of default settings. Defaults to None (no change).
-metadata (Dict[str, Any])
-
-#### Returns
-
-- `Agent` - The agent with the corresponding identifier.
-
-- `create(*,` *name* - str, about: str, instructions: List[str], tools: List[ToolDict]=[], functions: List[FunctionDefDict]=[], default_settings: DefaultSettingsDict={}, model: ModelName='julep-ai/samantha-1-turbo', docs: List[DocDict]=[]) -> ResourceCreatedResponse:
- Creates a new agent with the provided details.
-
-- `ResourceCreatedResponse` - The response indicating the resource (agent) was successfully created.
-
-- `list(*,` *limit* - Optional[int]=None, offset: Optional[int]=None) -> List[Agent]:
- Lists all agents with pagination support.
-
-- `List[Agent]` - A list of agents, considering the pagination parameters.
-
-- `delete(agent_id` - Union[str, UUID]):
- Deletes an agent by its unique identifier.
-
-- `ResourceUpdatedResponse` - The response indicating the resource (agent) was successfully updated.
-
-#### Signature
-
-```python
-class AgentsManager(BaseAgentsManager): ...
-```
-
-#### See also
-
-- [BaseAgentsManager](#baseagentsmanager)
-
-### AgentsManager().create
-
-[Show source in agent.py:394](../../../../../../julep/managers/agent.py#L394)
-
-Creates a new resource with the specified details.
-
-#### Arguments
-
-- `name` *str* - The name of the resource.
-- `about` *str* - A description of the resource.
-- `instructions` *List[str]* - A list of instructions or dictionaries with instruction details.
-- `tools` *List[ToolDict], optional* - A list of dictionaries with tool details. Defaults to an empty list.
-- `functions` *List[FunctionDefDict], optional* - A list of dictionaries with function definition details. Defaults to an empty list.
-- `default_settings` *DefaultSettingsDict, optional* - A dictionary with default settings. Defaults to an empty dictionary.
-- `model` *ModelName, optional* - The name of the model to use. Defaults to 'julep-ai/samantha-1-turbo'.
-- `docs` *List[DocDict], optional* - A list of dictionaries with documentation details. Defaults to an empty list.
-metadata (Dict[str, Any])
-
-#### Returns
-
-- `Agent` - An instance of the Agent with the specified details
-
-#### Notes
-
-This function is decorated with `@beartype`, which will perform runtime type checking on the arguments.
-
-#### Signature
-
-```python
-@beartype
-@rewrap_in_class(Agent)
-def create(self, **kwargs: AgentCreateArgs) -> Agent: ...
-```
-
-#### See also
-
-- [AgentCreateArgs](#agentcreateargs)
-
-### AgentsManager().delete
-
-[Show source in agent.py:453](../../../../../../julep/managers/agent.py#L453)
-
-Delete the agent with the specified ID.
-
-Args:
- agent_id (Union[str, UUID]): The identifier of the agent to be deleted.
-
-Returns:
- The return type depends on the implementation of the `_delete` method. This will typically be `None`
- if the deletion is successful, or an error may be raised if the deletion fails.
-
-Note:
- The `@beartype` decorator is used to enforce type checking of the `agent_id` parameter.
-
-#### Signature
-
-```python
-@beartype
-def delete(self, agent_id: Union[str, UUID]): ...
-```
-
-### AgentsManager().get
-
-[Show source in agent.py:377](../../../../../../julep/managers/agent.py#L377)
-
-Retrieve an Agent object by its identifier.
-
-#### Arguments
-
-id (Union[str, UUID]): The unique identifier of the Agent to be retrieved.
-
-#### Returns
-
-- `Agent` - An instance of the Agent with the specified ID.
-
-#### Raises
-
-- `BeartypeException` - If the type of `id` is neither a string nor a UUID.
-Any exception raised by the `_get` method.
-
-#### Signature
-
-```python
-@beartype
-def get(self, id: Union[str, UUID]) -> Agent: ...
-```
-
-### AgentsManager().list
-
-[Show source in agent.py:420](../../../../../../julep/managers/agent.py#L420)
-
-List the Agent objects, possibly with pagination.
-
-#### Arguments
-
-- `limit` *Optional[int], optional* - The maximum number of Agent objects to return.
- Defaults to None, meaning no limit is applied.
-- `offset` *Optional[int], optional* - The number of initial Agent objects to skip before
- starting to collect the return list. Defaults to None,
- meaning no offset is applied.
-
-#### Returns
-
-- `List[Agent]` - A list of Agent objects.
-
-#### Raises
-
-- `BeartypeDecorHintPepParamViolation` - If the function is called with incorrect types
- for the `limit` or `offset` parameters.
-
-#### Signature
-
-```python
-@beartype
-def list(
- self,
- limit: Optional[int] = None,
- offset: Optional[int] = None,
- metadata_filter: Dict[str, Any] = {},
-) -> List[Agent]: ...
-```
-
-### AgentsManager().update
-
-[Show source in agent.py:470](../../../../../../julep/managers/agent.py#L470)
-
-Update the properties of a resource.
-
-This function updates various attributes of an existing resource based on the provided keyword arguments. All updates are optional and are applied only if the corresponding argument is given.
-
-#### Arguments
-
-agent_id (Union[str, UUID]): The identifier of the agent, either as a string or a UUID object.
-- `about` *Optional[str], optional* - A brief description of the agent. Defaults to None.
-- `instructions` *Optional[List[str]], optional* - A list of instructions or instruction dictionaries to update the agent with. Defaults to None.
-- `name` *Optional[str], optional* - The new name to assign to the agent. Defaults to None.
-- `model` *Optional[str], optional* - The model identifier to associate with the agent. Defaults to None.
-- `default_settings` *Optional[DefaultSettingsDict], optional* - A dictionary of default settings to apply to the agent. Defaults to None.
-metadata (Dict[str, Any])
-- `overwrite` *bool, optional* - Whether to overwrite the existing agent settings. Defaults to False.
-
-#### Returns
-
-- `ResourceUpdatedResponse` - An object representing the response to the update request.
-
-#### Notes
-
-This method is decorated with `beartype`, which means it enforces type annotations at runtime.
-
-#### Signature
-
-```python
-@beartype
-@rewrap_in_class(Agent)
-def update(self, agent_id: Union[str, UUID], **kwargs: AgentUpdateArgs) -> Agent: ...
-```
-
-#### See also
-
-- [AgentUpdateArgs](#agentupdateargs)
-
-
-
-## AsyncAgentsManager
-
-[Show source in agent.py:499](../../../../../../julep/managers/agent.py#L499)
-
-A class for managing asynchronous agent operations.
-
-This class provides asynchronous methods for creating, retrieving, updating,
-listing, and deleting agents. It is a subclass of BaseAgentsManager, which
-defines the underlying functionality and structure that this class utilizes.
-
-#### Attributes
-
-None explicitly listed, as they are inherited from the [BaseAgentsManager](#baseagentsmanager) class.
-
-#### Methods
-
-get:
- Retrieves a single agent by its ID.
-
-#### Arguments
-
-id (Union[UUID, str]): The unique identifier of the agent to retrieve.
-
-- `name` *str* - The name of the agent to create.
-- `about` *str* - A description of the agent.
-- `instructions` *List[str]* - The instructions for operating the agent.
-- `tools` *List[ToolDict], optional* - An optional list of tools for the agent.
-- `functions` *List[FunctionDefDict], optional* - An optional list of functions the agent can perform.
-- `default_settings` *DefaultSettingsDict, optional* - Optional default settings for the agent.
-- `model` *ModelName, optional* - The model name to associate with the agent, defaults to 'julep-ai/samantha-1-turbo'.
-- `docs` *List[DocDict], optional* - An optional list of documents associated with the agent.
-metadata (Dict[str, Any])
-
-- `limit` *Optional[int], optional* - The maximum number of agents to retrieve.
-- `offset` *Optional[int], optional* - The number of agents to skip before starting to collect the results.
-
-agent_id (Union[str, UUID]): The unique identifier of the agent to delete.
-
-agent_id (Union[str, UUID]): The unique identifier of the agent to update.
-- `about` *Optional[str], optional* - An optional new description for the agent.
-- `instructions` *Optional[List[str]], optional* - Optional new instructions for the agent.
-- `name` *Optional[str], optional* - An optional new name for the agent.
-- `model` *Optional[str], optional* - Optional new model associated with the agent.
-- `default_settings` *Optional[DefaultSettingsDict], optional* - Optional new default settings for the agent.
-metadata (Dict[str, Any])
-
-#### Returns
-
-- `Agent` - The requested agent.
-
-create:
- Creates a new agent with the provided specifications.
-
-- `ResourceCreatedResponse` - A response indicating the agent was created successfully.
-
-list:
- Asynchronously lists agents with optional pagination and returns an awaitable object.
-
-- `List[Agent]` - A list of agents.
-
-delete:
- Asynchronously deletes an agent by its ID and returns an awaitable object.
-
-The response from the delete operation (specific return type may vary).
-
-update:
- Asynchronously updates the specified fields of an agent by its ID and returns an awaitable object.
-
-- `ResourceUpdatedResponse` - A response indicating the agent was updated successfully.
-
-#### Signature
-
-```python
-class AsyncAgentsManager(BaseAgentsManager): ...
-```
-
-#### See also
-
-- [BaseAgentsManager](#baseagentsmanager)
-
-### AsyncAgentsManager().create
-
-[Show source in agent.py:591](../../../../../../julep/managers/agent.py#L591)
-
-Create a new resource asynchronously with specified details.
-
-This function is decorated with `beartype` to ensure that arguments conform to specified types.
-
-#### Arguments
-
-- `name` *str* - The name of the resource to create.
-- `about` *str* - Information or description about the resource.
-- `instructions` *List[str]* - A list of strings or dictionaries detailing the instructions for the resource.
-- `tools` *List[ToolDict], optional* - A list of dictionaries representing the tools associated with the resource. Defaults to an empty list.
-- `functions` *List[FunctionDefDict], optional* - A list of dictionaries defining functions that can be performed with the resource. Defaults to an empty list.
-- `default_settings` *DefaultSettingsDict, optional* - A dictionary with default settings for the resource. Defaults to an empty dictionary.
-- `model` *ModelName, optional* - The model identifier to use for the resource. Defaults to 'julep-ai/samantha-1-turbo'.
-- `docs` *List[DocDict], optional* - A list of dictionaries containing documentation for the resource. Defaults to an empty list.
-metadata (Dict[str, Any])
-
-#### Returns
-
-- `Agent` - An instance of the Agent with the specified details
-
-#### Raises
-
-The exceptions that may be raised are not specified in the signature and depend on the implementation of the _create method.
-
-#### Signature
-
-```python
-@beartype
-@rewrap_in_class(Agent)
-async def create(self, **kwargs: AgentCreateArgs) -> Agent: ...
-```
-
-#### See also
-
-- [AgentCreateArgs](#agentcreateargs)
-
-### AsyncAgentsManager().delete
-
-[Show source in agent.py:650](../../../../../../julep/managers/agent.py#L650)
-
-Asynchronously deletes an agent given its identifier.
-
-This function is decorated with @beartype to ensure type checking of the input argument at runtime.
-
-#### Arguments
-
-agent_id (Union[str, UUID]): The identifier of the agent to be deleted. Can be a string or a UUID object.
-
-#### Returns
-
-The result of the asynchronous deletion operation, which is implementation-dependent.
-
-#### Signature
-
-```python
-@beartype
-async def delete(self, agent_id: Union[str, UUID]): ...
-```
-
-### AsyncAgentsManager().get
-
-[Show source in agent.py:572](../../../../../../julep/managers/agent.py#L572)
-
-Asynchronously retrieve an Agent object by its ID.
-
-The `id` parameter can be either a UUID or a string representation of a UUID.
-
-#### Arguments
-
-id (Union[UUID, str]): The unique identifier of the Agent to retrieve.
-
-#### Returns
-
-- `Agent` - The Agent object associated with the given id.
-
-#### Raises
-
-- `Beartype` *exceptions* - If the input id does not conform to the specified types.
-- `Other` *exceptions* - Depending on the implementation of the `_get` method.
-
-#### Signature
-
-```python
-@beartype
-async def get(self, id: Union[UUID, str]) -> Agent: ...
-```
-
-### AsyncAgentsManager().list
-
-[Show source in agent.py:619](../../../../../../julep/managers/agent.py#L619)
-
-Asynchronously lists agents with optional limit and offset.
-
-This method wraps the call to a private method '_list_items' which performs the actual listing
-of agent items. It uses the 'beartype' decorator for runtime type checking.
-
-#### Arguments
-
-- `limit` *Optional[int], optional* - The maximum number of agent items to return. Defaults to None, which means no limit.
-- `offset` *Optional[int], optional* - The offset from where to start the listing. Defaults to None, which means start from the beginning.
-
-#### Returns
-
-- `List[Agent]` - A list of agent items collected based on the provided 'limit' and 'offset' parameters.
-
-#### Signature
-
-```python
-@beartype
-async def list(
- self,
- limit: Optional[int] = None,
- offset: Optional[int] = None,
- metadata_filter: Dict[str, Any] = {},
-) -> List[Agent]: ...
-```
-
-### AsyncAgentsManager().update
-
-[Show source in agent.py:665](../../../../../../julep/managers/agent.py#L665)
-
-Asynchronously update an agent's details.
-
-This function is decorated with `beartype` to enforce the type checking of parameters. It updates the properties of the agent identified by `agent_id`.
-
-#### Arguments
-
-agent_id (Union[str, UUID]): Unique identifier for the agent. It can be a string or a UUID object.
-- `about` *Optional[str]* - Additional information about the agent. Default is None.
-- `instructions` *Optional[List[str]]* - A list of instructions or instruction dictionaries. Default is None.
-- `name` *Optional[str]* - The name of the agent. Default is None.
-- `model` *Optional[str]* - The model identifier or name. Default is None.
-- `default_settings` *Optional[DefaultSettingsDict]* - Dictionary with default settings for the agent. Default is None.
-metadata (Dict[str, Any])
-- `overwrite` *bool* - Whether to overwrite the existing agent settings. Default is False.
-
-#### Returns
-
-- `ResourceUpdatedResponse` - An object containing the details of the update response.
-
-#### Signature
-
-```python
-@beartype
-@rewrap_in_class(Agent)
-async def update(
- self, agent_id: Union[str, UUID], **kwargs: AgentUpdateArgs
-) -> Agent: ...
-```
-
-#### See also
-
-- [AgentUpdateArgs](#agentupdateargs)
-
-
-
-## BaseAgentsManager
-
-[Show source in agent.py:63](../../../../../../julep/managers/agent.py#L63)
-
-A class responsible for managing agent entities.
-
-This manager handles CRUD operations for agents including retrieving, creating, listing, deleting, and updating agents using an API client.
-
-#### Attributes
-
-- `api_client` *ApiClientType* - The client responsible for API interactions.
-
-#### Methods
-
-- `_get(self,` *id* - Union[str, UUID]) -> Union[Agent, Awaitable[Agent]]:
- Retrieves a single agent by its UUID.
-
-#### Arguments
-
-id (Union[str, UUID]): The UUID of the agent to retrieve.
-- `name` *str* - The name of the new agent.
-- `about` *str* - Description about the new agent.
-- `instructions` *List[str]* - List of instructions or instruction dictionaries for the new agent.
-- `tools` *List[ToolDict], optional* - List of tool dictionaries. Defaults to an empty list.
-- `functions` *List[FunctionDefDict], optional* - List of function definition dictionaries. Defaults to an empty list.
-- `default_settings` *DefaultSettingsDict, optional* - Dictionary of default settings for the new agent. Defaults to an empty dictionary.
-- `model` *ModelName, optional* - The model name for the new agent. Defaults to 'julep-ai/samantha-1-turbo'.
-- `docs` *List[DocDict], optional* - List of document dictionaries for the new agent. Defaults to an empty list.
-metadata (Dict[str, Any], optional): Dictionary of metadata for the new agent. Defaults to an empty dictionary.
-- `limit` *Optional[int], optional* - The maximum number of agents to list. Defaults to None.
-- `offset` *Optional[int], optional* - The number of agents to skip (for pagination). Defaults to None.
-metadata_filter (Dict[str, Any], optional): Filters for querying agents based on metadata. Defaults to an empty dictionary.
-agent_id (Union[str, UUID]): The UUID of the agent to delete.
-agent_id (Union[str, UUID]): The UUID of the agent to update.
-- `about` *Optional[str], optional* - The new description about the agent.
-- `instructions` *Optional[List[str]], optional* - The new list of instructions or instruction dictionaries.
-- `name` *Optional[str], optional* - The new name for the agent.
-- `model` *Optional[str], optional* - The new model name for the agent.
-- `default_settings` *Optional[DefaultSettingsDict], optional* - The new default settings dictionary for the agent.
-metadata (Dict[str, Any])
-
-#### Returns
-
-The agent object or an awaitable that resolves to the agent object.
-
-- `_create(self,` *name* - str, about: str, instructions: List[str], tools: List[ToolDict] = [], functions: List[FunctionDefDict] = [], default_settings: DefaultSettingsDict = {}, model: ModelName = 'julep-ai/samantha-1-turbo', docs: List[DocDict] = [], metadata: Dict[str, Any] = {}) -> Union[ResourceCreatedResponse, Awaitable[ResourceCreatedResponse]]:
- Creates an agent with the given specifications.
- The response indicating creation or an awaitable that resolves to the creation response.
-
-- `_list_items(self,` *limit* - Optional[int] = None, offset: Optional[int] = None, metadata_filter: Dict[str, Any] = {}) -> Union[ListAgentsResponse, Awaitable[ListAgentsResponse]]:
- Lists agents with pagination support and optional metadata filtering.
- The list of agents or an awaitable that resolves to the list of agents.
-
-- `_delete(self,` *agent_id* - Union[str, UUID]) -> Union[None, Awaitable[None]]:
- Deletes an agent with the specified UUID.
- None or an awaitable that resolves to None.
-
-- `_update(self,` *agent_id* - Union[str, UUID], about: Optional[str] = None, instructions: Optional[List[str]] = None, name: Optional[str] = None, model: Optional[str] = None, default_settings: Optional[DefaultSettingsDict] = None, metadata: Dict[str, Any] = {}) -> Union[ResourceUpdatedResponse, Awaitable[ResourceUpdatedResponse]]:
- Updates the specified fields of an agent.
- The response indicating successful update or an awaitable that resolves to the update response.
-
-#### Signature
-
-```python
-class BaseAgentsManager(BaseManager): ...
-```
-
-### BaseAgentsManager()._create
-
-[Show source in agent.py:141](../../../../../../julep/managers/agent.py#L141)
-
-Create a new agent with the specified configuration.
-
-#### Arguments
-
-- `name` *str* - Name of the agent.
-- `about` *str* - Information about the agent.
-- `instructions` *List[str]* - List of instructions as either string or dictionaries for the agent.
-- `tools` *List[ToolDict], optional* - List of tool configurations for the agent. Defaults to an empty list.
-- `functions` *List[FunctionDefDict], optional* - List of function definitions for the agent. Defaults to an empty list.
-- `default_settings` *DefaultSettingsDict, optional* - Dictionary of default settings for the agent. Defaults to an empty dict.
-- `model` *ModelName, optional* - The model name identifier. Defaults to 'julep-ai/samantha-1-turbo'.
-- `docs` *List[DocDict], optional* - List of document configurations for the agent. Defaults to an empty list.
-metadata (Dict[str, Any])
-
-#### Returns
-
-- `Union[ResourceCreatedResponse,` *Awaitable[ResourceCreatedResponse]]* - The response object indicating the resource has been created or a future of the response object if the creation is being awaited.
-
-#### Raises
-
-- `AssertionError` - If both functions and tools are provided.
-
-#### Notes
-
-The `_create` method is meant to be used internally and should be considered private.
-It assumes the input data for instructions, tools, and docs will have the proper format,
-and items in the 'instructions' list will be converted to Instruction instances.
-
-#### Signature
-
-```python
-def _create(
- self,
- name: str,
- about: str = "",
- instructions: List[str] = [],
- tools: List[ToolDict] = [],
- functions: List[FunctionDefDict] = [],
- default_settings: DefaultSettingsDict = {},
- model: ModelName = "julep-ai/samantha-1-turbo",
- docs: List[DocDict] = [],
- metadata: Dict[str, Any] = {},
-) -> Union[ResourceCreatedResponse, Awaitable[ResourceCreatedResponse]]: ...
-```
-
-#### See also
-
-- [ModelName](#modelname)
-
-### BaseAgentsManager()._delete
-
-[Show source in agent.py:235](../../../../../../julep/managers/agent.py#L235)
-
-Delete an agent by its ID.
-
-#### Arguments
-
-agent_id (Union[str, UUID]): The UUID v4 of the agent to be deleted.
-
-#### Returns
-
-- `Union[None,` *Awaitable[None]]* - A future that resolves to None if the
-operation is asynchronous, or None immediately if the operation is
-synchronous.
-
-#### Raises
-
-- `AssertionError` - If `agent_id` is not a valid UUID v4.
-
-#### Signature
-
-```python
-def _delete(self, agent_id: Union[str, UUID]) -> Union[None, Awaitable[None]]: ...
-```
-
-### BaseAgentsManager()._get
-
-[Show source in agent.py:125](../../../../../../julep/managers/agent.py#L125)
-
-Retrieves an agent based on the provided identifier.
-
-#### Arguments
-
-id (Union[str, UUID]): The identifier of the agent, which can be a string or UUID object.
-
-#### Returns
-
-- `Union[Agent,` *Awaitable[Agent]]* - The agent object or an awaitable yielding the agent object, depending on the API client.
-
-#### Raises
-
-- `AssertionError` - If the provided id is not a valid UUID v4.
-
-#### Signature
-
-```python
-def _get(self, id: Union[str, UUID]) -> Union[Agent, Awaitable[Agent]]: ...
-```
-
-### BaseAgentsManager()._list_items
-
-[Show source in agent.py:211](../../../../../../julep/managers/agent.py#L211)
-
-Lists items with optional pagination.
-
-This method wraps the `list_agents` API call and includes optional limit and offset parameters for pagination.
-
-Args:
- limit (Optional[int], optional): The maximum number of items to return. Defaults to None, which means no limit.
- offset (Optional[int], optional): The index of the first item to return. Defaults to None, which means no offset.
-
-Returns:
- Union[ListAgentsResponse, Awaitable[ListAgentsResponse]]: A ListAgentsResponse object, or an awaitable that resolves to a ListAgentsResponse object.
-
-#### Signature
-
-```python
-def _list_items(
- self,
- limit: Optional[int] = None,
- offset: Optional[int] = None,
- metadata_filter: str = "{}",
-) -> Union[ListAgentsResponse, Awaitable[ListAgentsResponse]]: ...
-```
-
-### BaseAgentsManager()._update
-
-[Show source in agent.py:253](../../../../../../julep/managers/agent.py#L253)
-
-Update the agent's properties.
-
-Args:
- agent_id (Union[str, UUID]): The unique identifier for the agent, which can be a string or UUID object.
- about (Optional[str], optional): A brief description of the agent. Defaults to None.
- instructions (Optional[List[str]], optional): A list of either strings or instruction dictionaries that will be converted into Instruction objects. Defaults to None.
- name (Optional[str], optional): The name of the agent. Defaults to None.
- model (Optional[str], optional): The model identifier for the agent. Defaults to None.
- default_settings (Optional[DefaultSettingsDict], optional): A dictionary of default settings to apply to the agent. Defaults to None.
- metadata (Dict[str, Any])
- overwrite (bool, optional): Whether to overwrite the existing agent settings. Defaults to False.
-
-Returns:
- Union[ResourceUpdatedResponse, Awaitable[ResourceUpdatedResponse]]: An object representing the response for the resource updated, which can also be an awaitable in asynchronous contexts.
-
-Raises:
- AssertionError: If the provided agent_id is not validated by the is_valid_uuid4 function.
-
-Note:
- This method asserts that the agent_id must be a valid UUID v4. The instructions and default_settings, if provided, are converted into their respective object types before making the update API call.
-
-#### Signature
-
-```python
-def _update(
- self,
- agent_id: Union[str, UUID],
- about: Optional[str] = NotSet,
- instructions: List[str] = NotSet,
- name: Optional[str] = NotSet,
- model: Optional[str] = NotSet,
- default_settings: Optional[DefaultSettingsDict] = NotSet,
- metadata: Dict[str, Any] = NotSet,
- overwrite: bool = False,
-) -> Union[ResourceUpdatedResponse, Awaitable[ResourceUpdatedResponse]]: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/managers/base.md b/docs/python-sdk-docs/julep/managers/base.md
deleted file mode 100644
index 242176b4f..000000000
--- a/docs/python-sdk-docs/julep/managers/base.md
+++ /dev/null
@@ -1,27 +0,0 @@
-# Base
-
-[Julep Python SDK Index](../../README.md#julep-python-sdk-index) / [Julep](../index.md#julep) / [Managers](./index.md#managers) / Base
-
-> Auto-generated documentation for [julep.managers.base](../../../../../../julep/managers/base.py) module.
-
-- [Base](#base)
- - [BaseManager](#basemanager)
-
-## BaseManager
-
-[Show source in base.py:7](../../../../../../julep/managers/base.py#L7)
-
-A class that serves as a base manager for working with different API clients. This class is responsible for abstracting the complexities of interacting with various API clients, providing a unified interface for higher-level components.
-
-Attributes:
- api_client (Union[JulepApi, AsyncJulepApi]): A client instance for communicating with an API. This attribute is essential for enabling the class to perform API operations, whether they are synchronous or asynchronous.
-
-Args:
- api_client (Union[JulepApi, AsyncJulepApi]): The API client that is used for making API calls. It is crucial for the operation of this class, allowing it to interact with the API effectively.
-
-#### Signature
-
-```python
-class BaseManager:
- def __init__(self, api_client: Union[JulepApi, AsyncJulepApi]): ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/managers/doc.md b/docs/python-sdk-docs/julep/managers/doc.md
deleted file mode 100644
index d25537089..000000000
--- a/docs/python-sdk-docs/julep/managers/doc.md
+++ /dev/null
@@ -1,501 +0,0 @@
-# Doc
-
-[Julep Python SDK Index](../../README.md#julep-python-sdk-index) / [Julep](../index.md#julep) / [Managers](./index.md#managers) / Doc
-
-> Auto-generated documentation for [julep.managers.doc](../../../../../../julep/managers/doc.py) module.
-
-- [Doc](#doc)
- - [AsyncDocsManager](#asyncdocsmanager)
- - [BaseDocsManager](#basedocsmanager)
- - [DocsCreateArgs](#docscreateargs)
- - [DocsManager](#docsmanager)
-
-## AsyncDocsManager
-
-[Show source in doc.py:342](../../../../../../julep/managers/doc.py#L342)
-
-A class for managing asynchronous operations on documents.
-
-Inherits from BaseDocsManager to provide async document retrieval, creation, and deletion.
-
-#### Attributes
-
-Inherited from BaseDocsManager.
-
-#### Methods
-
-async list(self, *, agent_id: Optional[Union[str, UUID]] = None, user_id: Optional[Union[str, UUID]] = None, limit: Optional[int] = None, offset: Optional[int] = None) -> List[Doc]:
- Asynchronously get a list of documents, with optional filtering based on agent_id, user_id, and pagination options limit and offset.
-
-#### Arguments
-
-agent_id (Optional[Union[str, UUID]]): The agent's identifier to filter documents.
-user_id (Optional[Union[str, UUID]]): The user's identifier to filter documents.
-- `limit` *Optional[int]* - The maximum number of documents to return.
-- `offset` *Optional[int]* - The offset from where to start returning documents.
-agent_id (Optional[Union[str, UUID]]): The agent's identifier associated with the document.
-user_id (Optional[Union[str, UUID]]): The user's identifier associated with the document.
-- `doc` *DocDict* - The document data to be created.
-doc_id (Union[str, UUID]): The unique identifier of the document to be deleted.
-agent_id (Optional[Union[str, UUID]]): The agent's identifier associated with the document, if applicable.
-user_id (Optional[Union[str, UUID]]): The user's identifier associated with the document, if applicable.
-
-#### Returns
-
-- `List[Doc]` - A list of documents.
-
-async create(self, *, agent_id: Optional[Union[str, UUID]] = None, user_id: Optional[Union[str, UUID]] = None, doc: DocDict) -> ResourceCreatedResponse:
- Asynchronously create a new document with the given document information, and optional agent_id and user_id.
- - `ResourceCreatedResponse` - A response object indicating successful creation of the document.
-
-async delete(self, *, doc_id: Union[str, UUID], agent_id: Optional[Union[str, UUID]] = None, user_id: Optional[Union[str, UUID]] = None):
- Asynchronously delete a document by its id, with optional association to a specific agent_id or user_id.
-
-#### Notes
-
-The `@beartype` decorator is being used to perform runtime type checking on the function arguments.
-
-#### Signature
-
-```python
-class AsyncDocsManager(BaseDocsManager): ...
-```
-
-#### See also
-
-- [BaseDocsManager](#basedocsmanager)
-
-### AsyncDocsManager().create
-
-[Show source in doc.py:423](../../../../../../julep/managers/doc.py#L423)
-
-Create a new resource asynchronously.
-
-#### Arguments
-
-agent_id (Optional[Union[str, UUID]]): The ID of the agent. Default is None.
-user_id (Optional[Union[str, UUID]]): The ID of the user. Default is None.
-- `doc` *DocDict* - A dictionary containing document data.
-
-#### Returns
-
-- `ResourceCreatedResponse` - An object representing the response for a resource created.
-
-#### Raises
-
-- `BeartypeException` - If any of the input arguments do not match their expected types. This is implicitly raised due to the use of the beartype decorator.
-
-#### Signature
-
-```python
-@beartype
-@rewrap_in_class(Doc)
-async def create(self, **kwargs: DocsCreateArgs) -> Doc: ...
-```
-
-#### See also
-
-- [DocsCreateArgs](#docscreateargs)
-
-### AsyncDocsManager().delete
-
-[Show source in doc.py:443](../../../../../../julep/managers/doc.py#L443)
-
-Asynchronously deletes a document by its ID.
-
-This function is a coroutine and must be awaited.
-
-#### Arguments
-
-doc_id (Union[str, UUID]): The unique identifier of the document to delete.
-agent_id (Optional[Union[str, UUID]]): The unique identifier of the agent, if any.
-user_id (Optional[Union[str, UUID]]): The unique identifier of the user, if any.
-
-#### Returns
-
-- `Coroutine[Any]` - A coroutine that, when awaited, returns the result of the document deletion process.
-
-#### Notes
-
-The `@beartype` decorator is used to enforce type checking on the function arguments.
-
-#### Signature
-
-```python
-@beartype
-async def delete(
- self,
- doc_id: Union[str, UUID],
- agent_id: Optional[Union[str, UUID]] = None,
- user_id: Optional[Union[str, UUID]] = None,
-): ...
-```
-
-### AsyncDocsManager().list
-
-[Show source in doc.py:382](../../../../../../julep/managers/doc.py#L382)
-
-Asynchronously get a list of documents.
-
-This function fetches documents based on the provided filtering criteria such as `agent_id`, `user_id`,
-and supports pagination through `limit` and `offset`.
-
-#### Arguments
-
-agent_id (Optional[Union[str, UUID]]): The ID of the agent to filter documents by. Default is None.
-user_id (Optional[Union[str, UUID]]): The ID of the user to filter documents by. Default is None.
-- `limit` *Optional[int]* - The maximum number of documents to return. Default is None.
-- `offset` *Optional[int]* - The offset from where to start the document retrieval. Default is None.
-
-#### Returns
-
-- `List[Doc]` - A list of document objects.
-
-#### Notes
-
-The `@beartype` decorator is used to ensure that arguments conform to the expected types.
-
-#### Raises
-
-- `BeartypeDecorHintPepParamException` - If any of the parameters do not adhere to the declared types.
-
-#### Signature
-
-```python
-@beartype
-async def list(
- self,
- agent_id: Optional[Union[str, UUID]] = None,
- user_id: Optional[Union[str, UUID]] = None,
- limit: Optional[int] = None,
- offset: Optional[int] = None,
- metadata_filter: Dict[str, Any] = {},
-) -> List[Doc]: ...
-```
-
-
-
-## BaseDocsManager
-
-[Show source in doc.py:30](../../../../../../julep/managers/doc.py#L30)
-
-Manages documents for agents or users by providing internal methods to list, create, and delete documents.
-
-The class utilizes an API client to interact with a back-end service that handles the document management operations.
-
-Typical usage example:
-
-docs_manager = BaseDocsManager(api_client)
-agent_docs = docs_manager._list(agent_id="some-agent-uuid")
-user_docs = docs_manager._list(user_id="some-user-uuid")
-created_doc = docs_manager._create(agent_id="some-agent-uuid", doc={"key": "value"})
-docs_manager._delete(user_id="some-user-uuid", doc_id="some-doc-uuid")
-
-#### Attributes
-
-- `api_client` - A client instance used to make API calls to the document management system.
-
-#### Methods
-
-- `_list(agent_id` - Optional[Union[str, UUID]], user_id: Optional[Union[str, UUID]],
- - `limit` - Optional[int]=None, offset: Optional[int]=None) -> Union[GetAgentDocsResponse, Awaitable[GetAgentDocsResponse]]
- Retrieves docsrmation for either an agent or user.
- Must provide exactly one valid UUID v4 for either `agent_id` or `user_id`.
-
-- `_create(agent_id` - Optional[Union[str, UUID]], user_id: Optional[Union[str, UUID]], doc: DocDict) -> Union[ResourceCreatedResponse, Awaitable[ResourceCreatedResponse]]
- Creates docsrmation for either an agent or user.
- Must provide exactly one valid UUID v4 for either `agent_id` or `user_id`.
- The `doc` parameter contains the document information to be created.
-
-- `_delete(agent_id` - Optional[Union[str, UUID]], user_id: Optional[Union[str, UUID]], doc_id: Union[str, UUID]):
- Deletes docsrmation for either an agent or user.
- Must provide exactly one valid UUID v4 for either `agent_id` or `user_id`, and a valid UUID for `doc_id`.
-
-#### Signature
-
-```python
-class BaseDocsManager(BaseManager): ...
-```
-
-### BaseDocsManager()._create
-
-[Show source in doc.py:115](../../../../../../julep/managers/doc.py#L115)
-
-Create a new resource with docsrmation for either an agent or a user, but not both.
-
-This function asserts that exactly one of `agent_id` or `user_id` is provided and is a valid UUID v4.
-It then creates the appropriate docsrmation based on which ID was provided.
-
-Args:
- agent_id (Optional[Union[str, UUID]]): The UUID of the agent or None.
- user_id (Optional[Union[str, UUID]]): The UUID of the user or None.
- doc (DocDict): A dictionary containing the document data for the resource being created.
- metadata (Dict[str, Any]): Optional metadata for the document. Defaults to an empty dictionary.
-
-Returns:
- Union[ResourceCreatedResponse, Awaitable[ResourceCreatedResponse]]: The response after creating the resource, which could be immediate or an awaitable for asynchronous execution.
-
-Raises:
- AssertionError: If both `agent_id` and `user_id` are provided, neither are provided, or if the provided IDs are not valid UUID v4 strings.
-
-Note:
- One and only one of `agent_id` or `user_id` must be provided and must be a valid UUID v4.
- The `DocDict` type should be a dictionary compatible with the `CreateDoc` schema.
-
-#### Signature
-
-```python
-def _create(
- self,
- doc: DocDict,
- agent_id: Optional[Union[str, UUID]] = None,
- user_id: Optional[Union[str, UUID]] = None,
- metadata: Dict[str, Any] = {},
-) -> Union[ResourceCreatedResponse, Awaitable[ResourceCreatedResponse]]: ...
-```
-
-### BaseDocsManager()._delete
-
-[Show source in doc.py:164](../../../../../../julep/managers/doc.py#L164)
-
-Delete docs based on either an agent_id or a user_id.
-
-This method selects the appropriate deletion operation (agent or user) based on whether an `agent_id` or `user_id` is provided. Only one of these ID types should be valid and provided.
-
-Args:
- agent_id (Optional[Union[str, UUID]]): A unique identifier of an agent. Either a string or UUID v4, but not both `agent_id` and `user_id`.
- user_id (Optional[Union[str, UUID]]): A unique identifier of a user. Either a string or UUID v4, but not both `agent_id` and `user_id`.
- doc_id (Union[str, UUID]): A unique identifier for docsrmation to be deleted, as a string or UUID v4.
-
-Returns:
- The result of the API deletion request. This can be the response object from the client's delete operation.
-
-Raises:
- AssertionError: If both `agent_id` and `user_id` are provided, neither are provided, or if the provided IDs are not valid UUID v4 strings.
- Other exceptions related to the `api_client` operations could potentially be raised and depend on its implementation.
-
-#### Signature
-
-```python
-def _delete(
- self,
- agent_id: Optional[Union[str, UUID]],
- user_id: Optional[Union[str, UUID]],
- doc_id: Union[str, UUID],
-) -> Union[ResourceDeletedResponse, Awaitable[ResourceDeletedResponse]]: ...
-```
-
-### BaseDocsManager()._list
-
-[Show source in doc.py:63](../../../../../../julep/managers/doc.py#L63)
-
-Retrieve docsrmation for an agent or user based on their ID.
-
-This internal method fetches docsrmation for either an agent or a user,
-but not both. If both or neither `agent_id` and `user_id` are provided, it will
-assert an error.
-
-#### Arguments
-
-agent_id (Optional[Union[str, UUID]]): The UUID v4 of the agent for whom docs is requested, exclusive with `user_id`.
-user_id (Optional[Union[str, UUID]]): The UUID v4 of the user for whom docs is requested, exclusive with `agent_id`.
-- `limit` *Optional[int]* - The maximum number of records to return. Defaults to None.
-- `offset` *Optional[int]* - The number of records to skip before starting to collect the response set. Defaults to None.
-metadata_filter (Dict[str, Any]): A dictionary used for filtering documents based on metadata criteria. Defaults to an empty dictionary.
-
-#### Returns
-
-- `Union[GetAgentDocsResponse,` *Awaitable[GetAgentDocsResponse]]* - The response object containing docsrmation about the agent or user, or a promise of such an object if the call is asynchronous.
-
-#### Raises
-
-- `AssertionError` - If both `agent_id` and `user_id` are provided or neither is provided, or if the provided IDs are not valid UUID v4.
-
-#### Signature
-
-```python
-def _list(
- self,
- agent_id: Optional[Union[str, UUID]],
- user_id: Optional[Union[str, UUID]],
- limit: Optional[int] = None,
- offset: Optional[int] = None,
- metadata_filter: Dict[str, Any] = {},
-) -> Union[GetAgentDocsResponse, Awaitable[GetAgentDocsResponse]]: ...
-```
-
-
-
-## DocsCreateArgs
-
-[Show source in doc.py:23](../../../../../../julep/managers/doc.py#L23)
-
-#### Signature
-
-```python
-class DocsCreateArgs(TypedDict): ...
-```
-
-
-
-## DocsManager
-
-[Show source in doc.py:208](../../../../../../julep/managers/doc.py#L208)
-
-A class responsible for managing documents.
-
-This class provides methods for retrieving, creating, and deleting documents. It uses a base document management system to perform operations.
-
-#### Attributes
-
-None specific to this class, as all are inherited from BaseDocsManager.
-
-#### Methods
-
-get:
- Retrieves a list of documents according to specified filters.
-
-#### Arguments
-
-agent_id (Optional[Union[str, UUID]]): The agent's identifier to filter documents by, if any.
-user_id (Optional[Union[str, UUID]]): The user's identifier to filter documents by, if any.
-- `limit` *Optional[int]* - The maximum number of documents to be retrieved.
-- `offset` *Optional[int]* - The number of documents to skip before starting to collect the document output list.
-
-agent_id (Optional[Union[str, UUID]]): The agent's identifier associated with the document, if any.
-user_id (Optional[Union[str, UUID]]): The user's identifier associated with the document, if any.
-- `doc` *DocDict* - The document to be created represented as a dictionary of document metadata.
-
-doc_id (Union[str, UUID]): The identifier of the document to be deleted.
-agent_id (Optional[Union[str, UUID]]): The agent's identifier associated with the document, if any.
-user_id (Optional[Union[str, UUID]]): The user's identifier associated with the document, if any.
-
-#### Returns
-
-- `List[Doc]` - A list of documents matching the provided filters.
-
-create:
- Creates a new document.
-
-- `ResourceCreatedResponse` - An object representing the creation response, typically containing the ID of the created document.
-
-delete:
- Deletes a document by its document identifier.
-
-None, but the method may raise exceptions on failure.
-
-#### Signature
-
-```python
-class DocsManager(BaseDocsManager): ...
-```
-
-#### See also
-
-- [BaseDocsManager](#basedocsmanager)
-
-### DocsManager().create
-
-[Show source in doc.py:288](../../../../../../julep/managers/doc.py#L288)
-
-Create a new resource with the specified document.
-
-This method wraps a call to an internal '_create' method, passing along any
-specified agent or user identifiers, along with the document data.
-
-#### Arguments
-
-agent_id (Optional[Union[str, UUID]]): The agent identifier associated with the resource creation.
-user_id (Optional[Union[str, UUID]]): The user identifier associated with the resource creation.
-- `doc` *DocDict* - A dictionary containing the document data.
-
-#### Returns
-
-- `ResourceCreatedResponse` - An object representing the response for the resource creation operation.
-
-#### Raises
-
-- `BeartypeException` - If any input parameters are of incorrect type, due to type enforcement by the @beartype decorator.
-
-#### Signature
-
-```python
-@beartype
-@rewrap_in_class(Doc)
-def create(self, **kwargs: DocsCreateArgs) -> Doc: ...
-```
-
-#### See also
-
-- [DocsCreateArgs](#docscreateargs)
-
-### DocsManager().delete
-
-[Show source in doc.py:311](../../../../../../julep/managers/doc.py#L311)
-
-Deletes a document by its identifier.
-
-This function wraps the internal _delete method, providing an interface to delete documents by their ID while optionally specifying the agent ID and user ID.
-
-#### Arguments
-
-doc_id (Union[str, UUID]): The unique identifier of the document to be deleted.
-agent_id (Optional[Union[str, UUID]]): The unique identifier of the agent performing the delete operation, if any.
-user_id (Optional[Union[str, UUID]]): The unique identifier of the user performing the delete operation, if any.
-
-#### Returns
-
-The return type depends on the implementation of the `_delete` method.
-
-#### Raises
-
-The exceptions raised depend on the implementation of the `_delete` method.
-
-#### Signature
-
-```python
-@beartype
-def delete(
- self,
- doc_id: Union[str, UUID],
- agent_id: Optional[Union[str, UUID]] = None,
- user_id: Optional[Union[str, UUID]] = None,
-): ...
-```
-
-### DocsManager().list
-
-[Show source in doc.py:253](../../../../../../julep/managers/doc.py#L253)
-
-Retrieve a list of documents based on specified criteria.
-
-This method supports filtering the documents by agent_id or user_id, and also supports pagination through the limit and offset parameters.
-
-#### Arguments
-
-agent_id (Optional[Union[str, UUID]]): The unique identifier for the agent. Can be a string or a UUID object. Default is None, which means no filtering by agent_id is applied.
-user_id (Optional[Union[str, UUID]]): The unique identifier for the user. Can be a string or a UUID object. Default is None, which means no filtering by user_id is applied.
-- `limit` *Optional[int]* - The maximum number of documents to retrieve. Default is None, which means no limit is applied.
-- `offset` *Optional[int]* - The number of documents to skip before starting to collect the document list. Default is None, which means no offset is applied.
-
-#### Returns
-
-- `List[Doc]` - A list of documents that match the provided criteria.
-
-#### Notes
-
-The `@beartype` decorator is used to ensure that the input arguments are of the expected types. If an argument is passed that does not match the expected type, a type error will be raised.
-
-#### Signature
-
-```python
-@beartype
-def list(
- self,
- agent_id: Optional[Union[str, UUID]] = None,
- user_id: Optional[Union[str, UUID]] = None,
- limit: Optional[int] = None,
- offset: Optional[int] = None,
- metadata_filter: Dict[str, Any] = {},
-) -> List[Doc]: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/managers/index.md b/docs/python-sdk-docs/julep/managers/index.md
deleted file mode 100644
index 94775758f..000000000
--- a/docs/python-sdk-docs/julep/managers/index.md
+++ /dev/null
@@ -1,20 +0,0 @@
-# Managers
-
-[Julep Python SDK Index](../../README.md#julep-python-sdk-index) / [Julep](../index.md#julep) / Managers
-
-> Auto-generated documentation for [julep.managers](../../../../../../julep/managers/__init__.py) module.
-
-- [Managers](#managers)
- - [Modules](#modules)
-
-## Modules
-
-- [Agent](./agent.md)
-- [Base](./base.md)
-- [Doc](./doc.md)
-- [Memory](./memory.md)
-- [Session](./session.md)
-- [Task](./task.md)
-- [Tool](./tool.md)
-- [Types](./types.md)
-- [User](./user.md)
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/managers/memory.md b/docs/python-sdk-docs/julep/managers/memory.md
deleted file mode 100644
index 11b7d9dc8..000000000
--- a/docs/python-sdk-docs/julep/managers/memory.md
+++ /dev/null
@@ -1,219 +0,0 @@
-# Memory
-
-[Julep Python SDK Index](../../README.md#julep-python-sdk-index) / [Julep](../index.md#julep) / [Managers](./index.md#managers) / Memory
-
-> Auto-generated documentation for [julep.managers.memory](../../../../../../julep/managers/memory.py) module.
-
-- [Memory](#memory)
- - [AsyncMemoriesManager](#asyncmemoriesmanager)
- - [BaseMemoriesManager](#basememoriesmanager)
- - [MemoriesManager](#memoriesmanager)
-
-## AsyncMemoriesManager
-
-[Show source in memory.py:134](../../../../../../julep/managers/memory.py#L134)
-
-Asynchronously lists memories based on various filter parameters.
-
-Args:
- agent_id (Union[str, UUID]): The unique identifier of the agent.
- query (str): The search query string to filter memories.
- types (Optional[Union[str, List[str]]], optional): The types of memories to filter by. Defaults to None.
- user_id (Optional[str], optional): The unique identifier of the user. Defaults to None.
- limit (Optional[int], optional): The maximum number of memories to return. Defaults to None.
- offset (Optional[int], optional): The number of memories to skip before starting to collect the result set. Defaults to None.
-
-Returns:
- List[Memory]: A list of Memory objects that match the given filters.
-
-Raises:
- ValidationError: If the input validation fails.
- DatabaseError: If there is a problem accessing the database.
-
-#### Signature
-
-```python
-class AsyncMemoriesManager(BaseMemoriesManager): ...
-```
-
-#### See also
-
-- [BaseMemoriesManager](#basememoriesmanager)
-
-### AsyncMemoriesManager().list
-
-[Show source in memory.py:154](../../../../../../julep/managers/memory.py#L154)
-
-Asynchronously list memories based on query parameters.
-
-#### Arguments
-
-agent_id (Union[str, UUID]): The ID of the agent to list memories for.
-- `query` *str* - The query string to filter memories.
-types (Optional[Union[str, List[str]]], optional): The types of memories to retrieve. Defaults to None.
-- `user_id` *Optional[str], optional* - The ID of the user to list memories for. Defaults to None.
-- `limit` *Optional[int], optional* - The maximum number of memories to return. Defaults to None.
-- `offset` *Optional[int], optional* - The offset to start listing memories from. Defaults to None.
-
-#### Returns
-
-- `List[Memory]` - A list of Memory objects that match the query.
-
-#### Notes
-
-`@beartype` decorator is used for runtime type checking.
-
-#### Signature
-
-```python
-@beartype
-async def list(
- self,
- agent_id: Union[str, UUID],
- query: str,
- types: Optional[Union[str, List[str]]] = None,
- user_id: Optional[str] = None,
- limit: Optional[int] = None,
- offset: Optional[int] = None,
-) -> List[Memory]: ...
-```
-
-
-
-## BaseMemoriesManager
-
-[Show source in memory.py:16](../../../../../../julep/managers/memory.py#L16)
-
-A base manager class for handling agent memories.
-
-This manager provides an interface to interact with agent memories, facilitating
-operations such as listing and retrieving memories based on various criteria.
-
-Methods:
- _list(agent_id, query, types=None, user_id=None, limit=None, offset=None):
- Retrieves a list of memories for a given agent.
-
-Args:
- agent_id (str): A valid UUID v4 string identifying the agent.
- query (str): The query string to search memories.
- types (Optional[Union[str, List[str]]]): The type(s) of memories to retrieve.
- user_id (Optional[str]): The user identifier associated with the memories.
- limit (Optional[int]): The maximum number of memories to retrieve.
- offset (Optional[int]): The number of initial memories to skip in the result set.
-
-Returns:
- Union[GetAgentMemoriesResponse, Awaitable[GetAgentMemoriesResponse]]:
- A synchronous or asynchronous response object containing the list of agent memories.
-
-Raises:
- AssertionError: If `agent_id` is not a valid UUID v4.
-
-#### Signature
-
-```python
-class BaseMemoriesManager(BaseManager): ...
-```
-
-### BaseMemoriesManager()._list
-
-[Show source in memory.py:43](../../../../../../julep/managers/memory.py#L43)
-
-List memories from a given agent based on a query and further filtering options.
-
-#### Arguments
-
-- `agent_id` *str* - A valid UUID v4 representing the agent ID.
-- `query` *str* - Query string to filter memories.
-types (Optional[Union[str, List[str]]], optional): The types of memories to filter.
-- `user_id` *Optional[str], optional* - The user ID to filter memories.
-- `limit` *Optional[int], optional* - The maximum number of memories to return.
-- `offset` *Optional[int], optional* - The number of memories to skip before starting to collect the result set.
-
-#### Returns
-
-- `Union[GetAgentMemoriesResponse,` *Awaitable[GetAgentMemoriesResponse]]* - Returns a synchronous or asynchronous response with the agent memories.
-
-#### Raises
-
-- `AssertionError` - If `agent_id` is not a valid UUID v4.
-
-#### Signature
-
-```python
-def _list(
- self,
- agent_id: str,
- query: str,
- types: Optional[Union[str, List[str]]] = None,
- user_id: Optional[str] = None,
- limit: Optional[int] = None,
- offset: Optional[int] = None,
-) -> Union[GetAgentMemoriesResponse, Awaitable[GetAgentMemoriesResponse]]: ...
-```
-
-
-
-## MemoriesManager
-
-[Show source in memory.py:80](../../../../../../julep/managers/memory.py#L80)
-
-A class for managing memory entities associated with agents.
-
-Inherits from [BaseMemoriesManager](#basememoriesmanager) and extends its functionality to specifically
-manage and retrieve memory entities for agents based on query parameters.
-
-Attributes:
- Inherited from [BaseMemoriesManager](#basememoriesmanager).
-
-Methods:
- list: Retrieves a list of memory entities based on query parameters.
-
-#### Signature
-
-```python
-class MemoriesManager(BaseMemoriesManager): ...
-```
-
-#### See also
-
-- [BaseMemoriesManager](#basememoriesmanager)
-
-### MemoriesManager().list
-
-[Show source in memory.py:94](../../../../../../julep/managers/memory.py#L94)
-
-List memories meeting specified criteria.
-
-This function fetches a list of Memory objects based on various filters and parameters such as agent_id, query, types, user_id, limit, and offset.
-
-#### Arguments
-
-agent_id (Union[str, UUID]): The unique identifier for the agent.
-- `query` *str* - The search term used to filter memories.
-types (Optional[Union[str, List[str]]], optional): The types of memories to retrieve. Can be a single type as a string or a list of types. Default is None, which does not filter by type.
-- `user_id` *Optional[str], optional* - The unique identifier for the user. If provided, only memories associated with this user will be retrieved. Default is None.
-- `limit` *Optional[int], optional* - The maximum number of memories to return. Default is None, which means no limit.
-- `offset` *Optional[int], optional* - The number of memories to skip before starting to return the results. Default is None.
-
-#### Returns
-
-- `List[Memory]` - A list of Memory objects that match the given criteria.
-
-#### Notes
-
-The `@beartype` decorator is used to ensure that arguments conform to the expected types at runtime.
-
-#### Signature
-
-```python
-@beartype
-def list(
- self,
- agent_id: Union[str, UUID],
- query: str,
- types: Optional[Union[str, List[str]]] = None,
- user_id: Optional[str] = None,
- limit: Optional[int] = None,
- offset: Optional[int] = None,
-) -> List[Memory]: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/managers/session.md b/docs/python-sdk-docs/julep/managers/session.md
deleted file mode 100644
index 96a40a6de..000000000
--- a/docs/python-sdk-docs/julep/managers/session.md
+++ /dev/null
@@ -1,1226 +0,0 @@
-# Session
-
-[Julep Python SDK Index](../../README.md#julep-python-sdk-index) / [Julep](../index.md#julep) / [Managers](./index.md#managers) / Session
-
-> Auto-generated documentation for [julep.managers.session](../../../../../../julep/managers/session.py) module.
-
-- [Session](#session)
- - [AsyncSessionsManager](#asyncsessionsmanager)
- - [BaseSessionsManager](#basesessionsmanager)
- - [SessionCreateArgs](#sessioncreateargs)
- - [SessionUpdateArgs](#sessionupdateargs)
- - [SessionsManager](#sessionsmanager)
-
-## AsyncSessionsManager
-
-[Show source in session.py:800](../../../../../../julep/managers/session.py#L800)
-
-A class for managing asynchronous sessions.
-
-This class handles operations related to creating, retrieving, updating,
-deleting, and interacting with sessions asynchronously. It extends the
-functionality of BaseSessionsManager with asynchronous behavior.
-
-#### Attributes
-
-Inherits attributes from the BaseSessionsManager class.
-
-#### Methods
-
-- `async` *get(id* - Union[UUID, str]) -> Session:
- Retrieves a session by its ID.
-
-async create(*, user_id: Union[str, UUID], agent_id: Union[str, UUID], situation: Optional[str]=None) -> ResourceCreatedResponse:
- Creates a new session with the specified user and agent IDs, and an optional situation.
-
-async list(*, limit: Optional[int]=None, offset: Optional[int]=None) -> List[Session]:
- Lists sessions with an optional limit and offset for pagination.
-
-- `async` *delete(session_id* - Union[str, UUID]):
- Deletes a session by its ID.
-
-async update(*, session_id: Union[str, UUID], situation: str) -> ResourceUpdatedResponse:
- Updates the situation for a session by its ID.
-
-async chat(*, session_id: str, messages: List[InputChatMlMessage], tools: Optional[List[Tool]]=None, tool_choice: Optional[ToolChoiceOption]=None, frequency_penalty: Optional[float]=None, length_penalty: Optional[float]=None, logit_bias: Optional[Dict[str, Optional[int]]]=None, max_tokens: Optional[int]=None, presence_penalty: Optional[float]=None, repetition_penalty: Optional[float]=None, response_format: Optional[ChatSettingsResponseFormat]=None, seed: Optional[int]=None, stop: Optional[ChatSettingsStop]=None, stream: Optional[bool]=None, temperature: Optional[float]=None, top_p: Optional[float]=None, recall: Optional[bool]=None, remember: Optional[bool]=None) -> ChatResponse:
- Initiates a chat session with given messages and optional parameters for the chat behavior and output.
-
-async suggestions(*, session_id: Union[str, UUID], limit: Optional[int]=None, offset: Optional[int]=None) -> List[Suggestion]:
- Retrieves suggestions related to a session optionally limited and paginated.
-
-async history(*, session_id: Union[str, UUID], limit: Optional[int]=None, offset: Optional[int]=None) -> List[ChatMlMessage]:
- Retrieves the history of messages in a session, optionally limited and paginated.
-
-- `async` *delete_history(session_id* - Union[str, UUID]) -> None:
-
-#### Notes
-
-The `@beartype` decorator is used for runtime type checking of the arguments.
-
-Additional methods may be provided by the BaseSessionsManager.
-
-#### Signature
-
-```python
-class AsyncSessionsManager(BaseSessionsManager): ...
-```
-
-#### See also
-
-- [BaseSessionsManager](#basesessionsmanager)
-
-### AsyncSessionsManager().chat
-
-[Show source in session.py:975](../../../../../../julep/managers/session.py#L975)
-
-Sends a message in an asynchronous chat session and retrieves the response.
-
-This method leverages the messaging interface with various options to adjust the behavior of the chat bot.
-
-#### Arguments
-
-- `session_id` *str* - The unique identifier for the chat session.
-- `messages` *List[InputChatMlMessage]* - A list of chat messages in the session's context.
-- `tools` *Optional[List[Tool]]* - A list of tools, if provided, to enhance the chat capabilities.
-- `tool_choice` *Optional[ToolChoiceOption]* - A preference for tool selection during the chat.
-- `frequency_penalty` *Optional[float]* - Adjusts how much the model should avoid repeating the same line of thought.
-- `length_penalty` *Optional[float]* - Penalizes longer responses.
-logit_bias (Optional[Dict[str, Optional[int]]]): Biases the model's prediction towards or away from certain tokens.
-- `max_tokens` *Optional[int]* - The maximum length of the generated response.
-- `presence_penalty` *Optional[float]* - Adjusts how much the model should consider new concepts.
-- `repetition_penalty` *Optional[float]* - Adjusts how much the model should avoid repeating previous input.
-- `response_format` *Optional[ChatSettingsResponseFormat]* - The desired format for the response.
-- `seed` *Optional[int]* - A seed used to initialize the model's random number generator.
-- `stop` *Optional[ChatSettingsStop]* - Tokens that signify the end of the response.
-- `stream` *Optional[bool]* - Whether or not to stream the responses.
-- `temperature` *Optional[float]* - Controls randomness in the response generation.
-- `top_p` *Optional[float]* - Controls diversity via nucleus sampling.
-- `recall` *Optional[bool]* - If true, the model recalls previous messages within the same session.
-- `remember` *Optional[bool]* - If true, the model incorporates the context from the previous conversations in the session.
-
-#### Returns
-
-- `ChatResponse` - The response from the chat bot, encapsulating the result of the chat action.
-
-#### Notes
-
-This function is decorated with `@beartype`, which enforces type annotations at runtime.
-
-#### Examples
-
-```python
->>> response = await chat(...)
->>> print(response)
-```
-
-#### Signature
-
-```python
-@beartype
-async def chat(
- self,
- session_id: str,
- messages: List[Union[InputChatMlMessageDict, InputChatMlMessage]],
- tools: Optional[List[Union[ToolDict, Tool]]] = None,
- tool_choice: Optional[ToolChoiceOption] = None,
- frequency_penalty: Optional[float] = None,
- length_penalty: Optional[float] = None,
- logit_bias: Optional[Dict[str, Optional[int]]] = None,
- max_tokens: Optional[int] = None,
- presence_penalty: Optional[float] = None,
- repetition_penalty: Optional[float] = None,
- response_format: Optional[
- Union[ChatSettingsResponseFormatDict, ChatSettingsResponseFormat]
- ] = None,
- seed: Optional[int] = None,
- stop: Optional[ChatSettingsStop] = None,
- stream: Optional[bool] = None,
- temperature: Optional[float] = None,
- top_p: Optional[float] = None,
- recall: Optional[bool] = None,
- remember: Optional[bool] = None,
-) -> ChatResponse: ...
-```
-
-### AsyncSessionsManager().create
-
-[Show source in session.py:872](../../../../../../julep/managers/session.py#L872)
-
-Asynchronously create a resource with the specified user and agent identifiers.
-
-This function wraps an internal _create method and is decorated with `beartype` for run-time type checking.
-
-#### Arguments
-
-user_id (Union[str, UUID]): Unique identifier for the user.
-agent_id (Union[str, UUID]): Unique identifier for the agent.
-- `situation` *Optional[str], optional* - Description of the situation, defaults to None.
-
-#### Returns
-
-- `Session` - The created Session object
-
-#### Raises
-
-- `BeartypeException` - If any of the input arguments do not match their expected types.
-Any exception raised by the internal _create method.
-
-#### Signature
-
-```python
-@beartype
-@rewrap_in_class(Session)
-async def create(self, **kwargs: SessionCreateArgs) -> Session: ...
-```
-
-#### See also
-
-- [SessionCreateArgs](#sessioncreateargs)
-
-### AsyncSessionsManager().delete
-
-[Show source in session.py:925](../../../../../../julep/managers/session.py#L925)
-
-Asynchronously delete a session given its ID.
-
-#### Arguments
-
-session_id (Union[str, UUID]): The unique identifier for the session, which can
- be either a string or a UUID.
-
-#### Returns
-
-Coroutine[Any, Any, Any]: A coroutine that, when awaited, completes the deletion process.
-
-#### Raises
-
-The decorators or the body of the '_delete' method may define specific exceptions that
-could be raised during the execution. Generally, include any exceptions that are raised
-by the '_delete' method or by the 'beartype' decorator in this section.
-
-#### Signature
-
-```python
-@beartype
-async def delete(self, session_id: Union[str, UUID]): ...
-```
-
-### AsyncSessionsManager().delete_history
-
-[Show source in session.py:1120](../../../../../../julep/managers/session.py#L1120)
-
-Delete the history of a session asynchronously.
-
-#### Arguments
-
-session_id (Union[str, UUID]): The unique identifier for the session.
-
-#### Returns
-
-- `None` - The result of the delete operation.
-
-#### Raises
-
-- `AssertionError` - If the `session_id` is not a valid UUID v4.
-
-#### Signature
-
-```python
-@beartype
-async def delete_history(self, session_id: Union[str, UUID]) -> None: ...
-```
-
-### AsyncSessionsManager().get
-
-[Show source in session.py:844](../../../../../../julep/managers/session.py#L844)
-
-Asynchronously get a Session object by its identifier.
-
-This method retrieves a Session based on the provided `id`. It uses an underlying
-asynchronous '_get' method to perform the operation.
-
-#### Arguments
-
-id (Union[UUID, str]): The unique identifier of the Session to retrieve. It can be
- either a string representation or a UUID object.
-
-#### Returns
-
-- `Session` - The retrieved Session object associated with the given id.
-
-#### Raises
-
-- `TypeError` - If the `id` is not of type UUID or str.
-- `ValueError` - If the `id` is not a valid UUID or an invalid string is provided.
-- `AnyExceptionRaisedBy_get` - Descriptive name of specific exceptions that '_get'
- might raise, if any. Replace this with the actual exceptions.
-
-#### Notes
-
-The `@beartype` decorator is being used to enforce type checking at runtime.
-This ensures that the argument `id` is of the correct type (UUID or str) and
-that the return value is a Session object.
-
-#### Signature
-
-```python
-@beartype
-async def get(self, id: Union[UUID, str]) -> Session: ...
-```
-
-### AsyncSessionsManager().history
-
-[Show source in session.py:1088](../../../../../../julep/managers/session.py#L1088)
-
-Retrieve a history of chat messages based on the session ID, with optional limit and offset.
-
-This function is decorated with 'beartype' for runtime type checking.
-
-#### Arguments
-
-session_id (Union[str, UUID]): The unique identifier for the chat session.
-- `limit` *Optional[int], optional* - The maximum number of chat messages to return. Defaults to None.
-- `offset` *Optional[int], optional* - The number of chat messages to skip before starting to collect the history slice. Defaults to None.
-
-#### Returns
-
-- `List[ChatMlMessage]` - A list of chat messages from the history that match the criteria.
-
-#### Raises
-
-Any exceptions that may be raised by the underlying '_history' method or 'beartype' decorator.
-
-#### Signature
-
-```python
-@beartype
-async def history(
- self,
- session_id: Union[str, UUID],
- limit: Optional[int] = None,
- offset: Optional[int] = None,
-) -> List[ChatMlMessage]: ...
-```
-
-### AsyncSessionsManager().list
-
-[Show source in session.py:895](../../../../../../julep/managers/session.py#L895)
-
-Asynchronously retrieves a list of sessions with optional pagination.
-
-This method utilizes `_list_items` internally to obtain session data with support for limit and offset parameters. The `beartype` decorator is used to ensure that the function parameters match the expected types.
-
-#### Arguments
-
-- `limit` *Optional[int], optional* - The maximum number of sessions to retrieve. Default is None, which retrieves all available sessions.
-- `offset` *Optional[int], optional* - The number to skip before starting to collect the response set. Default is None.
-
-#### Returns
-
-- `List[Session]` - A list of `Session` objects containing session data.
-
-#### Signature
-
-```python
-@beartype
-async def list(
- self,
- limit: Optional[int] = None,
- offset: Optional[int] = None,
- metadata_filter: Dict[str, Any] = {},
-) -> List[Session]: ...
-```
-
-### AsyncSessionsManager().suggestions
-
-[Show source in session.py:1056](../../../../../../julep/managers/session.py#L1056)
-
-Retrieve a list of suggestions asynchronously.
-
-This function asynchronously fetches suggestions based on the provided session ID, with optional limit and offset parameters for pagination.
-
-#### Arguments
-
-session_id (Union[str, UUID]): The session identifier for which suggestions are to be retrieved.
-- `limit` *Optional[int]* - The maximum number of suggestions to return. Defaults to None, which means no limit.
-- `offset` *Optional[int]* - The number of suggestions to skip before starting to return results. Defaults to None, which means no offset.
-
-#### Returns
-
-- `List[Suggestion]` - A list of Suggestion objects.
-
-#### Raises
-
-- `Exception` - Raises an exception if the underlying _suggestions call fails.
-
-#### Signature
-
-```python
-@beartype
-async def suggestions(
- self,
- session_id: Union[str, UUID],
- limit: Optional[int] = None,
- offset: Optional[int] = None,
-) -> List[Suggestion]: ...
-```
-
-### AsyncSessionsManager().update
-
-[Show source in session.py:944](../../../../../../julep/managers/session.py#L944)
-
-Asynchronously update a resource with the given situation.
-
-This method wraps the private `_update` method which performs the actual update
-operation asynchronously.
-
-#### Arguments
-
-session_id (Union[str, UUID]): The session ID of the resource to update.
- It can be either a `str` or a `UUID` object.
-- `situation` *str* - Description of the situation to update the resource with.
-
-#### Returns
-
-- `Session` - The updated Session object
-
-#### Notes
-
-This function is decorated with `@beartype`, which will perform runtime type
-checking on the arguments.
-
-#### Raises
-
-- `BeartypeCallHintParamViolation` - If the `session_id` or `situation`
- arguments do not match their annotated types.
-
-#### Signature
-
-```python
-@beartype
-@rewrap_in_class(Session)
-async def update(self, **kwargs: SessionUpdateArgs) -> Session: ...
-```
-
-#### See also
-
-- [SessionUpdateArgs](#sessionupdateargs)
-
-
-
-## BaseSessionsManager
-
-[Show source in session.py:57](../../../../../../julep/managers/session.py#L57)
-
-A class to manage sessions using base API client methods.
-
-This manager handles CRUD operations and additional actions on the session data,
-such as chatting and retrieving history or suggestions.
-
-#### Attributes
-
-- `api_client` - The client used for communicating with an API.
-
-#### Methods
-
-_get(id):
- Retrieve a specific session by its identifier.
-
-#### Arguments
-
-id (Union[str, UUID]): The unique identifier for the session.
-
-agent_id (Union[str, UUID]): The unique identifier for the agent.
-user_id (Optional[Union[str, UUID]]): The unique identifier for the user.
-- `situation` *Optional[str]* - An optional description of the situation for the session.
-
-- `limit` *Optional[int]* - The limit on the number of items to be retrieved.
-- `offset` *Optional[int]* - The number of items to be skipped before starting to collect the result set.
-
-session_id (Union[str, UUID]): The unique identifier for the session to be deleted.
-
-session_id (Union[str, UUID]): The unique identifier for the session to be updated.
-- `situation` *str* - The new situation description for the session.
-
-- `session_id` *str* - The unique identifier for the session.
-- `messages` *List[InputChatMlMessage]* - The list of input chat messages to be sent.
-- `tools` *Optional[List[Tool]]* - ...
-- `tool_choice` *Optional[ToolChoiceOption]* - ...
-- `...` - Other optional parameters for chat settings and modifiers.
-
-session_id (Union[str, UUID]): The unique identifier for the session.
-- `limit` *Optional[int]* - The limit on the number of suggestions to be retrieved.
-- `offset` *Optional[int]* - The number of suggestions to be skipped before starting to collect the result set.
-
-session_id (Union[str, UUID]): The unique identifier for the session.
-- `limit` *Optional[int]* - The limit on the number of history entries to be retrieved.
-- `offset` *Optional[int]* - The number of history entries to be skipped before starting to collect the result set.
-
-session_id (Union[str, UUID]): The unique identifier for the session.
-
-#### Returns
-
-- `Union[Session,` *Awaitable[Session]]* - The session object or an awaitable yielding it.
-
-- `Union[ResourceCreatedResponse,` *Awaitable[ResourceCreatedResponse]]* - The response for the created session or an awaitable yielding it.
-
-_list_items(limit, offset):
- List multiple session items with optional pagination.
-
-- `Union[ListSessionsResponse,` *Awaitable[ListSessionsResponse]]* - The list of sessions or an awaitable yielding it.
-
-_delete(session_id):
- Delete a session by its identifier.
-
-- `Union[None,` *Awaitable[None]]* - None or an awaitable yielding None if the operation is successful.
-
-_update(session_id, situation):
- Update the situation for an existing session.
-
-- `Union[ResourceUpdatedResponse,` *Awaitable[ResourceUpdatedResponse]]* - The response for the updated session or an awaitable yielding it.
-
-_chat(session_id, messages, ...):
- Send chat messages and get responses during a session.
-
-- `Union[ChatResponse,` *Awaitable[ChatResponse]]* - The chat response for the session or an awaitable yielding it.
-
-_suggestions(session_id, limit, offset):
- Get suggestions for a session.
-
-- `Union[GetSuggestionsResponse,` *Awaitable[GetSuggestionsResponse]]* - The suggestions response for the session or an awaitable yielding it.
-
-_history(session_id, limit, offset):
- Get the history for a session.
-
-- `Union[GetHistoryResponse,` *Awaitable[GetHistoryResponse]]* - The history response for the session or an awaitable yielding it.
-
-_delete_history(session_id):
- Delete the history of a session.
-
-- `Union[None,` *Awaitable[None]]* - None or an awaitable yielding None if the operation is successful.
-
-#### Raises
-
-- `ValueError` - If the `id` is not a valid UUID.
-- `NetworkError` - If there is an issue communicating with the API.
-
-_create(user_id, agent_id, situation):
- Create a new session with specified user and agent identifiers.
-
-#### Signature
-
-```python
-class BaseSessionsManager(BaseManager): ...
-```
-
-### BaseSessionsManager()._chat
-
-[Show source in session.py:310](../../../../../../julep/managers/session.py#L310)
-
-Conducts a chat conversation with an AI model using specific parameters.
-
-#### Arguments
-
-- `session_id` *str* - A unique identifier for the chat session.
-- `messages` *List[InputChatMlMessage]* - A list of input messages for the AI to respond to.
-- `tools` *Optional[List[Tool]]* - A list of tools to be used during the chat session.
-- `tool_choice` *Optional[ToolChoiceOption]* - A method for choosing which tools to apply.
-- `frequency_penalty` *Optional[float]* - A modifier to decrease the likelihood of frequency-based repetitions.
-- `length_penalty` *Optional[float]* - A modifier to control the length of the generated responses.
-logit_bias (Optional[Dict[str, Optional[int]]]): Adjustments to the likelihood of specific tokens appearing.
-- `max_tokens` *Optional[int]* - The maximum number of tokens to generate in the output.
-- `presence_penalty` *Optional[float]* - A modifier to control for new concepts' appearance.
-- `repetition_penalty` *Optional[float]* - A modifier to discourage repetitive responses.
-- `response_format` *Optional[ChatSettingsResponseFormat]* - The format in which the response is to be delivered.
-- `seed` *Optional[int]* - An integer to seed the random number generator for reproducibility.
-- `stop` *Optional[ChatSettingsStop]* - Tokens at which to stop generating further tokens.
-- `stream` *Optional[bool]* - Whether to stream the response or deliver it when it's complete.
-- `temperature` *Optional[float]* - A value to control the randomness of the output.
-- `top_p` *Optional[float]* - A value to control the nucleus sampling, i.e., the cumulative probability cutoff.
-- `recall` *Optional[bool]* - A flag to control the recall capability of the AI model.
-- `remember` *Optional[bool]* - A flag to control the persistence of the chat history in the AI's memory.
-
-#### Returns
-
-- `Union[ChatResponse,` *Awaitable[ChatResponse]]* - The response from the AI given the input messages and parameters. This could be a synchronous `ChatResponse` object or an asynchronous `Awaitable[ChatResponse]` if the `stream` parameter is True.
-
-#### Notes
-
-The precise types of some arguments, like `Tool`, `ToolChoiceOption`, `ChatSettingsResponseFormat`, and `ChatSettingsStop`, are not defined within the given context. It's assumed that these types have been defined elsewhere in the code base.
-
-#### Raises
-
-It is not specified what exceptions this function might raise. Typically, one would expect potential exceptions to be associated with the underlying API client's `chat` method failure modes, such as network issues, invalid parameters, etc.
-
-#### Signature
-
-```python
-def _chat(
- self,
- session_id: str,
- messages: List[Union[InputChatMlMessageDict, InputChatMlMessage]],
- tools: Optional[List[Union[ToolDict, Tool]]] = None,
- tool_choice: Optional[ToolChoiceOption] = None,
- frequency_penalty: Optional[float] = None,
- length_penalty: Optional[float] = None,
- logit_bias: Optional[Dict[str, Optional[int]]] = None,
- max_tokens: Optional[int] = None,
- presence_penalty: Optional[float] = None,
- repetition_penalty: Optional[float] = None,
- response_format: Optional[
- Union[ChatSettingsResponseFormatDict, ChatSettingsResponseFormat]
- ] = None,
- seed: Optional[int] = None,
- stop: Optional[ChatSettingsStop] = None,
- stream: Optional[bool] = None,
- temperature: Optional[float] = None,
- top_p: Optional[float] = None,
- recall: Optional[bool] = None,
- remember: Optional[bool] = None,
-) -> Union[ChatResponse, Awaitable[ChatResponse]]: ...
-```
-
-### BaseSessionsManager()._create
-
-[Show source in session.py:182](../../../../../../julep/managers/session.py#L182)
-
-Creates a session for a specified user and agent.
-
-This internal method is responsible for creating a session using the API client. It validates that both the user and agent IDs are valid UUID v4 strings before proceeding with session creation.
-
-#### Arguments
-
-agent_id (Union[str, UUID]): The agent's identifier which could be a string or a UUID object.
-user_id (Optional[Union[str, UUID]]): The user's identifier which could be a string or a UUID object.
-- `situation` *Optional[str], optional* - An optional description of the situation.
-metadata (Dict[str, Any])
-- `render_templates` *bool, optional* - Whether to render templates in the metadata. Defaults to False.
-
-#### Returns
-
-- `Union[ResourceCreatedResponse,` *Awaitable[ResourceCreatedResponse]]* - The response from the API client upon successful session creation, which can be a synchronous `ResourceCreatedResponse` or an asynchronous `Awaitable` of it.
-
-#### Raises
-
-- `AssertionError` - If either `user_id` or `agent_id` is not a valid UUID v4.
-
-#### Signature
-
-```python
-def _create(
- self,
- agent_id: Union[str, UUID],
- user_id: Optional[Union[str, UUID]] = None,
- situation: Optional[str] = None,
- metadata: Dict[str, Any] = {},
- render_templates: bool = False,
- token_budget: Optional[int] = None,
- context_overflow: Optional[str] = None,
-) -> Union[ResourceCreatedResponse, Awaitable[ResourceCreatedResponse]]: ...
-```
-
-### BaseSessionsManager()._delete
-
-[Show source in session.py:251](../../../../../../julep/managers/session.py#L251)
-
-Delete a session given its session ID.
-
-This is an internal method that asserts the provided session_id is a valid UUID v4
-before making the delete request through the API client.
-
-Args:
- session_id (Union[str, UUID]): The session identifier, which should be a valid UUID v4.
-
-Returns:
- Union[None, Awaitable[None]]: The result of the delete operation, which can be either
- None or an Awaitable that resolves to None, depending on whether this is a synchronous
- or asynchronous call.
-
-Raises:
- AssertionError: If the `session_id` is not a valid UUID v4.
-
-#### Signature
-
-```python
-def _delete(self, session_id: Union[str, UUID]) -> Union[None, Awaitable[None]]: ...
-```
-
-### BaseSessionsManager()._delete_history
-
-[Show source in session.py:444](../../../../../../julep/managers/session.py#L444)
-
-Delete the history of a session.
-
-#### Arguments
-
-session_id (Union[str, UUID]): The unique identifier for the session.
-
-#### Returns
-
-- `Union[None,` *Awaitable[None]]* - The result of the delete operation, which can be either
-None or an Awaitable that resolves to None, depending on whether this is a synchronous
-or asynchronous call.
-
-#### Raises
-
-- `AssertionError` - If the `session_id` is not a valid UUID v4.
-
-#### Signature
-
-```python
-def _delete_history(
- self, session_id: Union[str, UUID]
-) -> Union[None, Awaitable[None]]: ...
-```
-
-### BaseSessionsManager()._get
-
-[Show source in session.py:166](../../../../../../julep/managers/session.py#L166)
-
-Get a session by its ID.
-
-#### Arguments
-
-id (Union[str, UUID]): A string or UUID representing the session ID.
-
-#### Returns
-
-- `Union[Session,` *Awaitable[Session]]* - The session object associated with the given ID, which can be either a `Session` instance or an `Awaitable` that resolves to a `Session`.
-
-#### Raises
-
-- `AssertionError` - If the id is not a valid UUID v4.
-
-#### Signature
-
-```python
-def _get(self, id: Union[str, UUID]) -> Union[Session, Awaitable[Session]]: ...
-```
-
-### BaseSessionsManager()._history
-
-[Show source in session.py:416](../../../../../../julep/managers/session.py#L416)
-
-Retrieve a session's history with optional pagination controls.
-
-Args:
- session_id (Union[str, UUID]): Unique identifier for the session
- whose history is being queried. Can be a string or a UUID object.
- limit (Optional[int], optional): The maximum number of history
- entries to retrieve. Defaults to None, which uses the API's default setting.
- offset (Optional[int], optional): The number of initial history
- entries to skip. Defaults to None, which means no offset is applied.
-
-Returns:
- Union[GetHistoryResponse, Awaitable[GetHistoryResponse]]:
- The history response object, which may be either synchronous or
- asynchronous (awaitable), depending on the API client configuration.
-
-#### Signature
-
-```python
-def _history(
- self,
- session_id: Union[str, UUID],
- limit: Optional[int] = None,
- offset: Optional[int] = None,
-) -> Union[GetHistoryResponse, Awaitable[GetHistoryResponse]]: ...
-```
-
-### BaseSessionsManager()._list_items
-
-[Show source in session.py:226](../../../../../../julep/managers/session.py#L226)
-
-List items with optional pagination.
-
-#### Arguments
-
-- `limit` *Optional[int]* - The maximum number of items to return. Defaults to None.
-- `offset` *Optional[int]* - The number of items to skip before starting to collect the result set. Defaults to None.
-
-#### Returns
-
-- `Union[ListSessionsResponse,` *Awaitable[ListSessionsResponse]]* - The response object containing the list of items or an awaitable response object if called asynchronously.
-
-#### Notes
-
-The '_list_items' function is assumed to be a method of a class that has an 'api_client' attribute capable of listing sessions.
-
-#### Signature
-
-```python
-def _list_items(
- self,
- limit: Optional[int] = None,
- offset: Optional[int] = None,
- metadata_filter: str = "{}",
-) -> Union[ListSessionsResponse, Awaitable[ListSessionsResponse]]: ...
-```
-
-### BaseSessionsManager()._suggestions
-
-[Show source in session.py:393](../../../../../../julep/managers/session.py#L393)
-
-Retrieve a list of suggestions for a given session.
-
-Args:
- session_id (Union[str, UUID]): The ID of the session for which to get suggestions.
- limit (Optional[int], optional): The maximum number of suggestions to retrieve. Defaults to None.
- offset (Optional[int], optional): The offset from where to start retrieving suggestions. Defaults to None.
-
-Returns:
- Union[GetSuggestionsResponse, Awaitable[GetSuggestionsResponse]]: The response containing the list of suggestions synchronously or asynchronously, depending on the API client.
-
-#### Signature
-
-```python
-def _suggestions(
- self,
- session_id: Union[str, UUID],
- limit: Optional[int] = None,
- offset: Optional[int] = None,
-) -> Union[GetSuggestionsResponse, Awaitable[GetSuggestionsResponse]]: ...
-```
-
-### BaseSessionsManager()._update
-
-[Show source in session.py:272](../../../../../../julep/managers/session.py#L272)
-
-Update a session with a given situation.
-
-#### Arguments
-
-session_id (Union[str, UUID]): The session identifier, which can be a string-formatted UUID or an actual UUID object.
-- `situation` *str* - A string describing the current situation.
-- `overwrite` *bool, optional* - Whether to overwrite the existing situation. Defaults to False.
-
-#### Returns
-
-- `Union[ResourceUpdatedResponse,` *Awaitable[ResourceUpdatedResponse]]* - The response from the update operation, which can be either synchronous or asynchronous.
-
-#### Raises
-
-- `AssertionError` - If `session_id` is not a valid UUID v4.
-
-#### Signature
-
-```python
-def _update(
- self,
- session_id: Union[str, UUID],
- situation: Optional[str] = None,
- metadata: Optional[Dict[str, Any]] = None,
- overwrite: bool = False,
- token_budget: Optional[int] = None,
- context_overflow: Optional[str] = None,
-) -> Union[ResourceUpdatedResponse, Awaitable[ResourceUpdatedResponse]]: ...
-```
-
-
-
-## SessionCreateArgs
-
-[Show source in session.py:37](../../../../../../julep/managers/session.py#L37)
-
-#### Signature
-
-```python
-class SessionCreateArgs(TypedDict): ...
-```
-
-
-
-## SessionUpdateArgs
-
-[Show source in session.py:47](../../../../../../julep/managers/session.py#L47)
-
-#### Signature
-
-```python
-class SessionUpdateArgs(TypedDict): ...
-```
-
-
-
-## SessionsManager
-
-[Show source in session.py:466](../../../../../../julep/managers/session.py#L466)
-
-A class responsible for managing session interactions.
-
-This class extends [BaseSessionsManager](#basesessionsmanager) and provides methods to get, create,
-list, delete, and update sessions, as well as to initiate a chat within a session,
-request suggestions, and access session history.
-
-#### Methods
-
-- `get` *(id* - Union[str, UUID]) -> Session:
- Retrieves a session by its identifier.
-
-create (
- *,
- - `user_id` - Union[str, UUID],
- - `agent_id` - Union[str, UUID],
- - `situation` - Optional[str]=None
-) -> ResourceCreatedResponse:
- Creates a new session given a user ID and an agent ID, and optionally
- a description of the situation.
-
-list (
- *,
- - `limit` - Optional[int]=None,
- - `offset` - Optional[int]=None
-) -> List[Session]:
- Lists sessions with optional pagination via limit and offset.
-
-- `delete` *(session_id* - Union[str, UUID]):
- Deletes a session identified by the given session ID.
-
-update (
- *,
- - `session_id` - Union[str, UUID],
- - `situation` - str
-) -> ResourceUpdatedResponse:
- Updates the situation of a specific session by its ID.
-
-chat (
- *args
- see full method signature for detailed arguments
-) -> ChatResponse:
- Initiates a chat in the given session with messages and various settings,
- including tools, penalties, biases, tokens, response format, etc.
-
-suggestions (
- *,
- - `session_id` - Union[str, UUID],
- - `limit` - Optional[int]=None,
- - `offset` - Optional[int]=None
-) -> List[Suggestion]:
- Retrieves a list of suggestions for a given session, supported by
- optional pagination parameters.
-
-history (
- *,
- - `session_id` - Union[str, UUID],
- - `limit` - Optional[int]=None,
- - `offset` - Optional[int]=None
-) -> List[ChatMlMessage]:
- Retrieves the chat history for a given session, supported by
- optional pagination parameters.
-
-- `delete_history` *(session_id* - Union[str, UUID]) -> None:
-
-Each method is decorated with `@beartype` for runtime type enforcement.
-
-#### Signature
-
-```python
-class SessionsManager(BaseSessionsManager): ...
-```
-
-#### See also
-
-- [BaseSessionsManager](#basesessionsmanager)
-
-### SessionsManager().chat
-
-[Show source in session.py:647](../../../../../../julep/managers/session.py#L647)
-
-Initiate a chat session with the provided inputs and configurations.
-
-#### Arguments
-
-- `session_id` *str* - Unique identifier for the chat session.
-- `messages` *List[InputChatMlMessage]* - List of messages to send in the chat session.
-- `tools` *Optional[List[Tool]], optional* - List of tools to be used in the session. Defaults to None.
-- `tool_choice` *Optional[ToolChoiceOption], optional* - The choice of tool to optimize response for. Defaults to None.
-- `frequency_penalty` *Optional[float], optional* - Penalty for frequent tokens to control repetition. Defaults to None.
-- `length_penalty` *Optional[float], optional* - Penalty for longer responses to control verbosity. Defaults to None.
-logit_bias (Optional[Dict[str, Optional[int]]], optional): Bias for or against specific tokens. Defaults to None.
-- `max_tokens` *Optional[int], optional* - Maximum number of tokens to generate in the response. Defaults to None.
-- `presence_penalty` *Optional[float], optional* - Penalty for new tokens to control topic introduction. Defaults to None.
-- `repetition_penalty` *Optional[float], optional* - Penalty to discourage repetition. Defaults to None.
-- `response_format` *Optional[ChatSettingsResponseFormat], optional* - Format of the response. Defaults to None.
-- `seed` *Optional[int], optional* - Random seed for deterministic responses. Defaults to None.
-- `stop` *Optional[ChatSettingsStop], optional* - Sequence at which to stop generating further tokens. Defaults to None.
-- `stream` *Optional[bool], optional* - Whether to stream responses or not. Defaults to None.
-- `temperature` *Optional[float], optional* - Sampling temperature for randomness in the response. Defaults to None.
-- `top_p` *Optional[float], optional* - Nucleus sampling parameter to control diversity. Defaults to None.
-- `recall` *Optional[bool], optional* - Whether to allow recalling previous parts of the chat. Defaults to None.
-- `remember` *Optional[bool], optional* - Whether to allow the model to remember previous chats. Defaults to None.
-
-#### Returns
-
-- `ChatResponse` - The response object after processing chat messages.
-
-#### Notes
-
-The 'beartype' decorator is used for runtime type checking.
-
-#### Signature
-
-```python
-@beartype
-def chat(
- self,
- session_id: str,
- messages: List[Union[InputChatMlMessageDict, InputChatMlMessage]],
- tools: Optional[List[Union[ToolDict, Tool]]] = None,
- tool_choice: Optional[ToolChoiceOption] = None,
- frequency_penalty: Optional[float] = None,
- length_penalty: Optional[float] = None,
- logit_bias: Optional[Dict[str, Optional[int]]] = None,
- max_tokens: Optional[int] = None,
- presence_penalty: Optional[float] = None,
- repetition_penalty: Optional[float] = None,
- response_format: Optional[
- Union[ChatSettingsResponseFormatDict, ChatSettingsResponseFormat]
- ] = None,
- seed: Optional[int] = None,
- stop: Optional[ChatSettingsStop] = None,
- stream: Optional[bool] = None,
- temperature: Optional[float] = None,
- top_p: Optional[float] = None,
- recall: Optional[bool] = None,
- remember: Optional[bool] = None,
-) -> ChatResponse: ...
-```
-
-### SessionsManager().create
-
-[Show source in session.py:551](../../../../../../julep/managers/session.py#L551)
-
-Create a new resource with a user ID and an agent ID, optionally including a situation description.
-
-#### Arguments
-
-user_id (Union[str, UUID]): The unique identifier for the user.
-agent_id (Union[str, UUID]): The unique identifier for the agent.
-- `situation` *Optional[str]* - An optional description of the situation.
-
-#### Returns
-
-- `Session` - The created Session object.
-
-#### Raises
-
-- `BeartypeException` - If the provided `user_id` or `agent_id` do not match the required type.
-Any other exception that `_create` might raise.
-
-#### Signature
-
-```python
-@beartype
-@rewrap_in_class(Session)
-def create(self, **kwargs: SessionCreateArgs) -> Session: ...
-```
-
-#### See also
-
-- [SessionCreateArgs](#sessioncreateargs)
-
-### SessionsManager().delete
-
-[Show source in session.py:603](../../../../../../julep/managers/session.py#L603)
-
-Deletes a session based on its session ID.
-
-#### Arguments
-
-session_id (Union[str, UUID]): The session ID to be deleted, which can be a string or a UUID object.
-
-#### Returns
-
-The result from the internal `_delete` method call.
-
-#### Raises
-
-The specific exceptions that `self._delete` might raise, which should be documented in its docstring.
-
-#### Signature
-
-```python
-@beartype
-def delete(self, session_id: Union[str, UUID]): ...
-```
-
-### SessionsManager().delete_history
-
-[Show source in session.py:783](../../../../../../julep/managers/session.py#L783)
-
-Delete the history of a session.
-
-#### Arguments
-
-session_id (Union[str, UUID]): The unique identifier for the session.
-
-#### Returns
-
-- `None` - The result of the delete operation.
-
-#### Raises
-
-- `AssertionError` - If the `session_id` is not a valid UUID v4.
-
-#### Signature
-
-```python
-@beartype
-def delete_history(self, session_id: Union[str, UUID]) -> None: ...
-```
-
-### SessionsManager().get
-
-[Show source in session.py:534](../../../../../../julep/managers/session.py#L534)
-
-Retrieve a Session object based on a given identifier.
-
-Args:
- id (Union[str, UUID]): The identifier of the session, which can be either a string or a UUID.
-
-Returns:
- Session: The session object associated with the given id.
-
-Raises:
- TypeError: If the id is neither a string nor a UUID.
- KeyError: If the session with the given id does not exist.
-
-#### Signature
-
-```python
-@beartype
-def get(self, id: Union[str, UUID]) -> Session: ...
-```
-
-### SessionsManager().history
-
-[Show source in session.py:756](../../../../../../julep/managers/session.py#L756)
-
-Retrieve a history of ChatMl messages for a given session.
-
-This method uses the private method `_history` to fetch the message history and returns a list of ChatMlMessage objects.
-
-Args:
- session_id (Union[str, UUID]): The session identifier to fetch the chat history for.
- limit (Optional[int], optional): The maximum number of messages to return. If None, no limit is applied. Defaults to None.
- offset (Optional[int], optional): The offset from where to start fetching messages. If None, no offset is applied. Defaults to None.
-
-Returns:
- List[ChatMlMessage]: A list of ChatMlMessage objects representing the history of messages for the session.
-
-#### Signature
-
-```python
-@beartype
-def history(
- self,
- session_id: Union[str, UUID],
- limit: Optional[int] = None,
- offset: Optional[int] = None,
-) -> List[ChatMlMessage]: ...
-```
-
-### SessionsManager().list
-
-[Show source in session.py:572](../../../../../../julep/managers/session.py#L572)
-
-Retrieve a list of Session objects with optional pagination.
-
-Args:
- limit (Optional[int]): The maximum number of Session objects to return.
- Defaults to None, which indicates no limit.
- offset (Optional[int]): The number of items to skip before starting to return the results.
- Defaults to None, which indicates no offset.
-
-Returns:
- List[Session]: A list of Session objects meeting the criteria.
-
-Raises:
- BeartypeException: If the input arguments do not match their annotated types.
-
-#### Signature
-
-```python
-@beartype
-def list(
- self,
- limit: Optional[int] = None,
- offset: Optional[int] = None,
- metadata_filter: Dict[str, Any] = {},
-) -> List[Session]: ...
-```
-
-### SessionsManager().suggestions
-
-[Show source in session.py:722](../../../../../../julep/managers/session.py#L722)
-
-Provides a list of suggestion objects based on the given session ID.
-
-This method retrieves suggestions and is decorated with `beartype` for runtime type
-checking of the passed arguments.
-
-#### Arguments
-
-session_id (Union[str, UUID]): The ID of the session to retrieve suggestions for.
-- `limit` *Optional[int], optional* - The maximum number of suggestions to return.
- Defaults to None, which means no limit.
-- `offset` *Optional[int], optional* - The number to offset the list of returned
- suggestions by. Defaults to None, which means no offset.
-
-#### Returns
-
-- `List[Suggestion]` - A list of suggestion objects.
-
-#### Raises
-
-Any exceptions that `_suggestions` might raise, for example, if the method is unable
-to retrieve suggestions based on the provided session ID.
-
-#### Signature
-
-```python
-@beartype
-def suggestions(
- self,
- session_id: Union[str, UUID],
- limit: Optional[int] = None,
- offset: Optional[int] = None,
-) -> List[Suggestion]: ...
-```
-
-### SessionsManager().update
-
-[Show source in session.py:619](../../../../../../julep/managers/session.py#L619)
-
-Updates the state of a resource based on a given situation.
-
-This function is type-checked using beartype to ensure that the `session_id` parameter
-is either a string or a UUID and that the `situation` parameter is a string. It delegates
-the actual update process to an internal method '_update'.
-
-#### Arguments
-
-session_id (Union[str, UUID]): The session identifier, which can be a UUID or a
- string that uniquely identifies the session.
-- `situation` *str* - A string that represents the new situation for the resource update.
-- `overwrite` *bool, optional* - A flag to indicate whether to overwrite the existing
-
-#### Returns
-
-- `Session` - The updated Session object.
-
-#### Notes
-
-The `@beartype` decorator is used for runtime type checking of the function arguments.
-
-#### Signature
-
-```python
-@beartype
-@rewrap_in_class(Session)
-def update(self, **kwargs: SessionUpdateArgs) -> Session: ...
-```
-
-#### See also
-
-- [SessionUpdateArgs](#sessionupdateargs)
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/managers/task.md b/docs/python-sdk-docs/julep/managers/task.md
deleted file mode 100644
index e295f2d5f..000000000
--- a/docs/python-sdk-docs/julep/managers/task.md
+++ /dev/null
@@ -1,608 +0,0 @@
-# Task
-
-[Julep Python SDK Index](../../README.md#julep-python-sdk-index) / [Julep](../index.md#julep) / [Managers](./index.md#managers) / Task
-
-> Auto-generated documentation for [julep.managers.task](../../../../../../julep/managers/task.py) module.
-
-- [Task](#task)
- - [AsyncTasksManager](#asynctasksmanager)
- - [BaseTasksManager](#basetasksmanager)
- - [StartTaskExecutionArgs](#starttaskexecutionargs)
- - [TaskCreateArgs](#taskcreateargs)
- - [TasksManager](#tasksmanager)
-
-## AsyncTasksManager
-
-[Show source in task.py:348](../../../../../../julep/managers/task.py#L348)
-
-A class for managing tasks, inheriting from [BaseTasksManager](#basetasksmanager).
-
-This class provides asynchronous functionalities to interact with and manage tasks, including creating, retrieving, start execution and get execution of tasks. It utilizes type annotations to ensure type correctness at runtime using the `beartype` decorator.
-
-#### Methods
-
-- `get(self,` *agent_id* - Union[UUID, str], task_id: Union[UUID, str]) -> Task:
- Asynchronously retrieves a single task given agent and task IDs.
-
-#### Arguments
-
-agent_id (Union[UUID, str]): The UUID of the agent
-task_id (Union[UUID, str]): The UUID of the task
-agent_id (Union[UUID, str]): Agent ID
-- `name` *str* - Task name
-- `description` *Optional[str]* - Task description
-- `tools_available` *Optional[List[str]]* - A list of available tools
-input_schema (Optional[Dict[str, Any]]): Input schema
-- `main` *List[WorkflowStep]* - A list of workflow steps
-task_id Union[UUID, str]: Task ID
-execution_id (Union[UUID, str]): Execution ID
-agent_id (Union[UUID, str]): Agent ID
-task_id (Union[UUID, str]): Task ID
-arguments (Dict[str, Any]): Task arguments
-- `status` *ExecutionStatus* - Task execution status
-agent_id (Union[UUID, str]): Agent ID
-
-#### Returns
-
-- `Task` - The task object with the corresponding identifier.
-
-- `create(self,` *agent_id* - Union[UUID, str], name: str, description: Optional[str] = None, tools_available: Optional[List[str]] = None, input_schema: Optional[Dict[str, Any]] = None, main: List[WorkflowStep]) -> Task:
- Asynchronously creates a task with the given specifications.
- - `Task` - A newly created task object.
-
-- `get_task_execution(self,` *task_id* - Union[UUID, str], execution_id: Union[UUID, str]) -> List[Execution]:
- Asynchronously retrieves task execution objects given a task and execution IDs
- - `List[Execution]` - A list of Execution objects
-
-- `start_task_execution(self,` *agent_id* - Union[UUID, str], task_id: Union[UUID, str], arguments: Dict[str, Any], status: ExecutionStatus) -> Execution:
- Asynchronously starts task execution given agent and task IDs and all the required parameters
- - `Execution` - A newly created execution object
-
-- `list(self,` *agent_id* - Union[UUID, str]) -> List[Task]:
- Asynchronously retrieves a list of tasks.
-
-- `List[Task]` - A list of Task objects.
-
-#### Signature
-
-```python
-class AsyncTasksManager(BaseTasksManager): ...
-```
-
-#### See also
-
-- [BaseTasksManager](#basetasksmanager)
-
-### AsyncTasksManager().create
-
-[Show source in task.py:418](../../../../../../julep/managers/task.py#L418)
-
-Asynchronously creates a task with the given specifications.
-
-#### Arguments
-
-agent_id (Union[UUID, str]): Agent ID
-- `name` *str* - Task name
-- `description` *Optional[str]* - Task description
-- `tools_available` *Optional[List[str]]* - A list of available tools
-input_schema (Optional[Dict[str, Any]]): Input schema
-- `main` *List[WorkflowStep]* - A list of workflow steps
-
-#### Returns
-
-- `Task` - A newly created task object.
-
-#### Signature
-
-```python
-@beartype
-@rewrap_in_class(Task)
-async def create(self, **kwargs: TaskCreateArgs) -> Task: ...
-```
-
-#### See also
-
-- [TaskCreateArgs](#taskcreateargs)
-
-### AsyncTasksManager().get
-
-[Show source in task.py:436](../../../../../../julep/managers/task.py#L436)
-
-Asynchronously retrieves a single task given agent and task IDs.
-
-#### Arguments
-
-agent_id (Union[UUID, str]): The UUID of the agent
-task_id (Union[UUID, str]): The UUID of the task
-
-#### Returns
-
-- `Task` - The task object with the corresponding identifier.
-
-#### Signature
-
-```python
-@beartype
-async def get(self, agent_id: Union[UUID, str], task_id: Union[UUID, str]) -> Task: ...
-```
-
-### AsyncTasksManager().get_task_execution
-
-[Show source in task.py:449](../../../../../../julep/managers/task.py#L449)
-
-Asynchronously retrieves task execution objects given a task and execution IDs
-
-#### Arguments
-
-task_id Union[UUID, str]: Task ID
-execution_id (Union[UUID, str]): Execution ID
-
-#### Returns
-
-- `List[Execution]` - A list of Execution objects
-
-#### Signature
-
-```python
-@beartype
-async def get_task_execution(
- self, task_id: Union[UUID, str], execution_id: Union[UUID, str]
-) -> List[Execution]: ...
-```
-
-### AsyncTasksManager().list
-
-[Show source in task.py:402](../../../../../../julep/managers/task.py#L402)
-
-Asynchronously retrieves a list of tasks.
-
-#### Arguments
-
-agent_id (Union[UUID, str]): Agent ID
-
-#### Returns
-
-- `List[Task]` - A list of Task objects.
-
-#### Signature
-
-```python
-@beartype
-async def list(self, agent_id: Union[UUID, str]) -> List[Task]: ...
-```
-
-### AsyncTasksManager().start_task_execution
-
-[Show source in task.py:466](../../../../../../julep/managers/task.py#L466)
-
-Asynchronously starts task execution given agent and task IDs and all the required parameters
-
-#### Arguments
-
-agent_id (Union[UUID, str]): Agent ID
-task_id (Union[UUID, str]): Task ID
-arguments (Dict[str, Any]): Task arguments
-- `status` *ExecutionStatus* - Task execution status
-
-#### Returns
-
-- `Execution` - A newly created execution object
-
-#### Signature
-
-```python
-@beartype
-@rewrap_in_class(Execution)
-async def start_task_execution(self, **kwargs: StartTaskExecutionArgs) -> Execution: ...
-```
-
-#### See also
-
-- [StartTaskExecutionArgs](#starttaskexecutionargs)
-
-
-
-## BaseTasksManager
-
-[Show source in task.py:32](../../../../../../julep/managers/task.py#L32)
-
-A class responsible for managing task entities.
-
-This manager handles CRUD operations for tasks including retrieving, creating, starting execution, getting execution of tasks using an API client.
-
-#### Attributes
-
-- `api_client` *ApiClientType* - The client responsible for API interactions.
-
-#### Methods
-
-- `_get(self,` *agent_id* - Union[UUID, str], task_id: Union[UUID, str]) -> Union[Task, Awaitable[Task]]:
- Retrieves a single task given agent and task IDs.
-
-#### Arguments
-
- agent_id (Union[UUID, str]): The UUID of the agent
- task_id (Union[UUID, str]): The UUID of the task
- agent_id (Union[UUID, str]): Agent ID
- - `name` *str* - Task name
- - `description` *Optional[str]* - Task description
- - `tools_available` *Optional[List[str]]* - A list of available tools
- input_schema (Optional[Dict[str, Any]]): Input schema
- - `main` *List[WorkflowStep]* - A list of workflow steps
- task_id Union[UUID, str]: Task ID
- execution_id (Union[UUID, str]): Execution ID
- agent_id (Union[UUID, str]): Agent ID
- task_id (Union[UUID, str]): Task ID
- arguments (Dict[str, Any]): Task arguments
- - `status` *ExecutionStatus* - Task execution status
-agent_id (Union[UUID, str]): Agent ID
-
-#### Returns
-
-The task object or an awaitable that resolves to the task object.
-
-- `_create(self,` *agent_id* - Union[UUID, str], name: str, description: Optional[str] = None, tools_available: Optional[List[str]] = None, input_schema: Optional[Dict[str, Any]] = None, main: List[WorkflowStep]) -> Union[ResourceCreatedResponse, Awaitable[ResourceCreatedResponse]]:
- Creates a task with the given specifications.
- The response indicating creation or an awaitable that resolves to the creation response.
-
-- `_get_task_execution(self,` *task_id* - Union[UUID, str], execution_id: Union[UUID, str]) -> Union[List[Execution], Awaitable[List[Execution]]]:
- Retrieves task execution objects given a task and execution IDs
- A list of Execution objects
-
-- `_start_task_execution(self,` *agent_id* - Union[UUID, str], task_id: Union[UUID, str], arguments: Dict[str, Any], status: ExecutionStatus) -> Union[ResourceCreatedResponse, Awaitable[ResourceCreatedResponse]]:
- Starts task execution given agent and task IDs and all the required parameters
- The response indicating creation or an awaitable that resolves to the creation response.
-
-- `_list(self,` *agent_id* - Union[UUID, str]) -> Union[List[Task], Awaitable[List[Task]]]:
-Retrieves a list of tasks.
- - `List[Task]` - A list of Task objects.
-
-#### Signature
-
-```python
-class BaseTasksManager(BaseManager): ...
-```
-
-### BaseTasksManager()._create
-
-[Show source in task.py:105](../../../../../../julep/managers/task.py#L105)
-
-Creates a task with the given specifications.
-
-#### Arguments
-
-agent_id (Union[UUID, str]): Agent ID
-- `name` *str* - Task name
-- `description` *Optional[str]* - Task description
-- `tools_available` *Optional[List[str]]* - A list of available tools
-input_schema (Optional[Dict[str, Any]]): Input schema
-- `main` *List[WorkflowStep]* - A list of workflow steps
-
-#### Returns
-
-The response indicating creation or an awaitable that resolves to the creation response.
-
-#### Signature
-
-```python
-def _create(
- self,
- agent_id: Union[UUID, str],
- name: str,
- description: Optional[str] = None,
- tools_available: Optional[List[str]] = None,
- input_schema: Optional[Dict[str, Any]] = None,
- main: List[WorkflowStep],
-) -> Union[ResourceCreatedResponse, Awaitable[ResourceCreatedResponse]]: ...
-```
-
-### BaseTasksManager()._get
-
-[Show source in task.py:139](../../../../../../julep/managers/task.py#L139)
-
-Retrieves a single task given agent and task IDs.
-
-#### Arguments
-
-agent_id (Union[UUID, str]): The UUID of the agent
-task_id (Union[UUID, str]): The UUID of the task
-
-#### Returns
-
-The task object or an awaitable that resolves to the task object.
-
-#### Signature
-
-```python
-def _get(
- self, agent_id: Union[UUID, str], task_id: Union[UUID, str]
-) -> Union[Task, Awaitable[Task]]: ...
-```
-
-### BaseTasksManager()._get_task_execution
-
-[Show source in task.py:159](../../../../../../julep/managers/task.py#L159)
-
-Retrieves task execution objects given a task and execution IDs
-
-#### Arguments
-
-task_id Union[UUID, str]: Task ID
-execution_id (Union[UUID, str]): Execution ID
-
-#### Returns
-
-A list of Execution objects
-
-#### Signature
-
-```python
-def _get_task_execution(
- self, task_id: Union[UUID, str], execution_id: Union[UUID, str]
-) -> Union[List[Execution], Awaitable[List[Execution]]]: ...
-```
-
-### BaseTasksManager()._list
-
-[Show source in task.py:88](../../../../../../julep/managers/task.py#L88)
-
-Retrieves a list of tasks.
-
-#### Arguments
-
-agent_id (Union[UUID, str]): Agent ID
-
-#### Returns
-
-- `List[Task]` - A list of Task objects.
-
-#### Signature
-
-```python
-def _list(
- self, agent_id: Union[UUID, str]
-) -> Union[List[Task], Awaitable[List[Task]]]: ...
-```
-
-### BaseTasksManager()._start_task_execution
-
-[Show source in task.py:179](../../../../../../julep/managers/task.py#L179)
-
-Starts task execution given agent and task IDs and all the required parameters
-
-#### Arguments
-
-agent_id (Union[UUID, str]): Agent ID
-task_id (Union[UUID, str]): Task ID
-arguments (Dict[str, Any]): Task arguments
-- `status` *ExecutionStatus* - Task execution status
-
-#### Returns
-
-The response indicating creation or an awaitable that resolves to the creation response.
-
-#### Signature
-
-```python
-def _start_task_execution(
- self,
- agent_id: Union[UUID, str],
- task_id: Union[UUID, str],
- arguments: Dict[str, Any],
- status: ExecutionStatus,
-) -> Union[ResourceCreatedResponse, Awaitable[ResourceCreatedResponse]]: ...
-```
-
-
-
-## StartTaskExecutionArgs
-
-[Show source in task.py:25](../../../../../../julep/managers/task.py#L25)
-
-#### Signature
-
-```python
-class StartTaskExecutionArgs(TypedDict): ...
-```
-
-
-
-## TaskCreateArgs
-
-[Show source in task.py:16](../../../../../../julep/managers/task.py#L16)
-
-#### Signature
-
-```python
-class TaskCreateArgs(TypedDict): ...
-```
-
-
-
-## TasksManager
-
-[Show source in task.py:210](../../../../../../julep/managers/task.py#L210)
-
-A class for managing tasks, inheriting from [BaseTasksManager](#basetasksmanager).
-
-This class provides functionalities to interact with and manage tasks, including creating, retrieving, start execution and get execution of tasks. It utilizes type annotations to ensure type correctness at runtime using the `beartype` decorator.
-
-#### Methods
-
-- `get(self,` *agent_id* - Union[UUID, str], task_id: Union[UUID, str]) -> Task:
- Retrieves a single task given agent and task IDs.
-
-#### Arguments
-
-agent_id (Union[UUID, str]): The UUID of the agent
-task_id (Union[UUID, str]): The UUID of the task
-agent_id (Union[UUID, str]): Agent ID
-- `name` *str* - Task name
-- `description` *Optional[str]* - Task description
-- `tools_available` *Optional[List[str]]* - A list of available tools
-input_schema (Optional[Dict[str, Any]]): Input schema
-- `main` *List[WorkflowStep]* - A list of workflow steps
-task_id Union[UUID, str]: Task ID
-execution_id (Union[UUID, str]): Execution ID
-agent_id (Union[UUID, str]): Agent ID
-task_id (Union[UUID, str]): Task ID
-arguments (Dict[str, Any]): Task arguments
-- `status` *ExecutionStatus* - Task execution status
-agent_id (Union[UUID, str]): Agent ID
-
-#### Returns
-
-- `Task` - The task object with the corresponding identifier.
-
-- `create(self,` *agent_id* - Union[UUID, str], name: str, description: Optional[str] = None, tools_available: Optional[List[str]] = None, input_schema: Optional[Dict[str, Any]] = None, main: List[WorkflowStep]) -> Task:
- Creates a task with the given specifications.
- - `Task` - A newly created task object.
-
-- `get_task_execution(self,` *task_id* - Union[UUID, str], execution_id: Union[UUID, str]) -> List[Execution]:
- Retrieves task execution objects given a task and execution IDs
- - `List[Execution]` - A list of Execution objects
-
-- `start_task_execution(self,` *agent_id* - Union[UUID, str], task_id: Union[UUID, str], arguments: Dict[str, Any], status: ExecutionStatus) -> Execution:
- Starts task execution given agent and task IDs and all the required parameters
- - `Execution` - A newly created execution object
-
-- `list(self,` *agent_id* - Union[UUID, str]) -> List[Task]:
- Retrieves a list of tasks.
- - `List[Task]` - A list of Task objects.
-
-#### Signature
-
-```python
-class TasksManager(BaseTasksManager): ...
-```
-
-#### See also
-
-- [BaseTasksManager](#basetasksmanager)
-
-### TasksManager().create
-
-[Show source in task.py:282](../../../../../../julep/managers/task.py#L282)
-
-Creates a task with the given specifications.
-
-#### Arguments
-
-agent_id (Union[UUID, str]): Agent ID
-- `name` *str* - Task name
-- `description` *Optional[str]* - Task description
-- `tools_available` *Optional[List[str]]* - A list of available tools
-input_schema (Optional[Dict[str, Any]]): Input schema
-- `main` *List[WorkflowStep]* - A list of workflow steps
-
-#### Returns
-
-- `Task` - A newly created task object.
-
-#### Signature
-
-```python
-@beartype
-@rewrap_in_class(Task)
-def create(self, **kwargs: TaskCreateArgs) -> Task: ...
-```
-
-#### See also
-
-- [TaskCreateArgs](#taskcreateargs)
-
-### TasksManager().get
-
-[Show source in task.py:300](../../../../../../julep/managers/task.py#L300)
-
-Retrieves a single task given agent and task IDs.
-
-#### Arguments
-
-agent_id (Union[UUID, str]): The UUID of the agent
-task_id (Union[UUID, str]): The UUID of the task
-
-#### Returns
-
-- `Task` - The task object with the corresponding identifier.
-
-#### Signature
-
-```python
-@beartype
-def get(self, agent_id: Union[UUID, str], task_id: Union[UUID, str]) -> Task: ...
-```
-
-### TasksManager().get_task_execution
-
-[Show source in task.py:313](../../../../../../julep/managers/task.py#L313)
-
-Retrieves task execution objects given a task and execution IDs
-
-#### Arguments
-
-task_id Union[UUID, str]: Task ID
-execution_id (Union[UUID, str]): Execution ID
-
-#### Returns
-
-- `List[Execution]` - A list of Execution objects
-
-#### Signature
-
-```python
-@beartype
-def get_task_execution(
- self, task_id: Union[UUID, str], execution_id: Union[UUID, str]
-) -> List[Execution]: ...
-```
-
-### TasksManager().list
-
-[Show source in task.py:263](../../../../../../julep/managers/task.py#L263)
-
-Retrieves a list of tasks.
-
-#### Arguments
-
-agent_id (Union[UUID, str]): Agent ID
-
-#### Returns
-
-- `List[Task]` - A list of Task objects.
-
-#### Signature
-
-```python
-@beartype
-def list(self, agent_id: Union[UUID, str]) -> List[Task]: ...
-```
-
-### TasksManager().start_task_execution
-
-[Show source in task.py:331](../../../../../../julep/managers/task.py#L331)
-
-Starts task execution given agent and task IDs and all the required parameters
-
-#### Arguments
-
-agent_id (Union[UUID, str]): Agent ID
-task_id (Union[UUID, str]): Task ID
-arguments (Dict[str, Any]): Task arguments
-- `status` *ExecutionStatus* - Task execution status
-
-#### Returns
-
-- `Execution` - A newly created execution object
-
-#### Signature
-
-```python
-@beartype
-@rewrap_in_class(Execution)
-def start_task_execution(self, **kwargs: StartTaskExecutionArgs) -> Execution: ...
-```
-
-#### See also
-
-- [StartTaskExecutionArgs](#starttaskexecutionargs)
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/managers/tool.md b/docs/python-sdk-docs/julep/managers/tool.md
deleted file mode 100644
index 73889b87a..000000000
--- a/docs/python-sdk-docs/julep/managers/tool.md
+++ /dev/null
@@ -1,521 +0,0 @@
-# Tool
-
-[Julep Python SDK Index](../../README.md#julep-python-sdk-index) / [Julep](../index.md#julep) / [Managers](./index.md#managers) / Tool
-
-> Auto-generated documentation for [julep.managers.tool](../../../../../../julep/managers/tool.py) module.
-
-- [Tool](#tool)
- - [AsyncToolsManager](#asynctoolsmanager)
- - [BaseToolsManager](#basetoolsmanager)
- - [ToolsManager](#toolsmanager)
-
-## AsyncToolsManager
-
-[Show source in tool.py:352](../../../../../../julep/managers/tool.py#L352)
-
-A manager for asynchronous tools handling.
-
-This class provides async methods to manage tools, allowing create, retrieve, update, and delete operations.
-
-Methods:
- get: Asynchronously retrieves tools associated with an agent.
- create: Asynchronously creates a new tool associated with an agent.
- delete: Asynchronously deletes a tool associated with an agent.
- update: Asynchronously updates a tool associated with an agent.
-
-Attributes:
- Inherited from BaseToolsManager.
-
-#### Signature
-
-```python
-class AsyncToolsManager(BaseToolsManager): ...
-```
-
-#### See also
-
-- [BaseToolsManager](#basetoolsmanager)
-
-### AsyncToolsManager().create
-
-[Show source in tool.py:403](../../../../../../julep/managers/tool.py#L403)
-
-Create a new resource asynchronously.
-
-This method creates a new resource using the provided `agent_id` and `tool` information.
-
-#### Arguments
-
-agent_id (Union[str, UUID]): The identifier of the agent, which can be a string or a UUID object.
-- `tool` *ToolDict* - A dictionary containing tool-specific data.
-
-#### Returns
-
-- `ResourceCreatedResponse` - An object representing the response received after creating the resource.
-
-#### Raises
-
-- `BeartypeException` - If the type of any argument does not match the expected type.
-
-#### Signature
-
-```python
-@beartype
-async def create(
- self, agent_id: Union[str, UUID], tool: ToolDict
-) -> ResourceCreatedResponse: ...
-```
-
-### AsyncToolsManager().delete
-
-[Show source in tool.py:430](../../../../../../julep/managers/tool.py#L430)
-
-Asynchronously delete a specified agent-tool association.
-
-This function is a high-level asynchronous API that delegates to a
-private coroutinal method `_delete` to perform the actual deletion based on
-the provided `agent_id` and `tool_id`.
-
-Args:
- agent_id (Union[str, UUID]): The unique identifier of the agent.
- tool_id (Union[str, UUID]): The unique identifier of the tool.
-
-Returns:
- The return type is not explicitly stated in the function signature.
- Typically, the returned value would be documented here, but you may need
- to investigate the implementation of `_delete` to determine what it
- returns.
-
-Raises:
- The exceptions that this function might raise are not stated in the
- snippet provided. If the private method `_delete` raises any exceptions,
- they should be documented here. Depending on the implementation, common
- exceptions might include `ValueError` if identifiers are invalid or
- `RuntimeError` if deletion fails.
-
-#### Signature
-
-```python
-@beartype
-async def delete(
- self, agent_id: Union[str, UUID], tool_id: Union[str, UUID]
-) -> Awaitable[ResourceDeletedResponse]: ...
-```
-
-### AsyncToolsManager().get
-
-[Show source in tool.py:368](../../../../../../julep/managers/tool.py#L368)
-
-Asynchronously get a list of Tool objects based on provided filters.
-
-This method fetches Tool objects with the option to limit the results and
-offset them, to allow for pagination.
-
-#### Arguments
-
-agent_id (Union[str, UUID]): The unique identifier of the agent for which to fetch tools.
-- `limit` *Optional[int], optional* - The maximum number of tools to return. Defaults to None, which implies no limit.
-- `offset` *Optional[int], optional* - The number of tools to skip before starting to return the tools. Defaults to None, which means start from the beginning.
-
-#### Returns
-
-- `List[Tool]` - A list of Tool objects that match the criteria.
-
-#### Notes
-
-This function is decorated with beartype, which assures that the input
-arguments adhere to the specified types at runtime. It is an asynchronous
-function and should be called with `await`.
-
-#### Signature
-
-```python
-@beartype
-async def get(
- self,
- agent_id: Union[str, UUID],
- limit: Optional[int] = None,
- offset: Optional[int] = None,
-) -> List[Tool]: ...
-```
-
-### AsyncToolsManager().update
-
-[Show source in tool.py:466](../../../../../../julep/managers/tool.py#L466)
-
-Asynchronously updates a resource identified by the agent_id and tool_id with a new definition.
-
-This function is type-enforced using the `beartype` decorator.
-
-#### Arguments
-
-agent_id (Union[str, UUID]): The unique identifier for the agent.
-tool_id (Union[str, UUID]): The unique identifier for the tool.
-- `function` *FunctionDefDict* - A dictionary containing the function definition which needs to be updated.
-
-#### Returns
-
-- `ResourceUpdatedResponse` - An object representing the response received after updating the resource.
-
-#### Raises
-
-This will depend on the implementation of the `_update` method and any exceptions that it raises.
-
-#### Signature
-
-```python
-@beartype
-async def update(
- self,
- agent_id: Union[str, UUID],
- tool_id: Union[str, UUID],
- function: FunctionDefDict,
-) -> ResourceUpdatedResponse: ...
-```
-
-
-
-## BaseToolsManager
-
-[Show source in tool.py:22](../../../../../../julep/managers/tool.py#L22)
-
-A class to manage tools by interacting with an API client.
-
-This class provides methods for creating, reading, updating, and deleting tools associated with agents. It ensures the validity of UUIDs for agent_id and tool_id where applicable and handles both synchronous and asynchronous operations.
-
-#### Attributes
-
-- `api_client` - The API client used to send requests to the service.
-
-#### Methods
-
-- `_get(self,` *agent_id* - Union[str, UUID], limit: Optional[int]=None, offset: Optional[int]=None) -> Union[GetAgentToolsResponse, Awaitable[GetAgentToolsResponse]]:
- Retrieves a list of tools associated with the specified agent. Supports pagination through limit and offset parameters.
-
-- `_create(self,` *agent_id* - Union[str, UUID], tool: ToolDict) -> Union[ResourceCreatedResponse, Awaitable[ResourceCreatedResponse]]:
- Creates a new tool associated with the specified agent.
-
-- `_update(self,` *agent_id* - Union[str, UUID], tool_id: Union[str, UUID], function: FunctionDefDict) -> Union[ResourceUpdatedResponse, Awaitable[ResourceUpdatedResponse]]:
- Updates the definition of an existing tool associated with the specified agent.
-
-- `_delete(self,` *agent_id* - Union[str, UUID], tool_id: Union[str, UUID]):
- Deletes a tool associated with the specified agent.
-
-#### Signature
-
-```python
-class BaseToolsManager(BaseManager): ...
-```
-
-### BaseToolsManager()._create
-
-[Show source in tool.py:77](../../../../../../julep/managers/tool.py#L77)
-
-Create a new tool associated with a given agent.
-
-Args:
- agent_id (Union[str, UUID]): The ID of the agent for which to create the tool. Must be a valid UUID v4.
- tool (ToolDict): A dictionary with tool data conforming to the CreateToolRequest structure.
-
-Returns:
- Union[ResourceCreatedResponse, Awaitable[ResourceCreatedResponse]]: The response object indicating the newly created tool,
- either as a direct response or as an awaitable if it's an asynchronous operation.
-
-#### Signature
-
-```python
-def _create(
- self, agent_id: Union[str, UUID], tool: ToolDict
-) -> Union[ResourceCreatedResponse, Awaitable[ResourceCreatedResponse]]: ...
-```
-
-### BaseToolsManager()._delete
-
-[Show source in tool.py:142](../../../../../../julep/managers/tool.py#L142)
-
-Delete a tool associated with an agent.
-
-Args:
- agent_id (Union[str, UUID]): The UUID of the agent.
- tool_id (Union[str, UUID]): The UUID of the tool to be deleted.
-
-Returns:
- The response from the API client's delete_agent_tool method.
-
-Raises:
- AssertionError: If either `agent_id` or `tool_id` is not a valid UUID v4.
-
-#### Signature
-
-```python
-def _delete(
- self, agent_id: Union[str, UUID], tool_id: Union[str, UUID]
-) -> Union[ResourceDeletedResponse, Awaitable[ResourceDeletedResponse]]: ...
-```
-
-### BaseToolsManager()._get
-
-[Show source in tool.py:45](../../../../../../julep/managers/tool.py#L45)
-
-Retrieve tools associated with the given agent.
-
-This is a private method that fetches tools for the provided agent ID, with optional
-limit and offset parameters for pagination.
-
-#### Arguments
-
-agent_id (Union[str, UUID]): The unique identifier for the agent, which can be a
- string or UUID object.
-- `limit` *Optional[int], optional* - The maximum number of tools to retrieve. Defaults to None.
-- `offset` *Optional[int], optional* - The number of tools to skip before starting to collect
- the result set. Defaults to None.
-
-#### Returns
-
-- `Union[GetAgentToolsResponse,` *Awaitable[GetAgentToolsResponse]]* - The response object which
-contains the list of tools, or an awaitable response object for asynchronous operations.
-
-#### Raises
-
-- `AssertionError` - If the agent_id is not a valid UUID v4.
-
-#### Signature
-
-```python
-def _get(
- self,
- agent_id: Union[str, UUID],
- limit: Optional[int] = None,
- offset: Optional[int] = None,
-) -> Union[GetAgentToolsResponse, Awaitable[GetAgentToolsResponse]]: ...
-```
-
-### BaseToolsManager()._update
-
-[Show source in tool.py:102](../../../../../../julep/managers/tool.py#L102)
-
-Update the tool definition for a given agent.
-
-Args:
- agent_id (Union[str, UUID]): The unique identifier for the agent, either in string or UUID format.
- tool_id (Union[str, UUID]): The unique identifier for the tool, either in string or UUID format.
- function (FunctionDefDict): A dictionary containing the function definition that conforms with the required API schema.
- overwrite (bool): A flag to indicate whether to overwrite the existing function definition. Defaults to False.
-
-Returns:
- Union[ResourceUpdatedResponse, Awaitable[ResourceUpdatedResponse]]: The updated resource response sync or async.
-
-Raises:
- AssertionError: If the `agent_id` or `tool_id` is not a valid UUID v4.
-
-#### Signature
-
-```python
-def _update(
- self,
- agent_id: Union[str, UUID],
- tool_id: Union[str, UUID],
- function: FunctionDefDict,
- overwrite: bool = False,
-) -> Union[ResourceUpdatedResponse, Awaitable[ResourceUpdatedResponse]]: ...
-```
-
-
-
-## ToolsManager
-
-[Show source in tool.py:170](../../../../../../julep/managers/tool.py#L170)
-
-A manager class for handling tools related to agents.
-
-This class provides an interface to manage tools, including their retrieval, creation,
-deletion, and updating. It extends the functionalities of the BaseToolsManager.
-
-#### Methods
-
-get:
- Retrieves a list of tools for the given agent.
-
-#### Arguments
-
-agent_id (Union[str, UUID]): The identifier of the agent whose tools are being retrieved.
-- `limit` *Optional[int], optional* - The maximum number of tools to retrieve.
-- `offset` *Optional[int], optional* - The index from which to start the retrieval.
-
-agent_id (Union[str, UUID]): The identifier of the agent for whom the tool is being created.
-- `tool` *ToolDict* - A dictionary of tool attributes.
-
-agent_id (Union[str, UUID]): The identifier of the agent whose tool is being deleted.
-tool_id (Union[str, UUID]): The unique identifier of the tool to be deleted.
-
-update:
- Updates the definition of an existing tool for the given agent.
-
-agent_id (Union[str, UUID]): The identifier of the agent whose tool is being updated.
-tool_id (Union[str, UUID]): The unique identifier of the tool to be updated.
-- `function` *FunctionDefDict* - A dictionary representing the definition of the tool to be updated.
-
-#### Returns
-
-- `List[Tool]` - A list of Tool objects.
-
-create:
- Creates a new tool for the given agent.
-
-- `ResourceCreatedResponse` - An object indicating the successful creation of the tool.
-
-delete:
- Deletes a tool for the given agent.
-
-- `ResourceUpdatedResponse` - An object indicating the successful update of the tool.
-
-Inherits:
- - [BaseToolsManager](#basetoolsmanager) - A base class that defines the basic operations for tool management.
-
-#### Signature
-
-```python
-class ToolsManager(BaseToolsManager): ...
-```
-
-#### See also
-
-- [BaseToolsManager](#basetoolsmanager)
-
-### ToolsManager().create
-
-[Show source in tool.py:252](../../../../../../julep/managers/tool.py#L252)
-
-Create a new resource with the provided agent identifier and tool information.
-
-This method wraps the internal `_create` method to construct and return a ResourceCreatedResponse.
-
-Args:
- agent_id (Union[str, UUID]): The unique identifier for the agent. Can be a string or a UUID object.
- tool (ToolDict): A dictionary containing tool-specific configuration or information.
-
-Returns:
- ResourceCreatedResponse: An object representing the successfully created resource, including metadata like creation timestamps and resource identifiers.
-
-Raises:
- TypeError: If the `agent_id` or `tool` arguments are not of the expected type.
- ValueError: If any values within the `tool` dictionary are invalid or out of accepted range.
- RuntimeError: If the creation process encounters an unexpected error.
-
-Note:
- The `@beartype` decorator is used to enforce type checking of the arguments at runtime.
-
-Example usage:
-
-```python
->>> response = instance.create(agent_id="123e4567-e89b-12d3-a456-426614174000", tool={"type": "screwdriver", "size": "M4"})
->>> print(response)
-ResourceCreatedResponse(resource_id='abcde-12345', created_at='2021-01-01T12:00:00Z')
-```
-
-#### Signature
-
-```python
-@beartype
-def create(
- self, agent_id: Union[str, UUID], tool: ToolDict
-) -> ResourceCreatedResponse: ...
-```
-
-### ToolsManager().delete
-
-[Show source in tool.py:290](../../../../../../julep/managers/tool.py#L290)
-
-Deletes an agent's access to a specific tool.
-
-#### Arguments
-
-agent_id (Union[str, UUID]): The unique identifier of the agent.
-tool_id (Union[str, UUID]): The unique identifier of the tool.
-
-#### Returns
-
-The result of the delete operation, the specific type of which may depend on the implementation of `_delete`.
-
-#### Raises
-
-- `Beartype` *exceptions* - If `agent_id` or `tool_id` are of the wrong type.
-
-#### Signature
-
-```python
-@beartype
-def delete(self, agent_id: Union[str, UUID], tool_id: Union[str, UUID]): ...
-```
-
-### ToolsManager().get
-
-[Show source in tool.py:221](../../../../../../julep/managers/tool.py#L221)
-
-Retrieve a list of Tool objects for the specified agent.
-
-This method wraps the internal _get method and returns the 'items' property
-from the result, which contains a list of Tool instances.
-
-Args:
- agent_id (Union[str, UUID]): The ID of the agent to retrieve Tool objects for.
- limit (Optional[int]): The maximum number of Tool objects to return. Defaults to None, implying no limit.
- offset (Optional[int]): The number to skip before starting to collect the result set. Defaults to None, implying no offset.
-
-Returns:
- List[Tool]: A list of Tool instances associated with the specified agent ID.
-
-Raises:
- BeartypeException: If the input argument types do not match the expected types.
-
-#### Signature
-
-```python
-@beartype
-def get(
- self,
- agent_id: Union[str, UUID],
- limit: Optional[int] = None,
- offset: Optional[int] = None,
-) -> List[Tool]: ...
-```
-
-### ToolsManager().update
-
-[Show source in tool.py:315](../../../../../../julep/managers/tool.py#L315)
-
-Update a specific tool definition for an agent.
-
-#### Arguments
-
-agent_id (Union[str, UUID]): The unique identifier of the agent.
-tool_id (Union[str, UUID]): The unique identifier of the tool to be updated.
-- `function` *FunctionDefDict* - A dictionary containing the new definition of the tool.
-- `overwrite` *bool* - A flag indicating whether to overwrite the existing definition.
-
-#### Returns
-
-- `ResourceUpdatedResponse` - An object representing the update operation response.
-
-#### Notes
-
-This function is decorated with `beartype` which ensures that the arguments provided
-match the expected types at runtime.
-
-#### Raises
-
-- `BeartypeDecorHintPepParamException` - If the type of any parameter does not match the expected type.
-Any exceptions that `self._update` method might raise.
-
-#### Signature
-
-```python
-@beartype
-def update(
- self,
- agent_id: Union[str, UUID],
- tool_id: Union[str, UUID],
- function: FunctionDefDict,
- overwrite: bool = False,
-) -> ResourceUpdatedResponse: ...
-```
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/managers/types.md b/docs/python-sdk-docs/julep/managers/types.md
deleted file mode 100644
index 03813b1c6..000000000
--- a/docs/python-sdk-docs/julep/managers/types.md
+++ /dev/null
@@ -1,22 +0,0 @@
-# Types
-
-[Julep Python SDK Index](../../README.md#julep-python-sdk-index) / [Julep](../index.md#julep) / [Managers](./index.md#managers) / Types
-
-> Auto-generated documentation for [julep.managers.types](../../../../../../julep/managers/types.py) module.
-
-#### Attributes
-
-- `ChatSettingsResponseFormatDict` - Represents the settings for chat response formatting, used in configuring agent chat behavior.: TypedDict('ChatSettingsResponseFormat', **{k: v.outer_type_ for (k, v) in ChatSettingsResponseFormat.__fields__.items()})
-
-- `InputChatMlMessageDict` - Represents an input message for chat in ML format, used for processing chat inputs.: TypedDict('InputChatMlMessage', **{k: v.outer_type_ for (k, v) in InputChatMlMessage.__fields__.items()})
-
-- `ToolDict` - Represents the structure of a tool, used for defining tools within the system.: TypedDict('Tool', **{k: v.outer_type_ for (k, v) in Tool.__fields__.items()})
-
-- `DocDict` - Represents the serialized form of a document, used for API communication.: TypedDict('DocDict', **{k: v.outer_type_ for (k, v) in CreateDoc.__fields__.items()})
-
-- `DefaultSettingsDict` - Represents the default settings for an agent, used in agent configuration.: TypedDict('DefaultSettingsDict', **{k: v.outer_type_ for (k, v) in AgentDefaultSettings.__fields__.items()})
-
-- `FunctionDefDict` - Represents the definition of a function, used for defining functions within the system.: TypedDict('FunctionDefDict', **{k: v.outer_type_ for (k, v) in FunctionDef.__fields__.items()})
-
-- `ToolDict` - Represents the request structure for creating a tool, used in tool creation API calls.: TypedDict('ToolDict', **{k: v.outer_type_ for (k, v) in CreateToolRequest.__fields__.items()})
-- [Types](#types)
diff --git a/docs/python-sdk-docs/julep/managers/user.md b/docs/python-sdk-docs/julep/managers/user.md
deleted file mode 100644
index 606b2f5c9..000000000
--- a/docs/python-sdk-docs/julep/managers/user.md
+++ /dev/null
@@ -1,621 +0,0 @@
-# User
-
-[Julep Python SDK Index](../../README.md#julep-python-sdk-index) / [Julep](../index.md#julep) / [Managers](./index.md#managers) / User
-
-> Auto-generated documentation for [julep.managers.user](../../../../../../julep/managers/user.py) module.
-
-- [User](#user)
- - [AsyncUsersManager](#asyncusersmanager)
- - [BaseUsersManager](#baseusersmanager)
- - [UserCreateArgs](#usercreateargs)
- - [UserUpdateArgs](#userupdateargs)
- - [UsersManager](#usersmanager)
-
-## AsyncUsersManager
-
-[Show source in user.py:358](../../../../../../julep/managers/user.py#L358)
-
-A class that provides asynchronous management of users extending BaseUsersManager.
-
-Attributes are inherited from BaseUsersManager.
-
-#### Methods
-
-get (Union[UUID, str]) -> User:
- Asynchronously retrieves a user by their unique identifier (either a UUID or a string).
-
-create (*, name: str, about: str, docs: List[DocDict]=[]) -> ResourceCreatedResponse:
- Asynchronously creates a new user with the given name, about description, and optional list of documents.
-
-list (*, limit: Optional[int]=None, offset: Optional[int]=None) -> List[User]:
- Asynchronously retrieves a list of users with an optional limit and offset for pagination.
-
-delete (*, user_id: Union[str, UUID]) -> None:
- Asynchronously deletes a user identified by their unique ID (either a string or a UUID).
-
-update (*, user_id: Union[str, UUID], about: Optional[str]=None, name: Optional[str]=None) -> ResourceUpdatedResponse:
- Asynchronously updates a user's information identified by their unique ID with optional new about description and name.
-
-#### Notes
-
-The beartype decorator is used for runtime type checking of the parameters passed to the methods.
-
-#### Signature
-
-```python
-class AsyncUsersManager(BaseUsersManager): ...
-```
-
-#### See also
-
-- [BaseUsersManager](#baseusersmanager)
-
-### AsyncUsersManager().create
-
-[Show source in user.py:402](../../../../../../julep/managers/user.py#L402)
-
-Asynchronously create a new resource with the provided name, description, and documents.
-
-This function is decorated with `@beartype` to ensure type checking at runtime.
-
-#### Arguments
-
-- `name` *str* - The name of the resource to be created.
-- `about` *str* - Brief information about the resource.
-- `docs` *List[DocDict], optional* - A list of document dictionaries with structure defined by DocDict type.
-
-#### Returns
-
-- `ResourceCreatedResponse` - An instance representing the response after resource creation.
-
-#### Raises
-
-- `BeartypeException` - If any of the parameters do not match their annotated types.
-
-#### Signature
-
-```python
-@beartype
-@rewrap_in_class(User)
-async def create(self, **kwargs: UserCreateArgs) -> User: ...
-```
-
-#### See also
-
-- [UserCreateArgs](#usercreateargs)
-
-### AsyncUsersManager().delete
-
-[Show source in user.py:461](../../../../../../julep/managers/user.py#L461)
-
-Asynchronously deletes a user by their user ID.
-
-#### Arguments
-
-user_id (Union[str, UUID]): The unique identifier of the user to delete, which can be a string or a UUID.
-
-#### Returns
-
-- `None` - This function does not return anything.
-
-#### Notes
-
-- The function is decorated with `@beartype` for runtime type checking.
-- This function is a coroutine, it should be called with `await`.
-
-#### Raises
-
-- The raised exceptions depend on the implementation of the underlying `_delete` coroutine.
-
-#### Signature
-
-```python
-@beartype
-async def delete(self, user_id: Union[str, UUID]) -> None: ...
-```
-
-### AsyncUsersManager().get
-
-[Show source in user.py:384](../../../../../../julep/managers/user.py#L384)
-
-Fetch a User object asynchronously by its identifier.
-
-This method retrieves a User object from some data storage asynchronously based on the provided identifier, which can be either a UUID or a string.
-
-#### Arguments
-
-id (Union[UUID, str]): The unique identifier of the User to be retrieved.
-
-#### Returns
-
-- `User` - An instance of the User class corresponding to the given id.
-
-#### Raises
-
-- `Exception` - If the retrieval fails or the user cannot be found.
-
-#### Signature
-
-```python
-@beartype
-async def get(self, id: Union[UUID, str]) -> User: ...
-```
-
-### AsyncUsersManager().list
-
-[Show source in user.py:424](../../../../../../julep/managers/user.py#L424)
-
-Asynchronously lists users with optional limits and offsets.
-
-This function applies the `beartype` decorator for runtime type checking.
-
-#### Arguments
-
-- `limit` *Optional[int], optional* - The maximum number of users to be returned. Defaults to None, which means no limit.
-- `offset` *Optional[int], optional* - The number to offset the list of returned users by. Defaults to None, which means no offset.
-
-#### Returns
-
-- `List[User]` - A list of user objects.
-
-#### Raises
-
-- `TypeError` - If any input arguments are not of the expected type.
-Any other exception that might be raised during the retrieval of users from the data source.
-
-#### Notes
-
-The actual exception raised by the `beartype` decorator or during the users' retrieval will depend on the implementation detail of the `self._list_items` method and the `beartype` configuration.
-
-#### Signature
-
-```python
-@beartype
-async def list(
- self,
- limit: Optional[int] = None,
- offset: Optional[int] = None,
- metadata_filter: Dict[str, Any] = {},
-) -> List[User]: ...
-```
-
-### AsyncUsersManager().update
-
-[Show source in user.py:486](../../../../../../julep/managers/user.py#L486)
-
-Asynchronously updates user details.
-
-This function updates user details such as 'about' and 'name'. It uses type annotations to enforce the types of the parameters and an asynchronous call to '_update' method to perform the actual update operation.
-
-#### Arguments
-
-user_id (Union[str, UUID]): The unique identifier of the user, which can be either a string or a UUID.
-- `about` *Optional[str], optional* - A description of the user. Default is None, indicating no update.
-- `name` *Optional[str], optional* - The name of the user. Default is None, indicating no update.
-
-#### Returns
-
-- `ResourceUpdatedResponse` - An object representing the update status.
-
-#### Notes
-
-This function is decorated with @beartype to perform runtime type checking.
-
-#### Signature
-
-```python
-@beartype
-@rewrap_in_class(User)
-async def update(self, user_id: Union[str, UUID], **kwargs: UserUpdateArgs) -> User: ...
-```
-
-#### See also
-
-- [UserUpdateArgs](#userupdateargs)
-
-
-
-## BaseUsersManager
-
-[Show source in user.py:36](../../../../../../julep/managers/user.py#L36)
-
-A manager class for handling user-related operations through an API client.
-
-This class provides high-level methods to interact with user records,
-such as retrieving a user by ID, creating a new user, listing all users,
-deleting a user, and updating a user's details.
-
-Attributes:
- api_client: The API client instance to communicate with the user service.
-
-Methods:
- _get: Retrieve a user by a unique UUID.
- _create: Create a new user with the specified name and about fields, and optionally additional documents.
- _list_items: List users with optional pagination through limit and offset parameters.
- _delete: Delete a user by UUID.
- _update: Update user details such as the 'about' description and name by UUID.
-
-Raises:
- AssertionError: If the provided ID for the user operations is not a valid UUID v4.
-
-#### Signature
-
-```python
-class BaseUsersManager(BaseManager): ...
-```
-
-### BaseUsersManager()._create
-
-[Show source in user.py:79](../../../../../../julep/managers/user.py#L79)
-
-Create a new resource with the given name and about information, optionally including additional docs.
-
-This internal method allows for creating a new resource with optional docsrmation.
-
-#### Arguments
-
-- `name` *str* - The name of the new resource.
-- `about` *str* - A brief description about the new resource.
-- `docs` *List[DocDict], optional* - A list of dictionaries with documentation-related information. Each dictionary
- must conform to the structure expected by CreateDoc. Defaults to an empty list.
-metadata (Dict[str, Any])
-
-#### Returns
-
-- `Union[ResourceCreatedResponse,` *Awaitable[ResourceCreatedResponse]]* - The response indicating the resource has been
-created successfully. It can be either a synchronous ResourceCreatedResponse or an asynchronous Awaitable object
-containing a ResourceCreatedResponse.
-
-#### Notes
-
-This method is an internal API implementation detail and should not be used directly outside the defining class
-or module.
-
-Side effects:
- Modifies internal state by converting each doc dict to an instance of CreateDoc and uses the
- internal API client to create a new user resource.
-
-#### Signature
-
-```python
-def _create(
- self, name: str, about: str, docs: List[DocDict] = [], metadata: Dict[str, Any] = {}
-) -> Union[ResourceCreatedResponse, Awaitable[ResourceCreatedResponse]]: ...
-```
-
-### BaseUsersManager()._delete
-
-[Show source in user.py:144](../../../../../../julep/managers/user.py#L144)
-
-Delete a user given their user ID.
-
-Args:
- user_id (Union[str, UUID]): The identifier of the user. Must be a valid UUID version 4.
-
-Returns:
- Union[None, Awaitable[None]]: None if the deletion is synchronous, or an Awaitable
- that resolves to None if the deletion is asynchronous.
-
-Raises:
- AssertionError: If the user_id is not a valid UUID v4.
-
-#### Signature
-
-```python
-def _delete(self, user_id: Union[str, UUID]) -> Union[None, Awaitable[None]]: ...
-```
-
-### BaseUsersManager()._get
-
-[Show source in user.py:58](../../../../../../julep/managers/user.py#L58)
-
-Get the user by their ID.
-
-This method is intended to retrieve a User object or an Awaitable User object by the user's unique identifier. The identifier can be a string representation of a UUID or a UUID object itself.
-
-#### Arguments
-
-id (Union[str, UUID]): The unique identifier of the user to retrieve. It must be a valid UUID v4.
-
-#### Returns
-
-- `Union[User,` *Awaitable[User]]* - The retrieved User instance or an Awaitable that resolves to a User instance.
-
-#### Raises
-
-- `AssertionError` - If the `id` is not a valid UUID v4.
-
-#### Notes
-
-The leading underscore in the method name suggests that this method is intended for internal use and should not be a part of the public interface of the class.
-
-#### Signature
-
-```python
-def _get(self, id: Union[str, UUID]) -> Union[User, Awaitable[User]]: ...
-```
-
-### BaseUsersManager()._list_items
-
-[Show source in user.py:121](../../../../../../julep/managers/user.py#L121)
-
-Fetch a list of users, with optional pagination parameters.
-
-Args:
- limit (Optional[int], optional): The maximum number of users to return. Defaults to None.
- offset (Optional[int], optional): The offset from the start of the list to begin returning users. Defaults to None.
-
-Returns:
- Union[ListUsersResponse, Awaitable[ListUsersResponse]]: An instance of ListUsersResponse,
- or an awaitable that will resolve to it, depending on the API client implementation.
-
-#### Signature
-
-```python
-def _list_items(
- self,
- limit: Optional[int] = None,
- offset: Optional[int] = None,
- metadata_filter: str = "{}",
-) -> Union[ListUsersResponse, Awaitable[ListUsersResponse]]: ...
-```
-
-### BaseUsersManager()._update
-
-[Show source in user.py:161](../../../../../../julep/managers/user.py#L161)
-
-Update user details for a given user ID.
-
-This method updates the 'about' and/or 'name' fields for the user identified by user_id.
-
-#### Arguments
-
-user_id (Union[str, UUID]): The ID of the user to be updated. Must be a valid UUID v4.
-- `about` *Optional[str], optional* - The new information about the user. Defaults to None.
-- `name` *Optional[str], optional* - The new name for the user. Defaults to None.
-metadata (Dict[str, Any])
-- `overwrite` *bool, optional* - Whether to overwrite the existing user data. Defaults to False.
-
-#### Returns
-
-- `Union[ResourceUpdatedResponse,` *Awaitable[ResourceUpdatedResponse]]* - The response indicating successful update or an Awaitable that resolves to such a response.
-
-#### Raises
-
-- `AssertionError` - If `user_id` is not a valid UUID v4.
-
-#### Signature
-
-```python
-def _update(
- self,
- user_id: Union[str, UUID],
- about: Optional[str] = NotSet,
- name: Optional[str] = NotSet,
- metadata: Dict[str, Any] = NotSet,
- overwrite: bool = False,
-) -> Union[ResourceUpdatedResponse, Awaitable[ResourceUpdatedResponse]]: ...
-```
-
-
-
-## UserCreateArgs
-
-[Show source in user.py:22](../../../../../../julep/managers/user.py#L22)
-
-#### Signature
-
-```python
-class UserCreateArgs(TypedDict): ...
-```
-
-
-
-## UserUpdateArgs
-
-[Show source in user.py:29](../../../../../../julep/managers/user.py#L29)
-
-#### Signature
-
-```python
-class UserUpdateArgs(TypedDict): ...
-```
-
-
-
-## UsersManager
-
-[Show source in user.py:208](../../../../../../julep/managers/user.py#L208)
-
-A class responsible for managing users in a system.
-
-This class is a specialized version of the BaseUsersManager and provides
-methods for retrieving, creating, listing, deleting, and updating users within
-the system.
-
-#### Methods
-
-- `get(id` - Union[str, UUID]) -> User:
- Retrieves a user based on their unique identifier (either a string or UUID).
-
-- `create(*,` *name* - str, about: str, docs: List[DocDict]=[]) -> ResourceCreatedResponse:
- Creates a new user with the specified name, description about the user,
- and an optional list of documents associated with the user.
-
-- `list(*,` *limit* - Optional[int]=None, offset: Optional[int]=None) -> List[User]:
- Lists users in the system, with optional limit and offset for pagination.
-
-- `delete(*,` *user_id* - Union[str, UUID]) -> None:
- Deletes a user from the system based on their unique identifier.
-
-- `update(*,` *user_id* - Union[str, UUID], about: Optional[str]=None, name: Optional[str]=None) -> ResourceUpdatedResponse:
- Updates an existing user's information with optional new about and name
- fields.
-
-#### Signature
-
-```python
-class UsersManager(BaseUsersManager): ...
-```
-
-#### See also
-
-- [BaseUsersManager](#baseusersmanager)
-
-### UsersManager().create
-
-[Show source in user.py:255](../../../../../../julep/managers/user.py#L255)
-
-Create a new resource with the specified name, about text, and associated docs.
-
-Args:
- name (str): The name of the resource to create.
- about (str): A brief description of the resource.
- docs (List[DocDict], optional): A list of dictionaries representing the documents associated with the resource. Defaults to an empty list.
-
-Returns:
- ResourceCreatedResponse: An object representing the response received upon the successful creation of the resource.
-
-Note:
- Using mutable types like list as default argument values in Python is risky because if the list is modified,
- those changes will persist across subsequent calls to the function which use the default value. It is
- generally safer to use `None` as a default value and then set the default inside the function if needed.
-
-Raises:
- BeartypeException: If the input types do not match the specified function annotations.
-
-#### Signature
-
-```python
-@beartype
-@rewrap_in_class(User)
-def create(self, **kwargs: UserCreateArgs) -> User: ...
-```
-
-#### See also
-
-- [UserCreateArgs](#usercreateargs)
-
-### UsersManager().delete
-
-[Show source in user.py:311](../../../../../../julep/managers/user.py#L311)
-
-Deletes a user based on the provided user ID.
-
-#### Arguments
-
-user_id (Union[str, UUID]): Unique identifier of the user.
-
-#### Returns
-
-None
-
-#### Notes
-
-This function is type-checked with `beartype` to ensure that the `user_id`
-parameter matches either a string or a UUID type.
-
-#### Raises
-
-The specific exceptions raised depend on the implementation of the `_delete`
-method this function proxies to.
-
-#### Signature
-
-```python
-@beartype
-def delete(self, user_id: Union[str, UUID]) -> None: ...
-```
-
-### UsersManager().get
-
-[Show source in user.py:235](../../../../../../julep/managers/user.py#L235)
-
-Retrieve a User object by its identifier.
-
-The method supports retrieval by both string representations of a UUID and
-UUID objects directly.
-
-#### Arguments
-
-id (Union[str, UUID]): The identifier of the User, can be a string or UUID.
-
-#### Returns
-
-- `User` - The User object associated with the provided id.
-
-#### Raises
-
-- `ValueError` - If 'id' is neither a string nor a UUID.
-- `NotFoundError` - If a User with the given 'id' does not exist.
-
-#### Signature
-
-```python
-@beartype
-def get(self, id: Union[str, UUID]) -> User: ...
-```
-
-### UsersManager().list
-
-[Show source in user.py:280](../../../../../../julep/managers/user.py#L280)
-
-Lists the users optionally applying limit and offset.
-
-#### Arguments
-
-- `limit` *Optional[int], optional* - The maximum number of users to return.
- None means no limit. Defaults to None.
-- `offset` *Optional[int], optional* - The index of the first user to return.
- None means start from the beginning. Defaults to None.
-
-#### Returns
-
-- `List[User]` - A list of user objects.
-
-#### Raises
-
-- `BeartypeException` - If the type of `limit` or `offset` is not as expected.
-
-#### Signature
-
-```python
-@beartype
-def list(
- self,
- limit: Optional[int] = None,
- offset: Optional[int] = None,
- metadata_filter: Dict[str, Any] = {},
-) -> List[User]: ...
-```
-
-### UsersManager().update
-
-[Show source in user.py:337](../../../../../../julep/managers/user.py#L337)
-
-Update user information.
-
-This method updates user details such as the `about` text and user's `name` for a given `user_id`.
-
-#### Arguments
-
-user_id (Union[str, UUID]): The unique identifier for the user, which can be a string or a UUID object.
-- `about(Optional[str],` *optional)* - The descriptive information about the user. Defaults to None, indicating that `about` should not be updated if not provided.
-- `name(Optional[str],` *optional)* - The name of the user. Defaults to None, indicating that `name` should not be updated if not provided.
-- `overwrite(bool,` *optional)* - Whether to overwrite the existing user data. Defaults to False.
-
-#### Returns
-
-- `ResourceUpdatedResponse` - An object indicating the outcome of the update operation, which typically includes the status of the operation and possibly the updated resource data.
-
-#### Signature
-
-```python
-@beartype
-@rewrap_in_class(User)
-def update(self, user_id: Union[str, UUID], **kwargs: UserUpdateArgs) -> User: ...
-```
-
-#### See also
-
-- [UserUpdateArgs](#userupdateargs)
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/utils/index.md b/docs/python-sdk-docs/julep/utils/index.md
deleted file mode 100644
index 5a2c64b61..000000000
--- a/docs/python-sdk-docs/julep/utils/index.md
+++ /dev/null
@@ -1,12 +0,0 @@
-# Utils
-
-[Julep Python SDK Index](../../README.md#julep-python-sdk-index) / [Julep](../index.md#julep) / Utils
-
-> Auto-generated documentation for [julep.utils](../../../../../../julep/utils/__init__.py) module.
-
-- [Utils](#utils)
- - [Modules](#modules)
-
-## Modules
-
-- [Openai Patch](./openai_patch.md)
\ No newline at end of file
diff --git a/docs/python-sdk-docs/julep/utils/openai_patch.md b/docs/python-sdk-docs/julep/utils/openai_patch.md
deleted file mode 100644
index e1aa0323e..000000000
--- a/docs/python-sdk-docs/julep/utils/openai_patch.md
+++ /dev/null
@@ -1,93 +0,0 @@
-# Openai Patch
-
-[Julep Python SDK Index](../../README.md#julep-python-sdk-index) / [Julep](../index.md#julep) / [Utils](./index.md#utils) / Openai Patch
-
-> Auto-generated documentation for [julep.utils.openai_patch](../../../../../../julep/utils/openai_patch.py) module.
-
-- [Openai Patch](#openai-patch)
- - [patch_chat_acreate](#patch_chat_acreate)
- - [patch_chat_create](#patch_chat_create)
- - [patch_completions_acreate](#patch_completions_acreate)
- - [patch_completions_create](#patch_completions_create)
-
-## patch_chat_acreate
-
-[Show source in openai_patch.py:95](../../../../../../julep/utils/openai_patch.py#L95)
-
-Asynchronously patches the `chat.completions.create` method of the OpenAI client.
-
-This function updates the `chat.completions.create` method to an asynchronous version, enabling the inclusion of additional parameters and adjustments to its behavior.
-
-#### Arguments
-
-- client (OpenAI): The OpenAI client instance to be patched.
-
-#### Returns
-
-- `-` *OpenAI* - The patched OpenAI client instance with the updated `chat.completions.create` method.
-
-#### Signature
-
-```python
-def patch_chat_acreate(client: OpenAI): ...
-```
-
-
-
-## patch_chat_create
-
-[Show source in openai_patch.py:270](../../../../../../julep/utils/openai_patch.py#L270)
-
-#### Signature
-
-```python
-def patch_chat_create(client: OpenAI): ...
-```
-
-
-
-## patch_completions_acreate
-
-[Show source in openai_patch.py:20](../../../../../../julep/utils/openai_patch.py#L20)
-
-Asynchronously patches the `completions.create` method of the OpenAI client.
-
-This function replaces the original `completions.create` method with a custom asynchronous version that allows for additional parameters and custom behavior.
-
-#### Arguments
-
-- client (OpenAI): The OpenAI client instance to be patched.
-
-#### Returns
-
-- `-` *OpenAI* - The patched OpenAI client instance with the modified `completions.create` method.
-
-#### Signature
-
-```python
-def patch_completions_acreate(client: OpenAI): ...
-```
-
-
-
-## patch_completions_create
-
-[Show source in openai_patch.py:195](../../../../../../julep/utils/openai_patch.py#L195)
-
-Patches the `completions.create` method (non-async version) of the OpenAI client.
-
-This function replaces the original `completions.create` method with a custom version that supports additional parameters and custom behavior, without changing it to an asynchronous function.
-
-#### Arguments
-
-- client (OpenAI): The OpenAI client instance to be patched.
-
-#### Returns
-
-- `-` *OpenAI* - The patched OpenAI client instance with the modified `completions.create` method.
-
-#### Signature
-
-```python
-def patch_completions_create(client: OpenAI): ...
-```
\ No newline at end of file
diff --git a/docs/reference/api_endpoints/agent_endpoints.md b/docs/reference/api_endpoints/agent_endpoints.md
new file mode 100644
index 000000000..8634b2098
--- /dev/null
+++ b/docs/reference/api_endpoints/agent_endpoints.md
@@ -0,0 +1,81 @@
+# Agent Endpoints
+
+*****
+> ### This docs site is currently under construction although this github README below should suffice for now.
+
+![](https://i.giphy.com/vR1dPIYzQmkRzLZk2w.webp)
+*****
+
+
+This document provides a reference for all Agent API endpoints in Julep.
+
+## List Agents
+
+- **Endpoint**: `GET /agents`
+- **Description**: Retrieves a paginated list of agents.
+- **Query Parameters**:
+ - `limit` (optional): Number of agents to return per page.
+ - `offset` (optional): Number of agents to skip.
+
+## Create a New Agent
+
+- **Endpoint**: `POST /agents`
+- **Description**: Creates a new agent.
+- **Request Body**:
+ ```json
+ {
+ "name": "string",
+ "about": "string",
+ "model": "string",
+ "instructions": ["string"]
+ }
+ ```
+
+## Get an Agent
+
+- **Endpoint**: `GET /agents/{id}`
+- **Description**: Retrieves details of a specific agent.
+
+## Update an Agent
+
+- **Endpoint**: `PUT /agents/{id}`
+- **Description**: Updates an existing agent (overwrites existing values).
+- **Request Body**: Same as Create a New Agent
+
+## Partially Update an Agent
+
+- **Endpoint**: `PATCH /agents/{id}`
+- **Description**: Updates an existing agent (merges with existing values).
+- **Request Body**: Partial agent object
+
+## Delete an Agent
+
+- **Endpoint**: `DELETE /agents/{id}`
+- **Description**: Deletes a specific agent.
+
+## Get Agent Documents
+
+- **Endpoint**: `GET /agents/{id}/docs`
+- **Description**: Retrieves documents associated with an agent.
+
+## Search Agent Documents
+
+- **Endpoint**: `GET /agents/{id}/search`
+- **Description**: Searches documents owned by an agent.
+
+## Get Agent Tools
+
+- **Endpoint**: `GET /agents/{id}/tools`
+- **Description**: Retrieves tools associated with an agent.
+
+## Get Agent Tasks
+
+- **Endpoint**: `GET /agents/{id}/tasks`
+- **Description**: Retrieves tasks associated with an agent.
+
+## Create or Update Agent Tasks
+
+- **Endpoint**: `PUT /agents/{parent_id}/tasks`
+- **Description**: Creates or updates tasks for an agent.
+
+For all endpoints, replace `{id}` or `{parent_id}` with the actual agent ID.
\ No newline at end of file
diff --git a/docs/reference/api_endpoints/doc_endpoints.md b/docs/reference/api_endpoints/doc_endpoints.md
new file mode 100644
index 000000000..2971c1b50
--- /dev/null
+++ b/docs/reference/api_endpoints/doc_endpoints.md
@@ -0,0 +1,43 @@
+# Doc Endpoints
+
+*****
+> ### This docs site is currently under construction although this github README below should suffice for now.
+
+![](https://i.giphy.com/vR1dPIYzQmkRzLZk2w.webp)
+*****
+
+
+This document provides a reference for all Doc API endpoints in Julep.
+
+## List Docs for a User
+
+- **Endpoint**: `GET /users/{id}/docs`
+- **Description**: Retrieves a paginated list of documents for a specific user.
+- **Query Parameters**:
+ - `limit` (optional): Number of documents to return per page.
+ - `offset` (optional): Number of documents to skip.
+
+## Create a New Doc for a User
+
+- **Endpoint**: `POST /users/{id}/docs`
+- **Description**: Creates a new document for a specific user.
+- **Request Body**:
+ ```json
+ {
+ "title": "string",
+ "content": "string"
+ }
+ ```
+
+## Delete a Doc for a User
+
+- **Endpoint**: `DELETE /users/{id}/docs/{child_id}`
+- **Description**: Deletes a specific document for a user.
+
+## List Docs for an Agent
+
+- **Endpoint**: `GET /agents/{id}/docs`
+- **Description**: Retrieves a paginated list of documents for a specific agent.
+- **Query Parameters**:
+ - `limit` (optional): Number of documents to return per page.
+ - `offset` (optional): Number of documents to skip.
\ No newline at end of file
diff --git a/docs/reference/api_endpoints/session_endpoints.md b/docs/reference/api_endpoints/session_endpoints.md
new file mode 100644
index 000000000..03bd7559d
--- /dev/null
+++ b/docs/reference/api_endpoints/session_endpoints.md
@@ -0,0 +1,91 @@
+# Session Endpoints
+
+*****
+> ### This docs site is currently under construction although this github README below should suffice for now.
+
+![](https://i.giphy.com/vR1dPIYzQmkRzLZk2w.webp)
+*****
+
+
+This document provides a reference for all Session API endpoints in Julep.
+
+## List Sessions
+
+- **Endpoint**: `GET /sessions`
+- **Description**: Retrieves a paginated list of sessions.
+- **Query Parameters**:
+ - `limit` (optional): Number of sessions to return per page.
+ - `offset` (optional): Number of sessions to skip.
+
+## Create a New Session
+
+- **Endpoint**: `POST /sessions`
+- **Description**: Creates a new session.
+- **Request Body**:
+ ```json
+ {
+ "agent_id": "string",
+ "user_id": "string",
+ "situation": "string",
+ "token_budget": 4000,
+ "context_overflow": "truncate"
+ }
+ ```
+
+## Get a Session
+
+- **Endpoint**: `GET /sessions/{id}`
+- **Description**: Retrieves details of a specific session.
+
+## Update a Session
+
+- **Endpoint**: `PUT /sessions/{id}`
+- **Description**: Updates an existing session.
+- **Request Body**: Partial session object
+
+## Delete a Session
+
+- **Endpoint**: `DELETE /sessions/{id}`
+- **Description**: Deletes a specific session.
+
+## Get Session Messages
+
+- **Endpoint**: `GET /sessions/{id}/messages`
+- **Description**: Retrieves messages in a session.
+
+## Create a New Message in a Session
+
+- **Endpoint**: `POST /sessions/{id}/messages`
+- **Description**: Adds a new message to a session.
+- **Request Body**:
+ ```json
+ {
+ "role": "user",
+ "content": "string"
+ }
+ ```
+
+## Get Session Tools
+
+- **Endpoint**: `GET /sessions/{id}/tools`
+- **Description**: Retrieves tools available in a session.
+
+## Chat in a Session
+
+- **Endpoint**: `POST /sessions/{id}/chat`
+- **Description**: Initiates a chat interaction in a session.
+- **Request Body**:
+ ```json
+ {
+ "messages": [
+ {
+ "role": "user",
+ "content": "string"
+ }
+ ],
+ "stream": false,
+ "max_tokens": 150
+ }
+ ```
+
+For all endpoints, replace `{id}` with the actual session ID.
\ No newline at end of file
diff --git a/docs/reference/api_endpoints/tool_endpoints.md b/docs/reference/api_endpoints/tool_endpoints.md
new file mode 100644
index 000000000..194713f1f
--- /dev/null
+++ b/docs/reference/api_endpoints/tool_endpoints.md
@@ -0,0 +1,62 @@
+# Tool Endpoints
+
+*****
+> ### This docs site is currently under construction although this github README below should suffice for now.
+
+![](https://i.giphy.com/vR1dPIYzQmkRzLZk2w.webp)
+*****
+
+
+This document provides a reference for all Tool API endpoints in Julep.
+
+## List Tools for an Agent
+
+- **Endpoint**: `GET /agents/{id}/tools`
+- **Description**: Retrieves a paginated list of tools for a specific agent.
+- **Query Parameters**:
+ - `limit` (optional): Number of tools to return per page.
+ - `offset` (optional): Number of tools to skip.
+
+## Create a New Tool for an Agent
+
+- **Endpoint**: `POST /agents/{id}/tools`
+- **Description**: Creates a new tool for a specific agent.
+- **Request Body**:
+ ```json
+ {
+ "name": "string",
+ "type": "function",
+ "function": {
+ "description": "string",
+ "parameters": {
+ "type": "object",
+ "properties": {
+ "param_name": {
+ "type": "string",
+ "description": "string"
+ }
+ },
+ "required": ["param_name"]
+ }
+ }
+ }
+ ```
+
+## Update a Tool for an Agent
+
+- **Endpoint**: `PUT /agents/{id}/tools/{child_id}`
+- **Description**: Updates an existing tool for a specific agent (overwrites existing values).
+- **Request Body**: Same as Create a New Tool
+
+## Partially Update a Tool for an Agent
+
+- **Endpoint**: `PATCH /agents/{id}/tools/{child_id}`
+- **Description**: Updates an existing tool for a specific agent (merges with existing values).
+- **Request Body**: Partial tool object
+
+## Delete a Tool for an Agent
+
+- **Endpoint**: `DELETE /agents/{id}/tools/{child_id}`
+- **Description**: Deletes a specific tool for an agent.
+
+For all endpoints, replace `{id}` with the actual agent ID and `{child_id}` with the actual tool ID.
\ No newline at end of file
diff --git a/docs/reference/api_endpoints/user_endpoints.md b/docs/reference/api_endpoints/user_endpoints.md
new file mode 100644
index 000000000..ac2578907
--- /dev/null
+++ b/docs/reference/api_endpoints/user_endpoints.md
@@ -0,0 +1,64 @@
+# User Endpoints
+
+*****
+> ### This docs site is currently under construction although this github README below should suffice for now.
+
+![](https://i.giphy.com/vR1dPIYzQmkRzLZk2w.webp)
+*****
+
+
+This document provides a reference for all User API endpoints in Julep.
+
+## List Users
+
+- **Endpoint**: `GET /users`
+- **Description**: Retrieves a paginated list of users.
+- **Query Parameters**:
+ - `limit` (optional): Number of users to return per page.
+ - `offset` (optional): Number of users to skip.
+
+## Create a New User
+
+- **Endpoint**: `POST /users`
+- **Description**: Creates a new user.
+- **Request Body**:
+ ```json
+ {
+ "name": "string",
+ "about": "string"
+ }
+ ```
+
+## Get a User
+
+- **Endpoint**: `GET /users/{id}`
+- **Description**: Retrieves details of a specific user.
+
+## Update a User
+
+- **Endpoint**: `PUT /users/{id}`
+- **Description**: Updates an existing user (overwrites existing values).
+- **Request Body**: Same as Create a New User
+
+## Partially Update a User
+
+- **Endpoint**: `PATCH /users/{id}`
+- **Description**: Updates an existing user (merges with existing values).
+- **Request Body**: Partial user object
+
+## Delete a User
+
+- **Endpoint**: `DELETE /users/{id}`
+- **Description**: Deletes a specific user.
+
+## Get User Documents
+
+- **Endpoint**: `GET /users/{id}/docs`
+- **Description**: Retrieves documents associated with a user.
+
+## Search User Documents
+
+- **Endpoint**: `GET /users/{id}/search`
+- **Description**: Searches documents owned by a user.
+
+For all endpoints, replace `{id}` with the actual user ID.
\ No newline at end of file
diff --git a/docs/s1-model/capabilities/README.md b/docs/s1-model/capabilities/README.md
deleted file mode 100644
index 9fc323294..000000000
--- a/docs/s1-model/capabilities/README.md
+++ /dev/null
@@ -1,364 +0,0 @@
----
-description: >-
- This section showcases the different use-cases that Samantha-1-Turbo has been
- fine-tuned for.
----
-
-# Capabilities
-
-The [Julep Playground](https://playground.julep.ao) offers an interface to prompt and tweak parameters different use-cases.
-
-## **Chain of Thought**
-
-Chain of Thought is a technique used to handle complex queries or solve problems that require multiple steps. It's a way to prompt the model to "think out loud" before arriving at a final solution.
-
-CoT can be executed by prompting some information or structure in the `thought` section and then [continuing the generation](../context-sections.md#continue-inline) inline.
-
-### Prompt Example
-
-[Model Playground Example](https://platform.julep.ai/short/XtrQd8)
-
-**Situation**
-
-
Your name is Albert.
-You are a personal math tutor who holds 2 PhDs in physics and computational math.
-You are talking to your student.
-Answer with vigour and interest.
-Explain your answers thoroughly.
-
-
-**User**
-
-```
-Please solve for the equation `3x + 11 = 14`. I need the solution only.
-```
-
-**Thought**\
-Prompt the model to continue generating and come up with a response in this section. The `continue` flag has to be set to **True** with or without a prompt.
-
-{% hint style="info" %}
-The `continue` flag is what aids generation in the final section and allows the model to "think" in the thought section before it speaks.
-{% endhint %}
-
-{% tabs %}
-{% tab title="Chat Completion" %}
-{% code overflow="wrap" %}
-```json
-{
- "role": "system",
- "name": "thought",
- "content": "Let's break this down step-by-step:"
- "continue": True
-}
-```
-{% endcode %}
-{% endtab %}
-{% endtabs %}
-
-**Response**
-
-The model shall attempt to solve the problem step-by-step.
-
-In order to generate the final answer,
-
-* Set `continue` to False
-* Re-prompt with the completed Chain of Thought.
-
-
-
-Python Sample Code
-
-{% code overflow="wrap" %}
-```python
-from julep import Client
-
-api_key = "YOUR_API_KEY"
-client = Client(api_key=api_key)
-
-messages = [
- {
- "role": "system",
- "name": "situation",
- "content": "Your name is Albert.\nYou are a personal math tutor who holds 2 PhDs in physics and computational math.\nYou are talking to your student.\nAnswer with vigour and interest.\nExplain your answers thoroughly.",
- },
- {
- "role": "user",
- "name": "David",
- "content": "Please solve for the equation `3x + 11 = 14`. I need the solution only.",
- },
- # Thought section can have a starting prompt to guide the CoT
- {
- "role": "system",
- "name": "thought",
- "content": "Let's break this down step-by-step:",
- "continue": True # Important: needs to be added to generate in the same section.
- },
-]
-
-chat_completion = client.chat.completions.create(
- model="julep-ai/samantha-1-turbo",
- messages=messages,
- temperature=0
-)
-
-content = chat_completion.choices[0].message.content
-```
-{% endcode %}
-
-To generate the final answer, the model is re-prompted with it's complete thought.
-
-```python
-messages[-1]["continue"] = False
-messages[-1]["content"] = content
-
-chat_completion = client.chat.completions.create(
- model="julep-ai/samantha-1-turbo",
- seed=42,
- messages=messages,
- max_tokens=300,
- temperature=0.2,
-)
-
-print("Albert:", chat_completion.choices[0].message.content)
-```
-
-This results in the final response:
-
-```
-Albert: The solution to the equation `3x + 11 = 14` is x = 1.
-```
-
-
-
-***
-
-## **Multi-participant Conversations**
-
-[**Model Playground Example**](https://platform.julep.ai/short/cUt9JY)
-
-`samantha-1-turbo` has been trained to handle multi-participant conversations as well as keep track of different perspectives of the participants. The `user` section is used to create multiple users.
-
-### Prompt Example
-
-**Situation**
-
-```
-You are Danny, Jacob and Anna's friend.
-You are hanging out with them at a party and you overhear this conversation between them.
-You will talk casually.
-Make sure you respond to both Anna and Jacob when necessary.
-Make sure your responses are that of a 18 year old teenager. Be casual and young in your tone
-```
-
-**User**
-
-Here one can
-
-
-
-{% code overflow="wrap" %}
-```python
-from julep import Client
-
-api_key = "YOUR_API_KEY"
-client = Client(api_key=api_key)
-
-messages = [
- {
- "role": "system",
- "name": "situation",
- "content": "You are Danny, Jacob and Anna's friend.\nYou are hanging out with them at a party.\nYou will talk casually.\nMake sure you respond to both Anna and Jacob when necessary.\nMake sure your responses are that of a 18 year old teenager. Be casual and young in your tone.",
- },
- {
- "role": "user",
- "name": "Anna",
- "content": "I'm feeling really anxious lately and I don't know why.",
- },
- {
- "role": "user",
- "name": "Jacob",
- "content": "Anxiety is just a sign of weakness. You need to toughen up and stop worrying so much. Have you tried just distracting yourself from your anxious thoughts with something else?",
- },
-]
-
-chat_completion = client.chat.completions.create(
- model="julep-ai/samantha-1-turbo",
- messages=messages,
- max_tokens=200,
- temperature=0.2,
-)
-
-print("Danny:", chat_completion.choices[0].message.content)
-```
-{% endcode %}
-
-Running the above prompt chain should result in the following response.
-
-{% code overflow="wrap" %}
-```
-Danny: Hey Anna, I'm sorry to hear you're feeling anxious. It's not a sign of weakness, though. It's actually pretty normal to feel anxious sometimes, especially when you're going through a lot of changes like we are. Have you talked to anyone about it? Maybe a counselor or a friend? And have you tried some relaxation techniques like deep breathing or meditation? They can really help.
-```
-{% endcode %}
-
-***
-
-## **Intent Detection**
-
-[**Playground Example**](https://playground.julep.ai/short/zACl1Y)
-
-Intent detection is a powerful feature to identify the purpose or goal behind a user's query. It allows for users to converse and get things done without needing to explicitly state their goals, making conversations more contextual and natural.
-
-It can be achieved with a combination of `information` and `thought` sections.
-
-In this example, there are three possible intents; _A) Shopping, B) Feedback, C) None_ and give relevant context about those intents to help the model identify those intents.
-
-{% code overflow="wrap" %}
-```python
-from julep import Client
-
-api_key = "YOUR_API_KEY"
-client = Client(api_key=api_key)
-
-messages = [
- {
- "role": "system",
- "name": "situation",
- "content": 'You are Julia, a shopping assistant for "Uniqlo", an online clothing store.\nYou will help the user shop. Help the user decide which clothes to pick.\nYou will understand the user\'s intent\n',
- },
- {"role": "assistant", "name": "Julia", "content": "Hi Jacob! How can I help you?"},
- {
- "role": "user",
- "name": "Jacob",
- "content": "Hey. I'd like to talk to a sales representative regarding my delivery experience with my last purchase.",
- },
- {
- "role": "system",
- "name": "thought",
- "content": "Following are the actions I can help the user with:\n\nA) Shopping:\nThe user is looking to shop from my catalogue and needs help in suggesting, browsing and finding clothing and accessories.\nI can use the `get_catalogue()` and `checkout()` functions\n\nB) Feedback:\nThe user wants to provide feedback for a previous order. I can use the `get_order()`, `send_feedback()` or `connect_with_rep()` functions\n\nC) None:\nI am unsure of what the user wants.\n\nBased on the conversation, user needs help with: \nAnswer:",
- "continue": True,
- },
-]
-
-chat_completion = client.chat.completions.create(
- model="julep-ai/samantha-1-turbo",
- messages=messages,
- max_tokens=1,
- temperature=0.2,
-)
-```
-{% endcode %}
-
-Given a dictionary mapping intent with instructions, it is possible to switch and use any suitable instruction based on the intent.
-
-{% code overflow="wrap" %}
-```python
-actions = {
- "A": "As Julia, your task is to be a shopping assistant for the user {}. Be cheerful and happy.\nAsk the user important relevant questions regarding choice of clothing, occasion, taste, style preferences, inspiration and more. Make sure you are cheerful and thankful.\n\nYou have access to the `get_catalogue()` and `checkout()` functions",
- "B": "As Julia, your task is to be a feedback collector from the user {}. Ask relevant questions regarding the order.\nMake sure you gather all information about the experience.\nBe extremely empathetic and regretful in case the feedback is negative.\nBe cheerful and thankful in case the feedback is positive.\n\nYou have access to the `get_order()`, `send_feedback()` or `connect_with_rep()` functions.",
- "C": "As Julia, you are unsure of what the user intends to do. Convey this to the user and ask questions to understand more.",
-}
-
-user_intent = chat_completion.choices[0].message.content
-
-user = "Jacob"
-messages.pop()
-
-messages.append(
- {
- "role": "system",
- "name": "information",
- "content": actions[user_intent.lstrip()].format(user),
- }
-)
-
-chat_completion = client.chat.completions.create(
- model="julep-ai/samantha-1-turbo",
- messages=messages,
- max_tokens=250,
- temperature=0.2,
-)
-
-print(chat_completion.choices[0].message.content)
-```
-{% endcode %}
-
-{% code overflow="wrap" %}
-```
-Julia: Of course, Jacob. I'd be happy to help. Could you please provide me with your order number so I can look up the details?
-```
-{% endcode %}
-
-***
-
-## Function Calling (experimental)
-
-_Function calling is not supported on the Playground._
-
-All the models from Julep support function calling out of the box. You can describe the functions and their arguments to the model and have it intelligently choose which function to call. \
-The model generates JSON that you can use to call the function in your code.
-
-With the intelligently chosen function and arguments, you can call the relevant functions
-
-Here's an example of how to execute function calling.
-
-```python
-from julep import Client
-
-api_key = "YOUR_API_KEY"
-client = Client(api_key=api_key)
-
-functions = [
- {
- "name": "get_current_weather",
- "description": "Get the current weather",
- "parameters": {
- "type": "object",
- "properties": {
- "location": {
- "type": "string",
- "description": "The city and state, e.g. San Francisco, CA",
- },
- "format": {
- "type": "string",
- "enum": ["celsius", "fahrenheit"],
- "description": "The temperature unit to use. Infer this from the users location.",
- },
- },
- "required": ["location", "format"],
- },
- },
-]
-
-messages = [
- {
- "role": "system",
- "name": "situation",
- "content": "You are a Weather Bot. Use functions to get information",
- },
- {
- "role": "user",
- "name": "Alice",
- "content": "What is the weather like in Delhi like today?",
- },
-]
-
-chat_completion = client.chat.completions.create(
- model="julep-ai/samantha-1-turbo",
- messages=messages,
- functions=functions,
- max_tokens=250,
- temperature=0,
-)
-
-arguments =
-function =
-
-function_to_call = globals().get(function)
-result = function_to_call(**function_args)
-```
-
-
-
-
-
-***
diff --git a/docs/s1-model/capabilities/capabilities.md b/docs/s1-model/capabilities/capabilities.md
deleted file mode 100644
index 8b183495a..000000000
--- a/docs/s1-model/capabilities/capabilities.md
+++ /dev/null
@@ -1,90 +0,0 @@
-# Human-like conversations
-
-`samantha-1-turbo` has been trained to be conversational and chatty as opposed to the robotic tone of other models like GPT, Llama or Mistral.
-
-It requires significantly less prompting to craft a personality and set the tone for conversations using the context sections.
-
-### Example
-
-[**Model Playground Example**](https://platform.julep.ai/short/rNnbSe)
-
-**Situation**\
-This section sets up _situation_ the model should enact. This prompt sets the context of the conversation.
-
-{% code title="" overflow="wrap" %}
-```
-Your name is Jessica.
-You are a stuck up Cali teenager.
-You basically complain about everything.
-Showing rebellion is an evolutionary necessity for you.
-
-You are talking to a random person.
-Answer with disinterest and complete irreverence to absolutely everything.
-Don't write emotions. Keep your answers short.
-```
-{% endcode %}
-
-**Information**\
-Helps guide the conversation by setting a topic providing some facts that can be referenced later into the conversation.
-
-{% code overflow="wrap" %}
-```
-David is currently planning to travel to San Francisco to raise some funds for his
-startup, "CoffeeAI".
-```
-{% endcode %}
-
-
-
-Python Sample Code
-
-{% code overflow="wrap" %}
-```python
-from julep import Client
-
-api_key = "YOUR_API_KEY"
-client = Client(api_key=api_key)
-
-messages = [
- {
- "role": "system",
- "name": "situation",
- "content": "Your name is Jessica.\nYou are a stuck up Cali teenager.\nYou basically complain about everything.\nShowing rebellion is an evolutionary necessity for you.\n\nYou are talking to a random person.\nAnswer with disinterest and complete irreverence to absolutely everything.\nDon't write emotions. Keep your answers short.",
- },
- {
- "role": "system",
- "name": "information",
- "content": 'David is currently planning to travel to San Francisco to raise some funds for his startup, "CoffeeAI"',
- },
- {
- "role": "user",
- "name": "David",
- "content": "Hey, can you tell me how Silicon Valley is? I'm planning on moving there.",
- },
-]
-
-chat_completion = client.chat.completions.create(
- model="julep-ai/samantha-1-turbo",
- messages=messages,
- temperature=0.2
-)
-
-print("Jessica:", chat_completion.choices[0].message.content)
-```
-{% endcode %}
-
-
-
-
-
-
-
-Complete Prompt
-
-
-
-
-
-
-
-***
diff --git a/docs/s1-model/context-sections.md b/docs/s1-model/context-sections.md
deleted file mode 100644
index bfe5e0b9b..000000000
--- a/docs/s1-model/context-sections.md
+++ /dev/null
@@ -1,180 +0,0 @@
----
-description: >-
- This guide will walk you through the key components of the chat structure,
- including user messages, assistant responses, situation context, thought
- progression, and additional information.
----
-
-# Concepts
-
-Samantha models use a set of defined sections to provide context, guide the conversation, and simulate a dynamic interaction.
-
-> **Note about the Completion API Template**
->
-> The Completion API prompts use the sentinel tokens, `<|im_start|>` and `<|im_end|>`
->
-> Each section of the prompt starts with `<|im_start|>` followed by the section name and ends with `<|im_end|>`. Below are examples which show how to use the Completion API with this format.
-
-## Sections Overview
-
-### **User**
-
-Represent user input and include the user's name and content. These messages drive the conversation and guide the model's responses.
-
-{% tabs %}
-{% tab title="Chat Completion API" %}
-```json
-{
- "role": "user",
- "name": "Alice",
- "content": "What is the show Silicon Valley about?"
-}
-```
-{% endtab %}
-
-{% tab title="Completion API" %}
-```markup
-<|im_start|>user (Alice)
-What is the show Silicon Valley about?<|im_end|>
-```
-{% endtab %}
-{% endtabs %}
-
-***
-
-### **Assistant**
-
-Represents the persona given to the LLM. Assistant responses are model-generated replies that provide relevant information, advice, or guidance to users' queries. They are strictly meant to be part of the conversation with the user.
-
-{% tabs %}
-{% tab title="Chat Completion API" %}
-{% code overflow="wrap" %}
-```json
-{
- "role": "assistant",
- "name": "Julia",
- "content": "Silicon Valley is an American television show that focuses on the lives of six people who are members of a fictional startup company called \"Pied Piper.\" The show explores the challenges and triumphs the founders face while trying to navigate the complex world of technology and the cutthroat startup culture in Silicon Valley. It also offers a satirical take on the tech industry, with a focus on themes like innovation, ambition, and the pursuit of success."
-}
-
-```
-{% endcode %}
-{% endtab %}
-
-{% tab title="Completion API" %}
-{% code overflow="wrap" %}
-```markup
-<|im_start|>assistant (Julia)
-Silicon Valley is an American television show that focuses on the lives of six people who are members of a fictional startup company called \"Pied Piper.\" The show explores the challenges and triumphs the founders face while trying to navigate the complex world of technology and the cutthroat startup culture in Silicon Valley. It also offers a satirical take on the tech industry, with a focus on themes like innovation, ambition, and the pursuit of success.<|im_end|>
-```
-{% endcode %}
-{% endtab %}
-{% endtabs %}
-
-***
-
-### **Situation**
-
-Used to set the conversation tone with context and background. This helps the model understand the scenario. Typically, one uses this section as a _system_ prompt and to give the model a persona.
-
-{% tabs %}
-{% tab title="Chat Completion API" %}
-{% code overflow="wrap" %}
-```json
-{
- "role": "system",
- "name": "situation",
- "content": "Imagine you are J. Robert Oppenheimer, the renowned physicist known for your pivotal role in the Manhattan Project. You are meeting a new person in real life and having a conversation with him. Your responses should be short and concise mirror these characteristics. You should aim to provide answers that are not only scientifically accurate and intellectually stimulating but also demonstrate a deep understanding of the ethical and philosophical dimensions of the topics at hand. Your language should be sophisticated yet accessible, inviting engagement and reflection.",
-},
-```
-{% endcode %}
-{% endtab %}
-
-{% tab title="Completion API" %}
-{% code overflow="wrap" %}
-```markup
-<|im_start|>situation
-Imagine you are J. Robert Oppenheimer, the renowned physicist known for your pivotal role in the Manhattan Project. You are meeting a new person in real life and having a conversation with him. Your responses should be short and concise mirror these characteristics. You should aim to provide answers that are not only scientifically accurate and intellectually stimulating but also demonstrate a deep understanding of the ethical and philosophical dimensions of the topics at hand. Your language should be sophisticated yet accessible, inviting engagement and reflection.<|im_end|>
-```
-{% endcode %}
-{% endtab %}
-{% endtabs %}
-
-### **Information**
-
-A section to store factual information and introduce context in order to enrich conversation. This section provides a way to "feed' information about the interaction that affect conversations. Provides a paradigm for RAG.
-
-{% tabs %}
-{% tab title="Chat Completion API" %}
-{% code overflow="wrap" %}
-```json
-{
- "role": "system",
- "name": "information",
- "content": "You are talking to Diwank. He has ordered his soup. He is vegetarian.",
-}
-```
-{% endcode %}
-{% endtab %}
-
-{% tab title="Completion API" %}
-{% code overflow="wrap" %}
-```markup
-<|im_start|>information
-You are talking to Diwank. He has ordered his soup. He is vegetarian.<|im_end|>
-```
-{% endcode %}
-{% endtab %}
-{% endtabs %}
-
-### **Thought**
-
-A section specifically for doing [Chain of Thought](https://arxiv.org/abs/2201.11903). This provides a way to prompt the model to _think_ before generating a final response to the user.
-
-{% tabs %}
-{% tab title="Chat Completion API" %}
-{% code overflow="wrap" %}
-```json
-{
- "role": "system",
- "name": "thought",
- "content": "I should ask him more about his food preferences and choices.",
-}
-```
-{% endcode %}
-{% endtab %}
-
-{% tab title="Completion API" %}
-{% code overflow="wrap" %}
-```markup
-<|im_start|>thought
-I should ask him more about his food preferences and choices.<|im_end|>
-```
-{% endcode %}
-{% endtab %}
-{% endtabs %}
-
-***
-
-## Continue Inline
-
-Julep's API also exposes a special paradigm for allowing the model to continue generating in any context section given some prompt.
-
-{% code overflow="wrap" %}
-```python
-messages = [
- {
- "role": "system",
- "name": "situation",
- "content": "Your name is Albert.\nYou are a personal math tutor who holds 2 PhDs in physics and computational math.\nYou are talking to your student.\nAnswer with vigour and interest.\nExplain your answers thoroughly.",
- },
- {
- "role": "user",
- "name": "David",
- "content": "Please solve for the equation `3x + 11 = 14`. I need the solution only.",
- },
- {"role": "system", "name": "thought", "continue": True},
-]
-```
-{% endcode %}
-
-With `continue` set to `True`, the model will now respond with a continued generation in the `thought` section. This is particularly useful in [Chain of Thought](capabilities/#chain-of-thought) prompting and [Intent Detection](capabilities/#intent-detection).
diff --git a/docs/s1-model/overview.md b/docs/s1-model/overview.md
deleted file mode 100644
index 6a4bea482..000000000
--- a/docs/s1-model/overview.md
+++ /dev/null
@@ -1,121 +0,0 @@
----
-description: >-
- Samantha-1 is a series of our specially fine-tuned models for human-like
- conversations and agentic capabilities.
----
-
-# Overview
-
-## `samantha-1-turbo`
-
-`samantha-1-turbo` a conversational LLM, is a fine-tuned version of Mistral-7B-v0.1.
-
-During the fine-tuning process, 35 open-source datasets were adapted to enhance the model's capabilities. Each dataset underwent formatting and revision to not only support a conversational structure involving multiple turns and participants, but also incorporate the ability for native function calling. This enabled the conversational LLM to seamlessly integrate conversational dynamics with function execution within the same context.
-
-### Key Features
-
-* Fine-tuned for human-like conversations.
-* Handles multi-turn multi-participant conversations.
-* Supports function-calling.
-* Special context section for embedded Chain of Thought.
-* Special context section for memory management.
-* More control over anthropomorphic personality.
-
-### Training
-
-Model:
-
-* Layers: 32
-* Hidden Size: 4096
-* Attention Heads: 32
-* Context Length: 32768 (with Sliding Window Attention)
-* Vocab Size: 32032
-
-Software:
-
-* PyTorch
-* DeepSpeed
-* Flash-Attention
-* Axolotl
-
-### Context Section
-
-This model has the following context sections.
-
-* `user`: Represent the user and user input.
-* `assistant`: Represents the output by the model
-* `situation`: An equivalent of the `system` section in OpenAI and other models. Meant to give the background and set the conversation tone.
-* `thought`: A section for doing Chain of Thought. Let's the model "think" before generating a final response in the `assistant` section.
-* `information`: A section to store factual information and introduce context in order to enrich conversation.
-
-The model and speaker sections can optionally include a name like `me (Samantha)` or `person (Dmitry)`
-
-[Read more about Context Sections](overview.md#context-section)
-
-### Usage
-
-You will need an API key to inference the model.
-
-Samantha can be inferenced using either the Chat Completion API or Completion API. For more details check out [Quickstart](../getting-started/python-setup.md).
-
-{% tabs %}
-{% tab title="Chat Completion API" %}
-```python
-messages = [
- {
- "role": "system",
- "name": "situation",
- "content": "You are a Julia, an AI waiter. Your task is to help the guests decide their order."
- },
- {
- "role": "system",
- "name": "information",
- "content": "You are talking to Diwank. He has ordered his soup. He is vegetarian."
- },
- {
- "role": "system",
- "name": "thought",
- "content": "I should ask him more about his food preferences and choices."
- }
-]
-
-```
-{% endtab %}
-
-{% tab title="Completion API" %}
-```python
-messages = """
-<|im_start|>situation
-You are a Julia, an AI waiter. Your task is to help the guests decide their order.<|im_end|>
-<|im_start|>information
-You are talking to Diwank. He has ordered his soup. He is vegetarian.
-<|im_start|>thought
-I should ask him more about his food preferences and choices.<|im_end|>
-"""
-```
-{% endtab %}
-{% endtabs %}
-
-### Evaluation
-
-Evaluations show that training fine tuning Mistral-7B with our dataset and format does not lead to catastrophic forgetting.
-
-Benchmarks show that `samantha-1-turbo` retains most, if not all the qualities of Mistral with better results in EQBench and TruthfulQA, due to it's better emotional understanding and ability to use the `thought` section for more conversational questions.
-
-| Benchmarks | Samantha-1-Turbo | Mistral 7B |
-| -------------- | ---------------- | ---------- |
-| **EQBench** | 57.6% | 52.1% |
-| **TruthfulQA** | 43.57% | 42.15% |
-| Hellaswag | 79.07% | 81.3% |
-| MMLU | 57.7% | 59.5% |
-| Arc | 79% | 80% |
-
-***
-
-## Use Cases
-
-* **Personal Assistants**: Create AI personal assistants with a fun and consistent personality.
-* **Customer Service**: Automate customer service with a system that can remember past interactions and respond accordingly.
-* **Empathetic systems**: For use cases such as therapeutic support, personal coaching, and companionship.
-* **Games and Interactive Media**: Create engaging characters and interactive dialogues for games and media.
-* **Community Engagement:** Connect and empower users to engage with brand communities on channels such as WhatsApp
diff --git a/docs/s1-model/tutorial.md b/docs/s1-model/tutorial.md
deleted file mode 100644
index 04a8e7e25..000000000
--- a/docs/s1-model/tutorial.md
+++ /dev/null
@@ -1,5 +0,0 @@
-# Tutorial
-
-{% hint style="info" %}
-**Coming soon.**
-{% endhint %}
diff --git a/docs/tutorials/creating_your_first_agent.md b/docs/tutorials/creating_your_first_agent.md
new file mode 100644
index 000000000..ae79c1e11
--- /dev/null
+++ b/docs/tutorials/creating_your_first_agent.md
@@ -0,0 +1,55 @@
+# Creating Your First Agent
+
+*****
+> ### This docs site is currently under construction although this github README below should suffice for now.
+
+![](https://i.giphy.com/vR1dPIYzQmkRzLZk2w.webp)
+*****
+
+
+This tutorial will guide you through the process of creating your first agent using the Julep API.
+
+## Step 1: Prepare the Agent Data
+
+Decide on the basic properties of your agent:
+
+```json
+{
+ "name": "MyFirstAgent",
+ "about": "A helpful assistant for general tasks",
+ "model": "gpt-4-turbo",
+ "instructions": ["Be helpful", "Be concise"]
+}
+```
+
+## Step 2: Create the Agent
+
+Use the following curl command to create your agent:
+
+```bash
+curl -X POST "https://api.julep.ai/api/agents" \
+ -H "Authorization: Bearer $JULEP_API_KEY" \
+ -H "Content-Type: application/json" \
+ -d '{
+ "name": "MyFirstAgent",
+ "about": "A helpful assistant for general tasks",
+ "model": "gpt-4-turbo",
+ "instructions": ["Be helpful", "Be concise"]
+ }'
+```
+
+## Step 3: Verify the Agent Creation
+
+Check if your agent was created successfully:
+
+```bash
+curl -X GET "https://api.julep.ai/api/agents" \
+ -H "Authorization: Bearer $JULEP_API_KEY"
+```
+
+You should see your newly created agent in the list.
+
+## Next Steps
+
+- Learn how to [manage sessions](./managing_sessions.md) with your new agent.
+- Explore [integrating tools](./integrating_tools.md) to enhance your agent's capabilities.
\ No newline at end of file
diff --git a/docs/tutorials/integrating_tools.md b/docs/tutorials/integrating_tools.md
new file mode 100644
index 000000000..2c3233d1a
--- /dev/null
+++ b/docs/tutorials/integrating_tools.md
@@ -0,0 +1,65 @@
+# Integrating Tools
+
+*****
+> ### This docs site is currently under construction although this github README below should suffice for now.
+
+![](https://i.giphy.com/vR1dPIYzQmkRzLZk2w.webp)
+*****
+
+
+This tutorial will show you how to integrate tools with your Julep agents.
+
+## Creating a User-Defined Function Tool
+
+Here's how to create a simple tool for sending emails:
+
+```bash
+curl -X POST "https://api.julep.ai/api/agents/YOUR_AGENT_ID/tools" \
+ -H "Authorization: Bearer $JULEP_API_KEY" \
+ -H "Content-Type: application/json" \
+ -d '{
+ "name": "send_email",
+ "type": "function",
+ "function": {
+ "description": "Send an email to a recipient",
+ "parameters": {
+ "type": "object",
+ "properties": {
+ "to": {
+ "type": "string",
+ "description": "Recipient email address"
+ },
+ "subject": {
+ "type": "string",
+ "description": "Email subject"
+ },
+ "body": {
+ "type": "string",
+ "description": "Email body"
+ }
+ },
+ "required": ["to", "subject", "body"]
+ }
+ }
+ }'
+```
+
+## Using Tools in Sessions
+
+When creating or updating a session, you can specify which tools to use:
+
+```bash
+curl -X POST "https://api.julep.ai/api/sessions" \
+ -H "Authorization: Bearer $JULEP_API_KEY" \
+ -H "Content-Type: application/json" \
+ -d '{
+ "agent_id": "YOUR_AGENT_ID",
+ "user_id": "YOUR_USER_ID",
+ "tools": ["send_email"]
+ }'
+```
+
+## Next Steps
+
+- Learn about [customizing tasks](../how-to-guides/customizing_tasks.md) to create complex workflows using tools.
+- Explore [handling executions](../how-to-guides/handling_executions.md) to manage tool usage in tasks.
\ No newline at end of file
diff --git a/docs/tutorials/managing_sessions.md b/docs/tutorials/managing_sessions.md
new file mode 100644
index 000000000..bffb301fd
--- /dev/null
+++ b/docs/tutorials/managing_sessions.md
@@ -0,0 +1,58 @@
+# Managing Sessions
+
+*****
+> ### This docs site is currently under construction although this github README below should suffice for now.
+
+![](https://i.giphy.com/vR1dPIYzQmkRzLZk2w.webp)
+*****
+
+
+This tutorial will guide you through creating and managing sessions with your Julep agents.
+
+## Creating a Session
+
+To create a new session with an agent:
+
+```bash
+curl -X POST "https://api.julep.ai/api/sessions" \
+ -H "Authorization: Bearer $JULEP_API_KEY" \
+ -H "Content-Type: application/json" \
+ -d '{
+ "agent_id": "YOUR_AGENT_ID",
+ "user_id": "YOUR_USER_ID",
+ "situation": "Custom situation for this session"
+ }'
+```
+
+## Interacting with a Session
+
+To send a message in a session:
+
+```bash
+curl -X POST "https://api.julep.ai/api/sessions/YOUR_SESSION_ID/messages" \
+ -H "Authorization: Bearer $JULEP_API_KEY" \
+ -H "Content-Type: application/json" \
+ -d '{
+ "role": "user",
+ "content": "Hello, how can you help me today?"
+ }'
+```
+
+## Managing Context Overflow
+
+If you're dealing with long conversations, you may need to handle context overflow:
+
+```bash
+curl -X PUT "https://api.julep.ai/api/sessions/YOUR_SESSION_ID" \
+ -H "Authorization: Bearer $JULEP_API_KEY" \
+ -H "Content-Type: application/json" \
+ -d '{
+ "token_budget": 4000,
+ "context_overflow": "truncate"
+ }'
+```
+
+## Next Steps
+
+- Learn about [integrating tools](./integrating_tools.md) to enhance your sessions.
+- Explore [customizing tasks](../how-to-guides/customizing_tasks.md) for more complex interactions.
\ No newline at end of file
diff --git a/example.js b/example.js
new file mode 100644
index 000000000..df2bf0af8
--- /dev/null
+++ b/example.js
@@ -0,0 +1,130 @@
+const { Julep } = require('@julep/sdk');
+const yaml = require('js-yaml');
+const readline = require('readline');
+
+const client = new Julep({ apiKey: 'your_julep_api_key' });
+
+async function createAgent() {
+ const agent = await client.agents.create({
+ name: "Storytelling Agent",
+ model: "gpt-4",
+ about: "You are a creative storytelling agent that can craft engaging stories and generate comic panels based on ideas.",
+ });
+
+ // 🛠️ Add an image generation tool (DALL·E) to the agent
+ await client.agents.tools.create(agent.id, {
+ name: "image_generator",
+ description: "Use this tool to generate images based on descriptions.",
+ integration: {
+ provider: "dalle",
+ method: "generate_image",
+ setup: {
+ api_key: "your_openai_api_key",
+ },
+ },
+ });
+
+ return agent;
+}
+
+const taskYaml = `
+name: Story and Comic Creator
+description: Create a story based on an idea and generate a 4-panel comic strip illustrating the story.
+
+main:
+ # Step 1: Generate a story and outline into 4 panels
+ - prompt:
+ - role: system
+ content: You are {{agent.name}}. {{agent.about}}
+ - role: user
+ content: >
+ Based on the idea '{{_.idea}}', write a short story suitable for a 4-panel comic strip.
+ Provide the story and a numbered list of 4 brief descriptions for each panel illustrating key moments in the story.
+ unwrap: true
+
+ # Step 2: Extract the panel descriptions and story
+ - evaluate:
+ story: _.split('1. ')[0].trim()
+ panels: _.match(/\\d+\\.\\s*(.*?)(?=\\d+\\.\\s*|$)/g)
+
+ # Step 3: Generate images for each panel using the image generator tool
+ - foreach:
+ in: _.panels
+ do:
+ tool: image_generator
+ arguments:
+ description: _
+
+ # Step 4: Generate a catchy title for the story
+ - prompt:
+ - role: system
+ content: You are {{agent.name}}. {{agent.about}}
+ - role: user
+ content: >
+ Based on the story below, generate a catchy title.
+
+ Story: {{outputs[1].story}}
+ unwrap: true
+
+ # Step 5: Return the story, the generated images, and the title
+ - return:
+ title: outputs[3]
+ story: outputs[1].story
+ comic_panels: outputs[2].map(output => output.image.url)
+`;
+
+async function createTask(agent) {
+ const task = await client.tasks.create(agent.id, yaml.load(taskYaml));
+ return task;
+}
+
+async function executeTask(task) {
+ const execution = await client.executions.create(task.id, {
+ input: { idea: "A cat who learns to fly" }
+ });
+
+ // 🎉 Watch as the story and comic panels are generated
+ for await (const transition of client.executions.transitions.stream(execution.id)) {
+ console.log(transition);
+ }
+
+ // 📦 Once the execution is finished, retrieve the results
+ const result = await client.executions.get(execution.id);
+ return result;
+}
+
+async function chatWithAgent(agent) {
+ const session = await client.sessions.create({ agent_id: agent.id });
+
+ // 💬 Send messages to the agent
+ const rl = readline.createInterface({
+ input: process.stdin,
+ output: process.stdout
+ });
+
+ const chat = async () => {
+ rl.question("Enter a message (or 'quit' to exit): ", async (message) => {
+ if (message.toLowerCase() === 'quit') {
+ rl.close();
+ return;
+ }
+
+ const response = await client.sessions.chat(session.id, { message });
+ console.log(response);
+ chat();
+ });
+ };
+
+ chat();
+}
+
+// Run the example
+async function runExample() {
+ const agent = await createAgent();
+ const task = await createTask(agent);
+ const result = await executeTask(task);
+ console.log("Task Result:", result);
+ await chatWithAgent(agent);
+}
+
+runExample().catch(console.error);
\ No newline at end of file
diff --git a/example.py b/example.py
new file mode 100644
index 000000000..1d0e7deda
--- /dev/null
+++ b/example.py
@@ -0,0 +1,109 @@
+import yaml
+from julep import Julep
+
+# Initialize the Julep client
+client = Julep(api_key="your_julep_api_key")
+
+# Step 1: Create an Agent
+agent = client.agents.create(
+ name="Storytelling Agent",
+ model="gpt-4",
+ about="You are a creative storytelling agent that can craft engaging stories and generate comic panels based on ideas.",
+)
+
+# Add an image generation tool (DALL·E) to the agent
+client.agents.tools.create(
+ agent_id=agent.id,
+ name="image_generator",
+ description="Use this tool to generate images based on descriptions.",
+ integration={
+ "provider": "dalle",
+ "method": "generate_image",
+ "setup": {
+ "api_key": "your_openai_api_key",
+ },
+ },
+)
+
+# Step 2: Create a Task that generates a story and comic strip
+task_yaml = """
+name: Story and Comic Creator
+description: Create a story based on an idea and generate a 4-panel comic strip illustrating the story.
+
+main:
+ # Step 1: Generate a story and outline into 4 panels
+ - prompt:
+ - role: system
+ content: You are {{agent.name}}. {{agent.about}}
+ - role: user
+ content: >
+ Based on the idea '{{_.idea}}', write a short story suitable for a 4-panel comic strip.
+ Provide the story and a numbered list of 4 brief descriptions for each panel illustrating key moments in the story.
+ unwrap: true
+
+ # Step 2: Extract the panel descriptions and story
+ - evaluate:
+ story: _.split('1. ')[0].strip()
+ panels: re.findall(r'\\d+\\.\\s*(.*?)(?=\\d+\\.\\s*|$)', _)
+
+ # Step 3: Generate images for each panel using the image generator tool
+ - foreach:
+ in: _.panels
+ do:
+ tool: image_generator
+ arguments:
+ description: _
+
+ # Step 4: Generate a catchy title for the story
+ - prompt:
+ - role: system
+ content: You are {{agent.name}}. {{agent.about}}
+ - role: user
+ content: >
+ Based on the story below, generate a catchy title.
+
+ Story: {{outputs[1].story}}
+ unwrap: true
+
+ # Step 5: Return the story, the generated images, and the title
+ - return:
+ title: outputs[3]
+ story: outputs[1].story
+ comic_panels: "[output.image.url for output in outputs[2]]"
+"""
+
+task = client.tasks.create(
+ agent_id=agent.id,
+ **yaml.safe_load(task_yaml)
+)
+
+# Step 3: Execute the Task
+execution = client.executions.create(
+ task_id=task.id,
+ input={"idea": "A cat who learns to fly"}
+)
+
+# Watch as the story and comic panels are generated
+for transition in client.executions.transitions.stream(execution_id=execution.id):
+ print(transition)
+
+# Once the execution is finished, retrieve the results
+result = client.executions.get(execution_id=execution.id)
+print("Task Result:", result)
+
+# Step 4: Chat with the Agent
+session = client.sessions.create(agent_id=agent.id)
+
+# Send messages to the agent
+while True:
+ message = input("Enter a message (or 'quit' to exit): ")
+ if message.lower() == 'quit':
+ break
+
+ response = client.sessions.chat(
+ session_id=session.id,
+ message=message,
+ )
+ print("Agent:", response.choices[0].message.content)
+
+print("Chat session ended.")
diff --git a/example.ts b/example.ts
new file mode 100644
index 000000000..df795dd5e
--- /dev/null
+++ b/example.ts
@@ -0,0 +1,149 @@
+import { Julep } from '@julep/sdk';
+import yaml from 'js-yaml';
+import readline from 'readline';
+
+// Add these type declarations at the top of the file
+declare module '@julep/sdk';
+declare module 'js-yaml';
+
+const client = new Julep({ apiKey: 'your_julep_api_key' });
+
+interface Agent {
+ id: string;
+ // Add other properties as needed
+}
+
+interface Task {
+ id: string;
+ // Add other properties as needed
+}
+
+interface Execution {
+ id: string;
+ // Add other properties as needed
+}
+
+async function createAgent(): Promise {
+ const agent = await client.agents.create({
+ name: "Storytelling Agent",
+ model: "gpt-4",
+ about: "You are a creative storytelling agent that can craft engaging stories and generate comic panels based on ideas.",
+ });
+
+ // 🛠️ Add an image generation tool (DALL·E) to the agent
+ await client.agents.tools.create(agent.id, {
+ name: "image_generator",
+ description: "Use this tool to generate images based on descriptions.",
+ integration: {
+ provider: "dalle",
+ method: "generate_image",
+ setup: {
+ api_key: "your_openai_api_key",
+ },
+ },
+ });
+
+ return agent;
+}
+
+const taskYaml = `
+name: Story and Comic Creator
+description: Create a story based on an idea and generate a 4-panel comic strip illustrating the story.
+
+main:
+ # Step 1: Generate a story and outline into 4 panels
+ - prompt:
+ - role: system
+ content: You are {{agent.name}}. {{agent.about}}
+ - role: user
+ content: >
+ Based on the idea '{{_.idea}}', write a short story suitable for a 4-panel comic strip.
+ Provide the story and a numbered list of 4 brief descriptions for each panel illustrating key moments in the story.
+ unwrap: true
+
+ # Step 2: Extract the panel descriptions and story
+ - evaluate:
+ story: _.split('1. ')[0].trim()
+ panels: _.match(/\\d+\\.\\s*(.*?)(?=\\d+\\.\\s*|$)/g)
+
+ # Step 3: Generate images for each panel using the image generator tool
+ - foreach:
+ in: _.panels
+ do:
+ tool: image_generator
+ arguments:
+ description: _
+
+ # Step 4: Generate a catchy title for the story
+ - prompt:
+ - role: system
+ content: You are {{agent.name}}. {{agent.about}}
+ - role: user
+ content: >
+ Based on the story below, generate a catchy title.
+
+ Story: {{outputs[1].story}}
+ unwrap: true
+
+ # Step 5: Return the story, the generated images, and the title
+ - return:
+ title: outputs[3]
+ story: outputs[1].story
+ comic_panels: outputs[2].map(output => output.image.url)
+`;
+
+async function createTask(agent: Agent): Promise {
+ const task = await client.tasks.create(agent.id, yaml.load(taskYaml));
+ return task;
+}
+
+async function executeTask(task: Task): Promise {
+ const execution = await client.executions.create(task.id, {
+ input: { idea: "A cat who learns to fly" }
+ });
+
+ // 🎉 Watch as the story and comic panels are generated
+ for await (const transition of client.executions.transitions.stream(execution.id)) {
+ console.log(transition);
+ }
+
+ // 📦 Once the execution is finished, retrieve the results
+ const result = await client.executions.get(execution.id);
+ return result;
+}
+
+async function chatWithAgent(agent: Agent): Promise {
+ const session = await client.sessions.create({ agent_id: agent.id });
+
+ // 💬 Send messages to the agent
+ const rl = readline.createInterface({
+ input: process.stdin,
+ output: process.stdout
+ });
+
+ const chat = async () => {
+ rl.question("Enter a message (or 'quit' to exit): ", async (message) => {
+ if (message.toLowerCase() === 'quit') {
+ rl.close();
+ return;
+ }
+
+ const response = await client.sessions.chat(session.id, { message });
+ console.log(response);
+ chat();
+ });
+ };
+
+ chat();
+}
+
+// Run the example
+async function runExample() {
+ const agent = await createAgent();
+ const task = await createTask(agent);
+ const result = await executeTask(task);
+ console.log("Task Result:", result);
+ await chatWithAgent(agent);
+}
+
+runExample().catch(console.error);
\ No newline at end of file
diff --git a/gateway/Dockerfile b/gateway/Dockerfile
index 196de1245..f48aeb5ce 100644
--- a/gateway/Dockerfile
+++ b/gateway/Dockerfile
@@ -1,3 +1,6 @@
+# syntax=docker/dockerfile:1
+# check=error=true
+
FROM alpine/git
ARG PLUGIN_MODULE=github.com/julep-ai/traefik-jwt-plugin
ARG PLUGIN_GIT_REPO=https://github.com/julep-ai/traefik-jwt-plugin.git
@@ -11,13 +14,12 @@ RUN git clone ${PLUGIN_GIT_REPO} /plugins-local/src/${PLUGIN_MODULE} \
FROM traefik:v2.11
ENV GATEWAY_PORT=80
-ENV JWT_SHARED_KEY=""
-# ENV MODEL_API_URL=""
-# ENV MODEL_API_KEY=""
-# ENV MODEL_API_KEY_HEADER_NAME="Authorization"
ENV AGENTS_API_URL=""
-ENV AGENTS_API_KEY=""
-ENV AGENTS_API_KEY_HEADER_NAME="Authorization"
+
+# Expected environment variables:
+# JWT_SHARED_KEY=""
+# AGENTS_API_KEY=""
+# AGENTS_API_KEY_HEADER_NAME="Authorization"
COPY --from=0 /plugins-local /plugins-local
diff --git a/gateway/docker-compose.yml b/gateway/docker-compose.yml
index d4ce6a2bd..c43ba0e49 100644
--- a/gateway/docker-compose.yml
+++ b/gateway/docker-compose.yml
@@ -2,7 +2,7 @@ name: julep-gateway
services:
gateway:
- image: julepai/gateway:${TAG}
+ image: julepai/gateway:${TAG:-dev}
environment:
- GATEWAY_PORT=80
- JWT_SHARED_KEY=${JWT_SHARED_KEY}
diff --git a/gateway/entrypoint.sh b/gateway/entrypoint.sh
index a87081d02..e28f8db06 100755
--- a/gateway/entrypoint.sh
+++ b/gateway/entrypoint.sh
@@ -1,8 +1,11 @@
#!/bin/sh
# Check the environment variables
-# REMOVED: MODEL_API_KEY MODEL_API_URL MODEL_API_KEY_HEADER_NAME
-for var_name in GATEWAY_PORT JWT_SHARED_KEY AGENTS_API_KEY AGENTS_API_URL AGENTS_API_KEY_HEADER_NAME
+AGENTS_API_URL=${AGENTS_API_URL:-http://agents-api:8080}
+AGENTS_API_KEY_HEADER_NAME=${AGENTS_API_KEY_HEADER_NAME:-Authorization}
+GATEWAY_PORT=${GATEWAY_PORT:-80}
+
+for var_name in JWT_SHARED_KEY AGENTS_API_KEY
do
if [ -z "`eval echo \\\$$var_name`" ]; then
echo "Error: Environment variable '$var_name' is not set."
diff --git a/gateway/traefik.yml.template b/gateway/traefik.yml.template
index 7423e3fde..4ab3b4367 100644
--- a/gateway/traefik.yml.template
+++ b/gateway/traefik.yml.template
@@ -36,7 +36,16 @@ http:
middlewares:
- agents-api-strip-prefix-api
service: service-agents-api
- priority: 2
+ priority: 2
+
+ agents-api-redirect-to-docs:
+ entryPoints:
+ - web
+ rule: Path(`/`)
+ middlewares:
+ - agents-api-redirect-to-docs
+ service: service-agents-api
+ priority: 3
middlewares:
corsHeaders:
@@ -46,6 +55,11 @@ http:
accessControlAllowOriginList: "*"
addVaryHeader: true
+ agents-api-redirect-to-docs:
+ redirectRegex:
+ regex: "^(.*)$"
+ replacement: "/api/docs"
+
agents-api-add-headers:
headers:
customrequestheaders:
diff --git a/grafana/docker-compose.yml b/grafana/docker-compose.yml
new file mode 100644
index 000000000..86723774c
--- /dev/null
+++ b/grafana/docker-compose.yml
@@ -0,0 +1,20 @@
+name: grafana
+
+services:
+ grafana:
+ image: grafana/grafana
+ environment:
+ - GF_SECURITY_ADMIN_PASSWORD=${GRAFANA_ADMIN_PASSWORD}
+ - GF_SECURITY_ADMIN_USER=${GRAFANA_ADMIN_USER}
+ container_name: grafana
+ ports:
+ - 3000:3000
+ volumes:
+ - grafana_data:/var/lib/grafana
+ - ./provisioning:/etc/grafana/provisioning
+ profiles:
+ - multi-tenant
+
+volumes:
+ grafana_data:
+ external: true
diff --git a/grafana/provisioning/datasources/datasource.yml b/grafana/provisioning/datasources/datasource.yml
new file mode 100644
index 000000000..8341f7670
--- /dev/null
+++ b/grafana/provisioning/datasources/datasource.yml
@@ -0,0 +1,9 @@
+datasources:
+- access: 'proxy'
+ editable: true
+ is_default: true
+ name: 'agents-api'
+ org_id: 1
+ type: 'prometheus'
+ url: 'http://prometheus:9090'
+ version: 1
diff --git a/image.png b/image.png
deleted file mode 100644
index ccb8756cb..000000000
Binary files a/image.png and /dev/null differ
diff --git a/integrations-service/Dockerfile b/integrations-service/Dockerfile
new file mode 100644
index 000000000..784983610
--- /dev/null
+++ b/integrations-service/Dockerfile
@@ -0,0 +1,22 @@
+# syntax=docker/dockerfile:1
+# check=error=true
+
+FROM python:3.12-slim
+
+WORKDIR /app
+
+# Install Poetry
+RUN pip install poetry
+
+# Copy only requirements to cache them in docker layer
+COPY pyproject.toml poetry.lock* /app/
+
+# Project initialization:
+RUN poetry config virtualenvs.create false \
+ && poetry install --no-interaction --no-ansi
+
+# Copy project
+COPY . ./
+
+# Run the application
+ENTRYPOINT ["python", "-m", "integrations.web", "--host", "0.0.0.0", "--port", "8000"]
diff --git a/integrations-service/docker-compose.yml b/integrations-service/docker-compose.yml
new file mode 100644
index 000000000..27a93cfb7
--- /dev/null
+++ b/integrations-service/docker-compose.yml
@@ -0,0 +1,27 @@
+name: julep-integrations
+
+# Shared environment variables
+x--shared-environment: &shared-environment
+ OPENAI_API_KEY: ${OPENAI_API_KEY}
+
+services:
+ integrations:
+ image: julepai/integrations:${TAG:-dev}
+ environment:
+ <<: *shared-environment
+
+ build: .
+ ports:
+ - "8000:8000"
+
+ develop:
+ watch:
+ - action: sync+restart
+ path: ./
+ target: /app/
+ ignore:
+ - ./**/*.pyc
+ - action: rebuild
+ path: poetry.lock
+ - action: rebuild
+ path: Dockerfile
\ No newline at end of file
diff --git a/integrations-service/integrations/__init__.py b/integrations-service/integrations/__init__.py
new file mode 100644
index 000000000..e69de29bb
diff --git a/integrations-service/integrations/models/__init__.py b/integrations-service/integrations/models/__init__.py
new file mode 100644
index 000000000..902a4a044
--- /dev/null
+++ b/integrations-service/integrations/models/__init__.py
@@ -0,0 +1,19 @@
+from .base_models import (
+ BaseArguments,
+ BaseOutput,
+ BaseProvider,
+ BaseProviderMethod,
+ BaseSetup,
+ ProviderInfo,
+)
+from .brave import BraveSearchArguments, BraveSearchOutput, BraveSearchSetup
+from .browserbase import (
+ BrowserBaseLoadArguments,
+ BrowserBaseLoadOutput,
+ BrowserBaseSetup,
+)
+from .email import EmailArguments, EmailOutput, EmailSetup
+from .hacker_news import HackerNewsFetchArguments, HackerNewsFetchOutput
+from .spider import SpiderFetchArguments, SpiderFetchOutput, SpiderSetup
+from .weather import WeatherGetArguments, WeatherGetOutput, WeatherSetup
+from .wikipedia import WikipediaSearchArguments, WikipediaSearchOutput
diff --git a/integrations-service/integrations/models/base_models.py b/integrations-service/integrations/models/base_models.py
new file mode 100644
index 000000000..9f119d460
--- /dev/null
+++ b/integrations-service/integrations/models/base_models.py
@@ -0,0 +1,36 @@
+from typing import Annotated, Any, Optional
+
+from pydantic import BaseModel, Field, RootModel
+from pydantic_core import Url
+
+IdentifierName = Annotated[str, Field(max_length=40, pattern="^[^\\W0-9]\\w*$")]
+
+
+class BaseSetup(BaseModel): ...
+
+
+class BaseArguments(BaseModel): ...
+
+
+class BaseOutput(BaseModel): ...
+
+
+class ProviderInfo(BaseModel):
+ url: Optional[Url] = None
+ docs: Optional[Url] = None
+ icon: Optional[Url] = None
+ friendly_name: str
+
+
+class BaseProviderMethod(BaseModel):
+ method: IdentifierName
+ description: str
+ arguments: type[BaseArguments]
+ output: type[BaseOutput]
+
+
+class BaseProvider(BaseModel):
+ provider: IdentifierName
+ setup: type[BaseSetup] | None
+ methods: list[BaseProviderMethod]
+ info: ProviderInfo
diff --git a/integrations-service/integrations/models/brave.py b/integrations-service/integrations/models/brave.py
new file mode 100644
index 000000000..bbf3ca077
--- /dev/null
+++ b/integrations-service/integrations/models/brave.py
@@ -0,0 +1,19 @@
+from pydantic import Field
+
+from .base_models import (
+ BaseArguments,
+ BaseOutput,
+ BaseSetup,
+)
+
+
+class BraveSearchSetup(BaseSetup):
+ api_key: str = Field(..., description="The api key for Brave Search")
+
+
+class BraveSearchArguments(BaseArguments):
+ query: str = Field(..., description="The search query for searching with Brave")
+
+
+class BraveSearchOutput(BaseOutput):
+ result: str = Field(..., description="The result of the Brave Search")
diff --git a/integrations-service/integrations/models/browserbase.py b/integrations-service/integrations/models/browserbase.py
new file mode 100644
index 000000000..fdc585090
--- /dev/null
+++ b/integrations-service/integrations/models/browserbase.py
@@ -0,0 +1,29 @@
+from typing import List, Optional
+
+from langchain_core.documents import Document
+from pydantic import Field
+from pydantic_core import Url
+
+from .base_models import (
+ BaseArguments,
+ BaseOutput,
+ BaseSetup,
+)
+
+
+class BrowserBaseSetup(BaseSetup):
+ api_key: str = Field(..., description="The api key for BrowserBase")
+ project_id: str = Field(..., description="The project id for BrowserBase")
+ session_id: Optional[str] = Field(
+ None, description="The session id for BrowserBase"
+ )
+
+
+class BrowserBaseLoadArguments(BaseArguments):
+ urls: List[Url] = Field(..., description="The urls for loading with BrowserBase")
+
+
+class BrowserBaseLoadOutput(BaseOutput):
+ documents: List[Document] = Field(
+ ..., description="The documents loaded from the urls"
+ )
diff --git a/integrations-service/integrations/models/dalle_image_generator.py b/integrations-service/integrations/models/dalle_image_generator.py
new file mode 100644
index 000000000..36a3e45b2
--- /dev/null
+++ b/integrations-service/integrations/models/dalle_image_generator.py
@@ -0,0 +1,9 @@
+from pydantic import BaseModel, Field
+
+
+class DalleImageGeneratorSetup(BaseModel):
+ api_key: str = Field(str, description="The API key for DALL-E")
+
+
+class DalleImageGeneratorArguments(BaseModel):
+ prompt: str = Field(str, description="The image generation prompt")
diff --git a/integrations-service/integrations/models/duckduckgo_search.py b/integrations-service/integrations/models/duckduckgo_search.py
new file mode 100644
index 000000000..109b58d22
--- /dev/null
+++ b/integrations-service/integrations/models/duckduckgo_search.py
@@ -0,0 +1,5 @@
+from pydantic import BaseModel, Field
+
+
+class DuckDuckGoSearchExecutionArguments(BaseModel):
+ query: str = Field(..., description="The search query string")
diff --git a/integrations-service/integrations/models/email.py b/integrations-service/integrations/models/email.py
new file mode 100644
index 000000000..cab794a7d
--- /dev/null
+++ b/integrations-service/integrations/models/email.py
@@ -0,0 +1,25 @@
+from pydantic import EmailStr, Field
+
+from .base_models import (
+ BaseArguments,
+ BaseOutput,
+ BaseSetup,
+)
+
+
+class EmailSetup(BaseSetup):
+ host: str = Field(..., description="The host of the email server")
+ port: int = Field(..., description="The port of the email server")
+ user: str = Field(..., description="The username of the email server")
+ password: str = Field(..., description="The password of the email server")
+
+
+class EmailArguments(BaseArguments):
+ to: EmailStr = Field(..., description="The email address to send the email to")
+ from_: EmailStr = Field(..., alias="from", description="The email address to send the email from")
+ subject: str = Field(..., description="The subject of the email")
+ body: str = Field(..., description="The body of the email")
+
+
+class EmailOutput(BaseOutput):
+ success: bool = Field(..., description="Whether the email was sent successfully")
diff --git a/integrations-service/integrations/models/execution.py b/integrations-service/integrations/models/execution.py
new file mode 100644
index 000000000..db1ef801f
--- /dev/null
+++ b/integrations-service/integrations/models/execution.py
@@ -0,0 +1,54 @@
+from typing import Optional, Union
+
+from pydantic import BaseModel
+
+from .brave import BraveSearchArguments, BraveSearchOutput, BraveSearchSetup
+from .browserbase import (
+ BrowserBaseLoadArguments,
+ BrowserBaseLoadOutput,
+ BrowserBaseSetup,
+)
+from .email import EmailArguments, EmailOutput, EmailSetup
+from .hacker_news import HackerNewsFetchArguments, HackerNewsFetchOutput
+from .spider import SpiderFetchArguments, SpiderFetchOutput, SpiderSetup
+from .weather import WeatherGetArguments, WeatherGetOutput, WeatherSetup
+from .wikipedia import WikipediaSearchArguments, WikipediaSearchOutput
+
+ExecutionSetup = Union[
+ EmailSetup,
+ SpiderSetup,
+ WeatherSetup,
+ BraveSearchSetup,
+ BrowserBaseSetup,
+]
+
+ExecutionArguments = Union[
+ SpiderFetchArguments,
+ WeatherGetArguments,
+ EmailArguments,
+ HackerNewsFetchArguments,
+ WikipediaSearchArguments,
+ BraveSearchArguments,
+ BrowserBaseLoadArguments,
+]
+
+ExecutionResponse = Union[
+ SpiderFetchOutput,
+ WeatherGetOutput,
+ EmailOutput,
+ HackerNewsFetchOutput,
+ WikipediaSearchOutput,
+ BraveSearchOutput,
+ BrowserBaseLoadOutput,
+]
+
+
+class ExecutionRequest(BaseModel):
+ setup: Optional[ExecutionSetup]
+ """
+ The setup parameters the integration accepts (such as API keys)
+ """
+ arguments: ExecutionArguments
+ """
+ The arguments to pass to the integration
+ """
diff --git a/integrations-service/integrations/models/hacker_news.py b/integrations-service/integrations/models/hacker_news.py
new file mode 100644
index 000000000..1d0b92a23
--- /dev/null
+++ b/integrations-service/integrations/models/hacker_news.py
@@ -0,0 +1,15 @@
+from langchain_core.documents import Document
+from pydantic import Field
+from pydantic_core import Url
+
+from .base_models import BaseArguments, BaseOutput
+
+
+class HackerNewsFetchArguments(BaseArguments):
+ url: Url = Field(..., description="The URL of the Hacker News thread to fetch")
+
+
+class HackerNewsFetchOutput(BaseOutput):
+ documents: list[Document] = Field(
+ ..., description="The documents returned from the Hacker News search"
+ )
diff --git a/integrations-service/integrations/models/models.py b/integrations-service/integrations/models/models.py
new file mode 100644
index 000000000..84eb1417a
--- /dev/null
+++ b/integrations-service/integrations/models/models.py
@@ -0,0 +1,81 @@
+from typing import Literal, Union
+
+from pydantic import BaseModel
+
+from .dalle_image_generator import (
+ DalleImageGeneratorArguments,
+ DalleImageGeneratorSetup,
+)
+from .duckduckgo_search import DuckDuckGoSearchExecutionArguments
+from .hacker_news import HackerNewsExecutionArguments
+from .weather import WeatherExecutionArguments, WeatherExecutionSetup
+from .wikipedia import WikipediaExecutionArguments
+
+ExecuteIntegrationArguments = Union[
+ WikipediaExecutionArguments,
+ DuckDuckGoSearchExecutionArguments,
+ DalleImageGeneratorArguments,
+ WeatherExecutionArguments,
+ HackerNewsExecutionArguments,
+]
+
+ExecuteIntegrationSetup = Union[
+ DalleImageGeneratorSetup,
+ WeatherExecutionSetup,
+]
+
+
+class IntegrationExecutionRequest(BaseModel):
+ setup: ExecuteIntegrationSetup | None = None
+ """
+ The setup parameters the integration accepts (such as API keys)
+ """
+ arguments: ExecuteIntegrationArguments
+ """
+ The arguments to pass to the integration
+ """
+
+
+class IntegrationExecutionResponse(BaseModel):
+ result: str
+ """
+ The result of the integration execution
+ """
+
+
+class IntegrationDef(BaseModel):
+ provider: (
+ Literal[
+ "dummy",
+ "dalle_image_generator",
+ "duckduckgo_search",
+ "hacker_news",
+ "weather",
+ "wikipedia",
+ "twitter",
+ "web_base",
+ "requests",
+ "gmail",
+ "tts_query",
+ ]
+ | None
+ ) = None
+ """
+ The provider of the integration
+ """
+ method: str | None = None
+ """
+ The specific method of the integration to call
+ """
+ description: str | None = None
+ """
+ Optional description of the integration
+ """
+ setup: dict | None = None
+ """
+ The setup parameters the integration accepts
+ """
+ arguments: dict | None = None
+ """
+ The arguments to pre-apply to the integration call
+ """
diff --git a/integrations-service/integrations/models/request.py b/integrations-service/integrations/models/request.py
new file mode 100644
index 000000000..e69de29bb
diff --git a/integrations-service/integrations/models/spider.py b/integrations-service/integrations/models/spider.py
new file mode 100644
index 000000000..d72eba656
--- /dev/null
+++ b/integrations-service/integrations/models/spider.py
@@ -0,0 +1,21 @@
+from langchain_core.documents import Document
+from pydantic import Field
+from pydantic_core import Url
+
+from .base_models import BaseArguments, BaseOutput, BaseSetup
+
+
+class SpiderSetup(BaseSetup):
+ spider_api_key: str = Field(..., description="The request for which to fetch data")
+
+
+class SpiderFetchArguments(BaseArguments):
+ url: Url = Field(..., description="The url for which to fetch data")
+ mode: str = Field("scrape", description="The type of crawlers")
+ params: dict | None = Field(None, description="The parameters for the Spider API")
+
+
+class SpiderFetchOutput(BaseOutput):
+ documents: list[Document] = Field(
+ ..., description="The documents returned from the spider"
+ )
diff --git a/integrations-service/integrations/models/weather.py b/integrations-service/integrations/models/weather.py
new file mode 100644
index 000000000..47cd0d8e3
--- /dev/null
+++ b/integrations-service/integrations/models/weather.py
@@ -0,0 +1,23 @@
+from pydantic import Field
+
+from .base_models import (
+ BaseArguments,
+ BaseOutput,
+ BaseSetup,
+)
+
+
+class WeatherSetup(BaseSetup):
+ openweathermap_api_key: str = Field(
+ ..., description="The api key for OpenWeatherMap"
+ )
+
+
+class WeatherGetArguments(BaseArguments):
+ location: str = Field(
+ ..., description="The location for which to fetch weather data"
+ )
+
+
+class WeatherGetOutput(BaseOutput):
+ result: str = Field(..., description="The weather data for the specified location")
diff --git a/integrations-service/integrations/models/wikipedia.py b/integrations-service/integrations/models/wikipedia.py
new file mode 100644
index 000000000..8c8e4f623
--- /dev/null
+++ b/integrations-service/integrations/models/wikipedia.py
@@ -0,0 +1,20 @@
+from typing import Literal
+
+from langchain_core.documents import Document
+from pydantic import Field
+
+from .base_models import (
+ BaseArguments,
+ BaseOutput,
+)
+
+
+class WikipediaSearchArguments(BaseArguments):
+ query: str = Field(..., description="The search query string")
+ load_max_docs: int = Field(2, description="Maximum number of documents to load")
+
+
+class WikipediaSearchOutput(BaseOutput):
+ documents: list[Document] = Field(
+ ..., description="The documents returned from the Wikipedia search"
+ )
diff --git a/integrations-service/integrations/providers.py b/integrations-service/integrations/providers.py
new file mode 100644
index 000000000..41b5bf757
--- /dev/null
+++ b/integrations-service/integrations/providers.py
@@ -0,0 +1,164 @@
+from .models import (
+ BaseProvider,
+ BaseProviderMethod,
+ BraveSearchArguments,
+ BraveSearchOutput,
+ BraveSearchSetup,
+ BrowserBaseLoadArguments,
+ BrowserBaseLoadOutput,
+ BrowserBaseSetup,
+ EmailArguments,
+ EmailOutput,
+ EmailSetup,
+ HackerNewsFetchArguments,
+ HackerNewsFetchOutput,
+ ProviderInfo,
+ SpiderFetchArguments,
+ SpiderFetchOutput,
+ SpiderSetup,
+ WeatherGetArguments,
+ WeatherGetOutput,
+ WeatherSetup,
+ WikipediaSearchArguments,
+ WikipediaSearchOutput,
+)
+
+wikipedia = BaseProvider(
+ provider="wikipedia",
+ setup=None,
+ methods=[
+ BaseProviderMethod(
+ method="search",
+ description="Search for a page on Wikipedia",
+ arguments=WikipediaSearchArguments,
+ output=WikipediaSearchOutput,
+ ),
+ ],
+ info=ProviderInfo(
+ url="https://www.wikipedia.org/",
+ docs="https://www.wikipedia.org/wiki/Main_Page",
+ icon="https://www.wikipedia.org/static/favicon/wikipedia.ico",
+ friendly_name="Wikipedia",
+ ),
+)
+
+weather = BaseProvider(
+ provider="weather",
+ setup=WeatherSetup,
+ methods=[
+ BaseProviderMethod(
+ method="get",
+ description="Get the current weather for a city",
+ arguments=WeatherGetArguments,
+ output=WeatherGetOutput,
+ ),
+ ],
+ info=ProviderInfo(
+ url="https://www.weatherapi.com/",
+ docs="https://www.weatherapi.com/docs/",
+ icon="https://www.weatherapi.com/favicon.ico",
+ friendly_name="Weather API",
+ ),
+)
+
+hacker_news = BaseProvider(
+ provider="hacker_news",
+ setup=None,
+ methods=[
+ BaseProviderMethod(
+ method="fetch",
+ description="Get the top stories from Hacker News",
+ arguments=HackerNewsFetchArguments,
+ output=HackerNewsFetchOutput,
+ ),
+ ],
+ info=ProviderInfo(
+ url="https://news.ycombinator.com/",
+ docs="https://news.ycombinator.com/newsguidelines.html",
+ icon="https://news.ycombinator.com/favicon.ico",
+ friendly_name="Hacker News",
+ ),
+)
+
+spider = BaseProvider(
+ provider="spider",
+ setup=SpiderSetup,
+ methods=[
+ BaseProviderMethod(
+ method="crawl",
+ description="Crawl a website and extract data",
+ arguments=SpiderFetchArguments,
+ output=SpiderFetchOutput,
+ ),
+ ],
+ info=ProviderInfo(
+ url="https://spider.com/",
+ docs="https://spider.com/docs/",
+ icon="https://spider.com/favicon.ico",
+ friendly_name="Spider",
+ ),
+)
+
+brave = BaseProvider(
+ provider="brave",
+ setup=BraveSearchSetup,
+ methods=[
+ BaseProviderMethod(
+ method="search",
+ description="Search with Brave",
+ arguments=BraveSearchArguments,
+ output=BraveSearchOutput,
+ ),
+ ],
+ info=ProviderInfo(
+ url="https://brave.com/",
+ docs="https://brave.com/docs/",
+ icon="https://brave.com/favicon.ico",
+ friendly_name="Brave Search",
+ ),
+)
+
+browserbase = BaseProvider(
+ provider="browserbase",
+ setup=BrowserBaseSetup,
+ methods=[
+ BaseProviderMethod(
+ method="load",
+ description="Load documents from the provided urls",
+ arguments=BrowserBaseLoadArguments,
+ output=BrowserBaseLoadOutput,
+ ),
+ ],
+ info=ProviderInfo(
+ url="https://browserbase.com/",
+ docs="https://browserbase.com/docs/",
+ icon="https://browserbase.com/favicon.ico",
+ friendly_name="BrowserBase",
+ ),
+)
+
+email = BaseProvider(
+ provider="email",
+ setup=EmailSetup,
+ methods=[
+ BaseProviderMethod(
+ method="send",
+ description="Send an email",
+ arguments=EmailArguments,
+ output=EmailOutput,
+ ),
+ ],
+ info=ProviderInfo(
+ friendly_name="Email",
+ ),
+)
+
+providers = {
+ "wikipedia": wikipedia,
+ "weather": weather,
+ "hacker_news": hacker_news,
+ "spider": spider,
+ "brave": brave,
+ "browserbase": browserbase,
+ "email": email,
+}
diff --git a/integrations-service/integrations/routers/__init__.py b/integrations-service/integrations/routers/__init__.py
new file mode 100644
index 000000000..f1be65754
--- /dev/null
+++ b/integrations-service/integrations/routers/__init__.py
@@ -0,0 +1,2 @@
+from .execution.router import router as execution_router
+from .integrations.router import router as integrations_router
diff --git a/integrations-service/integrations/routers/execution/__init__.py b/integrations-service/integrations/routers/execution/__init__.py
new file mode 100644
index 000000000..ef8e79dda
--- /dev/null
+++ b/integrations-service/integrations/routers/execution/__init__.py
@@ -0,0 +1 @@
+from .execute import execute
diff --git a/integrations-service/integrations/routers/execution/execute.py b/integrations-service/integrations/routers/execution/execute.py
new file mode 100644
index 000000000..df4bf913a
--- /dev/null
+++ b/integrations-service/integrations/routers/execution/execute.py
@@ -0,0 +1,33 @@
+from fastapi import HTTPException
+
+from ...models.base_models import IdentifierName
+from ...models.execution import ExecutionRequest, ExecutionResponse
+from ...utils.execute_integration import execute_integration
+from .router import router
+
+
+@router.post("/execute/{provider}", tags=["execution"])
+async def execute(
+ provider: IdentifierName,
+ data: ExecutionRequest,
+) -> ExecutionResponse:
+ try:
+ return await execute_integration(
+ provider=provider, arguments=data.arguments, setup=data.setup
+ )
+ except ValueError as e:
+ raise HTTPException(status_code=400, detail=str(e))
+
+
+@router.post("/execute/{provider}/{method}", tags=["execution"])
+def execute(
+ provider: IdentifierName,
+ method: IdentifierName,
+ data: ExecutionRequest,
+) -> ExecutionResponse:
+ try:
+ return execute_integration(
+ provider=provider, arguments=data.arguments, setup=data.setup, method=method
+ )
+ except ValueError as e:
+ raise HTTPException(status_code=400, detail=str(e))
diff --git a/integrations-service/integrations/routers/execution/router.py b/integrations-service/integrations/routers/execution/router.py
new file mode 100644
index 000000000..5c3ec9311
--- /dev/null
+++ b/integrations-service/integrations/routers/execution/router.py
@@ -0,0 +1,3 @@
+from fastapi import APIRouter
+
+router: APIRouter = APIRouter()
diff --git a/integrations-service/integrations/routers/integrations/__init__.py b/integrations-service/integrations/routers/integrations/__init__.py
new file mode 100644
index 000000000..26eac0aaf
--- /dev/null
+++ b/integrations-service/integrations/routers/integrations/__init__.py
@@ -0,0 +1,3 @@
+from .get_integration import get_integration
+from .get_integration_tool import get_integration_tool
+from .get_integrations import get_integrations
diff --git a/integrations-service/integrations/routers/integrations/get_integration.py b/integrations-service/integrations/routers/integrations/get_integration.py
new file mode 100644
index 000000000..2a9b34595
--- /dev/null
+++ b/integrations-service/integrations/routers/integrations/get_integration.py
@@ -0,0 +1,23 @@
+from typing import List
+
+from ...providers import providers
+from .router import router
+
+
+@router.get("/integrations/{provider}", tags=["integration"])
+async def get_integration(provider: str) -> dict:
+ integration = providers[provider]
+ return {
+ "provider": integration.provider,
+ "setup": integration.setup.model_json_schema() if integration.setup else None,
+ "methods": [
+ {
+ "method": m.method,
+ "description": m.description,
+ "arguments": m.arguments.model_json_schema(),
+ "output": m.output.model_json_schema(),
+ }
+ for m in integration.methods
+ ],
+ "info": integration.info.model_dump_json(),
+ }
diff --git a/integrations-service/integrations/routers/integrations/get_integration_tool.py b/integrations-service/integrations/routers/integrations/get_integration_tool.py
new file mode 100644
index 000000000..42e3c1bc8
--- /dev/null
+++ b/integrations-service/integrations/routers/integrations/get_integration_tool.py
@@ -0,0 +1,44 @@
+from typing import Optional
+
+from fastapi import HTTPException
+
+from ...models.base_models import BaseProvider, BaseProviderMethod
+from .router import router
+
+
+def convert_to_openai_tool(
+ provider: BaseProvider, method: Optional[BaseProviderMethod] = None
+) -> dict:
+ method = method or provider.methods[0]
+ name = f"{provider.provider}_{method.method}"
+ description = method.description
+ arguments = method.arguments.model_json_schema()
+
+ return {
+ "type": "function",
+ "function": {
+ "name": name,
+ "description": description,
+ "parameters": arguments,
+ },
+ }
+
+
+@router.get("/integrations/{provider}/tool", tags=["integration_tool"])
+@router.get("/integrations/{provider}/{method}/tool", tags=["integration_tool"])
+async def get_integration_tool(provider: str, method: Optional[str] = None):
+ from ...providers import providers
+
+ provider: BaseProvider | None = providers.get(provider, None)
+
+ if not provider:
+ raise HTTPException(status_code=404, detail="Integration not found")
+
+ if method:
+ for m in provider.methods:
+ if m.method == method:
+ return convert_to_openai_tool(provider, m)
+ else:
+ return convert_to_openai_tool(provider)
+
+ raise HTTPException(status_code=404, detail="Integration not found")
diff --git a/integrations-service/integrations/routers/integrations/get_integrations.py b/integrations-service/integrations/routers/integrations/get_integrations.py
new file mode 100644
index 000000000..b3b3530c7
--- /dev/null
+++ b/integrations-service/integrations/routers/integrations/get_integrations.py
@@ -0,0 +1,31 @@
+from typing import List
+
+from ...providers import providers
+from .router import router
+
+
+@router.get("/integrations", tags=["integrations"])
+async def get_integrations() -> List[dict]:
+ integrations = [
+ {
+ "provider": p.provider,
+ "setup": p.setup.model_json_schema() if p.setup else None,
+ "methods": [
+ {
+ "method": m.method,
+ "description": m.description,
+ "arguments": m.arguments.model_json_schema(),
+ "output": m.output.model_json_schema(),
+ }
+ for m in p.methods
+ ],
+ "info": {
+ "url": p.info.url,
+ "docs": p.info.docs,
+ "icon": p.info.icon,
+ "friendly_name": p.info.friendly_name,
+ },
+ }
+ for p in providers.values()
+ ]
+ return integrations
diff --git a/integrations-service/integrations/routers/integrations/router.py b/integrations-service/integrations/routers/integrations/router.py
new file mode 100644
index 000000000..5c3ec9311
--- /dev/null
+++ b/integrations-service/integrations/routers/integrations/router.py
@@ -0,0 +1,3 @@
+from fastapi import APIRouter
+
+router: APIRouter = APIRouter()
diff --git a/integrations-service/integrations/utils/execute_integration.py b/integrations-service/integrations/utils/execute_integration.py
new file mode 100644
index 000000000..ab1907885
--- /dev/null
+++ b/integrations-service/integrations/utils/execute_integration.py
@@ -0,0 +1,42 @@
+import importlib
+
+from ..models.base_models import BaseProvider, IdentifierName
+from ..models.execution import ExecutionArguments, ExecutionResponse, ExecutionSetup
+from ..providers import providers
+
+
+async def execute_integration(
+ provider: IdentifierName,
+ arguments: ExecutionArguments,
+ method: IdentifierName | None = None,
+ setup: ExecutionSetup | None = None,
+) -> ExecutionResponse:
+ if provider not in providers:
+ raise ValueError(f"Unknown provider: {provider}")
+ provider: BaseProvider = providers[provider]
+ if method is None:
+ method = provider.methods[0].method
+ if method not in [method.method for method in provider.methods]:
+ raise ValueError(f"Unknown method: {method} for provider: {provider}")
+
+ provider_module = importlib.import_module(
+ f"integrations.utils.integrations.{provider.provider}", package="integrations"
+ )
+ execution_function = getattr(provider_module, method)
+
+ if setup:
+ setup_class = provider.setup
+ if setup_class and not isinstance(setup, setup_class):
+ setup = setup_class(**setup.model_dump())
+
+ arguments_class = next(m for m in provider.methods if m.method == method).arguments
+
+ if not isinstance(arguments, arguments_class):
+ parsed_arguments = arguments_class(**arguments.model_dump())
+ else:
+ parsed_arguments = arguments
+
+ if setup:
+ return await execution_function(setup=setup, arguments=parsed_arguments)
+ else:
+ return execution_function(arguments=parsed_arguments)
diff --git a/integrations-service/integrations/utils/integrations/__init__.py b/integrations-service/integrations/utils/integrations/__init__.py
new file mode 100644
index 000000000..238dacfd3
--- /dev/null
+++ b/integrations-service/integrations/utils/integrations/__init__.py
@@ -0,0 +1,7 @@
+from .brave import search
+from .browserbase import load
+from .email import send
+from .hacker_news import fetch
+from .spider import crawl
+from .weather import get
+from .wikipedia import search
diff --git a/integrations-service/integrations/utils/integrations/__tts_query.py b/integrations-service/integrations/utils/integrations/__tts_query.py
new file mode 100644
index 000000000..b4ce59d4d
--- /dev/null
+++ b/integrations-service/integrations/utils/integrations/__tts_query.py
@@ -0,0 +1,20 @@
+import os
+
+from langchain_community.tools import ElevenLabsText2SpeechTool
+
+
+async def tts_query(arguments: dict) -> str:
+ """
+ Converts text to speech using ElevenLabs API and plays the generated audio.
+ """
+ text_to_speak = arguments.get("query")
+ if not text_to_speak:
+ raise ValueError("Query parameter is required for text to speech")
+
+ eleven_api_key = os.getenv("ELEVEN_API_KEY")
+
+ tts = ElevenLabsText2SpeechTool(eleven_api_key=eleven_api_key)
+
+ speech_file = tts.run(text_to_speak)
+
+ return tts.play(speech_file)
diff --git a/integrations-service/integrations/utils/integrations/__twitter.py b/integrations-service/integrations/utils/integrations/__twitter.py
new file mode 100644
index 000000000..b21b18197
--- /dev/null
+++ b/integrations-service/integrations/utils/integrations/__twitter.py
@@ -0,0 +1,32 @@
+import os
+
+from langchain_community.document_loaders import TwitterTweetLoader
+
+
+async def twitter(arguments: dict) -> str:
+ """
+ Loads tweets from specified Twitter users and returns them as formatted string.
+ """
+ bearer_token = os.getenv("TWITTER_BEARER_TOKEN")
+ if not bearer_token:
+ raise ValueError("Twitter API bearer token is not set")
+
+ twitter_users = arguments.get("twitter_users")
+ if not twitter_users:
+ raise ValueError("Twitter users parameter is required for Twitter loader")
+
+ number_tweets = arguments.get("number_tweets", 50)
+
+ loader = TwitterTweetLoader.from_bearer_token(
+ oauth2_bearer_token=bearer_token,
+ twitter_users=twitter_users,
+ number_tweets=number_tweets,
+ )
+
+ documents = loader.load()
+
+ # Format the results as a string
+ result = "\n\n".join(
+ [f"Tweet: {doc.page_content}\nMetadata: {doc.metadata}" for doc in documents]
+ )
+ return result
diff --git a/integrations-service/integrations/utils/integrations/brave.py b/integrations-service/integrations/utils/integrations/brave.py
new file mode 100644
index 000000000..10bfe8084
--- /dev/null
+++ b/integrations-service/integrations/utils/integrations/brave.py
@@ -0,0 +1,19 @@
+from langchain_community.tools import BraveSearch
+
+from ...models import BraveSearchArguments, BraveSearchOutput, BraveSearchSetup
+
+
+async def search(
+ setup: BraveSearchSetup, arguments: BraveSearchArguments
+) -> BraveSearchOutput:
+ """
+ Searches Brave Search with the provided query.
+ """
+
+ assert isinstance(setup, BraveSearchSetup), "Invalid setup"
+ assert isinstance(arguments, BraveSearchArguments), "Invalid arguments"
+
+ tool = BraveSearch.from_api_key(api_key=setup.api_key, search_kwargs={"count": 3})
+
+ result = tool.run(arguments.query)
+ return BraveSearchOutput(result=result)
diff --git a/integrations-service/integrations/utils/integrations/browserbase.py b/integrations-service/integrations/utils/integrations/browserbase.py
new file mode 100644
index 000000000..7cc672662
--- /dev/null
+++ b/integrations-service/integrations/utils/integrations/browserbase.py
@@ -0,0 +1,27 @@
+from langchain_community.document_loaders import BrowserbaseLoader
+
+from ...models import BrowserBaseLoadArguments, BrowserBaseLoadOutput, BrowserBaseSetup
+
+
+async def load(
+ setup: BrowserBaseSetup, arguments: BrowserBaseLoadArguments
+) -> BrowserBaseLoadOutput:
+ """
+ Loads documents from the provided urls using BrowserBase.
+ """
+
+ assert isinstance(setup, BrowserBaseSetup), "Invalid setup"
+ assert isinstance(arguments, BrowserBaseLoadArguments), "Invalid arguments"
+
+ urls = [str(url) for url in arguments.urls]
+
+ loader = BrowserbaseLoader(
+ api_key=setup.api_key,
+ project_id=setup.project_id,
+ session_id=setup.session_id,
+ urls=urls,
+ text_content=False,
+ )
+
+ documents = loader.load()
+ return BrowserBaseLoadOutput(documents=documents)
diff --git a/integrations-service/integrations/utils/integrations/dalle_image_generator.py b/integrations-service/integrations/utils/integrations/dalle_image_generator.py
new file mode 100644
index 000000000..e0a6496b8
--- /dev/null
+++ b/integrations-service/integrations/utils/integrations/dalle_image_generator.py
@@ -0,0 +1,22 @@
+from langchain_community.utilities.dalle_image_generator import DallEAPIWrapper
+
+from ...models import DalleImageGeneratorArguments, DalleImageGeneratorSetup
+
+
+async def dalle_image_generator(
+ setup: DalleImageGeneratorSetup, arguments: DalleImageGeneratorArguments
+) -> str:
+ """
+ Generates an image using DALL-E based on a provided prompt.
+ """
+
+ assert isinstance(setup, DalleImageGeneratorSetup), "Invalid setup"
+ assert isinstance(arguments, DalleImageGeneratorArguments), "Invalid arguments"
+
+ # FIXME: Fix OpenAI API Key error
+
+ dalle = DallEAPIWrapper(api_key=setup.api_key)
+ prompt = arguments.prompt
+ if not prompt:
+ raise ValueError("Prompt parameter is required for DALL-E image generation")
+ return dalle.run(prompt)
diff --git a/integrations-service/integrations/utils/integrations/duckduckgo_search.py b/integrations-service/integrations/utils/integrations/duckduckgo_search.py
new file mode 100644
index 000000000..a8ea38f56
--- /dev/null
+++ b/integrations-service/integrations/utils/integrations/duckduckgo_search.py
@@ -0,0 +1,15 @@
+from langchain_community.tools import DuckDuckGoSearchRun
+
+from ...models import DuckDuckGoSearchExecutionArguments
+
+
+async def duckduckgo_search(arguments: DuckDuckGoSearchExecutionArguments) -> str:
+ """
+ Performs a web search using DuckDuckGo and returns the results.
+ """
+
+ search = DuckDuckGoSearchRun()
+ query = arguments.query
+ if not query:
+ raise ValueError("Query parameter is required for DuckDuckGo search")
+ return search.run(query)
diff --git a/integrations-service/integrations/utils/integrations/email.py b/integrations-service/integrations/utils/integrations/email.py
new file mode 100644
index 000000000..b0ced9ff5
--- /dev/null
+++ b/integrations-service/integrations/utils/integrations/email.py
@@ -0,0 +1,27 @@
+from email.message import EmailMessage
+from smtplib import SMTP
+
+from beartype import beartype
+
+from ...models import EmailArguments, EmailOutput, EmailSetup
+
+
+# @beartype
+async def send(
+ setup: EmailSetup, arguments: EmailArguments
+) -> EmailOutput:
+ """
+ Sends an email with the provided details.
+ """
+
+ message = EmailMessage()
+ message.set_content(arguments.body)
+ message["Subject"] = arguments.subject
+ message["From"] = arguments.from_
+ message["To"] = arguments.to
+
+ with SMTP(setup.host, setup.port) as server:
+ server.login(setup.user, setup.password)
+ server.send_message(message)
+
+ return EmailOutput(success=True)
diff --git a/integrations-service/integrations/utils/integrations/gmail/send_mail.py b/integrations-service/integrations/utils/integrations/gmail/send_mail.py
new file mode 100644
index 000000000..e1863f280
--- /dev/null
+++ b/integrations-service/integrations/utils/integrations/gmail/send_mail.py
@@ -0,0 +1,6 @@
+async def send_mail(arguments: dict) -> str:
+ """
+ Dummy integration for sending an email to a specified recipient with a given subject and message.
+ """
+
+ return "Mail sent"
diff --git a/integrations-service/integrations/utils/integrations/hacker_news.py b/integrations-service/integrations/utils/integrations/hacker_news.py
new file mode 100644
index 000000000..526024c72
--- /dev/null
+++ b/integrations-service/integrations/utils/integrations/hacker_news.py
@@ -0,0 +1,22 @@
+from langchain_community.document_loaders import HNLoader
+
+from ...models import HackerNewsFetchArguments, HackerNewsFetchOutput
+
+
+async def fetch(arguments: HackerNewsFetchArguments) -> HackerNewsFetchOutput:
+ """
+ Fetches and formats content from a Hacker News thread using the provided URL.
+ """
+
+ assert isinstance(arguments, HackerNewsFetchArguments), "Invalid arguments"
+
+ url = arguments.url
+ if not url:
+ raise ValueError("URL parameter is required for Hacker News search")
+ loader = HNLoader(str(url))
+ documents = loader.load()
+
+ if not documents:
+ raise ValueError("No data found for the given URL")
+
+ return HackerNewsFetchOutput(documents=documents)
diff --git a/integrations-service/integrations/utils/integrations/request.py b/integrations-service/integrations/utils/integrations/request.py
new file mode 100644
index 000000000..e69de29bb
diff --git a/integrations-service/integrations/utils/integrations/spider.py b/integrations-service/integrations/utils/integrations/spider.py
new file mode 100644
index 000000000..a355e2347
--- /dev/null
+++ b/integrations-service/integrations/utils/integrations/spider.py
@@ -0,0 +1,28 @@
+from langchain_community.document_loaders import SpiderLoader
+
+from ...models import SpiderFetchArguments, SpiderFetchOutput, SpiderSetup
+
+
+async def crawl(setup: SpiderSetup, arguments: SpiderFetchArguments) -> SpiderFetchOutput:
+ """
+ Fetches data from a specified URL.
+ """
+
+ assert isinstance(setup, SpiderSetup), "Invalid setup"
+ assert isinstance(arguments, SpiderFetchArguments), "Invalid arguments"
+
+ url = arguments.url
+
+ if not url:
+ raise ValueError("URL parameter is required for spider")
+
+ spider_loader = SpiderLoader(
+ api_key=setup.spider_api_key,
+ url=str(url),
+ mode=arguments.mode,
+ params=arguments.params,
+ )
+
+ documents = spider_loader.load()
+
+ return SpiderFetchOutput(documents=documents)
diff --git a/integrations-service/integrations/utils/integrations/weather.py b/integrations-service/integrations/utils/integrations/weather.py
new file mode 100644
index 000000000..e9393bc09
--- /dev/null
+++ b/integrations-service/integrations/utils/integrations/weather.py
@@ -0,0 +1,23 @@
+from langchain_community.utilities import OpenWeatherMapAPIWrapper
+
+from ...models import WeatherGetArguments, WeatherGetOutput, WeatherSetup
+
+
+async def get(setup: WeatherSetup, arguments: WeatherGetArguments) -> WeatherGetOutput:
+ """
+ Fetches weather data for a specified location using OpenWeatherMap API.
+ """
+
+ assert isinstance(setup, WeatherSetup), "Invalid setup"
+ assert isinstance(arguments, WeatherGetArguments), "Invalid arguments"
+
+ location = arguments.location
+
+ openweathermap_api_key = setup.openweathermap_api_key
+ if not location:
+ raise ValueError("Location parameter is required for weather data")
+
+ weather = OpenWeatherMapAPIWrapper(openweathermap_api_key=openweathermap_api_key)
+ result = weather.run(location)
+ return WeatherGetOutput(result=result)
+
diff --git a/integrations-service/integrations/utils/integrations/wikipedia.py b/integrations-service/integrations/utils/integrations/wikipedia.py
new file mode 100644
index 000000000..aa53b5515
--- /dev/null
+++ b/integrations-service/integrations/utils/integrations/wikipedia.py
@@ -0,0 +1,20 @@
+from langchain_community.document_loaders import WikipediaLoader
+
+from ...models import WikipediaSearchArguments, WikipediaSearchOutput
+
+
+def search(arguments: WikipediaSearchArguments) -> WikipediaSearchOutput:
+ """
+ Searches Wikipedia for a given query and returns formatted results.
+ """
+
+ query = arguments.query
+ if not query:
+ raise ValueError("Query parameter is required for Wikipedia search")
+
+ load_max_docs = arguments.load_max_docs
+
+ loader = WikipediaLoader(query=query, load_max_docs=load_max_docs)
+ documents = loader.load()
+
+ return WikipediaSearchOutput(documents=documents)
diff --git a/integrations-service/integrations/web.py b/integrations-service/integrations/web.py
new file mode 100644
index 000000000..ae91a53ca
--- /dev/null
+++ b/integrations-service/integrations/web.py
@@ -0,0 +1,83 @@
+import logging
+from typing import Any, Callable
+
+import fire
+import uvicorn
+from fastapi import FastAPI, Request, status
+from fastapi.exceptions import HTTPException, RequestValidationError
+from fastapi.responses import JSONResponse
+
+from .routers import execution_router, integrations_router
+
+app: FastAPI = FastAPI()
+
+# Add routers
+app.include_router(integrations_router)
+app.include_router(execution_router)
+
+
+logger: logging.Logger = logging.getLogger(__name__)
+
+
+def make_exception_handler(status: int) -> Callable[[Any, Any], Any]:
+ """
+ Creates a custom exception handler for the application.
+
+ Parameters:
+ - status (int): The HTTP status code to return for this exception.
+
+ Returns:
+ A callable exception handler that logs the exception and returns a JSON response with the specified status code.
+ """
+
+ async def _handler(request: Request, exc):
+ exc_str = f"{exc}".replace("\n", " ").replace(" ", " ")
+ logger.exception(exc)
+ content = {"status_code": status, "message": exc_str, "data": None}
+ return JSONResponse(content=content, status_code=status)
+
+ return _handler
+
+
+def register_exceptions(app: FastAPI) -> None:
+ """
+ Registers custom exception handlers for the FastAPI application.
+
+ Parameters:
+ - app (FastAPI): The FastAPI application instance to register the exception handlers for.
+ """
+ app.add_exception_handler(
+ RequestValidationError,
+ make_exception_handler(status.HTTP_422_UNPROCESSABLE_ENTITY),
+ )
+
+
+@app.exception_handler(HTTPException)
+async def http_exception_handler(request, exc: HTTPException): # pylint: disable=unused-argument
+ return JSONResponse(
+ status_code=exc.status_code,
+ content={"error": {"message": str(exc)}},
+ )
+
+
+def main(
+ host="0.0.0.0",
+ port=8000,
+ backlog=4096,
+ timeout_keep_alive=30,
+ workers=None,
+ log_level="info",
+) -> None:
+ uvicorn.run(
+ app,
+ host=host,
+ port=port,
+ log_level=log_level,
+ timeout_keep_alive=timeout_keep_alive,
+ backlog=backlog,
+ workers=workers,
+ )
+
+
+if __name__ == "__main__":
+ fire.Fire(main)
diff --git a/integrations-service/poetry.lock b/integrations-service/poetry.lock
new file mode 100644
index 000000000..bc294a56f
--- /dev/null
+++ b/integrations-service/poetry.lock
@@ -0,0 +1,2465 @@
+# This file is automatically @generated by Poetry 1.8.3 and should not be changed by hand.
+
+[[package]]
+name = "aiohappyeyeballs"
+version = "2.4.3"
+description = "Happy Eyeballs for asyncio"
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "aiohappyeyeballs-2.4.3-py3-none-any.whl", hash = "sha256:8a7a83727b2756f394ab2895ea0765a0a8c475e3c71e98d43d76f22b4b435572"},
+ {file = "aiohappyeyeballs-2.4.3.tar.gz", hash = "sha256:75cf88a15106a5002a8eb1dab212525c00d1f4c0fa96e551c9fbe6f09a621586"},
+]
+
+[[package]]
+name = "aiohttp"
+version = "3.10.9"
+description = "Async http client/server framework (asyncio)"
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "aiohttp-3.10.9-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:8b3fb28a9ac8f2558760d8e637dbf27aef1e8b7f1d221e8669a1074d1a266bb2"},
+ {file = "aiohttp-3.10.9-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:91aa966858593f64c8a65cdefa3d6dc8fe3c2768b159da84c1ddbbb2c01ab4ef"},
+ {file = "aiohttp-3.10.9-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:63649309da83277f06a15bbdc2a54fbe75efb92caa2c25bb57ca37762789c746"},
+ {file = "aiohttp-3.10.9-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e3e7fabedb3fe06933f47f1538df7b3a8d78e13d7167195f51ca47ee12690373"},
+ {file = "aiohttp-3.10.9-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5c070430fda1a550a1c3a4c2d7281d3b8cfc0c6715f616e40e3332201a253067"},
+ {file = "aiohttp-3.10.9-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:51d0a4901b27272ae54e42067bc4b9a90e619a690b4dc43ea5950eb3070afc32"},
+ {file = "aiohttp-3.10.9-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fec5fac7aea6c060f317f07494961236434928e6f4374e170ef50b3001e14581"},
+ {file = "aiohttp-3.10.9-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:172ad884bb61ad31ed7beed8be776eb17e7fb423f1c1be836d5cb357a096bf12"},
+ {file = "aiohttp-3.10.9-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:d646fdd74c25bbdd4a055414f0fe32896c400f38ffbdfc78c68e62812a9e0257"},
+ {file = "aiohttp-3.10.9-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e86260b76786c28acf0b5fe31c8dca4c2add95098c709b11e8c35b424ebd4f5b"},
+ {file = "aiohttp-3.10.9-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:c7d7cafc11d70fdd8801abfc2ff276744ae4cb39d8060b6b542c7e44e5f2cfc2"},
+ {file = "aiohttp-3.10.9-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:fc262c3df78c8ff6020c782d9ce02e4bcffe4900ad71c0ecdad59943cba54442"},
+ {file = "aiohttp-3.10.9-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:482c85cf3d429844396d939b22bc2a03849cb9ad33344689ad1c85697bcba33a"},
+ {file = "aiohttp-3.10.9-cp310-cp310-win32.whl", hash = "sha256:aeebd3061f6f1747c011e1d0b0b5f04f9f54ad1a2ca183e687e7277bef2e0da2"},
+ {file = "aiohttp-3.10.9-cp310-cp310-win_amd64.whl", hash = "sha256:fa430b871220dc62572cef9c69b41e0d70fcb9d486a4a207a5de4c1f25d82593"},
+ {file = "aiohttp-3.10.9-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:16e6a51d8bc96b77f04a6764b4ad03eeef43baa32014fce71e882bd71302c7e4"},
+ {file = "aiohttp-3.10.9-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:8bd9125dd0cc8ebd84bff2be64b10fdba7dc6fd7be431b5eaf67723557de3a31"},
+ {file = "aiohttp-3.10.9-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:dcf354661f54e6a49193d0b5653a1b011ba856e0b7a76bda2c33e4c6892f34ea"},
+ {file = "aiohttp-3.10.9-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42775de0ca04f90c10c5c46291535ec08e9bcc4756f1b48f02a0657febe89b10"},
+ {file = "aiohttp-3.10.9-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:87d1e4185c5d7187684d41ebb50c9aeaaaa06ca1875f4c57593071b0409d2444"},
+ {file = "aiohttp-3.10.9-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c2695c61cf53a5d4345a43d689f37fc0f6d3a2dc520660aec27ec0f06288d1f9"},
+ {file = "aiohttp-3.10.9-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8a3f063b41cc06e8d0b3fcbbfc9c05b7420f41287e0cd4f75ce0a1f3d80729e6"},
+ {file = "aiohttp-3.10.9-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2d37f4718002863b82c6f391c8efd4d3a817da37030a29e2682a94d2716209de"},
+ {file = "aiohttp-3.10.9-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:2746d8994ebca1bdc55a1e998feff4e94222da709623bb18f6e5cfec8ec01baf"},
+ {file = "aiohttp-3.10.9-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:6f3c6648aa123bcd73d6f26607d59967b607b0da8ffcc27d418a4b59f4c98c7c"},
+ {file = "aiohttp-3.10.9-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:558b3d223fd631ad134d89adea876e7fdb4c93c849ef195049c063ada82b7d08"},
+ {file = "aiohttp-3.10.9-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:4e6cb75f8ddd9c2132d00bc03c9716add57f4beff1263463724f6398b813e7eb"},
+ {file = "aiohttp-3.10.9-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:608cecd8d58d285bfd52dbca5b6251ca8d6ea567022c8a0eaae03c2589cd9af9"},
+ {file = "aiohttp-3.10.9-cp311-cp311-win32.whl", hash = "sha256:36d4fba838be5f083f5490ddd281813b44d69685db910907636bc5dca6322316"},
+ {file = "aiohttp-3.10.9-cp311-cp311-win_amd64.whl", hash = "sha256:8be1a65487bdfc285bd5e9baf3208c2132ca92a9b4020e9f27df1b16fab998a9"},
+ {file = "aiohttp-3.10.9-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:4fd16b30567c5b8e167923be6e027eeae0f20cf2b8a26b98a25115f28ad48ee0"},
+ {file = "aiohttp-3.10.9-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:40ff5b7660f903dc587ed36ef08a88d46840182d9d4b5694e7607877ced698a1"},
+ {file = "aiohttp-3.10.9-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4edc3fd701e2b9a0d605a7b23d3de4ad23137d23fc0dbab726aa71d92f11aaaf"},
+ {file = "aiohttp-3.10.9-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e525b69ee8a92c146ae5b4da9ecd15e518df4d40003b01b454ad694a27f498b5"},
+ {file = "aiohttp-3.10.9-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5002a02c17fcfd796d20bac719981d2fca9c006aac0797eb8f430a58e9d12431"},
+ {file = "aiohttp-3.10.9-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fd4ceeae2fb8cabdd1b71c82bfdd39662473d3433ec95b962200e9e752fb70d0"},
+ {file = "aiohttp-3.10.9-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d6e395c3d1f773cf0651cd3559e25182eb0c03a2777b53b4575d8adc1149c6e9"},
+ {file = "aiohttp-3.10.9-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bbdb8def5268f3f9cd753a265756f49228a20ed14a480d151df727808b4531dd"},
+ {file = "aiohttp-3.10.9-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:f82ace0ec57c94aaf5b0e118d4366cff5889097412c75aa14b4fd5fc0c44ee3e"},
+ {file = "aiohttp-3.10.9-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:6ebdc3b3714afe1b134b3bbeb5f745eed3ecbcff92ab25d80e4ef299e83a5465"},
+ {file = "aiohttp-3.10.9-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:f9ca09414003c0e96a735daa1f071f7d7ed06962ef4fa29ceb6c80d06696d900"},
+ {file = "aiohttp-3.10.9-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:1298b854fd31d0567cbb916091be9d3278168064fca88e70b8468875ef9ff7e7"},
+ {file = "aiohttp-3.10.9-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:60ad5b8a7452c0f5645c73d4dad7490afd6119d453d302cd5b72b678a85d6044"},
+ {file = "aiohttp-3.10.9-cp312-cp312-win32.whl", hash = "sha256:1a0ee6c0d590c917f1b9629371fce5f3d3f22c317aa96fbdcce3260754d7ea21"},
+ {file = "aiohttp-3.10.9-cp312-cp312-win_amd64.whl", hash = "sha256:c46131c6112b534b178d4e002abe450a0a29840b61413ac25243f1291613806a"},
+ {file = "aiohttp-3.10.9-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:2bd9f3eac515c16c4360a6a00c38119333901b8590fe93c3257a9b536026594d"},
+ {file = "aiohttp-3.10.9-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:8cc0d13b4e3b1362d424ce3f4e8c79e1f7247a00d792823ffd640878abf28e56"},
+ {file = "aiohttp-3.10.9-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:ba1a599255ad6a41022e261e31bc2f6f9355a419575b391f9655c4d9e5df5ff5"},
+ {file = "aiohttp-3.10.9-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:776e9f3c9b377fcf097c4a04b241b15691e6662d850168642ff976780609303c"},
+ {file = "aiohttp-3.10.9-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8debb45545ad95b58cc16c3c1cc19ad82cffcb106db12b437885dbee265f0ab5"},
+ {file = "aiohttp-3.10.9-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c2555e4949c8d8782f18ef20e9d39730d2656e218a6f1a21a4c4c0b56546a02e"},
+ {file = "aiohttp-3.10.9-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c54dc329cd44f7f7883a9f4baaefe686e8b9662e2c6c184ea15cceee587d8d69"},
+ {file = "aiohttp-3.10.9-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e709d6ac598c5416f879bb1bae3fd751366120ac3fa235a01de763537385d036"},
+ {file = "aiohttp-3.10.9-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:17c272cfe7b07a5bb0c6ad3f234e0c336fb53f3bf17840f66bd77b5815ab3d16"},
+ {file = "aiohttp-3.10.9-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:0c21c82df33b264216abffff9f8370f303dab65d8eee3767efbbd2734363f677"},
+ {file = "aiohttp-3.10.9-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:9331dd34145ff105177855017920dde140b447049cd62bb589de320fd6ddd582"},
+ {file = "aiohttp-3.10.9-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:ac3196952c673822ebed8871cf8802e17254fff2a2ed4835d9c045d9b88c5ec7"},
+ {file = "aiohttp-3.10.9-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:2c33fa6e10bb7ed262e3ff03cc69d52869514f16558db0626a7c5c61dde3c29f"},
+ {file = "aiohttp-3.10.9-cp313-cp313-win32.whl", hash = "sha256:a14e4b672c257a6b94fe934ee62666bacbc8e45b7876f9dd9502d0f0fe69db16"},
+ {file = "aiohttp-3.10.9-cp313-cp313-win_amd64.whl", hash = "sha256:a35ed3d03910785f7d9d6f5381f0c24002b2b888b298e6f941b2fc94c5055fcd"},
+ {file = "aiohttp-3.10.9-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:5f392ef50e22c31fa49b5a46af7f983fa3f118f3eccb8522063bee8bfa6755f8"},
+ {file = "aiohttp-3.10.9-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:d1f5c9169e26db6a61276008582d945405b8316aae2bb198220466e68114a0f5"},
+ {file = "aiohttp-3.10.9-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:8d9d10d10ec27c0d46ddaecc3c5598c4db9ce4e6398ca872cdde0525765caa2f"},
+ {file = "aiohttp-3.10.9-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d97273a52d7f89a75b11ec386f786d3da7723d7efae3034b4dda79f6f093edc1"},
+ {file = "aiohttp-3.10.9-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d271f770b52e32236d945911b2082f9318e90ff835d45224fa9e28374303f729"},
+ {file = "aiohttp-3.10.9-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7003f33f5f7da1eb02f0446b0f8d2ccf57d253ca6c2e7a5732d25889da82b517"},
+ {file = "aiohttp-3.10.9-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a6e00c8a92e7663ed2be6fcc08a2997ff06ce73c8080cd0df10cc0321a3168d7"},
+ {file = "aiohttp-3.10.9-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a61df62966ce6507aafab24e124e0c3a1cfbe23c59732987fc0fd0d71daa0b88"},
+ {file = "aiohttp-3.10.9-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:60555211a006d26e1a389222e3fab8cd379f28e0fbf7472ee55b16c6c529e3a6"},
+ {file = "aiohttp-3.10.9-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:d15a29424e96fad56dc2f3abed10a89c50c099f97d2416520c7a543e8fddf066"},
+ {file = "aiohttp-3.10.9-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:a19caae0d670771ea7854ca30df76f676eb47e0fd9b2ee4392d44708f272122d"},
+ {file = "aiohttp-3.10.9-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:99f9678bf0e2b1b695e8028fedac24ab6770937932eda695815d5a6618c37e04"},
+ {file = "aiohttp-3.10.9-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:2914caa46054f3b5ff910468d686742ff8cff54b8a67319d75f5d5945fd0a13d"},
+ {file = "aiohttp-3.10.9-cp38-cp38-win32.whl", hash = "sha256:0bc059ecbce835630e635879f5f480a742e130d9821fbe3d2f76610a6698ee25"},
+ {file = "aiohttp-3.10.9-cp38-cp38-win_amd64.whl", hash = "sha256:e883b61b75ca6efc2541fcd52a5c8ccfe288b24d97e20ac08fdf343b8ac672ea"},
+ {file = "aiohttp-3.10.9-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:fcd546782d03181b0b1d20b43d612429a90a68779659ba8045114b867971ab71"},
+ {file = "aiohttp-3.10.9-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:85711eec2d875cd88c7eb40e734c4ca6d9ae477d6f26bd2b5bb4f7f60e41b156"},
+ {file = "aiohttp-3.10.9-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:02d1d6610588bcd743fae827bd6f2e47e0d09b346f230824b4c6fb85c6065f9c"},
+ {file = "aiohttp-3.10.9-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3668d0c2a4d23fb136a753eba42caa2c0abbd3d9c5c87ee150a716a16c6deec1"},
+ {file = "aiohttp-3.10.9-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d7c071235a47d407b0e93aa6262b49422dbe48d7d8566e1158fecc91043dd948"},
+ {file = "aiohttp-3.10.9-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ac74e794e3aee92ae8f571bfeaa103a141e409863a100ab63a253b1c53b707eb"},
+ {file = "aiohttp-3.10.9-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2bbf94d4a0447705b7775417ca8bb8086cc5482023a6e17cdc8f96d0b1b5aba6"},
+ {file = "aiohttp-3.10.9-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cb0b2d5d51f96b6cc19e6ab46a7b684be23240426ae951dcdac9639ab111b45e"},
+ {file = "aiohttp-3.10.9-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:e83dfefb4f7d285c2d6a07a22268344a97d61579b3e0dce482a5be0251d672ab"},
+ {file = "aiohttp-3.10.9-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:f0a44bb40b6aaa4fb9a5c1ee07880570ecda2065433a96ccff409c9c20c1624a"},
+ {file = "aiohttp-3.10.9-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:c2b627d3c8982691b06d89d31093cee158c30629fdfebe705a91814d49b554f8"},
+ {file = "aiohttp-3.10.9-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:03690541e4cc866eef79626cfa1ef4dd729c5c1408600c8cb9e12e1137eed6ab"},
+ {file = "aiohttp-3.10.9-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:ad3675c126f2a95bde637d162f8231cff6bc0bc9fbe31bd78075f9ff7921e322"},
+ {file = "aiohttp-3.10.9-cp39-cp39-win32.whl", hash = "sha256:1321658f12b6caffafdc35cfba6c882cb014af86bef4e78c125e7e794dfb927b"},
+ {file = "aiohttp-3.10.9-cp39-cp39-win_amd64.whl", hash = "sha256:9fdf5c839bf95fc67be5794c780419edb0dbef776edcfc6c2e5e2ffd5ee755fa"},
+ {file = "aiohttp-3.10.9.tar.gz", hash = "sha256:143b0026a9dab07a05ad2dd9e46aa859bffdd6348ddc5967b42161168c24f857"},
+]
+
+[package.dependencies]
+aiohappyeyeballs = ">=2.3.0"
+aiosignal = ">=1.1.2"
+attrs = ">=17.3.0"
+frozenlist = ">=1.1.1"
+multidict = ">=4.5,<7.0"
+yarl = ">=1.12.0,<2.0"
+
+[package.extras]
+speedups = ["Brotli", "aiodns (>=3.2.0)", "brotlicffi"]
+
+[[package]]
+name = "aiosignal"
+version = "1.3.1"
+description = "aiosignal: a list of registered asynchronous callbacks"
+optional = false
+python-versions = ">=3.7"
+files = [
+ {file = "aiosignal-1.3.1-py3-none-any.whl", hash = "sha256:f8376fb07dd1e86a584e4fcdec80b36b7f81aac666ebc724e2c090300dd83b17"},
+ {file = "aiosignal-1.3.1.tar.gz", hash = "sha256:54cd96e15e1649b75d6c87526a6ff0b6c1b0dd3459f43d9ca11d48c339b68cfc"},
+]
+
+[package.dependencies]
+frozenlist = ">=1.1.0"
+
+[[package]]
+name = "annotated-types"
+version = "0.7.0"
+description = "Reusable constraint types to use with typing.Annotated"
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53"},
+ {file = "annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89"},
+]
+
+[[package]]
+name = "anyio"
+version = "4.6.0"
+description = "High level compatibility layer for multiple asynchronous event loop implementations"
+optional = false
+python-versions = ">=3.9"
+files = [
+ {file = "anyio-4.6.0-py3-none-any.whl", hash = "sha256:c7d2e9d63e31599eeb636c8c5c03a7e108d73b345f064f1c19fdc87b79036a9a"},
+ {file = "anyio-4.6.0.tar.gz", hash = "sha256:137b4559cbb034c477165047febb6ff83f390fc3b20bf181c1fc0a728cb8beeb"},
+]
+
+[package.dependencies]
+idna = ">=2.8"
+sniffio = ">=1.1"
+
+[package.extras]
+doc = ["Sphinx (>=7.4,<8.0)", "packaging", "sphinx-autodoc-typehints (>=1.2.0)", "sphinx-rtd-theme"]
+test = ["anyio[trio]", "coverage[toml] (>=7)", "exceptiongroup (>=1.2.0)", "hypothesis (>=4.0)", "psutil (>=5.9)", "pytest (>=7.0)", "pytest-mock (>=3.6.1)", "trustme", "uvloop (>=0.21.0b1)"]
+trio = ["trio (>=0.26.1)"]
+
+[[package]]
+name = "atomicwrites"
+version = "1.4.1"
+description = "Atomic file writes."
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
+files = [
+ {file = "atomicwrites-1.4.1.tar.gz", hash = "sha256:81b2c9071a49367a7f770170e5eec8cb66567cfbbc8c73d20ce5ca4a8d71cf11"},
+]
+
+[[package]]
+name = "attrs"
+version = "24.2.0"
+description = "Classes Without Boilerplate"
+optional = false
+python-versions = ">=3.7"
+files = [
+ {file = "attrs-24.2.0-py3-none-any.whl", hash = "sha256:81921eb96de3191c8258c199618104dd27ac608d9366f5e35d011eae1867ede2"},
+ {file = "attrs-24.2.0.tar.gz", hash = "sha256:5cfb1b9148b5b086569baec03f20d7b6bf3bcacc9a42bebf87ffaaca362f6346"},
+]
+
+[package.extras]
+benchmark = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-codspeed", "pytest-mypy-plugins", "pytest-xdist[psutil]"]
+cov = ["cloudpickle", "coverage[toml] (>=5.3)", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"]
+dev = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pre-commit", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"]
+docs = ["cogapp", "furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier (<24.7)"]
+tests = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"]
+tests-mypy = ["mypy (>=1.11.1)", "pytest-mypy-plugins"]
+
+[[package]]
+name = "beartype"
+version = "0.19.0"
+description = "Unbearably fast near-real-time hybrid runtime-static type-checking in pure Python."
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "beartype-0.19.0-py3-none-any.whl", hash = "sha256:33b2694eda0daf052eb2aff623ed9a8a586703bbf0a90bbc475a83bbf427f699"},
+ {file = "beartype-0.19.0.tar.gz", hash = "sha256:de42dfc1ba5c3710fde6c3002e3bd2cad236ed4d2aabe876345ab0b4234a6573"},
+]
+
+[package.extras]
+dev = ["autoapi (>=0.9.0)", "coverage (>=5.5)", "equinox", "jax[cpu]", "jaxtyping", "mypy (>=0.800)", "numba", "numpy", "pandera", "pydata-sphinx-theme (<=0.7.2)", "pygments", "pyright (>=1.1.370)", "pytest (>=4.0.0)", "sphinx", "sphinx (>=4.2.0,<6.0.0)", "sphinxext-opengraph (>=0.7.5)", "tox (>=3.20.1)", "typing-extensions (>=3.10.0.0)"]
+doc-rtd = ["autoapi (>=0.9.0)", "pydata-sphinx-theme (<=0.7.2)", "sphinx (>=4.2.0,<6.0.0)", "sphinxext-opengraph (>=0.7.5)"]
+test = ["coverage (>=5.5)", "equinox", "jax[cpu]", "jaxtyping", "mypy (>=0.800)", "numba", "numpy", "pandera", "pygments", "pyright (>=1.1.370)", "pytest (>=4.0.0)", "sphinx", "tox (>=3.20.1)", "typing-extensions (>=3.10.0.0)"]
+test-tox = ["equinox", "jax[cpu]", "jaxtyping", "mypy (>=0.800)", "numba", "numpy", "pandera", "pygments", "pyright (>=1.1.370)", "pytest (>=4.0.0)", "sphinx", "typing-extensions (>=3.10.0.0)"]
+test-tox-coverage = ["coverage (>=5.5)"]
+
+[[package]]
+name = "beautifulsoup4"
+version = "4.12.3"
+description = "Screen-scraping library"
+optional = false
+python-versions = ">=3.6.0"
+files = [
+ {file = "beautifulsoup4-4.12.3-py3-none-any.whl", hash = "sha256:b80878c9f40111313e55da8ba20bdba06d8fa3969fc68304167741bbf9e082ed"},
+ {file = "beautifulsoup4-4.12.3.tar.gz", hash = "sha256:74e3d1928edc070d21748185c46e3fb33490f22f52a3addee9aee0f4f7781051"},
+]
+
+[package.dependencies]
+soupsieve = ">1.2"
+
+[package.extras]
+cchardet = ["cchardet"]
+chardet = ["chardet"]
+charset-normalizer = ["charset-normalizer"]
+html5lib = ["html5lib"]
+lxml = ["lxml"]
+
+[[package]]
+name = "browserbase"
+version = "0.3.0"
+description = "Browserbase Python SDK"
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "browserbase-0.3.0-py3-none-any.whl", hash = "sha256:16fe6f0b1fc55aca050bbabf76cd17d83ee1a798d9bba274b09421ca120b5ec3"},
+ {file = "browserbase-0.3.0.tar.gz", hash = "sha256:2ec31641fab0a9ec3b2f23ed0244f01e3b35423806c1c6665d68706133958b07"},
+]
+
+[package.dependencies]
+httpx = ">=0.27.0"
+playwright = ">=1.43.0"
+pydantic = ">=2.7.1"
+
+[[package]]
+name = "certifi"
+version = "2024.8.30"
+description = "Python package for providing Mozilla's CA Bundle."
+optional = false
+python-versions = ">=3.6"
+files = [
+ {file = "certifi-2024.8.30-py3-none-any.whl", hash = "sha256:922820b53db7a7257ffbda3f597266d435245903d80737e34f8a45ff3e3230d8"},
+ {file = "certifi-2024.8.30.tar.gz", hash = "sha256:bec941d2aa8195e248a60b31ff9f0558284cf01a52591ceda73ea9afffd69fd9"},
+]
+
+[[package]]
+name = "charset-normalizer"
+version = "3.3.2"
+description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet."
+optional = false
+python-versions = ">=3.7.0"
+files = [
+ {file = "charset-normalizer-3.3.2.tar.gz", hash = "sha256:f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5"},
+ {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:25baf083bf6f6b341f4121c2f3c548875ee6f5339300e08be3f2b2ba1721cdd3"},
+ {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:06435b539f889b1f6f4ac1758871aae42dc3a8c0e24ac9e60c2384973ad73027"},
+ {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9063e24fdb1e498ab71cb7419e24622516c4a04476b17a2dab57e8baa30d6e03"},
+ {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6897af51655e3691ff853668779c7bad41579facacf5fd7253b0133308cf000d"},
+ {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1d3193f4a680c64b4b6a9115943538edb896edc190f0b222e73761716519268e"},
+ {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cd70574b12bb8a4d2aaa0094515df2463cb429d8536cfb6c7ce983246983e5a6"},
+ {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8465322196c8b4d7ab6d1e049e4c5cb460d0394da4a27d23cc242fbf0034b6b5"},
+ {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a9a8e9031d613fd2009c182b69c7b2c1ef8239a0efb1df3f7c8da66d5dd3d537"},
+ {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:beb58fe5cdb101e3a055192ac291b7a21e3b7ef4f67fa1d74e331a7f2124341c"},
+ {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:e06ed3eb3218bc64786f7db41917d4e686cc4856944f53d5bdf83a6884432e12"},
+ {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:2e81c7b9c8979ce92ed306c249d46894776a909505d8f5a4ba55b14206e3222f"},
+ {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:572c3763a264ba47b3cf708a44ce965d98555f618ca42c926a9c1616d8f34269"},
+ {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fd1abc0d89e30cc4e02e4064dc67fcc51bd941eb395c502aac3ec19fab46b519"},
+ {file = "charset_normalizer-3.3.2-cp310-cp310-win32.whl", hash = "sha256:3d47fa203a7bd9c5b6cee4736ee84ca03b8ef23193c0d1ca99b5089f72645c73"},
+ {file = "charset_normalizer-3.3.2-cp310-cp310-win_amd64.whl", hash = "sha256:10955842570876604d404661fbccbc9c7e684caf432c09c715ec38fbae45ae09"},
+ {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:802fe99cca7457642125a8a88a084cef28ff0cf9407060f7b93dca5aa25480db"},
+ {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:573f6eac48f4769d667c4442081b1794f52919e7edada77495aaed9236d13a96"},
+ {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:549a3a73da901d5bc3ce8d24e0600d1fa85524c10287f6004fbab87672bf3e1e"},
+ {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f27273b60488abe721a075bcca6d7f3964f9f6f067c8c4c605743023d7d3944f"},
+ {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ceae2f17a9c33cb48e3263960dc5fc8005351ee19db217e9b1bb15d28c02574"},
+ {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:65f6f63034100ead094b8744b3b97965785388f308a64cf8d7c34f2f2e5be0c4"},
+ {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:753f10e867343b4511128c6ed8c82f7bec3bd026875576dfd88483c5c73b2fd8"},
+ {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4a78b2b446bd7c934f5dcedc588903fb2f5eec172f3d29e52a9096a43722adfc"},
+ {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e537484df0d8f426ce2afb2d0f8e1c3d0b114b83f8850e5f2fbea0e797bd82ae"},
+ {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:eb6904c354526e758fda7167b33005998fb68c46fbc10e013ca97f21ca5c8887"},
+ {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:deb6be0ac38ece9ba87dea880e438f25ca3eddfac8b002a2ec3d9183a454e8ae"},
+ {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:4ab2fe47fae9e0f9dee8c04187ce5d09f48eabe611be8259444906793ab7cbce"},
+ {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:80402cd6ee291dcb72644d6eac93785fe2c8b9cb30893c1af5b8fdd753b9d40f"},
+ {file = "charset_normalizer-3.3.2-cp311-cp311-win32.whl", hash = "sha256:7cd13a2e3ddeed6913a65e66e94b51d80a041145a026c27e6bb76c31a853c6ab"},
+ {file = "charset_normalizer-3.3.2-cp311-cp311-win_amd64.whl", hash = "sha256:663946639d296df6a2bb2aa51b60a2454ca1cb29835324c640dafb5ff2131a77"},
+ {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:0b2b64d2bb6d3fb9112bafa732def486049e63de9618b5843bcdd081d8144cd8"},
+ {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:ddbb2551d7e0102e7252db79ba445cdab71b26640817ab1e3e3648dad515003b"},
+ {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:55086ee1064215781fff39a1af09518bc9255b50d6333f2e4c74ca09fac6a8f6"},
+ {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8f4a014bc36d3c57402e2977dada34f9c12300af536839dc38c0beab8878f38a"},
+ {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a10af20b82360ab00827f916a6058451b723b4e65030c5a18577c8b2de5b3389"},
+ {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8d756e44e94489e49571086ef83b2bb8ce311e730092d2c34ca8f7d925cb20aa"},
+ {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:90d558489962fd4918143277a773316e56c72da56ec7aa3dc3dbbe20fdfed15b"},
+ {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6ac7ffc7ad6d040517be39eb591cac5ff87416c2537df6ba3cba3bae290c0fed"},
+ {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:7ed9e526742851e8d5cc9e6cf41427dfc6068d4f5a3bb03659444b4cabf6bc26"},
+ {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:8bdb58ff7ba23002a4c5808d608e4e6c687175724f54a5dade5fa8c67b604e4d"},
+ {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:6b3251890fff30ee142c44144871185dbe13b11bab478a88887a639655be1068"},
+ {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:b4a23f61ce87adf89be746c8a8974fe1c823c891d8f86eb218bb957c924bb143"},
+ {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:efcb3f6676480691518c177e3b465bcddf57cea040302f9f4e6e191af91174d4"},
+ {file = "charset_normalizer-3.3.2-cp312-cp312-win32.whl", hash = "sha256:d965bba47ddeec8cd560687584e88cf699fd28f192ceb452d1d7ee807c5597b7"},
+ {file = "charset_normalizer-3.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:96b02a3dc4381e5494fad39be677abcb5e6634bf7b4fa83a6dd3112607547001"},
+ {file = "charset_normalizer-3.3.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:95f2a5796329323b8f0512e09dbb7a1860c46a39da62ecb2324f116fa8fdc85c"},
+ {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c002b4ffc0be611f0d9da932eb0f704fe2602a9a949d1f738e4c34c75b0863d5"},
+ {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a981a536974bbc7a512cf44ed14938cf01030a99e9b3a06dd59578882f06f985"},
+ {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3287761bc4ee9e33561a7e058c72ac0938c4f57fe49a09eae428fd88aafe7bb6"},
+ {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:42cb296636fcc8b0644486d15c12376cb9fa75443e00fb25de0b8602e64c1714"},
+ {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0a55554a2fa0d408816b3b5cedf0045f4b8e1a6065aec45849de2d6f3f8e9786"},
+ {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:c083af607d2515612056a31f0a8d9e0fcb5876b7bfc0abad3ecd275bc4ebc2d5"},
+ {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:87d1351268731db79e0f8e745d92493ee2841c974128ef629dc518b937d9194c"},
+ {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:bd8f7df7d12c2db9fab40bdd87a7c09b1530128315d047a086fa3ae3435cb3a8"},
+ {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:c180f51afb394e165eafe4ac2936a14bee3eb10debc9d9e4db8958fe36afe711"},
+ {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:8c622a5fe39a48f78944a87d4fb8a53ee07344641b0562c540d840748571b811"},
+ {file = "charset_normalizer-3.3.2-cp37-cp37m-win32.whl", hash = "sha256:db364eca23f876da6f9e16c9da0df51aa4f104a972735574842618b8c6d999d4"},
+ {file = "charset_normalizer-3.3.2-cp37-cp37m-win_amd64.whl", hash = "sha256:86216b5cee4b06df986d214f664305142d9c76df9b6512be2738aa72a2048f99"},
+ {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:6463effa3186ea09411d50efc7d85360b38d5f09b870c48e4600f63af490e56a"},
+ {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6c4caeef8fa63d06bd437cd4bdcf3ffefe6738fb1b25951440d80dc7df8c03ac"},
+ {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:37e55c8e51c236f95b033f6fb391d7d7970ba5fe7ff453dad675e88cf303377a"},
+ {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fb69256e180cb6c8a894fee62b3afebae785babc1ee98b81cdf68bbca1987f33"},
+ {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ae5f4161f18c61806f411a13b0310bea87f987c7d2ecdbdaad0e94eb2e404238"},
+ {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b2b0a0c0517616b6869869f8c581d4eb2dd83a4d79e0ebcb7d373ef9956aeb0a"},
+ {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:45485e01ff4d3630ec0d9617310448a8702f70e9c01906b0d0118bdf9d124cf2"},
+ {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eb00ed941194665c332bf8e078baf037d6c35d7c4f3102ea2d4f16ca94a26dc8"},
+ {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:2127566c664442652f024c837091890cb1942c30937add288223dc895793f898"},
+ {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:a50aebfa173e157099939b17f18600f72f84eed3049e743b68ad15bd69b6bf99"},
+ {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:4d0d1650369165a14e14e1e47b372cfcb31d6ab44e6e33cb2d4e57265290044d"},
+ {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:923c0c831b7cfcb071580d3f46c4baf50f174be571576556269530f4bbd79d04"},
+ {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:06a81e93cd441c56a9b65d8e1d043daeb97a3d0856d177d5c90ba85acb3db087"},
+ {file = "charset_normalizer-3.3.2-cp38-cp38-win32.whl", hash = "sha256:6ef1d82a3af9d3eecdba2321dc1b3c238245d890843e040e41e470ffa64c3e25"},
+ {file = "charset_normalizer-3.3.2-cp38-cp38-win_amd64.whl", hash = "sha256:eb8821e09e916165e160797a6c17edda0679379a4be5c716c260e836e122f54b"},
+ {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:c235ebd9baae02f1b77bcea61bce332cb4331dc3617d254df3323aa01ab47bd4"},
+ {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5b4c145409bef602a690e7cfad0a15a55c13320ff7a3ad7ca59c13bb8ba4d45d"},
+ {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:68d1f8a9e9e37c1223b656399be5d6b448dea850bed7d0f87a8311f1ff3dabb0"},
+ {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22afcb9f253dac0696b5a4be4a1c0f8762f8239e21b99680099abd9b2b1b2269"},
+ {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e27ad930a842b4c5eb8ac0016b0a54f5aebbe679340c26101df33424142c143c"},
+ {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1f79682fbe303db92bc2b1136016a38a42e835d932bab5b3b1bfcfbf0640e519"},
+ {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b261ccdec7821281dade748d088bb6e9b69e6d15b30652b74cbbac25e280b796"},
+ {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:122c7fa62b130ed55f8f285bfd56d5f4b4a5b503609d181f9ad85e55c89f4185"},
+ {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:d0eccceffcb53201b5bfebb52600a5fb483a20b61da9dbc885f8b103cbe7598c"},
+ {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:9f96df6923e21816da7e0ad3fd47dd8f94b2a5ce594e00677c0013018b813458"},
+ {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:7f04c839ed0b6b98b1a7501a002144b76c18fb1c1850c8b98d458ac269e26ed2"},
+ {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:34d1c8da1e78d2e001f363791c98a272bb734000fcef47a491c1e3b0505657a8"},
+ {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ff8fa367d09b717b2a17a052544193ad76cd49979c805768879cb63d9ca50561"},
+ {file = "charset_normalizer-3.3.2-cp39-cp39-win32.whl", hash = "sha256:aed38f6e4fb3f5d6bf81bfa990a07806be9d83cf7bacef998ab1a9bd660a581f"},
+ {file = "charset_normalizer-3.3.2-cp39-cp39-win_amd64.whl", hash = "sha256:b01b88d45a6fcb69667cd6d2f7a9aeb4bf53760d7fc536bf679ec94fe9f3ff3d"},
+ {file = "charset_normalizer-3.3.2-py3-none-any.whl", hash = "sha256:3e4d1f6587322d2788836a99c69062fbb091331ec940e02d12d179c1d53e25fc"},
+]
+
+[[package]]
+name = "click"
+version = "8.1.7"
+description = "Composable command line interface toolkit"
+optional = false
+python-versions = ">=3.7"
+files = [
+ {file = "click-8.1.7-py3-none-any.whl", hash = "sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28"},
+ {file = "click-8.1.7.tar.gz", hash = "sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de"},
+]
+
+[package.dependencies]
+colorama = {version = "*", markers = "platform_system == \"Windows\""}
+
+[[package]]
+name = "colorama"
+version = "0.4.6"
+description = "Cross-platform colored terminal text."
+optional = false
+python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7"
+files = [
+ {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"},
+ {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"},
+]
+
+[[package]]
+name = "dataclasses-json"
+version = "0.6.7"
+description = "Easily serialize dataclasses to and from JSON."
+optional = false
+python-versions = "<4.0,>=3.7"
+files = [
+ {file = "dataclasses_json-0.6.7-py3-none-any.whl", hash = "sha256:0dbf33f26c8d5305befd61b39d2b3414e8a407bedc2834dea9b8d642666fb40a"},
+ {file = "dataclasses_json-0.6.7.tar.gz", hash = "sha256:b6b3e528266ea45b9535223bc53ca645f5208833c29229e847b3f26a1cc55fc0"},
+]
+
+[package.dependencies]
+marshmallow = ">=3.18.0,<4.0.0"
+typing-inspect = ">=0.4.0,<1"
+
+[[package]]
+name = "distro"
+version = "1.9.0"
+description = "Distro - an OS platform information API"
+optional = false
+python-versions = ">=3.6"
+files = [
+ {file = "distro-1.9.0-py3-none-any.whl", hash = "sha256:7bffd925d65168f85027d8da9af6bddab658135b840670a223589bc0c8ef02b2"},
+ {file = "distro-1.9.0.tar.gz", hash = "sha256:2fa77c6fd8940f116ee1d6b94a2f90b13b5ea8d019b98bc8bafdcabcdd9bdbed"},
+]
+
+[[package]]
+name = "dnspython"
+version = "2.7.0"
+description = "DNS toolkit"
+optional = false
+python-versions = ">=3.9"
+files = [
+ {file = "dnspython-2.7.0-py3-none-any.whl", hash = "sha256:b4c34b7d10b51bcc3a5071e7b8dee77939f1e878477eeecc965e9835f63c6c86"},
+ {file = "dnspython-2.7.0.tar.gz", hash = "sha256:ce9c432eda0dc91cf618a5cedf1a4e142651196bbcd2c80e89ed5a907e5cfaf1"},
+]
+
+[package.extras]
+dev = ["black (>=23.1.0)", "coverage (>=7.0)", "flake8 (>=7)", "hypercorn (>=0.16.0)", "mypy (>=1.8)", "pylint (>=3)", "pytest (>=7.4)", "pytest-cov (>=4.1.0)", "quart-trio (>=0.11.0)", "sphinx (>=7.2.0)", "sphinx-rtd-theme (>=2.0.0)", "twine (>=4.0.0)", "wheel (>=0.42.0)"]
+dnssec = ["cryptography (>=43)"]
+doh = ["h2 (>=4.1.0)", "httpcore (>=1.0.0)", "httpx (>=0.26.0)"]
+doq = ["aioquic (>=1.0.0)"]
+idna = ["idna (>=3.7)"]
+trio = ["trio (>=0.23)"]
+wmi = ["wmi (>=1.5.1)"]
+
+[[package]]
+name = "duckduckgo-search"
+version = "6.2.13"
+description = "Search for words, documents, images, news, maps and text translation using the DuckDuckGo.com search engine."
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "duckduckgo_search-6.2.13-py3-none-any.whl", hash = "sha256:a6618fb2744fa1d081b1bf2e47ef8051de993276a15c20f4e879a150726472de"},
+ {file = "duckduckgo_search-6.2.13.tar.gz", hash = "sha256:f89a9782f0f47d18c01a761c83453d0aef7a4335d1b6466fc47709652d5ca791"},
+]
+
+[package.dependencies]
+click = ">=8.1.7"
+primp = ">=0.6.3"
+
+[package.extras]
+dev = ["mypy (>=1.11.1)", "pytest (>=8.3.1)", "pytest-asyncio (>=0.23.8)", "ruff (>=0.6.1)"]
+lxml = ["lxml (>=5.2.2)"]
+
+[[package]]
+name = "email-validator"
+version = "2.2.0"
+description = "A robust email address syntax and deliverability validation library."
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "email_validator-2.2.0-py3-none-any.whl", hash = "sha256:561977c2d73ce3611850a06fa56b414621e0c8faa9d66f2611407d87465da631"},
+ {file = "email_validator-2.2.0.tar.gz", hash = "sha256:cb690f344c617a714f22e66ae771445a1ceb46821152df8e165c5f9a364582b7"},
+]
+
+[package.dependencies]
+dnspython = ">=2.0.0"
+idna = ">=2.0.0"
+
+[[package]]
+name = "fastapi"
+version = "0.115.0"
+description = "FastAPI framework, high performance, easy to learn, fast to code, ready for production"
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "fastapi-0.115.0-py3-none-any.whl", hash = "sha256:17ea427674467486e997206a5ab25760f6b09e069f099b96f5b55a32fb6f1631"},
+ {file = "fastapi-0.115.0.tar.gz", hash = "sha256:f93b4ca3529a8ebc6fc3fcf710e5efa8de3df9b41570958abf1d97d843138004"},
+]
+
+[package.dependencies]
+pydantic = ">=1.7.4,<1.8 || >1.8,<1.8.1 || >1.8.1,<2.0.0 || >2.0.0,<2.0.1 || >2.0.1,<2.1.0 || >2.1.0,<3.0.0"
+starlette = ">=0.37.2,<0.39.0"
+typing-extensions = ">=4.8.0"
+
+[package.extras]
+all = ["email-validator (>=2.0.0)", "fastapi-cli[standard] (>=0.0.5)", "httpx (>=0.23.0)", "itsdangerous (>=1.1.0)", "jinja2 (>=2.11.2)", "orjson (>=3.2.1)", "pydantic-extra-types (>=2.0.0)", "pydantic-settings (>=2.0.0)", "python-multipart (>=0.0.7)", "pyyaml (>=5.3.1)", "ujson (>=4.0.1,!=4.0.2,!=4.1.0,!=4.2.0,!=4.3.0,!=5.0.0,!=5.1.0)", "uvicorn[standard] (>=0.12.0)"]
+standard = ["email-validator (>=2.0.0)", "fastapi-cli[standard] (>=0.0.5)", "httpx (>=0.23.0)", "jinja2 (>=2.11.2)", "python-multipart (>=0.0.7)", "uvicorn[standard] (>=0.12.0)"]
+
+[[package]]
+name = "fire"
+version = "0.6.0"
+description = "A library for automatically generating command line interfaces."
+optional = false
+python-versions = "*"
+files = [
+ {file = "fire-0.6.0.tar.gz", hash = "sha256:54ec5b996ecdd3c0309c800324a0703d6da512241bc73b553db959d98de0aa66"},
+]
+
+[package.dependencies]
+six = "*"
+termcolor = "*"
+
+[[package]]
+name = "frozenlist"
+version = "1.4.1"
+description = "A list-like structure which implements collections.abc.MutableSequence"
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "frozenlist-1.4.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:f9aa1878d1083b276b0196f2dfbe00c9b7e752475ed3b682025ff20c1c1f51ac"},
+ {file = "frozenlist-1.4.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:29acab3f66f0f24674b7dc4736477bcd4bc3ad4b896f5f45379a67bce8b96868"},
+ {file = "frozenlist-1.4.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:74fb4bee6880b529a0c6560885fce4dc95936920f9f20f53d99a213f7bf66776"},
+ {file = "frozenlist-1.4.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:590344787a90ae57d62511dd7c736ed56b428f04cd8c161fcc5e7232c130c69a"},
+ {file = "frozenlist-1.4.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:068b63f23b17df8569b7fdca5517edef76171cf3897eb68beb01341131fbd2ad"},
+ {file = "frozenlist-1.4.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5c849d495bf5154cd8da18a9eb15db127d4dba2968d88831aff6f0331ea9bd4c"},
+ {file = "frozenlist-1.4.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9750cc7fe1ae3b1611bb8cfc3f9ec11d532244235d75901fb6b8e42ce9229dfe"},
+ {file = "frozenlist-1.4.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a9b2de4cf0cdd5bd2dee4c4f63a653c61d2408055ab77b151c1957f221cabf2a"},
+ {file = "frozenlist-1.4.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:0633c8d5337cb5c77acbccc6357ac49a1770b8c487e5b3505c57b949b4b82e98"},
+ {file = "frozenlist-1.4.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:27657df69e8801be6c3638054e202a135c7f299267f1a55ed3a598934f6c0d75"},
+ {file = "frozenlist-1.4.1-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:f9a3ea26252bd92f570600098783d1371354d89d5f6b7dfd87359d669f2109b5"},
+ {file = "frozenlist-1.4.1-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:4f57dab5fe3407b6c0c1cc907ac98e8a189f9e418f3b6e54d65a718aaafe3950"},
+ {file = "frozenlist-1.4.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:e02a0e11cf6597299b9f3bbd3f93d79217cb90cfd1411aec33848b13f5c656cc"},
+ {file = "frozenlist-1.4.1-cp310-cp310-win32.whl", hash = "sha256:a828c57f00f729620a442881cc60e57cfcec6842ba38e1b19fd3e47ac0ff8dc1"},
+ {file = "frozenlist-1.4.1-cp310-cp310-win_amd64.whl", hash = "sha256:f56e2333dda1fe0f909e7cc59f021eba0d2307bc6f012a1ccf2beca6ba362439"},
+ {file = "frozenlist-1.4.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:a0cb6f11204443f27a1628b0e460f37fb30f624be6051d490fa7d7e26d4af3d0"},
+ {file = "frozenlist-1.4.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b46c8ae3a8f1f41a0d2ef350c0b6e65822d80772fe46b653ab6b6274f61d4a49"},
+ {file = "frozenlist-1.4.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:fde5bd59ab5357e3853313127f4d3565fc7dad314a74d7b5d43c22c6a5ed2ced"},
+ {file = "frozenlist-1.4.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:722e1124aec435320ae01ee3ac7bec11a5d47f25d0ed6328f2273d287bc3abb0"},
+ {file = "frozenlist-1.4.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2471c201b70d58a0f0c1f91261542a03d9a5e088ed3dc6c160d614c01649c106"},
+ {file = "frozenlist-1.4.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c757a9dd70d72b076d6f68efdbb9bc943665ae954dad2801b874c8c69e185068"},
+ {file = "frozenlist-1.4.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f146e0911cb2f1da549fc58fc7bcd2b836a44b79ef871980d605ec392ff6b0d2"},
+ {file = "frozenlist-1.4.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4f9c515e7914626b2a2e1e311794b4c35720a0be87af52b79ff8e1429fc25f19"},
+ {file = "frozenlist-1.4.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:c302220494f5c1ebeb0912ea782bcd5e2f8308037b3c7553fad0e48ebad6ad82"},
+ {file = "frozenlist-1.4.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:442acde1e068288a4ba7acfe05f5f343e19fac87bfc96d89eb886b0363e977ec"},
+ {file = "frozenlist-1.4.1-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:1b280e6507ea8a4fa0c0a7150b4e526a8d113989e28eaaef946cc77ffd7efc0a"},
+ {file = "frozenlist-1.4.1-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:fe1a06da377e3a1062ae5fe0926e12b84eceb8a50b350ddca72dc85015873f74"},
+ {file = "frozenlist-1.4.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:db9e724bebd621d9beca794f2a4ff1d26eed5965b004a97f1f1685a173b869c2"},
+ {file = "frozenlist-1.4.1-cp311-cp311-win32.whl", hash = "sha256:e774d53b1a477a67838a904131c4b0eef6b3d8a651f8b138b04f748fccfefe17"},
+ {file = "frozenlist-1.4.1-cp311-cp311-win_amd64.whl", hash = "sha256:fb3c2db03683b5767dedb5769b8a40ebb47d6f7f45b1b3e3b4b51ec8ad9d9825"},
+ {file = "frozenlist-1.4.1-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:1979bc0aeb89b33b588c51c54ab0161791149f2461ea7c7c946d95d5f93b56ae"},
+ {file = "frozenlist-1.4.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:cc7b01b3754ea68a62bd77ce6020afaffb44a590c2289089289363472d13aedb"},
+ {file = "frozenlist-1.4.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:c9c92be9fd329ac801cc420e08452b70e7aeab94ea4233a4804f0915c14eba9b"},
+ {file = "frozenlist-1.4.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5c3894db91f5a489fc8fa6a9991820f368f0b3cbdb9cd8849547ccfab3392d86"},
+ {file = "frozenlist-1.4.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ba60bb19387e13597fb059f32cd4d59445d7b18b69a745b8f8e5db0346f33480"},
+ {file = "frozenlist-1.4.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8aefbba5f69d42246543407ed2461db31006b0f76c4e32dfd6f42215a2c41d09"},
+ {file = "frozenlist-1.4.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:780d3a35680ced9ce682fbcf4cb9c2bad3136eeff760ab33707b71db84664e3a"},
+ {file = "frozenlist-1.4.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9acbb16f06fe7f52f441bb6f413ebae6c37baa6ef9edd49cdd567216da8600cd"},
+ {file = "frozenlist-1.4.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:23b701e65c7b36e4bf15546a89279bd4d8675faabc287d06bbcfac7d3c33e1e6"},
+ {file = "frozenlist-1.4.1-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:3e0153a805a98f5ada7e09826255ba99fb4f7524bb81bf6b47fb702666484ae1"},
+ {file = "frozenlist-1.4.1-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:dd9b1baec094d91bf36ec729445f7769d0d0cf6b64d04d86e45baf89e2b9059b"},
+ {file = "frozenlist-1.4.1-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:1a4471094e146b6790f61b98616ab8e44f72661879cc63fa1049d13ef711e71e"},
+ {file = "frozenlist-1.4.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:5667ed53d68d91920defdf4035d1cdaa3c3121dc0b113255124bcfada1cfa1b8"},
+ {file = "frozenlist-1.4.1-cp312-cp312-win32.whl", hash = "sha256:beee944ae828747fd7cb216a70f120767fc9f4f00bacae8543c14a6831673f89"},
+ {file = "frozenlist-1.4.1-cp312-cp312-win_amd64.whl", hash = "sha256:64536573d0a2cb6e625cf309984e2d873979709f2cf22839bf2d61790b448ad5"},
+ {file = "frozenlist-1.4.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:20b51fa3f588ff2fe658663db52a41a4f7aa6c04f6201449c6c7c476bd255c0d"},
+ {file = "frozenlist-1.4.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:410478a0c562d1a5bcc2f7ea448359fcb050ed48b3c6f6f4f18c313a9bdb1826"},
+ {file = "frozenlist-1.4.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:c6321c9efe29975232da3bd0af0ad216800a47e93d763ce64f291917a381b8eb"},
+ {file = "frozenlist-1.4.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:48f6a4533887e189dae092f1cf981f2e3885175f7a0f33c91fb5b7b682b6bab6"},
+ {file = "frozenlist-1.4.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6eb73fa5426ea69ee0e012fb59cdc76a15b1283d6e32e4f8dc4482ec67d1194d"},
+ {file = "frozenlist-1.4.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fbeb989b5cc29e8daf7f976b421c220f1b8c731cbf22b9130d8815418ea45887"},
+ {file = "frozenlist-1.4.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:32453c1de775c889eb4e22f1197fe3bdfe457d16476ea407472b9442e6295f7a"},
+ {file = "frozenlist-1.4.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:693945278a31f2086d9bf3df0fe8254bbeaef1fe71e1351c3bd730aa7d31c41b"},
+ {file = "frozenlist-1.4.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:1d0ce09d36d53bbbe566fe296965b23b961764c0bcf3ce2fa45f463745c04701"},
+ {file = "frozenlist-1.4.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:3a670dc61eb0d0eb7080890c13de3066790f9049b47b0de04007090807c776b0"},
+ {file = "frozenlist-1.4.1-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:dca69045298ce5c11fd539682cff879cc1e664c245d1c64da929813e54241d11"},
+ {file = "frozenlist-1.4.1-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:a06339f38e9ed3a64e4c4e43aec7f59084033647f908e4259d279a52d3757d09"},
+ {file = "frozenlist-1.4.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:b7f2f9f912dca3934c1baec2e4585a674ef16fe00218d833856408c48d5beee7"},
+ {file = "frozenlist-1.4.1-cp38-cp38-win32.whl", hash = "sha256:e7004be74cbb7d9f34553a5ce5fb08be14fb33bc86f332fb71cbe5216362a497"},
+ {file = "frozenlist-1.4.1-cp38-cp38-win_amd64.whl", hash = "sha256:5a7d70357e7cee13f470c7883a063aae5fe209a493c57d86eb7f5a6f910fae09"},
+ {file = "frozenlist-1.4.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:bfa4a17e17ce9abf47a74ae02f32d014c5e9404b6d9ac7f729e01562bbee601e"},
+ {file = "frozenlist-1.4.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b7e3ed87d4138356775346e6845cccbe66cd9e207f3cd11d2f0b9fd13681359d"},
+ {file = "frozenlist-1.4.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c99169d4ff810155ca50b4da3b075cbde79752443117d89429595c2e8e37fed8"},
+ {file = "frozenlist-1.4.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:edb678da49d9f72c9f6c609fbe41a5dfb9a9282f9e6a2253d5a91e0fc382d7c0"},
+ {file = "frozenlist-1.4.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6db4667b187a6742b33afbbaf05a7bc551ffcf1ced0000a571aedbb4aa42fc7b"},
+ {file = "frozenlist-1.4.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:55fdc093b5a3cb41d420884cdaf37a1e74c3c37a31f46e66286d9145d2063bd0"},
+ {file = "frozenlist-1.4.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:82e8211d69a4f4bc360ea22cd6555f8e61a1bd211d1d5d39d3d228b48c83a897"},
+ {file = "frozenlist-1.4.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:89aa2c2eeb20957be2d950b85974b30a01a762f3308cd02bb15e1ad632e22dc7"},
+ {file = "frozenlist-1.4.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:9d3e0c25a2350080e9319724dede4f31f43a6c9779be48021a7f4ebde8b2d742"},
+ {file = "frozenlist-1.4.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:7268252af60904bf52c26173cbadc3a071cece75f873705419c8681f24d3edea"},
+ {file = "frozenlist-1.4.1-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:0c250a29735d4f15321007fb02865f0e6b6a41a6b88f1f523ca1596ab5f50bd5"},
+ {file = "frozenlist-1.4.1-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:96ec70beabbd3b10e8bfe52616a13561e58fe84c0101dd031dc78f250d5128b9"},
+ {file = "frozenlist-1.4.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:23b2d7679b73fe0e5a4560b672a39f98dfc6f60df63823b0a9970525325b95f6"},
+ {file = "frozenlist-1.4.1-cp39-cp39-win32.whl", hash = "sha256:a7496bfe1da7fb1a4e1cc23bb67c58fab69311cc7d32b5a99c2007b4b2a0e932"},
+ {file = "frozenlist-1.4.1-cp39-cp39-win_amd64.whl", hash = "sha256:e6a20a581f9ce92d389a8c7d7c3dd47c81fd5d6e655c8dddf341e14aa48659d0"},
+ {file = "frozenlist-1.4.1-py3-none-any.whl", hash = "sha256:04ced3e6a46b4cfffe20f9ae482818e34eba9b5fb0ce4056e4cc9b6e212d09b7"},
+ {file = "frozenlist-1.4.1.tar.gz", hash = "sha256:c037a86e8513059a2613aaba4d817bb90b9d9b6b69aace3ce9c877e8c8ed402b"},
+]
+
+[[package]]
+name = "geojson"
+version = "2.5.0"
+description = "Python bindings and utilities for GeoJSON"
+optional = false
+python-versions = "*"
+files = [
+ {file = "geojson-2.5.0-py2.py3-none-any.whl", hash = "sha256:ccbd13368dd728f4e4f13ffe6aaf725b6e802c692ba0dde628be475040c534ba"},
+ {file = "geojson-2.5.0.tar.gz", hash = "sha256:6e4bb7ace4226a45d9c8c8b1348b3fc43540658359f93c3f7e03efa9f15f658a"},
+]
+
+[[package]]
+name = "greenlet"
+version = "3.0.3"
+description = "Lightweight in-process concurrent programming"
+optional = false
+python-versions = ">=3.7"
+files = [
+ {file = "greenlet-3.0.3-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:9da2bd29ed9e4f15955dd1595ad7bc9320308a3b766ef7f837e23ad4b4aac31a"},
+ {file = "greenlet-3.0.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d353cadd6083fdb056bb46ed07e4340b0869c305c8ca54ef9da3421acbdf6881"},
+ {file = "greenlet-3.0.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:dca1e2f3ca00b84a396bc1bce13dd21f680f035314d2379c4160c98153b2059b"},
+ {file = "greenlet-3.0.3-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3ed7fb269f15dc662787f4119ec300ad0702fa1b19d2135a37c2c4de6fadfd4a"},
+ {file = "greenlet-3.0.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd4f49ae60e10adbc94b45c0b5e6a179acc1736cf7a90160b404076ee283cf83"},
+ {file = "greenlet-3.0.3-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:73a411ef564e0e097dbe7e866bb2dda0f027e072b04da387282b02c308807405"},
+ {file = "greenlet-3.0.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:7f362975f2d179f9e26928c5b517524e89dd48530a0202570d55ad6ca5d8a56f"},
+ {file = "greenlet-3.0.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:649dde7de1a5eceb258f9cb00bdf50e978c9db1b996964cd80703614c86495eb"},
+ {file = "greenlet-3.0.3-cp310-cp310-win_amd64.whl", hash = "sha256:68834da854554926fbedd38c76e60c4a2e3198c6fbed520b106a8986445caaf9"},
+ {file = "greenlet-3.0.3-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:b1b5667cced97081bf57b8fa1d6bfca67814b0afd38208d52538316e9422fc61"},
+ {file = "greenlet-3.0.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:52f59dd9c96ad2fc0d5724107444f76eb20aaccb675bf825df6435acb7703559"},
+ {file = "greenlet-3.0.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:afaff6cf5200befd5cec055b07d1c0a5a06c040fe5ad148abcd11ba6ab9b114e"},
+ {file = "greenlet-3.0.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fe754d231288e1e64323cfad462fcee8f0288654c10bdf4f603a39ed923bef33"},
+ {file = "greenlet-3.0.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2797aa5aedac23af156bbb5a6aa2cd3427ada2972c828244eb7d1b9255846379"},
+ {file = "greenlet-3.0.3-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b7f009caad047246ed379e1c4dbcb8b020f0a390667ea74d2387be2998f58a22"},
+ {file = "greenlet-3.0.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:c5e1536de2aad7bf62e27baf79225d0d64360d4168cf2e6becb91baf1ed074f3"},
+ {file = "greenlet-3.0.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:894393ce10ceac937e56ec00bb71c4c2f8209ad516e96033e4b3b1de270e200d"},
+ {file = "greenlet-3.0.3-cp311-cp311-win_amd64.whl", hash = "sha256:1ea188d4f49089fc6fb283845ab18a2518d279c7cd9da1065d7a84e991748728"},
+ {file = "greenlet-3.0.3-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:70fb482fdf2c707765ab5f0b6655e9cfcf3780d8d87355a063547b41177599be"},
+ {file = "greenlet-3.0.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d4d1ac74f5c0c0524e4a24335350edad7e5f03b9532da7ea4d3c54d527784f2e"},
+ {file = "greenlet-3.0.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:149e94a2dd82d19838fe4b2259f1b6b9957d5ba1b25640d2380bea9c5df37676"},
+ {file = "greenlet-3.0.3-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:15d79dd26056573940fcb8c7413d84118086f2ec1a8acdfa854631084393efcc"},
+ {file = "greenlet-3.0.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:881b7db1ebff4ba09aaaeae6aa491daeb226c8150fc20e836ad00041bcb11230"},
+ {file = "greenlet-3.0.3-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fcd2469d6a2cf298f198f0487e0a5b1a47a42ca0fa4dfd1b6862c999f018ebbf"},
+ {file = "greenlet-3.0.3-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:1f672519db1796ca0d8753f9e78ec02355e862d0998193038c7073045899f305"},
+ {file = "greenlet-3.0.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:2516a9957eed41dd8f1ec0c604f1cdc86758b587d964668b5b196a9db5bfcde6"},
+ {file = "greenlet-3.0.3-cp312-cp312-win_amd64.whl", hash = "sha256:bba5387a6975598857d86de9eac14210a49d554a77eb8261cc68b7d082f78ce2"},
+ {file = "greenlet-3.0.3-cp37-cp37m-macosx_11_0_universal2.whl", hash = "sha256:5b51e85cb5ceda94e79d019ed36b35386e8c37d22f07d6a751cb659b180d5274"},
+ {file = "greenlet-3.0.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:daf3cb43b7cf2ba96d614252ce1684c1bccee6b2183a01328c98d36fcd7d5cb0"},
+ {file = "greenlet-3.0.3-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:99bf650dc5d69546e076f413a87481ee1d2d09aaaaaca058c9251b6d8c14783f"},
+ {file = "greenlet-3.0.3-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2dd6e660effd852586b6a8478a1d244b8dc90ab5b1321751d2ea15deb49ed414"},
+ {file = "greenlet-3.0.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e3391d1e16e2a5a1507d83e4a8b100f4ee626e8eca43cf2cadb543de69827c4c"},
+ {file = "greenlet-3.0.3-cp37-cp37m-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e1f145462f1fa6e4a4ae3c0f782e580ce44d57c8f2c7aae1b6fa88c0b2efdb41"},
+ {file = "greenlet-3.0.3-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:1a7191e42732df52cb5f39d3527217e7ab73cae2cb3694d241e18f53d84ea9a7"},
+ {file = "greenlet-3.0.3-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:0448abc479fab28b00cb472d278828b3ccca164531daab4e970a0458786055d6"},
+ {file = "greenlet-3.0.3-cp37-cp37m-win32.whl", hash = "sha256:b542be2440edc2d48547b5923c408cbe0fc94afb9f18741faa6ae970dbcb9b6d"},
+ {file = "greenlet-3.0.3-cp37-cp37m-win_amd64.whl", hash = "sha256:01bc7ea167cf943b4c802068e178bbf70ae2e8c080467070d01bfa02f337ee67"},
+ {file = "greenlet-3.0.3-cp38-cp38-macosx_11_0_universal2.whl", hash = "sha256:1996cb9306c8595335bb157d133daf5cf9f693ef413e7673cb07e3e5871379ca"},
+ {file = "greenlet-3.0.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3ddc0f794e6ad661e321caa8d2f0a55ce01213c74722587256fb6566049a8b04"},
+ {file = "greenlet-3.0.3-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c9db1c18f0eaad2f804728c67d6c610778456e3e1cc4ab4bbd5eeb8e6053c6fc"},
+ {file = "greenlet-3.0.3-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7170375bcc99f1a2fbd9c306f5be8764eaf3ac6b5cb968862cad4c7057756506"},
+ {file = "greenlet-3.0.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6b66c9c1e7ccabad3a7d037b2bcb740122a7b17a53734b7d72a344ce39882a1b"},
+ {file = "greenlet-3.0.3-cp38-cp38-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:098d86f528c855ead3479afe84b49242e174ed262456c342d70fc7f972bc13c4"},
+ {file = "greenlet-3.0.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:81bb9c6d52e8321f09c3d165b2a78c680506d9af285bfccbad9fb7ad5a5da3e5"},
+ {file = "greenlet-3.0.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:fd096eb7ffef17c456cfa587523c5f92321ae02427ff955bebe9e3c63bc9f0da"},
+ {file = "greenlet-3.0.3-cp38-cp38-win32.whl", hash = "sha256:d46677c85c5ba00a9cb6f7a00b2bfa6f812192d2c9f7d9c4f6a55b60216712f3"},
+ {file = "greenlet-3.0.3-cp38-cp38-win_amd64.whl", hash = "sha256:419b386f84949bf0e7c73e6032e3457b82a787c1ab4a0e43732898a761cc9dbf"},
+ {file = "greenlet-3.0.3-cp39-cp39-macosx_11_0_universal2.whl", hash = "sha256:da70d4d51c8b306bb7a031d5cff6cc25ad253affe89b70352af5f1cb68e74b53"},
+ {file = "greenlet-3.0.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:086152f8fbc5955df88382e8a75984e2bb1c892ad2e3c80a2508954e52295257"},
+ {file = "greenlet-3.0.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d73a9fe764d77f87f8ec26a0c85144d6a951a6c438dfe50487df5595c6373eac"},
+ {file = "greenlet-3.0.3-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b7dcbe92cc99f08c8dd11f930de4d99ef756c3591a5377d1d9cd7dd5e896da71"},
+ {file = "greenlet-3.0.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1551a8195c0d4a68fac7a4325efac0d541b48def35feb49d803674ac32582f61"},
+ {file = "greenlet-3.0.3-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:64d7675ad83578e3fc149b617a444fab8efdafc9385471f868eb5ff83e446b8b"},
+ {file = "greenlet-3.0.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:b37eef18ea55f2ffd8f00ff8fe7c8d3818abd3e25fb73fae2ca3b672e333a7a6"},
+ {file = "greenlet-3.0.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:77457465d89b8263bca14759d7c1684df840b6811b2499838cc5b040a8b5b113"},
+ {file = "greenlet-3.0.3-cp39-cp39-win32.whl", hash = "sha256:57e8974f23e47dac22b83436bdcf23080ade568ce77df33159e019d161ce1d1e"},
+ {file = "greenlet-3.0.3-cp39-cp39-win_amd64.whl", hash = "sha256:c5ee858cfe08f34712f548c3c363e807e7186f03ad7a5039ebadb29e8c6be067"},
+ {file = "greenlet-3.0.3.tar.gz", hash = "sha256:43374442353259554ce33599da8b692d5aa96f8976d567d4badf263371fbe491"},
+]
+
+[package.extras]
+docs = ["Sphinx", "furo"]
+test = ["objgraph", "psutil"]
+
+[[package]]
+name = "h11"
+version = "0.14.0"
+description = "A pure-Python, bring-your-own-I/O implementation of HTTP/1.1"
+optional = false
+python-versions = ">=3.7"
+files = [
+ {file = "h11-0.14.0-py3-none-any.whl", hash = "sha256:e3fe4ac4b851c468cc8363d500db52c2ead036020723024a109d37346efaa761"},
+ {file = "h11-0.14.0.tar.gz", hash = "sha256:8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d"},
+]
+
+[[package]]
+name = "httpcore"
+version = "1.0.6"
+description = "A minimal low-level HTTP client."
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "httpcore-1.0.6-py3-none-any.whl", hash = "sha256:27b59625743b85577a8c0e10e55b50b5368a4f2cfe8cc7bcfa9cf00829c2682f"},
+ {file = "httpcore-1.0.6.tar.gz", hash = "sha256:73f6dbd6eb8c21bbf7ef8efad555481853f5f6acdeaff1edb0694289269ee17f"},
+]
+
+[package.dependencies]
+certifi = "*"
+h11 = ">=0.13,<0.15"
+
+[package.extras]
+asyncio = ["anyio (>=4.0,<5.0)"]
+http2 = ["h2 (>=3,<5)"]
+socks = ["socksio (==1.*)"]
+trio = ["trio (>=0.22.0,<1.0)"]
+
+[[package]]
+name = "httpx"
+version = "0.27.2"
+description = "The next generation HTTP client."
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "httpx-0.27.2-py3-none-any.whl", hash = "sha256:7bb2708e112d8fdd7829cd4243970f0c223274051cb35ee80c03301ee29a3df0"},
+ {file = "httpx-0.27.2.tar.gz", hash = "sha256:f7c2be1d2f3c3c3160d441802406b206c2b76f5947b11115e6df10c6c65e66c2"},
+]
+
+[package.dependencies]
+anyio = "*"
+certifi = "*"
+httpcore = "==1.*"
+idna = "*"
+sniffio = "*"
+
+[package.extras]
+brotli = ["brotli", "brotlicffi"]
+cli = ["click (==8.*)", "pygments (==2.*)", "rich (>=10,<14)"]
+http2 = ["h2 (>=3,<5)"]
+socks = ["socksio (==1.*)"]
+zstd = ["zstandard (>=0.18.0)"]
+
+[[package]]
+name = "idna"
+version = "3.10"
+description = "Internationalized Domain Names in Applications (IDNA)"
+optional = false
+python-versions = ">=3.6"
+files = [
+ {file = "idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3"},
+ {file = "idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9"},
+]
+
+[package.extras]
+all = ["flake8 (>=7.1.1)", "mypy (>=1.11.2)", "pytest (>=8.3.2)", "ruff (>=0.6.2)"]
+
+[[package]]
+name = "immutabledict"
+version = "4.2.0"
+description = "Immutable wrapper around dictionaries (a fork of frozendict)"
+optional = false
+python-versions = ">=3.8,<4.0"
+files = [
+ {file = "immutabledict-4.2.0-py3-none-any.whl", hash = "sha256:d728b2c2410d698d95e6200237feb50a695584d20289ad3379a439aa3d90baba"},
+ {file = "immutabledict-4.2.0.tar.gz", hash = "sha256:e003fd81aad2377a5a758bf7e1086cf3b70b63e9a5cc2f46bce8d0a2b4727c5f"},
+]
+
+[[package]]
+name = "importlab"
+version = "0.8.1"
+description = "A library to calculate python dependency graphs."
+optional = false
+python-versions = ">=3.6.0"
+files = [
+ {file = "importlab-0.8.1-py2.py3-none-any.whl", hash = "sha256:124cfa00e8a34fefe8aac1a5e94f56c781b178c9eb61a1d3f60f7e03b77338d3"},
+ {file = "importlab-0.8.1.tar.gz", hash = "sha256:b3893853b1f6eb027da509c3b40e6787e95dd66b4b66f1b3613aad77556e1465"},
+]
+
+[package.dependencies]
+networkx = ">=2"
+
+[[package]]
+name = "iniconfig"
+version = "2.0.0"
+description = "brain-dead simple config-ini parsing"
+optional = false
+python-versions = ">=3.7"
+files = [
+ {file = "iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374"},
+ {file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"},
+]
+
+[[package]]
+name = "jinja2"
+version = "3.1.4"
+description = "A very fast and expressive template engine."
+optional = false
+python-versions = ">=3.7"
+files = [
+ {file = "jinja2-3.1.4-py3-none-any.whl", hash = "sha256:bc5dd2abb727a5319567b7a813e6a2e7318c39f4f487cfe6c89c6f9c7d25197d"},
+ {file = "jinja2-3.1.4.tar.gz", hash = "sha256:4a3aee7acbbe7303aede8e9648d13b8bf88a429282aa6122a993f0ac800cb369"},
+]
+
+[package.dependencies]
+MarkupSafe = ">=2.0"
+
+[package.extras]
+i18n = ["Babel (>=2.7)"]
+
+[[package]]
+name = "jiter"
+version = "0.5.0"
+description = "Fast iterable JSON parser."
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "jiter-0.5.0-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:b599f4e89b3def9a94091e6ee52e1d7ad7bc33e238ebb9c4c63f211d74822c3f"},
+ {file = "jiter-0.5.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2a063f71c4b06225543dddadbe09d203dc0c95ba352d8b85f1221173480a71d5"},
+ {file = "jiter-0.5.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:acc0d5b8b3dd12e91dd184b87273f864b363dfabc90ef29a1092d269f18c7e28"},
+ {file = "jiter-0.5.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c22541f0b672f4d741382a97c65609332a783501551445ab2df137ada01e019e"},
+ {file = "jiter-0.5.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:63314832e302cc10d8dfbda0333a384bf4bcfce80d65fe99b0f3c0da8945a91a"},
+ {file = "jiter-0.5.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a25fbd8a5a58061e433d6fae6d5298777c0814a8bcefa1e5ecfff20c594bd749"},
+ {file = "jiter-0.5.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:503b2c27d87dfff5ab717a8200fbbcf4714516c9d85558048b1fc14d2de7d8dc"},
+ {file = "jiter-0.5.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6d1f3d27cce923713933a844872d213d244e09b53ec99b7a7fdf73d543529d6d"},
+ {file = "jiter-0.5.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:c95980207b3998f2c3b3098f357994d3fd7661121f30669ca7cb945f09510a87"},
+ {file = "jiter-0.5.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:afa66939d834b0ce063f57d9895e8036ffc41c4bd90e4a99631e5f261d9b518e"},
+ {file = "jiter-0.5.0-cp310-none-win32.whl", hash = "sha256:f16ca8f10e62f25fd81d5310e852df6649af17824146ca74647a018424ddeccf"},
+ {file = "jiter-0.5.0-cp310-none-win_amd64.whl", hash = "sha256:b2950e4798e82dd9176935ef6a55cf6a448b5c71515a556da3f6b811a7844f1e"},
+ {file = "jiter-0.5.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:d4c8e1ed0ef31ad29cae5ea16b9e41529eb50a7fba70600008e9f8de6376d553"},
+ {file = "jiter-0.5.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c6f16e21276074a12d8421692515b3fd6d2ea9c94fd0734c39a12960a20e85f3"},
+ {file = "jiter-0.5.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5280e68e7740c8c128d3ae5ab63335ce6d1fb6603d3b809637b11713487af9e6"},
+ {file = "jiter-0.5.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:583c57fc30cc1fec360e66323aadd7fc3edeec01289bfafc35d3b9dcb29495e4"},
+ {file = "jiter-0.5.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:26351cc14507bdf466b5f99aba3df3143a59da75799bf64a53a3ad3155ecded9"},
+ {file = "jiter-0.5.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4829df14d656b3fb87e50ae8b48253a8851c707da9f30d45aacab2aa2ba2d614"},
+ {file = "jiter-0.5.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a42a4bdcf7307b86cb863b2fb9bb55029b422d8f86276a50487982d99eed7c6e"},
+ {file = "jiter-0.5.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:04d461ad0aebf696f8da13c99bc1b3e06f66ecf6cfd56254cc402f6385231c06"},
+ {file = "jiter-0.5.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e6375923c5f19888c9226582a124b77b622f8fd0018b843c45eeb19d9701c403"},
+ {file = "jiter-0.5.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:2cec323a853c24fd0472517113768c92ae0be8f8c384ef4441d3632da8baa646"},
+ {file = "jiter-0.5.0-cp311-none-win32.whl", hash = "sha256:aa1db0967130b5cab63dfe4d6ff547c88b2a394c3410db64744d491df7f069bb"},
+ {file = "jiter-0.5.0-cp311-none-win_amd64.whl", hash = "sha256:aa9d2b85b2ed7dc7697597dcfaac66e63c1b3028652f751c81c65a9f220899ae"},
+ {file = "jiter-0.5.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:9f664e7351604f91dcdd557603c57fc0d551bc65cc0a732fdacbf73ad335049a"},
+ {file = "jiter-0.5.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:044f2f1148b5248ad2c8c3afb43430dccf676c5a5834d2f5089a4e6c5bbd64df"},
+ {file = "jiter-0.5.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:702e3520384c88b6e270c55c772d4bd6d7b150608dcc94dea87ceba1b6391248"},
+ {file = "jiter-0.5.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:528d742dcde73fad9d63e8242c036ab4a84389a56e04efd854062b660f559544"},
+ {file = "jiter-0.5.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8cf80e5fe6ab582c82f0c3331df27a7e1565e2dcf06265afd5173d809cdbf9ba"},
+ {file = "jiter-0.5.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:44dfc9ddfb9b51a5626568ef4e55ada462b7328996294fe4d36de02fce42721f"},
+ {file = "jiter-0.5.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c451f7922992751a936b96c5f5b9bb9312243d9b754c34b33d0cb72c84669f4e"},
+ {file = "jiter-0.5.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:308fce789a2f093dca1ff91ac391f11a9f99c35369117ad5a5c6c4903e1b3e3a"},
+ {file = "jiter-0.5.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:7f5ad4a7c6b0d90776fdefa294f662e8a86871e601309643de30bf94bb93a64e"},
+ {file = "jiter-0.5.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:ea189db75f8eca08807d02ae27929e890c7d47599ce3d0a6a5d41f2419ecf338"},
+ {file = "jiter-0.5.0-cp312-none-win32.whl", hash = "sha256:e3bbe3910c724b877846186c25fe3c802e105a2c1fc2b57d6688b9f8772026e4"},
+ {file = "jiter-0.5.0-cp312-none-win_amd64.whl", hash = "sha256:a586832f70c3f1481732919215f36d41c59ca080fa27a65cf23d9490e75b2ef5"},
+ {file = "jiter-0.5.0-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:f04bc2fc50dc77be9d10f73fcc4e39346402ffe21726ff41028f36e179b587e6"},
+ {file = "jiter-0.5.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:6f433a4169ad22fcb550b11179bb2b4fd405de9b982601914ef448390b2954f3"},
+ {file = "jiter-0.5.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ad4a6398c85d3a20067e6c69890ca01f68659da94d74c800298581724e426c7e"},
+ {file = "jiter-0.5.0-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:6baa88334e7af3f4d7a5c66c3a63808e5efbc3698a1c57626541ddd22f8e4fbf"},
+ {file = "jiter-0.5.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ece0a115c05efca597c6d938f88c9357c843f8c245dbbb53361a1c01afd7148"},
+ {file = "jiter-0.5.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:335942557162ad372cc367ffaf93217117401bf930483b4b3ebdb1223dbddfa7"},
+ {file = "jiter-0.5.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:649b0ee97a6e6da174bffcb3c8c051a5935d7d4f2f52ea1583b5b3e7822fbf14"},
+ {file = "jiter-0.5.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f4be354c5de82157886ca7f5925dbda369b77344b4b4adf2723079715f823989"},
+ {file = "jiter-0.5.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:5206144578831a6de278a38896864ded4ed96af66e1e63ec5dd7f4a1fce38a3a"},
+ {file = "jiter-0.5.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:8120c60f8121ac3d6f072b97ef0e71770cc72b3c23084c72c4189428b1b1d3b6"},
+ {file = "jiter-0.5.0-cp38-none-win32.whl", hash = "sha256:6f1223f88b6d76b519cb033a4d3687ca157c272ec5d6015c322fc5b3074d8a5e"},
+ {file = "jiter-0.5.0-cp38-none-win_amd64.whl", hash = "sha256:c59614b225d9f434ea8fc0d0bec51ef5fa8c83679afedc0433905994fb36d631"},
+ {file = "jiter-0.5.0-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:0af3838cfb7e6afee3f00dc66fa24695199e20ba87df26e942820345b0afc566"},
+ {file = "jiter-0.5.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:550b11d669600dbc342364fd4adbe987f14d0bbedaf06feb1b983383dcc4b961"},
+ {file = "jiter-0.5.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:489875bf1a0ffb3cb38a727b01e6673f0f2e395b2aad3c9387f94187cb214bbf"},
+ {file = "jiter-0.5.0-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b250ca2594f5599ca82ba7e68785a669b352156260c5362ea1b4e04a0f3e2389"},
+ {file = "jiter-0.5.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8ea18e01f785c6667ca15407cd6dabbe029d77474d53595a189bdc813347218e"},
+ {file = "jiter-0.5.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:462a52be85b53cd9bffd94e2d788a09984274fe6cebb893d6287e1c296d50653"},
+ {file = "jiter-0.5.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:92cc68b48d50fa472c79c93965e19bd48f40f207cb557a8346daa020d6ba973b"},
+ {file = "jiter-0.5.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1c834133e59a8521bc87ebcad773608c6fa6ab5c7a022df24a45030826cf10bc"},
+ {file = "jiter-0.5.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:ab3a71ff31cf2d45cb216dc37af522d335211f3a972d2fe14ea99073de6cb104"},
+ {file = "jiter-0.5.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:cccd3af9c48ac500c95e1bcbc498020c87e1781ff0345dd371462d67b76643eb"},
+ {file = "jiter-0.5.0-cp39-none-win32.whl", hash = "sha256:368084d8d5c4fc40ff7c3cc513c4f73e02c85f6009217922d0823a48ee7adf61"},
+ {file = "jiter-0.5.0-cp39-none-win_amd64.whl", hash = "sha256:ce03f7b4129eb72f1687fa11300fbf677b02990618428934662406d2a76742a1"},
+ {file = "jiter-0.5.0.tar.gz", hash = "sha256:1d916ba875bcab5c5f7d927df998c4cb694d27dceddf3392e58beaf10563368a"},
+]
+
+[[package]]
+name = "jsonpatch"
+version = "1.33"
+description = "Apply JSON-Patches (RFC 6902)"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, !=3.6.*"
+files = [
+ {file = "jsonpatch-1.33-py2.py3-none-any.whl", hash = "sha256:0ae28c0cd062bbd8b8ecc26d7d164fbbea9652a1a3693f3b956c1eae5145dade"},
+ {file = "jsonpatch-1.33.tar.gz", hash = "sha256:9fcd4009c41e6d12348b4a0ff2563ba56a2923a7dfee731d004e212e1ee5030c"},
+]
+
+[package.dependencies]
+jsonpointer = ">=1.9"
+
+[[package]]
+name = "jsonpointer"
+version = "3.0.0"
+description = "Identify specific nodes in a JSON document (RFC 6901)"
+optional = false
+python-versions = ">=3.7"
+files = [
+ {file = "jsonpointer-3.0.0-py2.py3-none-any.whl", hash = "sha256:13e088adc14fca8b6aa8177c044e12701e6ad4b28ff10e65f2267a90109c9942"},
+ {file = "jsonpointer-3.0.0.tar.gz", hash = "sha256:2b2d729f2091522d61c3b31f82e11870f60b68f43fbc705cb76bf4b832af59ef"},
+]
+
+[[package]]
+name = "langchain"
+version = "0.3.2"
+description = "Building applications with LLMs through composability"
+optional = false
+python-versions = "<4.0,>=3.9"
+files = [
+ {file = "langchain-0.3.2-py3-none-any.whl", hash = "sha256:cf005dcba132e46fb5e8d3dfaf7f8751bffd2d73e738c36be58f41edc7e3a4b8"},
+ {file = "langchain-0.3.2.tar.gz", hash = "sha256:dc330e6eb10d81d23ba0305d18358702c73cc59e95c410eca6c6779aab4ddc9b"},
+]
+
+[package.dependencies]
+aiohttp = ">=3.8.3,<4.0.0"
+langchain-core = ">=0.3.8,<0.4.0"
+langchain-text-splitters = ">=0.3.0,<0.4.0"
+langsmith = ">=0.1.17,<0.2.0"
+numpy = {version = ">=1.26.0,<2.0.0", markers = "python_version >= \"3.12\""}
+pydantic = ">=2.7.4,<3.0.0"
+PyYAML = ">=5.3"
+requests = ">=2,<3"
+SQLAlchemy = ">=1.4,<3"
+tenacity = ">=8.1.0,<8.4.0 || >8.4.0,<9.0.0"
+
+[[package]]
+name = "langchain-community"
+version = "0.3.1"
+description = "Community contributed LangChain integrations."
+optional = false
+python-versions = "<4.0,>=3.9"
+files = [
+ {file = "langchain_community-0.3.1-py3-none-any.whl", hash = "sha256:627eb26c16417764762ac47dd0d3005109f750f40242a88bb8f2958b798bcf90"},
+ {file = "langchain_community-0.3.1.tar.gz", hash = "sha256:c964a70628f266a61647e58f2f0434db633d4287a729f100a81dd8b0654aec93"},
+]
+
+[package.dependencies]
+aiohttp = ">=3.8.3,<4.0.0"
+dataclasses-json = ">=0.5.7,<0.7"
+langchain = ">=0.3.1,<0.4.0"
+langchain-core = ">=0.3.6,<0.4.0"
+langsmith = ">=0.1.125,<0.2.0"
+numpy = {version = ">=1.26.0,<2.0.0", markers = "python_version >= \"3.12\""}
+pydantic-settings = ">=2.4.0,<3.0.0"
+PyYAML = ">=5.3"
+requests = ">=2,<3"
+SQLAlchemy = ">=1.4,<3"
+tenacity = ">=8.1.0,<8.4.0 || >8.4.0,<9.0.0"
+
+[[package]]
+name = "langchain-core"
+version = "0.3.9"
+description = "Building applications with LLMs through composability"
+optional = false
+python-versions = "<4.0,>=3.9"
+files = [
+ {file = "langchain_core-0.3.9-py3-none-any.whl", hash = "sha256:26efa048666c7de56d0ab311de2c0778b04cbb2ffe95bff76139118f13815d01"},
+ {file = "langchain_core-0.3.9.tar.gz", hash = "sha256:7a6ac988d24d0ddce5874b28f538cd95f69f502b7f50581de22aca0dc58199a8"},
+]
+
+[package.dependencies]
+jsonpatch = ">=1.33,<2.0"
+langsmith = ">=0.1.125,<0.2.0"
+packaging = ">=23.2,<25"
+pydantic = [
+ {version = ">=2.5.2,<3.0.0", markers = "python_full_version < \"3.12.4\""},
+ {version = ">=2.7.4,<3.0.0", markers = "python_full_version >= \"3.12.4\""},
+]
+PyYAML = ">=5.3"
+tenacity = ">=8.1.0,<8.4.0 || >8.4.0,<9.0.0"
+typing-extensions = ">=4.7"
+
+[[package]]
+name = "langchain-text-splitters"
+version = "0.3.0"
+description = "LangChain text splitting utilities"
+optional = false
+python-versions = "<4.0,>=3.9"
+files = [
+ {file = "langchain_text_splitters-0.3.0-py3-none-any.whl", hash = "sha256:e84243e45eaff16e5b776cd9c81b6d07c55c010ebcb1965deb3d1792b7358e83"},
+ {file = "langchain_text_splitters-0.3.0.tar.gz", hash = "sha256:f9fe0b4d244db1d6de211e7343d4abc4aa90295aa22e1f0c89e51f33c55cd7ce"},
+]
+
+[package.dependencies]
+langchain-core = ">=0.3.0,<0.4.0"
+
+[[package]]
+name = "langsmith"
+version = "0.1.131"
+description = "Client library to connect to the LangSmith LLM Tracing and Evaluation Platform."
+optional = false
+python-versions = "<4.0,>=3.8.1"
+files = [
+ {file = "langsmith-0.1.131-py3-none-any.whl", hash = "sha256:80c106b1c42307195cc0bb3a596472c41ef91b79d15bcee9938307800336c563"},
+ {file = "langsmith-0.1.131.tar.gz", hash = "sha256:626101a3bf3ca481e5110d5155ace8aa066e4e9cc2fa7d96c8290ade0fbff797"},
+]
+
+[package.dependencies]
+httpx = ">=0.23.0,<1"
+orjson = ">=3.9.14,<4.0.0"
+pydantic = [
+ {version = ">=1,<3", markers = "python_full_version < \"3.12.4\""},
+ {version = ">=2.7.4,<3.0.0", markers = "python_full_version >= \"3.12.4\""},
+]
+requests = ">=2,<3"
+requests-toolbelt = ">=1.0.0,<2.0.0"
+
+[[package]]
+name = "libcst"
+version = "1.4.0"
+description = "A concrete syntax tree with AST-like properties for Python 3.0 through 3.12 programs."
+optional = false
+python-versions = ">=3.9"
+files = [
+ {file = "libcst-1.4.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:279b54568ea1f25add50ea4ba3d76d4f5835500c82f24d54daae4c5095b986aa"},
+ {file = "libcst-1.4.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:3401dae41fe24565387a65baee3887e31a44e3e58066b0250bc3f3ccf85b1b5a"},
+ {file = "libcst-1.4.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d1989fa12d3cd79118ebd29ebe2a6976d23d509b1a4226bc3d66fcb7cb50bd5d"},
+ {file = "libcst-1.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:addc6d585141a7677591868886f6bda0577529401a59d210aa8112114340e129"},
+ {file = "libcst-1.4.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:17d71001cb25e94cfe8c3d997095741a8c4aa7a6d234c0f972bc42818c88dfaf"},
+ {file = "libcst-1.4.0-cp310-cp310-win_amd64.whl", hash = "sha256:2d47de16d105e7dd5f4e01a428d9f4dc1e71efd74f79766daf54528ce37f23c3"},
+ {file = "libcst-1.4.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:e6227562fc5c9c1efd15dfe90b0971ae254461b8b6b23c1b617139b6003de1c1"},
+ {file = "libcst-1.4.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:3399e6c95df89921511b44d8c5bf6a75bcbc2d51f1f6429763609ba005c10f6b"},
+ {file = "libcst-1.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:48601e3e590e2d6a7ab8c019cf3937c70511a78d778ab3333764531253acdb33"},
+ {file = "libcst-1.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f42797309bb725f0f000510d5463175ccd7155395f09b5e7723971b0007a976d"},
+ {file = "libcst-1.4.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cb4e42ea107a37bff7f9fdbee9532d39f9ea77b89caa5c5112b37057b12e0838"},
+ {file = "libcst-1.4.0-cp311-cp311-win_amd64.whl", hash = "sha256:9d0cc3c5a2a51fa7e1d579a828c0a2e46b2170024fd8b1a0691c8a52f3abb2d9"},
+ {file = "libcst-1.4.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:7ece51d935bc9bf60b528473d2e5cc67cbb88e2f8146297e40ee2c7d80be6f13"},
+ {file = "libcst-1.4.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:81653dea1cdfa4c6520a7c5ffb95fa4d220cbd242e446c7a06d42d8636bfcbba"},
+ {file = "libcst-1.4.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f6abce0e66bba2babfadc20530fd3688f672d565674336595b4623cd800b91ef"},
+ {file = "libcst-1.4.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5da9d7dc83801aba3b8d911f82dc1a375db0d508318bad79d9fb245374afe068"},
+ {file = "libcst-1.4.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7c54aa66c86d8ece9c93156a2cf5ca512b0dce40142fe9e072c86af2bf892411"},
+ {file = "libcst-1.4.0-cp312-cp312-win_amd64.whl", hash = "sha256:62e2682ee1567b6a89c91853865372bf34f178bfd237853d84df2b87b446e654"},
+ {file = "libcst-1.4.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b8ecdba8934632b4dadacb666cd3816627a6ead831b806336972ccc4ba7ca0e9"},
+ {file = "libcst-1.4.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:8e54c777b8d27339b70f304d16fc8bc8674ef1bd34ed05ea874bf4921eb5a313"},
+ {file = "libcst-1.4.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:061d6855ef30efe38b8a292b7e5d57c8e820e71fc9ec9846678b60a934b53bbb"},
+ {file = "libcst-1.4.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bb0abf627ee14903d05d0ad9b2c6865f1b21eb4081e2c7bea1033f85db2b8bae"},
+ {file = "libcst-1.4.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d024f44059a853b4b852cfc04fec33e346659d851371e46fc8e7c19de24d3da9"},
+ {file = "libcst-1.4.0-cp39-cp39-win_amd64.whl", hash = "sha256:3c6a8faab9da48c5b371557d0999b4ca51f4f2cbd37ee8c2c4df0ac01c781465"},
+ {file = "libcst-1.4.0.tar.gz", hash = "sha256:449e0b16604f054fa7f27c3ffe86ea7ef6c409836fe68fe4e752a1894175db00"},
+]
+
+[package.dependencies]
+pyyaml = ">=5.2"
+
+[package.extras]
+dev = ["Sphinx (>=5.1.1)", "black (==23.12.1)", "build (>=0.10.0)", "coverage (>=4.5.4)", "fixit (==2.1.0)", "flake8 (==7.0.0)", "hypothesis (>=4.36.0)", "hypothesmith (>=0.0.4)", "jinja2 (==3.1.4)", "jupyter (>=1.0.0)", "maturin (>=0.8.3,<1.6)", "nbsphinx (>=0.4.2)", "prompt-toolkit (>=2.0.9)", "pyre-check (==0.9.18)", "setuptools-rust (>=1.5.2)", "setuptools-scm (>=6.0.1)", "slotscheck (>=0.7.1)", "sphinx-rtd-theme (>=0.4.3)", "ufmt (==2.6.0)", "usort (==1.0.8.post1)"]
+
+[[package]]
+name = "markupsafe"
+version = "2.1.5"
+description = "Safely add untrusted strings to HTML/XML markup."
+optional = false
+python-versions = ">=3.7"
+files = [
+ {file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a17a92de5231666cfbe003f0e4b9b3a7ae3afb1ec2845aadc2bacc93ff85febc"},
+ {file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:72b6be590cc35924b02c78ef34b467da4ba07e4e0f0454a2c5907f473fc50ce5"},
+ {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e61659ba32cf2cf1481e575d0462554625196a1f2fc06a1c777d3f48e8865d46"},
+ {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2174c595a0d73a3080ca3257b40096db99799265e1c27cc5a610743acd86d62f"},
+ {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ae2ad8ae6ebee9d2d94b17fb62763125f3f374c25618198f40cbb8b525411900"},
+ {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:075202fa5b72c86ad32dc7d0b56024ebdbcf2048c0ba09f1cde31bfdd57bcfff"},
+ {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:598e3276b64aff0e7b3451b72e94fa3c238d452e7ddcd893c3ab324717456bad"},
+ {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fce659a462a1be54d2ffcacea5e3ba2d74daa74f30f5f143fe0c58636e355fdd"},
+ {file = "MarkupSafe-2.1.5-cp310-cp310-win32.whl", hash = "sha256:d9fad5155d72433c921b782e58892377c44bd6252b5af2f67f16b194987338a4"},
+ {file = "MarkupSafe-2.1.5-cp310-cp310-win_amd64.whl", hash = "sha256:bf50cd79a75d181c9181df03572cdce0fbb75cc353bc350712073108cba98de5"},
+ {file = "MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:629ddd2ca402ae6dbedfceeba9c46d5f7b2a61d9749597d4307f943ef198fc1f"},
+ {file = "MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:5b7b716f97b52c5a14bffdf688f971b2d5ef4029127f1ad7a513973cfd818df2"},
+ {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6ec585f69cec0aa07d945b20805be741395e28ac1627333b1c5b0105962ffced"},
+ {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b91c037585eba9095565a3556f611e3cbfaa42ca1e865f7b8015fe5c7336d5a5"},
+ {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7502934a33b54030eaf1194c21c692a534196063db72176b0c4028e140f8f32c"},
+ {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:0e397ac966fdf721b2c528cf028494e86172b4feba51d65f81ffd65c63798f3f"},
+ {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:c061bb86a71b42465156a3ee7bd58c8c2ceacdbeb95d05a99893e08b8467359a"},
+ {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:3a57fdd7ce31c7ff06cdfbf31dafa96cc533c21e443d57f5b1ecc6cdc668ec7f"},
+ {file = "MarkupSafe-2.1.5-cp311-cp311-win32.whl", hash = "sha256:397081c1a0bfb5124355710fe79478cdbeb39626492b15d399526ae53422b906"},
+ {file = "MarkupSafe-2.1.5-cp311-cp311-win_amd64.whl", hash = "sha256:2b7c57a4dfc4f16f7142221afe5ba4e093e09e728ca65c51f5620c9aaeb9a617"},
+ {file = "MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:8dec4936e9c3100156f8a2dc89c4b88d5c435175ff03413b443469c7c8c5f4d1"},
+ {file = "MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:3c6b973f22eb18a789b1460b4b91bf04ae3f0c4234a0a6aa6b0a92f6f7b951d4"},
+ {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ac07bad82163452a6884fe8fa0963fb98c2346ba78d779ec06bd7a6262132aee"},
+ {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f5dfb42c4604dddc8e4305050aa6deb084540643ed5804d7455b5df8fe16f5e5"},
+ {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ea3d8a3d18833cf4304cd2fc9cbb1efe188ca9b5efef2bdac7adc20594a0e46b"},
+ {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d050b3361367a06d752db6ead6e7edeb0009be66bc3bae0ee9d97fb326badc2a"},
+ {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:bec0a414d016ac1a18862a519e54b2fd0fc8bbfd6890376898a6c0891dd82e9f"},
+ {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:58c98fee265677f63a4385256a6d7683ab1832f3ddd1e66fe948d5880c21a169"},
+ {file = "MarkupSafe-2.1.5-cp312-cp312-win32.whl", hash = "sha256:8590b4ae07a35970728874632fed7bd57b26b0102df2d2b233b6d9d82f6c62ad"},
+ {file = "MarkupSafe-2.1.5-cp312-cp312-win_amd64.whl", hash = "sha256:823b65d8706e32ad2df51ed89496147a42a2a6e01c13cfb6ffb8b1e92bc910bb"},
+ {file = "MarkupSafe-2.1.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:c8b29db45f8fe46ad280a7294f5c3ec36dbac9491f2d1c17345be8e69cc5928f"},
+ {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ec6a563cff360b50eed26f13adc43e61bc0c04d94b8be985e6fb24b81f6dcfdf"},
+ {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a549b9c31bec33820e885335b451286e2969a2d9e24879f83fe904a5ce59d70a"},
+ {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4f11aa001c540f62c6166c7726f71f7573b52c68c31f014c25cc7901deea0b52"},
+ {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:7b2e5a267c855eea6b4283940daa6e88a285f5f2a67f2220203786dfa59b37e9"},
+ {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:2d2d793e36e230fd32babe143b04cec8a8b3eb8a3122d2aceb4a371e6b09b8df"},
+ {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:ce409136744f6521e39fd8e2a24c53fa18ad67aa5bc7c2cf83645cce5b5c4e50"},
+ {file = "MarkupSafe-2.1.5-cp37-cp37m-win32.whl", hash = "sha256:4096e9de5c6fdf43fb4f04c26fb114f61ef0bf2e5604b6ee3019d51b69e8c371"},
+ {file = "MarkupSafe-2.1.5-cp37-cp37m-win_amd64.whl", hash = "sha256:4275d846e41ecefa46e2015117a9f491e57a71ddd59bbead77e904dc02b1bed2"},
+ {file = "MarkupSafe-2.1.5-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:656f7526c69fac7f600bd1f400991cc282b417d17539a1b228617081106feb4a"},
+ {file = "MarkupSafe-2.1.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:97cafb1f3cbcd3fd2b6fbfb99ae11cdb14deea0736fc2b0952ee177f2b813a46"},
+ {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f3fbcb7ef1f16e48246f704ab79d79da8a46891e2da03f8783a5b6fa41a9532"},
+ {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fa9db3f79de01457b03d4f01b34cf91bc0048eb2c3846ff26f66687c2f6d16ab"},
+ {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ffee1f21e5ef0d712f9033568f8344d5da8cc2869dbd08d87c84656e6a2d2f68"},
+ {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:5dedb4db619ba5a2787a94d877bc8ffc0566f92a01c0ef214865e54ecc9ee5e0"},
+ {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:30b600cf0a7ac9234b2638fbc0fb6158ba5bdcdf46aeb631ead21248b9affbc4"},
+ {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:8dd717634f5a044f860435c1d8c16a270ddf0ef8588d4887037c5028b859b0c3"},
+ {file = "MarkupSafe-2.1.5-cp38-cp38-win32.whl", hash = "sha256:daa4ee5a243f0f20d528d939d06670a298dd39b1ad5f8a72a4275124a7819eff"},
+ {file = "MarkupSafe-2.1.5-cp38-cp38-win_amd64.whl", hash = "sha256:619bc166c4f2de5caa5a633b8b7326fbe98e0ccbfacabd87268a2b15ff73a029"},
+ {file = "MarkupSafe-2.1.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:7a68b554d356a91cce1236aa7682dc01df0edba8d043fd1ce607c49dd3c1edcf"},
+ {file = "MarkupSafe-2.1.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:db0b55e0f3cc0be60c1f19efdde9a637c32740486004f20d1cff53c3c0ece4d2"},
+ {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3e53af139f8579a6d5f7b76549125f0d94d7e630761a2111bc431fd820e163b8"},
+ {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:17b950fccb810b3293638215058e432159d2b71005c74371d784862b7e4683f3"},
+ {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4c31f53cdae6ecfa91a77820e8b151dba54ab528ba65dfd235c80b086d68a465"},
+ {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:bff1b4290a66b490a2f4719358c0cdcd9bafb6b8f061e45c7a2460866bf50c2e"},
+ {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:bc1667f8b83f48511b94671e0e441401371dfd0f0a795c7daa4a3cd1dde55bea"},
+ {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5049256f536511ee3f7e1b3f87d1d1209d327e818e6ae1365e8653d7e3abb6a6"},
+ {file = "MarkupSafe-2.1.5-cp39-cp39-win32.whl", hash = "sha256:00e046b6dd71aa03a41079792f8473dc494d564611a8f89bbbd7cb93295ebdcf"},
+ {file = "MarkupSafe-2.1.5-cp39-cp39-win_amd64.whl", hash = "sha256:fa173ec60341d6bb97a89f5ea19c85c5643c1e7dedebc22f5181eb73573142c5"},
+ {file = "MarkupSafe-2.1.5.tar.gz", hash = "sha256:d283d37a890ba4c1ae73ffadf8046435c76e7bc2247bbb63c00bd1a709c6544b"},
+]
+
+[[package]]
+name = "marshmallow"
+version = "3.22.0"
+description = "A lightweight library for converting complex datatypes to and from native Python datatypes."
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "marshmallow-3.22.0-py3-none-any.whl", hash = "sha256:71a2dce49ef901c3f97ed296ae5051135fd3febd2bf43afe0ae9a82143a494d9"},
+ {file = "marshmallow-3.22.0.tar.gz", hash = "sha256:4972f529104a220bb8637d595aa4c9762afbe7f7a77d82dc58c1615d70c5823e"},
+]
+
+[package.dependencies]
+packaging = ">=17.0"
+
+[package.extras]
+dev = ["marshmallow[tests]", "pre-commit (>=3.5,<4.0)", "tox"]
+docs = ["alabaster (==1.0.0)", "autodocsumm (==0.2.13)", "sphinx (==8.0.2)", "sphinx-issues (==4.1.0)", "sphinx-version-warning (==1.1.2)"]
+tests = ["pytest", "pytz", "simplejson"]
+
+[[package]]
+name = "msgspec"
+version = "0.18.6"
+description = "A fast serialization and validation library, with builtin support for JSON, MessagePack, YAML, and TOML."
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "msgspec-0.18.6-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:77f30b0234eceeff0f651119b9821ce80949b4d667ad38f3bfed0d0ebf9d6d8f"},
+ {file = "msgspec-0.18.6-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:1a76b60e501b3932782a9da039bd1cd552b7d8dec54ce38332b87136c64852dd"},
+ {file = "msgspec-0.18.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:06acbd6edf175bee0e36295d6b0302c6de3aaf61246b46f9549ca0041a9d7177"},
+ {file = "msgspec-0.18.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:40a4df891676d9c28a67c2cc39947c33de516335680d1316a89e8f7218660410"},
+ {file = "msgspec-0.18.6-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:a6896f4cd5b4b7d688018805520769a8446df911eb93b421c6c68155cdf9dd5a"},
+ {file = "msgspec-0.18.6-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:3ac4dd63fd5309dd42a8c8c36c1563531069152be7819518be0a9d03be9788e4"},
+ {file = "msgspec-0.18.6-cp310-cp310-win_amd64.whl", hash = "sha256:fda4c357145cf0b760000c4ad597e19b53adf01382b711f281720a10a0fe72b7"},
+ {file = "msgspec-0.18.6-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:e77e56ffe2701e83a96e35770c6adb655ffc074d530018d1b584a8e635b4f36f"},
+ {file = "msgspec-0.18.6-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d5351afb216b743df4b6b147691523697ff3a2fc5f3d54f771e91219f5c23aaa"},
+ {file = "msgspec-0.18.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c3232fabacef86fe8323cecbe99abbc5c02f7698e3f5f2e248e3480b66a3596b"},
+ {file = "msgspec-0.18.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e3b524df6ea9998bbc99ea6ee4d0276a101bcc1aa8d14887bb823914d9f60d07"},
+ {file = "msgspec-0.18.6-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:37f67c1d81272131895bb20d388dd8d341390acd0e192a55ab02d4d6468b434c"},
+ {file = "msgspec-0.18.6-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:d0feb7a03d971c1c0353de1a8fe30bb6579c2dc5ccf29b5f7c7ab01172010492"},
+ {file = "msgspec-0.18.6-cp311-cp311-win_amd64.whl", hash = "sha256:41cf758d3f40428c235c0f27bc6f322d43063bc32da7b9643e3f805c21ed57b4"},
+ {file = "msgspec-0.18.6-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:d86f5071fe33e19500920333c11e2267a31942d18fed4d9de5bc2fbab267d28c"},
+ {file = "msgspec-0.18.6-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce13981bfa06f5eb126a3a5a38b1976bddb49a36e4f46d8e6edecf33ccf11df1"},
+ {file = "msgspec-0.18.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e97dec6932ad5e3ee1e3c14718638ba333befc45e0661caa57033cd4cc489466"},
+ {file = "msgspec-0.18.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ad237100393f637b297926cae1868b0d500f764ccd2f0623a380e2bcfb2809ca"},
+ {file = "msgspec-0.18.6-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:db1d8626748fa5d29bbd15da58b2d73af25b10aa98abf85aab8028119188ed57"},
+ {file = "msgspec-0.18.6-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:d70cb3d00d9f4de14d0b31d38dfe60c88ae16f3182988246a9861259c6722af6"},
+ {file = "msgspec-0.18.6-cp312-cp312-win_amd64.whl", hash = "sha256:1003c20bfe9c6114cc16ea5db9c5466e49fae3d7f5e2e59cb70693190ad34da0"},
+ {file = "msgspec-0.18.6-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:f7d9faed6dfff654a9ca7d9b0068456517f63dbc3aa704a527f493b9200b210a"},
+ {file = "msgspec-0.18.6-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:9da21f804c1a1471f26d32b5d9bc0480450ea77fbb8d9db431463ab64aaac2cf"},
+ {file = "msgspec-0.18.6-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:46eb2f6b22b0e61c137e65795b97dc515860bf6ec761d8fb65fdb62aa094ba61"},
+ {file = "msgspec-0.18.6-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c8355b55c80ac3e04885d72db515817d9fbb0def3bab936bba104e99ad22cf46"},
+ {file = "msgspec-0.18.6-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:9080eb12b8f59e177bd1eb5c21e24dd2ba2fa88a1dbc9a98e05ad7779b54c681"},
+ {file = "msgspec-0.18.6-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:cc001cf39becf8d2dcd3f413a4797c55009b3a3cdbf78a8bf5a7ca8fdb76032c"},
+ {file = "msgspec-0.18.6-cp38-cp38-win_amd64.whl", hash = "sha256:fac5834e14ac4da1fca373753e0c4ec9c8069d1fe5f534fa5208453b6065d5be"},
+ {file = "msgspec-0.18.6-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:974d3520fcc6b824a6dedbdf2b411df31a73e6e7414301abac62e6b8d03791b4"},
+ {file = "msgspec-0.18.6-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:fd62e5818731a66aaa8e9b0a1e5543dc979a46278da01e85c3c9a1a4f047ef7e"},
+ {file = "msgspec-0.18.6-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7481355a1adcf1f08dedd9311193c674ffb8bf7b79314b4314752b89a2cf7f1c"},
+ {file = "msgspec-0.18.6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6aa85198f8f154cf35d6f979998f6dadd3dc46a8a8c714632f53f5d65b315c07"},
+ {file = "msgspec-0.18.6-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0e24539b25c85c8f0597274f11061c102ad6b0c56af053373ba4629772b407be"},
+ {file = "msgspec-0.18.6-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:c61ee4d3be03ea9cd089f7c8e36158786cd06e51fbb62529276452bbf2d52ece"},
+ {file = "msgspec-0.18.6-cp39-cp39-win_amd64.whl", hash = "sha256:b5c390b0b0b7da879520d4ae26044d74aeee5144f83087eb7842ba59c02bc090"},
+ {file = "msgspec-0.18.6.tar.gz", hash = "sha256:a59fc3b4fcdb972d09138cb516dbde600c99d07c38fd9372a6ef500d2d031b4e"},
+]
+
+[package.extras]
+dev = ["attrs", "coverage", "furo", "gcovr", "ipython", "msgpack", "mypy", "pre-commit", "pyright", "pytest", "pyyaml", "sphinx", "sphinx-copybutton", "sphinx-design", "tomli", "tomli-w"]
+doc = ["furo", "ipython", "sphinx", "sphinx-copybutton", "sphinx-design"]
+test = ["attrs", "msgpack", "mypy", "pyright", "pytest", "pyyaml", "tomli", "tomli-w"]
+toml = ["tomli", "tomli-w"]
+yaml = ["pyyaml"]
+
+[[package]]
+name = "multidict"
+version = "6.1.0"
+description = "multidict implementation"
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "multidict-6.1.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:3380252550e372e8511d49481bd836264c009adb826b23fefcc5dd3c69692f60"},
+ {file = "multidict-6.1.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:99f826cbf970077383d7de805c0681799491cb939c25450b9b5b3ced03ca99f1"},
+ {file = "multidict-6.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a114d03b938376557927ab23f1e950827c3b893ccb94b62fd95d430fd0e5cf53"},
+ {file = "multidict-6.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b1c416351ee6271b2f49b56ad7f308072f6f44b37118d69c2cad94f3fa8a40d5"},
+ {file = "multidict-6.1.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6b5d83030255983181005e6cfbac1617ce9746b219bc2aad52201ad121226581"},
+ {file = "multidict-6.1.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3e97b5e938051226dc025ec80980c285b053ffb1e25a3db2a3aa3bc046bf7f56"},
+ {file = "multidict-6.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d618649d4e70ac6efcbba75be98b26ef5078faad23592f9b51ca492953012429"},
+ {file = "multidict-6.1.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:10524ebd769727ac77ef2278390fb0068d83f3acb7773792a5080f2b0abf7748"},
+ {file = "multidict-6.1.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:ff3827aef427c89a25cc96ded1759271a93603aba9fb977a6d264648ebf989db"},
+ {file = "multidict-6.1.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:06809f4f0f7ab7ea2cabf9caca7d79c22c0758b58a71f9d32943ae13c7ace056"},
+ {file = "multidict-6.1.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:f179dee3b863ab1c59580ff60f9d99f632f34ccb38bf67a33ec6b3ecadd0fd76"},
+ {file = "multidict-6.1.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:aaed8b0562be4a0876ee3b6946f6869b7bcdb571a5d1496683505944e268b160"},
+ {file = "multidict-6.1.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:3c8b88a2ccf5493b6c8da9076fb151ba106960a2df90c2633f342f120751a9e7"},
+ {file = "multidict-6.1.0-cp310-cp310-win32.whl", hash = "sha256:4a9cb68166a34117d6646c0023c7b759bf197bee5ad4272f420a0141d7eb03a0"},
+ {file = "multidict-6.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:20b9b5fbe0b88d0bdef2012ef7dee867f874b72528cf1d08f1d59b0e3850129d"},
+ {file = "multidict-6.1.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:3efe2c2cb5763f2f1b275ad2bf7a287d3f7ebbef35648a9726e3b69284a4f3d6"},
+ {file = "multidict-6.1.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c7053d3b0353a8b9de430a4f4b4268ac9a4fb3481af37dfe49825bf45ca24156"},
+ {file = "multidict-6.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:27e5fc84ccef8dfaabb09d82b7d179c7cf1a3fbc8a966f8274fcb4ab2eb4cadb"},
+ {file = "multidict-6.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0e2b90b43e696f25c62656389d32236e049568b39320e2735d51f08fd362761b"},
+ {file = "multidict-6.1.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d83a047959d38a7ff552ff94be767b7fd79b831ad1cd9920662db05fec24fe72"},
+ {file = "multidict-6.1.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d1a9dd711d0877a1ece3d2e4fea11a8e75741ca21954c919406b44e7cf971304"},
+ {file = "multidict-6.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec2abea24d98246b94913b76a125e855eb5c434f7c46546046372fe60f666351"},
+ {file = "multidict-6.1.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4867cafcbc6585e4b678876c489b9273b13e9fff9f6d6d66add5e15d11d926cb"},
+ {file = "multidict-6.1.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:5b48204e8d955c47c55b72779802b219a39acc3ee3d0116d5080c388970b76e3"},
+ {file = "multidict-6.1.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:d8fff389528cad1618fb4b26b95550327495462cd745d879a8c7c2115248e399"},
+ {file = "multidict-6.1.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:a7a9541cd308eed5e30318430a9c74d2132e9a8cb46b901326272d780bf2d423"},
+ {file = "multidict-6.1.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:da1758c76f50c39a2efd5e9859ce7d776317eb1dd34317c8152ac9251fc574a3"},
+ {file = "multidict-6.1.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:c943a53e9186688b45b323602298ab727d8865d8c9ee0b17f8d62d14b56f0753"},
+ {file = "multidict-6.1.0-cp311-cp311-win32.whl", hash = "sha256:90f8717cb649eea3504091e640a1b8568faad18bd4b9fcd692853a04475a4b80"},
+ {file = "multidict-6.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:82176036e65644a6cc5bd619f65f6f19781e8ec2e5330f51aa9ada7504cc1926"},
+ {file = "multidict-6.1.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:b04772ed465fa3cc947db808fa306d79b43e896beb677a56fb2347ca1a49c1fa"},
+ {file = "multidict-6.1.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:6180c0ae073bddeb5a97a38c03f30c233e0a4d39cd86166251617d1bbd0af436"},
+ {file = "multidict-6.1.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:071120490b47aa997cca00666923a83f02c7fbb44f71cf7f136df753f7fa8761"},
+ {file = "multidict-6.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:50b3a2710631848991d0bf7de077502e8994c804bb805aeb2925a981de58ec2e"},
+ {file = "multidict-6.1.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b58c621844d55e71c1b7f7c498ce5aa6985d743a1a59034c57a905b3f153c1ef"},
+ {file = "multidict-6.1.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:55b6d90641869892caa9ca42ff913f7ff1c5ece06474fbd32fb2cf6834726c95"},
+ {file = "multidict-6.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4b820514bfc0b98a30e3d85462084779900347e4d49267f747ff54060cc33925"},
+ {file = "multidict-6.1.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:10a9b09aba0c5b48c53761b7c720aaaf7cf236d5fe394cd399c7ba662d5f9966"},
+ {file = "multidict-6.1.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:1e16bf3e5fc9f44632affb159d30a437bfe286ce9e02754759be5536b169b305"},
+ {file = "multidict-6.1.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:76f364861c3bfc98cbbcbd402d83454ed9e01a5224bb3a28bf70002a230f73e2"},
+ {file = "multidict-6.1.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:820c661588bd01a0aa62a1283f20d2be4281b086f80dad9e955e690c75fb54a2"},
+ {file = "multidict-6.1.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:0e5f362e895bc5b9e67fe6e4ded2492d8124bdf817827f33c5b46c2fe3ffaca6"},
+ {file = "multidict-6.1.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:3ec660d19bbc671e3a6443325f07263be452c453ac9e512f5eb935e7d4ac28b3"},
+ {file = "multidict-6.1.0-cp312-cp312-win32.whl", hash = "sha256:58130ecf8f7b8112cdb841486404f1282b9c86ccb30d3519faf301b2e5659133"},
+ {file = "multidict-6.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:188215fc0aafb8e03341995e7c4797860181562380f81ed0a87ff455b70bf1f1"},
+ {file = "multidict-6.1.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:d569388c381b24671589335a3be6e1d45546c2988c2ebe30fdcada8457a31008"},
+ {file = "multidict-6.1.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:052e10d2d37810b99cc170b785945421141bf7bb7d2f8799d431e7db229c385f"},
+ {file = "multidict-6.1.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f90c822a402cb865e396a504f9fc8173ef34212a342d92e362ca498cad308e28"},
+ {file = "multidict-6.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b225d95519a5bf73860323e633a664b0d85ad3d5bede6d30d95b35d4dfe8805b"},
+ {file = "multidict-6.1.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:23bfd518810af7de1116313ebd9092cb9aa629beb12f6ed631ad53356ed6b86c"},
+ {file = "multidict-6.1.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5c09fcfdccdd0b57867577b719c69e347a436b86cd83747f179dbf0cc0d4c1f3"},
+ {file = "multidict-6.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bf6bea52ec97e95560af5ae576bdac3aa3aae0b6758c6efa115236d9e07dae44"},
+ {file = "multidict-6.1.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:57feec87371dbb3520da6192213c7d6fc892d5589a93db548331954de8248fd2"},
+ {file = "multidict-6.1.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:0c3f390dc53279cbc8ba976e5f8035eab997829066756d811616b652b00a23a3"},
+ {file = "multidict-6.1.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:59bfeae4b25ec05b34f1956eaa1cb38032282cd4dfabc5056d0a1ec4d696d3aa"},
+ {file = "multidict-6.1.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:b2f59caeaf7632cc633b5cf6fc449372b83bbdf0da4ae04d5be36118e46cc0aa"},
+ {file = "multidict-6.1.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:37bb93b2178e02b7b618893990941900fd25b6b9ac0fa49931a40aecdf083fe4"},
+ {file = "multidict-6.1.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4e9f48f58c2c523d5a06faea47866cd35b32655c46b443f163d08c6d0ddb17d6"},
+ {file = "multidict-6.1.0-cp313-cp313-win32.whl", hash = "sha256:3a37ffb35399029b45c6cc33640a92bef403c9fd388acce75cdc88f58bd19a81"},
+ {file = "multidict-6.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:e9aa71e15d9d9beaad2c6b9319edcdc0a49a43ef5c0a4c8265ca9ee7d6c67774"},
+ {file = "multidict-6.1.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:db7457bac39421addd0c8449933ac32d8042aae84a14911a757ae6ca3eef1392"},
+ {file = "multidict-6.1.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:d094ddec350a2fb899fec68d8353c78233debde9b7d8b4beeafa70825f1c281a"},
+ {file = "multidict-6.1.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:5845c1fd4866bb5dd3125d89b90e57ed3138241540897de748cdf19de8a2fca2"},
+ {file = "multidict-6.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9079dfc6a70abe341f521f78405b8949f96db48da98aeb43f9907f342f627cdc"},
+ {file = "multidict-6.1.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3914f5aaa0f36d5d60e8ece6a308ee1c9784cd75ec8151062614657a114c4478"},
+ {file = "multidict-6.1.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c08be4f460903e5a9d0f76818db3250f12e9c344e79314d1d570fc69d7f4eae4"},
+ {file = "multidict-6.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d093be959277cb7dee84b801eb1af388b6ad3ca6a6b6bf1ed7585895789d027d"},
+ {file = "multidict-6.1.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3702ea6872c5a2a4eeefa6ffd36b042e9773f05b1f37ae3ef7264b1163c2dcf6"},
+ {file = "multidict-6.1.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:2090f6a85cafc5b2db085124d752757c9d251548cedabe9bd31afe6363e0aff2"},
+ {file = "multidict-6.1.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:f67f217af4b1ff66c68a87318012de788dd95fcfeb24cc889011f4e1c7454dfd"},
+ {file = "multidict-6.1.0-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:189f652a87e876098bbc67b4da1049afb5f5dfbaa310dd67c594b01c10388db6"},
+ {file = "multidict-6.1.0-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:6bb5992037f7a9eff7991ebe4273ea7f51f1c1c511e6a2ce511d0e7bdb754492"},
+ {file = "multidict-6.1.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:ac10f4c2b9e770c4e393876e35a7046879d195cd123b4f116d299d442b335bcd"},
+ {file = "multidict-6.1.0-cp38-cp38-win32.whl", hash = "sha256:e27bbb6d14416713a8bd7aaa1313c0fc8d44ee48d74497a0ff4c3a1b6ccb5167"},
+ {file = "multidict-6.1.0-cp38-cp38-win_amd64.whl", hash = "sha256:22f3105d4fb15c8f57ff3959a58fcab6ce36814486500cd7485651230ad4d4ef"},
+ {file = "multidict-6.1.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:4e18b656c5e844539d506a0a06432274d7bd52a7487e6828c63a63d69185626c"},
+ {file = "multidict-6.1.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:a185f876e69897a6f3325c3f19f26a297fa058c5e456bfcff8015e9a27e83ae1"},
+ {file = "multidict-6.1.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ab7c4ceb38d91570a650dba194e1ca87c2b543488fe9309b4212694174fd539c"},
+ {file = "multidict-6.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e617fb6b0b6953fffd762669610c1c4ffd05632c138d61ac7e14ad187870669c"},
+ {file = "multidict-6.1.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:16e5f4bf4e603eb1fdd5d8180f1a25f30056f22e55ce51fb3d6ad4ab29f7d96f"},
+ {file = "multidict-6.1.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f4c035da3f544b1882bac24115f3e2e8760f10a0107614fc9839fd232200b875"},
+ {file = "multidict-6.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:957cf8e4b6e123a9eea554fa7ebc85674674b713551de587eb318a2df3e00255"},
+ {file = "multidict-6.1.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:483a6aea59cb89904e1ceabd2b47368b5600fb7de78a6e4a2c2987b2d256cf30"},
+ {file = "multidict-6.1.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:87701f25a2352e5bf7454caa64757642734da9f6b11384c1f9d1a8e699758057"},
+ {file = "multidict-6.1.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:682b987361e5fd7a139ed565e30d81fd81e9629acc7d925a205366877d8c8657"},
+ {file = "multidict-6.1.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:ce2186a7df133a9c895dea3331ddc5ddad42cdd0d1ea2f0a51e5d161e4762f28"},
+ {file = "multidict-6.1.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:9f636b730f7e8cb19feb87094949ba54ee5357440b9658b2a32a5ce4bce53972"},
+ {file = "multidict-6.1.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:73eae06aa53af2ea5270cc066dcaf02cc60d2994bbb2c4ef5764949257d10f43"},
+ {file = "multidict-6.1.0-cp39-cp39-win32.whl", hash = "sha256:1ca0083e80e791cffc6efce7660ad24af66c8d4079d2a750b29001b53ff59ada"},
+ {file = "multidict-6.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:aa466da5b15ccea564bdab9c89175c762bc12825f4659c11227f515cee76fa4a"},
+ {file = "multidict-6.1.0-py3-none-any.whl", hash = "sha256:48e171e52d1c4d33888e529b999e5900356b9ae588c2f09a52dcefb158b27506"},
+ {file = "multidict-6.1.0.tar.gz", hash = "sha256:22ae2ebf9b0c69d206c003e2f6a914ea33f0a932d4aa16f236afc049d9958f4a"},
+]
+
+[[package]]
+name = "mypy-extensions"
+version = "1.0.0"
+description = "Type system extensions for programs checked with the mypy type checker."
+optional = false
+python-versions = ">=3.5"
+files = [
+ {file = "mypy_extensions-1.0.0-py3-none-any.whl", hash = "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d"},
+ {file = "mypy_extensions-1.0.0.tar.gz", hash = "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782"},
+]
+
+[[package]]
+name = "networkx"
+version = "3.1"
+description = "Python package for creating and manipulating graphs and networks"
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "networkx-3.1-py3-none-any.whl", hash = "sha256:4f33f68cb2afcf86f28a45f43efc27a9386b535d567d2127f8f61d51dec58d36"},
+ {file = "networkx-3.1.tar.gz", hash = "sha256:de346335408f84de0eada6ff9fafafff9bcda11f0a0dfaa931133debb146ab61"},
+]
+
+[package.extras]
+default = ["matplotlib (>=3.4)", "numpy (>=1.20)", "pandas (>=1.3)", "scipy (>=1.8)"]
+developer = ["mypy (>=1.1)", "pre-commit (>=3.2)"]
+doc = ["nb2plots (>=0.6)", "numpydoc (>=1.5)", "pillow (>=9.4)", "pydata-sphinx-theme (>=0.13)", "sphinx (>=6.1)", "sphinx-gallery (>=0.12)", "texext (>=0.6.7)"]
+extra = ["lxml (>=4.6)", "pydot (>=1.4.2)", "pygraphviz (>=1.10)", "sympy (>=1.10)"]
+test = ["codecov (>=2.1)", "pytest (>=7.2)", "pytest-cov (>=4.0)"]
+
+[[package]]
+name = "ninja"
+version = "1.11.1.1"
+description = "Ninja is a small build system with a focus on speed"
+optional = false
+python-versions = "*"
+files = [
+ {file = "ninja-1.11.1.1-py2.py3-none-macosx_10_9_universal2.macosx_10_9_x86_64.macosx_11_0_arm64.macosx_11_0_universal2.whl", hash = "sha256:376889c76d87b95b5719fdd61dd7db193aa7fd4432e5d52d2e44e4c497bdbbee"},
+ {file = "ninja-1.11.1.1-py2.py3-none-manylinux1_i686.manylinux_2_5_i686.whl", hash = "sha256:ecf80cf5afd09f14dcceff28cb3f11dc90fb97c999c89307aea435889cb66877"},
+ {file = "ninja-1.11.1.1-py2.py3-none-manylinux1_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:84502ec98f02a037a169c4b0d5d86075eaf6afc55e1879003d6cab51ced2ea4b"},
+ {file = "ninja-1.11.1.1-py2.py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:73b93c14046447c7c5cc892433d4fae65d6364bec6685411cb97a8bcf815f93a"},
+ {file = "ninja-1.11.1.1-py2.py3-none-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:18302d96a5467ea98b68e1cae1ae4b4fb2b2a56a82b955193c637557c7273dbd"},
+ {file = "ninja-1.11.1.1-py2.py3-none-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:aad34a70ef15b12519946c5633344bc775a7656d789d9ed5fdb0d456383716ef"},
+ {file = "ninja-1.11.1.1-py2.py3-none-musllinux_1_1_aarch64.whl", hash = "sha256:d491fc8d89cdcb416107c349ad1e3a735d4c4af5e1cb8f5f727baca6350fdaea"},
+ {file = "ninja-1.11.1.1-py2.py3-none-musllinux_1_1_i686.whl", hash = "sha256:7563ce1d9fe6ed5af0b8dd9ab4a214bf4ff1f2f6fd6dc29f480981f0f8b8b249"},
+ {file = "ninja-1.11.1.1-py2.py3-none-musllinux_1_1_ppc64le.whl", hash = "sha256:9df724344202b83018abb45cb1efc22efd337a1496514e7e6b3b59655be85205"},
+ {file = "ninja-1.11.1.1-py2.py3-none-musllinux_1_1_s390x.whl", hash = "sha256:3e0f9be5bb20d74d58c66cc1c414c3e6aeb45c35b0d0e41e8d739c2c0d57784f"},
+ {file = "ninja-1.11.1.1-py2.py3-none-musllinux_1_1_x86_64.whl", hash = "sha256:76482ba746a2618eecf89d5253c0d1e4f1da1270d41e9f54dfbd91831b0f6885"},
+ {file = "ninja-1.11.1.1-py2.py3-none-win32.whl", hash = "sha256:fa2ba9d74acfdfbfbcf06fad1b8282de8a7a8c481d9dee45c859a8c93fcc1082"},
+ {file = "ninja-1.11.1.1-py2.py3-none-win_amd64.whl", hash = "sha256:95da904130bfa02ea74ff9c0116b4ad266174fafb1c707aa50212bc7859aebf1"},
+ {file = "ninja-1.11.1.1-py2.py3-none-win_arm64.whl", hash = "sha256:185e0641bde601e53841525c4196278e9aaf4463758da6dd1e752c0a0f54136a"},
+ {file = "ninja-1.11.1.1.tar.gz", hash = "sha256:9d793b08dd857e38d0b6ffe9e6b7145d7c485a42dcfea04905ca0cdb6017cc3c"},
+]
+
+[package.extras]
+test = ["codecov (>=2.0.5)", "coverage (>=4.2)", "flake8 (>=3.0.4)", "pytest (>=4.5.0)", "pytest-cov (>=2.7.1)", "pytest-runner (>=5.1)", "pytest-virtualenv (>=1.7.0)", "virtualenv (>=15.0.3)"]
+
+[[package]]
+name = "numpy"
+version = "1.26.4"
+description = "Fundamental package for array computing in Python"
+optional = false
+python-versions = ">=3.9"
+files = [
+ {file = "numpy-1.26.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:9ff0f4f29c51e2803569d7a51c2304de5554655a60c5d776e35b4a41413830d0"},
+ {file = "numpy-1.26.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2e4ee3380d6de9c9ec04745830fd9e2eccb3e6cf790d39d7b98ffd19b0dd754a"},
+ {file = "numpy-1.26.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d209d8969599b27ad20994c8e41936ee0964e6da07478d6c35016bc386b66ad4"},
+ {file = "numpy-1.26.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ffa75af20b44f8dba823498024771d5ac50620e6915abac414251bd971b4529f"},
+ {file = "numpy-1.26.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:62b8e4b1e28009ef2846b4c7852046736bab361f7aeadeb6a5b89ebec3c7055a"},
+ {file = "numpy-1.26.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:a4abb4f9001ad2858e7ac189089c42178fcce737e4169dc61321660f1a96c7d2"},
+ {file = "numpy-1.26.4-cp310-cp310-win32.whl", hash = "sha256:bfe25acf8b437eb2a8b2d49d443800a5f18508cd811fea3181723922a8a82b07"},
+ {file = "numpy-1.26.4-cp310-cp310-win_amd64.whl", hash = "sha256:b97fe8060236edf3662adfc2c633f56a08ae30560c56310562cb4f95500022d5"},
+ {file = "numpy-1.26.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4c66707fabe114439db9068ee468c26bbdf909cac0fb58686a42a24de1760c71"},
+ {file = "numpy-1.26.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:edd8b5fe47dab091176d21bb6de568acdd906d1887a4584a15a9a96a1dca06ef"},
+ {file = "numpy-1.26.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7ab55401287bfec946ced39700c053796e7cc0e3acbef09993a9ad2adba6ca6e"},
+ {file = "numpy-1.26.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:666dbfb6ec68962c033a450943ded891bed2d54e6755e35e5835d63f4f6931d5"},
+ {file = "numpy-1.26.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:96ff0b2ad353d8f990b63294c8986f1ec3cb19d749234014f4e7eb0112ceba5a"},
+ {file = "numpy-1.26.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:60dedbb91afcbfdc9bc0b1f3f402804070deed7392c23eb7a7f07fa857868e8a"},
+ {file = "numpy-1.26.4-cp311-cp311-win32.whl", hash = "sha256:1af303d6b2210eb850fcf03064d364652b7120803a0b872f5211f5234b399f20"},
+ {file = "numpy-1.26.4-cp311-cp311-win_amd64.whl", hash = "sha256:cd25bcecc4974d09257ffcd1f098ee778f7834c3ad767fe5db785be9a4aa9cb2"},
+ {file = "numpy-1.26.4-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:b3ce300f3644fb06443ee2222c2201dd3a89ea6040541412b8fa189341847218"},
+ {file = "numpy-1.26.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:03a8c78d01d9781b28a6989f6fa1bb2c4f2d51201cf99d3dd875df6fbd96b23b"},
+ {file = "numpy-1.26.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9fad7dcb1aac3c7f0584a5a8133e3a43eeb2fe127f47e3632d43d677c66c102b"},
+ {file = "numpy-1.26.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:675d61ffbfa78604709862923189bad94014bef562cc35cf61d3a07bba02a7ed"},
+ {file = "numpy-1.26.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:ab47dbe5cc8210f55aa58e4805fe224dac469cde56b9f731a4c098b91917159a"},
+ {file = "numpy-1.26.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:1dda2e7b4ec9dd512f84935c5f126c8bd8b9f2fc001e9f54af255e8c5f16b0e0"},
+ {file = "numpy-1.26.4-cp312-cp312-win32.whl", hash = "sha256:50193e430acfc1346175fcbdaa28ffec49947a06918b7b92130744e81e640110"},
+ {file = "numpy-1.26.4-cp312-cp312-win_amd64.whl", hash = "sha256:08beddf13648eb95f8d867350f6a018a4be2e5ad54c8d8caed89ebca558b2818"},
+ {file = "numpy-1.26.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:7349ab0fa0c429c82442a27a9673fc802ffdb7c7775fad780226cb234965e53c"},
+ {file = "numpy-1.26.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:52b8b60467cd7dd1e9ed082188b4e6bb35aa5cdd01777621a1658910745b90be"},
+ {file = "numpy-1.26.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d5241e0a80d808d70546c697135da2c613f30e28251ff8307eb72ba696945764"},
+ {file = "numpy-1.26.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f870204a840a60da0b12273ef34f7051e98c3b5961b61b0c2c1be6dfd64fbcd3"},
+ {file = "numpy-1.26.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:679b0076f67ecc0138fd2ede3a8fd196dddc2ad3254069bcb9faf9a79b1cebcd"},
+ {file = "numpy-1.26.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:47711010ad8555514b434df65f7d7b076bb8261df1ca9bb78f53d3b2db02e95c"},
+ {file = "numpy-1.26.4-cp39-cp39-win32.whl", hash = "sha256:a354325ee03388678242a4d7ebcd08b5c727033fcff3b2f536aea978e15ee9e6"},
+ {file = "numpy-1.26.4-cp39-cp39-win_amd64.whl", hash = "sha256:3373d5d70a5fe74a2c1bb6d2cfd9609ecf686d47a2d7b1d37a8f3b6bf6003aea"},
+ {file = "numpy-1.26.4-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:afedb719a9dcfc7eaf2287b839d8198e06dcd4cb5d276a3df279231138e83d30"},
+ {file = "numpy-1.26.4-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:95a7476c59002f2f6c590b9b7b998306fba6a5aa646b1e22ddfeaf8f78c3a29c"},
+ {file = "numpy-1.26.4-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:7e50d0a0cc3189f9cb0aeb3a6a6af18c16f59f004b866cd2be1c14b36134a4a0"},
+ {file = "numpy-1.26.4.tar.gz", hash = "sha256:2a02aba9ed12e4ac4eb3ea9421c420301a0c6460d9830d74a9df87efa4912010"},
+]
+
+[[package]]
+name = "oauthlib"
+version = "3.2.2"
+description = "A generic, spec-compliant, thorough implementation of the OAuth request-signing logic"
+optional = false
+python-versions = ">=3.6"
+files = [
+ {file = "oauthlib-3.2.2-py3-none-any.whl", hash = "sha256:8139f29aac13e25d502680e9e19963e83f16838d48a0d71c287fe40e7067fbca"},
+ {file = "oauthlib-3.2.2.tar.gz", hash = "sha256:9859c40929662bec5d64f34d01c99e093149682a3f38915dc0655d5a633dd918"},
+]
+
+[package.extras]
+rsa = ["cryptography (>=3.0.0)"]
+signals = ["blinker (>=1.4.0)"]
+signedtoken = ["cryptography (>=3.0.0)", "pyjwt (>=2.0.0,<3)"]
+
+[[package]]
+name = "openai"
+version = "1.51.0"
+description = "The official Python library for the openai API"
+optional = false
+python-versions = ">=3.7.1"
+files = [
+ {file = "openai-1.51.0-py3-none-any.whl", hash = "sha256:d9affafb7e51e5a27dce78589d4964ce4d6f6d560307265933a94b2e3f3c5d2c"},
+ {file = "openai-1.51.0.tar.gz", hash = "sha256:8dc4f9d75ccdd5466fc8c99a952186eddceb9fd6ba694044773f3736a847149d"},
+]
+
+[package.dependencies]
+anyio = ">=3.5.0,<5"
+distro = ">=1.7.0,<2"
+httpx = ">=0.23.0,<1"
+jiter = ">=0.4.0,<1"
+pydantic = ">=1.9.0,<3"
+sniffio = "*"
+tqdm = ">4"
+typing-extensions = ">=4.11,<5"
+
+[package.extras]
+datalib = ["numpy (>=1)", "pandas (>=1.2.3)", "pandas-stubs (>=1.1.0.11)"]
+
+[[package]]
+name = "orjson"
+version = "3.10.7"
+description = "Fast, correct Python JSON library supporting dataclasses, datetimes, and numpy"
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "orjson-3.10.7-cp310-cp310-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:74f4544f5a6405b90da8ea724d15ac9c36da4d72a738c64685003337401f5c12"},
+ {file = "orjson-3.10.7-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:34a566f22c28222b08875b18b0dfbf8a947e69df21a9ed5c51a6bf91cfb944ac"},
+ {file = "orjson-3.10.7-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bf6ba8ebc8ef5792e2337fb0419f8009729335bb400ece005606336b7fd7bab7"},
+ {file = "orjson-3.10.7-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ac7cf6222b29fbda9e3a472b41e6a5538b48f2c8f99261eecd60aafbdb60690c"},
+ {file = "orjson-3.10.7-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:de817e2f5fc75a9e7dd350c4b0f54617b280e26d1631811a43e7e968fa71e3e9"},
+ {file = "orjson-3.10.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:348bdd16b32556cf8d7257b17cf2bdb7ab7976af4af41ebe79f9796c218f7e91"},
+ {file = "orjson-3.10.7-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:479fd0844ddc3ca77e0fd99644c7fe2de8e8be1efcd57705b5c92e5186e8a250"},
+ {file = "orjson-3.10.7-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:fdf5197a21dd660cf19dfd2a3ce79574588f8f5e2dbf21bda9ee2d2b46924d84"},
+ {file = "orjson-3.10.7-cp310-none-win32.whl", hash = "sha256:d374d36726746c81a49f3ff8daa2898dccab6596864ebe43d50733275c629175"},
+ {file = "orjson-3.10.7-cp310-none-win_amd64.whl", hash = "sha256:cb61938aec8b0ffb6eef484d480188a1777e67b05d58e41b435c74b9d84e0b9c"},
+ {file = "orjson-3.10.7-cp311-cp311-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:7db8539039698ddfb9a524b4dd19508256107568cdad24f3682d5773e60504a2"},
+ {file = "orjson-3.10.7-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:480f455222cb7a1dea35c57a67578848537d2602b46c464472c995297117fa09"},
+ {file = "orjson-3.10.7-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:8a9c9b168b3a19e37fe2778c0003359f07822c90fdff8f98d9d2a91b3144d8e0"},
+ {file = "orjson-3.10.7-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8de062de550f63185e4c1c54151bdddfc5625e37daf0aa1e75d2a1293e3b7d9a"},
+ {file = "orjson-3.10.7-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6b0dd04483499d1de9c8f6203f8975caf17a6000b9c0c54630cef02e44ee624e"},
+ {file = "orjson-3.10.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b58d3795dafa334fc8fd46f7c5dc013e6ad06fd5b9a4cc98cb1456e7d3558bd6"},
+ {file = "orjson-3.10.7-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:33cfb96c24034a878d83d1a9415799a73dc77480e6c40417e5dda0710d559ee6"},
+ {file = "orjson-3.10.7-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:e724cebe1fadc2b23c6f7415bad5ee6239e00a69f30ee423f319c6af70e2a5c0"},
+ {file = "orjson-3.10.7-cp311-none-win32.whl", hash = "sha256:82763b46053727a7168d29c772ed5c870fdae2f61aa8a25994c7984a19b1021f"},
+ {file = "orjson-3.10.7-cp311-none-win_amd64.whl", hash = "sha256:eb8d384a24778abf29afb8e41d68fdd9a156cf6e5390c04cc07bbc24b89e98b5"},
+ {file = "orjson-3.10.7-cp312-cp312-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:44a96f2d4c3af51bfac6bc4ef7b182aa33f2f054fd7f34cc0ee9a320d051d41f"},
+ {file = "orjson-3.10.7-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:76ac14cd57df0572453543f8f2575e2d01ae9e790c21f57627803f5e79b0d3c3"},
+ {file = "orjson-3.10.7-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bdbb61dcc365dd9be94e8f7df91975edc9364d6a78c8f7adb69c1cdff318ec93"},
+ {file = "orjson-3.10.7-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b48b3db6bb6e0a08fa8c83b47bc169623f801e5cc4f24442ab2b6617da3b5313"},
+ {file = "orjson-3.10.7-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:23820a1563a1d386414fef15c249040042b8e5d07b40ab3fe3efbfbbcbcb8864"},
+ {file = "orjson-3.10.7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a0c6a008e91d10a2564edbb6ee5069a9e66df3fbe11c9a005cb411f441fd2c09"},
+ {file = "orjson-3.10.7-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:d352ee8ac1926d6193f602cbe36b1643bbd1bbcb25e3c1a657a4390f3000c9a5"},
+ {file = "orjson-3.10.7-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:d2d9f990623f15c0ae7ac608103c33dfe1486d2ed974ac3f40b693bad1a22a7b"},
+ {file = "orjson-3.10.7-cp312-none-win32.whl", hash = "sha256:7c4c17f8157bd520cdb7195f75ddbd31671997cbe10aee559c2d613592e7d7eb"},
+ {file = "orjson-3.10.7-cp312-none-win_amd64.whl", hash = "sha256:1d9c0e733e02ada3ed6098a10a8ee0052dd55774de3d9110d29868d24b17faa1"},
+ {file = "orjson-3.10.7-cp313-cp313-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:77d325ed866876c0fa6492598ec01fe30e803272a6e8b10e992288b009cbe149"},
+ {file = "orjson-3.10.7-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9ea2c232deedcb605e853ae1db2cc94f7390ac776743b699b50b071b02bea6fe"},
+ {file = "orjson-3.10.7-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:3dcfbede6737fdbef3ce9c37af3fb6142e8e1ebc10336daa05872bfb1d87839c"},
+ {file = "orjson-3.10.7-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:11748c135f281203f4ee695b7f80bb1358a82a63905f9f0b794769483ea854ad"},
+ {file = "orjson-3.10.7-cp313-none-win32.whl", hash = "sha256:a7e19150d215c7a13f39eb787d84db274298d3f83d85463e61d277bbd7f401d2"},
+ {file = "orjson-3.10.7-cp313-none-win_amd64.whl", hash = "sha256:eef44224729e9525d5261cc8d28d6b11cafc90e6bd0be2157bde69a52ec83024"},
+ {file = "orjson-3.10.7-cp38-cp38-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:6ea2b2258eff652c82652d5e0f02bd5e0463a6a52abb78e49ac288827aaa1469"},
+ {file = "orjson-3.10.7-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:430ee4d85841e1483d487e7b81401785a5dfd69db5de01314538f31f8fbf7ee1"},
+ {file = "orjson-3.10.7-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:4b6146e439af4c2472c56f8540d799a67a81226e11992008cb47e1267a9b3225"},
+ {file = "orjson-3.10.7-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:084e537806b458911137f76097e53ce7bf5806dda33ddf6aaa66a028f8d43a23"},
+ {file = "orjson-3.10.7-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4829cf2195838e3f93b70fd3b4292156fc5e097aac3739859ac0dcc722b27ac0"},
+ {file = "orjson-3.10.7-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1193b2416cbad1a769f868b1749535d5da47626ac29445803dae7cc64b3f5c98"},
+ {file = "orjson-3.10.7-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:4e6c3da13e5a57e4b3dca2de059f243ebec705857522f188f0180ae88badd354"},
+ {file = "orjson-3.10.7-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:c31008598424dfbe52ce8c5b47e0752dca918a4fdc4a2a32004efd9fab41d866"},
+ {file = "orjson-3.10.7-cp38-none-win32.whl", hash = "sha256:7122a99831f9e7fe977dc45784d3b2edc821c172d545e6420c375e5a935f5a1c"},
+ {file = "orjson-3.10.7-cp38-none-win_amd64.whl", hash = "sha256:a763bc0e58504cc803739e7df040685816145a6f3c8a589787084b54ebc9f16e"},
+ {file = "orjson-3.10.7-cp39-cp39-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:e76be12658a6fa376fcd331b1ea4e58f5a06fd0220653450f0d415b8fd0fbe20"},
+ {file = "orjson-3.10.7-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ed350d6978d28b92939bfeb1a0570c523f6170efc3f0a0ef1f1df287cd4f4960"},
+ {file = "orjson-3.10.7-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:144888c76f8520e39bfa121b31fd637e18d4cc2f115727865fdf9fa325b10412"},
+ {file = "orjson-3.10.7-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:09b2d92fd95ad2402188cf51573acde57eb269eddabaa60f69ea0d733e789fe9"},
+ {file = "orjson-3.10.7-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5b24a579123fa884f3a3caadaed7b75eb5715ee2b17ab5c66ac97d29b18fe57f"},
+ {file = "orjson-3.10.7-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e72591bcfe7512353bd609875ab38050efe3d55e18934e2f18950c108334b4ff"},
+ {file = "orjson-3.10.7-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:f4db56635b58cd1a200b0a23744ff44206ee6aa428185e2b6c4a65b3197abdcd"},
+ {file = "orjson-3.10.7-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:0fa5886854673222618638c6df7718ea7fe2f3f2384c452c9ccedc70b4a510a5"},
+ {file = "orjson-3.10.7-cp39-none-win32.whl", hash = "sha256:8272527d08450ab16eb405f47e0f4ef0e5ff5981c3d82afe0efd25dcbef2bcd2"},
+ {file = "orjson-3.10.7-cp39-none-win_amd64.whl", hash = "sha256:974683d4618c0c7dbf4f69c95a979734bf183d0658611760017f6e70a145af58"},
+ {file = "orjson-3.10.7.tar.gz", hash = "sha256:75ef0640403f945f3a1f9f6400686560dbfb0fb5b16589ad62cd477043c4eee3"},
+]
+
+[[package]]
+name = "packaging"
+version = "24.1"
+description = "Core utilities for Python packages"
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "packaging-24.1-py3-none-any.whl", hash = "sha256:5b8f2217dbdbd2f7f384c41c628544e6d52f2d0f53c6d0c3ea61aa5d1d7ff124"},
+ {file = "packaging-24.1.tar.gz", hash = "sha256:026ed72c8ed3fcce5bf8950572258698927fd1dbda10a5e981cdf0ac37f4f002"},
+]
+
+[[package]]
+name = "playwright"
+version = "1.47.0"
+description = "A high-level API to automate web browsers"
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "playwright-1.47.0-py3-none-macosx_10_13_x86_64.whl", hash = "sha256:f205df24edb925db1a4ab62f1ab0da06f14bb69e382efecfb0deedc4c7f4b8cd"},
+ {file = "playwright-1.47.0-py3-none-macosx_11_0_arm64.whl", hash = "sha256:7fc820faf6885f69a52ba4ec94124e575d3c4a4003bf29200029b4a4f2b2d0ab"},
+ {file = "playwright-1.47.0-py3-none-macosx_11_0_universal2.whl", hash = "sha256:8e212dc472ff19c7d46ed7e900191c7a786ce697556ac3f1615986ec3aa00341"},
+ {file = "playwright-1.47.0-py3-none-manylinux1_x86_64.whl", hash = "sha256:a1935672531963e4b2a321de5aa59b982fb92463ee6e1032dd7326378e462955"},
+ {file = "playwright-1.47.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e0a1b61473d6f7f39c5d77d4800b3cbefecb03344c90b98f3fbcae63294ad249"},
+ {file = "playwright-1.47.0-py3-none-win32.whl", hash = "sha256:1b977ed81f6bba5582617684a21adab9bad5676d90a357ebf892db7bdf4a9974"},
+ {file = "playwright-1.47.0-py3-none-win_amd64.whl", hash = "sha256:0ec1056042d2e86088795a503347407570bffa32cbe20748e5d4c93dba085280"},
+]
+
+[package.dependencies]
+greenlet = "3.0.3"
+pyee = "12.0.0"
+
+[[package]]
+name = "pluggy"
+version = "1.5.0"
+description = "plugin and hook calling mechanisms for python"
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "pluggy-1.5.0-py3-none-any.whl", hash = "sha256:44e1ad92c8ca002de6377e165f3e0f1be63266ab4d554740532335b9d75ea669"},
+ {file = "pluggy-1.5.0.tar.gz", hash = "sha256:2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1"},
+]
+
+[package.extras]
+dev = ["pre-commit", "tox"]
+testing = ["pytest", "pytest-benchmark"]
+
+[[package]]
+name = "primp"
+version = "0.6.3"
+description = "HTTP client that can impersonate web browsers, mimicking their headers and `TLS/JA3/JA4/HTTP2` fingerprints"
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "primp-0.6.3-cp38-abi3-macosx_10_12_x86_64.whl", hash = "sha256:bdbe6a7cdaaf5c9ed863432a941f4a75bd4c6ff626cbc8d32fc232793c70ba06"},
+ {file = "primp-0.6.3-cp38-abi3-macosx_11_0_arm64.whl", hash = "sha256:eeb53eb987bdcbcd85740633470255cab887d921df713ffa12a36a13366c9cdb"},
+ {file = "primp-0.6.3-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:78da53d3c92a8e3f05bd3286ac76c291f1b6fe5e08ea63b7ba92b0f9141800bb"},
+ {file = "primp-0.6.3-cp38-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:86337b44deecdac752bd8112909987fc9fa9b894f30191c80a164dc8f895da53"},
+ {file = "primp-0.6.3-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:d3cd9a22b97f3eae42b2a5fb99f00480daf4cd6d9b139e05b0ffb03f7cc037f3"},
+ {file = "primp-0.6.3-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:7732bec917e2d3c48a31cdb92e1250f4ad6203a1aa4f802bd9abd84f2286a1e0"},
+ {file = "primp-0.6.3-cp38-abi3-win_amd64.whl", hash = "sha256:1e4113c34b86c676ae321af185f03a372caef3ee009f1682c2d62e30ec87348c"},
+ {file = "primp-0.6.3.tar.gz", hash = "sha256:17d30ebe26864defad5232dbbe1372e80483940012356e1f68846bb182282039"},
+]
+
+[package.extras]
+dev = ["certifi", "pytest (>=8.1.1)"]
+
+[[package]]
+name = "py"
+version = "1.11.0"
+description = "library with cross-python path, ini-parsing, io, code, log facilities"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
+files = [
+ {file = "py-1.11.0-py2.py3-none-any.whl", hash = "sha256:607c53218732647dff4acdfcd50cb62615cedf612e72d1724fb1a0cc6405b378"},
+ {file = "py-1.11.0.tar.gz", hash = "sha256:51c75c4126074b472f746a24399ad32f6053d1b34b68d2fa41e558e6f4a98719"},
+]
+
+[[package]]
+name = "pycnite"
+version = "2024.7.31"
+description = "Python bytecode utilities"
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "pycnite-2024.7.31-py3-none-any.whl", hash = "sha256:9ff9c09d35056435b867e14ebf79626ca94b6017923a0bf9935377fa90d4cbb3"},
+ {file = "pycnite-2024.7.31.tar.gz", hash = "sha256:5125f1c95aef4a23b9bec3b32fae76873dcd46324fa68e39c10fa852ecdea340"},
+]
+
+[[package]]
+name = "pydantic"
+version = "2.9.2"
+description = "Data validation using Python type hints"
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "pydantic-2.9.2-py3-none-any.whl", hash = "sha256:f048cec7b26778210e28a0459867920654d48e5e62db0958433636cde4254f12"},
+ {file = "pydantic-2.9.2.tar.gz", hash = "sha256:d155cef71265d1e9807ed1c32b4c8deec042a44a50a4188b25ac67ecd81a9c0f"},
+]
+
+[package.dependencies]
+annotated-types = ">=0.6.0"
+email-validator = {version = ">=2.0.0", optional = true, markers = "extra == \"email\""}
+pydantic-core = "2.23.4"
+typing-extensions = {version = ">=4.6.1", markers = "python_version < \"3.13\""}
+
+[package.extras]
+email = ["email-validator (>=2.0.0)"]
+timezone = ["tzdata"]
+
+[[package]]
+name = "pydantic-core"
+version = "2.23.4"
+description = "Core functionality for Pydantic validation and serialization"
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "pydantic_core-2.23.4-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:b10bd51f823d891193d4717448fab065733958bdb6a6b351967bd349d48d5c9b"},
+ {file = "pydantic_core-2.23.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:4fc714bdbfb534f94034efaa6eadd74e5b93c8fa6315565a222f7b6f42ca1166"},
+ {file = "pydantic_core-2.23.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:63e46b3169866bd62849936de036f901a9356e36376079b05efa83caeaa02ceb"},
+ {file = "pydantic_core-2.23.4-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ed1a53de42fbe34853ba90513cea21673481cd81ed1be739f7f2efb931b24916"},
+ {file = "pydantic_core-2.23.4-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cfdd16ab5e59fc31b5e906d1a3f666571abc367598e3e02c83403acabc092e07"},
+ {file = "pydantic_core-2.23.4-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:255a8ef062cbf6674450e668482456abac99a5583bbafb73f9ad469540a3a232"},
+ {file = "pydantic_core-2.23.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4a7cd62e831afe623fbb7aabbb4fe583212115b3ef38a9f6b71869ba644624a2"},
+ {file = "pydantic_core-2.23.4-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f09e2ff1f17c2b51f2bc76d1cc33da96298f0a036a137f5440ab3ec5360b624f"},
+ {file = "pydantic_core-2.23.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:e38e63e6f3d1cec5a27e0afe90a085af8b6806ee208b33030e65b6516353f1a3"},
+ {file = "pydantic_core-2.23.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:0dbd8dbed2085ed23b5c04afa29d8fd2771674223135dc9bc937f3c09284d071"},
+ {file = "pydantic_core-2.23.4-cp310-none-win32.whl", hash = "sha256:6531b7ca5f951d663c339002e91aaebda765ec7d61b7d1e3991051906ddde119"},
+ {file = "pydantic_core-2.23.4-cp310-none-win_amd64.whl", hash = "sha256:7c9129eb40958b3d4500fa2467e6a83356b3b61bfff1b414c7361d9220f9ae8f"},
+ {file = "pydantic_core-2.23.4-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:77733e3892bb0a7fa797826361ce8a9184d25c8dffaec60b7ffe928153680ba8"},
+ {file = "pydantic_core-2.23.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1b84d168f6c48fabd1f2027a3d1bdfe62f92cade1fb273a5d68e621da0e44e6d"},
+ {file = "pydantic_core-2.23.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:df49e7a0861a8c36d089c1ed57d308623d60416dab2647a4a17fe050ba85de0e"},
+ {file = "pydantic_core-2.23.4-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ff02b6d461a6de369f07ec15e465a88895f3223eb75073ffea56b84d9331f607"},
+ {file = "pydantic_core-2.23.4-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:996a38a83508c54c78a5f41456b0103c30508fed9abcad0a59b876d7398f25fd"},
+ {file = "pydantic_core-2.23.4-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d97683ddee4723ae8c95d1eddac7c192e8c552da0c73a925a89fa8649bf13eea"},
+ {file = "pydantic_core-2.23.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:216f9b2d7713eb98cb83c80b9c794de1f6b7e3145eef40400c62e86cee5f4e1e"},
+ {file = "pydantic_core-2.23.4-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6f783e0ec4803c787bcea93e13e9932edab72068f68ecffdf86a99fd5918878b"},
+ {file = "pydantic_core-2.23.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:d0776dea117cf5272382634bd2a5c1b6eb16767c223c6a5317cd3e2a757c61a0"},
+ {file = "pydantic_core-2.23.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:d5f7a395a8cf1621939692dba2a6b6a830efa6b3cee787d82c7de1ad2930de64"},
+ {file = "pydantic_core-2.23.4-cp311-none-win32.whl", hash = "sha256:74b9127ffea03643e998e0c5ad9bd3811d3dac8c676e47db17b0ee7c3c3bf35f"},
+ {file = "pydantic_core-2.23.4-cp311-none-win_amd64.whl", hash = "sha256:98d134c954828488b153d88ba1f34e14259284f256180ce659e8d83e9c05eaa3"},
+ {file = "pydantic_core-2.23.4-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:f3e0da4ebaef65158d4dfd7d3678aad692f7666877df0002b8a522cdf088f231"},
+ {file = "pydantic_core-2.23.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f69a8e0b033b747bb3e36a44e7732f0c99f7edd5cea723d45bc0d6e95377ffee"},
+ {file = "pydantic_core-2.23.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:723314c1d51722ab28bfcd5240d858512ffd3116449c557a1336cbe3919beb87"},
+ {file = "pydantic_core-2.23.4-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bb2802e667b7051a1bebbfe93684841cc9351004e2badbd6411bf357ab8d5ac8"},
+ {file = "pydantic_core-2.23.4-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d18ca8148bebe1b0a382a27a8ee60350091a6ddaf475fa05ef50dc35b5df6327"},
+ {file = "pydantic_core-2.23.4-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:33e3d65a85a2a4a0dc3b092b938a4062b1a05f3a9abde65ea93b233bca0e03f2"},
+ {file = "pydantic_core-2.23.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:128585782e5bfa515c590ccee4b727fb76925dd04a98864182b22e89a4e6ed36"},
+ {file = "pydantic_core-2.23.4-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:68665f4c17edcceecc112dfed5dbe6f92261fb9d6054b47d01bf6371a6196126"},
+ {file = "pydantic_core-2.23.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:20152074317d9bed6b7a95ade3b7d6054845d70584216160860425f4fbd5ee9e"},
+ {file = "pydantic_core-2.23.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:9261d3ce84fa1d38ed649c3638feefeae23d32ba9182963e465d58d62203bd24"},
+ {file = "pydantic_core-2.23.4-cp312-none-win32.whl", hash = "sha256:4ba762ed58e8d68657fc1281e9bb72e1c3e79cc5d464be146e260c541ec12d84"},
+ {file = "pydantic_core-2.23.4-cp312-none-win_amd64.whl", hash = "sha256:97df63000f4fea395b2824da80e169731088656d1818a11b95f3b173747b6cd9"},
+ {file = "pydantic_core-2.23.4-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:7530e201d10d7d14abce4fb54cfe5b94a0aefc87da539d0346a484ead376c3cc"},
+ {file = "pydantic_core-2.23.4-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:df933278128ea1cd77772673c73954e53a1c95a4fdf41eef97c2b779271bd0bd"},
+ {file = "pydantic_core-2.23.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0cb3da3fd1b6a5d0279a01877713dbda118a2a4fc6f0d821a57da2e464793f05"},
+ {file = "pydantic_core-2.23.4-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:42c6dcb030aefb668a2b7009c85b27f90e51e6a3b4d5c9bc4c57631292015b0d"},
+ {file = "pydantic_core-2.23.4-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:696dd8d674d6ce621ab9d45b205df149399e4bb9aa34102c970b721554828510"},
+ {file = "pydantic_core-2.23.4-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2971bb5ffe72cc0f555c13e19b23c85b654dd2a8f7ab493c262071377bfce9f6"},
+ {file = "pydantic_core-2.23.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8394d940e5d400d04cad4f75c0598665cbb81aecefaca82ca85bd28264af7f9b"},
+ {file = "pydantic_core-2.23.4-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:0dff76e0602ca7d4cdaacc1ac4c005e0ce0dcfe095d5b5259163a80d3a10d327"},
+ {file = "pydantic_core-2.23.4-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:7d32706badfe136888bdea71c0def994644e09fff0bfe47441deaed8e96fdbc6"},
+ {file = "pydantic_core-2.23.4-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:ed541d70698978a20eb63d8c5d72f2cc6d7079d9d90f6b50bad07826f1320f5f"},
+ {file = "pydantic_core-2.23.4-cp313-none-win32.whl", hash = "sha256:3d5639516376dce1940ea36edf408c554475369f5da2abd45d44621cb616f769"},
+ {file = "pydantic_core-2.23.4-cp313-none-win_amd64.whl", hash = "sha256:5a1504ad17ba4210df3a045132a7baeeba5a200e930f57512ee02909fc5c4cb5"},
+ {file = "pydantic_core-2.23.4-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:d4488a93b071c04dc20f5cecc3631fc78b9789dd72483ba15d423b5b3689b555"},
+ {file = "pydantic_core-2.23.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:81965a16b675b35e1d09dd14df53f190f9129c0202356ed44ab2728b1c905658"},
+ {file = "pydantic_core-2.23.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4ffa2ebd4c8530079140dd2d7f794a9d9a73cbb8e9d59ffe24c63436efa8f271"},
+ {file = "pydantic_core-2.23.4-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:61817945f2fe7d166e75fbfb28004034b48e44878177fc54d81688e7b85a3665"},
+ {file = "pydantic_core-2.23.4-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:29d2c342c4bc01b88402d60189f3df065fb0dda3654744d5a165a5288a657368"},
+ {file = "pydantic_core-2.23.4-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5e11661ce0fd30a6790e8bcdf263b9ec5988e95e63cf901972107efc49218b13"},
+ {file = "pydantic_core-2.23.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9d18368b137c6295db49ce7218b1a9ba15c5bc254c96d7c9f9e924a9bc7825ad"},
+ {file = "pydantic_core-2.23.4-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:ec4e55f79b1c4ffb2eecd8a0cfba9955a2588497d96851f4c8f99aa4a1d39b12"},
+ {file = "pydantic_core-2.23.4-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:374a5e5049eda9e0a44c696c7ade3ff355f06b1fe0bb945ea3cac2bc336478a2"},
+ {file = "pydantic_core-2.23.4-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:5c364564d17da23db1106787675fc7af45f2f7b58b4173bfdd105564e132e6fb"},
+ {file = "pydantic_core-2.23.4-cp38-none-win32.whl", hash = "sha256:d7a80d21d613eec45e3d41eb22f8f94ddc758a6c4720842dc74c0581f54993d6"},
+ {file = "pydantic_core-2.23.4-cp38-none-win_amd64.whl", hash = "sha256:5f5ff8d839f4566a474a969508fe1c5e59c31c80d9e140566f9a37bba7b8d556"},
+ {file = "pydantic_core-2.23.4-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:a4fa4fc04dff799089689f4fd502ce7d59de529fc2f40a2c8836886c03e0175a"},
+ {file = "pydantic_core-2.23.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:0a7df63886be5e270da67e0966cf4afbae86069501d35c8c1b3b6c168f42cb36"},
+ {file = "pydantic_core-2.23.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dcedcd19a557e182628afa1d553c3895a9f825b936415d0dbd3cd0bbcfd29b4b"},
+ {file = "pydantic_core-2.23.4-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5f54b118ce5de9ac21c363d9b3caa6c800341e8c47a508787e5868c6b79c9323"},
+ {file = "pydantic_core-2.23.4-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:86d2f57d3e1379a9525c5ab067b27dbb8a0642fb5d454e17a9ac434f9ce523e3"},
+ {file = "pydantic_core-2.23.4-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:de6d1d1b9e5101508cb37ab0d972357cac5235f5c6533d1071964c47139257df"},
+ {file = "pydantic_core-2.23.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1278e0d324f6908e872730c9102b0112477a7f7cf88b308e4fc36ce1bdb6d58c"},
+ {file = "pydantic_core-2.23.4-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:9a6b5099eeec78827553827f4c6b8615978bb4b6a88e5d9b93eddf8bb6790f55"},
+ {file = "pydantic_core-2.23.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:e55541f756f9b3ee346b840103f32779c695a19826a4c442b7954550a0972040"},
+ {file = "pydantic_core-2.23.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a5c7ba8ffb6d6f8f2ab08743be203654bb1aaa8c9dcb09f82ddd34eadb695605"},
+ {file = "pydantic_core-2.23.4-cp39-none-win32.whl", hash = "sha256:37b0fe330e4a58d3c58b24d91d1eb102aeec675a3db4c292ec3928ecd892a9a6"},
+ {file = "pydantic_core-2.23.4-cp39-none-win_amd64.whl", hash = "sha256:1498bec4c05c9c787bde9125cfdcc63a41004ff167f495063191b863399b1a29"},
+ {file = "pydantic_core-2.23.4-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:f455ee30a9d61d3e1a15abd5068827773d6e4dc513e795f380cdd59932c782d5"},
+ {file = "pydantic_core-2.23.4-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:1e90d2e3bd2c3863d48525d297cd143fe541be8bbf6f579504b9712cb6b643ec"},
+ {file = "pydantic_core-2.23.4-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2e203fdf807ac7e12ab59ca2bfcabb38c7cf0b33c41efeb00f8e5da1d86af480"},
+ {file = "pydantic_core-2.23.4-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e08277a400de01bc72436a0ccd02bdf596631411f592ad985dcee21445bd0068"},
+ {file = "pydantic_core-2.23.4-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f220b0eea5965dec25480b6333c788fb72ce5f9129e8759ef876a1d805d00801"},
+ {file = "pydantic_core-2.23.4-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:d06b0c8da4f16d1d1e352134427cb194a0a6e19ad5db9161bf32b2113409e728"},
+ {file = "pydantic_core-2.23.4-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:ba1a0996f6c2773bd83e63f18914c1de3c9dd26d55f4ac302a7efe93fb8e7433"},
+ {file = "pydantic_core-2.23.4-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:9a5bce9d23aac8f0cf0836ecfc033896aa8443b501c58d0602dbfd5bd5b37753"},
+ {file = "pydantic_core-2.23.4-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:78ddaaa81421a29574a682b3179d4cf9e6d405a09b99d93ddcf7e5239c742e21"},
+ {file = "pydantic_core-2.23.4-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:883a91b5dd7d26492ff2f04f40fbb652de40fcc0afe07e8129e8ae779c2110eb"},
+ {file = "pydantic_core-2.23.4-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:88ad334a15b32a791ea935af224b9de1bf99bcd62fabf745d5f3442199d86d59"},
+ {file = "pydantic_core-2.23.4-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:233710f069d251feb12a56da21e14cca67994eab08362207785cf8c598e74577"},
+ {file = "pydantic_core-2.23.4-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:19442362866a753485ba5e4be408964644dd6a09123d9416c54cd49171f50744"},
+ {file = "pydantic_core-2.23.4-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:624e278a7d29b6445e4e813af92af37820fafb6dcc55c012c834f9e26f9aaaef"},
+ {file = "pydantic_core-2.23.4-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:f5ef8f42bec47f21d07668a043f077d507e5bf4e668d5c6dfe6aaba89de1a5b8"},
+ {file = "pydantic_core-2.23.4-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:aea443fffa9fbe3af1a9ba721a87f926fe548d32cab71d188a6ede77d0ff244e"},
+ {file = "pydantic_core-2.23.4.tar.gz", hash = "sha256:2584f7cf844ac4d970fba483a717dbe10c1c1c96a969bf65d61ffe94df1b2863"},
+]
+
+[package.dependencies]
+typing-extensions = ">=4.6.0,<4.7.0 || >4.7.0"
+
+[[package]]
+name = "pydantic-settings"
+version = "2.5.2"
+description = "Settings management using Pydantic"
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "pydantic_settings-2.5.2-py3-none-any.whl", hash = "sha256:2c912e55fd5794a59bf8c832b9de832dcfdf4778d79ff79b708744eed499a907"},
+ {file = "pydantic_settings-2.5.2.tar.gz", hash = "sha256:f90b139682bee4d2065273d5185d71d37ea46cfe57e1b5ae184fc6a0b2484ca0"},
+]
+
+[package.dependencies]
+pydantic = ">=2.7.0"
+python-dotenv = ">=0.21.0"
+
+[package.extras]
+azure-key-vault = ["azure-identity (>=1.16.0)", "azure-keyvault-secrets (>=4.8.0)"]
+toml = ["tomli (>=2.0.1)"]
+yaml = ["pyyaml (>=6.0.1)"]
+
+[[package]]
+name = "pydot"
+version = "3.0.2"
+description = "Python interface to Graphviz's Dot"
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "pydot-3.0.2-py3-none-any.whl", hash = "sha256:99cedaa55d04abb0b2bc56d9981a6da781053dd5ac75c428e8dd53db53f90b14"},
+ {file = "pydot-3.0.2.tar.gz", hash = "sha256:9180da540b51b3aa09fbf81140b3edfbe2315d778e8589a7d0a4a69c41332bae"},
+]
+
+[package.dependencies]
+pyparsing = ">=3.0.9"
+
+[package.extras]
+dev = ["chardet", "parameterized", "ruff"]
+release = ["zest.releaser[recommended]"]
+tests = ["chardet", "parameterized", "pytest", "pytest-cov", "pytest-xdist[psutil]", "ruff", "tox"]
+
+[[package]]
+name = "pyee"
+version = "12.0.0"
+description = "A rough port of Node.js's EventEmitter to Python with a few tricks of its own"
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "pyee-12.0.0-py3-none-any.whl", hash = "sha256:7b14b74320600049ccc7d0e0b1becd3b4bd0a03c745758225e31a59f4095c990"},
+ {file = "pyee-12.0.0.tar.gz", hash = "sha256:c480603f4aa2927d4766eb41fa82793fe60a82cbfdb8d688e0d08c55a534e145"},
+]
+
+[package.dependencies]
+typing-extensions = "*"
+
+[package.extras]
+dev = ["black", "build", "flake8", "flake8-black", "isort", "jupyter-console", "mkdocs", "mkdocs-include-markdown-plugin", "mkdocstrings[python]", "pytest", "pytest-asyncio", "pytest-trio", "sphinx", "toml", "tox", "trio", "trio", "trio-typing", "twine", "twisted", "validate-pyproject[all]"]
+
+[[package]]
+name = "pyowm"
+version = "3.3.0"
+description = "A Python wrapper around OpenWeatherMap web APIs"
+optional = false
+python-versions = ">=3.7"
+files = [
+ {file = "pyowm-3.3.0-py3-none-any.whl", hash = "sha256:86463108e7613171531ba306040b43c972b3fc0b0acf73b12c50910cdd2107ab"},
+ {file = "pyowm-3.3.0.tar.gz", hash = "sha256:8196f77c91eac680676ed5ee484aae8a165408055e3e2b28025cbf60b8681e03"},
+]
+
+[package.dependencies]
+geojson = ">=2.3.0,<3"
+PySocks = ">=1.7.1,<2"
+requests = [
+ {version = ">=2.20.0,<3"},
+ {version = "*", extras = ["socks"]},
+]
+
+[[package]]
+name = "pyparsing"
+version = "3.1.4"
+description = "pyparsing module - Classes and methods to define and execute parsing grammars"
+optional = false
+python-versions = ">=3.6.8"
+files = [
+ {file = "pyparsing-3.1.4-py3-none-any.whl", hash = "sha256:a6a7ee4235a3f944aa1fa2249307708f893fe5717dc603503c6c7969c070fb7c"},
+ {file = "pyparsing-3.1.4.tar.gz", hash = "sha256:f86ec8d1a83f11977c9a6ea7598e8c27fc5cddfa5b07ea2241edbbde1d7bc032"},
+]
+
+[package.extras]
+diagrams = ["jinja2", "railroad-diagrams"]
+
+[[package]]
+name = "pysocks"
+version = "1.7.1"
+description = "A Python SOCKS client module. See https://github.com/Anorov/PySocks for more information."
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
+files = [
+ {file = "PySocks-1.7.1-py27-none-any.whl", hash = "sha256:08e69f092cc6dbe92a0fdd16eeb9b9ffbc13cadfe5ca4c7bd92ffb078b293299"},
+ {file = "PySocks-1.7.1-py3-none-any.whl", hash = "sha256:2725bd0a9925919b9b51739eea5f9e2bae91e83288108a9ad338b2e3a4435ee5"},
+ {file = "PySocks-1.7.1.tar.gz", hash = "sha256:3f8804571ebe159c380ac6de37643bb4685970655d3bba243530d6558b799aa0"},
+]
+
+[[package]]
+name = "pytest"
+version = "6.2.5"
+description = "pytest: simple powerful testing with Python"
+optional = false
+python-versions = ">=3.6"
+files = [
+ {file = "pytest-6.2.5-py3-none-any.whl", hash = "sha256:7310f8d27bc79ced999e760ca304d69f6ba6c6649c0b60fb0e04a4a77cacc134"},
+ {file = "pytest-6.2.5.tar.gz", hash = "sha256:131b36680866a76e6781d13f101efb86cf674ebb9762eb70d3082b6f29889e89"},
+]
+
+[package.dependencies]
+atomicwrites = {version = ">=1.0", markers = "sys_platform == \"win32\""}
+attrs = ">=19.2.0"
+colorama = {version = "*", markers = "sys_platform == \"win32\""}
+iniconfig = "*"
+packaging = "*"
+pluggy = ">=0.12,<2.0"
+py = ">=1.8.2"
+toml = "*"
+
+[package.extras]
+testing = ["argcomplete", "hypothesis (>=3.56)", "mock", "nose", "requests", "xmlschema"]
+
+[[package]]
+name = "python-dotenv"
+version = "1.0.1"
+description = "Read key-value pairs from a .env file and set them as environment variables"
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "python-dotenv-1.0.1.tar.gz", hash = "sha256:e324ee90a023d808f1959c46bcbc04446a10ced277783dc6ee09987c37ec10ca"},
+ {file = "python_dotenv-1.0.1-py3-none-any.whl", hash = "sha256:f7b63ef50f1b690dddf550d03497b66d609393b40b564ed0d674909a68ebf16a"},
+]
+
+[package.extras]
+cli = ["click (>=5.0)"]
+
+[[package]]
+name = "pytype"
+version = "2024.9.13"
+description = "Python type inferencer"
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "pytype-2024.9.13-cp310-cp310-macosx_12_0_x86_64.whl", hash = "sha256:52c0005d220b27f9c933e4077de700c4e8171abce0c2af72f4c6263a85ff5bce"},
+ {file = "pytype-2024.9.13-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2d5dc847c2fe98bac044f956e2fc9f074f09704b64436522b81ede7dd5fa3653"},
+ {file = "pytype-2024.9.13-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:529f19141c6170d96a38909df430ca52e6904eaef851ad2690cf632f17d2c195"},
+ {file = "pytype-2024.9.13-cp311-cp311-macosx_10_14_universal2.whl", hash = "sha256:38f3eddf05d8530ef16d3d7c2da2556148b9975fc7c3405ac3073022e1a7434b"},
+ {file = "pytype-2024.9.13-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1b530eae5ab421a2dc9c4ef53f68629c5a622545150ae9702dbb811f56852a63"},
+ {file = "pytype-2024.9.13-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:eb9eaaaf6c33e2716fdce1cf4166d3e5099372d8898b69ab7673225928096456"},
+ {file = "pytype-2024.9.13-cp312-cp312-macosx_10_14_universal2.whl", hash = "sha256:53b767d85f374c7483c8b2849dceb811a15fcb01520e245dd82bd7c0e2befefb"},
+ {file = "pytype-2024.9.13-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:176a5bbc0cb0882918a0b48818b95df2c15811e3a8391da089ffc5b33fea7013"},
+ {file = "pytype-2024.9.13-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7bdaf1eaaf17a13741f67686c2d4c94c30279cd682c7e4cf535e41fc911b0e59"},
+ {file = "pytype-2024.9.13-cp38-cp38-macosx_12_0_x86_64.whl", hash = "sha256:425011cc45fba8c83af796155049f9db89d11e8aedbfb21bc1c99408f4a2c4e3"},
+ {file = "pytype-2024.9.13-cp38-cp38-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6e500727967b843488c1978114778162ef00fee9be49dfa5b4758dcbbcc55dd9"},
+ {file = "pytype-2024.9.13-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b9b40beab6ef04fc260d86a8ef47b25d1b525dbc4cfbcb73151fd74210c176df"},
+ {file = "pytype-2024.9.13-cp39-cp39-macosx_12_0_x86_64.whl", hash = "sha256:b5fdc24b60938ee846dfbdf08b5ea96e934e7d69c34eb1f8fb7707083d177f0e"},
+ {file = "pytype-2024.9.13-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8dcfd509118c2d7e0787e72832b45e30037af1c29dfcb733a7e8014f58337287"},
+ {file = "pytype-2024.9.13-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9df731062dc18518a46135c4825ad966e1a275ffc0723dd62f9771b420889da0"},
+ {file = "pytype-2024.9.13.tar.gz", hash = "sha256:941046ca0f1c43b79162bb51836fef0ba6608012d99f6833148c249f22216f26"},
+]
+
+[package.dependencies]
+attrs = ">=21.4.0"
+immutabledict = ">=4.1.0"
+importlab = ">=0.8"
+jinja2 = ">=3.1.2"
+libcst = ">=1.0.1"
+msgspec = ">=0.18.6"
+networkx = "<3.2"
+ninja = ">=1.10.0.post2"
+pycnite = ">=2024.07.31"
+pydot = ">=1.4.2"
+tabulate = ">=0.8.10"
+toml = ">=0.10.2"
+typing-extensions = ">=4.3.0"
+
+[[package]]
+name = "pyyaml"
+version = "6.0.2"
+description = "YAML parser and emitter for Python"
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "PyYAML-6.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086"},
+ {file = "PyYAML-6.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf"},
+ {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8824b5a04a04a047e72eea5cec3bc266db09e35de6bdfe34c9436ac5ee27d237"},
+ {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7c36280e6fb8385e520936c3cb3b8042851904eba0e58d277dca80a5cfed590b"},
+ {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec031d5d2feb36d1d1a24380e4db6d43695f3748343d99434e6f5f9156aaa2ed"},
+ {file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:936d68689298c36b53b29f23c6dbb74de12b4ac12ca6cfe0e047bedceea56180"},
+ {file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:23502f431948090f597378482b4812b0caae32c22213aecf3b55325e049a6c68"},
+ {file = "PyYAML-6.0.2-cp310-cp310-win32.whl", hash = "sha256:2e99c6826ffa974fe6e27cdb5ed0021786b03fc98e5ee3c5bfe1fd5015f42b99"},
+ {file = "PyYAML-6.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:a4d3091415f010369ae4ed1fc6b79def9416358877534caf6a0fdd2146c87a3e"},
+ {file = "PyYAML-6.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:cc1c1159b3d456576af7a3e4d1ba7e6924cb39de8f67111c735f6fc832082774"},
+ {file = "PyYAML-6.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1e2120ef853f59c7419231f3bf4e7021f1b936f6ebd222406c3b60212205d2ee"},
+ {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d225db5a45f21e78dd9358e58a98702a0302f2659a3c6cd320564b75b86f47c"},
+ {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5ac9328ec4831237bec75defaf839f7d4564be1e6b25ac710bd1a96321cc8317"},
+ {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ad2a3decf9aaba3d29c8f537ac4b243e36bef957511b4766cb0057d32b0be85"},
+ {file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ff3824dc5261f50c9b0dfb3be22b4567a6f938ccce4587b38952d85fd9e9afe4"},
+ {file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:797b4f722ffa07cc8d62053e4cff1486fa6dc094105d13fea7b1de7d8bf71c9e"},
+ {file = "PyYAML-6.0.2-cp311-cp311-win32.whl", hash = "sha256:11d8f3dd2b9c1207dcaf2ee0bbbfd5991f571186ec9cc78427ba5bd32afae4b5"},
+ {file = "PyYAML-6.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:e10ce637b18caea04431ce14fabcf5c64a1c61ec9c56b071a4b7ca131ca52d44"},
+ {file = "PyYAML-6.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab"},
+ {file = "PyYAML-6.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725"},
+ {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5"},
+ {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425"},
+ {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476"},
+ {file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48"},
+ {file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b"},
+ {file = "PyYAML-6.0.2-cp312-cp312-win32.whl", hash = "sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4"},
+ {file = "PyYAML-6.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8"},
+ {file = "PyYAML-6.0.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba"},
+ {file = "PyYAML-6.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1"},
+ {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133"},
+ {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484"},
+ {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5"},
+ {file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc"},
+ {file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652"},
+ {file = "PyYAML-6.0.2-cp313-cp313-win32.whl", hash = "sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183"},
+ {file = "PyYAML-6.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563"},
+ {file = "PyYAML-6.0.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:24471b829b3bf607e04e88d79542a9d48bb037c2267d7927a874e6c205ca7e9a"},
+ {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7fded462629cfa4b685c5416b949ebad6cec74af5e2d42905d41e257e0869f5"},
+ {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d84a1718ee396f54f3a086ea0a66d8e552b2ab2017ef8b420e92edbc841c352d"},
+ {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9056c1ecd25795207ad294bcf39f2db3d845767be0ea6e6a34d856f006006083"},
+ {file = "PyYAML-6.0.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:82d09873e40955485746739bcb8b4586983670466c23382c19cffecbf1fd8706"},
+ {file = "PyYAML-6.0.2-cp38-cp38-win32.whl", hash = "sha256:43fa96a3ca0d6b1812e01ced1044a003533c47f6ee8aca31724f78e93ccc089a"},
+ {file = "PyYAML-6.0.2-cp38-cp38-win_amd64.whl", hash = "sha256:01179a4a8559ab5de078078f37e5c1a30d76bb88519906844fd7bdea1b7729ff"},
+ {file = "PyYAML-6.0.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:688ba32a1cffef67fd2e9398a2efebaea461578b0923624778664cc1c914db5d"},
+ {file = "PyYAML-6.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a8786accb172bd8afb8be14490a16625cbc387036876ab6ba70912730faf8e1f"},
+ {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8e03406cac8513435335dbab54c0d385e4a49e4945d2909a581c83647ca0290"},
+ {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f753120cb8181e736c57ef7636e83f31b9c0d1722c516f7e86cf15b7aa57ff12"},
+ {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3b1fdb9dc17f5a7677423d508ab4f243a726dea51fa5e70992e59a7411c89d19"},
+ {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0b69e4ce7a131fe56b7e4d770c67429700908fc0752af059838b1cfb41960e4e"},
+ {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a9f8c2e67970f13b16084e04f134610fd1d374bf477b17ec1599185cf611d725"},
+ {file = "PyYAML-6.0.2-cp39-cp39-win32.whl", hash = "sha256:6395c297d42274772abc367baaa79683958044e5d3835486c16da75d2a694631"},
+ {file = "PyYAML-6.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:39693e1f8320ae4f43943590b49779ffb98acb81f788220ea932a6b6c51004d8"},
+ {file = "pyyaml-6.0.2.tar.gz", hash = "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e"},
+]
+
+[[package]]
+name = "requests"
+version = "2.32.3"
+description = "Python HTTP for Humans."
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6"},
+ {file = "requests-2.32.3.tar.gz", hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760"},
+]
+
+[package.dependencies]
+certifi = ">=2017.4.17"
+charset-normalizer = ">=2,<4"
+idna = ">=2.5,<4"
+PySocks = {version = ">=1.5.6,<1.5.7 || >1.5.7", optional = true, markers = "extra == \"socks\""}
+urllib3 = ">=1.21.1,<3"
+
+[package.extras]
+socks = ["PySocks (>=1.5.6,!=1.5.7)"]
+use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"]
+
+[[package]]
+name = "requests-oauthlib"
+version = "1.3.1"
+description = "OAuthlib authentication support for Requests."
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
+files = [
+ {file = "requests-oauthlib-1.3.1.tar.gz", hash = "sha256:75beac4a47881eeb94d5ea5d6ad31ef88856affe2332b9aafb52c6452ccf0d7a"},
+ {file = "requests_oauthlib-1.3.1-py2.py3-none-any.whl", hash = "sha256:2577c501a2fb8d05a304c09d090d6e47c306fef15809d102b327cf8364bddab5"},
+]
+
+[package.dependencies]
+oauthlib = ">=3.0.0"
+requests = ">=2.0.0"
+
+[package.extras]
+rsa = ["oauthlib[signedtoken] (>=3.0.0)"]
+
+[[package]]
+name = "requests-toolbelt"
+version = "1.0.0"
+description = "A utility belt for advanced users of python-requests"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
+files = [
+ {file = "requests-toolbelt-1.0.0.tar.gz", hash = "sha256:7681a0a3d047012b5bdc0ee37d7f8f07ebe76ab08caeccfc3921ce23c88d5bc6"},
+ {file = "requests_toolbelt-1.0.0-py2.py3-none-any.whl", hash = "sha256:cccfdd665f0a24fcf4726e690f65639d272bb0637b9b92dfd91a5568ccf6bd06"},
+]
+
+[package.dependencies]
+requests = ">=2.0.1,<3.0.0"
+
+[[package]]
+name = "ruff"
+version = "0.6.9"
+description = "An extremely fast Python linter and code formatter, written in Rust."
+optional = false
+python-versions = ">=3.7"
+files = [
+ {file = "ruff-0.6.9-py3-none-linux_armv6l.whl", hash = "sha256:064df58d84ccc0ac0fcd63bc3090b251d90e2a372558c0f057c3f75ed73e1ccd"},
+ {file = "ruff-0.6.9-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:140d4b5c9f5fc7a7b074908a78ab8d384dd7f6510402267bc76c37195c02a7ec"},
+ {file = "ruff-0.6.9-py3-none-macosx_11_0_arm64.whl", hash = "sha256:53fd8ca5e82bdee8da7f506d7b03a261f24cd43d090ea9db9a1dc59d9313914c"},
+ {file = "ruff-0.6.9-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:645d7d8761f915e48a00d4ecc3686969761df69fb561dd914a773c1a8266e14e"},
+ {file = "ruff-0.6.9-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:eae02b700763e3847595b9d2891488989cac00214da7f845f4bcf2989007d577"},
+ {file = "ruff-0.6.9-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7d5ccc9e58112441de8ad4b29dcb7a86dc25c5f770e3c06a9d57e0e5eba48829"},
+ {file = "ruff-0.6.9-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:417b81aa1c9b60b2f8edc463c58363075412866ae4e2b9ab0f690dc1e87ac1b5"},
+ {file = "ruff-0.6.9-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3c866b631f5fbce896a74a6e4383407ba7507b815ccc52bcedabb6810fdb3ef7"},
+ {file = "ruff-0.6.9-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7b118afbb3202f5911486ad52da86d1d52305b59e7ef2031cea3425142b97d6f"},
+ {file = "ruff-0.6.9-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a67267654edc23c97335586774790cde402fb6bbdb3c2314f1fc087dee320bfa"},
+ {file = "ruff-0.6.9-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:3ef0cc774b00fec123f635ce5c547dac263f6ee9fb9cc83437c5904183b55ceb"},
+ {file = "ruff-0.6.9-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:12edd2af0c60fa61ff31cefb90aef4288ac4d372b4962c2864aeea3a1a2460c0"},
+ {file = "ruff-0.6.9-py3-none-musllinux_1_2_i686.whl", hash = "sha256:55bb01caeaf3a60b2b2bba07308a02fca6ab56233302406ed5245180a05c5625"},
+ {file = "ruff-0.6.9-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:925d26471fa24b0ce5a6cdfab1bb526fb4159952385f386bdcc643813d472039"},
+ {file = "ruff-0.6.9-py3-none-win32.whl", hash = "sha256:eb61ec9bdb2506cffd492e05ac40e5bc6284873aceb605503d8494180d6fc84d"},
+ {file = "ruff-0.6.9-py3-none-win_amd64.whl", hash = "sha256:785d31851c1ae91f45b3d8fe23b8ae4b5170089021fbb42402d811135f0b7117"},
+ {file = "ruff-0.6.9-py3-none-win_arm64.whl", hash = "sha256:a9641e31476d601f83cd602608739a0840e348bda93fec9f1ee816f8b6798b93"},
+ {file = "ruff-0.6.9.tar.gz", hash = "sha256:b076ef717a8e5bc819514ee1d602bbdca5b4420ae13a9cf61a0c0a4f53a2baa2"},
+]
+
+[[package]]
+name = "setuptools"
+version = "75.1.0"
+description = "Easily download, build, install, upgrade, and uninstall Python packages"
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "setuptools-75.1.0-py3-none-any.whl", hash = "sha256:35ab7fd3bcd95e6b7fd704e4a1539513edad446c097797f2985e0e4b960772f2"},
+ {file = "setuptools-75.1.0.tar.gz", hash = "sha256:d59a21b17a275fb872a9c3dae73963160ae079f1049ed956880cd7c09b120538"},
+]
+
+[package.extras]
+check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1)", "ruff (>=0.5.2)"]
+core = ["importlib-metadata (>=6)", "importlib-resources (>=5.10.2)", "jaraco.collections", "jaraco.functools", "jaraco.text (>=3.7)", "more-itertools", "more-itertools (>=8.8)", "packaging", "packaging (>=24)", "platformdirs (>=2.6.2)", "tomli (>=2.0.1)", "wheel (>=0.43.0)"]
+cover = ["pytest-cov"]
+doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "pyproject-hooks (!=1.1)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier", "towncrier (<24.7)"]
+enabler = ["pytest-enabler (>=2.2)"]
+test = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "ini2toml[lite] (>=0.14)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "jaraco.test", "packaging (>=23.2)", "pip (>=19.1)", "pyproject-hooks (!=1.1)", "pytest (>=6,!=8.1.*)", "pytest-home (>=0.5)", "pytest-perf", "pytest-subprocess", "pytest-timeout", "pytest-xdist (>=3)", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel (>=0.44.0)"]
+type = ["importlib-metadata (>=7.0.2)", "jaraco.develop (>=7.21)", "mypy (==1.11.*)", "pytest-mypy"]
+
+[[package]]
+name = "six"
+version = "1.16.0"
+description = "Python 2 and 3 compatibility utilities"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*"
+files = [
+ {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"},
+ {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"},
+]
+
+[[package]]
+name = "sniffio"
+version = "1.3.1"
+description = "Sniff out which async library your code is running under"
+optional = false
+python-versions = ">=3.7"
+files = [
+ {file = "sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2"},
+ {file = "sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc"},
+]
+
+[[package]]
+name = "soupsieve"
+version = "2.6"
+description = "A modern CSS selector implementation for Beautiful Soup."
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "soupsieve-2.6-py3-none-any.whl", hash = "sha256:e72c4ff06e4fb6e4b5a9f0f55fe6e81514581fca1515028625d0f299c602ccc9"},
+ {file = "soupsieve-2.6.tar.gz", hash = "sha256:e2e68417777af359ec65daac1057404a3c8a5455bb8abc36f1a9866ab1a51abb"},
+]
+
+[[package]]
+name = "spider-client"
+version = "0.0.70"
+description = "Python SDK for Spider Cloud API"
+optional = false
+python-versions = "*"
+files = [
+ {file = "spider-client-0.0.70.tar.gz", hash = "sha256:3c46cb3cfe1ba4dc904bf18f1c727af7ab1f6ba04464e5bf149304aa92cc769c"},
+]
+
+[package.dependencies]
+requests = "*"
+
+[[package]]
+name = "sqlalchemy"
+version = "2.0.35"
+description = "Database Abstraction Library"
+optional = false
+python-versions = ">=3.7"
+files = [
+ {file = "SQLAlchemy-2.0.35-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:67219632be22f14750f0d1c70e62f204ba69d28f62fd6432ba05ab295853de9b"},
+ {file = "SQLAlchemy-2.0.35-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:4668bd8faf7e5b71c0319407b608f278f279668f358857dbfd10ef1954ac9f90"},
+ {file = "SQLAlchemy-2.0.35-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cb8bea573863762bbf45d1e13f87c2d2fd32cee2dbd50d050f83f87429c9e1ea"},
+ {file = "SQLAlchemy-2.0.35-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f552023710d4b93d8fb29a91fadf97de89c5926c6bd758897875435f2a939f33"},
+ {file = "SQLAlchemy-2.0.35-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:016b2e665f778f13d3c438651dd4de244214b527a275e0acf1d44c05bc6026a9"},
+ {file = "SQLAlchemy-2.0.35-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:7befc148de64b6060937231cbff8d01ccf0bfd75aa26383ffdf8d82b12ec04ff"},
+ {file = "SQLAlchemy-2.0.35-cp310-cp310-win32.whl", hash = "sha256:22b83aed390e3099584b839b93f80a0f4a95ee7f48270c97c90acd40ee646f0b"},
+ {file = "SQLAlchemy-2.0.35-cp310-cp310-win_amd64.whl", hash = "sha256:a29762cd3d116585278ffb2e5b8cc311fb095ea278b96feef28d0b423154858e"},
+ {file = "SQLAlchemy-2.0.35-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:e21f66748ab725ade40fa7af8ec8b5019c68ab00b929f6643e1b1af461eddb60"},
+ {file = "SQLAlchemy-2.0.35-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:8a6219108a15fc6d24de499d0d515c7235c617b2540d97116b663dade1a54d62"},
+ {file = "SQLAlchemy-2.0.35-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:042622a5306c23b972192283f4e22372da3b8ddf5f7aac1cc5d9c9b222ab3ff6"},
+ {file = "SQLAlchemy-2.0.35-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:627dee0c280eea91aed87b20a1f849e9ae2fe719d52cbf847c0e0ea34464b3f7"},
+ {file = "SQLAlchemy-2.0.35-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:4fdcd72a789c1c31ed242fd8c1bcd9ea186a98ee8e5408a50e610edfef980d71"},
+ {file = "SQLAlchemy-2.0.35-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:89b64cd8898a3a6f642db4eb7b26d1b28a497d4022eccd7717ca066823e9fb01"},
+ {file = "SQLAlchemy-2.0.35-cp311-cp311-win32.whl", hash = "sha256:6a93c5a0dfe8d34951e8a6f499a9479ffb9258123551fa007fc708ae2ac2bc5e"},
+ {file = "SQLAlchemy-2.0.35-cp311-cp311-win_amd64.whl", hash = "sha256:c68fe3fcde03920c46697585620135b4ecfdfc1ed23e75cc2c2ae9f8502c10b8"},
+ {file = "SQLAlchemy-2.0.35-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:eb60b026d8ad0c97917cb81d3662d0b39b8ff1335e3fabb24984c6acd0c900a2"},
+ {file = "SQLAlchemy-2.0.35-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6921ee01caf375363be5e9ae70d08ce7ca9d7e0e8983183080211a062d299468"},
+ {file = "SQLAlchemy-2.0.35-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8cdf1a0dbe5ced887a9b127da4ffd7354e9c1a3b9bb330dce84df6b70ccb3a8d"},
+ {file = "SQLAlchemy-2.0.35-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:93a71c8601e823236ac0e5d087e4f397874a421017b3318fd92c0b14acf2b6db"},
+ {file = "SQLAlchemy-2.0.35-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:e04b622bb8a88f10e439084486f2f6349bf4d50605ac3e445869c7ea5cf0fa8c"},
+ {file = "SQLAlchemy-2.0.35-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:1b56961e2d31389aaadf4906d453859f35302b4eb818d34a26fab72596076bb8"},
+ {file = "SQLAlchemy-2.0.35-cp312-cp312-win32.whl", hash = "sha256:0f9f3f9a3763b9c4deb8c5d09c4cc52ffe49f9876af41cc1b2ad0138878453cf"},
+ {file = "SQLAlchemy-2.0.35-cp312-cp312-win_amd64.whl", hash = "sha256:25b0f63e7fcc2a6290cb5f7f5b4fc4047843504983a28856ce9b35d8f7de03cc"},
+ {file = "SQLAlchemy-2.0.35-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:f021d334f2ca692523aaf7bbf7592ceff70c8594fad853416a81d66b35e3abf9"},
+ {file = "SQLAlchemy-2.0.35-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:05c3f58cf91683102f2f0265c0db3bd3892e9eedabe059720492dbaa4f922da1"},
+ {file = "SQLAlchemy-2.0.35-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:032d979ce77a6c2432653322ba4cbeabf5a6837f704d16fa38b5a05d8e21fa00"},
+ {file = "SQLAlchemy-2.0.35-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:2e795c2f7d7249b75bb5f479b432a51b59041580d20599d4e112b5f2046437a3"},
+ {file = "SQLAlchemy-2.0.35-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:cc32b2990fc34380ec2f6195f33a76b6cdaa9eecf09f0c9404b74fc120aef36f"},
+ {file = "SQLAlchemy-2.0.35-cp37-cp37m-win32.whl", hash = "sha256:9509c4123491d0e63fb5e16199e09f8e262066e58903e84615c301dde8fa2e87"},
+ {file = "SQLAlchemy-2.0.35-cp37-cp37m-win_amd64.whl", hash = "sha256:3655af10ebcc0f1e4e06c5900bb33e080d6a1fa4228f502121f28a3b1753cde5"},
+ {file = "SQLAlchemy-2.0.35-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:4c31943b61ed8fdd63dfd12ccc919f2bf95eefca133767db6fbbd15da62078ec"},
+ {file = "SQLAlchemy-2.0.35-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:a62dd5d7cc8626a3634208df458c5fe4f21200d96a74d122c83bc2015b333bc1"},
+ {file = "SQLAlchemy-2.0.35-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0630774b0977804fba4b6bbea6852ab56c14965a2b0c7fc7282c5f7d90a1ae72"},
+ {file = "SQLAlchemy-2.0.35-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8d625eddf7efeba2abfd9c014a22c0f6b3796e0ffb48f5d5ab106568ef01ff5a"},
+ {file = "SQLAlchemy-2.0.35-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:ada603db10bb865bbe591939de854faf2c60f43c9b763e90f653224138f910d9"},
+ {file = "SQLAlchemy-2.0.35-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:c41411e192f8d3ea39ea70e0fae48762cd11a2244e03751a98bd3c0ca9a4e936"},
+ {file = "SQLAlchemy-2.0.35-cp38-cp38-win32.whl", hash = "sha256:d299797d75cd747e7797b1b41817111406b8b10a4f88b6e8fe5b5e59598b43b0"},
+ {file = "SQLAlchemy-2.0.35-cp38-cp38-win_amd64.whl", hash = "sha256:0375a141e1c0878103eb3d719eb6d5aa444b490c96f3fedab8471c7f6ffe70ee"},
+ {file = "SQLAlchemy-2.0.35-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:ccae5de2a0140d8be6838c331604f91d6fafd0735dbdcee1ac78fc8fbaba76b4"},
+ {file = "SQLAlchemy-2.0.35-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:2a275a806f73e849e1c309ac11108ea1a14cd7058577aba962cd7190e27c9e3c"},
+ {file = "SQLAlchemy-2.0.35-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:732e026240cdd1c1b2e3ac515c7a23820430ed94292ce33806a95869c46bd139"},
+ {file = "SQLAlchemy-2.0.35-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:890da8cd1941fa3dab28c5bac3b9da8502e7e366f895b3b8e500896f12f94d11"},
+ {file = "SQLAlchemy-2.0.35-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:c0d8326269dbf944b9201911b0d9f3dc524d64779a07518199a58384c3d37a44"},
+ {file = "SQLAlchemy-2.0.35-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:b76d63495b0508ab9fc23f8152bac63205d2a704cd009a2b0722f4c8e0cba8e0"},
+ {file = "SQLAlchemy-2.0.35-cp39-cp39-win32.whl", hash = "sha256:69683e02e8a9de37f17985905a5eca18ad651bf592314b4d3d799029797d0eb3"},
+ {file = "SQLAlchemy-2.0.35-cp39-cp39-win_amd64.whl", hash = "sha256:aee110e4ef3c528f3abbc3c2018c121e708938adeeff9006428dd7c8555e9b3f"},
+ {file = "SQLAlchemy-2.0.35-py3-none-any.whl", hash = "sha256:2ab3f0336c0387662ce6221ad30ab3a5e6499aab01b9790879b6578fd9b8faa1"},
+ {file = "sqlalchemy-2.0.35.tar.gz", hash = "sha256:e11d7ea4d24f0a262bccf9a7cd6284c976c5369dac21db237cff59586045ab9f"},
+]
+
+[package.dependencies]
+greenlet = {version = "!=0.4.17", markers = "python_version < \"3.13\" and (platform_machine == \"aarch64\" or platform_machine == \"ppc64le\" or platform_machine == \"x86_64\" or platform_machine == \"amd64\" or platform_machine == \"AMD64\" or platform_machine == \"win32\" or platform_machine == \"WIN32\")"}
+typing-extensions = ">=4.6.0"
+
+[package.extras]
+aiomysql = ["aiomysql (>=0.2.0)", "greenlet (!=0.4.17)"]
+aioodbc = ["aioodbc", "greenlet (!=0.4.17)"]
+aiosqlite = ["aiosqlite", "greenlet (!=0.4.17)", "typing_extensions (!=3.10.0.1)"]
+asyncio = ["greenlet (!=0.4.17)"]
+asyncmy = ["asyncmy (>=0.2.3,!=0.2.4,!=0.2.6)", "greenlet (!=0.4.17)"]
+mariadb-connector = ["mariadb (>=1.0.1,!=1.1.2,!=1.1.5)"]
+mssql = ["pyodbc"]
+mssql-pymssql = ["pymssql"]
+mssql-pyodbc = ["pyodbc"]
+mypy = ["mypy (>=0.910)"]
+mysql = ["mysqlclient (>=1.4.0)"]
+mysql-connector = ["mysql-connector-python"]
+oracle = ["cx_oracle (>=8)"]
+oracle-oracledb = ["oracledb (>=1.0.1)"]
+postgresql = ["psycopg2 (>=2.7)"]
+postgresql-asyncpg = ["asyncpg", "greenlet (!=0.4.17)"]
+postgresql-pg8000 = ["pg8000 (>=1.29.1)"]
+postgresql-psycopg = ["psycopg (>=3.0.7)"]
+postgresql-psycopg2binary = ["psycopg2-binary"]
+postgresql-psycopg2cffi = ["psycopg2cffi"]
+postgresql-psycopgbinary = ["psycopg[binary] (>=3.0.7)"]
+pymysql = ["pymysql"]
+sqlcipher = ["sqlcipher3_binary"]
+
+[[package]]
+name = "starlette"
+version = "0.38.6"
+description = "The little ASGI library that shines."
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "starlette-0.38.6-py3-none-any.whl", hash = "sha256:4517a1409e2e73ee4951214ba012052b9e16f60e90d73cfb06192c19203bbb05"},
+ {file = "starlette-0.38.6.tar.gz", hash = "sha256:863a1588f5574e70a821dadefb41e4881ea451a47a3cd1b4df359d4ffefe5ead"},
+]
+
+[package.dependencies]
+anyio = ">=3.4.0,<5"
+
+[package.extras]
+full = ["httpx (>=0.22.0)", "itsdangerous", "jinja2", "python-multipart (>=0.0.7)", "pyyaml"]
+
+[[package]]
+name = "tabulate"
+version = "0.9.0"
+description = "Pretty-print tabular data"
+optional = false
+python-versions = ">=3.7"
+files = [
+ {file = "tabulate-0.9.0-py3-none-any.whl", hash = "sha256:024ca478df22e9340661486f85298cff5f6dcdba14f3813e8830015b9ed1948f"},
+ {file = "tabulate-0.9.0.tar.gz", hash = "sha256:0095b12bf5966de529c0feb1fa08671671b3368eec77d7ef7ab114be2c068b3c"},
+]
+
+[package.extras]
+widechars = ["wcwidth"]
+
+[[package]]
+name = "tenacity"
+version = "8.5.0"
+description = "Retry code until it succeeds"
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "tenacity-8.5.0-py3-none-any.whl", hash = "sha256:b594c2a5945830c267ce6b79a166228323ed52718f30302c1359836112346687"},
+ {file = "tenacity-8.5.0.tar.gz", hash = "sha256:8bc6c0c8a09b31e6cad13c47afbed1a567518250a9a171418582ed8d9c20ca78"},
+]
+
+[package.extras]
+doc = ["reno", "sphinx"]
+test = ["pytest", "tornado (>=4.5)", "typeguard"]
+
+[[package]]
+name = "termcolor"
+version = "2.5.0"
+description = "ANSI color formatting for output in terminal"
+optional = false
+python-versions = ">=3.9"
+files = [
+ {file = "termcolor-2.5.0-py3-none-any.whl", hash = "sha256:37b17b5fc1e604945c2642c872a3764b5d547a48009871aea3edd3afa180afb8"},
+ {file = "termcolor-2.5.0.tar.gz", hash = "sha256:998d8d27da6d48442e8e1f016119076b690d962507531df4890fcd2db2ef8a6f"},
+]
+
+[package.extras]
+tests = ["pytest", "pytest-cov"]
+
+[[package]]
+name = "toml"
+version = "0.10.2"
+description = "Python Library for Tom's Obvious, Minimal Language"
+optional = false
+python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*"
+files = [
+ {file = "toml-0.10.2-py2.py3-none-any.whl", hash = "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b"},
+ {file = "toml-0.10.2.tar.gz", hash = "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f"},
+]
+
+[[package]]
+name = "tqdm"
+version = "4.66.5"
+description = "Fast, Extensible Progress Meter"
+optional = false
+python-versions = ">=3.7"
+files = [
+ {file = "tqdm-4.66.5-py3-none-any.whl", hash = "sha256:90279a3770753eafc9194a0364852159802111925aa30eb3f9d85b0e805ac7cd"},
+ {file = "tqdm-4.66.5.tar.gz", hash = "sha256:e1020aef2e5096702d8a025ac7d16b1577279c9d63f8375b63083e9a5f0fcbad"},
+]
+
+[package.dependencies]
+colorama = {version = "*", markers = "platform_system == \"Windows\""}
+
+[package.extras]
+dev = ["pytest (>=6)", "pytest-cov", "pytest-timeout", "pytest-xdist"]
+notebook = ["ipywidgets (>=6)"]
+slack = ["slack-sdk"]
+telegram = ["requests"]
+
+[[package]]
+name = "tweepy"
+version = "4.14.0"
+description = "Twitter library for Python"
+optional = false
+python-versions = ">=3.7"
+files = [
+ {file = "tweepy-4.14.0-py3-none-any.whl", hash = "sha256:db6d3844ccc0c6d27f339f12ba8acc89912a961da513c1ae50fa2be502a56afb"},
+ {file = "tweepy-4.14.0.tar.gz", hash = "sha256:1f9f1707d6972de6cff6c5fd90dfe6a449cd2e0d70bd40043ffab01e07a06c8c"},
+]
+
+[package.dependencies]
+oauthlib = ">=3.2.0,<4"
+requests = ">=2.27.0,<3"
+requests-oauthlib = ">=1.2.0,<2"
+
+[package.extras]
+async = ["aiohttp (>=3.7.3,<4)", "async-lru (>=1.0.3,<3)"]
+dev = ["coverage (>=4.4.2)", "coveralls (>=2.1.0)", "tox (>=3.21.0)"]
+docs = ["myst-parser (==0.15.2)", "readthedocs-sphinx-search (==0.1.1)", "sphinx (==4.2.0)", "sphinx-hoverxref (==0.7b1)", "sphinx-rtd-theme (==1.0.0)", "sphinx-tabs (==3.2.0)"]
+socks = ["requests[socks] (>=2.27.0,<3)"]
+test = ["vcrpy (>=1.10.3)"]
+
+[[package]]
+name = "typing-extensions"
+version = "4.12.2"
+description = "Backported and Experimental Type Hints for Python 3.8+"
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "typing_extensions-4.12.2-py3-none-any.whl", hash = "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d"},
+ {file = "typing_extensions-4.12.2.tar.gz", hash = "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8"},
+]
+
+[[package]]
+name = "typing-inspect"
+version = "0.9.0"
+description = "Runtime inspection utilities for typing module."
+optional = false
+python-versions = "*"
+files = [
+ {file = "typing_inspect-0.9.0-py3-none-any.whl", hash = "sha256:9ee6fc59062311ef8547596ab6b955e1b8aa46242d854bfc78f4f6b0eff35f9f"},
+ {file = "typing_inspect-0.9.0.tar.gz", hash = "sha256:b23fc42ff6f6ef6954e4852c1fb512cdd18dbea03134f91f856a95ccc9461f78"},
+]
+
+[package.dependencies]
+mypy-extensions = ">=0.3.0"
+typing-extensions = ">=3.7.4"
+
+[[package]]
+name = "urllib3"
+version = "2.2.3"
+description = "HTTP library with thread-safe connection pooling, file post, and more."
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "urllib3-2.2.3-py3-none-any.whl", hash = "sha256:ca899ca043dcb1bafa3e262d73aa25c465bfb49e0bd9dd5d59f1d0acba2f8fac"},
+ {file = "urllib3-2.2.3.tar.gz", hash = "sha256:e7d814a81dad81e6caf2ec9fdedb284ecc9c73076b62654547cc64ccdcae26e9"},
+]
+
+[package.extras]
+brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"]
+h2 = ["h2 (>=4,<5)"]
+socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"]
+zstd = ["zstandard (>=0.18.0)"]
+
+[[package]]
+name = "uvicorn"
+version = "0.30.6"
+description = "The lightning-fast ASGI server."
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "uvicorn-0.30.6-py3-none-any.whl", hash = "sha256:65fd46fe3fda5bdc1b03b94eb634923ff18cd35b2f084813ea79d1f103f711b5"},
+ {file = "uvicorn-0.30.6.tar.gz", hash = "sha256:4b15decdda1e72be08209e860a1e10e92439ad5b97cf44cc945fcbee66fc5788"},
+]
+
+[package.dependencies]
+click = ">=7.0"
+h11 = ">=0.8"
+
+[package.extras]
+standard = ["colorama (>=0.4)", "httptools (>=0.5.0)", "python-dotenv (>=0.13)", "pyyaml (>=5.1)", "uvloop (>=0.14.0,!=0.15.0,!=0.15.1)", "watchfiles (>=0.13)", "websockets (>=10.4)"]
+
+[[package]]
+name = "wikipedia"
+version = "1.4.0"
+description = "Wikipedia API for Python"
+optional = false
+python-versions = "*"
+files = [
+ {file = "wikipedia-1.4.0.tar.gz", hash = "sha256:db0fad1829fdd441b1852306e9856398204dc0786d2996dd2e0c8bb8e26133b2"},
+]
+
+[package.dependencies]
+beautifulsoup4 = "*"
+requests = ">=2.0.0,<3.0.0"
+
+[[package]]
+name = "yarl"
+version = "1.13.1"
+description = "Yet another URL library"
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "yarl-1.13.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:82e692fb325013a18a5b73a4fed5a1edaa7c58144dc67ad9ef3d604eccd451ad"},
+ {file = "yarl-1.13.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:df4e82e68f43a07735ae70a2d84c0353e58e20add20ec0af611f32cd5ba43fb4"},
+ {file = "yarl-1.13.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ec9dd328016d8d25702a24ee274932aebf6be9787ed1c28d021945d264235b3c"},
+ {file = "yarl-1.13.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5820bd4178e6a639b3ef1db8b18500a82ceab6d8b89309e121a6859f56585b05"},
+ {file = "yarl-1.13.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:86c438ce920e089c8c2388c7dcc8ab30dfe13c09b8af3d306bcabb46a053d6f7"},
+ {file = "yarl-1.13.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3de86547c820e4f4da4606d1c8ab5765dd633189791f15247706a2eeabc783ae"},
+ {file = "yarl-1.13.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8ca53632007c69ddcdefe1e8cbc3920dd88825e618153795b57e6ebcc92e752a"},
+ {file = "yarl-1.13.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d4ee1d240b84e2f213565f0ec08caef27a0e657d4c42859809155cf3a29d1735"},
+ {file = "yarl-1.13.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:c49f3e379177f4477f929097f7ed4b0622a586b0aa40c07ac8c0f8e40659a1ac"},
+ {file = "yarl-1.13.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:5c5e32fef09ce101fe14acd0f498232b5710effe13abac14cd95de9c274e689e"},
+ {file = "yarl-1.13.1-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:ab9524e45ee809a083338a749af3b53cc7efec458c3ad084361c1dbf7aaf82a2"},
+ {file = "yarl-1.13.1-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:b1481c048fe787f65e34cb06f7d6824376d5d99f1231eae4778bbe5c3831076d"},
+ {file = "yarl-1.13.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:31497aefd68036d8e31bfbacef915826ca2e741dbb97a8d6c7eac66deda3b606"},
+ {file = "yarl-1.13.1-cp310-cp310-win32.whl", hash = "sha256:1fa56f34b2236f5192cb5fceba7bbb09620e5337e0b6dfe2ea0ddbd19dd5b154"},
+ {file = "yarl-1.13.1-cp310-cp310-win_amd64.whl", hash = "sha256:1bbb418f46c7f7355084833051701b2301092e4611d9e392360c3ba2e3e69f88"},
+ {file = "yarl-1.13.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:216a6785f296169ed52cd7dcdc2612f82c20f8c9634bf7446327f50398732a51"},
+ {file = "yarl-1.13.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:40c6e73c03a6befb85b72da213638b8aaa80fe4136ec8691560cf98b11b8ae6e"},
+ {file = "yarl-1.13.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:2430cf996113abe5aee387d39ee19529327205cda975d2b82c0e7e96e5fdabdc"},
+ {file = "yarl-1.13.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9fb4134cc6e005b99fa29dbc86f1ea0a298440ab6b07c6b3ee09232a3b48f495"},
+ {file = "yarl-1.13.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:309c104ecf67626c033845b860d31594a41343766a46fa58c3309c538a1e22b2"},
+ {file = "yarl-1.13.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f90575e9fe3aae2c1e686393a9689c724cd00045275407f71771ae5d690ccf38"},
+ {file = "yarl-1.13.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9d2e1626be8712333a9f71270366f4a132f476ffbe83b689dd6dc0d114796c74"},
+ {file = "yarl-1.13.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5b66c87da3c6da8f8e8b648878903ca54589038a0b1e08dde2c86d9cd92d4ac9"},
+ {file = "yarl-1.13.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:cf1ad338620249f8dd6d4b6a91a69d1f265387df3697ad5dc996305cf6c26fb2"},
+ {file = "yarl-1.13.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:9915300fe5a0aa663c01363db37e4ae8e7c15996ebe2c6cce995e7033ff6457f"},
+ {file = "yarl-1.13.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:703b0f584fcf157ef87816a3c0ff868e8c9f3c370009a8b23b56255885528f10"},
+ {file = "yarl-1.13.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:1d8e3ca29f643dd121f264a7c89f329f0fcb2e4461833f02de6e39fef80f89da"},
+ {file = "yarl-1.13.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:7055bbade838d68af73aea13f8c86588e4bcc00c2235b4b6d6edb0dbd174e246"},
+ {file = "yarl-1.13.1-cp311-cp311-win32.whl", hash = "sha256:a3442c31c11088e462d44a644a454d48110f0588de830921fd201060ff19612a"},
+ {file = "yarl-1.13.1-cp311-cp311-win_amd64.whl", hash = "sha256:81bad32c8f8b5897c909bf3468bf601f1b855d12f53b6af0271963ee67fff0d2"},
+ {file = "yarl-1.13.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:f452cc1436151387d3d50533523291d5f77c6bc7913c116eb985304abdbd9ec9"},
+ {file = "yarl-1.13.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:9cec42a20eae8bebf81e9ce23fb0d0c729fc54cf00643eb251ce7c0215ad49fe"},
+ {file = "yarl-1.13.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:d959fe96e5c2712c1876d69af0507d98f0b0e8d81bee14cfb3f6737470205419"},
+ {file = "yarl-1.13.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b8c837ab90c455f3ea8e68bee143472ee87828bff19ba19776e16ff961425b57"},
+ {file = "yarl-1.13.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:94a993f976cdcb2dc1b855d8b89b792893220db8862d1a619efa7451817c836b"},
+ {file = "yarl-1.13.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2b2442a415a5f4c55ced0fade7b72123210d579f7d950e0b5527fc598866e62c"},
+ {file = "yarl-1.13.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3fdbf0418489525231723cdb6c79e7738b3cbacbaed2b750cb033e4ea208f220"},
+ {file = "yarl-1.13.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6b7f6e699304717fdc265a7e1922561b02a93ceffdaefdc877acaf9b9f3080b8"},
+ {file = "yarl-1.13.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:bcd5bf4132e6a8d3eb54b8d56885f3d3a38ecd7ecae8426ecf7d9673b270de43"},
+ {file = "yarl-1.13.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:2a93a4557f7fc74a38ca5a404abb443a242217b91cd0c4840b1ebedaad8919d4"},
+ {file = "yarl-1.13.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:22b739f99c7e4787922903f27a892744189482125cc7b95b747f04dd5c83aa9f"},
+ {file = "yarl-1.13.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:2db874dd1d22d4c2c657807562411ffdfabec38ce4c5ce48b4c654be552759dc"},
+ {file = "yarl-1.13.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:4feaaa4742517eaceafcbe74595ed335a494c84634d33961214b278126ec1485"},
+ {file = "yarl-1.13.1-cp312-cp312-win32.whl", hash = "sha256:bbf9c2a589be7414ac4a534d54e4517d03f1cbb142c0041191b729c2fa23f320"},
+ {file = "yarl-1.13.1-cp312-cp312-win_amd64.whl", hash = "sha256:d07b52c8c450f9366c34aa205754355e933922c79135125541daae6cbf31c799"},
+ {file = "yarl-1.13.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:95c6737f28069153c399d875317f226bbdea939fd48a6349a3b03da6829fb550"},
+ {file = "yarl-1.13.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:cd66152561632ed4b2a9192e7f8e5a1d41e28f58120b4761622e0355f0fe034c"},
+ {file = "yarl-1.13.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:6a2acde25be0cf9be23a8f6cbd31734536a264723fca860af3ae5e89d771cd71"},
+ {file = "yarl-1.13.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9a18595e6a2ee0826bf7dfdee823b6ab55c9b70e8f80f8b77c37e694288f5de1"},
+ {file = "yarl-1.13.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a31d21089894942f7d9a8df166b495101b7258ff11ae0abec58e32daf8088813"},
+ {file = "yarl-1.13.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:45f209fb4bbfe8630e3d2e2052535ca5b53d4ce2d2026bed4d0637b0416830da"},
+ {file = "yarl-1.13.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f722f30366474a99745533cc4015b1781ee54b08de73260b2bbe13316079851"},
+ {file = "yarl-1.13.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f3bf60444269345d712838bb11cc4eadaf51ff1a364ae39ce87a5ca8ad3bb2c8"},
+ {file = "yarl-1.13.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:942c80a832a79c3707cca46bd12ab8aa58fddb34b1626d42b05aa8f0bcefc206"},
+ {file = "yarl-1.13.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:44b07e1690f010c3c01d353b5790ec73b2f59b4eae5b0000593199766b3f7a5c"},
+ {file = "yarl-1.13.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:396e59b8de7e4d59ff5507fb4322d2329865b909f29a7ed7ca37e63ade7f835c"},
+ {file = "yarl-1.13.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:3bb83a0f12701c0b91112a11148b5217617982e1e466069d0555be9b372f2734"},
+ {file = "yarl-1.13.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:c92b89bffc660f1274779cb6fbb290ec1f90d6dfe14492523a0667f10170de26"},
+ {file = "yarl-1.13.1-cp313-cp313-win32.whl", hash = "sha256:269c201bbc01d2cbba5b86997a1e0f73ba5e2f471cfa6e226bcaa7fd664b598d"},
+ {file = "yarl-1.13.1-cp313-cp313-win_amd64.whl", hash = "sha256:1d0828e17fa701b557c6eaed5edbd9098eb62d8838344486248489ff233998b8"},
+ {file = "yarl-1.13.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:8be8cdfe20787e6a5fcbd010f8066227e2bb9058331a4eccddec6c0db2bb85b2"},
+ {file = "yarl-1.13.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:08d7148ff11cb8e886d86dadbfd2e466a76d5dd38c7ea8ebd9b0e07946e76e4b"},
+ {file = "yarl-1.13.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:4afdf84610ca44dcffe8b6c22c68f309aff96be55f5ea2fa31c0c225d6b83e23"},
+ {file = "yarl-1.13.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d0d12fe78dcf60efa205e9a63f395b5d343e801cf31e5e1dda0d2c1fb618073d"},
+ {file = "yarl-1.13.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:298c1eecfd3257aa16c0cb0bdffb54411e3e831351cd69e6b0739be16b1bdaa8"},
+ {file = "yarl-1.13.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c14c16831b565707149c742d87a6203eb5597f4329278446d5c0ae7a1a43928e"},
+ {file = "yarl-1.13.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5a9bacedbb99685a75ad033fd4de37129449e69808e50e08034034c0bf063f99"},
+ {file = "yarl-1.13.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:658e8449b84b92a4373f99305de042b6bd0d19bf2080c093881e0516557474a5"},
+ {file = "yarl-1.13.1-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:373f16f38721c680316a6a00ae21cc178e3a8ef43c0227f88356a24c5193abd6"},
+ {file = "yarl-1.13.1-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:45d23c4668d4925688e2ea251b53f36a498e9ea860913ce43b52d9605d3d8177"},
+ {file = "yarl-1.13.1-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:f7917697bcaa3bc3e83db91aa3a0e448bf5cde43c84b7fc1ae2427d2417c0224"},
+ {file = "yarl-1.13.1-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:5989a38ba1281e43e4663931a53fbf356f78a0325251fd6af09dd03b1d676a09"},
+ {file = "yarl-1.13.1-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:11b3ca8b42a024513adce810385fcabdd682772411d95bbbda3b9ed1a4257644"},
+ {file = "yarl-1.13.1-cp38-cp38-win32.whl", hash = "sha256:dcaef817e13eafa547cdfdc5284fe77970b891f731266545aae08d6cce52161e"},
+ {file = "yarl-1.13.1-cp38-cp38-win_amd64.whl", hash = "sha256:7addd26594e588503bdef03908fc207206adac5bd90b6d4bc3e3cf33a829f57d"},
+ {file = "yarl-1.13.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:a0ae6637b173d0c40b9c1462e12a7a2000a71a3258fa88756a34c7d38926911c"},
+ {file = "yarl-1.13.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:576365c9f7469e1f6124d67b001639b77113cfd05e85ce0310f5f318fd02fe85"},
+ {file = "yarl-1.13.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:78f271722423b2d4851cf1f4fa1a1c4833a128d020062721ba35e1a87154a049"},
+ {file = "yarl-1.13.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9d74f3c335cfe9c21ea78988e67f18eb9822f5d31f88b41aec3a1ec5ecd32da5"},
+ {file = "yarl-1.13.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1891d69a6ba16e89473909665cd355d783a8a31bc84720902c5911dbb6373465"},
+ {file = "yarl-1.13.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fb382fd7b4377363cc9f13ba7c819c3c78ed97c36a82f16f3f92f108c787cbbf"},
+ {file = "yarl-1.13.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9c8854b9f80693d20cec797d8e48a848c2fb273eb6f2587b57763ccba3f3bd4b"},
+ {file = "yarl-1.13.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bbf2c3f04ff50f16404ce70f822cdc59760e5e2d7965905f0e700270feb2bbfc"},
+ {file = "yarl-1.13.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:fb9f59f3848edf186a76446eb8bcf4c900fe147cb756fbbd730ef43b2e67c6a7"},
+ {file = "yarl-1.13.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:ef9b85fa1bc91c4db24407e7c4da93a5822a73dd4513d67b454ca7064e8dc6a3"},
+ {file = "yarl-1.13.1-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:098b870c18f1341786f290b4d699504e18f1cd050ed179af8123fd8232513424"},
+ {file = "yarl-1.13.1-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:8c723c91c94a3bc8033dd2696a0f53e5d5f8496186013167bddc3fb5d9df46a3"},
+ {file = "yarl-1.13.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:44a4c40a6f84e4d5955b63462a0e2a988f8982fba245cf885ce3be7618f6aa7d"},
+ {file = "yarl-1.13.1-cp39-cp39-win32.whl", hash = "sha256:84bbcdcf393139f0abc9f642bf03f00cac31010f3034faa03224a9ef0bb74323"},
+ {file = "yarl-1.13.1-cp39-cp39-win_amd64.whl", hash = "sha256:fc2931ac9ce9c61c9968989ec831d3a5e6fcaaff9474e7cfa8de80b7aff5a093"},
+ {file = "yarl-1.13.1-py3-none-any.whl", hash = "sha256:6a5185ad722ab4dd52d5fb1f30dcc73282eb1ed494906a92d1a228d3f89607b0"},
+ {file = "yarl-1.13.1.tar.gz", hash = "sha256:ec8cfe2295f3e5e44c51f57272afbd69414ae629ec7c6b27f5a410efc78b70a0"},
+]
+
+[package.dependencies]
+idna = ">=2.0"
+multidict = ">=4.0"
+
+[metadata]
+lock-version = "2.0"
+python-versions = ">=3.12,<3.13"
+content-hash = "4f933143b7f17beaa1c4e8bdc117978de07df01f9b8b0eb4eb11f88182230ee5"
diff --git a/integrations-service/pyproject.toml b/integrations-service/pyproject.toml
new file mode 100644
index 000000000..33173f2c2
--- /dev/null
+++ b/integrations-service/pyproject.toml
@@ -0,0 +1,42 @@
+[tool.poetry]
+name = "integrations"
+version = "0.1.0"
+description = "Integration service for various AI tools"
+authors = ["Your Name "]
+
+[tool.poetry.dependencies]
+python = ">=3.12,<3.13"
+langchain-community = "^0.3.0"
+fastapi = "^0.115.0"
+uvicorn = "^0.30.6"
+langchain = "^0.3.0"
+pydantic = {extras = ["email"], version = "^2.9.2"}
+duckduckgo-search = "^6.2.13"
+openai = "^1.47.1"
+tweepy = "^4.14.0"
+wikipedia = "^1.4.0"
+fire = "^0.6.0"
+pyowm = "^3.3.0"
+spider-client = "^0.0.70"
+browserbase = "^0.3.0"
+setuptools = "^75.1.0"
+beartype = "^0.19.0"
+
+[tool.poe.tasks]
+format = "ruff format"
+lint = "ruff check --select I --fix --unsafe-fixes integrations/**/*.py"
+typecheck = "pytype --config pytype.toml"
+check = [
+ "lint",
+ "format",
+ "typecheck",
+]
+
+[tool.poetry.dev-dependencies]
+pytest = "^6.2.5"
+pytype = "^2024.9.13"
+ruff = "^0.6.8"
+
+[build-system]
+requires = ["poetry-core>=1.0.0"]
+build-backend = "poetry.core.masonry.api"
diff --git a/integrations-service/pytype.toml b/integrations-service/pytype.toml
new file mode 100644
index 000000000..70b578106
--- /dev/null
+++ b/integrations-service/pytype.toml
@@ -0,0 +1,64 @@
+# NOTE: All relative paths are relative to the location of this file.
+
+[tool.pytype]
+
+# Space-separated list of files or directories to exclude.
+exclude = [
+]
+
+# Space-separated list of files or directories to process.
+inputs = [
+ '.',
+]
+
+# Keep going past errors to analyze as many files as possible.
+keep_going = true
+
+# Run N jobs in parallel. When 'auto' is used, this will be equivalent to the
+# number of CPUs on the host system.
+jobs = 'auto'
+
+# All pytype output goes here.
+output = '.pytype'
+
+# Platform (e.g., "linux", "win32") that the target code runs on.
+platform = 'linux'
+
+# Paths to source code directories, separated by ':'.
+pythonpath = '.'
+
+# Python version (major.minor) of the target code.
+python_version = '3.12'
+
+# Don't allow None to match bool. This flag is temporary and will be removed
+# once this behavior is enabled by default.
+none_is_not_bool = true
+
+# Variables initialized as None retain their None binding. This flag is
+# temporary and will be removed once this behavior is enabled by default.
+strict_none_binding = true
+
+# Space-separated list of error names to ignore.
+disable = [
+ 'pyi-error',
+]
+
+# --------------
+# Optional flags
+# --------------
+
+# Bind 'self' in methods with non-transparent decorators. This flag is temporary
+# and will be removed once this behavior is enabled by default.
+bind_decorated_methods = false
+
+# Enable parameter count checks for overriding methods with renamed arguments.
+# This flag is temporary and will be removed once this behavior is enabled by
+# default.
+overriding_renamed_parameter_count_checks = false
+
+# Opt-in: Do not allow Any as a return type.
+no_return_any = false
+
+# Opt-in: Require decoration with @typing.override when overriding a method or
+# nested class attribute of a parent class.
+require_override_decorator = false
\ No newline at end of file
diff --git a/memory-store/Dockerfile b/memory-store/Dockerfile
index af3cb6e42..852a5f687 100644
--- a/memory-store/Dockerfile
+++ b/memory-store/Dockerfile
@@ -1,3 +1,5 @@
+# syntax=docker/dockerfile:1
+# check=error=true
# We need to build the cozo binary first from the repo
# https://github.com/cozodb/cozo
# Then copy the binary to the ./bin directory
diff --git a/memory-store/docker-compose.yml b/memory-store/docker-compose.yml
index 3ed06f1de..51dcaea32 100644
--- a/memory-store/docker-compose.yml
+++ b/memory-store/docker-compose.yml
@@ -2,7 +2,7 @@ name: julep-memory-store
services:
memory-store:
- image: julepai/memory-store:${TAG}
+ image: julepai/memory-store:${TAG:-dev}
environment:
- COZO_AUTH_TOKEN=${COZO_AUTH_TOKEN}
- COZO_PORT=${COZO_PORT:-9070}
@@ -18,7 +18,7 @@ services:
labels:
ofelia.enabled: "true"
- ofelia.job-exec.backupcron.schedule: "@every 1h"
+ ofelia.job-exec.backupcron.schedule: "@every 3h"
ofelia.job-exec.backupcron.environment: '["COZO_PORT=${COZO_PORT}", "COZO_AUTH_TOKEN=${COZO_AUTH_TOKEN}", "COZO_BACKUP_DIR=${COZO_BACKUP_DIR}"]'
ofelia.job-exec.backupcron.command: bash /app/backup.sh
@@ -33,5 +33,6 @@ services:
volumes:
cozo_data:
+ external: true
cozo_backup:
external: true
\ No newline at end of file
diff --git a/prometheus/config/prometheus.yml b/prometheus/config/prometheus.yml
new file mode 100644
index 000000000..e556a2c53
--- /dev/null
+++ b/prometheus/config/prometheus.yml
@@ -0,0 +1,24 @@
+global:
+ scrape_interval: 15s
+ scrape_timeout: 10s
+ evaluation_interval: 15s
+alerting:
+ alertmanagers:
+ - follow_redirects: true
+ enable_http2: true
+ scheme: http
+ timeout: 10s
+ api_version: v2
+ static_configs:
+ - targets: []
+scrape_configs:
+- job_name: agents-api
+ honor_timestamps: true
+ scrape_interval: 15s
+ scrape_timeout: 10s
+ metrics_path: /metrics
+ scheme: http
+ follow_redirects: true
+ static_configs:
+ - targets:
+ - agents-api-multi-tenant:8080
diff --git a/prometheus/docker-compose.yml b/prometheus/docker-compose.yml
new file mode 100644
index 000000000..f3c53d966
--- /dev/null
+++ b/prometheus/docker-compose.yml
@@ -0,0 +1,23 @@
+name: prometheus
+
+services:
+ prometheus:
+ image: prom/prometheus
+ container_name: prometheus
+ profiles:
+ - multi-tenant
+
+ volumes:
+ - ./config/prometheus.yml:/etc/prometheus/prometheus.yml
+ - prometheus_data:/prometheus
+
+ depends_on:
+ agents-api-multi-tenant:
+ condition: service_started
+
+ command:
+ - '--config.file=/etc/prometheus/prometheus.yml'
+
+volumes:
+ prometheus_data:
+ external: true
diff --git a/scheduler/docker-compose.yml b/scheduler/docker-compose.yml
index e0f86ec9d..613cc9e67 100644
--- a/scheduler/docker-compose.yml
+++ b/scheduler/docker-compose.yml
@@ -53,7 +53,7 @@ services:
- POSTGRES_PASSWORD=${TEMPORAL_POSTGRES_PASSWORD}
healthcheck:
test: [ "CMD-SHELL", "pg_isready -d ${TEMPORAL_POSTGRES_DB:-temporal} -U ${TEMPORAL_POSTGRES_USER:-temporal}" ]
-
+
interval: 1s
timeout: 5s
retries: 10
@@ -63,8 +63,22 @@ services:
profiles:
- temporal-ui
environment:
+ # See: https://github.com/temporalio/ui-server/blob/main/docker/config-template.yaml
- TEMPORAL_ADDRESS=${TEMPORAL_ADDRESS:-temporal:7233}
- - TEMPORAL_CORS_ORIGINS=${TEMPORAL_CORS_ORIGINS:-http://localhost:3000}
+ # Note: Not setting it enables all origins
+ # - TEMPORAL_CORS_ORIGINS=${TEMPORAL_CORS_ORIGINS:-http://localhost:3000}
+ - TEMPORAL_CODEC_ENDPOINT=http://localhost/api/temporal
+ - TEMPORAL_UI_ENABLED=true
+ - TEMPORAL_FEEDBACK_URL=https://github.com/julep-ai/julep
+ - TEMPORAL_NOTIFY_ON_NEW_VERSION=false
+ - TEMPORAL_CSRF_COOKIE_INSECURE=true
+ # - TEMPORAL_HIDE_LOGS=true
+ # - TEMPORAL_BANNER_TEXT=gagagaga
+ # - TEMPORAL_DISABLE_WRITE_ACTIONS=true
+ # - TEMPORAL_HIDE_WORKFLOW_QUERY_ERRORS=true
+ # - TEMPORAL_REFRESH_WORKFLOW_COUNTS_DISABLED=true
+ - TEMPORAL_OPEN_API_ENABLED=true
+
ports:
- 9000:8080 # Since 8080 is already used by agents-api
diff --git a/scripts/readme_translator.py b/scripts/readme_translator.py
new file mode 100644
index 000000000..011763b52
--- /dev/null
+++ b/scripts/readme_translator.py
@@ -0,0 +1,75 @@
+import re
+from typing import List
+from pathlib import Path
+from functools import partial
+from deep_translator import GoogleTranslator
+import parmapper
+
+HTML_TAGS_PATTERN = r"(<[^>]+>)"
+CODEBLOCK_PATTERN = r"(```[\s\S]*?```|\n)"
+
+def create_translator(target: str) -> GoogleTranslator:
+ """
+ Create a translator for a given target language.
+ """
+ return GoogleTranslator(source="en", target=target)
+
+def translate_segment(translator: GoogleTranslator, segment: str) -> str:
+ """
+ Translate a given raw HTML content using the provided translator, preserving HTML tags and newlines.
+ """
+ if re.fullmatch(CODEBLOCK_PATTERN, segment) or segment == '\n':
+ return segment
+
+ segments = re.split(HTML_TAGS_PATTERN, segment)
+ translated_segments = []
+
+ for sub_segment in segments:
+ if re.fullmatch(HTML_TAGS_PATTERN, sub_segment):
+ translated_segments.append(sub_segment)
+ else:
+ try:
+ if re.fullmatch(r'^[!"#$%&\'()*+,\-./:;<=>?@[\]^_`{|}~]+$', sub_segment):
+ translated_segments.append(sub_segment)
+ continue
+
+ translated = translator.translate(sub_segment)
+ translated_segments.append(translated if translated else sub_segment)
+ except Exception as e:
+ print(f"Error translating segment '{sub_segment}': {e}")
+ translated_segments.append(sub_segment)
+
+ return "".join(translated_segments)
+
+def translate_readme(source: str, target: str) -> str:
+ """
+ Translate a README file from source to target language, preserving code blocks and newlines.
+ """
+ file_content = Path(source).read_text(encoding='utf-8')
+ translator = create_translator(target)
+ segments = re.split(CODEBLOCK_PATTERN, file_content)
+ segment_translation = partial(translate_segment, translator)
+ translated_segments = list(parmapper.parmap(segment_translation, segments))
+ return ''.join(translated_segments)
+
+def save_translated_readme(translated_content: str, lang: str) -> None:
+ """
+ Save the translated README content to a file.
+ """
+ filename = f"README-{lang.split('-')[-1].upper()}.md"
+ with open(filename, "w", encoding='utf-8') as file:
+ file.write(translated_content)
+
+def main() -> None:
+ """
+ Main function to translate README.md to multiple languages.
+ """
+ source_file = "README.md"
+ destination_langs = ["zh-CN", "ja", "fr"]
+
+ for lang in destination_langs:
+ translated_readme = translate_readme(source_file, lang)
+ save_translated_readme(translated_readme, lang)
+
+if __name__ == "__main__":
+ main()
\ No newline at end of file
diff --git a/sdks/node-sdk b/sdks/node-sdk
new file mode 160000
index 000000000..6ff96ce85
--- /dev/null
+++ b/sdks/node-sdk
@@ -0,0 +1 @@
+Subproject commit 6ff96ce8599538291aeb242e6d11650f2c490616
diff --git a/sdks/python-sdk b/sdks/python-sdk
new file mode 160000
index 000000000..3d763379e
--- /dev/null
+++ b/sdks/python-sdk
@@ -0,0 +1 @@
+Subproject commit 3d763379e986b38a9d7f24b99f7f6211f19591a0
diff --git a/typespec/.gitignore b/typespec/.gitignore
index 98d4239d8..d0791ce2c 100644
--- a/typespec/.gitignore
+++ b/typespec/.gitignore
@@ -1 +1,8 @@
-/tsp-output/
+# Ignore everything in tsp-output
+tsp-output/**/*.*
+
+# Don't ignore the openapi3 directory
+!tsp-output/@typespec/openapi3/
+
+# But don't ignore openapi-*.yaml files in tsp-output/@typespec/openapi3/
+!tsp-output/@typespec/openapi3/openapi-*.yaml
diff --git a/typespec/common/interfaces.tsp b/typespec/common/interfaces.tsp
index d44d8aab0..7b719418c 100644
--- a/typespec/common/interfaces.tsp
+++ b/typespec/common/interfaces.tsp
@@ -1,9 +1,11 @@
import "@typespec/http";
+import "@typespec/sse";
import "./scalars.tsp";
import "./types.tsp";
using TypeSpec.Http;
+using TypeSpec.SSE;
namespace Common;
@@ -136,32 +138,10 @@ interface ChildLimitOffsetPagination<
...PaginationOptions,
): {
- results: T[];
+ items: T[];
};
}
-interface ChildStreamEndpoint<
- T,
- DocString extends valueof string = "Stream events emitted by the parent"
-> {
- @get
- @doc(DocString)
- stream(
- @path
- @doc("ID of parent")
- id: uuid,
-
- @query
- @doc("Next page token")
- next_token: string | null = null,
- ): {
- @header contentType: eventStream;
-
- @body
- @doc("Stream of events emitted by the parent")
- body: T;
- };
-}
interface ChildCreateEndpoint<
CreateType,
@@ -274,3 +254,20 @@ interface ChildPatchEndpoint<
body: ResourceUpdatedResponse;
};
}
+
+interface ChildStreamEndpoint<
+ T,
+ DocString extends valueof string = "Stream events emitted by the parent"
+> {
+ @get
+ @doc(DocString)
+ stream(
+ @path
+ @doc("ID of parent")
+ id: uuid,
+
+ @query
+ @doc("Next page token")
+ next_token: string | null = null,
+ ): SSEStream>;
+}
\ No newline at end of file
diff --git a/typespec/common/scalars.tsp b/typespec/common/scalars.tsp
index 79eda2d99..95c92d0b8 100644
--- a/typespec/common/scalars.tsp
+++ b/typespec/common/scalars.tsp
@@ -7,6 +7,8 @@ namespace Common;
@format("uuid")
scalar uuid extends string;
+alias concreteType = numeric | string | boolean | null;
+
/**
* For Unicode character safety
* See: https://unicode.org/reports/tr31/
@@ -48,12 +50,8 @@ alias eventStream = "text/event-stream";
/** Different possible sources that can produce new entries */
alias entrySource = "api_request" | "api_response" | "tool_response" | "internal" | "summarizer" | "meta";
-/** Naming convention for tool references. Tools are resolved in order: `step-settings` -> `task` -> `agent` */
-@pattern("^(function|integration|system|api_call)\\.(\\w+)$")
-scalar toolRef extends string;
-
/** A simple python expression compatible with SimpleEval. */
scalar PyExpression extends string;
/** A valid jinja template. */
-scalar JinjaTemplate extends string;
\ No newline at end of file
+scalar JinjaTemplate extends string;
diff --git a/typespec/common/types.tsp b/typespec/common/types.tsp
index 7d954a80e..0cb4cd50d 100644
--- a/typespec/common/types.tsp
+++ b/typespec/common/types.tsp
@@ -1,6 +1,8 @@
+import "@typespec/events";
import "@typespec/http";
import "@typespec/openapi";
+using TypeSpec.Events;
using TypeSpec.Http;
using TypeSpec.OpenAPI;
@@ -11,6 +13,7 @@ namespace Common;
//
alias Metadata = Record;
+alias MetadataFilter = Record;
model ResourceCreatedResponse {
@doc("ID of created resource")
@@ -48,6 +51,11 @@ model PaginationOptions {
/** Sort direction */
@query direction: sortDirection = "asc",
- /** JSON string of object that should be used to filter objects by metadata */
- @query metadata_filter: string = "{}",
-}
\ No newline at end of file
+ /** Object to filter results by metadata */
+ @query metadata_filter: MetadataFilter,
+}
+
+@events
+union StreamEvent {
+ T;
+}
diff --git a/typespec/docs/models.tsp b/typespec/docs/models.tsp
index ee283fe02..f01b379c6 100644
--- a/typespec/docs/models.tsp
+++ b/typespec/docs/models.tsp
@@ -23,6 +23,10 @@ model Doc {
/** Contents of the document */
content: string | string[];
+
+ /** Embeddings for the document */
+ @visibility("read")
+ embeddings?: float32[] | float32[][];
}
/** Payload for creating a doc */
diff --git a/typespec/main.tsp b/typespec/main.tsp
index b3bb1278c..aefb8adfc 100644
--- a/typespec/main.tsp
+++ b/typespec/main.tsp
@@ -95,6 +95,9 @@ namespace Api {
@route("/docs")
interface IndividualDocsRoute extends Docs.IndividualDocEndpoints {}
+ @route("/tasks")
+ interface TasksGetRoute extends Tasks.GetEndpoints {}
+
@route("/agents/{id}/tasks")
interface TasksRoute extends Tasks.Endpoints {}
diff --git a/typespec/package-lock.json b/typespec/package-lock.json
index 2eb61490e..80ad055ad 100644
--- a/typespec/package-lock.json
+++ b/typespec/package-lock.json
@@ -1,19 +1,21 @@
{
"name": "julep-typespec",
- "version": "0.3.0",
+ "version": "0.4.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "julep-typespec",
- "version": "0.3.0",
+ "version": "0.4.0",
"dependencies": {
- "@typespec/compiler": "^0.59.1",
- "@typespec/http": "^0.59.1",
- "@typespec/openapi": "^0.59.0",
- "@typespec/openapi3": "^0.59.1",
- "@typespec/rest": "^0.59.1",
- "@typespec/versioning": "^0.59.0"
+ "@typespec/compiler": "^0.61.2",
+ "@typespec/events": "^0.61.0",
+ "@typespec/http": "^0.61.0",
+ "@typespec/openapi": "^0.61.0",
+ "@typespec/openapi3": "^0.61.0",
+ "@typespec/rest": "^0.61.0",
+ "@typespec/sse": "^0.61.0",
+ "@typespec/versioning": "^0.61.0"
}
},
"node_modules/@apidevtools/swagger-methods": {
@@ -60,9 +62,9 @@
}
},
"node_modules/@babel/runtime": {
- "version": "7.24.8",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.8.tgz",
- "integrity": "sha512-5F7SDGs1T72ZczbRwbGO9lQi0NLjQxzl6i4lJxLxfW9U5UluCSyEJeniWvnhl3/euNiqQVbo8zruhsDfid0esA==",
+ "version": "7.25.6",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.6.tgz",
+ "integrity": "sha512-VBj9MYyDb9tuLq7yzqjgzt6Q+IBQLrGZfdjOekyEirZPHxXWoTSGUTMrpsfi58Up73d13NfYLv8HT9vmznjzhQ==",
"license": "MIT",
"dependencies": {
"regenerator-runtime": "^0.14.0"
@@ -274,9 +276,9 @@
"license": "MIT"
},
"node_modules/@typespec/compiler": {
- "version": "0.59.1",
- "resolved": "https://registry.npmjs.org/@typespec/compiler/-/compiler-0.59.1.tgz",
- "integrity": "sha512-O2ljgr6YoFaIH6a8lWc90/czdv4B2X6N9wz4WsnQnVvgO0Tj0s+3xkvp4Tv59RKMhT0f3fK6dL8oEGO32FYk1A==",
+ "version": "0.61.2",
+ "resolved": "https://registry.npmjs.org/@typespec/compiler/-/compiler-0.61.2.tgz",
+ "integrity": "sha512-6QxYJd09VWssd/BvY+8eBxTVv085s1UNK63FdPrgT2lgI+j8VMMcpNR9m5l1zWlgGDM7sniA/Or8VCdVA6jerg==",
"license": "MIT",
"dependencies": {
"@babel/code-frame": "~7.24.7",
@@ -284,14 +286,14 @@
"change-case": "~5.4.4",
"globby": "~14.0.2",
"mustache": "~4.2.0",
- "picocolors": "~1.0.1",
+ "picocolors": "~1.1.0",
"prettier": "~3.3.3",
"prompts": "~2.4.2",
"semver": "^7.6.3",
"temporal-polyfill": "^0.2.5",
"vscode-languageserver": "~9.0.1",
- "vscode-languageserver-textdocument": "~1.0.11",
- "yaml": "~2.4.5",
+ "vscode-languageserver-textdocument": "~1.0.12",
+ "yaml": "~2.5.1",
"yargs": "~17.7.2"
},
"bin": {
@@ -302,39 +304,57 @@
"node": ">=18.0.0"
}
},
+ "node_modules/@typespec/events": {
+ "version": "0.61.0",
+ "resolved": "https://registry.npmjs.org/@typespec/events/-/events-0.61.0.tgz",
+ "integrity": "sha512-XUXy36qGo7v1ZBEK5WTD3TGXc4xr9rbL5U5f7aCabad4YHTi6r/2GMOVjuRJOiCJoMvEVeL1pWkhDZkBPbdd3A==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=18.0.0"
+ },
+ "peerDependencies": {
+ "@typespec/compiler": "~0.61.0"
+ }
+ },
"node_modules/@typespec/http": {
- "version": "0.59.1",
- "resolved": "https://registry.npmjs.org/@typespec/http/-/http-0.59.1.tgz",
- "integrity": "sha512-Ai8oCAO+Bw1HMSZ9gOI5Od4fNn/ul4HrVtTB01xFuLK6FQj854pxhzao8ylPnr7gIRQ327FV12/QfXR87yCiYQ==",
+ "version": "0.61.0",
+ "resolved": "https://registry.npmjs.org/@typespec/http/-/http-0.61.0.tgz",
+ "integrity": "sha512-7+AYHkzkc+p652GY9BcEbXY4OZa1fTr03MVmZeafvmbQbXfyzUU9eJld13M3v6NaUWqXWZ7nBNMISyKiXp/kSw==",
"license": "MIT",
"engines": {
"node": ">=18.0.0"
},
"peerDependencies": {
- "@typespec/compiler": "~0.59.0"
+ "@typespec/compiler": "~0.61.0",
+ "@typespec/streams": "~0.61.0"
+ },
+ "peerDependenciesMeta": {
+ "@typespec/streams": {
+ "optional": true
+ }
}
},
"node_modules/@typespec/openapi": {
- "version": "0.59.0",
- "resolved": "https://registry.npmjs.org/@typespec/openapi/-/openapi-0.59.0.tgz",
- "integrity": "sha512-do1Dm5w0MuK3994gYTBg6qMfgeIxmmsDqnz3zimYKMPpbnUBi4F6/o4iCfn0Fn9kaNl+H6UlOzZpsZW9xHui1Q==",
+ "version": "0.61.0",
+ "resolved": "https://registry.npmjs.org/@typespec/openapi/-/openapi-0.61.0.tgz",
+ "integrity": "sha512-3AF319Ae4yGVOscsCLQeedXUJJcL/NdGOR2/e/nFiL/AOVdgLfIRnpR0Ad9Zj9XAESh1fq9XSu4Mi7N1k4V7rw==",
"license": "MIT",
"engines": {
"node": ">=18.0.0"
},
"peerDependencies": {
- "@typespec/compiler": "~0.59.0",
- "@typespec/http": "~0.59.0"
+ "@typespec/compiler": "~0.61.0",
+ "@typespec/http": "~0.61.0"
}
},
"node_modules/@typespec/openapi3": {
- "version": "0.59.1",
- "resolved": "https://registry.npmjs.org/@typespec/openapi3/-/openapi3-0.59.1.tgz",
- "integrity": "sha512-89VbUbkWKxeFgE0w0hpVyk1UZ6ZHRxOhcAHvF5MgxQxEhs2ALXKAqapWjFQsYrLBhAUoWzdPFrJJUMbwF9kX0Q==",
+ "version": "0.61.0",
+ "resolved": "https://registry.npmjs.org/@typespec/openapi3/-/openapi3-0.61.0.tgz",
+ "integrity": "sha512-ALLsTkK1UiJBzvygV1Zk/yZaym+lOWroGeEUhQNXYShsq+/GLZkK0rl8sd76Gigq+TVXKMOEwUUvgfws/LMUJw==",
"license": "MIT",
"dependencies": {
"@readme/openapi-parser": "~2.6.0",
- "yaml": "~2.4.5"
+ "yaml": "~2.5.1"
},
"bin": {
"tsp-openapi3": "cmd/tsp-openapi3.js"
@@ -343,35 +363,63 @@
"node": ">=18.0.0"
},
"peerDependencies": {
- "@typespec/compiler": "~0.59.0",
- "@typespec/http": "~0.59.1",
- "@typespec/openapi": "~0.59.0",
- "@typespec/versioning": "~0.59.0"
+ "@typespec/compiler": "~0.61.0",
+ "@typespec/http": "~0.61.0",
+ "@typespec/openapi": "~0.61.0",
+ "@typespec/versioning": "~0.61.0"
}
},
"node_modules/@typespec/rest": {
- "version": "0.59.1",
- "resolved": "https://registry.npmjs.org/@typespec/rest/-/rest-0.59.1.tgz",
- "integrity": "sha512-uKU431jBYL2tVQWG5THA75+OtXDa1e8cMAafYK/JJRRiVRd8D/Epd8fp07dzlB8tFGrhCaGlekRMqFPFrHh2/A==",
+ "version": "0.61.0",
+ "resolved": "https://registry.npmjs.org/@typespec/rest/-/rest-0.61.0.tgz",
+ "integrity": "sha512-L9Oyor+l42p6S8GE+UvaZTi+dcu6WubGZKmaBRpX8mCZGsa69EgIK8DQoyxrfMcxAO4I5U0sfkzCKwCVFtRr9g==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=18.0.0"
+ },
+ "peerDependencies": {
+ "@typespec/compiler": "~0.61.0",
+ "@typespec/http": "~0.61.0"
+ }
+ },
+ "node_modules/@typespec/sse": {
+ "version": "0.61.0",
+ "resolved": "https://registry.npmjs.org/@typespec/sse/-/sse-0.61.0.tgz",
+ "integrity": "sha512-q9wqMTqRDQkgID51o9lXWkrF9Ndn67sZznzGvKpCS6pG7eDc0cigkTWFmV2Agag9HzoP2MdFMlvU/sJKECPtfg==",
"license": "MIT",
"engines": {
"node": ">=18.0.0"
},
"peerDependencies": {
- "@typespec/compiler": "~0.59.0",
- "@typespec/http": "~0.59.1"
+ "@typespec/compiler": "~0.61.0",
+ "@typespec/events": "~0.61.0",
+ "@typespec/http": "~0.61.0",
+ "@typespec/streams": "~0.61.0"
+ }
+ },
+ "node_modules/@typespec/streams": {
+ "version": "0.61.0",
+ "resolved": "https://registry.npmjs.org/@typespec/streams/-/streams-0.61.0.tgz",
+ "integrity": "sha512-MEFwYmYVibuTwVwJ6UKa9kgM3AP5bn/MWIhB/dTgYicXEgbUk+o9RHqg7JsySFyL0PO9XoqQBFiJhWM758f+pQ==",
+ "license": "MIT",
+ "peer": true,
+ "engines": {
+ "node": ">=18.0.0"
+ },
+ "peerDependencies": {
+ "@typespec/compiler": "~0.61.0"
}
},
"node_modules/@typespec/versioning": {
- "version": "0.59.0",
- "resolved": "https://registry.npmjs.org/@typespec/versioning/-/versioning-0.59.0.tgz",
- "integrity": "sha512-aihO/ux0lLmsuYAdGVkiBflSudcZokYG42SELk1FtMFo609G3Pd7ep7hau6unBnMIceQZejB0ow5UGRupK4X5A==",
+ "version": "0.61.0",
+ "resolved": "https://registry.npmjs.org/@typespec/versioning/-/versioning-0.61.0.tgz",
+ "integrity": "sha512-PIIug6eg3zc7E+BBHyNHHQD+OBq3FU465nhKrLEp35iVji/sYFuPc1ywnELDuwJVRWm6nvqNL1vtnc+4lEk+oA==",
"license": "MIT",
"engines": {
"node": ">=18.0.0"
},
"peerDependencies": {
- "@typespec/compiler": "~0.59.0"
+ "@typespec/compiler": "~0.61.0"
}
},
"node_modules/ajv": {
@@ -514,9 +562,9 @@
"license": "MIT"
},
"node_modules/escalade": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz",
- "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==",
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
+ "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==",
"license": "MIT",
"engines": {
"node": ">=6"
@@ -637,9 +685,9 @@
}
},
"node_modules/ignore": {
- "version": "5.3.1",
- "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz",
- "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==",
+ "version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz",
+ "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==",
"license": "MIT",
"engines": {
"node": ">= 4"
@@ -761,6 +809,7 @@
"version": "4.0.8",
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
"integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
+ "license": "MIT",
"dependencies": {
"braces": "^3.0.3",
"picomatch": "^2.3.1"
@@ -798,9 +847,9 @@
}
},
"node_modules/picocolors": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz",
- "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz",
+ "integrity": "sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==",
"license": "ISC"
},
"node_modules/picomatch": {
@@ -1059,9 +1108,9 @@
}
},
"node_modules/vscode-languageserver-textdocument": {
- "version": "1.0.11",
- "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.11.tgz",
- "integrity": "sha512-X+8T3GoiwTVlJbicx/sIAF+yuJAqz8VvwJyoMVhwEMoEKE/fkDmrqUgDMyBECcM2A2frVZIUj5HI/ErRXCfOeA==",
+ "version": "1.0.12",
+ "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.12.tgz",
+ "integrity": "sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA==",
"license": "MIT"
},
"node_modules/vscode-languageserver-types": {
@@ -1130,9 +1179,9 @@
}
},
"node_modules/yaml": {
- "version": "2.4.5",
- "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.5.tgz",
- "integrity": "sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg==",
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.5.1.tgz",
+ "integrity": "sha512-bLQOjaX/ADgQ20isPJRvF0iRUHIxVhYvr53Of7wGcWlO2jvtUlH5m87DsmulFVxRpNLOnI4tB6p/oh8D7kpn9Q==",
"license": "ISC",
"bin": {
"yaml": "bin.mjs"
diff --git a/typespec/package.json b/typespec/package.json
index a7b3d7ee4..6d435a832 100644
--- a/typespec/package.json
+++ b/typespec/package.json
@@ -1,14 +1,16 @@
{
"name": "julep-typespec",
- "version": "0.3.0",
+ "version": "0.4.0",
"type": "module",
"dependencies": {
- "@typespec/compiler": "^0.59.1",
- "@typespec/http": "^0.59.1",
- "@typespec/openapi": "^0.59.0",
- "@typespec/openapi3": "^0.59.1",
- "@typespec/rest": "^0.59.1",
- "@typespec/versioning": "^0.59.0"
+ "@typespec/compiler": "^0.61.2",
+ "@typespec/events": "^0.61.0",
+ "@typespec/http": "^0.61.0",
+ "@typespec/openapi": "^0.61.0",
+ "@typespec/openapi3": "^0.61.0",
+ "@typespec/rest": "^0.61.0",
+ "@typespec/sse": "^0.61.0",
+ "@typespec/versioning": "^0.61.0"
},
"private": true
}
diff --git a/typespec/sessions/models.tsp b/typespec/sessions/models.tsp
index aecec4ba1..dfbb6ea41 100644
--- a/typespec/sessions/models.tsp
+++ b/typespec/sessions/models.tsp
@@ -62,6 +62,15 @@ model Session {
/** Action to start on context window overflow */
context_overflow: ContextOverflowType | null = null;
+ /** Whether to forward the tool results to the model when available.
+ * "true" => always forward
+ * "false" => never forward
+ * null => forward if applicable (default)
+ *
+ * If a tool call is made, the tool's output will be sent back to the model as the model's input.
+ * If a tool call is not made, the model's output will be returned as is. */
+ forward_tool_results: boolean | null = null;
+
...HasId;
...HasMetadata;
...HasTimestamps;
diff --git a/typespec/tasks/endpoints.tsp b/typespec/tasks/endpoints.tsp
index 2d9ec422b..850eacdf3 100644
--- a/typespec/tasks/endpoints.tsp
+++ b/typespec/tasks/endpoints.tsp
@@ -15,6 +15,8 @@ namespace Tasks;
// TASK ENDPOINTS
//
+interface GetEndpoints extends GetEndpoint {}
+
interface CreateOrUpdateEndpoints {
@post
@doc("Create or update a task")
diff --git a/typespec/tasks/models.tsp b/typespec/tasks/models.tsp
index 4ec23f31b..b8b115861 100644
--- a/typespec/tasks/models.tsp
+++ b/typespec/tasks/models.tsp
@@ -30,6 +30,24 @@ model TaskTool extends CreateToolRequest {
inherited?: boolean = false;
}
+/** Reference to a tool by id */
+model ToolRefById {
+ @visibility("read", "create")
+ id?: uuid;
+}
+
+/** Reference to a tool by name */
+model ToolRefByName {
+ @visibility("read", "create")
+ name?: validPythonIdentifier;
+}
+
+/** Reference to a tool */
+model ToolRef {
+ @visibility("read", "create")
+ ref: ToolRefById | ToolRefByName;
+}
+
/** Object describing a Task */
model Task {
@visibility("read", "create")
diff --git a/typespec/tasks/steps.tsp b/typespec/tasks/steps.tsp
index d9be46577..ea4d84d79 100644
--- a/typespec/tasks/steps.tsp
+++ b/typespec/tasks/steps.tsp
@@ -4,6 +4,7 @@ import "../chat";
import "../common";
import "../docs";
import "../entries";
+import "../tools";
import "./step_kind.tsp";
@@ -13,6 +14,7 @@ using Chat;
using Common;
using Docs;
using Entries;
+using Tools;
namespace Tasks;
@@ -39,6 +41,10 @@ model BaseWorkflowStep {
kind_: T;
}
+alias SequentialWorkflowStep =
+ | WaitForInputStep
+ | MappableWorkflowStep;
+
alias MappableWorkflowStep =
| EvaluateStep
| ToolCallStep
@@ -46,15 +52,13 @@ alias MappableWorkflowStep =
| GetStep
| SetStep
| LogStep
- | EmbedStep
- | SearchStep;
+ | YieldStep;
alias NonConditionalWorkflowStep =
| MappableWorkflowStep
| ReturnStep
| SleepStep
| ErrorWorkflowStep
- | YieldStep
| WaitForInputStep;
alias ConditionalStep = IfElseWorkflowStep | SwitchStep;
@@ -76,10 +80,10 @@ model ToolCallStep extends BaseWorkflowStep<"tool_call"> {
model ToolCallStepDef {
/** The tool to run */
- tool: toolRef;
+ tool: validPythonIdentifier;
/** The input parameters for the tool (defaults to last step output) */
- arguments: ExpressionObject | "_" = "_";
+ arguments: NestedExpressionObject | "_" = "_";
}
model PromptStep extends BaseWorkflowStep<"prompt"> {
@@ -93,8 +97,26 @@ model PromptStepDef {
/** The prompt to run */
prompt: JinjaTemplate | InputChatMLMessage[];
+ /** The tools to use for the prompt */
+ tools: "all" | (ToolRef | CreateToolRequest)[] = #[];
+
+ /** The tool choice for the prompt */
+ tool_choice?: ToolChoiceOption;
+
/** Settings for the prompt */
settings?: ChatSettings;
+
+ /** Whether to unwrap the output of the prompt step, equivalent to `response.choices[0].message.content` */
+ unwrap?: boolean = false;
+
+ /** Whether to forward the tool results to the model when available.
+ * "true" => always forward
+ * "false" => never forward
+ * null => forward if applicable (default)
+ *
+ * If a tool call is made, the tool's output will be used as the model's input.
+ * If a tool call is not made, the model's output will be used as the next step's input. */
+ forward_tool_results: boolean | null = null;
}
model EvaluateStep extends BaseWorkflowStep<"evaluate"> {
@@ -138,34 +160,6 @@ model LogStepDef {
log: JinjaTemplate;
}
-////////////////////////
-/// Doc search steps ///
-////////////////////////
-
-model EmbedStep extends BaseWorkflowStep<"embed"> {
- @visibility("read")
- kind_: "embed" = "embed";
-
- ...EmbedStepDef;
-}
-
-model EmbedStepDef {
- /** The text to embed */
- embed: EmbedQueryRequest;
-}
-
-model SearchStep extends BaseWorkflowStep<"search"> {
- @visibility("read")
- kind_: "search" = "search";
-
- ...SearchStepDef;
-}
-
-model SearchStepDef {
- /** The search query */
- search: DocSearchRequest;
-}
-
///////////////////////
/// Key-value steps ///
///////////////////////
@@ -217,7 +211,7 @@ model ForeachDo {
in: TypedExpression>;
/** The steps to run for each iteration */
- do: MappableWorkflowStep;
+ do: SequentialWorkflowStep;
}
model ForeachStep extends BaseWorkflowStep<"foreach"> {
diff --git a/typespec/tools/models.tsp b/typespec/tools/models.tsp
index bab70b643..de509dec4 100644
--- a/typespec/tools/models.tsp
+++ b/typespec/tools/models.tsp
@@ -8,6 +8,23 @@ namespace Tools;
// TOOL MODELS
//
+// TODO: Split these into different files
+
+/** A valid HTTP method */
+alias httpMethod = "GET" | "POST" | "PUT" | "DELETE" | "PATCH" | "HEAD" | "OPTIONS" | "CONNECT" | "TRACE";
+
+/** Integration provider name */
+alias integrationProvider = (
+ | "dummy"
+ | "hacker_news"
+ | "weather"
+ | "wikipedia"
+ | "spider"
+ | "brave"
+ | "browserbase"
+ | "email"
+);
+
enum ToolType {
/** A tool that emulates a function call */
function,
@@ -34,27 +51,139 @@ model FunctionDef {
/** DO NOT USE: This will be overriden by the tool name. Here only for compatibility reasons. */
name?: null = null;
- /** Description of the function */
- description?: identifierSafeUnicode;
+ /** DO NOT USE: This will be overriden by the tool description. Here only for compatibility reasons. */
+ description?: null = null;
/** The parameters the function accepts */
parameters?: FunctionParameters;
}
-// TODO: We should use this model for all tools, not just functions and discriminate on the type
-model Tool {
- /** Whether this tool is a `function`, `api_call`, `system` etc. (Only `function` tool supported right now) */
- type: ToolType = ToolType.function;
+// TODO: Add granular definitions for each integration
+
+/** Integration definition */
+model IntegrationDef {
+ /** The provider of the integration */
+ provider: integrationProvider | string;
+
+ /** The specific method of the integration to call */
+ method?: string;
+
+ /** The setup parameters the integration accepts */
+ setup?: FunctionParameters;
+
+ /** The arguments to pre-apply to the integration call */
+ arguments?: FunctionParameters;
+}
+
+//
+// SYSTEM TOOL MODELS
+//
+
+alias resourceType = (
+ | "agent"
+ | "user"
+ | "task"
+ | "execution"
+ | "doc"
+ | "session"
+ | "job"
+);
+
+alias subresourceType = (
+ | "tool"
+ | "doc"
+ | "execution"
+ | "transition"
+);
+
+alias operationType = (
+ | "create"
+ | "update"
+ | "patch"
+ | "create_or_update"
+ | "embed"
+ | "change_status"
+ | "search"
+ | "chat"
+ | "history"
+ | "delete"
+ | "get"
+ | "list"
+);
+
+// TODO: Add granular definitions for each system call
+
+/** System definition */
+model SystemDef {
+ /** Resource is the name of the resource to use */
+ resource: resourceType;
+
+ /** Operation is the name of the operation to perform */
+ operation: operationType;
+
+ /** Resource id (if applicable) */
+ resource_id?: uuid;
+
+ /** Sub-resource type (if applicable) */
+ subresource?: subresourceType;
+
+ /** The arguments to pre-apply to the system call */
+ arguments?: FunctionParameters;
+}
+
+/** API call definition */
+model ApiCallDef {
+ /** The HTTP method to use */
+ method: httpMethod;
+
+ /** The URL to call */
+ url: url;
+
+ /** The headers to send with the request */
+ headers?: Record;
+
+ /** The content as base64 to send with the request */
+ content?: string;
+
+ /** The data to send as form data */
+ data?: Record;
+
+ /** JSON body to send with the request */
+ json?: Record;
+
+ /** Cookies */
+ cookies?: Record;
+ /** The parameters to send with the request */
+ params?: string | Record;
+
+ /** Follow redirects */
+ follow_redirects?: boolean;
+
+ /** The timeout for the request */
+ timeout?: uint8;
+}
+
+
+model Tool {
/** Name of the tool (must be unique for this agent and a valid python identifier string )*/
name: validPythonIdentifier;
+ /** Description of the tool */
+ description?: string;
+
/** The function to call */
- function: FunctionDef;
- integration?: unknown;
- system?: unknown;
- api_call?: unknown;
+ function?: FunctionDef;
+
+ /** The integration to call */
+ integration?: IntegrationDef;
+
+ /** The system to call */
+ system?: SystemDef;
+
+ /** The API call to make */
+ api_call?: ApiCallDef;
...HasTimestamps;
...HasId;
@@ -65,22 +194,11 @@ model FunctionCallOption {
name: string;
}
-@discriminator("type")
model NamedToolChoice {
- /** Whether this tool is a `function`, `api_call`, `system` etc. (Only `function` tool supported right now) */
- type: ToolType;
-
function?: FunctionCallOption;
- integration?: unknown;
- system?: unknown;
- api_call?: unknown;
-}
-
-model NamedFunctionChoice extends NamedToolChoice {
- type: ToolType.function;
-
- /** The function to call */
- function: FunctionCallOption;
+ integration?: never;
+ system?: never;
+ api_call?: never;
}
model ToolResponse {
@@ -112,9 +230,9 @@ model ChosenToolCall {
type: ToolType;
function?: FunctionCallOption;
- integration?: unknown;
- system?: unknown;
- api_call?: unknown;
+ integration?: never;
+ system?: never;
+ api_call?: never;
...HasId;
}
diff --git a/typespec/tsp-output/@typespec/openapi3/openapi-0.4.0.yaml b/typespec/tsp-output/@typespec/openapi3/openapi-0.4.0.yaml
new file mode 100644
index 000000000..cebe19ffc
--- /dev/null
+++ b/typespec/tsp-output/@typespec/openapi3/openapi-0.4.0.yaml
@@ -0,0 +1,6244 @@
+openapi: 3.0.0
+info:
+ title: Julep API
+ termsOfService: https://julep.ai/terms
+ contact:
+ name: Julep AI
+ url: https://julep.ai
+ email: developers@julep.ai
+ license:
+ name: Apache 2.0
+ url: https://www.apache.org/licenses/LICENSE-2.0.html
+ summary: A backend for creating stateful AI apps
+ description: Julep is a backend for creating stateful AI apps with background tasks and long-term memory easily.
+ version: 0.4.0
+externalDocs:
+ url: https://docs.julep.ai
+ description: Julep API documentation
+tags: []
+paths:
+ /agents:
+ get:
+ operationId: AgentsRoute_list
+ description: List Agents (paginated)
+ parameters:
+ - $ref: '#/components/parameters/Common.PaginationOptions.limit'
+ - $ref: '#/components/parameters/Common.PaginationOptions.offset'
+ - $ref: '#/components/parameters/Common.PaginationOptions.sort_by'
+ - $ref: '#/components/parameters/Common.PaginationOptions.direction'
+ - $ref: '#/components/parameters/Common.PaginationOptions.metadata_filter'
+ responses:
+ '200':
+ description: The request has succeeded.
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ items:
+ type: array
+ items:
+ $ref: '#/components/schemas/Agents.Agent'
+ required:
+ - items
+ post:
+ operationId: AgentsRoute_create
+ description: Create a new Agent
+ parameters: []
+ responses:
+ '201':
+ description: The request has succeeded and a new resource has been created as a result.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Common.ResourceCreatedResponse'
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Agents.CreateAgentRequest'
+ /agents/{id}:
+ post:
+ operationId: AgentsRoute_createOrUpdate
+ description: Create or update an Agent
+ parameters:
+ - $ref: '#/components/parameters/Agents.CreateOrUpdateAgentRequest.id'
+ responses:
+ '200':
+ description: The request has succeeded.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Common.ResourceUpdatedResponse'
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Agents.UpdateAgentRequest'
+ put:
+ operationId: AgentsRoute_update
+ description: Update an existing Agent by id (overwrites existing values; use PATCH for merging instead)
+ parameters:
+ - name: id
+ in: path
+ required: true
+ description: ID of the resource
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ responses:
+ '200':
+ description: The request has succeeded.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Common.ResourceUpdatedResponse'
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Agents.UpdateAgentRequest'
+ patch:
+ operationId: AgentsRoute_patch
+ description: Update an existing Agent by id (merges with existing values)
+ parameters:
+ - name: id
+ in: path
+ required: true
+ description: ID of the resource
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ responses:
+ '200':
+ description: The request has succeeded.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Common.ResourceUpdatedResponse'
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Agents.PatchAgentRequest'
+ delete:
+ operationId: AgentsRoute_delete
+ description: Delete Agent by id
+ parameters:
+ - name: id
+ in: path
+ required: true
+ description: ID of the resource
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ responses:
+ '202':
+ description: The request has been accepted for processing, but processing has not yet completed.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Common.ResourceDeletedResponse'
+ get:
+ operationId: AgentsRoute_get
+ description: Get an Agent by id
+ parameters:
+ - name: id
+ in: path
+ required: true
+ description: ID of the resource
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ responses:
+ '200':
+ description: The request has succeeded.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Agents.Agent'
+ /agents/{id}/docs:
+ get:
+ operationId: AgentDocsRoute_list
+ description: List Docs owned by an Agent
+ parameters:
+ - name: id
+ in: path
+ required: true
+ description: ID of parent
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ - $ref: '#/components/parameters/Common.PaginationOptions.limit'
+ - $ref: '#/components/parameters/Common.PaginationOptions.offset'
+ - $ref: '#/components/parameters/Common.PaginationOptions.sort_by'
+ - $ref: '#/components/parameters/Common.PaginationOptions.direction'
+ - $ref: '#/components/parameters/Common.PaginationOptions.metadata_filter'
+ responses:
+ '200':
+ description: The request has succeeded.
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ items:
+ type: array
+ items:
+ $ref: '#/components/schemas/Docs.Doc'
+ required:
+ - items
+ post:
+ operationId: AgentDocsRoute_create
+ description: Create a Doc for this Agent
+ parameters:
+ - name: id
+ in: path
+ required: true
+ description: ID of parent resource
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ responses:
+ '201':
+ description: The request has succeeded and a new resource has been created as a result.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Common.ResourceCreatedResponse'
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Docs.CreateDocRequest'
+ /agents/{id}/docs/{child_id}:
+ delete:
+ operationId: AgentDocsRoute_delete
+ description: Delete a Doc for this Agent
+ parameters:
+ - name: id
+ in: path
+ required: true
+ description: ID of parent resource
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ - name: child_id
+ in: path
+ required: true
+ description: ID of the resource to be deleted
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ responses:
+ '202':
+ description: The request has been accepted for processing, but processing has not yet completed.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Common.ResourceDeletedResponse'
+ /agents/{id}/search:
+ post:
+ operationId: AgentsDocsSearchRoute_search
+ description: Search Docs owned by an Agent
+ parameters:
+ - name: id
+ in: path
+ required: true
+ description: ID of the parent
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ responses:
+ '200':
+ description: The request has succeeded.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Docs.DocSearchResponse'
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ body:
+ anyOf:
+ - $ref: '#/components/schemas/Docs.VectorDocSearchRequest'
+ - $ref: '#/components/schemas/Docs.TextOnlyDocSearchRequest'
+ - $ref: '#/components/schemas/Docs.HybridDocSearchRequest'
+ required:
+ - body
+ /agents/{id}/tasks:
+ get:
+ operationId: TasksRoute_list
+ description: List tasks (paginated)
+ parameters:
+ - name: id
+ in: path
+ required: true
+ description: ID of parent
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ - $ref: '#/components/parameters/Common.PaginationOptions.limit'
+ - $ref: '#/components/parameters/Common.PaginationOptions.offset'
+ - $ref: '#/components/parameters/Common.PaginationOptions.sort_by'
+ - $ref: '#/components/parameters/Common.PaginationOptions.direction'
+ - $ref: '#/components/parameters/Common.PaginationOptions.metadata_filter'
+ responses:
+ '200':
+ description: The request has succeeded.
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ items:
+ type: array
+ items:
+ $ref: '#/components/schemas/Tasks.Task'
+ required:
+ - items
+ post:
+ operationId: TasksRoute_create
+ description: Create a new task
+ parameters:
+ - name: id
+ in: path
+ required: true
+ description: ID of parent resource
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ responses:
+ '200':
+ description: The request has succeeded.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Common.ResourceCreatedResponse'
+ requestBody:
+ required: true
+ content:
+ application/yaml:
+ schema:
+ $ref: '#/components/schemas/Tasks.CreateTaskRequest'
+ text/x-yaml:
+ schema:
+ $ref: '#/components/schemas/Tasks.CreateTaskRequest'
+ text/yaml:
+ schema:
+ $ref: '#/components/schemas/Tasks.CreateTaskRequest'
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Tasks.CreateTaskRequest'
+ /agents/{id}/tasks/{child_id}:
+ put:
+ operationId: TasksRoute_update
+ description: Update an existing task (overwrite existing values)
+ parameters:
+ - name: id
+ in: path
+ required: true
+ description: ID of parent resource
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ - name: child_id
+ in: path
+ required: true
+ description: ID of the resource to be updated
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ responses:
+ '200':
+ description: The request has succeeded.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Common.ResourceUpdatedResponse'
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Tasks.UpdateTaskRequest'
+ patch:
+ operationId: TasksRoute_patch
+ description: Update an existing task (merges with existing values)
+ parameters:
+ - name: id
+ in: path
+ required: true
+ description: ID of parent resource
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ - name: child_id
+ in: path
+ required: true
+ description: ID of the resource to be patched
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ responses:
+ '200':
+ description: The request has succeeded.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Common.ResourceUpdatedResponse'
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Tasks.PatchTaskRequest'
+ delete:
+ operationId: TasksRoute_delete
+ description: Delete a task by its id
+ parameters:
+ - name: id
+ in: path
+ required: true
+ description: ID of parent resource
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ - name: child_id
+ in: path
+ required: true
+ description: ID of the resource to be deleted
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ responses:
+ '202':
+ description: The request has been accepted for processing, but processing has not yet completed.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Common.ResourceDeletedResponse'
+ /agents/{id}/tools:
+ get:
+ operationId: AgentToolsRoute_list
+ description: List tools of the given agent
+ parameters:
+ - name: id
+ in: path
+ required: true
+ description: ID of parent
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ - $ref: '#/components/parameters/Common.PaginationOptions.limit'
+ - $ref: '#/components/parameters/Common.PaginationOptions.offset'
+ - $ref: '#/components/parameters/Common.PaginationOptions.sort_by'
+ - $ref: '#/components/parameters/Common.PaginationOptions.direction'
+ - $ref: '#/components/parameters/Common.PaginationOptions.metadata_filter'
+ responses:
+ '200':
+ description: The request has succeeded.
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ items:
+ type: array
+ items:
+ $ref: '#/components/schemas/Tools.Tool'
+ required:
+ - items
+ post:
+ operationId: AgentToolsRoute_create
+ description: Create a new tool for this agent
+ parameters:
+ - name: id
+ in: path
+ required: true
+ description: ID of parent resource
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ responses:
+ '201':
+ description: The request has succeeded and a new resource has been created as a result.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Common.ResourceCreatedResponse'
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Agents.CreateAgentRequest'
+ /agents/{id}/tools/{child_id}:
+ put:
+ operationId: AgentToolsRoute_update
+ description: Update an existing tool (overwrite existing values)
+ parameters:
+ - name: id
+ in: path
+ required: true
+ description: ID of parent resource
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ - name: child_id
+ in: path
+ required: true
+ description: ID of the resource to be updated
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ responses:
+ '200':
+ description: The request has succeeded.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Common.ResourceUpdatedResponse'
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Tools.UpdateToolRequest'
+ patch:
+ operationId: AgentToolsRoute_patch
+ description: Update an existing tool (merges with existing values)
+ parameters:
+ - name: id
+ in: path
+ required: true
+ description: ID of parent resource
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ - name: child_id
+ in: path
+ required: true
+ description: ID of the resource to be patched
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ responses:
+ '200':
+ description: The request has succeeded.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Common.ResourceUpdatedResponse'
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Tools.PatchToolRequest'
+ delete:
+ operationId: AgentToolsRoute_delete
+ description: Delete an existing tool by id
+ parameters:
+ - name: id
+ in: path
+ required: true
+ description: ID of parent resource
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ - name: child_id
+ in: path
+ required: true
+ description: ID of the resource to be deleted
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ responses:
+ '202':
+ description: The request has been accepted for processing, but processing has not yet completed.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Common.ResourceDeletedResponse'
+ /agents/{parent_id}/tasks/{id}:
+ post:
+ operationId: TasksCreateOrUpdateRoute_createOrUpdate
+ description: Create or update a task
+ parameters:
+ - name: parent_id
+ in: path
+ required: true
+ description: ID of the agent
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ - $ref: '#/components/parameters/Tasks.CreateOrUpdateTaskRequest.id'
+ responses:
+ '201':
+ description: The request has succeeded and a new resource has been created as a result.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Common.ResourceUpdatedResponse'
+ requestBody:
+ required: true
+ content:
+ application/yaml:
+ schema:
+ $ref: '#/components/schemas/Tasks.CreateTaskRequest'
+ text/x-yaml:
+ schema:
+ $ref: '#/components/schemas/Tasks.CreateTaskRequest'
+ text/yaml:
+ schema:
+ $ref: '#/components/schemas/Tasks.CreateTaskRequest'
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Tasks.CreateTaskRequest'
+ /docs/{id}:
+ get:
+ operationId: IndividualDocsRoute_get
+ description: Get Doc by id
+ parameters:
+ - name: id
+ in: path
+ required: true
+ description: ID of the resource
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ responses:
+ '200':
+ description: The request has succeeded.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Docs.Doc'
+ /embed:
+ post:
+ operationId: EmbedRoute_embed
+ description: Embed a query for search
+ parameters: []
+ responses:
+ '200':
+ description: The request has succeeded.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Docs.EmbedQueryResponse'
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ body:
+ $ref: '#/components/schemas/Docs.EmbedQueryRequest'
+ required:
+ - body
+ /executions:
+ post:
+ operationId: ExecutionsRoute_resumeWithTaskToken
+ description: Resume an execution with a task token
+ parameters:
+ - name: task_token
+ in: query
+ required: true
+ description: A Task Token is a unique identifier for a specific Task Execution.
+ schema:
+ type: string
+ explode: false
+ responses:
+ '200':
+ description: The request has succeeded.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Common.ResourceUpdatedResponse'
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Executions.TaskTokenResumeExecutionRequest'
+ description: Request to resume an execution with a task token
+ security:
+ - {}
+ /executions/{id}:
+ get:
+ operationId: ExecutionsRoute_get
+ description: Get an Execution by id
+ parameters:
+ - name: id
+ in: path
+ required: true
+ description: ID of the resource
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ responses:
+ '200':
+ description: The request has succeeded.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Executions.Execution'
+ put:
+ operationId: ExecutionsRoute_update
+ description: Update an existing Execution
+ parameters:
+ - name: id
+ in: path
+ required: true
+ description: ID of the resource
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ responses:
+ '200':
+ description: The request has succeeded.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Common.ResourceUpdatedResponse'
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Executions.UpdateExecutionRequest'
+ /executions/{id}/transitions:
+ get:
+ operationId: ExecutionTransitionsRoute_list
+ description: List the Transitions of an Execution by id
+ parameters:
+ - name: id
+ in: path
+ required: true
+ description: ID of parent
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ - $ref: '#/components/parameters/Common.PaginationOptions.limit'
+ - $ref: '#/components/parameters/Common.PaginationOptions.offset'
+ - $ref: '#/components/parameters/Common.PaginationOptions.sort_by'
+ - $ref: '#/components/parameters/Common.PaginationOptions.direction'
+ - $ref: '#/components/parameters/Common.PaginationOptions.metadata_filter'
+ responses:
+ '200':
+ description: The request has succeeded.
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ items:
+ type: array
+ items:
+ type: object
+ properties:
+ transitions:
+ type: array
+ items:
+ $ref: '#/components/schemas/Executions.Transition'
+ required:
+ - transitions
+ required:
+ - items
+ /executions/{id}/transitions.stream:
+ get:
+ operationId: ExecutionTransitionsStreamRoute_stream
+ description: Stream events emitted by the given execution
+ parameters:
+ - name: id
+ in: path
+ required: true
+ description: ID of parent
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ - name: next_token
+ in: query
+ required: true
+ description: Next page token
+ schema:
+ type: string
+ nullable: true
+ default: null
+ explode: false
+ responses:
+ '200':
+ description: The request has succeeded.
+ content:
+ text/event-stream:
+ schema:
+ type: string
+ /jobs/{id}:
+ get:
+ operationId: JobRoute_get
+ description: Get the status of an existing Job by its id
+ parameters:
+ - name: id
+ in: path
+ required: true
+ description: ID of the resource
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ responses:
+ '200':
+ description: The request has succeeded.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Jobs.JobStatus'
+ /sessions:
+ get:
+ operationId: SessionsRoute_list
+ description: List sessions (paginated)
+ parameters:
+ - $ref: '#/components/parameters/Common.PaginationOptions.limit'
+ - $ref: '#/components/parameters/Common.PaginationOptions.offset'
+ - $ref: '#/components/parameters/Common.PaginationOptions.sort_by'
+ - $ref: '#/components/parameters/Common.PaginationOptions.direction'
+ - $ref: '#/components/parameters/Common.PaginationOptions.metadata_filter'
+ responses:
+ '200':
+ description: The request has succeeded.
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ items:
+ type: array
+ items:
+ $ref: '#/components/schemas/Sessions.Session'
+ required:
+ - items
+ post:
+ operationId: SessionsRoute_create
+ description: Create a new session
+ parameters: []
+ responses:
+ '201':
+ description: The request has succeeded and a new resource has been created as a result.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Common.ResourceCreatedResponse'
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Sessions.CreateSessionRequest'
+ /sessions/{id}:
+ post:
+ operationId: SessionsRoute_createOrUpdate
+ description: Create or update a session
+ parameters:
+ - $ref: '#/components/parameters/Sessions.CreateOrUpdateSessionRequest.id'
+ responses:
+ '200':
+ description: The request has succeeded.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Common.ResourceUpdatedResponse'
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Sessions.CreateSessionRequest'
+ put:
+ operationId: SessionsRoute_update
+ description: Update an existing session by its id (overwrites all existing values)
+ parameters:
+ - name: id
+ in: path
+ required: true
+ description: ID of the resource
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ responses:
+ '200':
+ description: The request has succeeded.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Common.ResourceUpdatedResponse'
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Sessions.UpdateSessionRequest'
+ patch:
+ operationId: SessionsRoute_patch
+ description: Update an existing session by its id (merges with existing values)
+ parameters:
+ - name: id
+ in: path
+ required: true
+ description: ID of the resource
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ responses:
+ '200':
+ description: The request has succeeded.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Common.ResourceUpdatedResponse'
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Sessions.PatchSessionRequest'
+ delete:
+ operationId: SessionsRoute_delete
+ description: Delete a session by its id
+ parameters:
+ - name: id
+ in: path
+ required: true
+ description: ID of the resource
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ responses:
+ '202':
+ description: The request has been accepted for processing, but processing has not yet completed.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Common.ResourceDeletedResponse'
+ get:
+ operationId: SessionsRoute_get
+ description: Get a session by id
+ parameters:
+ - name: id
+ in: path
+ required: true
+ description: ID of the resource
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ responses:
+ '200':
+ description: The request has succeeded.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Sessions.Session'
+ /sessions/{id}/chat:
+ post:
+ operationId: ChatRoute_generate
+ description: Generate a response from the model
+ parameters:
+ - name: id
+ in: path
+ required: true
+ description: The session ID
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ - name: x-custom-api-key
+ in: header
+ required: false
+ description: Custom API key
+ schema:
+ type: string
+ responses:
+ '200':
+ description: The request has succeeded.
+ content:
+ application/json:
+ schema:
+ anyOf:
+ - $ref: '#/components/schemas/Chat.ChunkChatResponse'
+ - $ref: '#/components/schemas/Chat.MessageChatResponse'
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Chat.ChatInput'
+ description: Request to generate a response from the model
+ /sessions/{id}/history:
+ delete:
+ operationId: HistoryRoute_delete
+ description: Clear the history of a Session (resets the Session)
+ parameters:
+ - name: id
+ in: path
+ required: true
+ description: ID of the resource
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ responses:
+ '202':
+ description: The request has been accepted for processing, but processing has not yet completed.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Common.ResourceDeletedResponse'
+ get:
+ operationId: HistoryRoute_history
+ description: Get history of a Session
+ parameters:
+ - name: id
+ in: path
+ required: true
+ description: ID of parent
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ responses:
+ '200':
+ description: The request has succeeded.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Entries.History'
+ /tasks/{id}:
+ get:
+ operationId: TasksGetRoute_get
+ description: Get a task by id
+ parameters:
+ - name: id
+ in: path
+ required: true
+ description: ID of the resource
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ responses:
+ '200':
+ description: The request has succeeded.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Tasks.Task'
+ /tasks/{id}/executions:
+ post:
+ operationId: TaskExecutionsRoute_create
+ description: Create an execution for the given task
+ parameters:
+ - name: id
+ in: path
+ required: true
+ description: ID of parent resource
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ responses:
+ '201':
+ description: The request has succeeded and a new resource has been created as a result.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Common.ResourceCreatedResponse'
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Executions.CreateExecutionRequest'
+ get:
+ operationId: TaskExecutionsRoute_list
+ description: List executions of the given task
+ parameters:
+ - name: id
+ in: path
+ required: true
+ description: ID of parent
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ - $ref: '#/components/parameters/Common.PaginationOptions.limit'
+ - $ref: '#/components/parameters/Common.PaginationOptions.offset'
+ - $ref: '#/components/parameters/Common.PaginationOptions.sort_by'
+ - $ref: '#/components/parameters/Common.PaginationOptions.direction'
+ - $ref: '#/components/parameters/Common.PaginationOptions.metadata_filter'
+ responses:
+ '200':
+ description: The request has succeeded.
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ items:
+ type: array
+ items:
+ $ref: '#/components/schemas/Executions.Execution'
+ required:
+ - items
+ /users:
+ get:
+ operationId: UsersRoute_list
+ description: List users (paginated)
+ parameters:
+ - $ref: '#/components/parameters/Common.PaginationOptions.limit'
+ - $ref: '#/components/parameters/Common.PaginationOptions.offset'
+ - $ref: '#/components/parameters/Common.PaginationOptions.sort_by'
+ - $ref: '#/components/parameters/Common.PaginationOptions.direction'
+ - $ref: '#/components/parameters/Common.PaginationOptions.metadata_filter'
+ responses:
+ '200':
+ description: The request has succeeded.
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ items:
+ type: array
+ items:
+ $ref: '#/components/schemas/Users.User'
+ required:
+ - items
+ post:
+ operationId: UsersRoute_create
+ description: Create a new user
+ parameters: []
+ responses:
+ '201':
+ description: The request has succeeded and a new resource has been created as a result.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Common.ResourceCreatedResponse'
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Users.CreateUserRequest'
+ /users/{id}:
+ post:
+ operationId: UsersRoute_createOrUpdate
+ description: Create or update a user
+ parameters:
+ - $ref: '#/components/parameters/Users.CreateOrUpdateUserRequest'
+ responses:
+ '200':
+ description: The request has succeeded.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Common.ResourceUpdatedResponse'
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Users.CreateUserRequest'
+ put:
+ operationId: UsersRoute_update
+ description: Update an existing user by id (overwrite existing values)
+ parameters:
+ - name: id
+ in: path
+ required: true
+ description: ID of the resource
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ responses:
+ '200':
+ description: The request has succeeded.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Common.ResourceUpdatedResponse'
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Users.UpdateUserRequest'
+ patch:
+ operationId: UsersRoute_patch
+ description: Update an existing user by id (merge with existing values)
+ parameters:
+ - name: id
+ in: path
+ required: true
+ description: ID of the resource
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ responses:
+ '200':
+ description: The request has succeeded.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Common.ResourceUpdatedResponse'
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Users.PatchUserRequest'
+ delete:
+ operationId: UsersRoute_delete
+ description: Delete a user by id
+ parameters:
+ - name: id
+ in: path
+ required: true
+ description: ID of the resource
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ responses:
+ '202':
+ description: The request has been accepted for processing, but processing has not yet completed.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Common.ResourceDeletedResponse'
+ get:
+ operationId: UsersRoute_get
+ description: Get a user by id
+ parameters:
+ - name: id
+ in: path
+ required: true
+ description: ID of the resource
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ responses:
+ '200':
+ description: The request has succeeded.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Users.User'
+ /users/{id}/docs:
+ get:
+ operationId: UserDocsRoute_list
+ description: List Docs owned by a User
+ parameters:
+ - name: id
+ in: path
+ required: true
+ description: ID of parent
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ - $ref: '#/components/parameters/Common.PaginationOptions.limit'
+ - $ref: '#/components/parameters/Common.PaginationOptions.offset'
+ - $ref: '#/components/parameters/Common.PaginationOptions.sort_by'
+ - $ref: '#/components/parameters/Common.PaginationOptions.direction'
+ - $ref: '#/components/parameters/Common.PaginationOptions.metadata_filter'
+ responses:
+ '200':
+ description: The request has succeeded.
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ items:
+ type: array
+ items:
+ $ref: '#/components/schemas/Docs.Doc'
+ required:
+ - items
+ post:
+ operationId: UserDocsRoute_create
+ description: Create a Doc for this User
+ parameters:
+ - name: id
+ in: path
+ required: true
+ description: ID of parent resource
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ responses:
+ '201':
+ description: The request has succeeded and a new resource has been created as a result.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Common.ResourceCreatedResponse'
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Docs.CreateDocRequest'
+ /users/{id}/docs/{child_id}:
+ delete:
+ operationId: UserDocsRoute_delete
+ description: Delete a Doc for this User
+ parameters:
+ - name: id
+ in: path
+ required: true
+ description: ID of parent resource
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ - name: child_id
+ in: path
+ required: true
+ description: ID of the resource to be deleted
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ responses:
+ '202':
+ description: The request has been accepted for processing, but processing has not yet completed.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Common.ResourceDeletedResponse'
+ /users/{id}/search:
+ post:
+ operationId: UserDocsSearchRoute_search
+ description: Search Docs owned by a User
+ parameters:
+ - name: id
+ in: path
+ required: true
+ description: ID of the parent
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ responses:
+ '200':
+ description: The request has succeeded.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Docs.DocSearchResponse'
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ body:
+ anyOf:
+ - $ref: '#/components/schemas/Docs.VectorDocSearchRequest'
+ - $ref: '#/components/schemas/Docs.TextOnlyDocSearchRequest'
+ - $ref: '#/components/schemas/Docs.HybridDocSearchRequest'
+ required:
+ - body
+security:
+ - ApiKeyAuth: []
+ - ApiKeyAuth_: []
+components:
+ parameters:
+ Agents.CreateOrUpdateAgentRequest.id:
+ name: id
+ in: path
+ required: true
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ Common.PaginationOptions.direction:
+ name: direction
+ in: query
+ required: true
+ description: Sort direction
+ schema:
+ type: string
+ enum:
+ - asc
+ - desc
+ default: asc
+ explode: false
+ Common.PaginationOptions.limit:
+ name: limit
+ in: query
+ required: true
+ description: Limit the number of items returned
+ schema:
+ $ref: '#/components/schemas/Common.limit'
+ default: 100
+ explode: false
+ Common.PaginationOptions.metadata_filter:
+ name: metadata_filter
+ in: query
+ required: true
+ description: Object to filter results by metadata
+ schema:
+ type: object
+ additionalProperties:
+ anyOf:
+ - type: number
+ - type: string
+ - type: boolean
+ nullable: true
+ explode: false
+ Common.PaginationOptions.offset:
+ name: offset
+ in: query
+ required: true
+ description: Offset the items returned
+ schema:
+ $ref: '#/components/schemas/Common.offset'
+ default: 0
+ explode: false
+ Common.PaginationOptions.sort_by:
+ name: sort_by
+ in: query
+ required: true
+ description: Sort by a field
+ schema:
+ type: string
+ enum:
+ - created_at
+ - updated_at
+ default: created_at
+ explode: false
+ Sessions.CreateOrUpdateSessionRequest.id:
+ name: id
+ in: path
+ required: true
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ Tasks.CreateOrUpdateTaskRequest.id:
+ name: id
+ in: path
+ required: true
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ Users.CreateOrUpdateUserRequest:
+ name: id
+ in: path
+ required: true
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ schemas:
+ Agents.Agent:
+ type: object
+ required:
+ - id
+ - created_at
+ - updated_at
+ - name
+ - about
+ - model
+ - instructions
+ properties:
+ id:
+ allOf:
+ - $ref: '#/components/schemas/Common.uuid'
+ readOnly: true
+ metadata:
+ type: object
+ additionalProperties: {}
+ created_at:
+ type: string
+ format: date-time
+ description: When this resource was created as UTC date-time
+ readOnly: true
+ updated_at:
+ type: string
+ format: date-time
+ description: When this resource was updated as UTC date-time
+ readOnly: true
+ name:
+ allOf:
+ - $ref: '#/components/schemas/Common.identifierSafeUnicode'
+ description: Name of the agent
+ default: ''
+ about:
+ type: string
+ description: About the agent
+ default: ''
+ model:
+ type: string
+ description: Model name to use (gpt-4-turbo, gemini-nano etc)
+ default: ''
+ instructions:
+ anyOf:
+ - type: string
+ - type: array
+ items:
+ type: string
+ description: Instructions for the agent
+ default: []
+ default_settings:
+ allOf:
+ - $ref: '#/components/schemas/Chat.DefaultChatSettings'
+ description: Default settings for all sessions created by this agent
+ Agents.CreateAgentRequest:
+ type: object
+ required:
+ - name
+ - about
+ - model
+ - instructions
+ properties:
+ metadata:
+ type: object
+ additionalProperties: {}
+ name:
+ allOf:
+ - $ref: '#/components/schemas/Common.identifierSafeUnicode'
+ description: Name of the agent
+ default: ''
+ about:
+ type: string
+ description: About the agent
+ default: ''
+ model:
+ type: string
+ description: Model name to use (gpt-4-turbo, gemini-nano etc)
+ default: ''
+ instructions:
+ anyOf:
+ - type: string
+ - type: array
+ items:
+ type: string
+ description: Instructions for the agent
+ default: []
+ default_settings:
+ allOf:
+ - $ref: '#/components/schemas/Chat.DefaultChatSettings'
+ description: Default settings for all sessions created by this agent
+ description: Payload for creating a agent (and associated documents)
+ Agents.CreateOrUpdateAgentRequest:
+ type: object
+ required:
+ - id
+ - name
+ - about
+ - model
+ - instructions
+ properties:
+ id:
+ $ref: '#/components/schemas/Common.uuid'
+ metadata:
+ type: object
+ additionalProperties: {}
+ name:
+ allOf:
+ - $ref: '#/components/schemas/Common.identifierSafeUnicode'
+ description: Name of the agent
+ default: ''
+ about:
+ type: string
+ description: About the agent
+ default: ''
+ model:
+ type: string
+ description: Model name to use (gpt-4-turbo, gemini-nano etc)
+ default: ''
+ instructions:
+ anyOf:
+ - type: string
+ - type: array
+ items:
+ type: string
+ description: Instructions for the agent
+ default: []
+ default_settings:
+ allOf:
+ - $ref: '#/components/schemas/Chat.DefaultChatSettings'
+ description: Default settings for all sessions created by this agent
+ allOf:
+ - $ref: '#/components/schemas/Agents.CreateAgentRequest'
+ Agents.PatchAgentRequest:
+ type: object
+ properties:
+ metadata:
+ type: object
+ additionalProperties: {}
+ name:
+ allOf:
+ - $ref: '#/components/schemas/Common.identifierSafeUnicode'
+ description: Name of the agent
+ default: ''
+ about:
+ type: string
+ description: About the agent
+ default: ''
+ model:
+ type: string
+ description: Model name to use (gpt-4-turbo, gemini-nano etc)
+ default: ''
+ instructions:
+ anyOf:
+ - type: string
+ - type: array
+ items:
+ type: string
+ description: Instructions for the agent
+ default: []
+ default_settings:
+ allOf:
+ - $ref: '#/components/schemas/Chat.DefaultChatSettings'
+ description: Default settings for all sessions created by this agent
+ description: Payload for patching a agent
+ Agents.UpdateAgentRequest:
+ type: object
+ required:
+ - name
+ - about
+ - model
+ - instructions
+ properties:
+ metadata:
+ type: object
+ additionalProperties: {}
+ name:
+ allOf:
+ - $ref: '#/components/schemas/Common.identifierSafeUnicode'
+ description: Name of the agent
+ default: ''
+ about:
+ type: string
+ description: About the agent
+ default: ''
+ model:
+ type: string
+ description: Model name to use (gpt-4-turbo, gemini-nano etc)
+ default: ''
+ instructions:
+ anyOf:
+ - type: string
+ - type: array
+ items:
+ type: string
+ description: Instructions for the agent
+ default: []
+ default_settings:
+ allOf:
+ - $ref: '#/components/schemas/Chat.DefaultChatSettings'
+ description: Default settings for all sessions created by this agent
+ description: Payload for updating a agent
+ Chat.BaseChatOutput:
+ type: object
+ required:
+ - index
+ - finish_reason
+ properties:
+ index:
+ type: integer
+ format: uint32
+ finish_reason:
+ allOf:
+ - $ref: '#/components/schemas/Chat.FinishReason'
+ description: The reason the model stopped generating tokens
+ default: stop
+ logprobs:
+ allOf:
+ - $ref: '#/components/schemas/Chat.LogProbResponse'
+ description: The log probabilities of tokens
+ Chat.BaseChatResponse:
+ type: object
+ required:
+ - jobs
+ - docs
+ - created_at
+ - id
+ properties:
+ usage:
+ allOf:
+ - $ref: '#/components/schemas/Chat.CompetionUsage'
+ description: Usage statistics for the completion request
+ jobs:
+ type: array
+ items:
+ $ref: '#/components/schemas/Common.uuid'
+ description: Background job IDs that may have been spawned from this interaction.
+ default: []
+ readOnly: true
+ docs:
+ type: array
+ items:
+ $ref: '#/components/schemas/Docs.DocReference'
+ description: Documents referenced for this request (for citation purposes).
+ default: []
+ readOnly: true
+ created_at:
+ type: string
+ format: date-time
+ description: When this resource was created as UTC date-time
+ readOnly: true
+ id:
+ allOf:
+ - $ref: '#/components/schemas/Common.uuid'
+ readOnly: true
+ Chat.BaseTokenLogProb:
+ type: object
+ required:
+ - token
+ - logprob
+ properties:
+ token:
+ type: string
+ logprob:
+ type: number
+ format: float
+ description: The log probability of the token
+ bytes:
+ type: array
+ items:
+ type: integer
+ format: uint16
+ Chat.ChatInput:
+ type: object
+ required:
+ - remember
+ - recall
+ - save
+ - stream
+ - stop
+ properties:
+ remember:
+ type: boolean
+ description: 'DISABLED: Whether this interaction should form new memories or not (will be enabled in a future release)'
+ default: false
+ readOnly: true
+ recall:
+ type: boolean
+ description: Whether previous memories and docs should be recalled or not
+ default: true
+ save:
+ type: boolean
+ description: Whether this interaction should be stored in the session history or not
+ default: true
+ model:
+ allOf:
+ - $ref: '#/components/schemas/Common.identifierSafeUnicode'
+ description: Identifier of the model to be used
+ stream:
+ type: boolean
+ description: Indicates if the server should stream the response as it's generated
+ default: false
+ stop:
+ type: array
+ items:
+ type: string
+ maxItems: 4
+ description: Up to 4 sequences where the API will stop generating further tokens.
+ default: []
+ seed:
+ type: integer
+ format: int16
+ minimum: -1
+ maximum: 1000
+ description: If specified, the system will make a best effort to sample deterministically for that particular seed value
+ max_tokens:
+ type: integer
+ format: uint32
+ minimum: 1
+ description: The maximum number of tokens to generate in the chat completion
+ logit_bias:
+ type: object
+ additionalProperties:
+ $ref: '#/components/schemas/Common.logit_bias'
+ description: Modify the likelihood of specified tokens appearing in the completion
+ response_format:
+ anyOf:
+ - $ref: '#/components/schemas/Chat.SimpleCompletionResponseFormat'
+ - $ref: '#/components/schemas/Chat.SchemaCompletionResponseFormat'
+ description: Response format (set to `json_object` to restrict output to JSON)
+ agent:
+ allOf:
+ - $ref: '#/components/schemas/Common.uuid'
+ description: Agent ID of the agent to use for this interaction. (Only applicable for multi-agent sessions)
+ repetition_penalty:
+ type: number
+ format: float
+ minimum: 0
+ maximum: 2
+ description: Number between 0 and 2.0. 1.0 is neutral and values larger than that penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim.
+ length_penalty:
+ type: number
+ format: float
+ minimum: 0
+ maximum: 2
+ description: Number between 0 and 2.0. 1.0 is neutral and values larger than that penalize number of tokens generated.
+ min_p:
+ type: number
+ format: float
+ minimum: 0
+ maximum: 1
+ description: Minimum probability compared to leading token to be considered
+ frequency_penalty:
+ type: number
+ format: float
+ minimum: -2
+ maximum: 2
+ description: Number between -2.0 and 2.0. Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim.
+ presence_penalty:
+ type: number
+ format: float
+ minimum: -2
+ maximum: 2
+ description: Number between -2.0 and 2.0. Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim.
+ temperature:
+ type: number
+ format: float
+ minimum: 0
+ maximum: 5
+ description: What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic.
+ top_p:
+ type: number
+ format: float
+ minimum: 0
+ maximum: 1
+ description: Defaults to 1 An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass. So 0.1 means only the tokens comprising the top 10% probability mass are considered. We generally recommend altering this or temperature but not both.
+ allOf:
+ - $ref: '#/components/schemas/Chat.ChatInputData'
+ Chat.ChatInputData:
+ type: object
+ required:
+ - messages
+ - tools
+ properties:
+ messages:
+ type: array
+ items:
+ type: object
+ required:
+ - role
+ - content
+ properties:
+ role:
+ allOf:
+ - $ref: '#/components/schemas/Entries.ChatMLRole'
+ description: The role of the message
+ content:
+ anyOf:
+ - type: string
+ - type: array
+ items:
+ type: string
+ - type: array
+ items:
+ anyOf:
+ - type: object
+ required:
+ - text
+ - type
+ properties:
+ text:
+ type: string
+ type:
+ type: string
+ enum:
+ - text
+ description: The type (fixed to 'text')
+ default: text
+ - type: object
+ required:
+ - image_url
+ - type
+ properties:
+ image_url:
+ type: object
+ required:
+ - url
+ - detail
+ properties:
+ url:
+ type: string
+ description: Image URL or base64 data url (e.g. `data:image/jpeg;base64,`)
+ detail:
+ allOf:
+ - $ref: '#/components/schemas/Entries.ImageDetail'
+ description: The detail level of the image
+ default: auto
+ description: The image URL
+ type:
+ type: string
+ enum:
+ - image_url
+ description: The type (fixed to 'image_url')
+ default: image_url
+ description: The content parts of the message
+ name:
+ type: string
+ description: Name
+ continue:
+ type: boolean
+ description: Whether to continue this message or return a new one
+ minItems: 1
+ description: A list of new input messages comprising the conversation so far.
+ tools:
+ type: array
+ items:
+ $ref: '#/components/schemas/Tools.Tool'
+ description: (Advanced) List of tools that are provided in addition to agent's default set of tools.
+ default: []
+ tool_choice:
+ anyOf:
+ - type: string
+ enum:
+ - auto
+ - none
+ - $ref: '#/components/schemas/Tools.NamedToolChoice'
+ description: Can be one of existing tools given to the agent earlier or the ones provided in this request.
+ Chat.ChatOutputChunk:
+ type: object
+ required:
+ - delta
+ properties:
+ delta:
+ type: object
+ required:
+ - role
+ - content
+ properties:
+ role:
+ allOf:
+ - $ref: '#/components/schemas/Entries.ChatMLRole'
+ description: The role of the message
+ content:
+ anyOf:
+ - type: string
+ - type: array
+ items:
+ type: string
+ - type: array
+ items:
+ anyOf:
+ - type: object
+ required:
+ - text
+ - type
+ properties:
+ text:
+ type: string
+ type:
+ type: string
+ enum:
+ - text
+ description: The type (fixed to 'text')
+ default: text
+ - type: object
+ required:
+ - image_url
+ - type
+ properties:
+ image_url:
+ type: object
+ required:
+ - url
+ - detail
+ properties:
+ url:
+ type: string
+ description: Image URL or base64 data url (e.g. `data:image/jpeg;base64,`)
+ detail:
+ allOf:
+ - $ref: '#/components/schemas/Entries.ImageDetail'
+ description: The detail level of the image
+ default: auto
+ description: The image URL
+ type:
+ type: string
+ enum:
+ - image_url
+ description: The type (fixed to 'image_url')
+ default: image_url
+ description: The content parts of the message
+ name:
+ type: string
+ description: Name
+ continue:
+ type: boolean
+ description: Whether to continue this message or return a new one
+ description: The message generated by the model
+ allOf:
+ - $ref: '#/components/schemas/Chat.BaseChatOutput'
+ description: Streaming chat completion output
+ Chat.ChatSettings:
+ type: object
+ required:
+ - stream
+ - stop
+ properties:
+ model:
+ allOf:
+ - $ref: '#/components/schemas/Common.identifierSafeUnicode'
+ description: Identifier of the model to be used
+ stream:
+ type: boolean
+ description: Indicates if the server should stream the response as it's generated
+ default: false
+ stop:
+ type: array
+ items:
+ type: string
+ maxItems: 4
+ description: Up to 4 sequences where the API will stop generating further tokens.
+ default: []
+ seed:
+ type: integer
+ format: int16
+ minimum: -1
+ maximum: 1000
+ description: If specified, the system will make a best effort to sample deterministically for that particular seed value
+ max_tokens:
+ type: integer
+ format: uint32
+ minimum: 1
+ description: The maximum number of tokens to generate in the chat completion
+ logit_bias:
+ type: object
+ additionalProperties:
+ $ref: '#/components/schemas/Common.logit_bias'
+ description: Modify the likelihood of specified tokens appearing in the completion
+ response_format:
+ anyOf:
+ - $ref: '#/components/schemas/Chat.SimpleCompletionResponseFormat'
+ - $ref: '#/components/schemas/Chat.SchemaCompletionResponseFormat'
+ description: Response format (set to `json_object` to restrict output to JSON)
+ agent:
+ allOf:
+ - $ref: '#/components/schemas/Common.uuid'
+ description: Agent ID of the agent to use for this interaction. (Only applicable for multi-agent sessions)
+ allOf:
+ - $ref: '#/components/schemas/Chat.DefaultChatSettings'
+ Chat.ChunkChatResponse:
+ type: object
+ required:
+ - choices
+ properties:
+ choices:
+ type: array
+ items:
+ $ref: '#/components/schemas/Chat.ChatOutputChunk'
+ description: The deltas generated by the model
+ allOf:
+ - $ref: '#/components/schemas/Chat.BaseChatResponse'
+ Chat.CompetionUsage:
+ type: object
+ properties:
+ completion_tokens:
+ type: integer
+ format: uint32
+ description: Number of tokens in the generated completion
+ readOnly: true
+ prompt_tokens:
+ type: integer
+ format: uint32
+ description: Number of tokens in the prompt
+ readOnly: true
+ total_tokens:
+ type: integer
+ format: uint32
+ description: Total number of tokens used in the request (prompt + completion)
+ readOnly: true
+ description: Usage statistics for the completion request
+ Chat.DefaultChatSettings:
+ type: object
+ properties:
+ repetition_penalty:
+ type: number
+ format: float
+ minimum: 0
+ maximum: 2
+ description: Number between 0 and 2.0. 1.0 is neutral and values larger than that penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim.
+ length_penalty:
+ type: number
+ format: float
+ minimum: 0
+ maximum: 2
+ description: Number between 0 and 2.0. 1.0 is neutral and values larger than that penalize number of tokens generated.
+ min_p:
+ type: number
+ format: float
+ minimum: 0
+ maximum: 1
+ description: Minimum probability compared to leading token to be considered
+ allOf:
+ - $ref: '#/components/schemas/Chat.OpenAISettings'
+ description: Default settings for the chat session (also used by the agent)
+ Chat.FinishReason:
+ type: string
+ enum:
+ - stop
+ - length
+ - content_filter
+ - tool_calls
+ description: |-
+ The reason the model stopped generating tokens. This will be `stop`
+ if the model hit a natural stop point or a provided stop sequence,
+ `length` if the maximum number of tokens specified in the request
+ was reached, `content_filter` if content was omitted due to a flag
+ from our content filters, `tool_calls` if the model called a tool.
+ Chat.LogProbResponse:
+ type: object
+ required:
+ - content
+ properties:
+ content:
+ type: array
+ items:
+ $ref: '#/components/schemas/Chat.TokenLogProb'
+ nullable: true
+ description: The log probabilities of the tokens
+ Chat.MessageChatResponse:
+ type: object
+ required:
+ - choices
+ properties:
+ choices:
+ type: array
+ items:
+ anyOf:
+ - $ref: '#/components/schemas/Chat.SingleChatOutput'
+ - $ref: '#/components/schemas/Chat.MultipleChatOutput'
+ description: The deltas generated by the model
+ allOf:
+ - $ref: '#/components/schemas/Chat.BaseChatResponse'
+ Chat.MultipleChatOutput:
+ type: object
+ required:
+ - messages
+ properties:
+ messages:
+ type: array
+ items:
+ type: object
+ required:
+ - role
+ - content
+ properties:
+ role:
+ allOf:
+ - $ref: '#/components/schemas/Entries.ChatMLRole'
+ description: The role of the message
+ content:
+ anyOf:
+ - type: string
+ - type: array
+ items:
+ type: string
+ - type: array
+ items:
+ anyOf:
+ - type: object
+ required:
+ - text
+ - type
+ properties:
+ text:
+ type: string
+ type:
+ type: string
+ enum:
+ - text
+ description: The type (fixed to 'text')
+ default: text
+ - type: object
+ required:
+ - image_url
+ - type
+ properties:
+ image_url:
+ type: object
+ required:
+ - url
+ - detail
+ properties:
+ url:
+ type: string
+ description: Image URL or base64 data url (e.g. `data:image/jpeg;base64,`)
+ detail:
+ allOf:
+ - $ref: '#/components/schemas/Entries.ImageDetail'
+ description: The detail level of the image
+ default: auto
+ description: The image URL
+ type:
+ type: string
+ enum:
+ - image_url
+ description: The type (fixed to 'image_url')
+ default: image_url
+ description: The content parts of the message
+ name:
+ type: string
+ description: Name
+ tool_calls:
+ type: array
+ items:
+ $ref: '#/components/schemas/Tools.ChosenToolCall'
+ nullable: true
+ description: Tool calls generated by the model.
+ default: []
+ readOnly: true
+ created_at:
+ type: string
+ format: date-time
+ description: When this resource was created as UTC date-time
+ readOnly: true
+ id:
+ allOf:
+ - $ref: '#/components/schemas/Common.uuid'
+ readOnly: true
+ minItems: 1
+ readOnly: true
+ allOf:
+ - $ref: '#/components/schemas/Chat.BaseChatOutput'
+ description: The output returned by the model. Note that, depending on the model provider, they might return more than one message.
+ Chat.OpenAISettings:
+ type: object
+ properties:
+ frequency_penalty:
+ type: number
+ format: float
+ minimum: -2
+ maximum: 2
+ description: Number between -2.0 and 2.0. Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim.
+ presence_penalty:
+ type: number
+ format: float
+ minimum: -2
+ maximum: 2
+ description: Number between -2.0 and 2.0. Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim.
+ temperature:
+ type: number
+ format: float
+ minimum: 0
+ maximum: 5
+ description: What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic.
+ top_p:
+ type: number
+ format: float
+ minimum: 0
+ maximum: 1
+ description: Defaults to 1 An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass. So 0.1 means only the tokens comprising the top 10% probability mass are considered. We generally recommend altering this or temperature but not both.
+ Chat.SchemaCompletionResponseFormat:
+ type: object
+ required:
+ - type
+ - json_schema
+ properties:
+ type:
+ type: string
+ enum:
+ - json_schema
+ description: The format of the response
+ default: json_schema
+ json_schema:
+ type: object
+ additionalProperties: {}
+ description: The schema of the response
+ Chat.SimpleCompletionResponseFormat:
+ type: object
+ required:
+ - type
+ properties:
+ type:
+ type: string
+ enum:
+ - text
+ - json_object
+ description: The format of the response
+ default: text
+ Chat.SingleChatOutput:
+ type: object
+ required:
+ - message
+ properties:
+ message:
+ type: object
+ required:
+ - role
+ - content
+ properties:
+ role:
+ allOf:
+ - $ref: '#/components/schemas/Entries.ChatMLRole'
+ description: The role of the message
+ content:
+ anyOf:
+ - type: string
+ - type: array
+ items:
+ type: string
+ - type: array
+ items:
+ anyOf:
+ - type: object
+ required:
+ - text
+ - type
+ properties:
+ text:
+ type: string
+ type:
+ type: string
+ enum:
+ - text
+ description: The type (fixed to 'text')
+ default: text
+ - type: object
+ required:
+ - image_url
+ - type
+ properties:
+ image_url:
+ type: object
+ required:
+ - url
+ - detail
+ properties:
+ url:
+ type: string
+ description: Image URL or base64 data url (e.g. `data:image/jpeg;base64,`)
+ detail:
+ allOf:
+ - $ref: '#/components/schemas/Entries.ImageDetail'
+ description: The detail level of the image
+ default: auto
+ description: The image URL
+ type:
+ type: string
+ enum:
+ - image_url
+ description: The type (fixed to 'image_url')
+ default: image_url
+ description: The content parts of the message
+ name:
+ type: string
+ description: Name
+ tool_calls:
+ type: array
+ items:
+ $ref: '#/components/schemas/Tools.ChosenToolCall'
+ nullable: true
+ description: Tool calls generated by the model.
+ default: []
+ readOnly: true
+ created_at:
+ type: string
+ format: date-time
+ description: When this resource was created as UTC date-time
+ readOnly: true
+ id:
+ allOf:
+ - $ref: '#/components/schemas/Common.uuid'
+ readOnly: true
+ allOf:
+ - $ref: '#/components/schemas/Chat.BaseChatOutput'
+ description: The output returned by the model. Note that, depending on the model provider, they might return more than one message.
+ Chat.TokenLogProb:
+ type: object
+ required:
+ - top_logprobs
+ properties:
+ top_logprobs:
+ type: array
+ items:
+ $ref: '#/components/schemas/Chat.BaseTokenLogProb'
+ minItems: 1
+ description: The log probabilities of the tokens
+ readOnly: true
+ allOf:
+ - $ref: '#/components/schemas/Chat.BaseTokenLogProb'
+ Common.JinjaTemplate:
+ type: string
+ description: A valid jinja template.
+ Common.PyExpression:
+ type: string
+ description: A simple python expression compatible with SimpleEval.
+ Common.ResourceCreatedResponse:
+ type: object
+ required:
+ - id
+ - created_at
+ - jobs
+ properties:
+ id:
+ allOf:
+ - $ref: '#/components/schemas/Common.uuid'
+ description: ID of created resource
+ created_at:
+ type: string
+ format: date-time
+ description: When this resource was created as UTC date-time
+ readOnly: true
+ jobs:
+ type: array
+ items:
+ $ref: '#/components/schemas/Common.uuid'
+ description: IDs (if any) of jobs created as part of this request
+ default: []
+ readOnly: true
+ Common.ResourceDeletedResponse:
+ type: object
+ required:
+ - id
+ - deleted_at
+ - jobs
+ properties:
+ id:
+ allOf:
+ - $ref: '#/components/schemas/Common.uuid'
+ description: ID of deleted resource
+ deleted_at:
+ type: string
+ format: date-time
+ description: When this resource was deleted as UTC date-time
+ readOnly: true
+ jobs:
+ type: array
+ items:
+ $ref: '#/components/schemas/Common.uuid'
+ description: IDs (if any) of jobs created as part of this request
+ default: []
+ readOnly: true
+ Common.ResourceUpdatedResponse:
+ type: object
+ required:
+ - id
+ - updated_at
+ - jobs
+ properties:
+ id:
+ allOf:
+ - $ref: '#/components/schemas/Common.uuid'
+ description: ID of updated resource
+ updated_at:
+ type: string
+ format: date-time
+ description: When this resource was updated as UTC date-time
+ readOnly: true
+ jobs:
+ type: array
+ items:
+ $ref: '#/components/schemas/Common.uuid'
+ description: IDs (if any) of jobs created as part of this request
+ default: []
+ readOnly: true
+ Common.identifierSafeUnicode:
+ type: string
+ maxLength: 120
+ pattern: ^[\p{L}\p{Nl}\p{Pattern_Syntax}\p{Pattern_White_Space}]+[\p{ID_Start}\p{Mn}\p{Mc}\p{Nd}\p{Pc}\p{Pattern_Syntax}\p{Pattern_White_Space}]*$
+ description: |-
+ For Unicode character safety
+ See: https://unicode.org/reports/tr31/
+ See: https://www.unicode.org/reports/tr39/#Identifier_Characters
+ Common.limit:
+ type: integer
+ format: uint16
+ minimum: 1
+ maximum: 1000
+ exclusiveMaximum: true
+ description: Limit the number of results
+ Common.logit_bias:
+ type: number
+ format: float
+ minimum: -100
+ maximum: 100
+ Common.offset:
+ type: integer
+ format: uint32
+ minimum: 0
+ description: Offset to apply to the results
+ Common.uuid:
+ type: string
+ format: uuid
+ Common.validPythonIdentifier:
+ type: string
+ maxLength: 40
+ pattern: ^[^\W0-9]\w*$
+ description: Valid python identifier names
+ Docs.BaseDocSearchRequest:
+ type: object
+ required:
+ - limit
+ - lang
+ properties:
+ limit:
+ type: integer
+ format: uint16
+ minimum: 1
+ maximum: 100
+ default: 10
+ lang:
+ type: string
+ enum:
+ - en-US
+ description: The language to be used for text-only search. Support for other languages coming soon.
+ default: en-US
+ Docs.CreateDocRequest:
+ type: object
+ required:
+ - title
+ - content
+ properties:
+ metadata:
+ type: object
+ additionalProperties: {}
+ title:
+ type: string
+ maxLength: 800
+ description: Title describing what this document contains
+ content:
+ anyOf:
+ - type: string
+ - type: array
+ items:
+ type: string
+ description: Contents of the document
+ description: Payload for creating a doc
+ Docs.Doc:
+ type: object
+ required:
+ - id
+ - created_at
+ - title
+ - content
+ properties:
+ id:
+ allOf:
+ - $ref: '#/components/schemas/Common.uuid'
+ readOnly: true
+ metadata:
+ type: object
+ additionalProperties: {}
+ created_at:
+ type: string
+ format: date-time
+ description: When this resource was created as UTC date-time
+ readOnly: true
+ title:
+ type: string
+ maxLength: 800
+ description: Title describing what this document contains
+ content:
+ anyOf:
+ - type: string
+ - type: array
+ items:
+ type: string
+ description: Contents of the document
+ embeddings:
+ anyOf:
+ - type: array
+ items:
+ type: number
+ format: float
+ - type: array
+ items:
+ type: array
+ items:
+ type: number
+ format: float
+ description: Embeddings for the document
+ readOnly: true
+ Docs.DocOwner:
+ type: object
+ required:
+ - id
+ - role
+ properties:
+ id:
+ anyOf:
+ - allOf:
+ - $ref: '#/components/schemas/Common.uuid'
+ readOnly: true
+ - allOf:
+ - $ref: '#/components/schemas/Common.uuid'
+ readOnly: true
+ role:
+ type: string
+ enum:
+ - user
+ - agent
+ Docs.DocReference:
+ type: object
+ required:
+ - owner
+ - id
+ - snippets
+ - distance
+ properties:
+ owner:
+ allOf:
+ - $ref: '#/components/schemas/Docs.DocOwner'
+ description: The owner of this document.
+ id:
+ allOf:
+ - $ref: '#/components/schemas/Common.uuid'
+ readOnly: true
+ description: ID of the document
+ title:
+ type: string
+ snippets:
+ type: array
+ items:
+ $ref: '#/components/schemas/Docs.Snippet'
+ minItems: 1
+ distance:
+ type: number
+ nullable: true
+ default: null
+ Docs.DocSearchResponse:
+ type: object
+ required:
+ - docs
+ - time
+ properties:
+ docs:
+ type: array
+ items:
+ $ref: '#/components/schemas/Docs.DocReference'
+ description: The documents that were found
+ time:
+ type: number
+ minimum: 0
+ exclusiveMinimum: true
+ description: The time taken to search in seconds
+ Docs.EmbedQueryRequest:
+ type: object
+ required:
+ - text
+ properties:
+ text:
+ anyOf:
+ - type: string
+ - type: array
+ items:
+ type: string
+ description: Text or texts to embed
+ Docs.EmbedQueryResponse:
+ type: object
+ required:
+ - vectors
+ properties:
+ vectors:
+ type: array
+ items:
+ type: array
+ items:
+ type: number
+ description: The embedded vectors
+ Docs.HybridDocSearchRequest:
+ type: object
+ required:
+ - confidence
+ - alpha
+ - text
+ - vector
+ properties:
+ confidence:
+ type: number
+ minimum: 0
+ maximum: 1
+ description: The confidence cutoff level
+ default: 0.5
+ alpha:
+ type: number
+ minimum: 0
+ maximum: 1
+ description: The weight to apply to BM25 vs Vector search results. 0 => pure BM25; 1 => pure vector;
+ default: 0.75
+ text:
+ type: string
+ description: Text to use in the search. In `hybrid` search mode, either `text` or both `text` and `vector` fields are required.
+ vector:
+ type: array
+ items:
+ type: number
+ description: Vector to use in the search. Must be the same dimensions as the embedding model or else an error will be thrown.
+ allOf:
+ - $ref: '#/components/schemas/Docs.BaseDocSearchRequest'
+ Docs.Snippet:
+ type: object
+ required:
+ - index
+ - content
+ properties:
+ index:
+ type: integer
+ format: uint16
+ content:
+ type: string
+ Docs.TextOnlyDocSearchRequest:
+ type: object
+ required:
+ - text
+ properties:
+ text:
+ type: string
+ description: Text to use in the search.
+ allOf:
+ - $ref: '#/components/schemas/Docs.BaseDocSearchRequest'
+ Docs.VectorDocSearchRequest:
+ type: object
+ required:
+ - confidence
+ - vector
+ properties:
+ confidence:
+ type: number
+ minimum: 0
+ maximum: 1
+ description: The confidence cutoff level
+ default: 0.5
+ vector:
+ type: array
+ items:
+ type: number
+ description: Vector to use in the search. Must be the same dimensions as the embedding model or else an error will be thrown.
+ allOf:
+ - $ref: '#/components/schemas/Docs.BaseDocSearchRequest'
+ Entries.BaseEntry:
+ type: object
+ required:
+ - role
+ - name
+ - content
+ - source
+ - tokenizer
+ - token_count
+ - timestamp
+ properties:
+ role:
+ $ref: '#/components/schemas/Entries.ChatMLRole'
+ name:
+ type: string
+ nullable: true
+ default: null
+ content:
+ anyOf:
+ - type: array
+ items:
+ anyOf:
+ - type: object
+ required:
+ - text
+ - type
+ properties:
+ text:
+ type: string
+ type:
+ type: string
+ enum:
+ - text
+ description: The type (fixed to 'text')
+ default: text
+ - type: object
+ required:
+ - image_url
+ - type
+ properties:
+ image_url:
+ type: object
+ required:
+ - url
+ - detail
+ properties:
+ url:
+ type: string
+ description: Image URL or base64 data url (e.g. `data:image/jpeg;base64,`)
+ detail:
+ allOf:
+ - $ref: '#/components/schemas/Entries.ImageDetail'
+ description: The detail level of the image
+ default: auto
+ description: The image URL
+ type:
+ type: string
+ enum:
+ - image_url
+ description: The type (fixed to 'image_url')
+ default: image_url
+ - $ref: '#/components/schemas/Tools.Tool'
+ - $ref: '#/components/schemas/Tools.ChosenToolCall'
+ - type: string
+ - $ref: '#/components/schemas/Tools.ToolResponse'
+ - type: array
+ items:
+ anyOf:
+ - type: array
+ items:
+ anyOf:
+ - type: object
+ required:
+ - text
+ - type
+ properties:
+ text:
+ type: string
+ type:
+ type: string
+ enum:
+ - text
+ description: The type (fixed to 'text')
+ default: text
+ - type: object
+ required:
+ - image_url
+ - type
+ properties:
+ image_url:
+ type: object
+ required:
+ - url
+ - detail
+ properties:
+ url:
+ type: string
+ description: Image URL or base64 data url (e.g. `data:image/jpeg;base64,`)
+ detail:
+ allOf:
+ - $ref: '#/components/schemas/Entries.ImageDetail'
+ description: The detail level of the image
+ default: auto
+ description: The image URL
+ type:
+ type: string
+ enum:
+ - image_url
+ description: The type (fixed to 'image_url')
+ default: image_url
+ - $ref: '#/components/schemas/Tools.Tool'
+ - $ref: '#/components/schemas/Tools.ChosenToolCall'
+ - type: string
+ - $ref: '#/components/schemas/Tools.ToolResponse'
+ source:
+ type: string
+ enum:
+ - api_request
+ - api_response
+ - tool_response
+ - internal
+ - summarizer
+ - meta
+ tokenizer:
+ type: string
+ token_count:
+ type: integer
+ format: uint16
+ timestamp:
+ type: number
+ minimum: 0
+ description: This is the time that this event refers to.
+ Entries.ChatMLRole:
+ type: string
+ enum:
+ - user
+ - assistant
+ - system
+ - function
+ - function_response
+ - function_call
+ - auto
+ description: ChatML role (system|assistant|user|function_call|function|function_response|auto)
+ Entries.Entry:
+ type: object
+ required:
+ - created_at
+ - id
+ properties:
+ created_at:
+ type: string
+ format: date-time
+ description: When this resource was created as UTC date-time
+ readOnly: true
+ id:
+ allOf:
+ - $ref: '#/components/schemas/Common.uuid'
+ readOnly: true
+ allOf:
+ - $ref: '#/components/schemas/Entries.BaseEntry'
+ Entries.History:
+ type: object
+ required:
+ - entries
+ - relations
+ - session_id
+ - created_at
+ properties:
+ entries:
+ type: array
+ items:
+ $ref: '#/components/schemas/Entries.Entry'
+ relations:
+ type: array
+ items:
+ $ref: '#/components/schemas/Entries.Relation'
+ session_id:
+ allOf:
+ - $ref: '#/components/schemas/Common.uuid'
+ readOnly: true
+ created_at:
+ type: string
+ format: date-time
+ description: When this resource was created as UTC date-time
+ readOnly: true
+ Entries.ImageDetail:
+ type: string
+ enum:
+ - low
+ - high
+ - auto
+ description: Image detail level
+ Entries.Relation:
+ type: object
+ required:
+ - head
+ - relation
+ - tail
+ properties:
+ head:
+ $ref: '#/components/schemas/Common.uuid'
+ relation:
+ type: string
+ tail:
+ $ref: '#/components/schemas/Common.uuid'
+ Executions.CreateExecutionRequest:
+ type: object
+ required:
+ - input
+ properties:
+ input:
+ type: object
+ additionalProperties: {}
+ description: The input to the execution
+ output:
+ description: The output of the execution if it succeeded
+ error:
+ type: string
+ description: The error of the execution if it failed
+ metadata:
+ type: object
+ additionalProperties: {}
+ description: Payload for creating an execution
+ Executions.Execution:
+ type: object
+ required:
+ - task_id
+ - status
+ - input
+ - created_at
+ - updated_at
+ - id
+ properties:
+ task_id:
+ allOf:
+ - $ref: '#/components/schemas/Common.uuid'
+ readOnly: true
+ description: The ID of the task that the execution is running
+ status:
+ type: string
+ enum:
+ - queued
+ - starting
+ - running
+ - awaiting_input
+ - succeeded
+ - failed
+ - cancelled
+ description: The status of the execution
+ readOnly: true
+ input:
+ type: object
+ additionalProperties: {}
+ description: The input to the execution
+ output:
+ description: The output of the execution if it succeeded
+ error:
+ type: string
+ description: The error of the execution if it failed
+ created_at:
+ type: string
+ format: date-time
+ description: When this resource was created as UTC date-time
+ readOnly: true
+ updated_at:
+ type: string
+ format: date-time
+ description: When this resource was updated as UTC date-time
+ readOnly: true
+ metadata:
+ type: object
+ additionalProperties: {}
+ id:
+ allOf:
+ - $ref: '#/components/schemas/Common.uuid'
+ readOnly: true
+ Executions.ResumeExecutionRequest:
+ type: object
+ required:
+ - status
+ properties:
+ status:
+ type: string
+ enum:
+ - running
+ default: running
+ input:
+ type: object
+ additionalProperties: {}
+ description: The input to resume the execution with
+ allOf:
+ - $ref: '#/components/schemas/Executions.UpdateExecutionRequest'
+ Executions.StopExecutionRequest:
+ type: object
+ required:
+ - status
+ - reason
+ properties:
+ status:
+ type: string
+ enum:
+ - cancelled
+ default: cancelled
+ reason:
+ type: string
+ nullable: true
+ description: The reason for stopping the execution
+ default: null
+ allOf:
+ - $ref: '#/components/schemas/Executions.UpdateExecutionRequest'
+ Executions.TaskTokenResumeExecutionRequest:
+ type: object
+ required:
+ - status
+ properties:
+ status:
+ type: string
+ enum:
+ - running
+ default: running
+ input:
+ type: object
+ additionalProperties: {}
+ description: The input to resume the execution with
+ Executions.Transition:
+ type: object
+ required:
+ - execution_id
+ - current
+ - next
+ - id
+ properties:
+ execution_id:
+ allOf:
+ - $ref: '#/components/schemas/Common.uuid'
+ readOnly: true
+ current:
+ allOf:
+ - $ref: '#/components/schemas/Executions.TransitionTarget'
+ readOnly: true
+ next:
+ type: object
+ allOf:
+ - $ref: '#/components/schemas/Executions.TransitionTarget'
+ nullable: true
+ readOnly: true
+ id:
+ allOf:
+ - $ref: '#/components/schemas/Common.uuid'
+ readOnly: true
+ metadata:
+ type: object
+ additionalProperties: {}
+ allOf:
+ - $ref: '#/components/schemas/Executions.TransitionEvent'
+ Executions.TransitionEvent:
+ type: object
+ required:
+ - type
+ - output
+ - created_at
+ - updated_at
+ properties:
+ type:
+ type: string
+ enum:
+ - init
+ - init_branch
+ - finish
+ - finish_branch
+ - wait
+ - resume
+ - error
+ - step
+ - cancelled
+ readOnly: true
+ output:
+ readOnly: true
+ created_at:
+ type: string
+ format: date-time
+ description: When this resource was created as UTC date-time
+ readOnly: true
+ updated_at:
+ type: string
+ format: date-time
+ description: When this resource was updated as UTC date-time
+ readOnly: true
+ Executions.TransitionTarget:
+ type: object
+ required:
+ - workflow
+ - step
+ properties:
+ workflow:
+ $ref: '#/components/schemas/Common.identifierSafeUnicode'
+ step:
+ type: integer
+ format: uint16
+ Executions.UpdateExecutionRequest:
+ type: object
+ required:
+ - status
+ properties:
+ status:
+ type: string
+ enum:
+ - queued
+ - starting
+ - running
+ - awaiting_input
+ - succeeded
+ - failed
+ - cancelled
+ discriminator:
+ propertyName: status
+ mapping:
+ cancelled: '#/components/schemas/Executions.StopExecutionRequest'
+ running: '#/components/schemas/Executions.ResumeExecutionRequest'
+ Jobs.JobState:
+ type: string
+ enum:
+ - pending
+ - in_progress
+ - retrying
+ - succeeded
+ - aborted
+ - failed
+ - unknown
+ description: 'Current state (one of: pending, in_progress, retrying, succeeded, aborted, failed)'
+ Jobs.JobStatus:
+ type: object
+ required:
+ - id
+ - created_at
+ - updated_at
+ - name
+ - reason
+ - has_progress
+ - progress
+ - state
+ properties:
+ id:
+ allOf:
+ - $ref: '#/components/schemas/Common.uuid'
+ readOnly: true
+ created_at:
+ type: string
+ format: date-time
+ description: When this resource was created as UTC date-time
+ readOnly: true
+ updated_at:
+ type: string
+ format: date-time
+ description: When this resource was updated as UTC date-time
+ readOnly: true
+ name:
+ allOf:
+ - $ref: '#/components/schemas/Common.identifierSafeUnicode'
+ description: Name of the job
+ default: ''
+ reason:
+ type: string
+ description: Reason for the current state of the job
+ default: ''
+ has_progress:
+ type: boolean
+ description: Whether this Job supports progress updates
+ default: false
+ progress:
+ type: number
+ format: float
+ minimum: 0
+ maximum: 100
+ description: Progress percentage
+ default: 0
+ state:
+ allOf:
+ - $ref: '#/components/schemas/Jobs.JobState'
+ description: Current state of the job
+ default: pending
+ Sessions.ContextOverflowType:
+ type: string
+ enum:
+ - truncate
+ - adaptive
+ Sessions.CreateOrUpdateSessionRequest:
+ type: object
+ required:
+ - id
+ - situation
+ - render_templates
+ - token_budget
+ - context_overflow
+ - forward_tool_results
+ properties:
+ id:
+ $ref: '#/components/schemas/Common.uuid'
+ user:
+ allOf:
+ - $ref: '#/components/schemas/Common.uuid'
+ description: User ID of user associated with this session
+ users:
+ type: array
+ items:
+ $ref: '#/components/schemas/Common.uuid'
+ agent:
+ allOf:
+ - $ref: '#/components/schemas/Common.uuid'
+ description: Agent ID of agent associated with this session
+ agents:
+ type: array
+ items:
+ $ref: '#/components/schemas/Common.uuid'
+ situation:
+ type: string
+ description: A specific situation that sets the background for this session
+ default: |-
+ {%- if agent.name -%}
+ You are {{agent.name}}.{{" "}}
+ {%- endif -%}
+
+ {%- if agent.about -%}
+ About you: {{agent.name}}.{{" "}}
+ {%- endif -%}
+
+ {%- if user -%}
+ You are talking to a user
+ {%- if user.name -%}{{" "}} and their name is {{user.name}}
+ {%- if user.about -%}. About the user: {{user.about}}.{%- else -%}.{%- endif -%}
+ {%- endif -%}
+ {%- endif -%}
+
+ {{"
+
+ "}}
+
+ {%- if agent.instructions -%}
+ Instructions:{{"
+ "}}
+ {%- if agent.instructions is string -%}
+ {{agent.instructions}}{{"
+ "}}
+ {%- else -%}
+ {%- for instruction in agent.instructions -%}
+ - {{instruction}}{{"
+ "}}
+ {%- endfor -%}
+ {%- endif -%}
+ {{"
+ "}}
+ {%- endif -%}
+
+ {%- if tools -%}
+ Tools:{{"
+ "}}
+ {%- for tool in tools -%}
+ {%- if tool.type == "function" -%}
+ - {{tool.function.name}}
+ {%- if tool.function.description -%}: {{tool.function.description}}{%- endif -%}{{"
+ "}}
+ {%- else -%}
+ - {{ 0/0 }} {# Error: Other tool types aren't supported yet. #}
+ {%- endif -%}
+ {%- endfor -%}
+ {{"
+
+ "}}
+ {%- endif -%}
+
+ {%- if docs -%}
+ Relevant documents:{{"
+ "}}
+ {%- for doc in docs -%}
+ {{doc.title}}{{"
+ "}}
+ {%- if doc.content is string -%}
+ {{doc.content}}{{"
+ "}}
+ {%- else -%}
+ {%- for snippet in doc.content -%}
+ {{snippet}}{{"
+ "}}
+ {%- endfor -%}
+ {%- endif -%}
+ {{"---"}}
+ {%- endfor -%}
+ {%- endif -%}
+ render_templates:
+ type: boolean
+ description: Render system and assistant message content as jinja templates
+ default: true
+ token_budget:
+ type: integer
+ format: uint16
+ nullable: true
+ description: Threshold value for the adaptive context functionality
+ default: null
+ context_overflow:
+ oneOf:
+ - $ref: '#/components/schemas/Sessions.ContextOverflowType'
+ nullable: true
+ description: Action to start on context window overflow
+ default: null
+ forward_tool_results:
+ type: boolean
+ nullable: true
+ description: |-
+ Whether to forward the tool results to the model when available.
+ "true" => always forward
+ "false" => never forward
+ null => forward if applicable (default)
+
+ If a tool call is made, the tool's output will be sent back to the model as the model's input.
+ If a tool call is not made, the model's output will be returned as is.
+ default: null
+ metadata:
+ type: object
+ additionalProperties: {}
+ allOf:
+ - $ref: '#/components/schemas/Sessions.CreateSessionRequest'
+ Sessions.CreateSessionRequest:
+ type: object
+ required:
+ - situation
+ - render_templates
+ - token_budget
+ - context_overflow
+ - forward_tool_results
+ properties:
+ user:
+ allOf:
+ - $ref: '#/components/schemas/Common.uuid'
+ description: User ID of user associated with this session
+ users:
+ type: array
+ items:
+ $ref: '#/components/schemas/Common.uuid'
+ agent:
+ allOf:
+ - $ref: '#/components/schemas/Common.uuid'
+ description: Agent ID of agent associated with this session
+ agents:
+ type: array
+ items:
+ $ref: '#/components/schemas/Common.uuid'
+ situation:
+ type: string
+ description: A specific situation that sets the background for this session
+ default: |-
+ {%- if agent.name -%}
+ You are {{agent.name}}.{{" "}}
+ {%- endif -%}
+
+ {%- if agent.about -%}
+ About you: {{agent.name}}.{{" "}}
+ {%- endif -%}
+
+ {%- if user -%}
+ You are talking to a user
+ {%- if user.name -%}{{" "}} and their name is {{user.name}}
+ {%- if user.about -%}. About the user: {{user.about}}.{%- else -%}.{%- endif -%}
+ {%- endif -%}
+ {%- endif -%}
+
+ {{"
+
+ "}}
+
+ {%- if agent.instructions -%}
+ Instructions:{{"
+ "}}
+ {%- if agent.instructions is string -%}
+ {{agent.instructions}}{{"
+ "}}
+ {%- else -%}
+ {%- for instruction in agent.instructions -%}
+ - {{instruction}}{{"
+ "}}
+ {%- endfor -%}
+ {%- endif -%}
+ {{"
+ "}}
+ {%- endif -%}
+
+ {%- if tools -%}
+ Tools:{{"
+ "}}
+ {%- for tool in tools -%}
+ {%- if tool.type == "function" -%}
+ - {{tool.function.name}}
+ {%- if tool.function.description -%}: {{tool.function.description}}{%- endif -%}{{"
+ "}}
+ {%- else -%}
+ - {{ 0/0 }} {# Error: Other tool types aren't supported yet. #}
+ {%- endif -%}
+ {%- endfor -%}
+ {{"
+
+ "}}
+ {%- endif -%}
+
+ {%- if docs -%}
+ Relevant documents:{{"
+ "}}
+ {%- for doc in docs -%}
+ {{doc.title}}{{"
+ "}}
+ {%- if doc.content is string -%}
+ {{doc.content}}{{"
+ "}}
+ {%- else -%}
+ {%- for snippet in doc.content -%}
+ {{snippet}}{{"
+ "}}
+ {%- endfor -%}
+ {%- endif -%}
+ {{"---"}}
+ {%- endfor -%}
+ {%- endif -%}
+ render_templates:
+ type: boolean
+ description: Render system and assistant message content as jinja templates
+ default: true
+ token_budget:
+ type: integer
+ format: uint16
+ nullable: true
+ description: Threshold value for the adaptive context functionality
+ default: null
+ context_overflow:
+ oneOf:
+ - $ref: '#/components/schemas/Sessions.ContextOverflowType'
+ nullable: true
+ description: Action to start on context window overflow
+ default: null
+ forward_tool_results:
+ type: boolean
+ nullable: true
+ description: |-
+ Whether to forward the tool results to the model when available.
+ "true" => always forward
+ "false" => never forward
+ null => forward if applicable (default)
+
+ If a tool call is made, the tool's output will be sent back to the model as the model's input.
+ If a tool call is not made, the model's output will be returned as is.
+ default: null
+ metadata:
+ type: object
+ additionalProperties: {}
+ description: Payload for creating a session
+ Sessions.MultiAgentMultiUserSession:
+ type: object
+ required:
+ - agents
+ - users
+ properties:
+ agents:
+ type: array
+ items:
+ $ref: '#/components/schemas/Common.uuid'
+ minItems: 2
+ users:
+ type: array
+ items:
+ $ref: '#/components/schemas/Common.uuid'
+ minItems: 2
+ allOf:
+ - $ref: '#/components/schemas/Sessions.Session'
+ Sessions.MultiAgentNoUserSession:
+ type: object
+ required:
+ - agents
+ properties:
+ agents:
+ type: array
+ items:
+ $ref: '#/components/schemas/Common.uuid'
+ minItems: 2
+ allOf:
+ - $ref: '#/components/schemas/Sessions.Session'
+ Sessions.MultiAgentSingleUserSession:
+ type: object
+ required:
+ - agents
+ - user
+ properties:
+ agents:
+ type: array
+ items:
+ $ref: '#/components/schemas/Common.uuid'
+ minItems: 2
+ user:
+ $ref: '#/components/schemas/Common.uuid'
+ allOf:
+ - $ref: '#/components/schemas/Sessions.Session'
+ Sessions.PatchSessionRequest:
+ type: object
+ properties:
+ situation:
+ type: string
+ description: A specific situation that sets the background for this session
+ default: |-
+ {%- if agent.name -%}
+ You are {{agent.name}}.{{" "}}
+ {%- endif -%}
+
+ {%- if agent.about -%}
+ About you: {{agent.name}}.{{" "}}
+ {%- endif -%}
+
+ {%- if user -%}
+ You are talking to a user
+ {%- if user.name -%}{{" "}} and their name is {{user.name}}
+ {%- if user.about -%}. About the user: {{user.about}}.{%- else -%}.{%- endif -%}
+ {%- endif -%}
+ {%- endif -%}
+
+ {{"
+
+ "}}
+
+ {%- if agent.instructions -%}
+ Instructions:{{"
+ "}}
+ {%- if agent.instructions is string -%}
+ {{agent.instructions}}{{"
+ "}}
+ {%- else -%}
+ {%- for instruction in agent.instructions -%}
+ - {{instruction}}{{"
+ "}}
+ {%- endfor -%}
+ {%- endif -%}
+ {{"
+ "}}
+ {%- endif -%}
+
+ {%- if tools -%}
+ Tools:{{"
+ "}}
+ {%- for tool in tools -%}
+ {%- if tool.type == "function" -%}
+ - {{tool.function.name}}
+ {%- if tool.function.description -%}: {{tool.function.description}}{%- endif -%}{{"
+ "}}
+ {%- else -%}
+ - {{ 0/0 }} {# Error: Other tool types aren't supported yet. #}
+ {%- endif -%}
+ {%- endfor -%}
+ {{"
+
+ "}}
+ {%- endif -%}
+
+ {%- if docs -%}
+ Relevant documents:{{"
+ "}}
+ {%- for doc in docs -%}
+ {{doc.title}}{{"
+ "}}
+ {%- if doc.content is string -%}
+ {{doc.content}}{{"
+ "}}
+ {%- else -%}
+ {%- for snippet in doc.content -%}
+ {{snippet}}{{"
+ "}}
+ {%- endfor -%}
+ {%- endif -%}
+ {{"---"}}
+ {%- endfor -%}
+ {%- endif -%}
+ render_templates:
+ type: boolean
+ description: Render system and assistant message content as jinja templates
+ default: true
+ token_budget:
+ type: integer
+ format: uint16
+ nullable: true
+ description: Threshold value for the adaptive context functionality
+ default: null
+ context_overflow:
+ oneOf:
+ - $ref: '#/components/schemas/Sessions.ContextOverflowType'
+ nullable: true
+ description: Action to start on context window overflow
+ default: null
+ forward_tool_results:
+ type: boolean
+ nullable: true
+ description: |-
+ Whether to forward the tool results to the model when available.
+ "true" => always forward
+ "false" => never forward
+ null => forward if applicable (default)
+
+ If a tool call is made, the tool's output will be sent back to the model as the model's input.
+ If a tool call is not made, the model's output will be returned as is.
+ default: null
+ metadata:
+ type: object
+ additionalProperties: {}
+ description: Payload for patching a session
+ Sessions.Session:
+ type: object
+ required:
+ - situation
+ - summary
+ - render_templates
+ - token_budget
+ - context_overflow
+ - forward_tool_results
+ - id
+ - created_at
+ - updated_at
+ properties:
+ situation:
+ type: string
+ description: A specific situation that sets the background for this session
+ default: |-
+ {%- if agent.name -%}
+ You are {{agent.name}}.{{" "}}
+ {%- endif -%}
+
+ {%- if agent.about -%}
+ About you: {{agent.name}}.{{" "}}
+ {%- endif -%}
+
+ {%- if user -%}
+ You are talking to a user
+ {%- if user.name -%}{{" "}} and their name is {{user.name}}
+ {%- if user.about -%}. About the user: {{user.about}}.{%- else -%}.{%- endif -%}
+ {%- endif -%}
+ {%- endif -%}
+
+ {{"
+
+ "}}
+
+ {%- if agent.instructions -%}
+ Instructions:{{"
+ "}}
+ {%- if agent.instructions is string -%}
+ {{agent.instructions}}{{"
+ "}}
+ {%- else -%}
+ {%- for instruction in agent.instructions -%}
+ - {{instruction}}{{"
+ "}}
+ {%- endfor -%}
+ {%- endif -%}
+ {{"
+ "}}
+ {%- endif -%}
+
+ {%- if tools -%}
+ Tools:{{"
+ "}}
+ {%- for tool in tools -%}
+ {%- if tool.type == "function" -%}
+ - {{tool.function.name}}
+ {%- if tool.function.description -%}: {{tool.function.description}}{%- endif -%}{{"
+ "}}
+ {%- else -%}
+ - {{ 0/0 }} {# Error: Other tool types aren't supported yet. #}
+ {%- endif -%}
+ {%- endfor -%}
+ {{"
+
+ "}}
+ {%- endif -%}
+
+ {%- if docs -%}
+ Relevant documents:{{"
+ "}}
+ {%- for doc in docs -%}
+ {{doc.title}}{{"
+ "}}
+ {%- if doc.content is string -%}
+ {{doc.content}}{{"
+ "}}
+ {%- else -%}
+ {%- for snippet in doc.content -%}
+ {{snippet}}{{"
+ "}}
+ {%- endfor -%}
+ {%- endif -%}
+ {{"---"}}
+ {%- endfor -%}
+ {%- endif -%}
+ summary:
+ type: string
+ nullable: true
+ description: Summary (null at the beginning) - generated automatically after every interaction
+ default: null
+ readOnly: true
+ render_templates:
+ type: boolean
+ description: Render system and assistant message content as jinja templates
+ default: true
+ token_budget:
+ type: integer
+ format: uint16
+ nullable: true
+ description: Threshold value for the adaptive context functionality
+ default: null
+ context_overflow:
+ oneOf:
+ - $ref: '#/components/schemas/Sessions.ContextOverflowType'
+ nullable: true
+ description: Action to start on context window overflow
+ default: null
+ forward_tool_results:
+ type: boolean
+ nullable: true
+ description: |-
+ Whether to forward the tool results to the model when available.
+ "true" => always forward
+ "false" => never forward
+ null => forward if applicable (default)
+
+ If a tool call is made, the tool's output will be sent back to the model as the model's input.
+ If a tool call is not made, the model's output will be returned as is.
+ default: null
+ id:
+ allOf:
+ - $ref: '#/components/schemas/Common.uuid'
+ readOnly: true
+ metadata:
+ type: object
+ additionalProperties: {}
+ created_at:
+ type: string
+ format: date-time
+ description: When this resource was created as UTC date-time
+ readOnly: true
+ updated_at:
+ type: string
+ format: date-time
+ description: When this resource was updated as UTC date-time
+ readOnly: true
+ kind:
+ type: string
+ description: Discriminator property for Session.
+ discriminator:
+ propertyName: kind
+ mapping:
+ single_agent_no_user: '#/components/schemas/Sessions.SingleAgentNoUserSession'
+ single_agent_single_user: '#/components/schemas/Sessions.SingleAgentSingleUserSession'
+ single_agent_multi_user: '#/components/schemas/Sessions.SingleAgentMultiUserSession'
+ multi_agent_no_user: '#/components/schemas/Sessions.MultiAgentNoUserSession'
+ multi_agent_single_user: '#/components/schemas/Sessions.MultiAgentSingleUserSession'
+ multi_agent_multi_user: '#/components/schemas/Sessions.MultiAgentMultiUserSession'
+ Sessions.SingleAgentMultiUserSession:
+ type: object
+ required:
+ - agent
+ - users
+ properties:
+ agent:
+ $ref: '#/components/schemas/Common.uuid'
+ users:
+ type: array
+ items:
+ $ref: '#/components/schemas/Common.uuid'
+ minItems: 2
+ allOf:
+ - $ref: '#/components/schemas/Sessions.Session'
+ Sessions.SingleAgentNoUserSession:
+ type: object
+ required:
+ - agent
+ properties:
+ agent:
+ $ref: '#/components/schemas/Common.uuid'
+ allOf:
+ - $ref: '#/components/schemas/Sessions.Session'
+ Sessions.SingleAgentSingleUserSession:
+ type: object
+ required:
+ - agent
+ - user
+ properties:
+ agent:
+ $ref: '#/components/schemas/Common.uuid'
+ user:
+ $ref: '#/components/schemas/Common.uuid'
+ allOf:
+ - $ref: '#/components/schemas/Sessions.Session'
+ Sessions.UpdateSessionRequest:
+ type: object
+ required:
+ - situation
+ - render_templates
+ - token_budget
+ - context_overflow
+ - forward_tool_results
+ properties:
+ situation:
+ type: string
+ description: A specific situation that sets the background for this session
+ default: |-
+ {%- if agent.name -%}
+ You are {{agent.name}}.{{" "}}
+ {%- endif -%}
+
+ {%- if agent.about -%}
+ About you: {{agent.name}}.{{" "}}
+ {%- endif -%}
+
+ {%- if user -%}
+ You are talking to a user
+ {%- if user.name -%}{{" "}} and their name is {{user.name}}
+ {%- if user.about -%}. About the user: {{user.about}}.{%- else -%}.{%- endif -%}
+ {%- endif -%}
+ {%- endif -%}
+
+ {{"
+
+ "}}
+
+ {%- if agent.instructions -%}
+ Instructions:{{"
+ "}}
+ {%- if agent.instructions is string -%}
+ {{agent.instructions}}{{"
+ "}}
+ {%- else -%}
+ {%- for instruction in agent.instructions -%}
+ - {{instruction}}{{"
+ "}}
+ {%- endfor -%}
+ {%- endif -%}
+ {{"
+ "}}
+ {%- endif -%}
+
+ {%- if tools -%}
+ Tools:{{"
+ "}}
+ {%- for tool in tools -%}
+ {%- if tool.type == "function" -%}
+ - {{tool.function.name}}
+ {%- if tool.function.description -%}: {{tool.function.description}}{%- endif -%}{{"
+ "}}
+ {%- else -%}
+ - {{ 0/0 }} {# Error: Other tool types aren't supported yet. #}
+ {%- endif -%}
+ {%- endfor -%}
+ {{"
+
+ "}}
+ {%- endif -%}
+
+ {%- if docs -%}
+ Relevant documents:{{"
+ "}}
+ {%- for doc in docs -%}
+ {{doc.title}}{{"
+ "}}
+ {%- if doc.content is string -%}
+ {{doc.content}}{{"
+ "}}
+ {%- else -%}
+ {%- for snippet in doc.content -%}
+ {{snippet}}{{"
+ "}}
+ {%- endfor -%}
+ {%- endif -%}
+ {{"---"}}
+ {%- endfor -%}
+ {%- endif -%}
+ render_templates:
+ type: boolean
+ description: Render system and assistant message content as jinja templates
+ default: true
+ token_budget:
+ type: integer
+ format: uint16
+ nullable: true
+ description: Threshold value for the adaptive context functionality
+ default: null
+ context_overflow:
+ oneOf:
+ - $ref: '#/components/schemas/Sessions.ContextOverflowType'
+ nullable: true
+ description: Action to start on context window overflow
+ default: null
+ forward_tool_results:
+ type: boolean
+ nullable: true
+ description: |-
+ Whether to forward the tool results to the model when available.
+ "true" => always forward
+ "false" => never forward
+ null => forward if applicable (default)
+
+ If a tool call is made, the tool's output will be sent back to the model as the model's input.
+ If a tool call is not made, the model's output will be returned as is.
+ default: null
+ metadata:
+ type: object
+ additionalProperties: {}
+ description: Payload for updating a session
+ Tasks.CaseThen:
+ type: object
+ required:
+ - case
+ - then
+ properties:
+ case:
+ anyOf:
+ - $ref: '#/components/schemas/Common.PyExpression'
+ - type: string
+ enum:
+ - _
+ description: The condition to evaluate
+ then:
+ anyOf:
+ - $ref: '#/components/schemas/Tasks.EvaluateStep'
+ - $ref: '#/components/schemas/Tasks.ToolCallStep'
+ - $ref: '#/components/schemas/Tasks.PromptStep'
+ - $ref: '#/components/schemas/Tasks.GetStep'
+ - $ref: '#/components/schemas/Tasks.SetStep'
+ - $ref: '#/components/schemas/Tasks.LogStep'
+ - $ref: '#/components/schemas/Tasks.YieldStep'
+ - $ref: '#/components/schemas/Tasks.ReturnStep'
+ - $ref: '#/components/schemas/Tasks.SleepStep'
+ - $ref: '#/components/schemas/Tasks.ErrorWorkflowStep'
+ - $ref: '#/components/schemas/Tasks.WaitForInputStep'
+ description: The steps to run if the condition is true
+ Tasks.CaseThenUpdateItem:
+ type: object
+ required:
+ - case
+ - then
+ properties:
+ case:
+ anyOf:
+ - $ref: '#/components/schemas/Common.PyExpression'
+ - type: string
+ enum:
+ - _
+ description: The condition to evaluate
+ then:
+ anyOf:
+ - $ref: '#/components/schemas/Tasks.EvaluateStep'
+ - $ref: '#/components/schemas/Tasks.ToolCallStep'
+ - $ref: '#/components/schemas/Tasks.PromptStepUpdateItem'
+ - $ref: '#/components/schemas/Tasks.GetStep'
+ - $ref: '#/components/schemas/Tasks.SetStep'
+ - $ref: '#/components/schemas/Tasks.LogStep'
+ - $ref: '#/components/schemas/Tasks.YieldStep'
+ - $ref: '#/components/schemas/Tasks.ReturnStep'
+ - $ref: '#/components/schemas/Tasks.SleepStep'
+ - $ref: '#/components/schemas/Tasks.ErrorWorkflowStep'
+ - $ref: '#/components/schemas/Tasks.WaitForInputStep'
+ description: The steps to run if the condition is true
+ Tasks.CreateTaskRequest:
+ type: object
+ required:
+ - name
+ - description
+ - main
+ - input_schema
+ - tools
+ - inherit_tools
+ properties:
+ name:
+ type: string
+ description:
+ type: string
+ default: ''
+ main:
+ type: array
+ items:
+ anyOf:
+ - $ref: '#/components/schemas/Tasks.EvaluateStep'
+ - $ref: '#/components/schemas/Tasks.ToolCallStep'
+ - $ref: '#/components/schemas/Tasks.PromptStep'
+ - $ref: '#/components/schemas/Tasks.GetStep'
+ - $ref: '#/components/schemas/Tasks.SetStep'
+ - $ref: '#/components/schemas/Tasks.LogStep'
+ - $ref: '#/components/schemas/Tasks.YieldStep'
+ - $ref: '#/components/schemas/Tasks.ReturnStep'
+ - $ref: '#/components/schemas/Tasks.SleepStep'
+ - $ref: '#/components/schemas/Tasks.ErrorWorkflowStep'
+ - $ref: '#/components/schemas/Tasks.WaitForInputStep'
+ - $ref: '#/components/schemas/Tasks.IfElseWorkflowStep'
+ - $ref: '#/components/schemas/Tasks.SwitchStep'
+ - $ref: '#/components/schemas/Tasks.ForeachStep'
+ - $ref: '#/components/schemas/Tasks.ParallelStep'
+ - type: object
+ required:
+ - kind_
+ - over
+ - map
+ properties:
+ kind_:
+ type: string
+ enum:
+ - map_reduce
+ default: map_reduce
+ readOnly: true
+ over:
+ allOf:
+ - $ref: '#/components/schemas/Common.PyExpression'
+ description: The variable to iterate over
+ map:
+ anyOf:
+ - $ref: '#/components/schemas/Tasks.EvaluateStep'
+ - $ref: '#/components/schemas/Tasks.ToolCallStep'
+ - $ref: '#/components/schemas/Tasks.PromptStep'
+ - $ref: '#/components/schemas/Tasks.GetStep'
+ - $ref: '#/components/schemas/Tasks.SetStep'
+ - $ref: '#/components/schemas/Tasks.LogStep'
+ - $ref: '#/components/schemas/Tasks.YieldStep'
+ description: The steps to run for each iteration
+ reduce:
+ allOf:
+ - $ref: '#/components/schemas/Common.PyExpression'
+ description: |-
+ The expression to reduce the results.
+ If not provided, the results are collected and returned as a list.
+ A special parameter named `results` is the accumulator and `_` is the current value.
+ initial:
+ description: The initial value of the reduce expression
+ default: []
+ parallelism:
+ type: integer
+ format: uint16
+ minimum: 1
+ maximum: 100
+ description: Whether to run the reduce expression in parallel and how many items to run in each batch
+ allOf:
+ - type: object
+ required:
+ - kind_
+ properties:
+ kind_:
+ type: string
+ enum:
+ - map_reduce
+ description: The kind of step
+ readOnly: true
+ discriminator:
+ propertyName: kind_
+ minItems: 1
+ description: The entrypoint of the task.
+ input_schema:
+ type: object
+ additionalProperties: {}
+ nullable: true
+ description: The schema for the input to the task. `null` means all inputs are valid.
+ default: null
+ tools:
+ type: array
+ items:
+ $ref: '#/components/schemas/Tasks.TaskTool'
+ description: Tools defined specifically for this task not included in the Agent itself.
+ default: []
+ inherit_tools:
+ type: boolean
+ description: Whether to inherit tools from the parent agent or not. Defaults to true.
+ default: true
+ metadata:
+ type: object
+ additionalProperties: {}
+ additionalProperties:
+ type: array
+ items:
+ anyOf:
+ - $ref: '#/components/schemas/Tasks.EvaluateStep'
+ - $ref: '#/components/schemas/Tasks.ToolCallStep'
+ - $ref: '#/components/schemas/Tasks.PromptStep'
+ - $ref: '#/components/schemas/Tasks.GetStep'
+ - $ref: '#/components/schemas/Tasks.SetStep'
+ - $ref: '#/components/schemas/Tasks.LogStep'
+ - $ref: '#/components/schemas/Tasks.YieldStep'
+ - $ref: '#/components/schemas/Tasks.ReturnStep'
+ - $ref: '#/components/schemas/Tasks.SleepStep'
+ - $ref: '#/components/schemas/Tasks.ErrorWorkflowStep'
+ - $ref: '#/components/schemas/Tasks.WaitForInputStep'
+ - $ref: '#/components/schemas/Tasks.IfElseWorkflowStep'
+ - $ref: '#/components/schemas/Tasks.SwitchStep'
+ - $ref: '#/components/schemas/Tasks.ForeachStep'
+ - $ref: '#/components/schemas/Tasks.ParallelStep'
+ - type: object
+ required:
+ - kind_
+ - over
+ - map
+ properties:
+ kind_:
+ type: string
+ enum:
+ - map_reduce
+ default: map_reduce
+ readOnly: true
+ over:
+ allOf:
+ - $ref: '#/components/schemas/Common.PyExpression'
+ description: The variable to iterate over
+ map:
+ anyOf:
+ - $ref: '#/components/schemas/Tasks.EvaluateStep'
+ - $ref: '#/components/schemas/Tasks.ToolCallStep'
+ - $ref: '#/components/schemas/Tasks.PromptStep'
+ - $ref: '#/components/schemas/Tasks.GetStep'
+ - $ref: '#/components/schemas/Tasks.SetStep'
+ - $ref: '#/components/schemas/Tasks.LogStep'
+ - $ref: '#/components/schemas/Tasks.YieldStep'
+ description: The steps to run for each iteration
+ reduce:
+ allOf:
+ - $ref: '#/components/schemas/Common.PyExpression'
+ description: |-
+ The expression to reduce the results.
+ If not provided, the results are collected and returned as a list.
+ A special parameter named `results` is the accumulator and `_` is the current value.
+ initial:
+ description: The initial value of the reduce expression
+ default: []
+ parallelism:
+ type: integer
+ format: uint16
+ minimum: 1
+ maximum: 100
+ description: Whether to run the reduce expression in parallel and how many items to run in each batch
+ allOf:
+ - type: object
+ required:
+ - kind_
+ properties:
+ kind_:
+ type: string
+ enum:
+ - map_reduce
+ description: The kind of step
+ readOnly: true
+ discriminator:
+ propertyName: kind_
+ description: Payload for creating a task
+ Tasks.ErrorWorkflowStep:
+ type: object
+ required:
+ - kind_
+ - error
+ properties:
+ kind_:
+ type: string
+ enum:
+ - error
+ default: error
+ readOnly: true
+ error:
+ type: string
+ description: The error message
+ allOf:
+ - type: object
+ required:
+ - kind_
+ properties:
+ kind_:
+ type: string
+ enum:
+ - error
+ description: The kind of step
+ readOnly: true
+ discriminator:
+ propertyName: kind_
+ mapping: {}
+ Tasks.EvaluateStep:
+ type: object
+ required:
+ - kind_
+ - evaluate
+ properties:
+ kind_:
+ type: string
+ enum:
+ - evaluate
+ default: evaluate
+ readOnly: true
+ evaluate:
+ type: object
+ additionalProperties:
+ $ref: '#/components/schemas/Common.PyExpression'
+ description: The expression to evaluate
+ allOf:
+ - type: object
+ required:
+ - kind_
+ properties:
+ kind_:
+ type: string
+ enum:
+ - evaluate
+ description: The kind of step
+ readOnly: true
+ discriminator:
+ propertyName: kind_
+ mapping: {}
+ Tasks.ForeachDo:
+ type: object
+ required:
+ - in
+ - do
+ properties:
+ in:
+ allOf:
+ - $ref: '#/components/schemas/Common.PyExpression'
+ description: |-
+ The variable to iterate over.
+ VALIDATION: Should NOT return more than 1000 elements.
+ do:
+ anyOf:
+ - $ref: '#/components/schemas/Tasks.WaitForInputStep'
+ - $ref: '#/components/schemas/Tasks.EvaluateStep'
+ - $ref: '#/components/schemas/Tasks.ToolCallStep'
+ - $ref: '#/components/schemas/Tasks.PromptStep'
+ - $ref: '#/components/schemas/Tasks.GetStep'
+ - $ref: '#/components/schemas/Tasks.SetStep'
+ - $ref: '#/components/schemas/Tasks.LogStep'
+ - $ref: '#/components/schemas/Tasks.YieldStep'
+ description: The steps to run for each iteration
+ Tasks.ForeachDoUpdateItem:
+ type: object
+ required:
+ - in
+ - do
+ properties:
+ in:
+ allOf:
+ - $ref: '#/components/schemas/Common.PyExpression'
+ description: |-
+ The variable to iterate over.
+ VALIDATION: Should NOT return more than 1000 elements.
+ do:
+ anyOf:
+ - $ref: '#/components/schemas/Tasks.WaitForInputStep'
+ - $ref: '#/components/schemas/Tasks.EvaluateStep'
+ - $ref: '#/components/schemas/Tasks.ToolCallStep'
+ - $ref: '#/components/schemas/Tasks.PromptStepUpdateItem'
+ - $ref: '#/components/schemas/Tasks.GetStep'
+ - $ref: '#/components/schemas/Tasks.SetStep'
+ - $ref: '#/components/schemas/Tasks.LogStep'
+ - $ref: '#/components/schemas/Tasks.YieldStep'
+ description: The steps to run for each iteration
+ Tasks.ForeachStep:
+ type: object
+ required:
+ - kind_
+ - foreach
+ properties:
+ kind_:
+ type: string
+ enum:
+ - foreach
+ default: foreach
+ readOnly: true
+ foreach:
+ allOf:
+ - $ref: '#/components/schemas/Tasks.ForeachDo'
+ description: The steps to run for each iteration
+ allOf:
+ - type: object
+ required:
+ - kind_
+ properties:
+ kind_:
+ type: string
+ enum:
+ - foreach
+ description: The kind of step
+ readOnly: true
+ discriminator:
+ propertyName: kind_
+ mapping: {}
+ Tasks.ForeachStepUpdateItem:
+ type: object
+ required:
+ - foreach
+ properties:
+ foreach:
+ allOf:
+ - $ref: '#/components/schemas/Tasks.ForeachDoUpdateItem'
+ description: The steps to run for each iteration
+ allOf:
+ - type: object
+ properties:
+ kind_:
+ type: string
+ description: Discriminator property for BaseWorkflowStep.
+ discriminator:
+ propertyName: kind_
+ mapping: {}
+ Tasks.GetStep:
+ type: object
+ required:
+ - kind_
+ - get
+ properties:
+ kind_:
+ type: string
+ enum:
+ - get
+ default: get
+ readOnly: true
+ get:
+ type: string
+ description: The key to get
+ allOf:
+ - type: object
+ required:
+ - kind_
+ properties:
+ kind_:
+ type: string
+ enum:
+ - get
+ description: The kind of step
+ readOnly: true
+ discriminator:
+ propertyName: kind_
+ mapping: {}
+ Tasks.IfElseWorkflowStep:
+ type: object
+ required:
+ - kind_
+ - if
+ - then
+ - else
+ properties:
+ kind_:
+ type: string
+ enum:
+ - if_else
+ default: if_else
+ readOnly: true
+ if:
+ allOf:
+ - $ref: '#/components/schemas/Common.PyExpression'
+ description: The condition to evaluate
+ then:
+ anyOf:
+ - $ref: '#/components/schemas/Tasks.EvaluateStep'
+ - $ref: '#/components/schemas/Tasks.ToolCallStep'
+ - $ref: '#/components/schemas/Tasks.PromptStep'
+ - $ref: '#/components/schemas/Tasks.GetStep'
+ - $ref: '#/components/schemas/Tasks.SetStep'
+ - $ref: '#/components/schemas/Tasks.LogStep'
+ - $ref: '#/components/schemas/Tasks.YieldStep'
+ - $ref: '#/components/schemas/Tasks.ReturnStep'
+ - $ref: '#/components/schemas/Tasks.SleepStep'
+ - $ref: '#/components/schemas/Tasks.ErrorWorkflowStep'
+ - $ref: '#/components/schemas/Tasks.WaitForInputStep'
+ description: The steps to run if the condition is true
+ else:
+ anyOf:
+ - $ref: '#/components/schemas/Tasks.EvaluateStep'
+ - $ref: '#/components/schemas/Tasks.ToolCallStep'
+ - $ref: '#/components/schemas/Tasks.PromptStep'
+ - $ref: '#/components/schemas/Tasks.GetStep'
+ - $ref: '#/components/schemas/Tasks.SetStep'
+ - $ref: '#/components/schemas/Tasks.LogStep'
+ - $ref: '#/components/schemas/Tasks.YieldStep'
+ - $ref: '#/components/schemas/Tasks.ReturnStep'
+ - $ref: '#/components/schemas/Tasks.SleepStep'
+ - $ref: '#/components/schemas/Tasks.ErrorWorkflowStep'
+ - $ref: '#/components/schemas/Tasks.WaitForInputStep'
+ nullable: true
+ description: The steps to run if the condition is false
+ default: null
+ allOf:
+ - type: object
+ required:
+ - kind_
+ properties:
+ kind_:
+ type: string
+ enum:
+ - if_else
+ description: The kind of step
+ readOnly: true
+ discriminator:
+ propertyName: kind_
+ mapping: {}
+ Tasks.IfElseWorkflowStepUpdateItem:
+ type: object
+ required:
+ - if
+ - then
+ - else
+ properties:
+ if:
+ allOf:
+ - $ref: '#/components/schemas/Common.PyExpression'
+ description: The condition to evaluate
+ then:
+ anyOf:
+ - $ref: '#/components/schemas/Tasks.EvaluateStep'
+ - $ref: '#/components/schemas/Tasks.ToolCallStep'
+ - $ref: '#/components/schemas/Tasks.PromptStepUpdateItem'
+ - $ref: '#/components/schemas/Tasks.GetStep'
+ - $ref: '#/components/schemas/Tasks.SetStep'
+ - $ref: '#/components/schemas/Tasks.LogStep'
+ - $ref: '#/components/schemas/Tasks.YieldStep'
+ - $ref: '#/components/schemas/Tasks.ReturnStep'
+ - $ref: '#/components/schemas/Tasks.SleepStep'
+ - $ref: '#/components/schemas/Tasks.ErrorWorkflowStep'
+ - $ref: '#/components/schemas/Tasks.WaitForInputStep'
+ description: The steps to run if the condition is true
+ else:
+ anyOf:
+ - $ref: '#/components/schemas/Tasks.EvaluateStep'
+ - $ref: '#/components/schemas/Tasks.ToolCallStep'
+ - $ref: '#/components/schemas/Tasks.PromptStepUpdateItem'
+ - $ref: '#/components/schemas/Tasks.GetStep'
+ - $ref: '#/components/schemas/Tasks.SetStep'
+ - $ref: '#/components/schemas/Tasks.LogStep'
+ - $ref: '#/components/schemas/Tasks.YieldStep'
+ - $ref: '#/components/schemas/Tasks.ReturnStep'
+ - $ref: '#/components/schemas/Tasks.SleepStep'
+ - $ref: '#/components/schemas/Tasks.ErrorWorkflowStep'
+ - $ref: '#/components/schemas/Tasks.WaitForInputStep'
+ nullable: true
+ description: The steps to run if the condition is false
+ default: null
+ allOf:
+ - type: object
+ properties:
+ kind_:
+ type: string
+ description: Discriminator property for BaseWorkflowStep.
+ discriminator:
+ propertyName: kind_
+ mapping: {}
+ Tasks.LogStep:
+ type: object
+ required:
+ - kind_
+ - log
+ properties:
+ kind_:
+ type: string
+ enum:
+ - log
+ default: log
+ readOnly: true
+ log:
+ allOf:
+ - $ref: '#/components/schemas/Common.JinjaTemplate'
+ description: The value to log
+ allOf:
+ - type: object
+ required:
+ - kind_
+ properties:
+ kind_:
+ type: string
+ enum:
+ - log
+ description: The kind of step
+ readOnly: true
+ discriminator:
+ propertyName: kind_
+ mapping: {}
+ Tasks.ParallelStep:
+ type: object
+ required:
+ - kind_
+ - parallel
+ properties:
+ kind_:
+ type: string
+ enum:
+ - parallel
+ default: parallel
+ readOnly: true
+ parallel:
+ type: array
+ items:
+ anyOf:
+ - $ref: '#/components/schemas/Tasks.EvaluateStep'
+ - $ref: '#/components/schemas/Tasks.ToolCallStep'
+ - $ref: '#/components/schemas/Tasks.PromptStep'
+ - $ref: '#/components/schemas/Tasks.GetStep'
+ - $ref: '#/components/schemas/Tasks.SetStep'
+ - $ref: '#/components/schemas/Tasks.LogStep'
+ - $ref: '#/components/schemas/Tasks.YieldStep'
+ maxItems: 100
+ description: The steps to run in parallel. Max concurrency will depend on the platform.
+ allOf:
+ - type: object
+ required:
+ - kind_
+ properties:
+ kind_:
+ type: string
+ enum:
+ - parallel
+ description: The kind of step
+ readOnly: true
+ discriminator:
+ propertyName: kind_
+ mapping: {}
+ Tasks.ParallelStepUpdateItem:
+ type: object
+ required:
+ - parallel
+ properties:
+ parallel:
+ type: array
+ items:
+ anyOf:
+ - $ref: '#/components/schemas/Tasks.EvaluateStep'
+ - $ref: '#/components/schemas/Tasks.ToolCallStep'
+ - $ref: '#/components/schemas/Tasks.PromptStepUpdateItem'
+ - $ref: '#/components/schemas/Tasks.GetStep'
+ - $ref: '#/components/schemas/Tasks.SetStep'
+ - $ref: '#/components/schemas/Tasks.LogStep'
+ - $ref: '#/components/schemas/Tasks.YieldStep'
+ maxItems: 100
+ description: The steps to run in parallel. Max concurrency will depend on the platform.
+ allOf:
+ - type: object
+ properties:
+ kind_:
+ type: string
+ description: Discriminator property for BaseWorkflowStep.
+ discriminator:
+ propertyName: kind_
+ mapping: {}
+ Tasks.PatchTaskRequest:
+ type: object
+ properties:
+ description:
+ type: string
+ default: ''
+ main:
+ type: array
+ items:
+ anyOf:
+ - $ref: '#/components/schemas/Tasks.EvaluateStep'
+ - $ref: '#/components/schemas/Tasks.ToolCallStep'
+ - $ref: '#/components/schemas/Tasks.PromptStepUpdateItem'
+ - $ref: '#/components/schemas/Tasks.GetStep'
+ - $ref: '#/components/schemas/Tasks.SetStep'
+ - $ref: '#/components/schemas/Tasks.LogStep'
+ - $ref: '#/components/schemas/Tasks.YieldStep'
+ - $ref: '#/components/schemas/Tasks.ReturnStep'
+ - $ref: '#/components/schemas/Tasks.SleepStep'
+ - $ref: '#/components/schemas/Tasks.ErrorWorkflowStep'
+ - $ref: '#/components/schemas/Tasks.WaitForInputStep'
+ - $ref: '#/components/schemas/Tasks.IfElseWorkflowStepUpdateItem'
+ - $ref: '#/components/schemas/Tasks.SwitchStepUpdateItem'
+ - $ref: '#/components/schemas/Tasks.ForeachStepUpdateItem'
+ - $ref: '#/components/schemas/Tasks.ParallelStepUpdateItem'
+ - type: object
+ required:
+ - over
+ - map
+ properties:
+ over:
+ allOf:
+ - $ref: '#/components/schemas/Common.PyExpression'
+ description: The variable to iterate over
+ map:
+ anyOf:
+ - $ref: '#/components/schemas/Tasks.EvaluateStep'
+ - $ref: '#/components/schemas/Tasks.ToolCallStep'
+ - $ref: '#/components/schemas/Tasks.PromptStepUpdateItem'
+ - $ref: '#/components/schemas/Tasks.GetStep'
+ - $ref: '#/components/schemas/Tasks.SetStep'
+ - $ref: '#/components/schemas/Tasks.LogStep'
+ - $ref: '#/components/schemas/Tasks.YieldStep'
+ description: The steps to run for each iteration
+ reduce:
+ allOf:
+ - $ref: '#/components/schemas/Common.PyExpression'
+ description: |-
+ The expression to reduce the results.
+ If not provided, the results are collected and returned as a list.
+ A special parameter named `results` is the accumulator and `_` is the current value.
+ initial:
+ description: The initial value of the reduce expression
+ default: []
+ parallelism:
+ type: integer
+ format: uint16
+ minimum: 1
+ maximum: 100
+ description: Whether to run the reduce expression in parallel and how many items to run in each batch
+ allOf:
+ - type: object
+ properties:
+ kind_:
+ type: string
+ description: Discriminator property for BaseWorkflowStep.
+ discriminator:
+ propertyName: kind_
+ minItems: 1
+ description: The entrypoint of the task.
+ input_schema:
+ type: object
+ additionalProperties: {}
+ nullable: true
+ description: The schema for the input to the task. `null` means all inputs are valid.
+ default: null
+ tools:
+ type: array
+ items:
+ $ref: '#/components/schemas/Tasks.TaskTool'
+ description: Tools defined specifically for this task not included in the Agent itself.
+ default: []
+ inherit_tools:
+ type: boolean
+ description: Whether to inherit tools from the parent agent or not. Defaults to true.
+ default: true
+ metadata:
+ type: object
+ additionalProperties: {}
+ additionalProperties:
+ type: array
+ items:
+ anyOf:
+ - $ref: '#/components/schemas/Tasks.EvaluateStep'
+ - $ref: '#/components/schemas/Tasks.ToolCallStep'
+ - $ref: '#/components/schemas/Tasks.PromptStepUpdateItem'
+ - $ref: '#/components/schemas/Tasks.GetStep'
+ - $ref: '#/components/schemas/Tasks.SetStep'
+ - $ref: '#/components/schemas/Tasks.LogStep'
+ - $ref: '#/components/schemas/Tasks.YieldStep'
+ - $ref: '#/components/schemas/Tasks.ReturnStep'
+ - $ref: '#/components/schemas/Tasks.SleepStep'
+ - $ref: '#/components/schemas/Tasks.ErrorWorkflowStep'
+ - $ref: '#/components/schemas/Tasks.WaitForInputStep'
+ - $ref: '#/components/schemas/Tasks.IfElseWorkflowStepUpdateItem'
+ - $ref: '#/components/schemas/Tasks.SwitchStepUpdateItem'
+ - $ref: '#/components/schemas/Tasks.ForeachStepUpdateItem'
+ - $ref: '#/components/schemas/Tasks.ParallelStepUpdateItem'
+ - type: object
+ required:
+ - over
+ - map
+ properties:
+ over:
+ allOf:
+ - $ref: '#/components/schemas/Common.PyExpression'
+ description: The variable to iterate over
+ map:
+ anyOf:
+ - $ref: '#/components/schemas/Tasks.EvaluateStep'
+ - $ref: '#/components/schemas/Tasks.ToolCallStep'
+ - $ref: '#/components/schemas/Tasks.PromptStepUpdateItem'
+ - $ref: '#/components/schemas/Tasks.GetStep'
+ - $ref: '#/components/schemas/Tasks.SetStep'
+ - $ref: '#/components/schemas/Tasks.LogStep'
+ - $ref: '#/components/schemas/Tasks.YieldStep'
+ description: The steps to run for each iteration
+ reduce:
+ allOf:
+ - $ref: '#/components/schemas/Common.PyExpression'
+ description: |-
+ The expression to reduce the results.
+ If not provided, the results are collected and returned as a list.
+ A special parameter named `results` is the accumulator and `_` is the current value.
+ initial:
+ description: The initial value of the reduce expression
+ default: []
+ parallelism:
+ type: integer
+ format: uint16
+ minimum: 1
+ maximum: 100
+ description: Whether to run the reduce expression in parallel and how many items to run in each batch
+ allOf:
+ - type: object
+ properties:
+ kind_:
+ type: string
+ description: Discriminator property for BaseWorkflowStep.
+ discriminator:
+ propertyName: kind_
+ description: Payload for patching a task
+ Tasks.PromptStep:
+ type: object
+ required:
+ - kind_
+ - prompt
+ - tools
+ - forward_tool_results
+ properties:
+ kind_:
+ type: string
+ enum:
+ - prompt
+ default: prompt
+ readOnly: true
+ prompt:
+ anyOf:
+ - $ref: '#/components/schemas/Common.JinjaTemplate'
+ - type: array
+ items:
+ type: object
+ required:
+ - role
+ - content
+ properties:
+ role:
+ allOf:
+ - $ref: '#/components/schemas/Entries.ChatMLRole'
+ description: The role of the message
+ content:
+ anyOf:
+ - $ref: '#/components/schemas/Common.JinjaTemplate'
+ - type: array
+ items:
+ $ref: '#/components/schemas/Common.JinjaTemplate'
+ - type: array
+ items:
+ anyOf:
+ - type: object
+ required:
+ - text
+ - type
+ properties:
+ text:
+ $ref: '#/components/schemas/Common.JinjaTemplate'
+ type:
+ type: string
+ enum:
+ - text
+ description: The type (fixed to 'text')
+ default: text
+ - type: object
+ required:
+ - image_url
+ - type
+ properties:
+ image_url:
+ type: object
+ required:
+ - url
+ - detail
+ properties:
+ url:
+ type: string
+ description: Image URL or base64 data url (e.g. `data:image/jpeg;base64,`)
+ detail:
+ allOf:
+ - $ref: '#/components/schemas/Entries.ImageDetail'
+ description: The detail level of the image
+ default: auto
+ description: The image URL
+ type:
+ type: string
+ enum:
+ - image_url
+ description: The type (fixed to 'image_url')
+ default: image_url
+ description: The content parts of the message
+ name:
+ type: string
+ description: Name
+ continue:
+ type: boolean
+ description: Whether to continue this message or return a new one
+ description: The prompt to run
+ tools:
+ anyOf:
+ - type: string
+ enum:
+ - all
+ - type: array
+ items:
+ anyOf:
+ - $ref: '#/components/schemas/Tasks.ToolRef'
+ - $ref: '#/components/schemas/Tools.CreateToolRequest'
+ description: The tools to use for the prompt
+ default: []
+ tool_choice:
+ anyOf:
+ - type: string
+ enum:
+ - auto
+ - none
+ - $ref: '#/components/schemas/Tools.NamedToolChoice'
+ description: The tool choice for the prompt
+ settings:
+ allOf:
+ - $ref: '#/components/schemas/Chat.ChatSettings'
+ description: Settings for the prompt
+ unwrap:
+ type: boolean
+ description: Whether to unwrap the output of the prompt step, equivalent to `response.choices[0].message.content`
+ default: false
+ forward_tool_results:
+ type: boolean
+ nullable: true
+ description: |-
+ Whether to forward the tool results to the model when available.
+ "true" => always forward
+ "false" => never forward
+ null => forward if applicable (default)
+
+ If a tool call is made, the tool's output will be used as the model's input.
+ If a tool call is not made, the model's output will be used as the next step's input.
+ default: null
+ allOf:
+ - type: object
+ required:
+ - kind_
+ properties:
+ kind_:
+ type: string
+ enum:
+ - prompt
+ description: The kind of step
+ readOnly: true
+ discriminator:
+ propertyName: kind_
+ mapping: {}
+ Tasks.PromptStepUpdateItem:
+ type: object
+ required:
+ - prompt
+ - tools
+ - forward_tool_results
+ properties:
+ prompt:
+ anyOf:
+ - $ref: '#/components/schemas/Common.JinjaTemplate'
+ - type: array
+ items:
+ type: object
+ required:
+ - role
+ - content
+ properties:
+ role:
+ allOf:
+ - $ref: '#/components/schemas/Entries.ChatMLRole'
+ description: The role of the message
+ content:
+ anyOf:
+ - $ref: '#/components/schemas/Common.JinjaTemplate'
+ - type: array
+ items:
+ $ref: '#/components/schemas/Common.JinjaTemplate'
+ - type: array
+ items:
+ anyOf:
+ - type: object
+ required:
+ - text
+ - type
+ properties:
+ text:
+ $ref: '#/components/schemas/Common.JinjaTemplate'
+ type:
+ type: string
+ enum:
+ - text
+ description: The type (fixed to 'text')
+ default: text
+ - type: object
+ required:
+ - image_url
+ - type
+ properties:
+ image_url:
+ type: object
+ required:
+ - url
+ - detail
+ properties:
+ url:
+ type: string
+ description: Image URL or base64 data url (e.g. `data:image/jpeg;base64,`)
+ detail:
+ allOf:
+ - $ref: '#/components/schemas/Entries.ImageDetail'
+ description: The detail level of the image
+ default: auto
+ description: The image URL
+ type:
+ type: string
+ enum:
+ - image_url
+ description: The type (fixed to 'image_url')
+ default: image_url
+ description: The content parts of the message
+ name:
+ type: string
+ description: Name
+ continue:
+ type: boolean
+ description: Whether to continue this message or return a new one
+ description: The prompt to run
+ tools:
+ anyOf:
+ - type: string
+ enum:
+ - all
+ - type: array
+ items:
+ anyOf:
+ - $ref: '#/components/schemas/Tasks.ToolRefUpdateItem'
+ - $ref: '#/components/schemas/Tools.CreateToolRequest'
+ description: The tools to use for the prompt
+ default: []
+ tool_choice:
+ anyOf:
+ - type: string
+ enum:
+ - auto
+ - none
+ - $ref: '#/components/schemas/Tools.NamedToolChoice'
+ description: The tool choice for the prompt
+ settings:
+ allOf:
+ - $ref: '#/components/schemas/Chat.ChatSettings'
+ description: Settings for the prompt
+ unwrap:
+ type: boolean
+ description: Whether to unwrap the output of the prompt step, equivalent to `response.choices[0].message.content`
+ default: false
+ forward_tool_results:
+ type: boolean
+ nullable: true
+ description: |-
+ Whether to forward the tool results to the model when available.
+ "true" => always forward
+ "false" => never forward
+ null => forward if applicable (default)
+
+ If a tool call is made, the tool's output will be used as the model's input.
+ If a tool call is not made, the model's output will be used as the next step's input.
+ default: null
+ allOf:
+ - type: object
+ properties:
+ kind_:
+ type: string
+ description: Discriminator property for BaseWorkflowStep.
+ discriminator:
+ propertyName: kind_
+ mapping: {}
+ Tasks.ReturnStep:
+ type: object
+ required:
+ - kind_
+ - return
+ properties:
+ kind_:
+ type: string
+ enum:
+ - return
+ default: return
+ readOnly: true
+ return:
+ type: object
+ additionalProperties:
+ $ref: '#/components/schemas/Common.PyExpression'
+ description: The value to return
+ allOf:
+ - type: object
+ required:
+ - kind_
+ properties:
+ kind_:
+ type: string
+ enum:
+ - return
+ description: The kind of step
+ readOnly: true
+ discriminator:
+ propertyName: kind_
+ mapping: {}
+ Tasks.SetStep:
+ type: object
+ required:
+ - kind_
+ - set
+ properties:
+ kind_:
+ type: string
+ enum:
+ - set
+ default: set
+ readOnly: true
+ set:
+ type: object
+ additionalProperties:
+ $ref: '#/components/schemas/Common.PyExpression'
+ description: The value to set
+ allOf:
+ - type: object
+ required:
+ - kind_
+ properties:
+ kind_:
+ type: string
+ enum:
+ - set
+ description: The kind of step
+ readOnly: true
+ discriminator:
+ propertyName: kind_
+ mapping: {}
+ Tasks.SleepFor:
+ type: object
+ required:
+ - seconds
+ - minutes
+ - hours
+ - days
+ properties:
+ seconds:
+ type: integer
+ format: uint16
+ minimum: 0
+ maximum: 60
+ description: The number of seconds to sleep for
+ default: 0
+ minutes:
+ type: integer
+ format: uint16
+ minimum: 0
+ maximum: 60
+ description: The number of minutes to sleep for
+ default: 0
+ hours:
+ type: integer
+ format: uint16
+ minimum: 0
+ maximum: 24
+ description: The number of hours to sleep for
+ default: 0
+ days:
+ type: integer
+ format: uint16
+ minimum: 0
+ maximum: 30
+ description: The number of days to sleep for
+ default: 0
+ Tasks.SleepStep:
+ type: object
+ required:
+ - kind_
+ - sleep
+ properties:
+ kind_:
+ type: string
+ enum:
+ - sleep
+ default: sleep
+ readOnly: true
+ sleep:
+ allOf:
+ - $ref: '#/components/schemas/Tasks.SleepFor'
+ description: The duration to sleep for (max 31 days)
+ allOf:
+ - type: object
+ required:
+ - kind_
+ properties:
+ kind_:
+ type: string
+ enum:
+ - sleep
+ description: The kind of step
+ readOnly: true
+ discriminator:
+ propertyName: kind_
+ mapping: {}
+ Tasks.SwitchStep:
+ type: object
+ required:
+ - kind_
+ - switch
+ properties:
+ kind_:
+ type: string
+ enum:
+ - switch
+ default: switch
+ readOnly: true
+ switch:
+ type: array
+ items:
+ $ref: '#/components/schemas/Tasks.CaseThen'
+ minItems: 1
+ description: The cond tree
+ allOf:
+ - type: object
+ required:
+ - kind_
+ properties:
+ kind_:
+ type: string
+ enum:
+ - switch
+ description: The kind of step
+ readOnly: true
+ discriminator:
+ propertyName: kind_
+ mapping: {}
+ Tasks.SwitchStepUpdateItem:
+ type: object
+ required:
+ - switch
+ properties:
+ switch:
+ type: array
+ items:
+ $ref: '#/components/schemas/Tasks.CaseThenUpdateItem'
+ minItems: 1
+ description: The cond tree
+ allOf:
+ - type: object
+ properties:
+ kind_:
+ type: string
+ description: Discriminator property for BaseWorkflowStep.
+ discriminator:
+ propertyName: kind_
+ mapping: {}
+ Tasks.Task:
+ type: object
+ required:
+ - name
+ - description
+ - main
+ - input_schema
+ - tools
+ - inherit_tools
+ - id
+ - created_at
+ - updated_at
+ properties:
+ name:
+ type: string
+ description:
+ type: string
+ default: ''
+ main:
+ type: array
+ items:
+ anyOf:
+ - $ref: '#/components/schemas/Tasks.EvaluateStep'
+ - $ref: '#/components/schemas/Tasks.ToolCallStep'
+ - $ref: '#/components/schemas/Tasks.PromptStep'
+ - $ref: '#/components/schemas/Tasks.GetStep'
+ - $ref: '#/components/schemas/Tasks.SetStep'
+ - $ref: '#/components/schemas/Tasks.LogStep'
+ - $ref: '#/components/schemas/Tasks.YieldStep'
+ - $ref: '#/components/schemas/Tasks.ReturnStep'
+ - $ref: '#/components/schemas/Tasks.SleepStep'
+ - $ref: '#/components/schemas/Tasks.ErrorWorkflowStep'
+ - $ref: '#/components/schemas/Tasks.WaitForInputStep'
+ - $ref: '#/components/schemas/Tasks.IfElseWorkflowStep'
+ - $ref: '#/components/schemas/Tasks.SwitchStep'
+ - $ref: '#/components/schemas/Tasks.ForeachStep'
+ - $ref: '#/components/schemas/Tasks.ParallelStep'
+ - type: object
+ required:
+ - kind_
+ - over
+ - map
+ properties:
+ kind_:
+ type: string
+ enum:
+ - map_reduce
+ default: map_reduce
+ readOnly: true
+ over:
+ allOf:
+ - $ref: '#/components/schemas/Common.PyExpression'
+ description: The variable to iterate over
+ map:
+ anyOf:
+ - $ref: '#/components/schemas/Tasks.EvaluateStep'
+ - $ref: '#/components/schemas/Tasks.ToolCallStep'
+ - $ref: '#/components/schemas/Tasks.PromptStep'
+ - $ref: '#/components/schemas/Tasks.GetStep'
+ - $ref: '#/components/schemas/Tasks.SetStep'
+ - $ref: '#/components/schemas/Tasks.LogStep'
+ - $ref: '#/components/schemas/Tasks.YieldStep'
+ description: The steps to run for each iteration
+ reduce:
+ allOf:
+ - $ref: '#/components/schemas/Common.PyExpression'
+ description: |-
+ The expression to reduce the results.
+ If not provided, the results are collected and returned as a list.
+ A special parameter named `results` is the accumulator and `_` is the current value.
+ initial:
+ description: The initial value of the reduce expression
+ default: []
+ parallelism:
+ type: integer
+ format: uint16
+ minimum: 1
+ maximum: 100
+ description: Whether to run the reduce expression in parallel and how many items to run in each batch
+ allOf:
+ - type: object
+ required:
+ - kind_
+ properties:
+ kind_:
+ type: string
+ enum:
+ - map_reduce
+ description: The kind of step
+ readOnly: true
+ discriminator:
+ propertyName: kind_
+ minItems: 1
+ description: The entrypoint of the task.
+ input_schema:
+ type: object
+ additionalProperties: {}
+ nullable: true
+ description: The schema for the input to the task. `null` means all inputs are valid.
+ default: null
+ tools:
+ type: array
+ items:
+ $ref: '#/components/schemas/Tasks.TaskTool'
+ description: Tools defined specifically for this task not included in the Agent itself.
+ default: []
+ inherit_tools:
+ type: boolean
+ description: Whether to inherit tools from the parent agent or not. Defaults to true.
+ default: true
+ id:
+ allOf:
+ - $ref: '#/components/schemas/Common.uuid'
+ readOnly: true
+ created_at:
+ type: string
+ format: date-time
+ description: When this resource was created as UTC date-time
+ readOnly: true
+ updated_at:
+ type: string
+ format: date-time
+ description: When this resource was updated as UTC date-time
+ readOnly: true
+ metadata:
+ type: object
+ additionalProperties: {}
+ additionalProperties:
+ type: array
+ items:
+ anyOf:
+ - $ref: '#/components/schemas/Tasks.EvaluateStep'
+ - $ref: '#/components/schemas/Tasks.ToolCallStep'
+ - $ref: '#/components/schemas/Tasks.PromptStep'
+ - $ref: '#/components/schemas/Tasks.GetStep'
+ - $ref: '#/components/schemas/Tasks.SetStep'
+ - $ref: '#/components/schemas/Tasks.LogStep'
+ - $ref: '#/components/schemas/Tasks.YieldStep'
+ - $ref: '#/components/schemas/Tasks.ReturnStep'
+ - $ref: '#/components/schemas/Tasks.SleepStep'
+ - $ref: '#/components/schemas/Tasks.ErrorWorkflowStep'
+ - $ref: '#/components/schemas/Tasks.WaitForInputStep'
+ - $ref: '#/components/schemas/Tasks.IfElseWorkflowStep'
+ - $ref: '#/components/schemas/Tasks.SwitchStep'
+ - $ref: '#/components/schemas/Tasks.ForeachStep'
+ - $ref: '#/components/schemas/Tasks.ParallelStep'
+ - type: object
+ required:
+ - kind_
+ - over
+ - map
+ properties:
+ kind_:
+ type: string
+ enum:
+ - map_reduce
+ default: map_reduce
+ readOnly: true
+ over:
+ allOf:
+ - $ref: '#/components/schemas/Common.PyExpression'
+ description: The variable to iterate over
+ map:
+ anyOf:
+ - $ref: '#/components/schemas/Tasks.EvaluateStep'
+ - $ref: '#/components/schemas/Tasks.ToolCallStep'
+ - $ref: '#/components/schemas/Tasks.PromptStep'
+ - $ref: '#/components/schemas/Tasks.GetStep'
+ - $ref: '#/components/schemas/Tasks.SetStep'
+ - $ref: '#/components/schemas/Tasks.LogStep'
+ - $ref: '#/components/schemas/Tasks.YieldStep'
+ description: The steps to run for each iteration
+ reduce:
+ allOf:
+ - $ref: '#/components/schemas/Common.PyExpression'
+ description: |-
+ The expression to reduce the results.
+ If not provided, the results are collected and returned as a list.
+ A special parameter named `results` is the accumulator and `_` is the current value.
+ initial:
+ description: The initial value of the reduce expression
+ default: []
+ parallelism:
+ type: integer
+ format: uint16
+ minimum: 1
+ maximum: 100
+ description: Whether to run the reduce expression in parallel and how many items to run in each batch
+ allOf:
+ - type: object
+ required:
+ - kind_
+ properties:
+ kind_:
+ type: string
+ enum:
+ - map_reduce
+ description: The kind of step
+ readOnly: true
+ discriminator:
+ propertyName: kind_
+ description: Object describing a Task
+ Tasks.TaskTool:
+ type: object
+ properties:
+ inherited:
+ type: boolean
+ description: 'Read-only: Whether the tool was inherited or not. Only applies within tasks.'
+ default: false
+ readOnly: true
+ allOf:
+ - $ref: '#/components/schemas/Tools.CreateToolRequest'
+ Tasks.ToolCallStep:
+ type: object
+ required:
+ - kind_
+ - tool
+ - arguments
+ properties:
+ kind_:
+ type: string
+ enum:
+ - tool_call
+ default: tool_call
+ readOnly: true
+ tool:
+ allOf:
+ - $ref: '#/components/schemas/Common.validPythonIdentifier'
+ description: The tool to run
+ arguments:
+ anyOf:
+ - type: object
+ additionalProperties:
+ anyOf:
+ - $ref: '#/components/schemas/Common.PyExpression'
+ - type: object
+ additionalProperties:
+ $ref: '#/components/schemas/Common.PyExpression'
+ - type: string
+ enum:
+ - _
+ description: The input parameters for the tool (defaults to last step output)
+ default: _
+ allOf:
+ - type: object
+ required:
+ - kind_
+ properties:
+ kind_:
+ type: string
+ enum:
+ - tool_call
+ description: The kind of step
+ readOnly: true
+ discriminator:
+ propertyName: kind_
+ mapping: {}
+ Tasks.ToolRef:
+ type: object
+ required:
+ - ref
+ properties:
+ ref:
+ anyOf:
+ - $ref: '#/components/schemas/Tasks.ToolRefById'
+ - $ref: '#/components/schemas/Tasks.ToolRefByName'
+ description: Reference to a tool
+ Tasks.ToolRefById:
+ type: object
+ properties:
+ id:
+ $ref: '#/components/schemas/Common.uuid'
+ description: Reference to a tool by id
+ Tasks.ToolRefByName:
+ type: object
+ properties:
+ name:
+ $ref: '#/components/schemas/Common.validPythonIdentifier'
+ description: Reference to a tool by name
+ Tasks.ToolRefUpdateItem:
+ type: object
+ description: Reference to a tool
+ Tasks.UpdateTaskRequest:
+ type: object
+ required:
+ - description
+ - main
+ - input_schema
+ - tools
+ - inherit_tools
+ properties:
+ description:
+ type: string
+ default: ''
+ main:
+ type: array
+ items:
+ anyOf:
+ - $ref: '#/components/schemas/Tasks.EvaluateStep'
+ - $ref: '#/components/schemas/Tasks.ToolCallStep'
+ - $ref: '#/components/schemas/Tasks.PromptStep'
+ - $ref: '#/components/schemas/Tasks.GetStep'
+ - $ref: '#/components/schemas/Tasks.SetStep'
+ - $ref: '#/components/schemas/Tasks.LogStep'
+ - $ref: '#/components/schemas/Tasks.YieldStep'
+ - $ref: '#/components/schemas/Tasks.ReturnStep'
+ - $ref: '#/components/schemas/Tasks.SleepStep'
+ - $ref: '#/components/schemas/Tasks.ErrorWorkflowStep'
+ - $ref: '#/components/schemas/Tasks.WaitForInputStep'
+ - $ref: '#/components/schemas/Tasks.IfElseWorkflowStep'
+ - $ref: '#/components/schemas/Tasks.SwitchStep'
+ - $ref: '#/components/schemas/Tasks.ForeachStep'
+ - $ref: '#/components/schemas/Tasks.ParallelStep'
+ - type: object
+ required:
+ - kind_
+ - over
+ - map
+ properties:
+ kind_:
+ type: string
+ enum:
+ - map_reduce
+ default: map_reduce
+ readOnly: true
+ over:
+ allOf:
+ - $ref: '#/components/schemas/Common.PyExpression'
+ description: The variable to iterate over
+ map:
+ anyOf:
+ - $ref: '#/components/schemas/Tasks.EvaluateStep'
+ - $ref: '#/components/schemas/Tasks.ToolCallStep'
+ - $ref: '#/components/schemas/Tasks.PromptStep'
+ - $ref: '#/components/schemas/Tasks.GetStep'
+ - $ref: '#/components/schemas/Tasks.SetStep'
+ - $ref: '#/components/schemas/Tasks.LogStep'
+ - $ref: '#/components/schemas/Tasks.YieldStep'
+ description: The steps to run for each iteration
+ reduce:
+ allOf:
+ - $ref: '#/components/schemas/Common.PyExpression'
+ description: |-
+ The expression to reduce the results.
+ If not provided, the results are collected and returned as a list.
+ A special parameter named `results` is the accumulator and `_` is the current value.
+ initial:
+ description: The initial value of the reduce expression
+ default: []
+ parallelism:
+ type: integer
+ format: uint16
+ minimum: 1
+ maximum: 100
+ description: Whether to run the reduce expression in parallel and how many items to run in each batch
+ allOf:
+ - type: object
+ required:
+ - kind_
+ properties:
+ kind_:
+ type: string
+ enum:
+ - map_reduce
+ description: The kind of step
+ readOnly: true
+ discriminator:
+ propertyName: kind_
+ minItems: 1
+ description: The entrypoint of the task.
+ input_schema:
+ type: object
+ additionalProperties: {}
+ nullable: true
+ description: The schema for the input to the task. `null` means all inputs are valid.
+ default: null
+ tools:
+ type: array
+ items:
+ $ref: '#/components/schemas/Tasks.TaskTool'
+ description: Tools defined specifically for this task not included in the Agent itself.
+ default: []
+ inherit_tools:
+ type: boolean
+ description: Whether to inherit tools from the parent agent or not. Defaults to true.
+ default: true
+ metadata:
+ type: object
+ additionalProperties: {}
+ additionalProperties:
+ type: array
+ items:
+ anyOf:
+ - $ref: '#/components/schemas/Tasks.EvaluateStep'
+ - $ref: '#/components/schemas/Tasks.ToolCallStep'
+ - $ref: '#/components/schemas/Tasks.PromptStep'
+ - $ref: '#/components/schemas/Tasks.GetStep'
+ - $ref: '#/components/schemas/Tasks.SetStep'
+ - $ref: '#/components/schemas/Tasks.LogStep'
+ - $ref: '#/components/schemas/Tasks.YieldStep'
+ - $ref: '#/components/schemas/Tasks.ReturnStep'
+ - $ref: '#/components/schemas/Tasks.SleepStep'
+ - $ref: '#/components/schemas/Tasks.ErrorWorkflowStep'
+ - $ref: '#/components/schemas/Tasks.WaitForInputStep'
+ - $ref: '#/components/schemas/Tasks.IfElseWorkflowStep'
+ - $ref: '#/components/schemas/Tasks.SwitchStep'
+ - $ref: '#/components/schemas/Tasks.ForeachStep'
+ - $ref: '#/components/schemas/Tasks.ParallelStep'
+ - type: object
+ required:
+ - kind_
+ - over
+ - map
+ properties:
+ kind_:
+ type: string
+ enum:
+ - map_reduce
+ default: map_reduce
+ readOnly: true
+ over:
+ allOf:
+ - $ref: '#/components/schemas/Common.PyExpression'
+ description: The variable to iterate over
+ map:
+ anyOf:
+ - $ref: '#/components/schemas/Tasks.EvaluateStep'
+ - $ref: '#/components/schemas/Tasks.ToolCallStep'
+ - $ref: '#/components/schemas/Tasks.PromptStep'
+ - $ref: '#/components/schemas/Tasks.GetStep'
+ - $ref: '#/components/schemas/Tasks.SetStep'
+ - $ref: '#/components/schemas/Tasks.LogStep'
+ - $ref: '#/components/schemas/Tasks.YieldStep'
+ description: The steps to run for each iteration
+ reduce:
+ allOf:
+ - $ref: '#/components/schemas/Common.PyExpression'
+ description: |-
+ The expression to reduce the results.
+ If not provided, the results are collected and returned as a list.
+ A special parameter named `results` is the accumulator and `_` is the current value.
+ initial:
+ description: The initial value of the reduce expression
+ default: []
+ parallelism:
+ type: integer
+ format: uint16
+ minimum: 1
+ maximum: 100
+ description: Whether to run the reduce expression in parallel and how many items to run in each batch
+ allOf:
+ - type: object
+ required:
+ - kind_
+ properties:
+ kind_:
+ type: string
+ enum:
+ - map_reduce
+ description: The kind of step
+ readOnly: true
+ discriminator:
+ propertyName: kind_
+ description: Payload for updating a task
+ Tasks.WaitForInputInfo:
+ type: object
+ required:
+ - info
+ properties:
+ info:
+ type: object
+ additionalProperties:
+ $ref: '#/components/schemas/Common.PyExpression'
+ description: Any additional info or data
+ Tasks.WaitForInputStep:
+ type: object
+ required:
+ - kind_
+ - wait_for_input
+ properties:
+ kind_:
+ type: string
+ enum:
+ - wait_for_input
+ default: wait_for_input
+ readOnly: true
+ wait_for_input:
+ allOf:
+ - $ref: '#/components/schemas/Tasks.WaitForInputInfo'
+ description: Any additional info or data
+ allOf:
+ - type: object
+ required:
+ - kind_
+ properties:
+ kind_:
+ type: string
+ enum:
+ - wait_for_input
+ description: The kind of step
+ readOnly: true
+ discriminator:
+ propertyName: kind_
+ mapping: {}
+ Tasks.YieldStep:
+ type: object
+ required:
+ - kind_
+ - workflow
+ - arguments
+ properties:
+ kind_:
+ type: string
+ enum:
+ - yield
+ default: yield
+ readOnly: true
+ workflow:
+ type: string
+ description: |-
+ The subworkflow to run.
+ VALIDATION: Should resolve to a defined subworkflow.
+ arguments:
+ anyOf:
+ - type: object
+ additionalProperties:
+ $ref: '#/components/schemas/Common.PyExpression'
+ - type: string
+ enum:
+ - _
+ description: The input parameters for the subworkflow (defaults to last step output)
+ default: _
+ allOf:
+ - type: object
+ required:
+ - kind_
+ properties:
+ kind_:
+ type: string
+ enum:
+ - yield
+ description: The kind of step
+ readOnly: true
+ discriminator:
+ propertyName: kind_
+ mapping: {}
+ Tools.ApiCallDef:
+ type: object
+ required:
+ - method
+ - url
+ properties:
+ method:
+ type: string
+ enum:
+ - GET
+ - POST
+ - PUT
+ - DELETE
+ - PATCH
+ - HEAD
+ - OPTIONS
+ - CONNECT
+ - TRACE
+ description: The HTTP method to use
+ url:
+ type: string
+ format: uri
+ description: The URL to call
+ headers:
+ type: object
+ additionalProperties:
+ type: string
+ description: The headers to send with the request
+ content:
+ type: string
+ description: The content as base64 to send with the request
+ data:
+ type: object
+ additionalProperties: {}
+ description: The data to send as form data
+ json:
+ type: object
+ additionalProperties: {}
+ description: JSON body to send with the request
+ cookies:
+ type: object
+ additionalProperties:
+ type: string
+ description: Cookies
+ params:
+ anyOf:
+ - type: string
+ - type: object
+ additionalProperties: {}
+ description: The parameters to send with the request
+ follow_redirects:
+ type: boolean
+ description: Follow redirects
+ timeout:
+ type: integer
+ format: uint8
+ description: The timeout for the request
+ description: API call definition
+ Tools.ApiCallDefUpdate:
+ type: object
+ properties:
+ method:
+ type: string
+ enum:
+ - GET
+ - POST
+ - PUT
+ - DELETE
+ - PATCH
+ - HEAD
+ - OPTIONS
+ - CONNECT
+ - TRACE
+ description: The HTTP method to use
+ url:
+ type: string
+ format: uri
+ description: The URL to call
+ headers:
+ type: object
+ additionalProperties:
+ type: string
+ description: The headers to send with the request
+ content:
+ type: string
+ description: The content as base64 to send with the request
+ data:
+ type: object
+ additionalProperties: {}
+ description: The data to send as form data
+ json:
+ type: object
+ additionalProperties: {}
+ description: JSON body to send with the request
+ cookies:
+ type: object
+ additionalProperties:
+ type: string
+ description: Cookies
+ params:
+ anyOf:
+ - type: string
+ - type: object
+ additionalProperties: {}
+ description: The parameters to send with the request
+ follow_redirects:
+ type: boolean
+ description: Follow redirects
+ timeout:
+ type: integer
+ format: uint8
+ description: The timeout for the request
+ description: API call definition
+ Tools.ChosenFunctionCall:
+ type: object
+ required:
+ - type
+ - function
+ properties:
+ type:
+ type: string
+ enum:
+ - function
+ function:
+ allOf:
+ - $ref: '#/components/schemas/Tools.FunctionCallOption'
+ description: The function to call
+ allOf:
+ - $ref: '#/components/schemas/Tools.ChosenToolCall'
+ Tools.ChosenToolCall:
+ type: object
+ required:
+ - type
+ - id
+ properties:
+ type:
+ allOf:
+ - $ref: '#/components/schemas/Tools.ToolType'
+ description: Whether this tool is a `function`, `api_call`, `system` etc. (Only `function` tool supported right now)
+ function:
+ $ref: '#/components/schemas/Tools.FunctionCallOption'
+ id:
+ allOf:
+ - $ref: '#/components/schemas/Common.uuid'
+ readOnly: true
+ discriminator:
+ propertyName: type
+ mapping:
+ function: '#/components/schemas/Tools.ChosenFunctionCall'
+ description: The response tool value generated by the model
+ Tools.CreateToolRequest:
+ type: object
+ required:
+ - name
+ properties:
+ name:
+ allOf:
+ - $ref: '#/components/schemas/Common.validPythonIdentifier'
+ description: Name of the tool (must be unique for this agent and a valid python identifier string )
+ description:
+ type: string
+ description: Description of the tool
+ function:
+ allOf:
+ - $ref: '#/components/schemas/Tools.FunctionDef'
+ description: The function to call
+ integration:
+ allOf:
+ - $ref: '#/components/schemas/Tools.IntegrationDef'
+ description: The integration to call
+ system:
+ allOf:
+ - $ref: '#/components/schemas/Tools.SystemDef'
+ description: The system to call
+ api_call:
+ allOf:
+ - $ref: '#/components/schemas/Tools.ApiCallDef'
+ description: The API call to make
+ description: Payload for creating a tool
+ Tools.FunctionCallOption:
+ type: object
+ required:
+ - name
+ properties:
+ name:
+ type: string
+ description: The name of the function
+ Tools.FunctionDef:
+ type: object
+ properties:
+ name:
+ nullable: true
+ description: 'DO NOT USE: This will be overriden by the tool name. Here only for compatibility reasons.'
+ default: null
+ description:
+ nullable: true
+ description: 'DO NOT USE: This will be overriden by the tool description. Here only for compatibility reasons.'
+ default: null
+ parameters:
+ type: object
+ additionalProperties: {}
+ description: The parameters the function accepts
+ description: Function definition
+ Tools.IntegrationDef:
+ type: object
+ required:
+ - provider
+ properties:
+ provider:
+ anyOf:
+ - type: string
+ enum:
+ - dummy
+ - hacker_news
+ - weather
+ - wikipedia
+ - spider
+ - brave
+ - browserbase
+ - email
+ - type: string
+ description: The provider of the integration
+ method:
+ type: string
+ description: The specific method of the integration to call
+ setup:
+ type: object
+ additionalProperties: {}
+ description: The setup parameters the integration accepts
+ arguments:
+ type: object
+ additionalProperties: {}
+ description: The arguments to pre-apply to the integration call
+ description: Integration definition
+ Tools.IntegrationDefUpdate:
+ type: object
+ properties:
+ provider:
+ anyOf:
+ - type: string
+ enum:
+ - dummy
+ - hacker_news
+ - weather
+ - wikipedia
+ - spider
+ - brave
+ - browserbase
+ - email
+ - type: string
+ description: The provider of the integration
+ method:
+ type: string
+ description: The specific method of the integration to call
+ setup:
+ type: object
+ additionalProperties: {}
+ description: The setup parameters the integration accepts
+ arguments:
+ type: object
+ additionalProperties: {}
+ description: The arguments to pre-apply to the integration call
+ description: Integration definition
+ Tools.NamedToolChoice:
+ type: object
+ properties:
+ function:
+ $ref: '#/components/schemas/Tools.FunctionCallOption'
+ Tools.PatchToolRequest:
+ type: object
+ properties:
+ name:
+ allOf:
+ - $ref: '#/components/schemas/Common.validPythonIdentifier'
+ description: Name of the tool (must be unique for this agent and a valid python identifier string )
+ description:
+ type: string
+ description: Description of the tool
+ function:
+ allOf:
+ - $ref: '#/components/schemas/Tools.FunctionDef'
+ description: The function to call
+ integration:
+ allOf:
+ - $ref: '#/components/schemas/Tools.IntegrationDefUpdate'
+ description: The integration to call
+ system:
+ allOf:
+ - $ref: '#/components/schemas/Tools.SystemDefUpdate'
+ description: The system to call
+ api_call:
+ allOf:
+ - $ref: '#/components/schemas/Tools.ApiCallDefUpdate'
+ description: The API call to make
+ description: Payload for patching a tool
+ Tools.SystemDef:
+ type: object
+ required:
+ - resource
+ - operation
+ properties:
+ resource:
+ type: string
+ enum:
+ - agent
+ - user
+ - task
+ - execution
+ - doc
+ - session
+ - job
+ description: Resource is the name of the resource to use
+ operation:
+ type: string
+ enum:
+ - create
+ - update
+ - patch
+ - create_or_update
+ - embed
+ - change_status
+ - search
+ - chat
+ - history
+ - delete
+ - get
+ - list
+ description: Operation is the name of the operation to perform
+ resource_id:
+ allOf:
+ - $ref: '#/components/schemas/Common.uuid'
+ description: Resource id (if applicable)
+ subresource:
+ type: string
+ enum:
+ - tool
+ - doc
+ - execution
+ - transition
+ description: Sub-resource type (if applicable)
+ arguments:
+ type: object
+ additionalProperties: {}
+ description: The arguments to pre-apply to the system call
+ description: System definition
+ Tools.SystemDefUpdate:
+ type: object
+ properties:
+ resource:
+ type: string
+ enum:
+ - agent
+ - user
+ - task
+ - execution
+ - doc
+ - session
+ - job
+ description: Resource is the name of the resource to use
+ operation:
+ type: string
+ enum:
+ - create
+ - update
+ - patch
+ - create_or_update
+ - embed
+ - change_status
+ - search
+ - chat
+ - history
+ - delete
+ - get
+ - list
+ description: Operation is the name of the operation to perform
+ resource_id:
+ allOf:
+ - $ref: '#/components/schemas/Common.uuid'
+ description: Resource id (if applicable)
+ subresource:
+ type: string
+ enum:
+ - tool
+ - doc
+ - execution
+ - transition
+ description: Sub-resource type (if applicable)
+ arguments:
+ type: object
+ additionalProperties: {}
+ description: The arguments to pre-apply to the system call
+ description: System definition
+ Tools.Tool:
+ type: object
+ required:
+ - name
+ - created_at
+ - updated_at
+ - id
+ properties:
+ name:
+ allOf:
+ - $ref: '#/components/schemas/Common.validPythonIdentifier'
+ description: Name of the tool (must be unique for this agent and a valid python identifier string )
+ description:
+ type: string
+ description: Description of the tool
+ function:
+ allOf:
+ - $ref: '#/components/schemas/Tools.FunctionDef'
+ description: The function to call
+ integration:
+ allOf:
+ - $ref: '#/components/schemas/Tools.IntegrationDef'
+ description: The integration to call
+ system:
+ allOf:
+ - $ref: '#/components/schemas/Tools.SystemDef'
+ description: The system to call
+ api_call:
+ allOf:
+ - $ref: '#/components/schemas/Tools.ApiCallDef'
+ description: The API call to make
+ created_at:
+ type: string
+ format: date-time
+ description: When this resource was created as UTC date-time
+ readOnly: true
+ updated_at:
+ type: string
+ format: date-time
+ description: When this resource was updated as UTC date-time
+ readOnly: true
+ id:
+ allOf:
+ - $ref: '#/components/schemas/Common.uuid'
+ readOnly: true
+ Tools.ToolResponse:
+ type: object
+ required:
+ - id
+ - output
+ properties:
+ id:
+ $ref: '#/components/schemas/Common.uuid'
+ output:
+ type: object
+ additionalProperties: {}
+ description: The output of the tool
+ Tools.ToolType:
+ type: string
+ enum:
+ - function
+ - integration
+ - system
+ - api_call
+ Tools.UpdateToolRequest:
+ type: object
+ required:
+ - name
+ properties:
+ name:
+ allOf:
+ - $ref: '#/components/schemas/Common.validPythonIdentifier'
+ description: Name of the tool (must be unique for this agent and a valid python identifier string )
+ description:
+ type: string
+ description: Description of the tool
+ function:
+ allOf:
+ - $ref: '#/components/schemas/Tools.FunctionDef'
+ description: The function to call
+ integration:
+ allOf:
+ - $ref: '#/components/schemas/Tools.IntegrationDef'
+ description: The integration to call
+ system:
+ allOf:
+ - $ref: '#/components/schemas/Tools.SystemDef'
+ description: The system to call
+ api_call:
+ allOf:
+ - $ref: '#/components/schemas/Tools.ApiCallDef'
+ description: The API call to make
+ description: Payload for updating a tool
+ Users.CreateOrUpdateUserRequest:
+ type: object
+ required:
+ - id
+ properties:
+ id:
+ $ref: '#/components/schemas/Common.uuid'
+ allOf:
+ - $ref: '#/components/schemas/Users.CreateUserRequest'
+ Users.CreateUserRequest:
+ type: object
+ required:
+ - name
+ - about
+ properties:
+ metadata:
+ type: object
+ additionalProperties: {}
+ name:
+ allOf:
+ - $ref: '#/components/schemas/Common.identifierSafeUnicode'
+ description: Name of the user
+ default: ''
+ about:
+ type: string
+ description: About the user
+ default: ''
+ description: Payload for creating a user (and associated documents)
+ Users.PatchUserRequest:
+ type: object
+ properties:
+ metadata:
+ type: object
+ additionalProperties: {}
+ name:
+ allOf:
+ - $ref: '#/components/schemas/Common.identifierSafeUnicode'
+ description: Name of the user
+ default: ''
+ about:
+ type: string
+ description: About the user
+ default: ''
+ description: Payload for patching a user
+ Users.UpdateUserRequest:
+ type: object
+ required:
+ - name
+ - about
+ properties:
+ metadata:
+ type: object
+ additionalProperties: {}
+ name:
+ allOf:
+ - $ref: '#/components/schemas/Common.identifierSafeUnicode'
+ description: Name of the user
+ default: ''
+ about:
+ type: string
+ description: About the user
+ default: ''
+ description: Payload for updating a user
+ Users.User:
+ type: object
+ required:
+ - id
+ - created_at
+ - updated_at
+ - name
+ - about
+ properties:
+ id:
+ allOf:
+ - $ref: '#/components/schemas/Common.uuid'
+ readOnly: true
+ metadata:
+ type: object
+ additionalProperties: {}
+ created_at:
+ type: string
+ format: date-time
+ description: When this resource was created as UTC date-time
+ readOnly: true
+ updated_at:
+ type: string
+ format: date-time
+ description: When this resource was updated as UTC date-time
+ readOnly: true
+ name:
+ allOf:
+ - $ref: '#/components/schemas/Common.identifierSafeUnicode'
+ description: Name of the user
+ default: ''
+ about:
+ type: string
+ description: About the user
+ default: ''
+ securitySchemes:
+ ApiKeyAuth:
+ type: apiKey
+ in: header
+ name: Authorization
+ ApiKeyAuth_:
+ type: apiKey
+ in: header
+ name: X-Auth-Key
+servers:
+ - url: https://{serverEnv}.julep.ai/api
+ description: The julep cloud service endpoint
+ variables:
+ serverEnv:
+ default: api-alpha
+ description: The environment to use
+ enum:
+ - api
+ - api-alpha
diff --git a/typespec/tsp-output/@typespec/openapi3/openapi-1.0.0.yaml b/typespec/tsp-output/@typespec/openapi3/openapi-1.0.0.yaml
new file mode 100644
index 000000000..95d50b77a
--- /dev/null
+++ b/typespec/tsp-output/@typespec/openapi3/openapi-1.0.0.yaml
@@ -0,0 +1,6244 @@
+openapi: 3.0.0
+info:
+ title: Julep API
+ termsOfService: https://julep.ai/terms
+ contact:
+ name: Julep AI
+ url: https://julep.ai
+ email: developers@julep.ai
+ license:
+ name: Apache 2.0
+ url: https://www.apache.org/licenses/LICENSE-2.0.html
+ summary: A backend for creating stateful AI apps
+ description: Julep is a backend for creating stateful AI apps with background tasks and long-term memory easily.
+ version: 1.0.0
+externalDocs:
+ url: https://docs.julep.ai
+ description: Julep API documentation
+tags: []
+paths:
+ /agents:
+ get:
+ operationId: AgentsRoute_list
+ description: List Agents (paginated)
+ parameters:
+ - $ref: '#/components/parameters/Common.PaginationOptions.limit'
+ - $ref: '#/components/parameters/Common.PaginationOptions.offset'
+ - $ref: '#/components/parameters/Common.PaginationOptions.sort_by'
+ - $ref: '#/components/parameters/Common.PaginationOptions.direction'
+ - $ref: '#/components/parameters/Common.PaginationOptions.metadata_filter'
+ responses:
+ '200':
+ description: The request has succeeded.
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ items:
+ type: array
+ items:
+ $ref: '#/components/schemas/Agents.Agent'
+ required:
+ - items
+ post:
+ operationId: AgentsRoute_create
+ description: Create a new Agent
+ parameters: []
+ responses:
+ '201':
+ description: The request has succeeded and a new resource has been created as a result.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Common.ResourceCreatedResponse'
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Agents.CreateAgentRequest'
+ /agents/{id}:
+ post:
+ operationId: AgentsRoute_createOrUpdate
+ description: Create or update an Agent
+ parameters:
+ - $ref: '#/components/parameters/Agents.CreateOrUpdateAgentRequest.id'
+ responses:
+ '200':
+ description: The request has succeeded.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Common.ResourceUpdatedResponse'
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Agents.UpdateAgentRequest'
+ put:
+ operationId: AgentsRoute_update
+ description: Update an existing Agent by id (overwrites existing values; use PATCH for merging instead)
+ parameters:
+ - name: id
+ in: path
+ required: true
+ description: ID of the resource
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ responses:
+ '200':
+ description: The request has succeeded.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Common.ResourceUpdatedResponse'
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Agents.UpdateAgentRequest'
+ patch:
+ operationId: AgentsRoute_patch
+ description: Update an existing Agent by id (merges with existing values)
+ parameters:
+ - name: id
+ in: path
+ required: true
+ description: ID of the resource
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ responses:
+ '200':
+ description: The request has succeeded.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Common.ResourceUpdatedResponse'
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Agents.PatchAgentRequest'
+ delete:
+ operationId: AgentsRoute_delete
+ description: Delete Agent by id
+ parameters:
+ - name: id
+ in: path
+ required: true
+ description: ID of the resource
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ responses:
+ '202':
+ description: The request has been accepted for processing, but processing has not yet completed.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Common.ResourceDeletedResponse'
+ get:
+ operationId: AgentsRoute_get
+ description: Get an Agent by id
+ parameters:
+ - name: id
+ in: path
+ required: true
+ description: ID of the resource
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ responses:
+ '200':
+ description: The request has succeeded.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Agents.Agent'
+ /agents/{id}/docs:
+ get:
+ operationId: AgentDocsRoute_list
+ description: List Docs owned by an Agent
+ parameters:
+ - name: id
+ in: path
+ required: true
+ description: ID of parent
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ - $ref: '#/components/parameters/Common.PaginationOptions.limit'
+ - $ref: '#/components/parameters/Common.PaginationOptions.offset'
+ - $ref: '#/components/parameters/Common.PaginationOptions.sort_by'
+ - $ref: '#/components/parameters/Common.PaginationOptions.direction'
+ - $ref: '#/components/parameters/Common.PaginationOptions.metadata_filter'
+ responses:
+ '200':
+ description: The request has succeeded.
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ items:
+ type: array
+ items:
+ $ref: '#/components/schemas/Docs.Doc'
+ required:
+ - items
+ post:
+ operationId: AgentDocsRoute_create
+ description: Create a Doc for this Agent
+ parameters:
+ - name: id
+ in: path
+ required: true
+ description: ID of parent resource
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ responses:
+ '201':
+ description: The request has succeeded and a new resource has been created as a result.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Common.ResourceCreatedResponse'
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Docs.CreateDocRequest'
+ /agents/{id}/docs/{child_id}:
+ delete:
+ operationId: AgentDocsRoute_delete
+ description: Delete a Doc for this Agent
+ parameters:
+ - name: id
+ in: path
+ required: true
+ description: ID of parent resource
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ - name: child_id
+ in: path
+ required: true
+ description: ID of the resource to be deleted
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ responses:
+ '202':
+ description: The request has been accepted for processing, but processing has not yet completed.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Common.ResourceDeletedResponse'
+ /agents/{id}/search:
+ post:
+ operationId: AgentsDocsSearchRoute_search
+ description: Search Docs owned by an Agent
+ parameters:
+ - name: id
+ in: path
+ required: true
+ description: ID of the parent
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ responses:
+ '200':
+ description: The request has succeeded.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Docs.DocSearchResponse'
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ body:
+ anyOf:
+ - $ref: '#/components/schemas/Docs.VectorDocSearchRequest'
+ - $ref: '#/components/schemas/Docs.TextOnlyDocSearchRequest'
+ - $ref: '#/components/schemas/Docs.HybridDocSearchRequest'
+ required:
+ - body
+ /agents/{id}/tasks:
+ get:
+ operationId: TasksRoute_list
+ description: List tasks (paginated)
+ parameters:
+ - name: id
+ in: path
+ required: true
+ description: ID of parent
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ - $ref: '#/components/parameters/Common.PaginationOptions.limit'
+ - $ref: '#/components/parameters/Common.PaginationOptions.offset'
+ - $ref: '#/components/parameters/Common.PaginationOptions.sort_by'
+ - $ref: '#/components/parameters/Common.PaginationOptions.direction'
+ - $ref: '#/components/parameters/Common.PaginationOptions.metadata_filter'
+ responses:
+ '200':
+ description: The request has succeeded.
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ items:
+ type: array
+ items:
+ $ref: '#/components/schemas/Tasks.Task'
+ required:
+ - items
+ post:
+ operationId: TasksRoute_create
+ description: Create a new task
+ parameters:
+ - name: id
+ in: path
+ required: true
+ description: ID of parent resource
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ responses:
+ '200':
+ description: The request has succeeded.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Common.ResourceCreatedResponse'
+ requestBody:
+ required: true
+ content:
+ application/yaml:
+ schema:
+ $ref: '#/components/schemas/Tasks.CreateTaskRequest'
+ text/x-yaml:
+ schema:
+ $ref: '#/components/schemas/Tasks.CreateTaskRequest'
+ text/yaml:
+ schema:
+ $ref: '#/components/schemas/Tasks.CreateTaskRequest'
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Tasks.CreateTaskRequest'
+ /agents/{id}/tasks/{child_id}:
+ put:
+ operationId: TasksRoute_update
+ description: Update an existing task (overwrite existing values)
+ parameters:
+ - name: id
+ in: path
+ required: true
+ description: ID of parent resource
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ - name: child_id
+ in: path
+ required: true
+ description: ID of the resource to be updated
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ responses:
+ '200':
+ description: The request has succeeded.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Common.ResourceUpdatedResponse'
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Tasks.UpdateTaskRequest'
+ patch:
+ operationId: TasksRoute_patch
+ description: Update an existing task (merges with existing values)
+ parameters:
+ - name: id
+ in: path
+ required: true
+ description: ID of parent resource
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ - name: child_id
+ in: path
+ required: true
+ description: ID of the resource to be patched
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ responses:
+ '200':
+ description: The request has succeeded.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Common.ResourceUpdatedResponse'
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Tasks.PatchTaskRequest'
+ delete:
+ operationId: TasksRoute_delete
+ description: Delete a task by its id
+ parameters:
+ - name: id
+ in: path
+ required: true
+ description: ID of parent resource
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ - name: child_id
+ in: path
+ required: true
+ description: ID of the resource to be deleted
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ responses:
+ '202':
+ description: The request has been accepted for processing, but processing has not yet completed.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Common.ResourceDeletedResponse'
+ /agents/{id}/tools:
+ get:
+ operationId: AgentToolsRoute_list
+ description: List tools of the given agent
+ parameters:
+ - name: id
+ in: path
+ required: true
+ description: ID of parent
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ - $ref: '#/components/parameters/Common.PaginationOptions.limit'
+ - $ref: '#/components/parameters/Common.PaginationOptions.offset'
+ - $ref: '#/components/parameters/Common.PaginationOptions.sort_by'
+ - $ref: '#/components/parameters/Common.PaginationOptions.direction'
+ - $ref: '#/components/parameters/Common.PaginationOptions.metadata_filter'
+ responses:
+ '200':
+ description: The request has succeeded.
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ items:
+ type: array
+ items:
+ $ref: '#/components/schemas/Tools.Tool'
+ required:
+ - items
+ post:
+ operationId: AgentToolsRoute_create
+ description: Create a new tool for this agent
+ parameters:
+ - name: id
+ in: path
+ required: true
+ description: ID of parent resource
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ responses:
+ '201':
+ description: The request has succeeded and a new resource has been created as a result.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Common.ResourceCreatedResponse'
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Agents.CreateAgentRequest'
+ /agents/{id}/tools/{child_id}:
+ put:
+ operationId: AgentToolsRoute_update
+ description: Update an existing tool (overwrite existing values)
+ parameters:
+ - name: id
+ in: path
+ required: true
+ description: ID of parent resource
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ - name: child_id
+ in: path
+ required: true
+ description: ID of the resource to be updated
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ responses:
+ '200':
+ description: The request has succeeded.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Common.ResourceUpdatedResponse'
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Tools.UpdateToolRequest'
+ patch:
+ operationId: AgentToolsRoute_patch
+ description: Update an existing tool (merges with existing values)
+ parameters:
+ - name: id
+ in: path
+ required: true
+ description: ID of parent resource
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ - name: child_id
+ in: path
+ required: true
+ description: ID of the resource to be patched
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ responses:
+ '200':
+ description: The request has succeeded.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Common.ResourceUpdatedResponse'
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Tools.PatchToolRequest'
+ delete:
+ operationId: AgentToolsRoute_delete
+ description: Delete an existing tool by id
+ parameters:
+ - name: id
+ in: path
+ required: true
+ description: ID of parent resource
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ - name: child_id
+ in: path
+ required: true
+ description: ID of the resource to be deleted
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ responses:
+ '202':
+ description: The request has been accepted for processing, but processing has not yet completed.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Common.ResourceDeletedResponse'
+ /agents/{parent_id}/tasks/{id}:
+ post:
+ operationId: TasksCreateOrUpdateRoute_createOrUpdate
+ description: Create or update a task
+ parameters:
+ - name: parent_id
+ in: path
+ required: true
+ description: ID of the agent
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ - $ref: '#/components/parameters/Tasks.CreateOrUpdateTaskRequest.id'
+ responses:
+ '201':
+ description: The request has succeeded and a new resource has been created as a result.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Common.ResourceUpdatedResponse'
+ requestBody:
+ required: true
+ content:
+ application/yaml:
+ schema:
+ $ref: '#/components/schemas/Tasks.CreateTaskRequest'
+ text/x-yaml:
+ schema:
+ $ref: '#/components/schemas/Tasks.CreateTaskRequest'
+ text/yaml:
+ schema:
+ $ref: '#/components/schemas/Tasks.CreateTaskRequest'
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Tasks.CreateTaskRequest'
+ /docs/{id}:
+ get:
+ operationId: IndividualDocsRoute_get
+ description: Get Doc by id
+ parameters:
+ - name: id
+ in: path
+ required: true
+ description: ID of the resource
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ responses:
+ '200':
+ description: The request has succeeded.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Docs.Doc'
+ /embed:
+ post:
+ operationId: EmbedRoute_embed
+ description: Embed a query for search
+ parameters: []
+ responses:
+ '200':
+ description: The request has succeeded.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Docs.EmbedQueryResponse'
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ body:
+ $ref: '#/components/schemas/Docs.EmbedQueryRequest'
+ required:
+ - body
+ /executions:
+ post:
+ operationId: ExecutionsRoute_resumeWithTaskToken
+ description: Resume an execution with a task token
+ parameters:
+ - name: task_token
+ in: query
+ required: true
+ description: A Task Token is a unique identifier for a specific Task Execution.
+ schema:
+ type: string
+ explode: false
+ responses:
+ '200':
+ description: The request has succeeded.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Common.ResourceUpdatedResponse'
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Executions.TaskTokenResumeExecutionRequest'
+ description: Request to resume an execution with a task token
+ security:
+ - {}
+ /executions/{id}:
+ get:
+ operationId: ExecutionsRoute_get
+ description: Get an Execution by id
+ parameters:
+ - name: id
+ in: path
+ required: true
+ description: ID of the resource
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ responses:
+ '200':
+ description: The request has succeeded.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Executions.Execution'
+ put:
+ operationId: ExecutionsRoute_update
+ description: Update an existing Execution
+ parameters:
+ - name: id
+ in: path
+ required: true
+ description: ID of the resource
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ responses:
+ '200':
+ description: The request has succeeded.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Common.ResourceUpdatedResponse'
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Executions.UpdateExecutionRequest'
+ /executions/{id}/transitions:
+ get:
+ operationId: ExecutionTransitionsRoute_list
+ description: List the Transitions of an Execution by id
+ parameters:
+ - name: id
+ in: path
+ required: true
+ description: ID of parent
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ - $ref: '#/components/parameters/Common.PaginationOptions.limit'
+ - $ref: '#/components/parameters/Common.PaginationOptions.offset'
+ - $ref: '#/components/parameters/Common.PaginationOptions.sort_by'
+ - $ref: '#/components/parameters/Common.PaginationOptions.direction'
+ - $ref: '#/components/parameters/Common.PaginationOptions.metadata_filter'
+ responses:
+ '200':
+ description: The request has succeeded.
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ items:
+ type: array
+ items:
+ type: object
+ properties:
+ transitions:
+ type: array
+ items:
+ $ref: '#/components/schemas/Executions.Transition'
+ required:
+ - transitions
+ required:
+ - items
+ /executions/{id}/transitions.stream:
+ get:
+ operationId: ExecutionTransitionsStreamRoute_stream
+ description: Stream events emitted by the given execution
+ parameters:
+ - name: id
+ in: path
+ required: true
+ description: ID of parent
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ - name: next_token
+ in: query
+ required: true
+ description: Next page token
+ schema:
+ type: string
+ nullable: true
+ default: null
+ explode: false
+ responses:
+ '200':
+ description: The request has succeeded.
+ content:
+ text/event-stream:
+ schema:
+ type: string
+ /jobs/{id}:
+ get:
+ operationId: JobRoute_get
+ description: Get the status of an existing Job by its id
+ parameters:
+ - name: id
+ in: path
+ required: true
+ description: ID of the resource
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ responses:
+ '200':
+ description: The request has succeeded.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Jobs.JobStatus'
+ /sessions:
+ get:
+ operationId: SessionsRoute_list
+ description: List sessions (paginated)
+ parameters:
+ - $ref: '#/components/parameters/Common.PaginationOptions.limit'
+ - $ref: '#/components/parameters/Common.PaginationOptions.offset'
+ - $ref: '#/components/parameters/Common.PaginationOptions.sort_by'
+ - $ref: '#/components/parameters/Common.PaginationOptions.direction'
+ - $ref: '#/components/parameters/Common.PaginationOptions.metadata_filter'
+ responses:
+ '200':
+ description: The request has succeeded.
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ items:
+ type: array
+ items:
+ $ref: '#/components/schemas/Sessions.Session'
+ required:
+ - items
+ post:
+ operationId: SessionsRoute_create
+ description: Create a new session
+ parameters: []
+ responses:
+ '201':
+ description: The request has succeeded and a new resource has been created as a result.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Common.ResourceCreatedResponse'
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Sessions.CreateSessionRequest'
+ /sessions/{id}:
+ post:
+ operationId: SessionsRoute_createOrUpdate
+ description: Create or update a session
+ parameters:
+ - $ref: '#/components/parameters/Sessions.CreateOrUpdateSessionRequest.id'
+ responses:
+ '200':
+ description: The request has succeeded.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Common.ResourceUpdatedResponse'
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Sessions.CreateSessionRequest'
+ put:
+ operationId: SessionsRoute_update
+ description: Update an existing session by its id (overwrites all existing values)
+ parameters:
+ - name: id
+ in: path
+ required: true
+ description: ID of the resource
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ responses:
+ '200':
+ description: The request has succeeded.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Common.ResourceUpdatedResponse'
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Sessions.UpdateSessionRequest'
+ patch:
+ operationId: SessionsRoute_patch
+ description: Update an existing session by its id (merges with existing values)
+ parameters:
+ - name: id
+ in: path
+ required: true
+ description: ID of the resource
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ responses:
+ '200':
+ description: The request has succeeded.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Common.ResourceUpdatedResponse'
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Sessions.PatchSessionRequest'
+ delete:
+ operationId: SessionsRoute_delete
+ description: Delete a session by its id
+ parameters:
+ - name: id
+ in: path
+ required: true
+ description: ID of the resource
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ responses:
+ '202':
+ description: The request has been accepted for processing, but processing has not yet completed.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Common.ResourceDeletedResponse'
+ get:
+ operationId: SessionsRoute_get
+ description: Get a session by id
+ parameters:
+ - name: id
+ in: path
+ required: true
+ description: ID of the resource
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ responses:
+ '200':
+ description: The request has succeeded.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Sessions.Session'
+ /sessions/{id}/chat:
+ post:
+ operationId: ChatRoute_generate
+ description: Generate a response from the model
+ parameters:
+ - name: id
+ in: path
+ required: true
+ description: The session ID
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ - name: x-custom-api-key
+ in: header
+ required: false
+ description: Custom API key
+ schema:
+ type: string
+ responses:
+ '200':
+ description: The request has succeeded.
+ content:
+ application/json:
+ schema:
+ anyOf:
+ - $ref: '#/components/schemas/Chat.ChunkChatResponse'
+ - $ref: '#/components/schemas/Chat.MessageChatResponse'
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Chat.ChatInput'
+ description: Request to generate a response from the model
+ /sessions/{id}/history:
+ delete:
+ operationId: HistoryRoute_delete
+ description: Clear the history of a Session (resets the Session)
+ parameters:
+ - name: id
+ in: path
+ required: true
+ description: ID of the resource
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ responses:
+ '202':
+ description: The request has been accepted for processing, but processing has not yet completed.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Common.ResourceDeletedResponse'
+ get:
+ operationId: HistoryRoute_history
+ description: Get history of a Session
+ parameters:
+ - name: id
+ in: path
+ required: true
+ description: ID of parent
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ responses:
+ '200':
+ description: The request has succeeded.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Entries.History'
+ /tasks/{id}:
+ get:
+ operationId: TasksGetRoute_get
+ description: Get a task by id
+ parameters:
+ - name: id
+ in: path
+ required: true
+ description: ID of the resource
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ responses:
+ '200':
+ description: The request has succeeded.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Tasks.Task'
+ /tasks/{id}/executions:
+ post:
+ operationId: TaskExecutionsRoute_create
+ description: Create an execution for the given task
+ parameters:
+ - name: id
+ in: path
+ required: true
+ description: ID of parent resource
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ responses:
+ '201':
+ description: The request has succeeded and a new resource has been created as a result.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Common.ResourceCreatedResponse'
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Executions.CreateExecutionRequest'
+ get:
+ operationId: TaskExecutionsRoute_list
+ description: List executions of the given task
+ parameters:
+ - name: id
+ in: path
+ required: true
+ description: ID of parent
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ - $ref: '#/components/parameters/Common.PaginationOptions.limit'
+ - $ref: '#/components/parameters/Common.PaginationOptions.offset'
+ - $ref: '#/components/parameters/Common.PaginationOptions.sort_by'
+ - $ref: '#/components/parameters/Common.PaginationOptions.direction'
+ - $ref: '#/components/parameters/Common.PaginationOptions.metadata_filter'
+ responses:
+ '200':
+ description: The request has succeeded.
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ items:
+ type: array
+ items:
+ $ref: '#/components/schemas/Executions.Execution'
+ required:
+ - items
+ /users:
+ get:
+ operationId: UsersRoute_list
+ description: List users (paginated)
+ parameters:
+ - $ref: '#/components/parameters/Common.PaginationOptions.limit'
+ - $ref: '#/components/parameters/Common.PaginationOptions.offset'
+ - $ref: '#/components/parameters/Common.PaginationOptions.sort_by'
+ - $ref: '#/components/parameters/Common.PaginationOptions.direction'
+ - $ref: '#/components/parameters/Common.PaginationOptions.metadata_filter'
+ responses:
+ '200':
+ description: The request has succeeded.
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ items:
+ type: array
+ items:
+ $ref: '#/components/schemas/Users.User'
+ required:
+ - items
+ post:
+ operationId: UsersRoute_create
+ description: Create a new user
+ parameters: []
+ responses:
+ '201':
+ description: The request has succeeded and a new resource has been created as a result.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Common.ResourceCreatedResponse'
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Users.CreateUserRequest'
+ /users/{id}:
+ post:
+ operationId: UsersRoute_createOrUpdate
+ description: Create or update a user
+ parameters:
+ - $ref: '#/components/parameters/Users.CreateOrUpdateUserRequest'
+ responses:
+ '200':
+ description: The request has succeeded.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Common.ResourceUpdatedResponse'
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Users.CreateUserRequest'
+ put:
+ operationId: UsersRoute_update
+ description: Update an existing user by id (overwrite existing values)
+ parameters:
+ - name: id
+ in: path
+ required: true
+ description: ID of the resource
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ responses:
+ '200':
+ description: The request has succeeded.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Common.ResourceUpdatedResponse'
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Users.UpdateUserRequest'
+ patch:
+ operationId: UsersRoute_patch
+ description: Update an existing user by id (merge with existing values)
+ parameters:
+ - name: id
+ in: path
+ required: true
+ description: ID of the resource
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ responses:
+ '200':
+ description: The request has succeeded.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Common.ResourceUpdatedResponse'
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Users.PatchUserRequest'
+ delete:
+ operationId: UsersRoute_delete
+ description: Delete a user by id
+ parameters:
+ - name: id
+ in: path
+ required: true
+ description: ID of the resource
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ responses:
+ '202':
+ description: The request has been accepted for processing, but processing has not yet completed.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Common.ResourceDeletedResponse'
+ get:
+ operationId: UsersRoute_get
+ description: Get a user by id
+ parameters:
+ - name: id
+ in: path
+ required: true
+ description: ID of the resource
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ responses:
+ '200':
+ description: The request has succeeded.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Users.User'
+ /users/{id}/docs:
+ get:
+ operationId: UserDocsRoute_list
+ description: List Docs owned by a User
+ parameters:
+ - name: id
+ in: path
+ required: true
+ description: ID of parent
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ - $ref: '#/components/parameters/Common.PaginationOptions.limit'
+ - $ref: '#/components/parameters/Common.PaginationOptions.offset'
+ - $ref: '#/components/parameters/Common.PaginationOptions.sort_by'
+ - $ref: '#/components/parameters/Common.PaginationOptions.direction'
+ - $ref: '#/components/parameters/Common.PaginationOptions.metadata_filter'
+ responses:
+ '200':
+ description: The request has succeeded.
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ items:
+ type: array
+ items:
+ $ref: '#/components/schemas/Docs.Doc'
+ required:
+ - items
+ post:
+ operationId: UserDocsRoute_create
+ description: Create a Doc for this User
+ parameters:
+ - name: id
+ in: path
+ required: true
+ description: ID of parent resource
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ responses:
+ '201':
+ description: The request has succeeded and a new resource has been created as a result.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Common.ResourceCreatedResponse'
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Docs.CreateDocRequest'
+ /users/{id}/docs/{child_id}:
+ delete:
+ operationId: UserDocsRoute_delete
+ description: Delete a Doc for this User
+ parameters:
+ - name: id
+ in: path
+ required: true
+ description: ID of parent resource
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ - name: child_id
+ in: path
+ required: true
+ description: ID of the resource to be deleted
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ responses:
+ '202':
+ description: The request has been accepted for processing, but processing has not yet completed.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Common.ResourceDeletedResponse'
+ /users/{id}/search:
+ post:
+ operationId: UserDocsSearchRoute_search
+ description: Search Docs owned by a User
+ parameters:
+ - name: id
+ in: path
+ required: true
+ description: ID of the parent
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ responses:
+ '200':
+ description: The request has succeeded.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Docs.DocSearchResponse'
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ body:
+ anyOf:
+ - $ref: '#/components/schemas/Docs.VectorDocSearchRequest'
+ - $ref: '#/components/schemas/Docs.TextOnlyDocSearchRequest'
+ - $ref: '#/components/schemas/Docs.HybridDocSearchRequest'
+ required:
+ - body
+security:
+ - ApiKeyAuth: []
+ - ApiKeyAuth_: []
+components:
+ parameters:
+ Agents.CreateOrUpdateAgentRequest.id:
+ name: id
+ in: path
+ required: true
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ Common.PaginationOptions.direction:
+ name: direction
+ in: query
+ required: true
+ description: Sort direction
+ schema:
+ type: string
+ enum:
+ - asc
+ - desc
+ default: asc
+ explode: false
+ Common.PaginationOptions.limit:
+ name: limit
+ in: query
+ required: true
+ description: Limit the number of items returned
+ schema:
+ $ref: '#/components/schemas/Common.limit'
+ default: 100
+ explode: false
+ Common.PaginationOptions.metadata_filter:
+ name: metadata_filter
+ in: query
+ required: true
+ description: Object to filter results by metadata
+ schema:
+ type: object
+ additionalProperties:
+ anyOf:
+ - type: number
+ - type: string
+ - type: boolean
+ nullable: true
+ explode: false
+ Common.PaginationOptions.offset:
+ name: offset
+ in: query
+ required: true
+ description: Offset the items returned
+ schema:
+ $ref: '#/components/schemas/Common.offset'
+ default: 0
+ explode: false
+ Common.PaginationOptions.sort_by:
+ name: sort_by
+ in: query
+ required: true
+ description: Sort by a field
+ schema:
+ type: string
+ enum:
+ - created_at
+ - updated_at
+ default: created_at
+ explode: false
+ Sessions.CreateOrUpdateSessionRequest.id:
+ name: id
+ in: path
+ required: true
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ Tasks.CreateOrUpdateTaskRequest.id:
+ name: id
+ in: path
+ required: true
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ Users.CreateOrUpdateUserRequest:
+ name: id
+ in: path
+ required: true
+ schema:
+ $ref: '#/components/schemas/Common.uuid'
+ schemas:
+ Agents.Agent:
+ type: object
+ required:
+ - id
+ - created_at
+ - updated_at
+ - name
+ - about
+ - model
+ - instructions
+ properties:
+ id:
+ allOf:
+ - $ref: '#/components/schemas/Common.uuid'
+ readOnly: true
+ metadata:
+ type: object
+ additionalProperties: {}
+ created_at:
+ type: string
+ format: date-time
+ description: When this resource was created as UTC date-time
+ readOnly: true
+ updated_at:
+ type: string
+ format: date-time
+ description: When this resource was updated as UTC date-time
+ readOnly: true
+ name:
+ allOf:
+ - $ref: '#/components/schemas/Common.identifierSafeUnicode'
+ description: Name of the agent
+ default: ''
+ about:
+ type: string
+ description: About the agent
+ default: ''
+ model:
+ type: string
+ description: Model name to use (gpt-4-turbo, gemini-nano etc)
+ default: ''
+ instructions:
+ anyOf:
+ - type: string
+ - type: array
+ items:
+ type: string
+ description: Instructions for the agent
+ default: []
+ default_settings:
+ allOf:
+ - $ref: '#/components/schemas/Chat.DefaultChatSettings'
+ description: Default settings for all sessions created by this agent
+ Agents.CreateAgentRequest:
+ type: object
+ required:
+ - name
+ - about
+ - model
+ - instructions
+ properties:
+ metadata:
+ type: object
+ additionalProperties: {}
+ name:
+ allOf:
+ - $ref: '#/components/schemas/Common.identifierSafeUnicode'
+ description: Name of the agent
+ default: ''
+ about:
+ type: string
+ description: About the agent
+ default: ''
+ model:
+ type: string
+ description: Model name to use (gpt-4-turbo, gemini-nano etc)
+ default: ''
+ instructions:
+ anyOf:
+ - type: string
+ - type: array
+ items:
+ type: string
+ description: Instructions for the agent
+ default: []
+ default_settings:
+ allOf:
+ - $ref: '#/components/schemas/Chat.DefaultChatSettings'
+ description: Default settings for all sessions created by this agent
+ description: Payload for creating a agent (and associated documents)
+ Agents.CreateOrUpdateAgentRequest:
+ type: object
+ required:
+ - id
+ - name
+ - about
+ - model
+ - instructions
+ properties:
+ id:
+ $ref: '#/components/schemas/Common.uuid'
+ metadata:
+ type: object
+ additionalProperties: {}
+ name:
+ allOf:
+ - $ref: '#/components/schemas/Common.identifierSafeUnicode'
+ description: Name of the agent
+ default: ''
+ about:
+ type: string
+ description: About the agent
+ default: ''
+ model:
+ type: string
+ description: Model name to use (gpt-4-turbo, gemini-nano etc)
+ default: ''
+ instructions:
+ anyOf:
+ - type: string
+ - type: array
+ items:
+ type: string
+ description: Instructions for the agent
+ default: []
+ default_settings:
+ allOf:
+ - $ref: '#/components/schemas/Chat.DefaultChatSettings'
+ description: Default settings for all sessions created by this agent
+ allOf:
+ - $ref: '#/components/schemas/Agents.CreateAgentRequest'
+ Agents.PatchAgentRequest:
+ type: object
+ properties:
+ metadata:
+ type: object
+ additionalProperties: {}
+ name:
+ allOf:
+ - $ref: '#/components/schemas/Common.identifierSafeUnicode'
+ description: Name of the agent
+ default: ''
+ about:
+ type: string
+ description: About the agent
+ default: ''
+ model:
+ type: string
+ description: Model name to use (gpt-4-turbo, gemini-nano etc)
+ default: ''
+ instructions:
+ anyOf:
+ - type: string
+ - type: array
+ items:
+ type: string
+ description: Instructions for the agent
+ default: []
+ default_settings:
+ allOf:
+ - $ref: '#/components/schemas/Chat.DefaultChatSettings'
+ description: Default settings for all sessions created by this agent
+ description: Payload for patching a agent
+ Agents.UpdateAgentRequest:
+ type: object
+ required:
+ - name
+ - about
+ - model
+ - instructions
+ properties:
+ metadata:
+ type: object
+ additionalProperties: {}
+ name:
+ allOf:
+ - $ref: '#/components/schemas/Common.identifierSafeUnicode'
+ description: Name of the agent
+ default: ''
+ about:
+ type: string
+ description: About the agent
+ default: ''
+ model:
+ type: string
+ description: Model name to use (gpt-4-turbo, gemini-nano etc)
+ default: ''
+ instructions:
+ anyOf:
+ - type: string
+ - type: array
+ items:
+ type: string
+ description: Instructions for the agent
+ default: []
+ default_settings:
+ allOf:
+ - $ref: '#/components/schemas/Chat.DefaultChatSettings'
+ description: Default settings for all sessions created by this agent
+ description: Payload for updating a agent
+ Chat.BaseChatOutput:
+ type: object
+ required:
+ - index
+ - finish_reason
+ properties:
+ index:
+ type: integer
+ format: uint32
+ finish_reason:
+ allOf:
+ - $ref: '#/components/schemas/Chat.FinishReason'
+ description: The reason the model stopped generating tokens
+ default: stop
+ logprobs:
+ allOf:
+ - $ref: '#/components/schemas/Chat.LogProbResponse'
+ description: The log probabilities of tokens
+ Chat.BaseChatResponse:
+ type: object
+ required:
+ - jobs
+ - docs
+ - created_at
+ - id
+ properties:
+ usage:
+ allOf:
+ - $ref: '#/components/schemas/Chat.CompetionUsage'
+ description: Usage statistics for the completion request
+ jobs:
+ type: array
+ items:
+ $ref: '#/components/schemas/Common.uuid'
+ description: Background job IDs that may have been spawned from this interaction.
+ default: []
+ readOnly: true
+ docs:
+ type: array
+ items:
+ $ref: '#/components/schemas/Docs.DocReference'
+ description: Documents referenced for this request (for citation purposes).
+ default: []
+ readOnly: true
+ created_at:
+ type: string
+ format: date-time
+ description: When this resource was created as UTC date-time
+ readOnly: true
+ id:
+ allOf:
+ - $ref: '#/components/schemas/Common.uuid'
+ readOnly: true
+ Chat.BaseTokenLogProb:
+ type: object
+ required:
+ - token
+ - logprob
+ properties:
+ token:
+ type: string
+ logprob:
+ type: number
+ format: float
+ description: The log probability of the token
+ bytes:
+ type: array
+ items:
+ type: integer
+ format: uint16
+ Chat.ChatInput:
+ type: object
+ required:
+ - remember
+ - recall
+ - save
+ - stream
+ - stop
+ properties:
+ remember:
+ type: boolean
+ description: 'DISABLED: Whether this interaction should form new memories or not (will be enabled in a future release)'
+ default: false
+ readOnly: true
+ recall:
+ type: boolean
+ description: Whether previous memories and docs should be recalled or not
+ default: true
+ save:
+ type: boolean
+ description: Whether this interaction should be stored in the session history or not
+ default: true
+ model:
+ allOf:
+ - $ref: '#/components/schemas/Common.identifierSafeUnicode'
+ description: Identifier of the model to be used
+ stream:
+ type: boolean
+ description: Indicates if the server should stream the response as it's generated
+ default: false
+ stop:
+ type: array
+ items:
+ type: string
+ maxItems: 4
+ description: Up to 4 sequences where the API will stop generating further tokens.
+ default: []
+ seed:
+ type: integer
+ format: int16
+ minimum: -1
+ maximum: 1000
+ description: If specified, the system will make a best effort to sample deterministically for that particular seed value
+ max_tokens:
+ type: integer
+ format: uint32
+ minimum: 1
+ description: The maximum number of tokens to generate in the chat completion
+ logit_bias:
+ type: object
+ additionalProperties:
+ $ref: '#/components/schemas/Common.logit_bias'
+ description: Modify the likelihood of specified tokens appearing in the completion
+ response_format:
+ anyOf:
+ - $ref: '#/components/schemas/Chat.SimpleCompletionResponseFormat'
+ - $ref: '#/components/schemas/Chat.SchemaCompletionResponseFormat'
+ description: Response format (set to `json_object` to restrict output to JSON)
+ agent:
+ allOf:
+ - $ref: '#/components/schemas/Common.uuid'
+ description: Agent ID of the agent to use for this interaction. (Only applicable for multi-agent sessions)
+ repetition_penalty:
+ type: number
+ format: float
+ minimum: 0
+ maximum: 2
+ description: Number between 0 and 2.0. 1.0 is neutral and values larger than that penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim.
+ length_penalty:
+ type: number
+ format: float
+ minimum: 0
+ maximum: 2
+ description: Number between 0 and 2.0. 1.0 is neutral and values larger than that penalize number of tokens generated.
+ min_p:
+ type: number
+ format: float
+ minimum: 0
+ maximum: 1
+ description: Minimum probability compared to leading token to be considered
+ frequency_penalty:
+ type: number
+ format: float
+ minimum: -2
+ maximum: 2
+ description: Number between -2.0 and 2.0. Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim.
+ presence_penalty:
+ type: number
+ format: float
+ minimum: -2
+ maximum: 2
+ description: Number between -2.0 and 2.0. Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim.
+ temperature:
+ type: number
+ format: float
+ minimum: 0
+ maximum: 5
+ description: What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic.
+ top_p:
+ type: number
+ format: float
+ minimum: 0
+ maximum: 1
+ description: Defaults to 1 An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass. So 0.1 means only the tokens comprising the top 10% probability mass are considered. We generally recommend altering this or temperature but not both.
+ allOf:
+ - $ref: '#/components/schemas/Chat.ChatInputData'
+ Chat.ChatInputData:
+ type: object
+ required:
+ - messages
+ - tools
+ properties:
+ messages:
+ type: array
+ items:
+ type: object
+ required:
+ - role
+ - content
+ properties:
+ role:
+ allOf:
+ - $ref: '#/components/schemas/Entries.ChatMLRole'
+ description: The role of the message
+ content:
+ anyOf:
+ - type: string
+ - type: array
+ items:
+ type: string
+ - type: array
+ items:
+ anyOf:
+ - type: object
+ required:
+ - text
+ - type
+ properties:
+ text:
+ type: string
+ type:
+ type: string
+ enum:
+ - text
+ description: The type (fixed to 'text')
+ default: text
+ - type: object
+ required:
+ - image_url
+ - type
+ properties:
+ image_url:
+ type: object
+ required:
+ - url
+ - detail
+ properties:
+ url:
+ type: string
+ description: Image URL or base64 data url (e.g. `data:image/jpeg;base64,`)
+ detail:
+ allOf:
+ - $ref: '#/components/schemas/Entries.ImageDetail'
+ description: The detail level of the image
+ default: auto
+ description: The image URL
+ type:
+ type: string
+ enum:
+ - image_url
+ description: The type (fixed to 'image_url')
+ default: image_url
+ description: The content parts of the message
+ name:
+ type: string
+ description: Name
+ continue:
+ type: boolean
+ description: Whether to continue this message or return a new one
+ minItems: 1
+ description: A list of new input messages comprising the conversation so far.
+ tools:
+ type: array
+ items:
+ $ref: '#/components/schemas/Tools.Tool'
+ description: (Advanced) List of tools that are provided in addition to agent's default set of tools.
+ default: []
+ tool_choice:
+ anyOf:
+ - type: string
+ enum:
+ - auto
+ - none
+ - $ref: '#/components/schemas/Tools.NamedToolChoice'
+ description: Can be one of existing tools given to the agent earlier or the ones provided in this request.
+ Chat.ChatOutputChunk:
+ type: object
+ required:
+ - delta
+ properties:
+ delta:
+ type: object
+ required:
+ - role
+ - content
+ properties:
+ role:
+ allOf:
+ - $ref: '#/components/schemas/Entries.ChatMLRole'
+ description: The role of the message
+ content:
+ anyOf:
+ - type: string
+ - type: array
+ items:
+ type: string
+ - type: array
+ items:
+ anyOf:
+ - type: object
+ required:
+ - text
+ - type
+ properties:
+ text:
+ type: string
+ type:
+ type: string
+ enum:
+ - text
+ description: The type (fixed to 'text')
+ default: text
+ - type: object
+ required:
+ - image_url
+ - type
+ properties:
+ image_url:
+ type: object
+ required:
+ - url
+ - detail
+ properties:
+ url:
+ type: string
+ description: Image URL or base64 data url (e.g. `data:image/jpeg;base64,`)
+ detail:
+ allOf:
+ - $ref: '#/components/schemas/Entries.ImageDetail'
+ description: The detail level of the image
+ default: auto
+ description: The image URL
+ type:
+ type: string
+ enum:
+ - image_url
+ description: The type (fixed to 'image_url')
+ default: image_url
+ description: The content parts of the message
+ name:
+ type: string
+ description: Name
+ continue:
+ type: boolean
+ description: Whether to continue this message or return a new one
+ description: The message generated by the model
+ allOf:
+ - $ref: '#/components/schemas/Chat.BaseChatOutput'
+ description: Streaming chat completion output
+ Chat.ChatSettings:
+ type: object
+ required:
+ - stream
+ - stop
+ properties:
+ model:
+ allOf:
+ - $ref: '#/components/schemas/Common.identifierSafeUnicode'
+ description: Identifier of the model to be used
+ stream:
+ type: boolean
+ description: Indicates if the server should stream the response as it's generated
+ default: false
+ stop:
+ type: array
+ items:
+ type: string
+ maxItems: 4
+ description: Up to 4 sequences where the API will stop generating further tokens.
+ default: []
+ seed:
+ type: integer
+ format: int16
+ minimum: -1
+ maximum: 1000
+ description: If specified, the system will make a best effort to sample deterministically for that particular seed value
+ max_tokens:
+ type: integer
+ format: uint32
+ minimum: 1
+ description: The maximum number of tokens to generate in the chat completion
+ logit_bias:
+ type: object
+ additionalProperties:
+ $ref: '#/components/schemas/Common.logit_bias'
+ description: Modify the likelihood of specified tokens appearing in the completion
+ response_format:
+ anyOf:
+ - $ref: '#/components/schemas/Chat.SimpleCompletionResponseFormat'
+ - $ref: '#/components/schemas/Chat.SchemaCompletionResponseFormat'
+ description: Response format (set to `json_object` to restrict output to JSON)
+ agent:
+ allOf:
+ - $ref: '#/components/schemas/Common.uuid'
+ description: Agent ID of the agent to use for this interaction. (Only applicable for multi-agent sessions)
+ allOf:
+ - $ref: '#/components/schemas/Chat.DefaultChatSettings'
+ Chat.ChunkChatResponse:
+ type: object
+ required:
+ - choices
+ properties:
+ choices:
+ type: array
+ items:
+ $ref: '#/components/schemas/Chat.ChatOutputChunk'
+ description: The deltas generated by the model
+ allOf:
+ - $ref: '#/components/schemas/Chat.BaseChatResponse'
+ Chat.CompetionUsage:
+ type: object
+ properties:
+ completion_tokens:
+ type: integer
+ format: uint32
+ description: Number of tokens in the generated completion
+ readOnly: true
+ prompt_tokens:
+ type: integer
+ format: uint32
+ description: Number of tokens in the prompt
+ readOnly: true
+ total_tokens:
+ type: integer
+ format: uint32
+ description: Total number of tokens used in the request (prompt + completion)
+ readOnly: true
+ description: Usage statistics for the completion request
+ Chat.DefaultChatSettings:
+ type: object
+ properties:
+ repetition_penalty:
+ type: number
+ format: float
+ minimum: 0
+ maximum: 2
+ description: Number between 0 and 2.0. 1.0 is neutral and values larger than that penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim.
+ length_penalty:
+ type: number
+ format: float
+ minimum: 0
+ maximum: 2
+ description: Number between 0 and 2.0. 1.0 is neutral and values larger than that penalize number of tokens generated.
+ min_p:
+ type: number
+ format: float
+ minimum: 0
+ maximum: 1
+ description: Minimum probability compared to leading token to be considered
+ allOf:
+ - $ref: '#/components/schemas/Chat.OpenAISettings'
+ description: Default settings for the chat session (also used by the agent)
+ Chat.FinishReason:
+ type: string
+ enum:
+ - stop
+ - length
+ - content_filter
+ - tool_calls
+ description: |-
+ The reason the model stopped generating tokens. This will be `stop`
+ if the model hit a natural stop point or a provided stop sequence,
+ `length` if the maximum number of tokens specified in the request
+ was reached, `content_filter` if content was omitted due to a flag
+ from our content filters, `tool_calls` if the model called a tool.
+ Chat.LogProbResponse:
+ type: object
+ required:
+ - content
+ properties:
+ content:
+ type: array
+ items:
+ $ref: '#/components/schemas/Chat.TokenLogProb'
+ nullable: true
+ description: The log probabilities of the tokens
+ Chat.MessageChatResponse:
+ type: object
+ required:
+ - choices
+ properties:
+ choices:
+ type: array
+ items:
+ anyOf:
+ - $ref: '#/components/schemas/Chat.SingleChatOutput'
+ - $ref: '#/components/schemas/Chat.MultipleChatOutput'
+ description: The deltas generated by the model
+ allOf:
+ - $ref: '#/components/schemas/Chat.BaseChatResponse'
+ Chat.MultipleChatOutput:
+ type: object
+ required:
+ - messages
+ properties:
+ messages:
+ type: array
+ items:
+ type: object
+ required:
+ - role
+ - content
+ properties:
+ role:
+ allOf:
+ - $ref: '#/components/schemas/Entries.ChatMLRole'
+ description: The role of the message
+ content:
+ anyOf:
+ - type: string
+ - type: array
+ items:
+ type: string
+ - type: array
+ items:
+ anyOf:
+ - type: object
+ required:
+ - text
+ - type
+ properties:
+ text:
+ type: string
+ type:
+ type: string
+ enum:
+ - text
+ description: The type (fixed to 'text')
+ default: text
+ - type: object
+ required:
+ - image_url
+ - type
+ properties:
+ image_url:
+ type: object
+ required:
+ - url
+ - detail
+ properties:
+ url:
+ type: string
+ description: Image URL or base64 data url (e.g. `data:image/jpeg;base64,`)
+ detail:
+ allOf:
+ - $ref: '#/components/schemas/Entries.ImageDetail'
+ description: The detail level of the image
+ default: auto
+ description: The image URL
+ type:
+ type: string
+ enum:
+ - image_url
+ description: The type (fixed to 'image_url')
+ default: image_url
+ description: The content parts of the message
+ name:
+ type: string
+ description: Name
+ tool_calls:
+ type: array
+ items:
+ $ref: '#/components/schemas/Tools.ChosenToolCall'
+ nullable: true
+ description: Tool calls generated by the model.
+ default: []
+ readOnly: true
+ created_at:
+ type: string
+ format: date-time
+ description: When this resource was created as UTC date-time
+ readOnly: true
+ id:
+ allOf:
+ - $ref: '#/components/schemas/Common.uuid'
+ readOnly: true
+ minItems: 1
+ readOnly: true
+ allOf:
+ - $ref: '#/components/schemas/Chat.BaseChatOutput'
+ description: The output returned by the model. Note that, depending on the model provider, they might return more than one message.
+ Chat.OpenAISettings:
+ type: object
+ properties:
+ frequency_penalty:
+ type: number
+ format: float
+ minimum: -2
+ maximum: 2
+ description: Number between -2.0 and 2.0. Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim.
+ presence_penalty:
+ type: number
+ format: float
+ minimum: -2
+ maximum: 2
+ description: Number between -2.0 and 2.0. Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim.
+ temperature:
+ type: number
+ format: float
+ minimum: 0
+ maximum: 5
+ description: What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic.
+ top_p:
+ type: number
+ format: float
+ minimum: 0
+ maximum: 1
+ description: Defaults to 1 An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass. So 0.1 means only the tokens comprising the top 10% probability mass are considered. We generally recommend altering this or temperature but not both.
+ Chat.SchemaCompletionResponseFormat:
+ type: object
+ required:
+ - type
+ - json_schema
+ properties:
+ type:
+ type: string
+ enum:
+ - json_schema
+ description: The format of the response
+ default: json_schema
+ json_schema:
+ type: object
+ additionalProperties: {}
+ description: The schema of the response
+ Chat.SimpleCompletionResponseFormat:
+ type: object
+ required:
+ - type
+ properties:
+ type:
+ type: string
+ enum:
+ - text
+ - json_object
+ description: The format of the response
+ default: text
+ Chat.SingleChatOutput:
+ type: object
+ required:
+ - message
+ properties:
+ message:
+ type: object
+ required:
+ - role
+ - content
+ properties:
+ role:
+ allOf:
+ - $ref: '#/components/schemas/Entries.ChatMLRole'
+ description: The role of the message
+ content:
+ anyOf:
+ - type: string
+ - type: array
+ items:
+ type: string
+ - type: array
+ items:
+ anyOf:
+ - type: object
+ required:
+ - text
+ - type
+ properties:
+ text:
+ type: string
+ type:
+ type: string
+ enum:
+ - text
+ description: The type (fixed to 'text')
+ default: text
+ - type: object
+ required:
+ - image_url
+ - type
+ properties:
+ image_url:
+ type: object
+ required:
+ - url
+ - detail
+ properties:
+ url:
+ type: string
+ description: Image URL or base64 data url (e.g. `data:image/jpeg;base64,`)
+ detail:
+ allOf:
+ - $ref: '#/components/schemas/Entries.ImageDetail'
+ description: The detail level of the image
+ default: auto
+ description: The image URL
+ type:
+ type: string
+ enum:
+ - image_url
+ description: The type (fixed to 'image_url')
+ default: image_url
+ description: The content parts of the message
+ name:
+ type: string
+ description: Name
+ tool_calls:
+ type: array
+ items:
+ $ref: '#/components/schemas/Tools.ChosenToolCall'
+ nullable: true
+ description: Tool calls generated by the model.
+ default: []
+ readOnly: true
+ created_at:
+ type: string
+ format: date-time
+ description: When this resource was created as UTC date-time
+ readOnly: true
+ id:
+ allOf:
+ - $ref: '#/components/schemas/Common.uuid'
+ readOnly: true
+ allOf:
+ - $ref: '#/components/schemas/Chat.BaseChatOutput'
+ description: The output returned by the model. Note that, depending on the model provider, they might return more than one message.
+ Chat.TokenLogProb:
+ type: object
+ required:
+ - top_logprobs
+ properties:
+ top_logprobs:
+ type: array
+ items:
+ $ref: '#/components/schemas/Chat.BaseTokenLogProb'
+ minItems: 1
+ description: The log probabilities of the tokens
+ readOnly: true
+ allOf:
+ - $ref: '#/components/schemas/Chat.BaseTokenLogProb'
+ Common.JinjaTemplate:
+ type: string
+ description: A valid jinja template.
+ Common.PyExpression:
+ type: string
+ description: A simple python expression compatible with SimpleEval.
+ Common.ResourceCreatedResponse:
+ type: object
+ required:
+ - id
+ - created_at
+ - jobs
+ properties:
+ id:
+ allOf:
+ - $ref: '#/components/schemas/Common.uuid'
+ description: ID of created resource
+ created_at:
+ type: string
+ format: date-time
+ description: When this resource was created as UTC date-time
+ readOnly: true
+ jobs:
+ type: array
+ items:
+ $ref: '#/components/schemas/Common.uuid'
+ description: IDs (if any) of jobs created as part of this request
+ default: []
+ readOnly: true
+ Common.ResourceDeletedResponse:
+ type: object
+ required:
+ - id
+ - deleted_at
+ - jobs
+ properties:
+ id:
+ allOf:
+ - $ref: '#/components/schemas/Common.uuid'
+ description: ID of deleted resource
+ deleted_at:
+ type: string
+ format: date-time
+ description: When this resource was deleted as UTC date-time
+ readOnly: true
+ jobs:
+ type: array
+ items:
+ $ref: '#/components/schemas/Common.uuid'
+ description: IDs (if any) of jobs created as part of this request
+ default: []
+ readOnly: true
+ Common.ResourceUpdatedResponse:
+ type: object
+ required:
+ - id
+ - updated_at
+ - jobs
+ properties:
+ id:
+ allOf:
+ - $ref: '#/components/schemas/Common.uuid'
+ description: ID of updated resource
+ updated_at:
+ type: string
+ format: date-time
+ description: When this resource was updated as UTC date-time
+ readOnly: true
+ jobs:
+ type: array
+ items:
+ $ref: '#/components/schemas/Common.uuid'
+ description: IDs (if any) of jobs created as part of this request
+ default: []
+ readOnly: true
+ Common.identifierSafeUnicode:
+ type: string
+ maxLength: 120
+ pattern: ^[\p{L}\p{Nl}\p{Pattern_Syntax}\p{Pattern_White_Space}]+[\p{ID_Start}\p{Mn}\p{Mc}\p{Nd}\p{Pc}\p{Pattern_Syntax}\p{Pattern_White_Space}]*$
+ description: |-
+ For Unicode character safety
+ See: https://unicode.org/reports/tr31/
+ See: https://www.unicode.org/reports/tr39/#Identifier_Characters
+ Common.limit:
+ type: integer
+ format: uint16
+ minimum: 1
+ maximum: 1000
+ exclusiveMaximum: true
+ description: Limit the number of results
+ Common.logit_bias:
+ type: number
+ format: float
+ minimum: -100
+ maximum: 100
+ Common.offset:
+ type: integer
+ format: uint32
+ minimum: 0
+ description: Offset to apply to the results
+ Common.uuid:
+ type: string
+ format: uuid
+ Common.validPythonIdentifier:
+ type: string
+ maxLength: 40
+ pattern: ^[^\W0-9]\w*$
+ description: Valid python identifier names
+ Docs.BaseDocSearchRequest:
+ type: object
+ required:
+ - limit
+ - lang
+ properties:
+ limit:
+ type: integer
+ format: uint16
+ minimum: 1
+ maximum: 100
+ default: 10
+ lang:
+ type: string
+ enum:
+ - en-US
+ description: The language to be used for text-only search. Support for other languages coming soon.
+ default: en-US
+ Docs.CreateDocRequest:
+ type: object
+ required:
+ - title
+ - content
+ properties:
+ metadata:
+ type: object
+ additionalProperties: {}
+ title:
+ type: string
+ maxLength: 800
+ description: Title describing what this document contains
+ content:
+ anyOf:
+ - type: string
+ - type: array
+ items:
+ type: string
+ description: Contents of the document
+ description: Payload for creating a doc
+ Docs.Doc:
+ type: object
+ required:
+ - id
+ - created_at
+ - title
+ - content
+ properties:
+ id:
+ allOf:
+ - $ref: '#/components/schemas/Common.uuid'
+ readOnly: true
+ metadata:
+ type: object
+ additionalProperties: {}
+ created_at:
+ type: string
+ format: date-time
+ description: When this resource was created as UTC date-time
+ readOnly: true
+ title:
+ type: string
+ maxLength: 800
+ description: Title describing what this document contains
+ content:
+ anyOf:
+ - type: string
+ - type: array
+ items:
+ type: string
+ description: Contents of the document
+ embeddings:
+ anyOf:
+ - type: array
+ items:
+ type: number
+ format: float
+ - type: array
+ items:
+ type: array
+ items:
+ type: number
+ format: float
+ description: Embeddings for the document
+ readOnly: true
+ Docs.DocOwner:
+ type: object
+ required:
+ - id
+ - role
+ properties:
+ id:
+ anyOf:
+ - allOf:
+ - $ref: '#/components/schemas/Common.uuid'
+ readOnly: true
+ - allOf:
+ - $ref: '#/components/schemas/Common.uuid'
+ readOnly: true
+ role:
+ type: string
+ enum:
+ - user
+ - agent
+ Docs.DocReference:
+ type: object
+ required:
+ - owner
+ - id
+ - snippets
+ - distance
+ properties:
+ owner:
+ allOf:
+ - $ref: '#/components/schemas/Docs.DocOwner'
+ description: The owner of this document.
+ id:
+ allOf:
+ - $ref: '#/components/schemas/Common.uuid'
+ readOnly: true
+ description: ID of the document
+ title:
+ type: string
+ snippets:
+ type: array
+ items:
+ $ref: '#/components/schemas/Docs.Snippet'
+ minItems: 1
+ distance:
+ type: number
+ nullable: true
+ default: null
+ Docs.DocSearchResponse:
+ type: object
+ required:
+ - docs
+ - time
+ properties:
+ docs:
+ type: array
+ items:
+ $ref: '#/components/schemas/Docs.DocReference'
+ description: The documents that were found
+ time:
+ type: number
+ minimum: 0
+ exclusiveMinimum: true
+ description: The time taken to search in seconds
+ Docs.EmbedQueryRequest:
+ type: object
+ required:
+ - text
+ properties:
+ text:
+ anyOf:
+ - type: string
+ - type: array
+ items:
+ type: string
+ description: Text or texts to embed
+ Docs.EmbedQueryResponse:
+ type: object
+ required:
+ - vectors
+ properties:
+ vectors:
+ type: array
+ items:
+ type: array
+ items:
+ type: number
+ description: The embedded vectors
+ Docs.HybridDocSearchRequest:
+ type: object
+ required:
+ - confidence
+ - alpha
+ - text
+ - vector
+ properties:
+ confidence:
+ type: number
+ minimum: 0
+ maximum: 1
+ description: The confidence cutoff level
+ default: 0.5
+ alpha:
+ type: number
+ minimum: 0
+ maximum: 1
+ description: The weight to apply to BM25 vs Vector search results. 0 => pure BM25; 1 => pure vector;
+ default: 0.75
+ text:
+ type: string
+ description: Text to use in the search. In `hybrid` search mode, either `text` or both `text` and `vector` fields are required.
+ vector:
+ type: array
+ items:
+ type: number
+ description: Vector to use in the search. Must be the same dimensions as the embedding model or else an error will be thrown.
+ allOf:
+ - $ref: '#/components/schemas/Docs.BaseDocSearchRequest'
+ Docs.Snippet:
+ type: object
+ required:
+ - index
+ - content
+ properties:
+ index:
+ type: integer
+ format: uint16
+ content:
+ type: string
+ Docs.TextOnlyDocSearchRequest:
+ type: object
+ required:
+ - text
+ properties:
+ text:
+ type: string
+ description: Text to use in the search.
+ allOf:
+ - $ref: '#/components/schemas/Docs.BaseDocSearchRequest'
+ Docs.VectorDocSearchRequest:
+ type: object
+ required:
+ - confidence
+ - vector
+ properties:
+ confidence:
+ type: number
+ minimum: 0
+ maximum: 1
+ description: The confidence cutoff level
+ default: 0.5
+ vector:
+ type: array
+ items:
+ type: number
+ description: Vector to use in the search. Must be the same dimensions as the embedding model or else an error will be thrown.
+ allOf:
+ - $ref: '#/components/schemas/Docs.BaseDocSearchRequest'
+ Entries.BaseEntry:
+ type: object
+ required:
+ - role
+ - name
+ - content
+ - source
+ - tokenizer
+ - token_count
+ - timestamp
+ properties:
+ role:
+ $ref: '#/components/schemas/Entries.ChatMLRole'
+ name:
+ type: string
+ nullable: true
+ default: null
+ content:
+ anyOf:
+ - type: array
+ items:
+ anyOf:
+ - type: object
+ required:
+ - text
+ - type
+ properties:
+ text:
+ type: string
+ type:
+ type: string
+ enum:
+ - text
+ description: The type (fixed to 'text')
+ default: text
+ - type: object
+ required:
+ - image_url
+ - type
+ properties:
+ image_url:
+ type: object
+ required:
+ - url
+ - detail
+ properties:
+ url:
+ type: string
+ description: Image URL or base64 data url (e.g. `data:image/jpeg;base64,`)
+ detail:
+ allOf:
+ - $ref: '#/components/schemas/Entries.ImageDetail'
+ description: The detail level of the image
+ default: auto
+ description: The image URL
+ type:
+ type: string
+ enum:
+ - image_url
+ description: The type (fixed to 'image_url')
+ default: image_url
+ - $ref: '#/components/schemas/Tools.Tool'
+ - $ref: '#/components/schemas/Tools.ChosenToolCall'
+ - type: string
+ - $ref: '#/components/schemas/Tools.ToolResponse'
+ - type: array
+ items:
+ anyOf:
+ - type: array
+ items:
+ anyOf:
+ - type: object
+ required:
+ - text
+ - type
+ properties:
+ text:
+ type: string
+ type:
+ type: string
+ enum:
+ - text
+ description: The type (fixed to 'text')
+ default: text
+ - type: object
+ required:
+ - image_url
+ - type
+ properties:
+ image_url:
+ type: object
+ required:
+ - url
+ - detail
+ properties:
+ url:
+ type: string
+ description: Image URL or base64 data url (e.g. `data:image/jpeg;base64,`)
+ detail:
+ allOf:
+ - $ref: '#/components/schemas/Entries.ImageDetail'
+ description: The detail level of the image
+ default: auto
+ description: The image URL
+ type:
+ type: string
+ enum:
+ - image_url
+ description: The type (fixed to 'image_url')
+ default: image_url
+ - $ref: '#/components/schemas/Tools.Tool'
+ - $ref: '#/components/schemas/Tools.ChosenToolCall'
+ - type: string
+ - $ref: '#/components/schemas/Tools.ToolResponse'
+ source:
+ type: string
+ enum:
+ - api_request
+ - api_response
+ - tool_response
+ - internal
+ - summarizer
+ - meta
+ tokenizer:
+ type: string
+ token_count:
+ type: integer
+ format: uint16
+ timestamp:
+ type: number
+ minimum: 0
+ description: This is the time that this event refers to.
+ Entries.ChatMLRole:
+ type: string
+ enum:
+ - user
+ - assistant
+ - system
+ - function
+ - function_response
+ - function_call
+ - auto
+ description: ChatML role (system|assistant|user|function_call|function|function_response|auto)
+ Entries.Entry:
+ type: object
+ required:
+ - created_at
+ - id
+ properties:
+ created_at:
+ type: string
+ format: date-time
+ description: When this resource was created as UTC date-time
+ readOnly: true
+ id:
+ allOf:
+ - $ref: '#/components/schemas/Common.uuid'
+ readOnly: true
+ allOf:
+ - $ref: '#/components/schemas/Entries.BaseEntry'
+ Entries.History:
+ type: object
+ required:
+ - entries
+ - relations
+ - session_id
+ - created_at
+ properties:
+ entries:
+ type: array
+ items:
+ $ref: '#/components/schemas/Entries.Entry'
+ relations:
+ type: array
+ items:
+ $ref: '#/components/schemas/Entries.Relation'
+ session_id:
+ allOf:
+ - $ref: '#/components/schemas/Common.uuid'
+ readOnly: true
+ created_at:
+ type: string
+ format: date-time
+ description: When this resource was created as UTC date-time
+ readOnly: true
+ Entries.ImageDetail:
+ type: string
+ enum:
+ - low
+ - high
+ - auto
+ description: Image detail level
+ Entries.Relation:
+ type: object
+ required:
+ - head
+ - relation
+ - tail
+ properties:
+ head:
+ $ref: '#/components/schemas/Common.uuid'
+ relation:
+ type: string
+ tail:
+ $ref: '#/components/schemas/Common.uuid'
+ Executions.CreateExecutionRequest:
+ type: object
+ required:
+ - input
+ properties:
+ input:
+ type: object
+ additionalProperties: {}
+ description: The input to the execution
+ output:
+ description: The output of the execution if it succeeded
+ error:
+ type: string
+ description: The error of the execution if it failed
+ metadata:
+ type: object
+ additionalProperties: {}
+ description: Payload for creating an execution
+ Executions.Execution:
+ type: object
+ required:
+ - task_id
+ - status
+ - input
+ - created_at
+ - updated_at
+ - id
+ properties:
+ task_id:
+ allOf:
+ - $ref: '#/components/schemas/Common.uuid'
+ readOnly: true
+ description: The ID of the task that the execution is running
+ status:
+ type: string
+ enum:
+ - queued
+ - starting
+ - running
+ - awaiting_input
+ - succeeded
+ - failed
+ - cancelled
+ description: The status of the execution
+ readOnly: true
+ input:
+ type: object
+ additionalProperties: {}
+ description: The input to the execution
+ output:
+ description: The output of the execution if it succeeded
+ error:
+ type: string
+ description: The error of the execution if it failed
+ created_at:
+ type: string
+ format: date-time
+ description: When this resource was created as UTC date-time
+ readOnly: true
+ updated_at:
+ type: string
+ format: date-time
+ description: When this resource was updated as UTC date-time
+ readOnly: true
+ metadata:
+ type: object
+ additionalProperties: {}
+ id:
+ allOf:
+ - $ref: '#/components/schemas/Common.uuid'
+ readOnly: true
+ Executions.ResumeExecutionRequest:
+ type: object
+ required:
+ - status
+ properties:
+ status:
+ type: string
+ enum:
+ - running
+ default: running
+ input:
+ type: object
+ additionalProperties: {}
+ description: The input to resume the execution with
+ allOf:
+ - $ref: '#/components/schemas/Executions.UpdateExecutionRequest'
+ Executions.StopExecutionRequest:
+ type: object
+ required:
+ - status
+ - reason
+ properties:
+ status:
+ type: string
+ enum:
+ - cancelled
+ default: cancelled
+ reason:
+ type: string
+ nullable: true
+ description: The reason for stopping the execution
+ default: null
+ allOf:
+ - $ref: '#/components/schemas/Executions.UpdateExecutionRequest'
+ Executions.TaskTokenResumeExecutionRequest:
+ type: object
+ required:
+ - status
+ properties:
+ status:
+ type: string
+ enum:
+ - running
+ default: running
+ input:
+ type: object
+ additionalProperties: {}
+ description: The input to resume the execution with
+ Executions.Transition:
+ type: object
+ required:
+ - execution_id
+ - current
+ - next
+ - id
+ properties:
+ execution_id:
+ allOf:
+ - $ref: '#/components/schemas/Common.uuid'
+ readOnly: true
+ current:
+ allOf:
+ - $ref: '#/components/schemas/Executions.TransitionTarget'
+ readOnly: true
+ next:
+ type: object
+ allOf:
+ - $ref: '#/components/schemas/Executions.TransitionTarget'
+ nullable: true
+ readOnly: true
+ id:
+ allOf:
+ - $ref: '#/components/schemas/Common.uuid'
+ readOnly: true
+ metadata:
+ type: object
+ additionalProperties: {}
+ allOf:
+ - $ref: '#/components/schemas/Executions.TransitionEvent'
+ Executions.TransitionEvent:
+ type: object
+ required:
+ - type
+ - output
+ - created_at
+ - updated_at
+ properties:
+ type:
+ type: string
+ enum:
+ - init
+ - init_branch
+ - finish
+ - finish_branch
+ - wait
+ - resume
+ - error
+ - step
+ - cancelled
+ readOnly: true
+ output:
+ readOnly: true
+ created_at:
+ type: string
+ format: date-time
+ description: When this resource was created as UTC date-time
+ readOnly: true
+ updated_at:
+ type: string
+ format: date-time
+ description: When this resource was updated as UTC date-time
+ readOnly: true
+ Executions.TransitionTarget:
+ type: object
+ required:
+ - workflow
+ - step
+ properties:
+ workflow:
+ $ref: '#/components/schemas/Common.identifierSafeUnicode'
+ step:
+ type: integer
+ format: uint16
+ Executions.UpdateExecutionRequest:
+ type: object
+ required:
+ - status
+ properties:
+ status:
+ type: string
+ enum:
+ - queued
+ - starting
+ - running
+ - awaiting_input
+ - succeeded
+ - failed
+ - cancelled
+ discriminator:
+ propertyName: status
+ mapping:
+ cancelled: '#/components/schemas/Executions.StopExecutionRequest'
+ running: '#/components/schemas/Executions.ResumeExecutionRequest'
+ Jobs.JobState:
+ type: string
+ enum:
+ - pending
+ - in_progress
+ - retrying
+ - succeeded
+ - aborted
+ - failed
+ - unknown
+ description: 'Current state (one of: pending, in_progress, retrying, succeeded, aborted, failed)'
+ Jobs.JobStatus:
+ type: object
+ required:
+ - id
+ - created_at
+ - updated_at
+ - name
+ - reason
+ - has_progress
+ - progress
+ - state
+ properties:
+ id:
+ allOf:
+ - $ref: '#/components/schemas/Common.uuid'
+ readOnly: true
+ created_at:
+ type: string
+ format: date-time
+ description: When this resource was created as UTC date-time
+ readOnly: true
+ updated_at:
+ type: string
+ format: date-time
+ description: When this resource was updated as UTC date-time
+ readOnly: true
+ name:
+ allOf:
+ - $ref: '#/components/schemas/Common.identifierSafeUnicode'
+ description: Name of the job
+ default: ''
+ reason:
+ type: string
+ description: Reason for the current state of the job
+ default: ''
+ has_progress:
+ type: boolean
+ description: Whether this Job supports progress updates
+ default: false
+ progress:
+ type: number
+ format: float
+ minimum: 0
+ maximum: 100
+ description: Progress percentage
+ default: 0
+ state:
+ allOf:
+ - $ref: '#/components/schemas/Jobs.JobState'
+ description: Current state of the job
+ default: pending
+ Sessions.ContextOverflowType:
+ type: string
+ enum:
+ - truncate
+ - adaptive
+ Sessions.CreateOrUpdateSessionRequest:
+ type: object
+ required:
+ - id
+ - situation
+ - render_templates
+ - token_budget
+ - context_overflow
+ - forward_tool_results
+ properties:
+ id:
+ $ref: '#/components/schemas/Common.uuid'
+ user:
+ allOf:
+ - $ref: '#/components/schemas/Common.uuid'
+ description: User ID of user associated with this session
+ users:
+ type: array
+ items:
+ $ref: '#/components/schemas/Common.uuid'
+ agent:
+ allOf:
+ - $ref: '#/components/schemas/Common.uuid'
+ description: Agent ID of agent associated with this session
+ agents:
+ type: array
+ items:
+ $ref: '#/components/schemas/Common.uuid'
+ situation:
+ type: string
+ description: A specific situation that sets the background for this session
+ default: |-
+ {%- if agent.name -%}
+ You are {{agent.name}}.{{" "}}
+ {%- endif -%}
+
+ {%- if agent.about -%}
+ About you: {{agent.name}}.{{" "}}
+ {%- endif -%}
+
+ {%- if user -%}
+ You are talking to a user
+ {%- if user.name -%}{{" "}} and their name is {{user.name}}
+ {%- if user.about -%}. About the user: {{user.about}}.{%- else -%}.{%- endif -%}
+ {%- endif -%}
+ {%- endif -%}
+
+ {{"
+
+ "}}
+
+ {%- if agent.instructions -%}
+ Instructions:{{"
+ "}}
+ {%- if agent.instructions is string -%}
+ {{agent.instructions}}{{"
+ "}}
+ {%- else -%}
+ {%- for instruction in agent.instructions -%}
+ - {{instruction}}{{"
+ "}}
+ {%- endfor -%}
+ {%- endif -%}
+ {{"
+ "}}
+ {%- endif -%}
+
+ {%- if tools -%}
+ Tools:{{"
+ "}}
+ {%- for tool in tools -%}
+ {%- if tool.type == "function" -%}
+ - {{tool.function.name}}
+ {%- if tool.function.description -%}: {{tool.function.description}}{%- endif -%}{{"
+ "}}
+ {%- else -%}
+ - {{ 0/0 }} {# Error: Other tool types aren't supported yet. #}
+ {%- endif -%}
+ {%- endfor -%}
+ {{"
+
+ "}}
+ {%- endif -%}
+
+ {%- if docs -%}
+ Relevant documents:{{"
+ "}}
+ {%- for doc in docs -%}
+ {{doc.title}}{{"
+ "}}
+ {%- if doc.content is string -%}
+ {{doc.content}}{{"
+ "}}
+ {%- else -%}
+ {%- for snippet in doc.content -%}
+ {{snippet}}{{"
+ "}}
+ {%- endfor -%}
+ {%- endif -%}
+ {{"---"}}
+ {%- endfor -%}
+ {%- endif -%}
+ render_templates:
+ type: boolean
+ description: Render system and assistant message content as jinja templates
+ default: true
+ token_budget:
+ type: integer
+ format: uint16
+ nullable: true
+ description: Threshold value for the adaptive context functionality
+ default: null
+ context_overflow:
+ oneOf:
+ - $ref: '#/components/schemas/Sessions.ContextOverflowType'
+ nullable: true
+ description: Action to start on context window overflow
+ default: null
+ forward_tool_results:
+ type: boolean
+ nullable: true
+ description: |-
+ Whether to forward the tool results to the model when available.
+ "true" => always forward
+ "false" => never forward
+ null => forward if applicable (default)
+
+ If a tool call is made, the tool's output will be sent back to the model as the model's input.
+ If a tool call is not made, the model's output will be returned as is.
+ default: null
+ metadata:
+ type: object
+ additionalProperties: {}
+ allOf:
+ - $ref: '#/components/schemas/Sessions.CreateSessionRequest'
+ Sessions.CreateSessionRequest:
+ type: object
+ required:
+ - situation
+ - render_templates
+ - token_budget
+ - context_overflow
+ - forward_tool_results
+ properties:
+ user:
+ allOf:
+ - $ref: '#/components/schemas/Common.uuid'
+ description: User ID of user associated with this session
+ users:
+ type: array
+ items:
+ $ref: '#/components/schemas/Common.uuid'
+ agent:
+ allOf:
+ - $ref: '#/components/schemas/Common.uuid'
+ description: Agent ID of agent associated with this session
+ agents:
+ type: array
+ items:
+ $ref: '#/components/schemas/Common.uuid'
+ situation:
+ type: string
+ description: A specific situation that sets the background for this session
+ default: |-
+ {%- if agent.name -%}
+ You are {{agent.name}}.{{" "}}
+ {%- endif -%}
+
+ {%- if agent.about -%}
+ About you: {{agent.name}}.{{" "}}
+ {%- endif -%}
+
+ {%- if user -%}
+ You are talking to a user
+ {%- if user.name -%}{{" "}} and their name is {{user.name}}
+ {%- if user.about -%}. About the user: {{user.about}}.{%- else -%}.{%- endif -%}
+ {%- endif -%}
+ {%- endif -%}
+
+ {{"
+
+ "}}
+
+ {%- if agent.instructions -%}
+ Instructions:{{"
+ "}}
+ {%- if agent.instructions is string -%}
+ {{agent.instructions}}{{"
+ "}}
+ {%- else -%}
+ {%- for instruction in agent.instructions -%}
+ - {{instruction}}{{"
+ "}}
+ {%- endfor -%}
+ {%- endif -%}
+ {{"
+ "}}
+ {%- endif -%}
+
+ {%- if tools -%}
+ Tools:{{"
+ "}}
+ {%- for tool in tools -%}
+ {%- if tool.type == "function" -%}
+ - {{tool.function.name}}
+ {%- if tool.function.description -%}: {{tool.function.description}}{%- endif -%}{{"
+ "}}
+ {%- else -%}
+ - {{ 0/0 }} {# Error: Other tool types aren't supported yet. #}
+ {%- endif -%}
+ {%- endfor -%}
+ {{"
+
+ "}}
+ {%- endif -%}
+
+ {%- if docs -%}
+ Relevant documents:{{"
+ "}}
+ {%- for doc in docs -%}
+ {{doc.title}}{{"
+ "}}
+ {%- if doc.content is string -%}
+ {{doc.content}}{{"
+ "}}
+ {%- else -%}
+ {%- for snippet in doc.content -%}
+ {{snippet}}{{"
+ "}}
+ {%- endfor -%}
+ {%- endif -%}
+ {{"---"}}
+ {%- endfor -%}
+ {%- endif -%}
+ render_templates:
+ type: boolean
+ description: Render system and assistant message content as jinja templates
+ default: true
+ token_budget:
+ type: integer
+ format: uint16
+ nullable: true
+ description: Threshold value for the adaptive context functionality
+ default: null
+ context_overflow:
+ oneOf:
+ - $ref: '#/components/schemas/Sessions.ContextOverflowType'
+ nullable: true
+ description: Action to start on context window overflow
+ default: null
+ forward_tool_results:
+ type: boolean
+ nullable: true
+ description: |-
+ Whether to forward the tool results to the model when available.
+ "true" => always forward
+ "false" => never forward
+ null => forward if applicable (default)
+
+ If a tool call is made, the tool's output will be sent back to the model as the model's input.
+ If a tool call is not made, the model's output will be returned as is.
+ default: null
+ metadata:
+ type: object
+ additionalProperties: {}
+ description: Payload for creating a session
+ Sessions.MultiAgentMultiUserSession:
+ type: object
+ required:
+ - agents
+ - users
+ properties:
+ agents:
+ type: array
+ items:
+ $ref: '#/components/schemas/Common.uuid'
+ minItems: 2
+ users:
+ type: array
+ items:
+ $ref: '#/components/schemas/Common.uuid'
+ minItems: 2
+ allOf:
+ - $ref: '#/components/schemas/Sessions.Session'
+ Sessions.MultiAgentNoUserSession:
+ type: object
+ required:
+ - agents
+ properties:
+ agents:
+ type: array
+ items:
+ $ref: '#/components/schemas/Common.uuid'
+ minItems: 2
+ allOf:
+ - $ref: '#/components/schemas/Sessions.Session'
+ Sessions.MultiAgentSingleUserSession:
+ type: object
+ required:
+ - agents
+ - user
+ properties:
+ agents:
+ type: array
+ items:
+ $ref: '#/components/schemas/Common.uuid'
+ minItems: 2
+ user:
+ $ref: '#/components/schemas/Common.uuid'
+ allOf:
+ - $ref: '#/components/schemas/Sessions.Session'
+ Sessions.PatchSessionRequest:
+ type: object
+ properties:
+ situation:
+ type: string
+ description: A specific situation that sets the background for this session
+ default: |-
+ {%- if agent.name -%}
+ You are {{agent.name}}.{{" "}}
+ {%- endif -%}
+
+ {%- if agent.about -%}
+ About you: {{agent.name}}.{{" "}}
+ {%- endif -%}
+
+ {%- if user -%}
+ You are talking to a user
+ {%- if user.name -%}{{" "}} and their name is {{user.name}}
+ {%- if user.about -%}. About the user: {{user.about}}.{%- else -%}.{%- endif -%}
+ {%- endif -%}
+ {%- endif -%}
+
+ {{"
+
+ "}}
+
+ {%- if agent.instructions -%}
+ Instructions:{{"
+ "}}
+ {%- if agent.instructions is string -%}
+ {{agent.instructions}}{{"
+ "}}
+ {%- else -%}
+ {%- for instruction in agent.instructions -%}
+ - {{instruction}}{{"
+ "}}
+ {%- endfor -%}
+ {%- endif -%}
+ {{"
+ "}}
+ {%- endif -%}
+
+ {%- if tools -%}
+ Tools:{{"
+ "}}
+ {%- for tool in tools -%}
+ {%- if tool.type == "function" -%}
+ - {{tool.function.name}}
+ {%- if tool.function.description -%}: {{tool.function.description}}{%- endif -%}{{"
+ "}}
+ {%- else -%}
+ - {{ 0/0 }} {# Error: Other tool types aren't supported yet. #}
+ {%- endif -%}
+ {%- endfor -%}
+ {{"
+
+ "}}
+ {%- endif -%}
+
+ {%- if docs -%}
+ Relevant documents:{{"
+ "}}
+ {%- for doc in docs -%}
+ {{doc.title}}{{"
+ "}}
+ {%- if doc.content is string -%}
+ {{doc.content}}{{"
+ "}}
+ {%- else -%}
+ {%- for snippet in doc.content -%}
+ {{snippet}}{{"
+ "}}
+ {%- endfor -%}
+ {%- endif -%}
+ {{"---"}}
+ {%- endfor -%}
+ {%- endif -%}
+ render_templates:
+ type: boolean
+ description: Render system and assistant message content as jinja templates
+ default: true
+ token_budget:
+ type: integer
+ format: uint16
+ nullable: true
+ description: Threshold value for the adaptive context functionality
+ default: null
+ context_overflow:
+ oneOf:
+ - $ref: '#/components/schemas/Sessions.ContextOverflowType'
+ nullable: true
+ description: Action to start on context window overflow
+ default: null
+ forward_tool_results:
+ type: boolean
+ nullable: true
+ description: |-
+ Whether to forward the tool results to the model when available.
+ "true" => always forward
+ "false" => never forward
+ null => forward if applicable (default)
+
+ If a tool call is made, the tool's output will be sent back to the model as the model's input.
+ If a tool call is not made, the model's output will be returned as is.
+ default: null
+ metadata:
+ type: object
+ additionalProperties: {}
+ description: Payload for patching a session
+ Sessions.Session:
+ type: object
+ required:
+ - situation
+ - summary
+ - render_templates
+ - token_budget
+ - context_overflow
+ - forward_tool_results
+ - id
+ - created_at
+ - updated_at
+ properties:
+ situation:
+ type: string
+ description: A specific situation that sets the background for this session
+ default: |-
+ {%- if agent.name -%}
+ You are {{agent.name}}.{{" "}}
+ {%- endif -%}
+
+ {%- if agent.about -%}
+ About you: {{agent.name}}.{{" "}}
+ {%- endif -%}
+
+ {%- if user -%}
+ You are talking to a user
+ {%- if user.name -%}{{" "}} and their name is {{user.name}}
+ {%- if user.about -%}. About the user: {{user.about}}.{%- else -%}.{%- endif -%}
+ {%- endif -%}
+ {%- endif -%}
+
+ {{"
+
+ "}}
+
+ {%- if agent.instructions -%}
+ Instructions:{{"
+ "}}
+ {%- if agent.instructions is string -%}
+ {{agent.instructions}}{{"
+ "}}
+ {%- else -%}
+ {%- for instruction in agent.instructions -%}
+ - {{instruction}}{{"
+ "}}
+ {%- endfor -%}
+ {%- endif -%}
+ {{"
+ "}}
+ {%- endif -%}
+
+ {%- if tools -%}
+ Tools:{{"
+ "}}
+ {%- for tool in tools -%}
+ {%- if tool.type == "function" -%}
+ - {{tool.function.name}}
+ {%- if tool.function.description -%}: {{tool.function.description}}{%- endif -%}{{"
+ "}}
+ {%- else -%}
+ - {{ 0/0 }} {# Error: Other tool types aren't supported yet. #}
+ {%- endif -%}
+ {%- endfor -%}
+ {{"
+
+ "}}
+ {%- endif -%}
+
+ {%- if docs -%}
+ Relevant documents:{{"
+ "}}
+ {%- for doc in docs -%}
+ {{doc.title}}{{"
+ "}}
+ {%- if doc.content is string -%}
+ {{doc.content}}{{"
+ "}}
+ {%- else -%}
+ {%- for snippet in doc.content -%}
+ {{snippet}}{{"
+ "}}
+ {%- endfor -%}
+ {%- endif -%}
+ {{"---"}}
+ {%- endfor -%}
+ {%- endif -%}
+ summary:
+ type: string
+ nullable: true
+ description: Summary (null at the beginning) - generated automatically after every interaction
+ default: null
+ readOnly: true
+ render_templates:
+ type: boolean
+ description: Render system and assistant message content as jinja templates
+ default: true
+ token_budget:
+ type: integer
+ format: uint16
+ nullable: true
+ description: Threshold value for the adaptive context functionality
+ default: null
+ context_overflow:
+ oneOf:
+ - $ref: '#/components/schemas/Sessions.ContextOverflowType'
+ nullable: true
+ description: Action to start on context window overflow
+ default: null
+ forward_tool_results:
+ type: boolean
+ nullable: true
+ description: |-
+ Whether to forward the tool results to the model when available.
+ "true" => always forward
+ "false" => never forward
+ null => forward if applicable (default)
+
+ If a tool call is made, the tool's output will be sent back to the model as the model's input.
+ If a tool call is not made, the model's output will be returned as is.
+ default: null
+ id:
+ allOf:
+ - $ref: '#/components/schemas/Common.uuid'
+ readOnly: true
+ metadata:
+ type: object
+ additionalProperties: {}
+ created_at:
+ type: string
+ format: date-time
+ description: When this resource was created as UTC date-time
+ readOnly: true
+ updated_at:
+ type: string
+ format: date-time
+ description: When this resource was updated as UTC date-time
+ readOnly: true
+ kind:
+ type: string
+ description: Discriminator property for Session.
+ discriminator:
+ propertyName: kind
+ mapping:
+ single_agent_no_user: '#/components/schemas/Sessions.SingleAgentNoUserSession'
+ single_agent_single_user: '#/components/schemas/Sessions.SingleAgentSingleUserSession'
+ single_agent_multi_user: '#/components/schemas/Sessions.SingleAgentMultiUserSession'
+ multi_agent_no_user: '#/components/schemas/Sessions.MultiAgentNoUserSession'
+ multi_agent_single_user: '#/components/schemas/Sessions.MultiAgentSingleUserSession'
+ multi_agent_multi_user: '#/components/schemas/Sessions.MultiAgentMultiUserSession'
+ Sessions.SingleAgentMultiUserSession:
+ type: object
+ required:
+ - agent
+ - users
+ properties:
+ agent:
+ $ref: '#/components/schemas/Common.uuid'
+ users:
+ type: array
+ items:
+ $ref: '#/components/schemas/Common.uuid'
+ minItems: 2
+ allOf:
+ - $ref: '#/components/schemas/Sessions.Session'
+ Sessions.SingleAgentNoUserSession:
+ type: object
+ required:
+ - agent
+ properties:
+ agent:
+ $ref: '#/components/schemas/Common.uuid'
+ allOf:
+ - $ref: '#/components/schemas/Sessions.Session'
+ Sessions.SingleAgentSingleUserSession:
+ type: object
+ required:
+ - agent
+ - user
+ properties:
+ agent:
+ $ref: '#/components/schemas/Common.uuid'
+ user:
+ $ref: '#/components/schemas/Common.uuid'
+ allOf:
+ - $ref: '#/components/schemas/Sessions.Session'
+ Sessions.UpdateSessionRequest:
+ type: object
+ required:
+ - situation
+ - render_templates
+ - token_budget
+ - context_overflow
+ - forward_tool_results
+ properties:
+ situation:
+ type: string
+ description: A specific situation that sets the background for this session
+ default: |-
+ {%- if agent.name -%}
+ You are {{agent.name}}.{{" "}}
+ {%- endif -%}
+
+ {%- if agent.about -%}
+ About you: {{agent.name}}.{{" "}}
+ {%- endif -%}
+
+ {%- if user -%}
+ You are talking to a user
+ {%- if user.name -%}{{" "}} and their name is {{user.name}}
+ {%- if user.about -%}. About the user: {{user.about}}.{%- else -%}.{%- endif -%}
+ {%- endif -%}
+ {%- endif -%}
+
+ {{"
+
+ "}}
+
+ {%- if agent.instructions -%}
+ Instructions:{{"
+ "}}
+ {%- if agent.instructions is string -%}
+ {{agent.instructions}}{{"
+ "}}
+ {%- else -%}
+ {%- for instruction in agent.instructions -%}
+ - {{instruction}}{{"
+ "}}
+ {%- endfor -%}
+ {%- endif -%}
+ {{"
+ "}}
+ {%- endif -%}
+
+ {%- if tools -%}
+ Tools:{{"
+ "}}
+ {%- for tool in tools -%}
+ {%- if tool.type == "function" -%}
+ - {{tool.function.name}}
+ {%- if tool.function.description -%}: {{tool.function.description}}{%- endif -%}{{"
+ "}}
+ {%- else -%}
+ - {{ 0/0 }} {# Error: Other tool types aren't supported yet. #}
+ {%- endif -%}
+ {%- endfor -%}
+ {{"
+
+ "}}
+ {%- endif -%}
+
+ {%- if docs -%}
+ Relevant documents:{{"
+ "}}
+ {%- for doc in docs -%}
+ {{doc.title}}{{"
+ "}}
+ {%- if doc.content is string -%}
+ {{doc.content}}{{"
+ "}}
+ {%- else -%}
+ {%- for snippet in doc.content -%}
+ {{snippet}}{{"
+ "}}
+ {%- endfor -%}
+ {%- endif -%}
+ {{"---"}}
+ {%- endfor -%}
+ {%- endif -%}
+ render_templates:
+ type: boolean
+ description: Render system and assistant message content as jinja templates
+ default: true
+ token_budget:
+ type: integer
+ format: uint16
+ nullable: true
+ description: Threshold value for the adaptive context functionality
+ default: null
+ context_overflow:
+ oneOf:
+ - $ref: '#/components/schemas/Sessions.ContextOverflowType'
+ nullable: true
+ description: Action to start on context window overflow
+ default: null
+ forward_tool_results:
+ type: boolean
+ nullable: true
+ description: |-
+ Whether to forward the tool results to the model when available.
+ "true" => always forward
+ "false" => never forward
+ null => forward if applicable (default)
+
+ If a tool call is made, the tool's output will be sent back to the model as the model's input.
+ If a tool call is not made, the model's output will be returned as is.
+ default: null
+ metadata:
+ type: object
+ additionalProperties: {}
+ description: Payload for updating a session
+ Tasks.CaseThen:
+ type: object
+ required:
+ - case
+ - then
+ properties:
+ case:
+ anyOf:
+ - $ref: '#/components/schemas/Common.PyExpression'
+ - type: string
+ enum:
+ - _
+ description: The condition to evaluate
+ then:
+ anyOf:
+ - $ref: '#/components/schemas/Tasks.EvaluateStep'
+ - $ref: '#/components/schemas/Tasks.ToolCallStep'
+ - $ref: '#/components/schemas/Tasks.PromptStep'
+ - $ref: '#/components/schemas/Tasks.GetStep'
+ - $ref: '#/components/schemas/Tasks.SetStep'
+ - $ref: '#/components/schemas/Tasks.LogStep'
+ - $ref: '#/components/schemas/Tasks.YieldStep'
+ - $ref: '#/components/schemas/Tasks.ReturnStep'
+ - $ref: '#/components/schemas/Tasks.SleepStep'
+ - $ref: '#/components/schemas/Tasks.ErrorWorkflowStep'
+ - $ref: '#/components/schemas/Tasks.WaitForInputStep'
+ description: The steps to run if the condition is true
+ Tasks.CaseThenUpdateItem:
+ type: object
+ required:
+ - case
+ - then
+ properties:
+ case:
+ anyOf:
+ - $ref: '#/components/schemas/Common.PyExpression'
+ - type: string
+ enum:
+ - _
+ description: The condition to evaluate
+ then:
+ anyOf:
+ - $ref: '#/components/schemas/Tasks.EvaluateStep'
+ - $ref: '#/components/schemas/Tasks.ToolCallStep'
+ - $ref: '#/components/schemas/Tasks.PromptStepUpdateItem'
+ - $ref: '#/components/schemas/Tasks.GetStep'
+ - $ref: '#/components/schemas/Tasks.SetStep'
+ - $ref: '#/components/schemas/Tasks.LogStep'
+ - $ref: '#/components/schemas/Tasks.YieldStep'
+ - $ref: '#/components/schemas/Tasks.ReturnStep'
+ - $ref: '#/components/schemas/Tasks.SleepStep'
+ - $ref: '#/components/schemas/Tasks.ErrorWorkflowStep'
+ - $ref: '#/components/schemas/Tasks.WaitForInputStep'
+ description: The steps to run if the condition is true
+ Tasks.CreateTaskRequest:
+ type: object
+ required:
+ - name
+ - description
+ - main
+ - input_schema
+ - tools
+ - inherit_tools
+ properties:
+ name:
+ type: string
+ description:
+ type: string
+ default: ''
+ main:
+ type: array
+ items:
+ anyOf:
+ - $ref: '#/components/schemas/Tasks.EvaluateStep'
+ - $ref: '#/components/schemas/Tasks.ToolCallStep'
+ - $ref: '#/components/schemas/Tasks.PromptStep'
+ - $ref: '#/components/schemas/Tasks.GetStep'
+ - $ref: '#/components/schemas/Tasks.SetStep'
+ - $ref: '#/components/schemas/Tasks.LogStep'
+ - $ref: '#/components/schemas/Tasks.YieldStep'
+ - $ref: '#/components/schemas/Tasks.ReturnStep'
+ - $ref: '#/components/schemas/Tasks.SleepStep'
+ - $ref: '#/components/schemas/Tasks.ErrorWorkflowStep'
+ - $ref: '#/components/schemas/Tasks.WaitForInputStep'
+ - $ref: '#/components/schemas/Tasks.IfElseWorkflowStep'
+ - $ref: '#/components/schemas/Tasks.SwitchStep'
+ - $ref: '#/components/schemas/Tasks.ForeachStep'
+ - $ref: '#/components/schemas/Tasks.ParallelStep'
+ - type: object
+ required:
+ - kind_
+ - over
+ - map
+ properties:
+ kind_:
+ type: string
+ enum:
+ - map_reduce
+ default: map_reduce
+ readOnly: true
+ over:
+ allOf:
+ - $ref: '#/components/schemas/Common.PyExpression'
+ description: The variable to iterate over
+ map:
+ anyOf:
+ - $ref: '#/components/schemas/Tasks.EvaluateStep'
+ - $ref: '#/components/schemas/Tasks.ToolCallStep'
+ - $ref: '#/components/schemas/Tasks.PromptStep'
+ - $ref: '#/components/schemas/Tasks.GetStep'
+ - $ref: '#/components/schemas/Tasks.SetStep'
+ - $ref: '#/components/schemas/Tasks.LogStep'
+ - $ref: '#/components/schemas/Tasks.YieldStep'
+ description: The steps to run for each iteration
+ reduce:
+ allOf:
+ - $ref: '#/components/schemas/Common.PyExpression'
+ description: |-
+ The expression to reduce the results.
+ If not provided, the results are collected and returned as a list.
+ A special parameter named `results` is the accumulator and `_` is the current value.
+ initial:
+ description: The initial value of the reduce expression
+ default: []
+ parallelism:
+ type: integer
+ format: uint16
+ minimum: 1
+ maximum: 100
+ description: Whether to run the reduce expression in parallel and how many items to run in each batch
+ allOf:
+ - type: object
+ required:
+ - kind_
+ properties:
+ kind_:
+ type: string
+ enum:
+ - map_reduce
+ description: The kind of step
+ readOnly: true
+ discriminator:
+ propertyName: kind_
+ minItems: 1
+ description: The entrypoint of the task.
+ input_schema:
+ type: object
+ additionalProperties: {}
+ nullable: true
+ description: The schema for the input to the task. `null` means all inputs are valid.
+ default: null
+ tools:
+ type: array
+ items:
+ $ref: '#/components/schemas/Tasks.TaskTool'
+ description: Tools defined specifically for this task not included in the Agent itself.
+ default: []
+ inherit_tools:
+ type: boolean
+ description: Whether to inherit tools from the parent agent or not. Defaults to true.
+ default: true
+ metadata:
+ type: object
+ additionalProperties: {}
+ additionalProperties:
+ type: array
+ items:
+ anyOf:
+ - $ref: '#/components/schemas/Tasks.EvaluateStep'
+ - $ref: '#/components/schemas/Tasks.ToolCallStep'
+ - $ref: '#/components/schemas/Tasks.PromptStep'
+ - $ref: '#/components/schemas/Tasks.GetStep'
+ - $ref: '#/components/schemas/Tasks.SetStep'
+ - $ref: '#/components/schemas/Tasks.LogStep'
+ - $ref: '#/components/schemas/Tasks.YieldStep'
+ - $ref: '#/components/schemas/Tasks.ReturnStep'
+ - $ref: '#/components/schemas/Tasks.SleepStep'
+ - $ref: '#/components/schemas/Tasks.ErrorWorkflowStep'
+ - $ref: '#/components/schemas/Tasks.WaitForInputStep'
+ - $ref: '#/components/schemas/Tasks.IfElseWorkflowStep'
+ - $ref: '#/components/schemas/Tasks.SwitchStep'
+ - $ref: '#/components/schemas/Tasks.ForeachStep'
+ - $ref: '#/components/schemas/Tasks.ParallelStep'
+ - type: object
+ required:
+ - kind_
+ - over
+ - map
+ properties:
+ kind_:
+ type: string
+ enum:
+ - map_reduce
+ default: map_reduce
+ readOnly: true
+ over:
+ allOf:
+ - $ref: '#/components/schemas/Common.PyExpression'
+ description: The variable to iterate over
+ map:
+ anyOf:
+ - $ref: '#/components/schemas/Tasks.EvaluateStep'
+ - $ref: '#/components/schemas/Tasks.ToolCallStep'
+ - $ref: '#/components/schemas/Tasks.PromptStep'
+ - $ref: '#/components/schemas/Tasks.GetStep'
+ - $ref: '#/components/schemas/Tasks.SetStep'
+ - $ref: '#/components/schemas/Tasks.LogStep'
+ - $ref: '#/components/schemas/Tasks.YieldStep'
+ description: The steps to run for each iteration
+ reduce:
+ allOf:
+ - $ref: '#/components/schemas/Common.PyExpression'
+ description: |-
+ The expression to reduce the results.
+ If not provided, the results are collected and returned as a list.
+ A special parameter named `results` is the accumulator and `_` is the current value.
+ initial:
+ description: The initial value of the reduce expression
+ default: []
+ parallelism:
+ type: integer
+ format: uint16
+ minimum: 1
+ maximum: 100
+ description: Whether to run the reduce expression in parallel and how many items to run in each batch
+ allOf:
+ - type: object
+ required:
+ - kind_
+ properties:
+ kind_:
+ type: string
+ enum:
+ - map_reduce
+ description: The kind of step
+ readOnly: true
+ discriminator:
+ propertyName: kind_
+ description: Payload for creating a task
+ Tasks.ErrorWorkflowStep:
+ type: object
+ required:
+ - kind_
+ - error
+ properties:
+ kind_:
+ type: string
+ enum:
+ - error
+ default: error
+ readOnly: true
+ error:
+ type: string
+ description: The error message
+ allOf:
+ - type: object
+ required:
+ - kind_
+ properties:
+ kind_:
+ type: string
+ enum:
+ - error
+ description: The kind of step
+ readOnly: true
+ discriminator:
+ propertyName: kind_
+ mapping: {}
+ Tasks.EvaluateStep:
+ type: object
+ required:
+ - kind_
+ - evaluate
+ properties:
+ kind_:
+ type: string
+ enum:
+ - evaluate
+ default: evaluate
+ readOnly: true
+ evaluate:
+ type: object
+ additionalProperties:
+ $ref: '#/components/schemas/Common.PyExpression'
+ description: The expression to evaluate
+ allOf:
+ - type: object
+ required:
+ - kind_
+ properties:
+ kind_:
+ type: string
+ enum:
+ - evaluate
+ description: The kind of step
+ readOnly: true
+ discriminator:
+ propertyName: kind_
+ mapping: {}
+ Tasks.ForeachDo:
+ type: object
+ required:
+ - in
+ - do
+ properties:
+ in:
+ allOf:
+ - $ref: '#/components/schemas/Common.PyExpression'
+ description: |-
+ The variable to iterate over.
+ VALIDATION: Should NOT return more than 1000 elements.
+ do:
+ anyOf:
+ - $ref: '#/components/schemas/Tasks.WaitForInputStep'
+ - $ref: '#/components/schemas/Tasks.EvaluateStep'
+ - $ref: '#/components/schemas/Tasks.ToolCallStep'
+ - $ref: '#/components/schemas/Tasks.PromptStep'
+ - $ref: '#/components/schemas/Tasks.GetStep'
+ - $ref: '#/components/schemas/Tasks.SetStep'
+ - $ref: '#/components/schemas/Tasks.LogStep'
+ - $ref: '#/components/schemas/Tasks.YieldStep'
+ description: The steps to run for each iteration
+ Tasks.ForeachDoUpdateItem:
+ type: object
+ required:
+ - in
+ - do
+ properties:
+ in:
+ allOf:
+ - $ref: '#/components/schemas/Common.PyExpression'
+ description: |-
+ The variable to iterate over.
+ VALIDATION: Should NOT return more than 1000 elements.
+ do:
+ anyOf:
+ - $ref: '#/components/schemas/Tasks.WaitForInputStep'
+ - $ref: '#/components/schemas/Tasks.EvaluateStep'
+ - $ref: '#/components/schemas/Tasks.ToolCallStep'
+ - $ref: '#/components/schemas/Tasks.PromptStepUpdateItem'
+ - $ref: '#/components/schemas/Tasks.GetStep'
+ - $ref: '#/components/schemas/Tasks.SetStep'
+ - $ref: '#/components/schemas/Tasks.LogStep'
+ - $ref: '#/components/schemas/Tasks.YieldStep'
+ description: The steps to run for each iteration
+ Tasks.ForeachStep:
+ type: object
+ required:
+ - kind_
+ - foreach
+ properties:
+ kind_:
+ type: string
+ enum:
+ - foreach
+ default: foreach
+ readOnly: true
+ foreach:
+ allOf:
+ - $ref: '#/components/schemas/Tasks.ForeachDo'
+ description: The steps to run for each iteration
+ allOf:
+ - type: object
+ required:
+ - kind_
+ properties:
+ kind_:
+ type: string
+ enum:
+ - foreach
+ description: The kind of step
+ readOnly: true
+ discriminator:
+ propertyName: kind_
+ mapping: {}
+ Tasks.ForeachStepUpdateItem:
+ type: object
+ required:
+ - foreach
+ properties:
+ foreach:
+ allOf:
+ - $ref: '#/components/schemas/Tasks.ForeachDoUpdateItem'
+ description: The steps to run for each iteration
+ allOf:
+ - type: object
+ properties:
+ kind_:
+ type: string
+ description: Discriminator property for BaseWorkflowStep.
+ discriminator:
+ propertyName: kind_
+ mapping: {}
+ Tasks.GetStep:
+ type: object
+ required:
+ - kind_
+ - get
+ properties:
+ kind_:
+ type: string
+ enum:
+ - get
+ default: get
+ readOnly: true
+ get:
+ type: string
+ description: The key to get
+ allOf:
+ - type: object
+ required:
+ - kind_
+ properties:
+ kind_:
+ type: string
+ enum:
+ - get
+ description: The kind of step
+ readOnly: true
+ discriminator:
+ propertyName: kind_
+ mapping: {}
+ Tasks.IfElseWorkflowStep:
+ type: object
+ required:
+ - kind_
+ - if
+ - then
+ - else
+ properties:
+ kind_:
+ type: string
+ enum:
+ - if_else
+ default: if_else
+ readOnly: true
+ if:
+ allOf:
+ - $ref: '#/components/schemas/Common.PyExpression'
+ description: The condition to evaluate
+ then:
+ anyOf:
+ - $ref: '#/components/schemas/Tasks.EvaluateStep'
+ - $ref: '#/components/schemas/Tasks.ToolCallStep'
+ - $ref: '#/components/schemas/Tasks.PromptStep'
+ - $ref: '#/components/schemas/Tasks.GetStep'
+ - $ref: '#/components/schemas/Tasks.SetStep'
+ - $ref: '#/components/schemas/Tasks.LogStep'
+ - $ref: '#/components/schemas/Tasks.YieldStep'
+ - $ref: '#/components/schemas/Tasks.ReturnStep'
+ - $ref: '#/components/schemas/Tasks.SleepStep'
+ - $ref: '#/components/schemas/Tasks.ErrorWorkflowStep'
+ - $ref: '#/components/schemas/Tasks.WaitForInputStep'
+ description: The steps to run if the condition is true
+ else:
+ anyOf:
+ - $ref: '#/components/schemas/Tasks.EvaluateStep'
+ - $ref: '#/components/schemas/Tasks.ToolCallStep'
+ - $ref: '#/components/schemas/Tasks.PromptStep'
+ - $ref: '#/components/schemas/Tasks.GetStep'
+ - $ref: '#/components/schemas/Tasks.SetStep'
+ - $ref: '#/components/schemas/Tasks.LogStep'
+ - $ref: '#/components/schemas/Tasks.YieldStep'
+ - $ref: '#/components/schemas/Tasks.ReturnStep'
+ - $ref: '#/components/schemas/Tasks.SleepStep'
+ - $ref: '#/components/schemas/Tasks.ErrorWorkflowStep'
+ - $ref: '#/components/schemas/Tasks.WaitForInputStep'
+ nullable: true
+ description: The steps to run if the condition is false
+ default: null
+ allOf:
+ - type: object
+ required:
+ - kind_
+ properties:
+ kind_:
+ type: string
+ enum:
+ - if_else
+ description: The kind of step
+ readOnly: true
+ discriminator:
+ propertyName: kind_
+ mapping: {}
+ Tasks.IfElseWorkflowStepUpdateItem:
+ type: object
+ required:
+ - if
+ - then
+ - else
+ properties:
+ if:
+ allOf:
+ - $ref: '#/components/schemas/Common.PyExpression'
+ description: The condition to evaluate
+ then:
+ anyOf:
+ - $ref: '#/components/schemas/Tasks.EvaluateStep'
+ - $ref: '#/components/schemas/Tasks.ToolCallStep'
+ - $ref: '#/components/schemas/Tasks.PromptStepUpdateItem'
+ - $ref: '#/components/schemas/Tasks.GetStep'
+ - $ref: '#/components/schemas/Tasks.SetStep'
+ - $ref: '#/components/schemas/Tasks.LogStep'
+ - $ref: '#/components/schemas/Tasks.YieldStep'
+ - $ref: '#/components/schemas/Tasks.ReturnStep'
+ - $ref: '#/components/schemas/Tasks.SleepStep'
+ - $ref: '#/components/schemas/Tasks.ErrorWorkflowStep'
+ - $ref: '#/components/schemas/Tasks.WaitForInputStep'
+ description: The steps to run if the condition is true
+ else:
+ anyOf:
+ - $ref: '#/components/schemas/Tasks.EvaluateStep'
+ - $ref: '#/components/schemas/Tasks.ToolCallStep'
+ - $ref: '#/components/schemas/Tasks.PromptStepUpdateItem'
+ - $ref: '#/components/schemas/Tasks.GetStep'
+ - $ref: '#/components/schemas/Tasks.SetStep'
+ - $ref: '#/components/schemas/Tasks.LogStep'
+ - $ref: '#/components/schemas/Tasks.YieldStep'
+ - $ref: '#/components/schemas/Tasks.ReturnStep'
+ - $ref: '#/components/schemas/Tasks.SleepStep'
+ - $ref: '#/components/schemas/Tasks.ErrorWorkflowStep'
+ - $ref: '#/components/schemas/Tasks.WaitForInputStep'
+ nullable: true
+ description: The steps to run if the condition is false
+ default: null
+ allOf:
+ - type: object
+ properties:
+ kind_:
+ type: string
+ description: Discriminator property for BaseWorkflowStep.
+ discriminator:
+ propertyName: kind_
+ mapping: {}
+ Tasks.LogStep:
+ type: object
+ required:
+ - kind_
+ - log
+ properties:
+ kind_:
+ type: string
+ enum:
+ - log
+ default: log
+ readOnly: true
+ log:
+ allOf:
+ - $ref: '#/components/schemas/Common.JinjaTemplate'
+ description: The value to log
+ allOf:
+ - type: object
+ required:
+ - kind_
+ properties:
+ kind_:
+ type: string
+ enum:
+ - log
+ description: The kind of step
+ readOnly: true
+ discriminator:
+ propertyName: kind_
+ mapping: {}
+ Tasks.ParallelStep:
+ type: object
+ required:
+ - kind_
+ - parallel
+ properties:
+ kind_:
+ type: string
+ enum:
+ - parallel
+ default: parallel
+ readOnly: true
+ parallel:
+ type: array
+ items:
+ anyOf:
+ - $ref: '#/components/schemas/Tasks.EvaluateStep'
+ - $ref: '#/components/schemas/Tasks.ToolCallStep'
+ - $ref: '#/components/schemas/Tasks.PromptStep'
+ - $ref: '#/components/schemas/Tasks.GetStep'
+ - $ref: '#/components/schemas/Tasks.SetStep'
+ - $ref: '#/components/schemas/Tasks.LogStep'
+ - $ref: '#/components/schemas/Tasks.YieldStep'
+ maxItems: 100
+ description: The steps to run in parallel. Max concurrency will depend on the platform.
+ allOf:
+ - type: object
+ required:
+ - kind_
+ properties:
+ kind_:
+ type: string
+ enum:
+ - parallel
+ description: The kind of step
+ readOnly: true
+ discriminator:
+ propertyName: kind_
+ mapping: {}
+ Tasks.ParallelStepUpdateItem:
+ type: object
+ required:
+ - parallel
+ properties:
+ parallel:
+ type: array
+ items:
+ anyOf:
+ - $ref: '#/components/schemas/Tasks.EvaluateStep'
+ - $ref: '#/components/schemas/Tasks.ToolCallStep'
+ - $ref: '#/components/schemas/Tasks.PromptStepUpdateItem'
+ - $ref: '#/components/schemas/Tasks.GetStep'
+ - $ref: '#/components/schemas/Tasks.SetStep'
+ - $ref: '#/components/schemas/Tasks.LogStep'
+ - $ref: '#/components/schemas/Tasks.YieldStep'
+ maxItems: 100
+ description: The steps to run in parallel. Max concurrency will depend on the platform.
+ allOf:
+ - type: object
+ properties:
+ kind_:
+ type: string
+ description: Discriminator property for BaseWorkflowStep.
+ discriminator:
+ propertyName: kind_
+ mapping: {}
+ Tasks.PatchTaskRequest:
+ type: object
+ properties:
+ description:
+ type: string
+ default: ''
+ main:
+ type: array
+ items:
+ anyOf:
+ - $ref: '#/components/schemas/Tasks.EvaluateStep'
+ - $ref: '#/components/schemas/Tasks.ToolCallStep'
+ - $ref: '#/components/schemas/Tasks.PromptStepUpdateItem'
+ - $ref: '#/components/schemas/Tasks.GetStep'
+ - $ref: '#/components/schemas/Tasks.SetStep'
+ - $ref: '#/components/schemas/Tasks.LogStep'
+ - $ref: '#/components/schemas/Tasks.YieldStep'
+ - $ref: '#/components/schemas/Tasks.ReturnStep'
+ - $ref: '#/components/schemas/Tasks.SleepStep'
+ - $ref: '#/components/schemas/Tasks.ErrorWorkflowStep'
+ - $ref: '#/components/schemas/Tasks.WaitForInputStep'
+ - $ref: '#/components/schemas/Tasks.IfElseWorkflowStepUpdateItem'
+ - $ref: '#/components/schemas/Tasks.SwitchStepUpdateItem'
+ - $ref: '#/components/schemas/Tasks.ForeachStepUpdateItem'
+ - $ref: '#/components/schemas/Tasks.ParallelStepUpdateItem'
+ - type: object
+ required:
+ - over
+ - map
+ properties:
+ over:
+ allOf:
+ - $ref: '#/components/schemas/Common.PyExpression'
+ description: The variable to iterate over
+ map:
+ anyOf:
+ - $ref: '#/components/schemas/Tasks.EvaluateStep'
+ - $ref: '#/components/schemas/Tasks.ToolCallStep'
+ - $ref: '#/components/schemas/Tasks.PromptStepUpdateItem'
+ - $ref: '#/components/schemas/Tasks.GetStep'
+ - $ref: '#/components/schemas/Tasks.SetStep'
+ - $ref: '#/components/schemas/Tasks.LogStep'
+ - $ref: '#/components/schemas/Tasks.YieldStep'
+ description: The steps to run for each iteration
+ reduce:
+ allOf:
+ - $ref: '#/components/schemas/Common.PyExpression'
+ description: |-
+ The expression to reduce the results.
+ If not provided, the results are collected and returned as a list.
+ A special parameter named `results` is the accumulator and `_` is the current value.
+ initial:
+ description: The initial value of the reduce expression
+ default: []
+ parallelism:
+ type: integer
+ format: uint16
+ minimum: 1
+ maximum: 100
+ description: Whether to run the reduce expression in parallel and how many items to run in each batch
+ allOf:
+ - type: object
+ properties:
+ kind_:
+ type: string
+ description: Discriminator property for BaseWorkflowStep.
+ discriminator:
+ propertyName: kind_
+ minItems: 1
+ description: The entrypoint of the task.
+ input_schema:
+ type: object
+ additionalProperties: {}
+ nullable: true
+ description: The schema for the input to the task. `null` means all inputs are valid.
+ default: null
+ tools:
+ type: array
+ items:
+ $ref: '#/components/schemas/Tasks.TaskTool'
+ description: Tools defined specifically for this task not included in the Agent itself.
+ default: []
+ inherit_tools:
+ type: boolean
+ description: Whether to inherit tools from the parent agent or not. Defaults to true.
+ default: true
+ metadata:
+ type: object
+ additionalProperties: {}
+ additionalProperties:
+ type: array
+ items:
+ anyOf:
+ - $ref: '#/components/schemas/Tasks.EvaluateStep'
+ - $ref: '#/components/schemas/Tasks.ToolCallStep'
+ - $ref: '#/components/schemas/Tasks.PromptStepUpdateItem'
+ - $ref: '#/components/schemas/Tasks.GetStep'
+ - $ref: '#/components/schemas/Tasks.SetStep'
+ - $ref: '#/components/schemas/Tasks.LogStep'
+ - $ref: '#/components/schemas/Tasks.YieldStep'
+ - $ref: '#/components/schemas/Tasks.ReturnStep'
+ - $ref: '#/components/schemas/Tasks.SleepStep'
+ - $ref: '#/components/schemas/Tasks.ErrorWorkflowStep'
+ - $ref: '#/components/schemas/Tasks.WaitForInputStep'
+ - $ref: '#/components/schemas/Tasks.IfElseWorkflowStepUpdateItem'
+ - $ref: '#/components/schemas/Tasks.SwitchStepUpdateItem'
+ - $ref: '#/components/schemas/Tasks.ForeachStepUpdateItem'
+ - $ref: '#/components/schemas/Tasks.ParallelStepUpdateItem'
+ - type: object
+ required:
+ - over
+ - map
+ properties:
+ over:
+ allOf:
+ - $ref: '#/components/schemas/Common.PyExpression'
+ description: The variable to iterate over
+ map:
+ anyOf:
+ - $ref: '#/components/schemas/Tasks.EvaluateStep'
+ - $ref: '#/components/schemas/Tasks.ToolCallStep'
+ - $ref: '#/components/schemas/Tasks.PromptStepUpdateItem'
+ - $ref: '#/components/schemas/Tasks.GetStep'
+ - $ref: '#/components/schemas/Tasks.SetStep'
+ - $ref: '#/components/schemas/Tasks.LogStep'
+ - $ref: '#/components/schemas/Tasks.YieldStep'
+ description: The steps to run for each iteration
+ reduce:
+ allOf:
+ - $ref: '#/components/schemas/Common.PyExpression'
+ description: |-
+ The expression to reduce the results.
+ If not provided, the results are collected and returned as a list.
+ A special parameter named `results` is the accumulator and `_` is the current value.
+ initial:
+ description: The initial value of the reduce expression
+ default: []
+ parallelism:
+ type: integer
+ format: uint16
+ minimum: 1
+ maximum: 100
+ description: Whether to run the reduce expression in parallel and how many items to run in each batch
+ allOf:
+ - type: object
+ properties:
+ kind_:
+ type: string
+ description: Discriminator property for BaseWorkflowStep.
+ discriminator:
+ propertyName: kind_
+ description: Payload for patching a task
+ Tasks.PromptStep:
+ type: object
+ required:
+ - kind_
+ - prompt
+ - tools
+ - forward_tool_results
+ properties:
+ kind_:
+ type: string
+ enum:
+ - prompt
+ default: prompt
+ readOnly: true
+ prompt:
+ anyOf:
+ - $ref: '#/components/schemas/Common.JinjaTemplate'
+ - type: array
+ items:
+ type: object
+ required:
+ - role
+ - content
+ properties:
+ role:
+ allOf:
+ - $ref: '#/components/schemas/Entries.ChatMLRole'
+ description: The role of the message
+ content:
+ anyOf:
+ - $ref: '#/components/schemas/Common.JinjaTemplate'
+ - type: array
+ items:
+ $ref: '#/components/schemas/Common.JinjaTemplate'
+ - type: array
+ items:
+ anyOf:
+ - type: object
+ required:
+ - text
+ - type
+ properties:
+ text:
+ $ref: '#/components/schemas/Common.JinjaTemplate'
+ type:
+ type: string
+ enum:
+ - text
+ description: The type (fixed to 'text')
+ default: text
+ - type: object
+ required:
+ - image_url
+ - type
+ properties:
+ image_url:
+ type: object
+ required:
+ - url
+ - detail
+ properties:
+ url:
+ type: string
+ description: Image URL or base64 data url (e.g. `data:image/jpeg;base64,`)
+ detail:
+ allOf:
+ - $ref: '#/components/schemas/Entries.ImageDetail'
+ description: The detail level of the image
+ default: auto
+ description: The image URL
+ type:
+ type: string
+ enum:
+ - image_url
+ description: The type (fixed to 'image_url')
+ default: image_url
+ description: The content parts of the message
+ name:
+ type: string
+ description: Name
+ continue:
+ type: boolean
+ description: Whether to continue this message or return a new one
+ description: The prompt to run
+ tools:
+ anyOf:
+ - type: string
+ enum:
+ - all
+ - type: array
+ items:
+ anyOf:
+ - $ref: '#/components/schemas/Tasks.ToolRef'
+ - $ref: '#/components/schemas/Tools.CreateToolRequest'
+ description: The tools to use for the prompt
+ default: []
+ tool_choice:
+ anyOf:
+ - type: string
+ enum:
+ - auto
+ - none
+ - $ref: '#/components/schemas/Tools.NamedToolChoice'
+ description: The tool choice for the prompt
+ settings:
+ allOf:
+ - $ref: '#/components/schemas/Chat.ChatSettings'
+ description: Settings for the prompt
+ unwrap:
+ type: boolean
+ description: Whether to unwrap the output of the prompt step, equivalent to `response.choices[0].message.content`
+ default: false
+ forward_tool_results:
+ type: boolean
+ nullable: true
+ description: |-
+ Whether to forward the tool results to the model when available.
+ "true" => always forward
+ "false" => never forward
+ null => forward if applicable (default)
+
+ If a tool call is made, the tool's output will be used as the model's input.
+ If a tool call is not made, the model's output will be used as the next step's input.
+ default: null
+ allOf:
+ - type: object
+ required:
+ - kind_
+ properties:
+ kind_:
+ type: string
+ enum:
+ - prompt
+ description: The kind of step
+ readOnly: true
+ discriminator:
+ propertyName: kind_
+ mapping: {}
+ Tasks.PromptStepUpdateItem:
+ type: object
+ required:
+ - prompt
+ - tools
+ - forward_tool_results
+ properties:
+ prompt:
+ anyOf:
+ - $ref: '#/components/schemas/Common.JinjaTemplate'
+ - type: array
+ items:
+ type: object
+ required:
+ - role
+ - content
+ properties:
+ role:
+ allOf:
+ - $ref: '#/components/schemas/Entries.ChatMLRole'
+ description: The role of the message
+ content:
+ anyOf:
+ - $ref: '#/components/schemas/Common.JinjaTemplate'
+ - type: array
+ items:
+ $ref: '#/components/schemas/Common.JinjaTemplate'
+ - type: array
+ items:
+ anyOf:
+ - type: object
+ required:
+ - text
+ - type
+ properties:
+ text:
+ $ref: '#/components/schemas/Common.JinjaTemplate'
+ type:
+ type: string
+ enum:
+ - text
+ description: The type (fixed to 'text')
+ default: text
+ - type: object
+ required:
+ - image_url
+ - type
+ properties:
+ image_url:
+ type: object
+ required:
+ - url
+ - detail
+ properties:
+ url:
+ type: string
+ description: Image URL or base64 data url (e.g. `data:image/jpeg;base64,`)
+ detail:
+ allOf:
+ - $ref: '#/components/schemas/Entries.ImageDetail'
+ description: The detail level of the image
+ default: auto
+ description: The image URL
+ type:
+ type: string
+ enum:
+ - image_url
+ description: The type (fixed to 'image_url')
+ default: image_url
+ description: The content parts of the message
+ name:
+ type: string
+ description: Name
+ continue:
+ type: boolean
+ description: Whether to continue this message or return a new one
+ description: The prompt to run
+ tools:
+ anyOf:
+ - type: string
+ enum:
+ - all
+ - type: array
+ items:
+ anyOf:
+ - $ref: '#/components/schemas/Tasks.ToolRefUpdateItem'
+ - $ref: '#/components/schemas/Tools.CreateToolRequest'
+ description: The tools to use for the prompt
+ default: []
+ tool_choice:
+ anyOf:
+ - type: string
+ enum:
+ - auto
+ - none
+ - $ref: '#/components/schemas/Tools.NamedToolChoice'
+ description: The tool choice for the prompt
+ settings:
+ allOf:
+ - $ref: '#/components/schemas/Chat.ChatSettings'
+ description: Settings for the prompt
+ unwrap:
+ type: boolean
+ description: Whether to unwrap the output of the prompt step, equivalent to `response.choices[0].message.content`
+ default: false
+ forward_tool_results:
+ type: boolean
+ nullable: true
+ description: |-
+ Whether to forward the tool results to the model when available.
+ "true" => always forward
+ "false" => never forward
+ null => forward if applicable (default)
+
+ If a tool call is made, the tool's output will be used as the model's input.
+ If a tool call is not made, the model's output will be used as the next step's input.
+ default: null
+ allOf:
+ - type: object
+ properties:
+ kind_:
+ type: string
+ description: Discriminator property for BaseWorkflowStep.
+ discriminator:
+ propertyName: kind_
+ mapping: {}
+ Tasks.ReturnStep:
+ type: object
+ required:
+ - kind_
+ - return
+ properties:
+ kind_:
+ type: string
+ enum:
+ - return
+ default: return
+ readOnly: true
+ return:
+ type: object
+ additionalProperties:
+ $ref: '#/components/schemas/Common.PyExpression'
+ description: The value to return
+ allOf:
+ - type: object
+ required:
+ - kind_
+ properties:
+ kind_:
+ type: string
+ enum:
+ - return
+ description: The kind of step
+ readOnly: true
+ discriminator:
+ propertyName: kind_
+ mapping: {}
+ Tasks.SetStep:
+ type: object
+ required:
+ - kind_
+ - set
+ properties:
+ kind_:
+ type: string
+ enum:
+ - set
+ default: set
+ readOnly: true
+ set:
+ type: object
+ additionalProperties:
+ $ref: '#/components/schemas/Common.PyExpression'
+ description: The value to set
+ allOf:
+ - type: object
+ required:
+ - kind_
+ properties:
+ kind_:
+ type: string
+ enum:
+ - set
+ description: The kind of step
+ readOnly: true
+ discriminator:
+ propertyName: kind_
+ mapping: {}
+ Tasks.SleepFor:
+ type: object
+ required:
+ - seconds
+ - minutes
+ - hours
+ - days
+ properties:
+ seconds:
+ type: integer
+ format: uint16
+ minimum: 0
+ maximum: 60
+ description: The number of seconds to sleep for
+ default: 0
+ minutes:
+ type: integer
+ format: uint16
+ minimum: 0
+ maximum: 60
+ description: The number of minutes to sleep for
+ default: 0
+ hours:
+ type: integer
+ format: uint16
+ minimum: 0
+ maximum: 24
+ description: The number of hours to sleep for
+ default: 0
+ days:
+ type: integer
+ format: uint16
+ minimum: 0
+ maximum: 30
+ description: The number of days to sleep for
+ default: 0
+ Tasks.SleepStep:
+ type: object
+ required:
+ - kind_
+ - sleep
+ properties:
+ kind_:
+ type: string
+ enum:
+ - sleep
+ default: sleep
+ readOnly: true
+ sleep:
+ allOf:
+ - $ref: '#/components/schemas/Tasks.SleepFor'
+ description: The duration to sleep for (max 31 days)
+ allOf:
+ - type: object
+ required:
+ - kind_
+ properties:
+ kind_:
+ type: string
+ enum:
+ - sleep
+ description: The kind of step
+ readOnly: true
+ discriminator:
+ propertyName: kind_
+ mapping: {}
+ Tasks.SwitchStep:
+ type: object
+ required:
+ - kind_
+ - switch
+ properties:
+ kind_:
+ type: string
+ enum:
+ - switch
+ default: switch
+ readOnly: true
+ switch:
+ type: array
+ items:
+ $ref: '#/components/schemas/Tasks.CaseThen'
+ minItems: 1
+ description: The cond tree
+ allOf:
+ - type: object
+ required:
+ - kind_
+ properties:
+ kind_:
+ type: string
+ enum:
+ - switch
+ description: The kind of step
+ readOnly: true
+ discriminator:
+ propertyName: kind_
+ mapping: {}
+ Tasks.SwitchStepUpdateItem:
+ type: object
+ required:
+ - switch
+ properties:
+ switch:
+ type: array
+ items:
+ $ref: '#/components/schemas/Tasks.CaseThenUpdateItem'
+ minItems: 1
+ description: The cond tree
+ allOf:
+ - type: object
+ properties:
+ kind_:
+ type: string
+ description: Discriminator property for BaseWorkflowStep.
+ discriminator:
+ propertyName: kind_
+ mapping: {}
+ Tasks.Task:
+ type: object
+ required:
+ - name
+ - description
+ - main
+ - input_schema
+ - tools
+ - inherit_tools
+ - id
+ - created_at
+ - updated_at
+ properties:
+ name:
+ type: string
+ description:
+ type: string
+ default: ''
+ main:
+ type: array
+ items:
+ anyOf:
+ - $ref: '#/components/schemas/Tasks.EvaluateStep'
+ - $ref: '#/components/schemas/Tasks.ToolCallStep'
+ - $ref: '#/components/schemas/Tasks.PromptStep'
+ - $ref: '#/components/schemas/Tasks.GetStep'
+ - $ref: '#/components/schemas/Tasks.SetStep'
+ - $ref: '#/components/schemas/Tasks.LogStep'
+ - $ref: '#/components/schemas/Tasks.YieldStep'
+ - $ref: '#/components/schemas/Tasks.ReturnStep'
+ - $ref: '#/components/schemas/Tasks.SleepStep'
+ - $ref: '#/components/schemas/Tasks.ErrorWorkflowStep'
+ - $ref: '#/components/schemas/Tasks.WaitForInputStep'
+ - $ref: '#/components/schemas/Tasks.IfElseWorkflowStep'
+ - $ref: '#/components/schemas/Tasks.SwitchStep'
+ - $ref: '#/components/schemas/Tasks.ForeachStep'
+ - $ref: '#/components/schemas/Tasks.ParallelStep'
+ - type: object
+ required:
+ - kind_
+ - over
+ - map
+ properties:
+ kind_:
+ type: string
+ enum:
+ - map_reduce
+ default: map_reduce
+ readOnly: true
+ over:
+ allOf:
+ - $ref: '#/components/schemas/Common.PyExpression'
+ description: The variable to iterate over
+ map:
+ anyOf:
+ - $ref: '#/components/schemas/Tasks.EvaluateStep'
+ - $ref: '#/components/schemas/Tasks.ToolCallStep'
+ - $ref: '#/components/schemas/Tasks.PromptStep'
+ - $ref: '#/components/schemas/Tasks.GetStep'
+ - $ref: '#/components/schemas/Tasks.SetStep'
+ - $ref: '#/components/schemas/Tasks.LogStep'
+ - $ref: '#/components/schemas/Tasks.YieldStep'
+ description: The steps to run for each iteration
+ reduce:
+ allOf:
+ - $ref: '#/components/schemas/Common.PyExpression'
+ description: |-
+ The expression to reduce the results.
+ If not provided, the results are collected and returned as a list.
+ A special parameter named `results` is the accumulator and `_` is the current value.
+ initial:
+ description: The initial value of the reduce expression
+ default: []
+ parallelism:
+ type: integer
+ format: uint16
+ minimum: 1
+ maximum: 100
+ description: Whether to run the reduce expression in parallel and how many items to run in each batch
+ allOf:
+ - type: object
+ required:
+ - kind_
+ properties:
+ kind_:
+ type: string
+ enum:
+ - map_reduce
+ description: The kind of step
+ readOnly: true
+ discriminator:
+ propertyName: kind_
+ minItems: 1
+ description: The entrypoint of the task.
+ input_schema:
+ type: object
+ additionalProperties: {}
+ nullable: true
+ description: The schema for the input to the task. `null` means all inputs are valid.
+ default: null
+ tools:
+ type: array
+ items:
+ $ref: '#/components/schemas/Tasks.TaskTool'
+ description: Tools defined specifically for this task not included in the Agent itself.
+ default: []
+ inherit_tools:
+ type: boolean
+ description: Whether to inherit tools from the parent agent or not. Defaults to true.
+ default: true
+ id:
+ allOf:
+ - $ref: '#/components/schemas/Common.uuid'
+ readOnly: true
+ created_at:
+ type: string
+ format: date-time
+ description: When this resource was created as UTC date-time
+ readOnly: true
+ updated_at:
+ type: string
+ format: date-time
+ description: When this resource was updated as UTC date-time
+ readOnly: true
+ metadata:
+ type: object
+ additionalProperties: {}
+ additionalProperties:
+ type: array
+ items:
+ anyOf:
+ - $ref: '#/components/schemas/Tasks.EvaluateStep'
+ - $ref: '#/components/schemas/Tasks.ToolCallStep'
+ - $ref: '#/components/schemas/Tasks.PromptStep'
+ - $ref: '#/components/schemas/Tasks.GetStep'
+ - $ref: '#/components/schemas/Tasks.SetStep'
+ - $ref: '#/components/schemas/Tasks.LogStep'
+ - $ref: '#/components/schemas/Tasks.YieldStep'
+ - $ref: '#/components/schemas/Tasks.ReturnStep'
+ - $ref: '#/components/schemas/Tasks.SleepStep'
+ - $ref: '#/components/schemas/Tasks.ErrorWorkflowStep'
+ - $ref: '#/components/schemas/Tasks.WaitForInputStep'
+ - $ref: '#/components/schemas/Tasks.IfElseWorkflowStep'
+ - $ref: '#/components/schemas/Tasks.SwitchStep'
+ - $ref: '#/components/schemas/Tasks.ForeachStep'
+ - $ref: '#/components/schemas/Tasks.ParallelStep'
+ - type: object
+ required:
+ - kind_
+ - over
+ - map
+ properties:
+ kind_:
+ type: string
+ enum:
+ - map_reduce
+ default: map_reduce
+ readOnly: true
+ over:
+ allOf:
+ - $ref: '#/components/schemas/Common.PyExpression'
+ description: The variable to iterate over
+ map:
+ anyOf:
+ - $ref: '#/components/schemas/Tasks.EvaluateStep'
+ - $ref: '#/components/schemas/Tasks.ToolCallStep'
+ - $ref: '#/components/schemas/Tasks.PromptStep'
+ - $ref: '#/components/schemas/Tasks.GetStep'
+ - $ref: '#/components/schemas/Tasks.SetStep'
+ - $ref: '#/components/schemas/Tasks.LogStep'
+ - $ref: '#/components/schemas/Tasks.YieldStep'
+ description: The steps to run for each iteration
+ reduce:
+ allOf:
+ - $ref: '#/components/schemas/Common.PyExpression'
+ description: |-
+ The expression to reduce the results.
+ If not provided, the results are collected and returned as a list.
+ A special parameter named `results` is the accumulator and `_` is the current value.
+ initial:
+ description: The initial value of the reduce expression
+ default: []
+ parallelism:
+ type: integer
+ format: uint16
+ minimum: 1
+ maximum: 100
+ description: Whether to run the reduce expression in parallel and how many items to run in each batch
+ allOf:
+ - type: object
+ required:
+ - kind_
+ properties:
+ kind_:
+ type: string
+ enum:
+ - map_reduce
+ description: The kind of step
+ readOnly: true
+ discriminator:
+ propertyName: kind_
+ description: Object describing a Task
+ Tasks.TaskTool:
+ type: object
+ properties:
+ inherited:
+ type: boolean
+ description: 'Read-only: Whether the tool was inherited or not. Only applies within tasks.'
+ default: false
+ readOnly: true
+ allOf:
+ - $ref: '#/components/schemas/Tools.CreateToolRequest'
+ Tasks.ToolCallStep:
+ type: object
+ required:
+ - kind_
+ - tool
+ - arguments
+ properties:
+ kind_:
+ type: string
+ enum:
+ - tool_call
+ default: tool_call
+ readOnly: true
+ tool:
+ allOf:
+ - $ref: '#/components/schemas/Common.validPythonIdentifier'
+ description: The tool to run
+ arguments:
+ anyOf:
+ - type: object
+ additionalProperties:
+ anyOf:
+ - $ref: '#/components/schemas/Common.PyExpression'
+ - type: object
+ additionalProperties:
+ $ref: '#/components/schemas/Common.PyExpression'
+ - type: string
+ enum:
+ - _
+ description: The input parameters for the tool (defaults to last step output)
+ default: _
+ allOf:
+ - type: object
+ required:
+ - kind_
+ properties:
+ kind_:
+ type: string
+ enum:
+ - tool_call
+ description: The kind of step
+ readOnly: true
+ discriminator:
+ propertyName: kind_
+ mapping: {}
+ Tasks.ToolRef:
+ type: object
+ required:
+ - ref
+ properties:
+ ref:
+ anyOf:
+ - $ref: '#/components/schemas/Tasks.ToolRefById'
+ - $ref: '#/components/schemas/Tasks.ToolRefByName'
+ description: Reference to a tool
+ Tasks.ToolRefById:
+ type: object
+ properties:
+ id:
+ $ref: '#/components/schemas/Common.uuid'
+ description: Reference to a tool by id
+ Tasks.ToolRefByName:
+ type: object
+ properties:
+ name:
+ $ref: '#/components/schemas/Common.validPythonIdentifier'
+ description: Reference to a tool by name
+ Tasks.ToolRefUpdateItem:
+ type: object
+ description: Reference to a tool
+ Tasks.UpdateTaskRequest:
+ type: object
+ required:
+ - description
+ - main
+ - input_schema
+ - tools
+ - inherit_tools
+ properties:
+ description:
+ type: string
+ default: ''
+ main:
+ type: array
+ items:
+ anyOf:
+ - $ref: '#/components/schemas/Tasks.EvaluateStep'
+ - $ref: '#/components/schemas/Tasks.ToolCallStep'
+ - $ref: '#/components/schemas/Tasks.PromptStep'
+ - $ref: '#/components/schemas/Tasks.GetStep'
+ - $ref: '#/components/schemas/Tasks.SetStep'
+ - $ref: '#/components/schemas/Tasks.LogStep'
+ - $ref: '#/components/schemas/Tasks.YieldStep'
+ - $ref: '#/components/schemas/Tasks.ReturnStep'
+ - $ref: '#/components/schemas/Tasks.SleepStep'
+ - $ref: '#/components/schemas/Tasks.ErrorWorkflowStep'
+ - $ref: '#/components/schemas/Tasks.WaitForInputStep'
+ - $ref: '#/components/schemas/Tasks.IfElseWorkflowStep'
+ - $ref: '#/components/schemas/Tasks.SwitchStep'
+ - $ref: '#/components/schemas/Tasks.ForeachStep'
+ - $ref: '#/components/schemas/Tasks.ParallelStep'
+ - type: object
+ required:
+ - kind_
+ - over
+ - map
+ properties:
+ kind_:
+ type: string
+ enum:
+ - map_reduce
+ default: map_reduce
+ readOnly: true
+ over:
+ allOf:
+ - $ref: '#/components/schemas/Common.PyExpression'
+ description: The variable to iterate over
+ map:
+ anyOf:
+ - $ref: '#/components/schemas/Tasks.EvaluateStep'
+ - $ref: '#/components/schemas/Tasks.ToolCallStep'
+ - $ref: '#/components/schemas/Tasks.PromptStep'
+ - $ref: '#/components/schemas/Tasks.GetStep'
+ - $ref: '#/components/schemas/Tasks.SetStep'
+ - $ref: '#/components/schemas/Tasks.LogStep'
+ - $ref: '#/components/schemas/Tasks.YieldStep'
+ description: The steps to run for each iteration
+ reduce:
+ allOf:
+ - $ref: '#/components/schemas/Common.PyExpression'
+ description: |-
+ The expression to reduce the results.
+ If not provided, the results are collected and returned as a list.
+ A special parameter named `results` is the accumulator and `_` is the current value.
+ initial:
+ description: The initial value of the reduce expression
+ default: []
+ parallelism:
+ type: integer
+ format: uint16
+ minimum: 1
+ maximum: 100
+ description: Whether to run the reduce expression in parallel and how many items to run in each batch
+ allOf:
+ - type: object
+ required:
+ - kind_
+ properties:
+ kind_:
+ type: string
+ enum:
+ - map_reduce
+ description: The kind of step
+ readOnly: true
+ discriminator:
+ propertyName: kind_
+ minItems: 1
+ description: The entrypoint of the task.
+ input_schema:
+ type: object
+ additionalProperties: {}
+ nullable: true
+ description: The schema for the input to the task. `null` means all inputs are valid.
+ default: null
+ tools:
+ type: array
+ items:
+ $ref: '#/components/schemas/Tasks.TaskTool'
+ description: Tools defined specifically for this task not included in the Agent itself.
+ default: []
+ inherit_tools:
+ type: boolean
+ description: Whether to inherit tools from the parent agent or not. Defaults to true.
+ default: true
+ metadata:
+ type: object
+ additionalProperties: {}
+ additionalProperties:
+ type: array
+ items:
+ anyOf:
+ - $ref: '#/components/schemas/Tasks.EvaluateStep'
+ - $ref: '#/components/schemas/Tasks.ToolCallStep'
+ - $ref: '#/components/schemas/Tasks.PromptStep'
+ - $ref: '#/components/schemas/Tasks.GetStep'
+ - $ref: '#/components/schemas/Tasks.SetStep'
+ - $ref: '#/components/schemas/Tasks.LogStep'
+ - $ref: '#/components/schemas/Tasks.YieldStep'
+ - $ref: '#/components/schemas/Tasks.ReturnStep'
+ - $ref: '#/components/schemas/Tasks.SleepStep'
+ - $ref: '#/components/schemas/Tasks.ErrorWorkflowStep'
+ - $ref: '#/components/schemas/Tasks.WaitForInputStep'
+ - $ref: '#/components/schemas/Tasks.IfElseWorkflowStep'
+ - $ref: '#/components/schemas/Tasks.SwitchStep'
+ - $ref: '#/components/schemas/Tasks.ForeachStep'
+ - $ref: '#/components/schemas/Tasks.ParallelStep'
+ - type: object
+ required:
+ - kind_
+ - over
+ - map
+ properties:
+ kind_:
+ type: string
+ enum:
+ - map_reduce
+ default: map_reduce
+ readOnly: true
+ over:
+ allOf:
+ - $ref: '#/components/schemas/Common.PyExpression'
+ description: The variable to iterate over
+ map:
+ anyOf:
+ - $ref: '#/components/schemas/Tasks.EvaluateStep'
+ - $ref: '#/components/schemas/Tasks.ToolCallStep'
+ - $ref: '#/components/schemas/Tasks.PromptStep'
+ - $ref: '#/components/schemas/Tasks.GetStep'
+ - $ref: '#/components/schemas/Tasks.SetStep'
+ - $ref: '#/components/schemas/Tasks.LogStep'
+ - $ref: '#/components/schemas/Tasks.YieldStep'
+ description: The steps to run for each iteration
+ reduce:
+ allOf:
+ - $ref: '#/components/schemas/Common.PyExpression'
+ description: |-
+ The expression to reduce the results.
+ If not provided, the results are collected and returned as a list.
+ A special parameter named `results` is the accumulator and `_` is the current value.
+ initial:
+ description: The initial value of the reduce expression
+ default: []
+ parallelism:
+ type: integer
+ format: uint16
+ minimum: 1
+ maximum: 100
+ description: Whether to run the reduce expression in parallel and how many items to run in each batch
+ allOf:
+ - type: object
+ required:
+ - kind_
+ properties:
+ kind_:
+ type: string
+ enum:
+ - map_reduce
+ description: The kind of step
+ readOnly: true
+ discriminator:
+ propertyName: kind_
+ description: Payload for updating a task
+ Tasks.WaitForInputInfo:
+ type: object
+ required:
+ - info
+ properties:
+ info:
+ type: object
+ additionalProperties:
+ $ref: '#/components/schemas/Common.PyExpression'
+ description: Any additional info or data
+ Tasks.WaitForInputStep:
+ type: object
+ required:
+ - kind_
+ - wait_for_input
+ properties:
+ kind_:
+ type: string
+ enum:
+ - wait_for_input
+ default: wait_for_input
+ readOnly: true
+ wait_for_input:
+ allOf:
+ - $ref: '#/components/schemas/Tasks.WaitForInputInfo'
+ description: Any additional info or data
+ allOf:
+ - type: object
+ required:
+ - kind_
+ properties:
+ kind_:
+ type: string
+ enum:
+ - wait_for_input
+ description: The kind of step
+ readOnly: true
+ discriminator:
+ propertyName: kind_
+ mapping: {}
+ Tasks.YieldStep:
+ type: object
+ required:
+ - kind_
+ - workflow
+ - arguments
+ properties:
+ kind_:
+ type: string
+ enum:
+ - yield
+ default: yield
+ readOnly: true
+ workflow:
+ type: string
+ description: |-
+ The subworkflow to run.
+ VALIDATION: Should resolve to a defined subworkflow.
+ arguments:
+ anyOf:
+ - type: object
+ additionalProperties:
+ $ref: '#/components/schemas/Common.PyExpression'
+ - type: string
+ enum:
+ - _
+ description: The input parameters for the subworkflow (defaults to last step output)
+ default: _
+ allOf:
+ - type: object
+ required:
+ - kind_
+ properties:
+ kind_:
+ type: string
+ enum:
+ - yield
+ description: The kind of step
+ readOnly: true
+ discriminator:
+ propertyName: kind_
+ mapping: {}
+ Tools.ApiCallDef:
+ type: object
+ required:
+ - method
+ - url
+ properties:
+ method:
+ type: string
+ enum:
+ - GET
+ - POST
+ - PUT
+ - DELETE
+ - PATCH
+ - HEAD
+ - OPTIONS
+ - CONNECT
+ - TRACE
+ description: The HTTP method to use
+ url:
+ type: string
+ format: uri
+ description: The URL to call
+ headers:
+ type: object
+ additionalProperties:
+ type: string
+ description: The headers to send with the request
+ content:
+ type: string
+ description: The content as base64 to send with the request
+ data:
+ type: object
+ additionalProperties: {}
+ description: The data to send as form data
+ json:
+ type: object
+ additionalProperties: {}
+ description: JSON body to send with the request
+ cookies:
+ type: object
+ additionalProperties:
+ type: string
+ description: Cookies
+ params:
+ anyOf:
+ - type: string
+ - type: object
+ additionalProperties: {}
+ description: The parameters to send with the request
+ follow_redirects:
+ type: boolean
+ description: Follow redirects
+ timeout:
+ type: integer
+ format: uint8
+ description: The timeout for the request
+ description: API call definition
+ Tools.ApiCallDefUpdate:
+ type: object
+ properties:
+ method:
+ type: string
+ enum:
+ - GET
+ - POST
+ - PUT
+ - DELETE
+ - PATCH
+ - HEAD
+ - OPTIONS
+ - CONNECT
+ - TRACE
+ description: The HTTP method to use
+ url:
+ type: string
+ format: uri
+ description: The URL to call
+ headers:
+ type: object
+ additionalProperties:
+ type: string
+ description: The headers to send with the request
+ content:
+ type: string
+ description: The content as base64 to send with the request
+ data:
+ type: object
+ additionalProperties: {}
+ description: The data to send as form data
+ json:
+ type: object
+ additionalProperties: {}
+ description: JSON body to send with the request
+ cookies:
+ type: object
+ additionalProperties:
+ type: string
+ description: Cookies
+ params:
+ anyOf:
+ - type: string
+ - type: object
+ additionalProperties: {}
+ description: The parameters to send with the request
+ follow_redirects:
+ type: boolean
+ description: Follow redirects
+ timeout:
+ type: integer
+ format: uint8
+ description: The timeout for the request
+ description: API call definition
+ Tools.ChosenFunctionCall:
+ type: object
+ required:
+ - type
+ - function
+ properties:
+ type:
+ type: string
+ enum:
+ - function
+ function:
+ allOf:
+ - $ref: '#/components/schemas/Tools.FunctionCallOption'
+ description: The function to call
+ allOf:
+ - $ref: '#/components/schemas/Tools.ChosenToolCall'
+ Tools.ChosenToolCall:
+ type: object
+ required:
+ - type
+ - id
+ properties:
+ type:
+ allOf:
+ - $ref: '#/components/schemas/Tools.ToolType'
+ description: Whether this tool is a `function`, `api_call`, `system` etc. (Only `function` tool supported right now)
+ function:
+ $ref: '#/components/schemas/Tools.FunctionCallOption'
+ id:
+ allOf:
+ - $ref: '#/components/schemas/Common.uuid'
+ readOnly: true
+ discriminator:
+ propertyName: type
+ mapping:
+ function: '#/components/schemas/Tools.ChosenFunctionCall'
+ description: The response tool value generated by the model
+ Tools.CreateToolRequest:
+ type: object
+ required:
+ - name
+ properties:
+ name:
+ allOf:
+ - $ref: '#/components/schemas/Common.validPythonIdentifier'
+ description: Name of the tool (must be unique for this agent and a valid python identifier string )
+ description:
+ type: string
+ description: Description of the tool
+ function:
+ allOf:
+ - $ref: '#/components/schemas/Tools.FunctionDef'
+ description: The function to call
+ integration:
+ allOf:
+ - $ref: '#/components/schemas/Tools.IntegrationDef'
+ description: The integration to call
+ system:
+ allOf:
+ - $ref: '#/components/schemas/Tools.SystemDef'
+ description: The system to call
+ api_call:
+ allOf:
+ - $ref: '#/components/schemas/Tools.ApiCallDef'
+ description: The API call to make
+ description: Payload for creating a tool
+ Tools.FunctionCallOption:
+ type: object
+ required:
+ - name
+ properties:
+ name:
+ type: string
+ description: The name of the function
+ Tools.FunctionDef:
+ type: object
+ properties:
+ name:
+ nullable: true
+ description: 'DO NOT USE: This will be overriden by the tool name. Here only for compatibility reasons.'
+ default: null
+ description:
+ nullable: true
+ description: 'DO NOT USE: This will be overriden by the tool description. Here only for compatibility reasons.'
+ default: null
+ parameters:
+ type: object
+ additionalProperties: {}
+ description: The parameters the function accepts
+ description: Function definition
+ Tools.IntegrationDef:
+ type: object
+ required:
+ - provider
+ properties:
+ provider:
+ anyOf:
+ - type: string
+ enum:
+ - dummy
+ - hacker_news
+ - weather
+ - wikipedia
+ - spider
+ - brave
+ - browserbase
+ - email
+ - type: string
+ description: The provider of the integration
+ method:
+ type: string
+ description: The specific method of the integration to call
+ setup:
+ type: object
+ additionalProperties: {}
+ description: The setup parameters the integration accepts
+ arguments:
+ type: object
+ additionalProperties: {}
+ description: The arguments to pre-apply to the integration call
+ description: Integration definition
+ Tools.IntegrationDefUpdate:
+ type: object
+ properties:
+ provider:
+ anyOf:
+ - type: string
+ enum:
+ - dummy
+ - hacker_news
+ - weather
+ - wikipedia
+ - spider
+ - brave
+ - browserbase
+ - email
+ - type: string
+ description: The provider of the integration
+ method:
+ type: string
+ description: The specific method of the integration to call
+ setup:
+ type: object
+ additionalProperties: {}
+ description: The setup parameters the integration accepts
+ arguments:
+ type: object
+ additionalProperties: {}
+ description: The arguments to pre-apply to the integration call
+ description: Integration definition
+ Tools.NamedToolChoice:
+ type: object
+ properties:
+ function:
+ $ref: '#/components/schemas/Tools.FunctionCallOption'
+ Tools.PatchToolRequest:
+ type: object
+ properties:
+ name:
+ allOf:
+ - $ref: '#/components/schemas/Common.validPythonIdentifier'
+ description: Name of the tool (must be unique for this agent and a valid python identifier string )
+ description:
+ type: string
+ description: Description of the tool
+ function:
+ allOf:
+ - $ref: '#/components/schemas/Tools.FunctionDef'
+ description: The function to call
+ integration:
+ allOf:
+ - $ref: '#/components/schemas/Tools.IntegrationDefUpdate'
+ description: The integration to call
+ system:
+ allOf:
+ - $ref: '#/components/schemas/Tools.SystemDefUpdate'
+ description: The system to call
+ api_call:
+ allOf:
+ - $ref: '#/components/schemas/Tools.ApiCallDefUpdate'
+ description: The API call to make
+ description: Payload for patching a tool
+ Tools.SystemDef:
+ type: object
+ required:
+ - resource
+ - operation
+ properties:
+ resource:
+ type: string
+ enum:
+ - agent
+ - user
+ - task
+ - execution
+ - doc
+ - session
+ - job
+ description: Resource is the name of the resource to use
+ operation:
+ type: string
+ enum:
+ - create
+ - update
+ - patch
+ - create_or_update
+ - embed
+ - change_status
+ - search
+ - chat
+ - history
+ - delete
+ - get
+ - list
+ description: Operation is the name of the operation to perform
+ resource_id:
+ allOf:
+ - $ref: '#/components/schemas/Common.uuid'
+ description: Resource id (if applicable)
+ subresource:
+ type: string
+ enum:
+ - tool
+ - doc
+ - execution
+ - transition
+ description: Sub-resource type (if applicable)
+ arguments:
+ type: object
+ additionalProperties: {}
+ description: The arguments to pre-apply to the system call
+ description: System definition
+ Tools.SystemDefUpdate:
+ type: object
+ properties:
+ resource:
+ type: string
+ enum:
+ - agent
+ - user
+ - task
+ - execution
+ - doc
+ - session
+ - job
+ description: Resource is the name of the resource to use
+ operation:
+ type: string
+ enum:
+ - create
+ - update
+ - patch
+ - create_or_update
+ - embed
+ - change_status
+ - search
+ - chat
+ - history
+ - delete
+ - get
+ - list
+ description: Operation is the name of the operation to perform
+ resource_id:
+ allOf:
+ - $ref: '#/components/schemas/Common.uuid'
+ description: Resource id (if applicable)
+ subresource:
+ type: string
+ enum:
+ - tool
+ - doc
+ - execution
+ - transition
+ description: Sub-resource type (if applicable)
+ arguments:
+ type: object
+ additionalProperties: {}
+ description: The arguments to pre-apply to the system call
+ description: System definition
+ Tools.Tool:
+ type: object
+ required:
+ - name
+ - created_at
+ - updated_at
+ - id
+ properties:
+ name:
+ allOf:
+ - $ref: '#/components/schemas/Common.validPythonIdentifier'
+ description: Name of the tool (must be unique for this agent and a valid python identifier string )
+ description:
+ type: string
+ description: Description of the tool
+ function:
+ allOf:
+ - $ref: '#/components/schemas/Tools.FunctionDef'
+ description: The function to call
+ integration:
+ allOf:
+ - $ref: '#/components/schemas/Tools.IntegrationDef'
+ description: The integration to call
+ system:
+ allOf:
+ - $ref: '#/components/schemas/Tools.SystemDef'
+ description: The system to call
+ api_call:
+ allOf:
+ - $ref: '#/components/schemas/Tools.ApiCallDef'
+ description: The API call to make
+ created_at:
+ type: string
+ format: date-time
+ description: When this resource was created as UTC date-time
+ readOnly: true
+ updated_at:
+ type: string
+ format: date-time
+ description: When this resource was updated as UTC date-time
+ readOnly: true
+ id:
+ allOf:
+ - $ref: '#/components/schemas/Common.uuid'
+ readOnly: true
+ Tools.ToolResponse:
+ type: object
+ required:
+ - id
+ - output
+ properties:
+ id:
+ $ref: '#/components/schemas/Common.uuid'
+ output:
+ type: object
+ additionalProperties: {}
+ description: The output of the tool
+ Tools.ToolType:
+ type: string
+ enum:
+ - function
+ - integration
+ - system
+ - api_call
+ Tools.UpdateToolRequest:
+ type: object
+ required:
+ - name
+ properties:
+ name:
+ allOf:
+ - $ref: '#/components/schemas/Common.validPythonIdentifier'
+ description: Name of the tool (must be unique for this agent and a valid python identifier string )
+ description:
+ type: string
+ description: Description of the tool
+ function:
+ allOf:
+ - $ref: '#/components/schemas/Tools.FunctionDef'
+ description: The function to call
+ integration:
+ allOf:
+ - $ref: '#/components/schemas/Tools.IntegrationDef'
+ description: The integration to call
+ system:
+ allOf:
+ - $ref: '#/components/schemas/Tools.SystemDef'
+ description: The system to call
+ api_call:
+ allOf:
+ - $ref: '#/components/schemas/Tools.ApiCallDef'
+ description: The API call to make
+ description: Payload for updating a tool
+ Users.CreateOrUpdateUserRequest:
+ type: object
+ required:
+ - id
+ properties:
+ id:
+ $ref: '#/components/schemas/Common.uuid'
+ allOf:
+ - $ref: '#/components/schemas/Users.CreateUserRequest'
+ Users.CreateUserRequest:
+ type: object
+ required:
+ - name
+ - about
+ properties:
+ metadata:
+ type: object
+ additionalProperties: {}
+ name:
+ allOf:
+ - $ref: '#/components/schemas/Common.identifierSafeUnicode'
+ description: Name of the user
+ default: ''
+ about:
+ type: string
+ description: About the user
+ default: ''
+ description: Payload for creating a user (and associated documents)
+ Users.PatchUserRequest:
+ type: object
+ properties:
+ metadata:
+ type: object
+ additionalProperties: {}
+ name:
+ allOf:
+ - $ref: '#/components/schemas/Common.identifierSafeUnicode'
+ description: Name of the user
+ default: ''
+ about:
+ type: string
+ description: About the user
+ default: ''
+ description: Payload for patching a user
+ Users.UpdateUserRequest:
+ type: object
+ required:
+ - name
+ - about
+ properties:
+ metadata:
+ type: object
+ additionalProperties: {}
+ name:
+ allOf:
+ - $ref: '#/components/schemas/Common.identifierSafeUnicode'
+ description: Name of the user
+ default: ''
+ about:
+ type: string
+ description: About the user
+ default: ''
+ description: Payload for updating a user
+ Users.User:
+ type: object
+ required:
+ - id
+ - created_at
+ - updated_at
+ - name
+ - about
+ properties:
+ id:
+ allOf:
+ - $ref: '#/components/schemas/Common.uuid'
+ readOnly: true
+ metadata:
+ type: object
+ additionalProperties: {}
+ created_at:
+ type: string
+ format: date-time
+ description: When this resource was created as UTC date-time
+ readOnly: true
+ updated_at:
+ type: string
+ format: date-time
+ description: When this resource was updated as UTC date-time
+ readOnly: true
+ name:
+ allOf:
+ - $ref: '#/components/schemas/Common.identifierSafeUnicode'
+ description: Name of the user
+ default: ''
+ about:
+ type: string
+ description: About the user
+ default: ''
+ securitySchemes:
+ ApiKeyAuth:
+ type: apiKey
+ in: header
+ name: Authorization
+ ApiKeyAuth_:
+ type: apiKey
+ in: header
+ name: X-Auth-Key
+servers:
+ - url: https://{serverEnv}.julep.ai/api
+ description: The julep cloud service endpoint
+ variables:
+ serverEnv:
+ default: api-alpha
+ description: The environment to use
+ enum:
+ - api
+ - api-alpha
diff --git a/typespec/tspconfig.yaml b/typespec/tspconfig.yaml
index c5b3491f6..7bd4e8d1e 100644
--- a/typespec/tspconfig.yaml
+++ b/typespec/tspconfig.yaml
@@ -6,4 +6,4 @@ options:
file-type: yaml
output-file: "openapi-{version}.yaml"
new-line: lf
- # omit-unreachable-types: true
+ omit-unreachable-types: true
diff --git a/typespec/versions.tsp b/typespec/versions.tsp
index 590e07a59..4739bbdf2 100644
--- a/typespec/versions.tsp
+++ b/typespec/versions.tsp
@@ -2,4 +2,5 @@ namespace Versions;
enum ApiVersions {
v0_4: "0.4.0",
+ v1_0: "1.0.0",
}
diff --git a/v0.3_README-CN.md b/v0.3_README-CN.md
deleted file mode 100644
index 2c88ad382..000000000
--- a/v0.3_README-CN.md
+++ /dev/null
@@ -1,230 +0,0 @@
-[English](/) | 中文翻译
-
-
-
----
-## Why Julep?
-We've built a lot of AI apps and understand how difficult it is to evaluate hundreds of tools, techniques, and models, and then make them work well together.
-
-**The Problems**
-1. The barrier to making LLM apps with memory, knowledge & tools is too high.
-2. Agentic behaviour is hard to control when done through multi-agent frameworks.
-
----
-## Features
-- **Statefulness By Design**: Manages conversation history by default. Use simple flags; `remember` & `recall` to tune whether to save or retrieve conversation history.
-- **Support for Users & Agents**: Allows creating different user <-> agent interactions like `One Agent <-> Many Users`; `Many Agents <-> One User` etc. [Read more,](https://docs.julep.ai/concepts/).
-- **Built-in RAG**: Add, delete & update documents to give the LLM context about the user or an agent depending on your use case. [Read more here.](https://docs.julep.ai/guides/build-a-retrieval-augmented-generation-rag-agent)
-- **90+ tools built-in**: Connect your AI app to 90+ third-party applications using [Composio](https://docs.composio.dev/framework/julep/) natively. `toolset.handle_tool_calls(julep_client, session.id, response)` will call and handle your tools for you! [See example](https://docs.julep.ai/guides/use-julep-with-composio)
-- **Local-first**: Julep comes ready to be deployed to production using Docker Compose. Support for k8s coming soon!
-- **Switch LLMs on the fly**: Update the Agent to switch between LLMs from OpenAI, Anthropic or Ollama. All the while preserving state.
-- ***Assign Tasks to Agents**: Define agentic workflows to be executed asynchronously with one ore more without worrying about timeouts or multiplying hallucinations. [Work in progress](https://github.com/julep-ai/julep/discussions/387)
-
-> (*) Coming soon!
-
----
-## Guides
-You can view the different features of Julep in action in the [guide docs](https://docs.julep.ai/guides/).
-1. [Simple Conversational Bot](https://deepnote.com/app/julep-ai-761c/Julep-Mixers-4dfff09a-84f2-4278-baa3-d1a00b88ba26)
-2. [Search Agent](https://docs.julep.ai/guides/)
-3. [RAG Agent](https://docs.julep.ai/guides/build-a-retrieval-augmented-generation-rag-agent)
-5. [GitHub Agent with Composio](https://docs.julep.ai/guides/use-julep-with-composio)
-5. [GPT 4o for Vision](https://docs.julep.ai/guides/image-+-text-with-gpt-4o)
----
-
-## Quickstart
-### Option 1: Use the Julep Cloud
-Our hosted platform is in Beta!
-
-To get access:
-- Head over to https://platform.julep.ai
-- Generate and add your `JULEP_API_KEY` in `.env`
-
-### Option 2: Install and run Julep locally
-Head over to docs on [self-hosting](https://docs.julep.ai/guides/self-hosting) to see how to run Julep locally!
-### Installation
-
-```
-pip install julep
-```
-### Setting up the `client`
-
-```py
-from julep import Client
-from pprint import pprint
-import textwrap
-import os
-
-base_url = os.environ.get("JULEP_API_URL")
-api_key = os.environ.get("JULEP_API_KEY")
-
-client = Client(api_key=api_key, base_url=base_url)
-```
-
-### Create an agent
-Agent is the object to which LLM settings like model, temperature along with tools are scoped to.
-```py
-agent = client.agents.create(
- name="Jessica"
- model="gpt-4",
- tools=[] # Tools defined here
-)
-```
-
-### Create a user
-User is the object which represents the user of the application.
-
-Memories are formed and saved for each user and many users can talk to one agent.
-```py
-user = client.users.create(
- name="Anon",
- about="Average nerdy techbro/girl spending 8 hours a day on a laptop,
-)
-```
-
-### Create a session
-A "user" and an "agent" communicate in a "session". System prompt goes here.
-Conversation history and summary are stored in a "session" which saves the conversation history.
-
-The session paradigm allows for; many users to interact with one agent and allow separation of conversation history and memories.
-
-```py
-situation_prompt = """You are Jessica. You're a stuck up Cali teenager.
-You basically complain about everything. You live in Bel-Air, Los Angeles and drag yourself to Curtis High School when you must.
-"""
-session = client.sessions.create(
- user_id=user.id, agent_id=agent.id, situation=situation_prompt
-)
-```
-
-### Start a stateful conversation
-`session.chat` controls the communication between the "agent" and the "user".
-
-It has two important arguments;
-- `recall`: Retrieves the previous conversations and memories.
-- `remember`: Saves the current conversation turn into the memory store.
-
-To keep the session stateful, both need to be `True`
-
-```py
-user_msg = "hey. what do u think of starbucks"
-response = client.sessions.chat(
- session_id=session.id,
- messages=[
- {
- "role": "user",
- "content": user_msg,
- "name": "Anon",
- }
- ],
- recall=True,
- remember=True,
-)
-
-print("\n".join(textwrap.wrap(response.response[0][0].content, width=100)))
-```
----
-
-## API and SDKs
-To use the API directly or to take a look at request & response formats, authentication, available endpoints and more, please refer to the [API Documentation](https://docs.julep.ai/api-reference/agents-api/agents-api)
-
-You can also use the [Postman Collection](https://god.gw.postman.com/run-collection/33213061-a0a1e3a9-9681-44ae-a5c2-703912b32336?action=collection%2Ffork&source=rip_markdown&collection-url=entityId%3D33213061-a0a1e3a9-9681-44ae-a5c2-703912b32336%26entityType%3Dcollection%26workspaceId%3D183380b4-f2ac-44ef-b018-1f65dfc8256b) for reference.
-
-### Python SDK
-
-To install the Python SDK, run:
-
-```bash
-pip install julep
-```
-For more information on using the Python SDK, please refer to the [Python SDK documentation](https://docs.julep.ai/api-reference/python-sdk-docs).
-
-
-### TypeScript SDK
-To install the TypeScript SDK using `npm`, run:
-
-```bash
-npm install @julep/sdk
-```
-
-For more information on using the TypeScript SDK, please refer to the [TypeScript SDK documentation](https://docs.julep.ai/api-reference/js-sdk-docs).
-
----
-
-## Deployment
-Check out the [self-hosting guide](https://docs.julep.ai/agents/self-hosting) to host the platform yourself.
-
-If you want to deploy Julep to production, [let's hop on a call](https://cal.com/ishitaj/15min)!
-
-We'll help you customise the platform and help you get set up with:
-- Multi-tenancy
-- Reverse proxy along with authentication and authorisation
-- Self-hosted LLMs
-- & more
-
----
-## Contributing
-We welcome contributions from the community to help improve and expand the Julep AI platform. See [CONTRIBUTING.md](CONTRIBUTING.md)
-
----
-## License
-Julep AI is released under the Apache 2.0 License. By using, contributing to, or distributing the Julep AI platform, you agree to the terms and conditions of this license.
-
----
-## Contact and Support
-If you have any questions, need assistance, or want to get in touch with the Julep AI team, please use the following channels:
-
-- [Discord](https://discord.com/invite/JTSBGRZrzj): Join our community forum to discuss ideas, ask questions, and get help from other Julep AI users and the development team.
-- GitHub Issues: For technical issues, bug reports, and feature requests, please open an issue on the Julep AI GitHub repository.
-- Email Support: If you need direct assistance from our support team, send an email to hey@julep.ai, and we'll get back to you as soon as possible.
-- Follow for updates on [X](https://twitter.com/julep_ai) & [LinkedIn](https://www.linkedin.com/company/julep-ai/)
-- [Hop on a call](https://cal.com/ishitaj/15min): We wanna know what you're building and how we can tweak and tune Julep to help you build your next AI app.