Commit Graph

185 Commits

Author SHA1 Message Date
doria 445f55a6c0
chore: add 3.0.2 changelog, update version (#367) 2026-02-03 15:25:22 -05:00
doria a2c004f7b5
feat: document reasoning_level parameter (#366) 2026-02-03 13:42:18 -05:00
doria 44577e048c
feat: add message-search fallback in dialectic tools for short sessions (#362) 2026-02-03 11:17:24 -05:00
ajspig f0874e29ff
feat: adding openclaw integration guide (#360)
* feat: adding openclaw integration guide

* fix: (docs) update link and openclaw description

* chore: (docs) update npm package to match standard

---------

Co-authored-by: Vineeth Voruganti <13438633+VVoruganti@users.noreply.github.com>
2026-02-02 17:59:26 -05:00
ajspig b578f4897f
Updating Docs & Packages with 3.0.0 SDK (#356)
* chore: (docs) Reconcile new SDK conventions in docs

* chore: updating docs references to SDK.

* chore: final edits to docs and packages for SDK and API updates

* chore: (docs) fix typescript context() options method

---------

Co-authored-by: Vineeth Voruganti <13438633+VVoruganti@users.noreply.github.com>
2026-01-29 17:10:33 -05:00
Vineeth Voruganti 4fcf6c4574
chore: (docs) Reconcile new SDK conventions in docs (#355) 2026-01-28 10:58:40 -05:00
Vineeth Voruganti 4add711711
v3.0.1 Patch (#354)
* chore: (docs) changelog for patch version

* chore: fix types
2026-01-27 12:33:08 -05:00
ajspig 19d1084302
fix: adding n8n guide (#353) 2026-01-27 11:34:49 -05:00
ajspig ac49a7cedb
Abigail/minor fix (#351)
* fix: updating vibecoding

* fix: brooken links
2026-01-27 11:18:41 -05:00
Vineeth Voruganti bd68c19a07
Documentation edits made through Mintlify web editor 2026-01-26 15:27:38 -05:00
Vineeth Voruganti 911aa6029f
v3.0.0 Release Candidate (#346)
* fix: (docs) update changelog and examples

* chore: (docs) Add note on Vector Stores

* fix: (mcp) WIP to sync with 3.0.0 conventions

* fix: (mcp) Sync MCP with final API changes for 3.0.0

* chore: (docs) sync changelog and openapi spec

* fix: fixing .mdx files to match openapi.json spec

* chore: Add script to estimate event creation

---------

Co-authored-by: ajspig <dragon@monstercode.com>
2026-01-26 15:06:02 -05:00
Rajat Ahuja 2270e5666f
switch OTEL metrics to prometheus (#344)
* feat: replace OTEL with Prometheus

* fix: second pass of docs and cleanup
2026-01-25 17:26:42 -05:00
doria e9d8b8759d
refactor: update semantic search parameter from `last_user_message` to `search_query` across documentation and SDKs (#341)
* refactor: update semantic search parameter from `last_user_message` to `search_query` across documentation and SDKs

- Changed references in documentation and code to use `search_query` instead of `last_user_message` for fetching semantically relevant observations and conclusions.
- Updated related function signatures and descriptions in Python and TypeScript SDKs to reflect this change.
- Adjusted tests to ensure compatibility with the new parameter naming.

* chore: openapi v3 formatted how we like it

* fix: reorder docs, update examples in README, update skills

* fix: message type option in sdk reference

* chore: update remaining getcontext and representation language

---------

Co-authored-by: Vineeth Voruganti <13438633+VVoruganti@users.noreply.github.com>
2026-01-23 13:11:20 -05:00
doria dce96889bc
feat: honcho 3.0, sdks 2.0, excise stainless, update v3 docs, changelogs (#331)
* chore: 3.0 honcho and 2.0 sdks changelog

fix: use PeerContextResponse in peer.ts

* chore: move docs to /v3/, build SDKs

* chore: code review

* feat: [WIP] migrate away from stainless in typescript sdk

* chore: move api from /v2/ to /v3/

* feat: no-stainless typescript with real tests

* feat: migrate python sdk off of stainless

* feat: clean typescript sdk

* chore: add tests for ts http client

* fix: rewrite entire python sdk in new format, update typescript sdk to use `configuration` not `config` for consistency with API

* fix: clean up SDKs, synchronize

* chore: update sdk examples

* chore: update OpenAPI documentation and SDK examples to reflect changes

* fix: better test

* fix: install deps in test runner, improve robustness of streaming in sdk, coderabbit nits

* fix: standardize around camelCase in TS SDK

* refactor: update configuration handling in SDKs to use typed models for workspace, session, and peer configurations

* docs: clarify queue status usage and remove polling methods from SDKs

add claude skills for migrations

* chore: fix links in docs

* feat: add deriver flush mode to bypass batch token threshold

- Introduced `is_deriver_flush_enabled` function to check if flush mode is active.
- Updated `QueueManager` to conditionally apply batch token thresholds based on flush mode.
- Enhanced `UnifiedTestExecutor` to enable flush mode via Redis.
- Added `flush` parameter to test cases to facilitate testing of flush mode behavior.
- Updated various test cases to utilize the new flush functionality.

* feat: implement schedule_dream functionality in SDKs, use in unified test runner

- Added `schedule_dream` method to both Python and TypeScript SDKs for scheduling dream tasks.
- Updated HTTP routes to include endpoint for scheduling dreams.
- Enhanced test runner to utilize the new `schedule_dream` method for scheduling actions.
- Updated TypeScript client to support the new scheduling functionality with appropriate parameters.

* feat: update single deriver task to support multiple observers

- Changed the `observer` parameter to `observers` as a list in multiple functions across the deriver module.
- Updated the processing logic to handle multiple observers for representation tasks.
- Adjusted related payload and queue management functions to accommodate the new observers structure.
- Modified tests to reflect changes in the representation task handling and ensure proper functionality.

* refactor: update enqueue tests to support deduplication of queue items with multiple observers

- Modified tests in `test_enqueue.py` to reflect changes in the queue item structure, where each message now results in a single queue item containing a list of observers.
- Updated assertions to validate that the `observers` field correctly includes all relevant peers, ensuring proper functionality of the deduplication logic.
- Removed redundant payload matching logic to streamline test cases and improve clarity.

* fix: add backwards compatibility for representation work unit keys and payload observers

* feat: update dialectic configuration and introduce cost calculator

- Adjusted LLM and dialectic settings in `.env.template`, `config.toml.example`, and `src/config.py` to reduce maximum tool output characters and session history tokens for cost efficiency.
- Implemented a new `dialectic_cost_calculator.py` script to estimate costs based on reasoning levels and model pricing.
- Enhanced `DialecticAgent` to utilize minimal tools and adjusted output token settings based on reasoning level to optimize performance and reduce costs.

* feat: add reasoning level to chat input in unified test runner

- Enhanced the `UnifiedTestExecutor` to include a `reasoning_level` parameter in the chat method call.
- Updated the `QueryAction` model to support the new `reasoning_level` attribute, allowing for more nuanced chat interactions.

* feat: run deriver once for multiple observers (#335)

* feat: update single deriver task to support multiple observers

- Changed the `observer` parameter to `observers` as a list in multiple functions across the deriver module.
- Updated the processing logic to handle multiple observers for representation tasks.
- Adjusted related payload and queue management functions to accommodate the new observers structure.
- Modified tests to reflect changes in the representation task handling and ensure proper functionality.

* refactor: update enqueue tests to support deduplication of queue items with multiple observers

- Modified tests in `test_enqueue.py` to reflect changes in the queue item structure, where each message now results in a single queue item containing a list of observers.
- Updated assertions to validate that the `observers` field correctly includes all relevant peers, ensuring proper functionality of the deduplication logic.
- Removed redundant payload matching logic to streamline test cases and improve clarity.

* fix: add backwards compatibility for representation work unit keys and payload observers

* feat: refactor benchmark runners to share common functionality

- Introduced a new `runner_common.py` module containing shared utilities for benchmark test runners, including common argument parsing, client creation, and queue management.
- Updated `BEAMRunner`, `LoCoMoRunner`, and `LongMemEvalRunner` to inherit from `RunnerMixin`, leveraging shared functionality for metrics collection and logging.
- Added `reasoning_level` and `redis_url` parameters to runner constructors for enhanced configuration.
- Streamlined argument parsing by utilizing `add_common_arguments` for shared command-line options across all runners.

* fix: update last_user_message handling to use message content instead of ID

* fix: standardize config vs configuration

---------

Co-authored-by: Vineeth Voruganti <13438633+VVoruganti@users.noreply.github.com>
2026-01-22 15:16:28 -05:00
doria b0dc05c909
feat: message ingestion forced-batching (#327)
* feat: implement forced batching for representation tasks and adjust max tokens

- Updated `REPRESENTATION_BATCH_MAX_TOKENS` to 1024 in `config.py`.
- Enhanced `get_and_claim_work_units` in `QueueManager` to enforce batching based on token thresholds.
- Added tests to ensure representation work units are only claimed when token counts meet or exceed the threshold.
- Introduced a synthesis prompt for tool execution to improve final response generation.

* chore: update queue-status docs to match new behavior

* fix: make representation work query efficient

* fix: Align alembic models and force dreams on for tests

* fix: clean queue between tests

---------

Co-authored-by: Vineeth Voruganti <13438633+VVoruganti@users.noreply.github.com>
2026-01-14 14:59:35 -05:00
doria 59b203e357
Merge pull request #319 from plastic-labs/ben/renaming-and-api-cleanup-clean
feat: API renaming and cleanup
2026-01-13 10:14:38 -05:00
Vineeth Voruganti be3adf820e chore: re-add n8n 2026-01-13 10:06:50 -05:00
vintro 669b1886d6
README and docs updates (#308)
* docs: initial updates

* chore: fix broken link

* feat: add honcho-integration SKILL.md

---------

Co-authored-by: Vineeth Voruganti <13438633+VVoruganti@users.noreply.github.com>
Co-authored-by: Benjamin McCormick <docterformer@protonmail.com>
2026-01-12 17:44:02 -05:00
Benjamin McCormick 5b7ae0d82c feat: API renaming and cleanup
- Rename API routes for consistency
- Add backwards-compatible conclusion and queue endpoints
- SDK cleanup and representation improvements
- Add reasoning_level param validation
- Fix thinking budget validation for Anthropic

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-12 16:50:40 -05:00
doria 578ef2c665
feat: agentic dreamer and agentic dialectic (#309)
* feat: add better params to working representation fetch in SDKs, return messages when added

* fix: working representation routes now accepting all parameters properly, with tests

* feat: add metadata/config fields to SDK objects where viable

* fix: tests

* feat: refactor SDKs to use representation config; [TEMP STAINLESS BUILD] update API

* feat: add representation object to sdks

* fix: use stainless sdk on branch

* fix: update TypeScript SDK tsconfig to use node16 module resolution

* fix: add isolatedModules = true to tsconfig

* fix: lol

* chore: coderabbit review

* feat: make delete session real

* feat: add observations routes with delete endpoints for documents. make session deletion real.

* chore: type cleanup

* fix: tests

* chore: coderabbit review

* fix: namespace by workspace

* feat: add ability to customize messages_per_summary at both workspace and session level

* chore: tests for summary config

* chore: coderabbit cleanup

* feat: make session and workspace config totally customizeable

* feat: add search by peer knowledge (#250)

* feat: search by peer perspective

* fix: enforce workspace in filters, make messages distinct in join

* fix: batch and merge migration steps

* fix: add refresh, add config to workspace, add refresh function, make fields readonly

* fix: search distinct

* fix: merge migrations

* fix: merge migrations

* fix: batch deletions, improve comments, limit consolidate dream to 100 docs at a time, auth on observations routes

* chore: review

* chore: coderabbit

* chore: review

* chore: broken comment

* feat: add set peer card route to API

* feat: create advanced configuration parameters with message>session>workspace hierarchy

* [wip] build unified testing harness

* chore: lint

* fix: cache invalidation, naming things, etc

* feat: longmem tests

* chore: peer config refactor

* feat: consolidate dream working, refactor representation

* fix: Various CR Comment Fixes

* feat: Allow configurable Redis port for harness instances and update cleanup methods to be asynchronous.

* feat: agentic ingestion task!!!

* feat: agentic deriver

* feat: dialectic agent and dreamer agent

* chore: browbeat tests into passing

* fix: nits

* chore: remove old code, update config files

* fix: simplify deriver

* feat: dialectic agent prompt updates, re-introduce non_agent deriver, eval tweaks

* feat: fast deriver, dreamer, then dialectic

* fix: tweaks across the board

* feat: add baseline tests

* feat: truncation in tools and client, tweaks for evals

* feat: add locomo, fix longmem judge!!!

* fix: locomo f1 is trash, use llm judge

* feat: trace creation

* feat: add first draft of obex benchmark, fix embedding model, fix locomo methodology

* fix: locomo session-optimized, better logging of cache usage and better cache usage

* chore: use openrouter for baselines

* fix: add test for merge migration

* chore: opus-powered cleanup

* fix: add config for vllm, better client

* chore: clean up clients.py a bit

* chore: move magic numbers to config, add tests for agent tools

* fix: wrong mock in dialectic tests, make ToolContext a dataclass

* feat: tweak prompts, make deriver explicit-only

* feat: more prompt & tool tweaks

* chore: more tweaks

* feat: dream with subagents

* fix: make dream trigger override scheduled, play around with dream agents

* chore: cleanup deriver

* chore: cleanup dialectic

* chore: cleanup orchestrator

* chore: comment out dream stuff, WIPing

* fix: inc temp on retry, typechecking

* feat: tweak dreaming

* feat: contradiction obs

* Add dream trees

* chore: preserve reasoning_details from openrouter in client

* fix: get_observation_context correct params

* fix: use correct message id in tool

* chore: cleanup longmem runner

* chore: clean up tests, remove dream tests for now as rearchitecting around trees

* chore: update stainless deps

* Update threholding mechanism

* chore: pre-commit hooks whitespace

* chore: clean up types

* feat: add explicit bench

* fix: address additional basepyright issues

* fix: adding logging as a fixture on honcho_llm_call and supporting dialectic loging. (#305)

* fix: lock on db for tool calls

* chore: clean up experimental derivers

* chore: coderabbit review cleanup

* feat: add streaming support to agentic dialectic

* feat: prometheus token tracking for deriver and dialectic

* fix: self-loops for isolated nodes

* chore: PascalCase for prometheus parameter typing

* feat: add reasoning levels to dialectic agent

* chore: delete old file, add new fake env vars in unittest.yml

* fix: all fields needed for dialectic reasoning level configs

* feat: track dreaming usage in prometheus

* chore: Create backwards compatabile conclusion and queue endpoints

* fix: remove redundant try-catch, add trace label, move .limit to end of statement

* fix: remove vignettes (for now), review fixes, remove merge migration, config cleanup

* chore: code review / cleanup

* chore: merge fixes

* chore: clean up, remove reasoning_focus, reintroduce peer cards in dreamers

* chore: code rabbit nitpicks

* fix: add unique index for pending dreams in queue

* fix: revert removal of surprisal in dreamer config

---------

Co-authored-by: Vineeth Voruganti <13438633+VVoruganti@users.noreply.github.com>
Co-authored-by: 3un01a <3un01a@plasticlabs.ai>
Co-authored-by: 3un01a <3un01a.labs@gmail.com>
Co-authored-by: ajspig <46900795+ajspig@users.noreply.github.com>
2026-01-12 15:12:17 -05:00
ajspig 49f6d75991
Adding n8n integration (#318)
* feat: Adding n8n integration

* fix: minor gramatical and style changes

* fix: matching the markdown with the json

* feat: adding screenshots to n8n

* fix: final modifications

* chore: code rabbit suggestions

* chore: code rabbit suggestions
2026-01-09 17:09:48 -05:00
doria 20e60cb6ba
chore: fix basedpyright warnings (#317) 2026-01-08 14:02:25 -05:00
Rajat Ahuja a42252867f
fix message id range validation error (#300)
* fix: documents message_ids validation error

* feat: version bump to 2.5.1

* chore: bump core dependencies to 1.8.0
2025-12-16 11:13:01 -05:00
Eri Barrett 9c9c37f196
dashboard overview docs updates (#298)
* fix: update dialectic to chat

* fix: reasoning configuration

* fix: backlink get_context in summarizer

* fix: error handling

* chore: update dashboard overview

* fix: links due to other branches

* fix: proof

* fix: proof

---------

Co-authored-by: vintro <vince@plasticlabs.ai>
2025-12-12 16:19:14 -05:00
Paul Nodet adee668f37
docs: fix blog link in Dialectic endpoint documentation (#297)
Updated the blog link for the Dialectic endpoint documentation to the archived version.
2025-12-12 10:12:37 -05:00
vintro 69f823aed1
fix: links 2025-12-10 17:18:32 -05:00
Benjamin McCormick b3327daf38 fix: force redirect on docs homepage 2025-12-10 16:39:45 -05:00
Benjamin McCormick 2b25edaf25 chore: move changes to v2.6.0-alpha 2025-12-10 13:03:56 -05:00
Benjamin McCormick 5bcde13d0f chore: docs TODOs cleanup 2025-12-10 12:13:44 -05:00
Rajat Ahuja 24aa97a8e5 fix: links 2025-12-10 11:17:59 -05:00
Benjamin McCormick f0d24af827 Merge branch 'main' into vince/dev-1259 2025-12-10 10:57:40 -05:00
vintro dc297200ff
fix: description 2025-12-10 10:19:36 -05:00
vintro c53ba8dd6e
feat: draft ready for review 2025-12-09 21:24:00 -05:00
vintro 2cb07e4df4
fix: no local vs global 2025-12-09 15:55:22 -05:00
vintro ede73b5d2f
fix: another pass, todos 2025-12-08 23:18:27 -05:00
vintro d4b617f4c1
fix: various tweaks, another plan 2025-12-08 21:42:25 -05:00
vintro 42a8da201b
fix: update reasoning, various other tweaks 2025-12-08 18:21:30 -05:00
ajspig 5d2f4e150e docs: removing deriver ref in toggle-reasoning 2025-12-08 16:31:12 -05:00
ajspig 0975072b4b docs: adding clarity to representation and reasoning 2025-12-08 16:21:24 -05:00
ajspig a47da683a3 docs: removing deriver from queue-status 2025-12-08 14:27:32 -05:00
vintro 71b49f7906
Merge branch 'vince/dev-1259' of github.com:plastic-labs/honcho into vince/dev-1259 2025-12-06 14:44:35 -05:00
vintro a4f036ba6d
fix: various tweaks 2025-12-06 14:44:22 -05:00
Vineeth Voruganti 42a28dfda1 chore: Changelog updates 2025-12-05 12:22:44 -05:00
ajspig f3d5e7e4fe docs: minor textual changes 2025-12-05 12:15:37 -05:00
ajspig dfd64c765a
Mem0 -> Honcho migration (#281)
* docs: First draft of mem0 honcho migration

* docs: updating migration guide comparisons

* docs: simplifying structure and suggestions

* docs: Simplifying API comparsion

* docs: verifying code and simplfying

* docs: emphasizing the quality of honcho

* docs: minor textual changes

* docs: adding observation endpoint

* docs: coderabbit fixes and textual changes.
2025-12-05 11:53:54 -05:00
ajspig 508a212106 Merge branch 'vince/dev-1259' of https://github.com/plastic-labs/honcho into vince/dev-1259 2025-12-04 16:30:55 -05:00
ajspig e0be2d9adf docs: updating migration guide 2025-12-04 16:30:18 -05:00
vintro ba54e21d70
fix: feeling solid on core concepts 2025-12-04 16:27:06 -05:00
Vineeth Voruganti d63d580899
chore: (docs) Changelog Updates (#286)
* chore: (docs) Changelog Updates

* chore: update changelogs

* chore: nits
2025-12-04 16:07:14 -05:00
Vineeth Voruganti ca702cfd10
Resolve SDK Inconsistencies and Add Observation Creation Endpoints (#288)
* feat: Add Observation Creation Endpoints and SDK Cleanup

* fix: Resolve linting errors

* chore: Code Rabbit Nits

* chore: Code Rabbit Nits
2025-12-04 15:24:45 -05:00
Vineeth Voruganti 72eb0827ec
Add session cloning to Ergonomic SDKs (#285)
* feat: Add session cloning to Ergonomic SDKs

* chore: docs nit
2025-12-04 14:51:39 -05:00
vintro 67efb23502
fix: various tweaks 2025-12-04 12:19:20 -05:00
ajspig 984f92f0a3 docs: organizing guides. Added guides from main and migration branch. 2025-12-04 11:27:05 -05:00
vintro e5e44f4619
fix: update to main changes 2025-12-04 10:59:28 -05:00
vintro 77a240cfd6
fix: move perspective taking to representation 2025-12-04 10:21:43 -05:00
vintro 189b043e9a
fix: quick updates 2025-12-04 10:09:29 -05:00
vintro 2774c31020
fix: concept pages, reorg, first pass 2025-12-03 23:26:26 -05:00
doria e3d345b961
API/SDK updates: configurability, more parameters. Unified test harness (#283)
* feat: add better params to working representation fetch in SDKs, return messages when added

* fix: working representation routes now accepting all parameters properly, with tests

* feat: add metadata/config fields to SDK objects where viable

* fix: tests

* feat: refactor SDKs to use representation config; [TEMP STAINLESS BUILD] update API

* feat: add representation object to sdks

* fix: use stainless sdk on branch

* fix: update TypeScript SDK tsconfig to use node16 module resolution

* fix: add isolatedModules = true to tsconfig

* fix: lol

* chore: coderabbit review

* feat: make delete session real

* feat: add observations routes with delete endpoints for documents. make session deletion real.

* chore: type cleanup

* fix: tests

* chore: coderabbit review

* fix: namespace by workspace

* feat: add ability to customize messages_per_summary at both workspace and session level

* chore: tests for summary config

* chore: coderabbit cleanup

* feat: make session and workspace config totally customizeable

* feat: add search by peer knowledge (#250)

* feat: search by peer perspective

* fix: enforce workspace in filters, make messages distinct in join

* fix: batch and merge migration steps

* fix: add refresh, add config to workspace, add refresh function, make fields readonly

* fix: search distinct

* fix: merge migrations

* fix: merge migrations

* fix: batch deletions, improve comments, limit consolidate dream to 100 docs at a time, auth on observations routes

* chore: review

* chore: coderabbit

* chore: review

* chore: broken comment

* feat: add set peer card route to API

* feat: create advanced configuration parameters with message>session>workspace hierarchy

* [wip] build unified testing harness

* chore: lint

* fix: cache invalidation, naming things, etc

* feat: longmem tests

* chore: peer config refactor

* feat: consolidate dream working, refactor representation

* fix: Various CR Comment Fixes

* feat: Allow configurable Redis port for harness instances and update cleanup methods to be asynchronous.

* fix: version bump, api/sdk updates

* fix: observation endpoints, deletion queue, sdk observation implementation

* chore: Fix migration order

* fix: Use published stainless sdks

* chore: (docs) update api-reference

* fix: (docs) update based on api and sdk changes

* fix: Code Rabbit Comments

* fix: Code Rabbit Final Nits

* fix: dream scheduler

* fix: SDK model type consistency

---------

Co-authored-by: Vineeth Voruganti <13438633+VVoruganti@users.noreply.github.com>
2025-12-03 16:49:30 -05:00
Rajat Ahuja b3e715d1d6
fix conditional cache invalidation (#280)
* fix: cleanup cache logs

* fix: address cache thrashing

* fix: warm cache for new session
2025-12-03 12:22:35 -05:00
vintro 4eab8c03ff
fix: reorder again 2025-12-02 00:36:25 -05:00
vintro 37e62c772c
feat: get context page 2025-12-01 16:31:31 -05:00
ajspig 34957d7885
Adding crewAI integration guide (#279)
* docs: adding crewAI integration guide

* docs: adding a honcho_crewai package

* docs: Using session.search and session summaries to enhance the honcho storage class

* docs: updating to use honcho_crewai package

* docs: Added honcho_crewAI tools. Updated honcho_crewai tests to better match the specific integration. Built out the package definition more.

* docs: Adding all the honcho sdk parameters to crewAI tools, also adding tools and a simple example.

* docs: adding logging to HonchoStorage class

* docs: updating mdx file to match examples and fixing explanations

* Docs: removing session summaries from search

* docs: adding files package

* docs: simplifying language specifically for theory-of-mind.

* chore: code rabbit suggestions.

* chore: code rabbit

* fix: removing nanoid crewai dependency

* docs: adding filtering capability to honcho crewai package and tool examples.

* fix: remove factory class in favor of direct class instantiation

* docs: adding hybrid memory example

* fix: fixing redundent calls to honcho for saving message history

* chore: code rabbit fixes
2025-12-01 14:46:14 -05:00
vintro 36a468e00a
fix: overview draft, rough reorg 2025-12-01 03:15:24 -05:00
ajspig 093444c38c
Removing honcho-ai/core references in API Reference where implemented by the honcho-ai package (#275)
* docs: removing honcho_core imports in SDK documentation where implemented by the honcho-ai package.

* docs: updating json import

* docs: removing duplicate openapi doc
2025-11-25 15:05:20 -05:00
vintro ace8558388
fix: 11.24 checkpoint 2025-11-24 12:33:15 -05:00
Vineeth Voruganti b1402c21fe
v2.4.3 Release (#278)
* chore: (docs) update changelog and version number

* chore: update for new downstream pr
2025-11-20 12:00:26 -05:00
vintro 90cd0b814f
feat: re-org, overview, quickstart drafts 2025-11-20 09:08:13 -05:00
ajspig 2ffa7b7b30
Add LangGraph integration guide (#271) 2025-11-19 17:13:46 -05:00
Rajat Ahuja 8e3f24d4f8
feat: add caching (redis) (#265)
* feat: init redis cache

* feat: initialize redis client

* fix: add fakeredis client

* fix: update docker compose

* fix: various coderabbit comments

* fix: update docker-compose.yml.example

* fix: CR comments 2

* fix: clean up client

* fix: cache key class; workspace LRU; constants -> utils

* fix: CodeRabbit comments

* feat: add redis to harness

* fix: use cashews

* fix: add locking for cache stampedes

* fix: clean up PR

* f: unify cache key templates and stop caching None

* fix: alter prefixes + prime cache on get_or_create()

* fix: re-add fakeredis

* chore: Code Rabbit nits

* CR comments; make client more resilient

* fix: BPR

* fix: set redis once but clear cache in between every test

* fix: attempt fix contextvar error

* fix: make TestClient rely on redis patch

* fix: potential working fix

* fix: namespace inheritance; address comments

* fix: namespace inheritance; address comments

---------

Co-authored-by: Vineeth Voruganti <13438633+VVoruganti@users.noreply.github.com>
2025-11-07 13:04:28 -05:00
Vineeth Voruganti 641eb9991e chore: docs formatting 2025-11-07 12:05:07 -05:00
Vineeth Voruganti 822059b81a
Step Function Improvement on Docs (#241)
* feat: Release PR for v2.4.0

* chore: initial re-organization pass

* chore: in progress edits

* fix: WIP Restructure

* fix: docs introduction section

* fix: Populates new features pages

* fix: Code Rabbit grammatical catches

* chore: make system diagram visible by default
2025-11-05 17:40:53 -05:00
Vineeth Voruganti a25be3c136
chore: Readme & Changelog Updates (#263)
* chore: Readme & Changelog Updates

* chore: (typos) Clarify Changelog
2025-11-04 10:41:58 -05:00
Vineeth Voruganti 96abc49dbe chore: v2.4.1 Release Notes 2025-10-24 10:35:57 -04:00
Vineeth Voruganti a657f88951 chore: Changelog Updates 2025-10-09 17:13:41 -04:00
Vineeth Voruganti 79b1dde401 chore: Update Docs 2025-10-09 17:03:42 -04:00
Vineeth Voruganti d094ef8e10
feat: Release PR for v2.4.0 (#229) 2025-10-09 16:57:50 -04:00
Vineeth Voruganti 840a2a31b4
chore: update changelogs (#225) 2025-10-02 12:12:21 -04:00
Vineeth Voruganti 73c5eb1f5a
SDK Changes (#223)
* fix: Add top level transactions for tracing in deriver

* fix: Add Delete methods to sdks for sessions

* feat: Add session deletion and session level deriver status methods

* fix: Streaming support to python sdk

* fix: Checkpoint Streaming working in SDKs with workarounds for stainless

* feat: fix pagination, add message metadata update, and get peer card methods

* feat: parity in typescript and python sdks

* fix: Address Coderabbit

* fix: Address Coderabbit

* chore: add basedpyright rules to sdk

* fix: Code Rabbit & Changelog

* fix: updated docs with api-reference
2025-10-01 16:25:30 -04:00
doria 405f056400
2.3.2 update (#217)
* chore: 2.3.2 update

* fix: add 2.3.1 which never got a changelog
2025-09-26 11:41:28 -04:00
Rajat Ahuja f6520c1ffe
fix: sum input tokens and set session context cutoff to MAX_INPUT_TOKENS - sum (#218)
* fix: sum input tokens and set session context cutoff to MAX_INPUT_TOKENS - sum

* fix: CR comments + remove context var

* fix: CR comments 2

* fix: use cache decorator; rm logger

* refactor: re-fetch formatted history after getting global working rep
2025-09-26 11:37:40 -04:00
Eri Barrett b21b74af11
color theme and broken link fix (#213)
* cleanup: simple color changes, image resize

* fix: broken links

* fix: logo colors

* redo: broken links, h4 formatting on glossary page

* fix: more link edits

* fix: icon for file upload page

* fix: coderabbit suggestion

* chore: remove dead file

* chore: update mintlify version

---------

Co-authored-by: Vineeth Voruganti <13438633+VVoruganti@users.noreply.github.com>
2025-09-24 16:06:54 -04:00
doria 3f47866ae0
feat: add configurable max message size, update tests and docs -- fixes token overflow in deriver (#208)
* feat: add configurable max message size, update tests and docs -- this fixes token overflow in deriver

* fix: remove LLMError special handling

* chore: bump version

---------

Co-authored-by: Rajat Ahuja <rahuja445@gmail.com>
Co-authored-by: Vineeth Voruganti <13438633+VVoruganti@users.noreply.github.com>
2025-09-18 15:57:53 -04:00
Edison Qu a2c84e86ba
typo: workspaceId in quickstart.mdx (#207) 2025-09-15 14:56:06 -04:00
doria 802aac0d70
feat: targeted peer cards (#204)
* feat: targeted peer cards

* chore: review cleanup

* chore: Code Rabbit Comment cleanup

---------

Co-authored-by: Vineeth Voruganti <13438633+VVoruganti@users.noreply.github.com>
2025-09-04 12:13:34 -04:00
Vineeth Voruganti 2c5c0f0b62
Docs Refresh (#200)
* Initial Draft

* Split up code block

* Clean up code

* Add retrieval use cases

* fix: Code Rabbit Suggestions

* Code Rabbit AGain
2025-08-29 16:27:07 -04:00
Eri Barrett 6b7cf82c1c
docs quickfix (#198)
* updated platform page

* fix: update explore page screenshots

* fix: empty object to init client

* fix: add async operations to ts code

* add: output structure for sessionContext, messages, and workingrep in docs

* Delete docs/scratch.md

* fix: review comments

* fix: delete the 212 version from changelog

* Apply stashed changes and resolve conflicts
2025-08-27 12:03:09 -04:00
Eri Barrett 8af3494ad5
platform docs w/ new ui screenshots (#195)
* updated platform page

* fix: update explore page screenshots

* fix: empty object to init client

* fix: add async operations to ts code

* add: output structure for sessionContext, messages, and workingrep in docs

* Delete docs/scratch.md

* fix: review comments

* fix: delete the 212 version from changelog
2025-08-27 10:53:26 -04:00
Vineeth Voruganti 9c8e74bc04
fix: get context cutoff to be exclusive (#193) 2025-08-13 16:16:02 -04:00
Vineeth Voruganti f6e01a6f72
2.3.0 Release & N+1 Query Optimization (#190)
* chore (docs): Initial Changelog for 2.3.0

* optimize batch enqueue calculation

* fix (embed): Truncate context during _query_documents_for_level

* chore (docs): Update Changelog with patches

* fix: Code Rabbit Suggestions

* fix: Code Rabbit Suggestions
2025-08-13 14:58:58 -04:00
doria 7a9746ca8b
Peer Cards (#180)
* chore: fill out missing metadata inputs in python sdk

* feat: add get_peer_config to python sdk, thoroughly document ts sdk and remove bad client usage

* feat: zod
chore: update tests
chore: bump version, changelog

* chore: python sdk version bump and changelog

* [WIP] feat: combine search methods and rework endpoint to include limit param

* chore: test new stainless config with library

* nits: coderabbit

* Merge branch 'ben/sdk-improvements' into ben/search-rrf

* chore: pre-commit hooks cleanup

* feat: thoroughly document observation config

* Update sdks/python/src/honcho/peer.py

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* chore: v1.3.0

* feat: update version to 2.2.0 and enhance search functionality with arbitrary filters

- Remove unused config variables
- Added arbitrary filters to all search endpoints.
- Pluralize `filters` everywhere in SDKs for consistency
- Updated documentation and changelog to reflect these changes.

* expose core client in TS and Python SDKs (#150)

* expose core client from sdks

* align text

* fix: resolve get_effective_observe me race condition, default peer config (#176)

* fix: resolve get_effective_observe me race condition, default peer config

* fix: preserve custom config even after leaving

* chore: test cases, enqueue types

* Update sdks/typescript/package.json

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: doria <93405247+dr-frmr@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* chore: formatting

* chore: revert undesired changes to v1 spec, clean up docs, coderabbit

* feat: better search docs, fix worker.ts

* fix: correctly make ts params optional in cases, update docs

* chore: coderabbit

* chore: remove spurious package-lock

* feat: [WIP] introduce peer cards

* chore: remove search.mdx

* chore: clean up deriver

* feat: peer cards working in deriver

* feat: add basic peer_card_bench

* feat: refine peer card prompt, add mini-benchmark, switch to gpt-5-nano

* refactor: update peer card handling in dialectic functions and improve error handling

- Enhanced `get_peer_card` function to handle `ResourceNotFoundException`.
- Updated `dialectic_call` and `dialectic_stream` to accept `peer_card` and `target_peer_card` parameters.
- Modified prompt generation to include peer card information.
- Cleaned up whitespace in several files for consistency.

* chore: update mirascope dependency version in configuration files

- Bumped mirascope version from 1.25.1 to 1.25.5 in pyproject.toml and uv.lock.
- Added a note in config.py regarding peer card output token handling.
- Removed unnecessary comments in clients.py for clarity.

* fix: [coderabbit] improve error handling in set_peer_card and enhance logging

- Added a check in `set_peer_card` to raise `ResourceNotFoundException` if the peer does not exist.
- Updated logging in `CertaintyReasoner` to capture exceptions with Sentry when enabled.
- Refined logging messages for clarity and consistency across various functions.
- Cleaned up whitespace and formatting in several files for improved readability.

* refactor: update working representation handling and improve metadata key usage

- Introduced constants for representation collection names to enhance clarity and maintainability.
- Updated function signatures in `get_working_representation` and `set_working_representation` to require `session_name`.
- Simplified metadata key determination logic by using constants instead of hardcoded strings.
- Removed legacy fallback logic for working representation data retrieval.
- Refactored `save_working_representation_to_peer` to utilize the new `set_working_representation` function for improved code reuse.

* chore: update configuration files and enhance working representation settings

- Added new peer card settings and context token limits to `.env.template`, `config.toml.example`, and documentation.
- Introduced `WORKING_REPRESENTATION_MAX_OBSERVATIONS` to `DeriverSettings` for better control over observation storage.
- Updated `set_working_representation` to merge new observations while respecting the maximum limit.
- Improved docstrings for clarity and consistency across functions.

* feat: introduce LLMError exception and enhance error handling in deriver

- Added LLMError exception to handle failures in LLM calls, normalizing inputs into a JSON-serializable format.
- Updated CertaintyReasoner to raise LLMError on exceptions during LLM function calls.
- Enhanced QueueManager to log LLMError occurrences and re-queue messages appropriately.
- Modified test runner to support asynchronous operations and improved output formatting for test results.
- Updated test cases to include session information for better context.

* feat: add __repr__ method to QueueItem for improved string representation

- Implemented a __repr__ method in the QueueItem class to provide a clear and informative string representation of its attributes.
- Updated timeout handling in TestRunner to default to 10000.0 seconds when timeout_seconds is not set, enhancing robustness in polling operations.

* refactor: update peer card data structure and improve handling in related functions

- Changed return type of `get_peer_card` and `set_peer_card` to use `list[str]` instead of `str | None`.
- Updated `peer_card_call` and related functions to accommodate the new list structure for peer cards.
- Introduced `PeerCardQuery` model to standardize responses from peer card queries.
- Adjusted prompt generation in `peer_card_prompt` to reflect the new data structure.
- Modified benchmark tests to align with the updated peer card handling.

* refactor: adjust peer card output token settings and update related functions

- Increased `PEER_CARD_MAX_OUTPUT_TOKENS` from 2000 to 4000 in `DeriverSettings`.
- Updated `critical_analysis_call` to use `json_mode` and removed unused parameters.
- Modified benchmark tests to utilize the new `PEER_CARD_MAX_OUTPUT_TOKENS` setting.
- Removed obsolete `add_dislike.json` test file.

* refactor: update peer card handling in critical analysis and dialectic prompts

- Changed `peer_card` parameter type from `str | None` to `list[str] | None` in `critical_analysis_call` and related functions.
- Simplified error handling in `process_representation_task` by removing redundant try-except block.
- Updated prompt generation in `critical_analysis_prompt` and `dialectic_prompt` to format `peer_card` as a string with newlines.
- Adjusted benchmark tests to reflect changes in peer card structure and output formatting.

* refactor: update peer card test cases to use list structure

- Modified test cases in `test_representation_crud.py` to reflect the change in `peer_card` parameter type from `str` to `list[str]`.
- Updated assertions to accommodate the new list format for setting and retrieving peer cards.
- Ensured that tests for missing peers correctly handle the list input format.

* fix: improve formatting of peer card output in prompts

- Updated `peer_card_prompt` to join `old_peer_card` list elements with newlines for better readability.
- Removed outdated comment in `dialectic_prompt` regarding handling of non-existent cards.

* chore: [coderabbit] enhance docstring and logging in prompts and queue manager

- Updated the docstring in `critical_analysis_prompt` to provide detailed type annotations for parameters.
- Improved logging in `chat` to differentiate between single and multiple retrieved peer cards.
- Adjusted logging format in `QueueManager` to use a more structured approach for shutdown messages.

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: Rajat Ahuja <rahuja445@gmail.com>
2025-08-12 17:39:08 -04:00
Vineeth Voruganti e914dbe334
feat: Add get summaries endpoints & Custom Timestamps (#185)
* feat: add support for custom message timestamps in API

- Introduced `created_at` parameter for message creation, allowing users to specify custom timestamps.
- **Single source of truth for timestamp string format**
- Updated SDK documentation to reflect this new feature and its use cases.
- Enhanced validation schemas to include the optional `created_at` field.
- Added tests to verify functionality for messages with and without custom timestamps, ensuring correct behavior and default timestamp usage.

* feat: add timestamp option to sdks

* feat: Add get summaries endpoints

* feat: WIP basic SDK implementation blocked until stainless release

* feat: Implement SDKs with honcho-core methods

* fix (sdk): Used release 1.4.0 core sdks

* fix: Code Rabbit

* chore: Pytest errors

---------

Co-authored-by: Benjamin McCormick <docterformer@protonmail.com>
2025-08-12 17:19:53 -04:00
Vineeth Voruganti 0838a281c1
Session Observer Limit (#186)
* fix: change session peers limit to enforce restrictions based on observers

* fix: Add new Exception type

* chore: fix type
2025-08-12 11:46:52 -04:00
doria c2a35a857d
chore: add changelog (#181)
* chore: add changelog

* chore: lockfile
2025-08-06 18:03:26 -04:00
doria 7b174dd34b
Ben/search rrf (#179)
* chore: fill out missing metadata inputs in python sdk

* feat: add get_peer_config to python sdk, thoroughly document ts sdk and remove bad client usage

* feat: zod
chore: update tests
chore: bump version, changelog

* chore: python sdk version bump and changelog

* [WIP] feat: combine search methods and rework endpoint to include limit param

* chore: test new stainless config with library

* nits: coderabbit

* Merge branch 'ben/sdk-improvements' into ben/search-rrf

* chore: pre-commit hooks cleanup

* feat: thoroughly document observation config

* Update sdks/python/src/honcho/peer.py

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* chore: v1.3.0

* feat: update version to 2.2.0 and enhance search functionality with arbitrary filters

- Remove unused config variables
- Added arbitrary filters to all search endpoints.
- Pluralize `filters` everywhere in SDKs for consistency
- Updated documentation and changelog to reflect these changes.

* expose core client in TS and Python SDKs (#150)

* expose core client from sdks

* align text

* fix: resolve get_effective_observe me race condition, default peer config (#176)

* fix: resolve get_effective_observe me race condition, default peer config

* fix: preserve custom config even after leaving

* chore: test cases, enqueue types

* Update sdks/typescript/package.json

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: doria <93405247+dr-frmr@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* chore: formatting

* chore: revert undesired changes to v1 spec, clean up docs, coderabbit

* feat: better search docs, fix worker.ts

* fix: correctly make ts params optional in cases, update docs

* chore: coderabbit

* chore: remove spurious package-lock

* fix: asyncify examples, use limit properly in search

* fix(tests): handle 4 return values in test_get_session_peer_configuration

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: Rajat Ahuja <rahuja445@gmail.com>
2025-08-06 17:43:03 -04:00
doria 29190248d0
Summarizer improvements (#173)
* feat: document summarizer, change configuration, make default behavior exhaustive

* feat: adjust summarizer prompts, add more benchmarks, fix small bugs

* feat: prompt engineering + benchmarking

* chore: fix tests and types

* chore: coderabbit review

* chore: add explanatory comments to summary prompts
2025-07-31 11:04:15 -04:00
Vineeth Voruganti bcb3b6106a
chore (docs): Update Versions and Changelogs (#172) 2025-07-30 17:22:28 -04:00
Vineeth Voruganti 2871ab8248
fix: Various performance and linting improvements (#170)
* fix: Various performance and linting improvements

* chore: Code Rabbit Nitpicks
2025-07-28 17:36:14 -04:00
doria af10ec804c
chore: new mcp docs (#169) 2025-07-25 15:18:27 -04:00
doria 83cf0512c6
Add Honcho MCP server (#158)
* feat: add honcho fastMCP server, stubbed out start_conversation

* feat: fully functional

* feat: update mcp guide

* chore: coderabbit review

* chore: cleanup nits

* fix: improve instructions

* fix: readme clarifications

* fix: [critical] only remove duplicates within workspace+peer, make cloudflare worker mcp server work nice

* chore: update readme

* feat: add more tools
fix: remove python in favor of one typescript MCP server

* chore: refactor for DRYness

* fix: improve readme, (temporary sdk workaround) add assistant peer with observe_me: false

* chore: switch to bun, enforce usage

fix: proper assistant config, proper message formatting

* chore: fill out readme
2025-07-24 14:01:26 -04:00
doria bc5474c170
feat: 2.1.1 release (#167) 2025-07-23 23:06:09 -04:00