diff --git a/CHANGELOG.md b/CHANGELOG.md deleted file mode 100644 index d153aa3266..0000000000 --- a/CHANGELOG.md +++ /dev/null @@ -1,144 +0,0 @@ -# Changelog - -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). - -## [0.9.11] - 2024-11-05 -- fix: removed the unexpected tracing message (#219) - -## [0.9.10] - 2024-11-05 -- fix: bump version of exchange to 0.9.9 - -## [0.9.9] - 2024-11-04 -- fix: only run summarize when there is something to summarize vs up front (#195) -- feat: add browser toolkit (#179) -- docs: reworks README to be outcome based (#151) -- chore: license-checker improvements (#212) -- fix: prompt rendering (#208) -- fix: Cost calculation enhancement (#207) -- refactor: used recommended_models function as default model (#209) -- feat: default to synopsis (#206) -- chore: housekeeping (#202) -- feat: reduce tool entrypoints in synopsis for text editor, bash, process manager (#191) -- feat: list moderators (#204) -- chore: Minor changes in providers envs logic (#161) -- chore: add `.vscode` workspace settings and suggested extensions (#200) -- feat: license checker (#201) -- feat: include new anthropic model in docs and recommended config (#198) -- feat: tiny change so you know what processing is doing (#196) -- docs: correct intellij link (#197) -- docs: remove small duplication (#194) -- chore: add tracing option to run and group traces under session name (#187) -- docs: fix mkdocs, update to new references (#193) -- feat: support optional params jsonschema conversion in exchange (#188) -- fix: correct context loading from session new/overwrite and resume (#180) -- feat: trying a license checker (#184) -- docs: getting index.md in sync with readme (#183) -- chore: Update block-open-source ref to block (#181) -- fix: just adding stuff from developer.py to synopsis developer (#182) -- fix: Simplifed langfuse auth check (#177) -- test: add vision tests for google (#160) -- fix: adding a release checker (#176) - -## [0.9.8] - 2024-10-20 -- fix: added specific ai-exchange version and check path is None to avoid error after starting goose (#174) - -## [0.9.7] - 2024-10-18 -- chore: update tiktoken to support python 3.13 - -## [0.9.6] - 2024-10-18 -- fix: update summarizer_exchange model to use default model from input exchange (#139) -- feat: Add synopisis approach for the core goose loop (#166) -- feat: web browsing (#154) -- chore: restrict python version (#162) -- feat: Run with resume session (#153) -- refactor: move langfuse wrapper to a module in exchange instead of a package (#138) -- docs: add subheaders to the 'Other ways to run Goose' section (#155) -- fix: Remove tools from exchange when summarizing files (#157) -- chore: use primitives instead of typing imports and fixes completion … (#149) -- chore: make vcr tests pretty-print JSON (#146) - -## [0.9.5] - 2024-10-15 -- chore: updates ollama default model from mistral-nemo to qwen2.5 (#150) -- feat: add vision support for Google (#141) -- fix: session resume with arg handled incorrectly (#145) -- docs: add release instructions to CONTRIBUTING.md (#143) -- docs: add link to action, IDE words (#140) -- docs: goosehints doc fix only (#142) - -## [0.9.4] - 2024-10-10 - -- revert: "feat: add local langfuse tracing option (#106)" -- feat: add local langfuse tracing option (#106) -- feat: add groq provider (#134) -- feat: add a deep thinking reasoner model (o1-preview/mini) (#68) -- fix: use concrete SessionNotifier (#135) -- feat: add guards to session management (#101) -- fix: Set default model configuration for the Google provider. (#131) -- test: convert Google Gemini tests to VCR (#118) -- chore: Add goose providers list command (#116) -- docs: working ollama for desktop (#125) -- docs: format and clean up warnings/errors (#120) -- docs: update deploy workflow (#124) -- feat: Implement a goose run command (#121) -- feat: saved api_key to keychain for user (#104) -- docs: add callout plugin (#119) -- chore: add a page to docs for Goose application examples (#117) -- fix: exit the goose and show the error message when provider environment variable is not set (#103) -- fix: Update OpenAI pricing per https://openai.com/api/pricing/ (#110) -- fix: update developer tool prompts to use plan task status to match allowable statuses update_plan tool call (#107) -- fix: removed the panel in the output so that the user won't have unnecessary pane borders in the copied content (#109) -- docs: update links to exchange to the new location (#108) -- chore: setup workspace for exchange (#105) -- fix: resolve uvx when using a git client or IDE (#98) -- ci: add include-markdown for mkdocs (#100) -- chore: fix broken badge on readme (#102) -- feat: add global optional user goosehints file (#73) -- docs: update docs (#99) - -## [0.9.3] - 2024-09-25 - -- feat: auto save sessions before next user input (#94) -- fix: removed the diff when default profile changes (#92) -- feat: add shell-completions subcommand (#76) -- chore: update readme! (#96) -- chore: update docs again (#77) -- fix: remove overly general match for long running commands (#87) -- fix: default ollama to tested model (#88) -- fix: Resize file in screen toolkit (#81) -- fix: enhance shell() to know when it is interactive (#66) -- docs: document how to run goose fully from source from any dir (#83) -- feat: track cost and token usage in log file (#80) -- chore: add link to docs in read me (#85) -- docs: add in ollama (#82) -- chore: add just command for releasing goose (#55) -- feat: support markdown plans (#79) -- feat: add version options (#74) -- docs: fixing exchange url to public version (#67) -- docs: Update CONTRIBUTING.md (#69) -- chore: create mkdocs for goose (#70) -- docs: fix broken link (#71) -- feat: give commands the ability to execute logic (#63) -- feat: jira toolkit (#59) -- feat: run goose in a docker-style sandbox (#44) - -## [0.9.0] - 2024-09-10 - -This also updates the minimum version of exchange to 0.9.0. - -- fix: goose should track files it reads and not overwrite changes (#46) -- docs: Small dev notes for using exchange from source (#50) -- fix: typo in exchange method rewind (#54) -- fix: remove unsafe pop of messages (#47) -- chore: Update LICENSE (#53) -- chore(docs): update is_dangerous_command method description (#48) -- refactor: improve safety rails speed and prompt (#45) -- feat: make goosehints jinja templated (#43) -- ci: enforce PR title follows conventional commit (#14) -- feat: show available toolkits (#37) -- feat: adding in ability to provide per repo hints (#32) -- chore: apply ruff and add to CI (#40) -- feat: added some regex based checks for dangerous commands (#38) -- chore: Update publish github workflow to check package versions before publishing (#19) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md deleted file mode 100644 index ff5f841dbe..0000000000 --- a/CONTRIBUTING.md +++ /dev/null @@ -1,108 +0,0 @@ -# Contributing - -We welcome Pull Requests for general contributions. If you have a larger new feature or any questions on how to develop a fix, we recommend you open an [issue][issues] before starting. - -## Prerequisites - -Goose uses [uv][uv] for dependency management, and formats with [ruff][ruff]. -Clone goose and make sure you have installed `uv` to get started. When you use -`uv` below in your local goose directly, it will automatically setup the virtualenv -and install dependencies. - -We provide a shortcut to standard commands using [just][just] in our `justfile`. - -## Development - -Now that you have a local environment, you can make edits and run our tests! - -### Run Goose - -If you've made edits and want to try them out, use - -``` -uv run goose session start -``` - -or other `goose` commands. - -If you want to run your local changes but in another directory, you can use the path in -the virtualenv created by uv: - -``` -alias goosedev=`uv run which goose` -``` - -You can then run `goosedev` from another dir and it will use your current changes. - -### Run Tests - -To run the test suite against your edges, use `pytest`: - -```sh -uv run pytest tests -m "not integration" -``` - -or, as a shortcut, - -```sh -just test -``` - -### Enable traces in Goose with [locally hosted Langfuse](https://langfuse.com/docs/deployment/self-host) -> [!NOTE] -> This integration is experimental and we don't currently have integration tests for it. - -Developers can use locally hosted Langfuse tracing by applying the custom `observe_wrapper` decorator defined in `packages/exchange/src/langfuse_wrapper.py` to functions for automatic integration with Langfuse. - -- Run `just langfuse-server` to start your local Langfuse server. It requires Docker. -- Go to http://localhost:3000 and log in with the default email/password output by the shell script (values can also be found in the `.env.langfuse.local` file). -- Run Goose with the --tracing flag enabled i.e., `goose session start --tracing` -- View your traces at http://localhost:3000 - -To extend tracing to additional functions, import `from exchange.langfuse_wrapper import observe_wrapper` and use the `observe_wrapper()` decorator on functions you wish to enable tracing for. `observe_wrapper` functions the same way as Langfuse's observe decorator. - -Read more about Langfuse's decorator-based tracing [here](https://langfuse.com/docs/sdk/python/decorators). - -## Exchange - -The lower level generation behind goose is powered by the [`exchange`][ai-exchange] package, also in this repo. - -Thanks to `uv` workspaces, any changes you make to `exchange` will be reflected in using your local goose. To run tests -for exchange, head to `packages/exchange` and run tests just like above - -```sh -uv run pytest tests -m "not integration" -``` - -## Evaluations - -Given that so much of Goose involves interactions with LLMs, our unit tests only go so far to confirming things work as intended. - -We're currently developing a suite of evaluations, to make it easier to make improvements to Goose more confidently. - -In the meantime, we typically incubate any new additions that change the behavior of the Goose through **opt-in** plugins - `Toolkit`s, `Moderator`s, and `Provider`s. We welcome contributions of plugins that add new capabilities to *goose*. We recommend sending in several examples of the new capabilities in action with your pull request. - -Additions to the [developer toolkit][developer] change the core performance, and so will need to be measured carefully. - -## Conventional Commits - -This project follows the [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) specification for PR titles. Conventional Commits make it easier to understand the history of a project and facilitate automation around versioning and changelog generation. - -## Release - -In order to release a new version of goose, you need to do the following: -1. Update CHANGELOG.md. To get the commit messages since last release, run: `just release-notes` -2. Update version in `pyproject.toml` for `goose` and package dependencies such as `exchange` -3. Create a PR and merge it into main branch -4. Tag the HEAD commit in main branch. To do this, switch to main branch and run: `just tag-push` -5. Publish a new release from the [Github Release UI](https://github.com/block/goose/releases) - - -[issues]: https://github.com/block/goose/issues -[goose-plugins]: https://github.com/block-open-source/goose-plugins -[ai-exchange]: https://github.com/block/goose/tree/main/packages/exchange -[developer]: https://github.com/block/goose/blob/dfecf829a83021b697bf2ecc1dbdd57d31727ddd/src/goose/toolkit/developer.py -[uv]: https://docs.astral.sh/uv/ -[ruff]: https://docs.astral.sh/ruff/ -[just]: https://github.com/casey/just -[adding-toolkit]: https://block.github.io/goose/configuration.html#adding-a-toolkit diff --git a/README.md b/README.md index 993c5c68e4..3a431f3d8a 100644 --- a/README.md +++ b/README.md @@ -32,6 +32,13 @@ Goose is your on-machine developer agent, working for you, on your terms

+## Building + +```sh +uv run download_tokenizer_files.py +cargo build +``` + ## Running the CLI #### OpenAI provider (default): diff --git a/ui/desktop/src/bin/goosed b/ui/desktop/src/bin/goosed index 8d0139631e..5df274087a 100755 Binary files a/ui/desktop/src/bin/goosed and b/ui/desktop/src/bin/goosed differ