## 0.7.9 ### Features - Add `channel` field to `Escalation` model to allow channel overrides during escalation - Escalations can now specify a different contact channel than the original request ## 0.7.8 ### Changes - Rename `humanlayer` package in npm to `@humanlayer/sdk` - if you are using the humanlayer sdk, you should change your package.json to use the new package. ## 0.7.7 ### Fixes - Add `additional_recipients` field to `EmailContactChannel` in TypeScript SDK - No Python SDK changes, this field was already supported in the Python SDK and the upstream API ## 0.7.6 ### Features - Add `thread_ts` support for `SlackContactChannel` to enable sending messages in threads - Add `slack_message_ts` to `FunctionCallStatus` for tracking slack message timestamps - Export v1beta2 webhook types from typescript package root for better developer experience ### Examples - Add langchain example demonstrating Slack thread creation and management - Update typescript examples with email escalation patterns ### Documentation - Update examples to latest version and dependency management ## 0.7.5 ### Features - Add `additional_recipients` to `EmailContactChannel` to enable `to`, `cc`, `bcc` email recipients - Add `escalate_email` methods for Function Call and Human Contact objects, allowing for followup/escalation emails to be sent with additional recipients ### Documentation - Add [quickstart guide for using the humanlayer typescript sdk](https://humanlayer.dev/docs/quickstart-typescript) - Add [guide for using Function Calls for Classification](https://humanlayer.dev/docs/core/classifications) with human-in-the-loop - Add [framework guide for using humanlayer with chainlit](https://humanlayer.dev/docs/frameworks/chainlit) - Add [framework guide for using humanlayer with the vercel ai sdk](https://humanlayer.dev/docs/frameworks/vercel-ai-sdk) - Update [humanlayer-ts readme](https://github.com/humanlayer/humanlayer-ts) to include quickstart guide ### Examples - Add [example of a fullstack chat app with nextjs and the vercel ai sdk](https://github.com/humanlayer/humanlayer/tree/main/examples/vercel_ai_nextjs) - Simplify the [chainlit example](https://github.com/humanlayer/humanlayer/tree/main/examples/chainlit) by using `AsyncHumanLayer` - Update [langchain email example](https://github.com/humanlayer/humanlayer/tree/main/examples/langchain/09-email-contact.py) to showcase the use of custom jinja templates for email payloads ## 0.7.4 - Add [v1beta2 webhook payload](https://humanlayer.dev/docs/core/response-webhooks) types to ts and python sdks - Add `spec.channel.email.template` to all operation types, allowing [custom jinja templates for email payloads](https://humanlayer.dev/docs/channels/email#custom-email-templates) ## 0.7.3 This was an internal release with build/release process changes, but no user-facing changes. ## 0.7.2 - Deprecated This was an internal release with no user-facing changes. It did introduce a small issue, so please upgrade to 0.7.3. ## 0.7.1 ### Features - Support for `interactive: bool` on ReponseOption - setting to false will cause prompts to be written in by default - BREAKING - if you are using prompt_fill on ReponseOption, and want to give users the option to edit prompt, you will need to add interactive=True ```python # before @hl.require_approval( # reject options lets you show custom pre-filled rejection prompts to the human reject_options=[ ResponseOption( name="reject", description="Reject the message", prompt_fill="try again but this time ", ), # ... ``` ```diff # after @hl.require_approval( # reject options lets you show custom pre-filled rejection prompts to the human reject_options=[ ResponseOption( name="reject", description="Reject the message", prompt_fill="try again but this time ", + interactive=True ), # ... ``` - API now returns `HumanContactStatus.response_option_name` and `FunctionCallStatus.reject_option_name` on objects for consuming human classification/steering reponses with deterministic (non-llm) code ### Updates - Changed default http client timeout to 30s in python clients ### Examples - Added ts_email_classifier example in [./examples/ts_email_classifier](./examples/ts_email_classifier) - Added in-depth examples docs in [./examples/README.md](./examples/README.md) ## 0.7.0 - AsyncHumanLayer.human_as_tool() is no longer async (but the tool it returns still is) - simplifies syntax to `await hl.human_as_tool()(message="lorem ipsum")` instead of `await (await hl.human_as_tool())(message="lorem ipsum")` - remove all approval_method logic for AsyncHumanLayer - only `backend` usage is supported. Use a sync HumanLayer if you want to use the cli or toggle between backend/cli methods - BREAKING - remove AsyncHumanLayer.cloud() - BREAKING - reduce ways to configure approval method by remoing env var for HUMANLAYER_APPROVAL_METHOD ## 0.6.5 ### Features - Added state preservation support to FunctionCallSpec and HumanContactSpec for maintaining context across request lifecycles ([docs](https://humanlayer.dev/docs/core/state-management)) ([example](https://github.com/humanlayer/humanlayer/blob/main/examples/fastapi-email/app-statehooks.py)) ### Enhancements - Moved to `uv` for project management (examples still encourage throwaway envs with `pip` / `requirements.txt`) - Updated CI/CD pipeline to use uv instead of poetry - Improved PR template with clearer sections and guidance - Updated all example dependencies to use v0.6.5 ## 0.6.4 ### Features - Add support for required slack responders, restricting who can respond to a slack message. See https://humanlayer.dev/docs/channels/slack for more detail ## 0.6.3 ### Features - Added async support for HumanLayer python SDK with `AsyncHumanLayer` class ([example](https://github.com/humanlayer/humanlayer/tree/main/examples/fastapi)) - Added FastAPI example demonstrating webhooks and async usage ([example](https://github.com/humanlayer/humanlayer/tree/main/examples/fastapi-webhooks)) ### Documentation - Improved webhook documentation and added concrete examples ## 0.6.2 ### Features - Added beta support for agent webhooks to launch agents in response to emails ([docs](https://humanlayer.dev/docs/core/agent-webhooks)) - support for slack inbound coming soon! ### Enhancements - Added support for non-experimental email threading fields: - `subject` replaces `experimental_subject_line` - `references_message_id` replaces `experimental_references_message_id` - `in_reply_to_message_id` replaces `experimental_in_reply_to_message_id` - Old fields remain supported for backwards compatibility - Added convienience method `EmailContactChannel.in_reply_to` for easily creating an email contact channel that is in reply to another email - Improved handling of `human_as_tool.__name__` generation to exclude more special characters ### Documentation - Enhanced Slack channel documentation with setup instructions and ID lookup tips - Improved email channel documentation with clearer threading examples - Added Ruby and cURL examples for API reference - Updated documentation navigation and cross-linking - Added webhook documentation clarifications ### Branding - Updated logo and documentation assets - Updated documentation links and social references ## 0.6.1 ### Features - Added initial Mintlify documentation structure - Added API reference documentation for function calls and classifications - Added smoke test target for faster example testing - Added email threading support ([docs](https://humanlayer.dev/docs/channels/email)) with: - `experimental_subject_line` - `experimental_references_message_id` - `experimental_in_reply_to_message_id` ### Documentation - Updated documentation links to point to humanlayer.dev - Added Docker configuration for local documentation development ## 0.6.0 ### Features - Added email channel support with subject line customization and threading capabilities ([docs](https://humanlayer.dev/docs/channels/email)) - Added new examples demonstrating email channel usage: - Email channel with Linear ticket creation ([example](https://github.com/humanlayer/humanlayer/tree/main/examples/langchain/08-email-channel.py)) - Email contact handling with threading ([example](https://github.com/humanlayer/humanlayer/tree/main/examples/langchain/09-email-contact.py)) - Updated TypeScript definitions for email channel models - Updated all example dependencies to latest versions ## 0.5.11 Initial prep for email feature, use 0.6.0 instead ## 0.5.10 ### Enhancements - Add support for client-side usage of `respond` methods for responding to function calls / human contacts. This enables building custom approval UX in your web app / client of choice. - Added some contrived examples for client-side approvals in [TS](https://github.com/humanlayer/humanlayer/blob/main/examples/ts_openai_client/04-agent-side-approvals.ts#L99-L103) and [PY](https://github.com/humanlayer/humanlayer/blob/main/examples/openai_client/04-agent-side-approvals.py#L118) ## 0.5.9 ### Fixes - Ensure HumanLayer cloud errors are correctly forwarded into thrown execeptions ### Cloud - Switched from subscriptions to more flexible credits-based usage model ## 0.5.8 ### Features Functionality to enable lower-level control over approval and human interaction. We had requests from users for more control over these processes compared to higher-order-function approaches. - Add lower-level `fetch_approval`, `create_function_call`, `get_function_call` methods to `HumanLayer` - Add lower-level `fetch_human_response`, `create_human_contact`, `get_human_contact` methods to `HumanLayer` Examples: - [imperative_fetch](examples/openai_client/02-imperative_fetch.py) - [for the especially based](examples/openai_client/03-imperative_fetch_based.py) ### Enhancements - Improved Makefile harness for running/testing examples with prerelease version or local API instances - Updated examples to use `run_id` to identify agents in slack and in approval history - Support for python 3.10 - please let us know if you hit any issues with 3.10! ## 0.5.7 - Support for GripTape Custom Tools ## 0.5.6 - Support for `reject_options` and `response_options` in `require_approval` and `human_as_tool`, respectively, allowing custom response buttons in slack and web platforms