Commit Graph

186 Commits

Author SHA1 Message Date
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 6efb950ef5
feat: enhance critical analysis functionality by adding peer_id parameter (#191)
- Updated `critical_analysis_call` and `critical_analysis_prompt` to include a new `peer_id` parameter for improved context in analysis.
- Modified the `CertaintyReasoner` class to pass the sender's name as `peer_id` during analysis calls.
- Adjusted test cases to reflect the inclusion of `peer_id`, ensuring comprehensive coverage of the new functionality.
2025-08-13 13:46:56 -04:00
doria fb45c607e5
fix: refactor datetime handling in security and utility modules (#188)
* fix: refactor datetime handling in security and utility modules

- Updated `verify_jwt` function to utilize `parse_datetime_iso` for improved expiration time validation.
- Enhanced `_validate_datetime_string` to prioritize timezone-aware formats and streamline parsing logic.
- Modified `created_at` assignments in `ObservationContext` to use UTC timezone for consistency in timestamp handling.

* fix: proper observation extraction

- Replaced direct observation references with the `extract_observation_content` function to enhance clarity and maintainability in the `new_observations` list comprehension.

* refactor: streamline datetime parsing in filter and formatting utilities

- Removed redundant timezone-aware format handling from `_validate_datetime_string` in `filter.py`.
- Enhanced `parse_datetime_iso` in `formatting.py` to ensure consistent conversion of 'Z' suffix to timezone-aware datetime objects, improving clarity and functionality.

* refactor: update JWT verification and enhance datetime parsing

- Changed `verify_jwt` function from asynchronous to synchronous for improved performance and simplicity.
- Enhanced `parse_datetime_iso` to include comprehensive input validation and support for various timezone formats, ensuring consistent and secure datetime parsing.

* chore: coderabbit
2025-08-13 13:13:33 -04:00
Rajat Ahuja 8533256ca0
fix: long-held connections in queue manager (#189)
* fix: long-held connections in queue manager

* fix: CR comments. tests

* fix (deriver): Limit # of work units claimed based on available workers

* fix: detached instance

* fix: batch claim work units

---------

Co-authored-by: Vineeth Voruganti <13438633+VVoruganti@users.noreply.github.com>
2025-08-13 12:54:02 -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
Vineeth Voruganti 13645d2e05
fix: Make deriver use get context internally (#184)
* fix: Make deriver use get context internally

* chore: Code Rabbit nits
2025-08-11 13:10:07 -04:00
doria 04b1f64d2e
fix(tests): update test_get_peers_with_complex_filter to use plural 'filters' and assert metadata conditions (#182) 2025-08-07 10:35:47 -04:00
doria c2a35a857d
chore: add changelog (#181)
* chore: add changelog

* chore: lockfile
2025-08-06 18:03:26 -04:00
Rajat Ahuja 3bea3da169
feat: webhooks (#168)
* feat: webhooks

* feat: Enhance webhook security and typing, fix validation and encryption bugs

* fix: lint / types

* fix: rm files

* fix: rm mcp

* fix: pydantic issue with TypedDict in python version <= 3.11

* fix: pre-commit hook for test coverage

* fix: simplify API -- store url on workspace

* fix: redo architecture

* fix: webhook body

* fix: make workspace optional

* fix: comments

* refactor: add webhook secret

* fix: CR comments

* feat: use deriver for webhooks

* use key-value approach

* feat: add work unit key to deriver

* fix: add work unit key to webhooks

* fix: tests

* fix: cr comments #2

* fix: endpoint structure; make webhook delivery into a function; add tests; other general comments

* chore: change webhook secret, fix test event and workspace_id, use async with

* feat: implement queue.empty and backfill

* fix: unique constraint

* refactor: queue to use outerjoin and remove skip locked; also fix publish queue.empty

* fix: tests

* fix: migration - make columns non-nullable
2025-08-06 17:52:35 -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
Vineeth Voruganti ddc16cfc21
Vineeth/dev 1027 (#177)
* fix (deriver): Add Sentry decorators and some additional tests

* feat (test): Deriver Fixtures for Testing
2025-08-06 16:20:22 -04:00
doria 23557ced02
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
2025-08-05 13:44:54 -04:00
Vineeth Voruganti 0664410878
fix (queue): Add explicit rollback on integrity error (#174) 2025-07-31 16:50:19 -04:00
Rajat Ahuja 6338337c2d
fix: make get_or_create routes more resilient (#175)
* fix: make get_or_create routes more resilien

* fix: standardize retry
2025-07-31 16:49:57 -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
Rajat Ahuja ffaae28221
Alembic migration to make session_name required on messages (#166)
* model changes

* add migration

* fix migration note

* handle MessageEmbedding table

* fix json issue and make script idempotent

* add collections name_length change

* make 1025

* coderabbit
2025-07-22 15:25:24 -04:00
Vineeth Voruganti c070b375a7
Add Pre-commit Hooks (#165)
* chore (pre-commit): Setup Pre-commit Hooks and Add Path filter to unittests

* chore (docs): Add pre-commit hook docs

* chore (docs): Code Rabbit nitpicks
2025-07-22 15:17:53 -04:00
doria 54fc5225ca
feat: add filter params everywhere (#164)
* feat: add filter params everywhere
fix: swap peerId/workspaceId in getSessions()

* chore: add eslint and prettier dev dependencies with scripts

Co-authored-by: aider (groq/moonshotai/kimi-k2-instruct) <aider@aider.chat>

* fix: update tests, chore: ignore trailing commas

* fix (sdks): Add Linting to Typescript SDK

* feat: add TypeScript SDK tests to CI workflow

Co-authored-by: aider (groq/moonshotai/kimi-k2-instruct) <aider@aider.chat>

* ci: remove postgres service and switch to bun for typescript tests

Co-authored-by: aider (groq/moonshotai/kimi-k2-instruct) <aider@aider.chat>

* chore (docs): Update Changelog for SDKs

* chore (sdk): Code Rabbit Nitpicks

* chore (action): Fix Typescript SDK Test Action

---------

Co-authored-by: Vineeth Voruganti <13438633+VVoruganti@users.noreply.github.com>
Co-authored-by: aider (groq/moonshotai/kimi-k2-instruct) <aider@aider.chat>
2025-07-21 13:40:30 -04:00
Vineeth Voruganti f464352b8c
fix (config): Let config ignore extra values (#163) 2025-07-21 10:50:31 -04:00
Vineeth Voruganti 2b429099ef
fix (sdk): Fix import resolution error (#162) 2025-07-21 10:50:14 -04:00
doria e9edb235af
chore: remove fly deploy actions (no longer used) (#161) 2025-07-17 11:32:55 -04:00
doria a14899521c
Honcho 2.1.0 "ROTE" deriver (#160)
* feat: update SDKs to core 1.2.0

* feat: 2.1.0 introduce ROTE deriver/dialectic
chore: refactor repo

* fix: get typescript sdk tests working again, bump version numbers

* chore: cleanup

* chore: update unit test provider config

* fix: remove "backup" query gen

* fix: remove old utils from conftest
2025-07-16 18:02:43 -04:00
Rajat Ahuja 27bde3d6db
don't send validation errors to sentry (#159) 2025-07-15 23:32:47 -04:00
Vineeth Voruganti 62b3fea7e2
chore (docs): Update Mintlify (#157)
* chore (docs): Update Mintlify

* chore (release): Update Release version to 2.0.5
2025-07-11 12:34:10 -04:00
Vineeth Voruganti f41cd965bb
Documentation edits made through Mintlify web editor 2025-07-10 18:38:33 -04:00
Eri Barrett de02535c2e
platform guide rewrite, workspace dashboard ui (#156)
* workspace dash platform guide

* fix (docs): Platform Update Guide

* feat (scripts): Add utility script to quickly update Changelogs and versions

* chore (sdks): Add Changelog files to SDKs

* chore (docs): Fix compatability guide

* chore (docs): Code Rabbit and Changelog Dates

* chore (docs): Code Rabbit

* chore (docs): Code Rabbit

* chore (docs): Restructure

* chore (docs): Code Rabbit

* Code Rabit

---------

Co-authored-by: Vineeth Voruganti <13438633+VVoruganti@users.noreply.github.com>
2025-07-10 16:57:59 -04:00
Ayush Paul aaa0904482
fix groq client (#155) 2025-07-08 11:25:21 -04:00
Vineeth Voruganti d16660b88f
Core Documentation Re-write (#154)
* fix (docs): Introduction

* fix (docs): Cleaned up core concepts

* fix (docs): Rename section

* chore: Code Rabbit

* chore (docs): Code Rabbit

* nit

* chore (docs): Code Rabbit
2025-07-03 14:32:13 -04:00
doria eb748e8009
fix: prepare_threshold: None in migration/provision (#152)
* fix: prepare_threshold: None in migration/provision

* chore: version bump
2025-07-02 16:50:48 -04:00
doria df4261f78f
2.0.2->2.0.3 (#151)
* 2.0.2->2.0.3

* fix: changelog parity
2025-07-01 16:21:57 -04:00
Rajat Ahuja e2e6ed94ac
Merge pull request #149 from plastic-labs/rajat/fix-type-check
bugfix: avoid runtime NameError by using string annotations for Event and Hint
2025-06-30 15:10:25 -04:00
Rajat Ahuja 37a934cfa9 bugfix: avoid runtime NameError by using string annotations for Event and Hint 2025-06-30 13:46:11 -04:00
Rajat Ahuja 2d9e48e681
make prefix v2 for v2 api reference (#148)
* make prefix v2 for v2 api reference

* Fix Changelog Compatability

---------

Co-authored-by: Vineeth Voruganti <13438633+VVoruganti@users.noreply.github.com>
2025-06-27 17:02:55 -04:00
doria e0167a10fc
fix: use engine args on both engines in db.py (#147)
* fix: use engine args on both engines in db.py

* fix: use one engine everywhere

* 2.0.1->2.0.2
2025-06-27 15:26:29 -04:00
doria 684b2b9777
chore: 2.0.0->2.0.1 (#146)
* chore: 2.0.0->2.0.1

* chore: python sdk uv.lock

* chore (docs): Sync Version Updates

---------

Co-authored-by: Vineeth Voruganti <13438633+VVoruganti@users.noreply.github.com>
2025-06-26 17:25:52 -04:00
doria cb3b6104bd
feat: add new ergo sdks to monorepo (#142)
* feat: add new ergo sdks to monorepo

* fix: resolve some pyright linter errors

* fix: python sdk (mostly) typesafe now

* feat: add tests for python sdk, mostly good pyright

* fix: update sdks/core to 1.1.0

* uv sync

* fix: body->query

* chore: pyright wrangling and coderabbit nits

* fix: ts lib search working

* chore: coderabbit nits
2025-06-26 17:07:23 -04:00
doria 4d5aa4cdb2
fix: add non-nesting session level deriver status (#145) 2025-06-26 15:34:55 -04:00
Vineeth Voruganti 326ea24955
Peer Paradigm Documentation (#133)
* new layout boilerplate

* feat: new sdk documentation

* feat: features documentation

* fix (docs): Update API Reference

* chore (mintlify): Upgrade mintlify

* fix (docs): titles

* feat: glossary of terms

* feat (docs): Add Contextual Menu

* chore: clean up architecture.mdx

* chore: remove old/unused files, clean up architecture/intro

* fix: use `id` over `name` in curl requests

* chore: nits on faq

* chore: refactor mermaid

* feat: quickstart

* chore: quickstart doc casing + info about dialectic response

* chore: update discord spellbook

* chore: update streaming-response, dialectic-endpoint, remove old simple-memory

* chore: ts everywhere, update guided tutorial

* add get context, search spellbooks

* chore: rm faq page

* fix contribution page

* feat: platform overview and screen grabs

* add get context to features

* chore: fix self-hosting page

* chore: move deriver description into architecture, flesh it out, stub out dialectic architecture

* add versioning to docs

* quickstart reformat and links

* fix v1 api reference

* chore: rm deriver from docs sidebar

* chore: fix internal links

* add sdk changelog and update latest release to 2.0.0 for api changelog

* glossary updates and icons

* ♻️ Feat: layout for architecture page

feat: layout reformat for architecture page

* fix changelog

*  Feat: vibe coder one-shot prompts

feat: vibe coder one-shot prompts

* chore: align get context text to spellbook

* condense changelog pages

* feat: add working-rep spellbook

* chore: rename Changelog group

* chore: Code Rabbit Suggestions

* fix (docs): Update Changelog and API Reference Introduction

* fix: remove accordion from glossary

* feat: document new filtering system

* feat: add telegram bot guide (using new template repo)

* checkpoint

* Docs MVP

* chore (docs): Code Rabbit

* Reorganization

---------

Co-authored-by: Erosika <eri@plasticlabs.ai>
Co-authored-by: Benjamin McCormick <docterformer@protonmail.com>
Co-authored-by: Rajat Ahuja <rahuja445@gmail.com>
2025-06-26 14:57:09 -04:00
Rajat Ahuja c36d2ac449
add MessageEmbedding table (#144)
* fix (sync): Add sync script between public and private remotes

* add embedding column to messages

* add semantic search and tests

* undo db.py change

* use embedding client

* types

* rm .github/workflows/sync-public-changes.yml

* CodeRabbit comments

* compute token count with pydantic

* semantic default None + fix tests

* types and fix make token_count private

* add MessageEmbedding table

* CR and type

* undo change to schema

* fix session / peer where

* add tests to validate embedding creation + search

* CR comment, add chunking todo

* fix get_or_create_collection with peer/target in agent.chat

* move embedding client and implement chunking

* rm comments

* fix bug in migration

* add script to generate message embeddings

* default all workspaces

* CR comments

---------

Co-authored-by: Vineeth Voruganti <13438633+VVoruganti@users.noreply.github.com>
2025-06-26 14:52:18 -04:00
doria 41bf5adc92
feat: add complex arbitrary filtering on all objects (#140)
* feat: add complex arbitrary filtering on all objects

* fix: safe numeric casting and application of comparators

* fix: add way more tests, fix bugs with filter parsing

* chore: pass model_class as arugment to apply_filter

* fix: default to not caring about is_active in get_sessions_for_peer

* fix: address coderabbit complaints (valid)

* fix: throw filter errors when necessary, validate inputs and handle edge cases with more tests

* fix: remove all type errors and most type warnings

* fix: don't use db in tests that don't need it
cheat: sprinkle in some pyright: ignore in filter.py

* fix: allowlist for filtering -- no filtering by content, message id, or anything internal

* fix: handle mixed types in metadata, add tests

* chore: refine types

* chore: rename fiter param everywhere
2025-06-26 12:25:30 -04:00
doria e1804b3ef1
bugfix: use new DB_SCHEMA config label in migrations; use internal_metadata on documents in CRUD (#143)
* fix: swap to DB_SCHEMA; swap to internal_metadata

* fix: use settings for last remaining env vars
2025-06-26 11:40:55 -04:00
doria 2874e136fb
fix: remove hardcoded responses (#141) 2025-06-25 14:50:13 -04:00
Ayush Paul 24bf8eeeb4
Typing (#137)
* type stuff

* add action

* bump python

* Refactor type annotations and update tracking decorators in agent and dependencies modules. Replace ai_track with track from src.utils.types, and enhance type hints for better clarity. Update pyproject.toml to allow untyped libraries.

* type everything basically

* fix migration typing

* type like crazy

* remove usless tests

* Update mocks in tests to use AsyncMock for dialectic_call and dialectic_stream, ensuring proper async behavior in test cases. Adjust mock return values for consistency and clarity.

* Update src/deriver/tom/single_prompt.py

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

* Update src/deriver/tom/long_term.py

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

* Enhance CLAUDE.md documentation with additional details on core concepts, API structure, and development commands. Update command syntax for running server and tests to use 'uv run' for consistency. Improve clarity in configuration and architectural decisions sections.

* Refactor type annotations in CRUD functions to accept more flexible filter types, changing from dict[str, str] to dict[str, Any]. Clean up logging in agent.py by removing unnecessary timing logs for user representation generation and query execution.

* Remove unused import of ai_track from long_term.py and single_prompt.py to clean up the codebase.

* pass tests

* update some stuff

* fix unused

* ruff

* make stuff work again

* Add LLM_GROQ_API_KEY to GitHub Actions and format tom_inference parameters

* test

* test

* Refactor LLM settings to use 'gemini' provider and update related model parameters; remove unused API keys from GitHub Actions workflow.

* Update LLM settings to use 'anthropic' provider and change model to 'claude-3-5-haiku-20241022'; maintain existing summarization provider.

* test

* llm provider stuff

* update

* revert

* Integrate client management for LLM providers across various modules; remove deprecated environment variable setup for API keys.

* only if key avaialble

* Refactor type hints and improve schema definitions for queue processing; remove unused imports and enhance function signatures for clarity.

* fix test

* model

* test

* Update LLM provider type annotations and enhance client management; replace Provider with Providers for better type handling in config and clients modules.

* Refactor LLM provider handling to default to "openai" for custom providers across multiple modules; update type annotations and improve client management for consistency.

---------

Co-authored-by: Dani Balcells <18307962+danibalcells@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-06-24 18:29:13 -04:00