correct binary for electron app and notes on building

This commit is contained in:
Mic Neale
2024-11-15 10:36:26 +11:00
parent 4ac029c692
commit 2eecaaad14
4 changed files with 7 additions and 252 deletions
-144
View File
@@ -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
View File
@@ -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
+7
View File
@@ -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.