mirror of
https://github.com/aaif-goose/goose.git
synced 2026-07-03 14:10:03 +02:00
correct binary for electron app and notes on building
This commit is contained in:
-144
@@ -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)
|
||||
-108
@@ -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
|
||||
@@ -32,6 +32,13 @@ Goose is your on-machine developer agent, working for you, on your terms
|
||||
</p>
|
||||
|
||||
|
||||
## Building
|
||||
|
||||
```sh
|
||||
uv run download_tokenizer_files.py
|
||||
cargo build
|
||||
```
|
||||
|
||||
## Running the CLI
|
||||
|
||||
#### OpenAI provider (default):
|
||||
|
||||
Binary file not shown.
Reference in New Issue
Block a user