Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: block/goose
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v0.9.6
Choose a base ref
...
head repository: block/goose
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: main
Choose a head ref
Loading
Showing with 5,236 additions and 836 deletions.
  1. +18 −7 .github/workflows/ci.yaml
  2. +15 −0 .github/workflows/deploy_docs.yaml
  3. +53 −0 .github/workflows/license-check.yml
  4. +41 −0 .github/workflows/release-monitor.yml
  5. +320 −0 .github/workflows/scripts/check_licenses.py
  6. +248 −0 .github/workflows/scripts/test_check_licenses.py
  7. +12 −0 .github/workflows/test-events/pull_request.json
  8. +7 −2 .gitignore
  9. +7 −0 .vscode/extensions.json
  10. +15 −0 .vscode/settings.json
  11. +1 −1 ARCHITECTURE.md
  12. +43 −0 CHANGELOG.md
  13. +13 −7 CONTRIBUTING.md
  14. +53 −22 README.md
  15. +25 −0 docs/blog/.authors.yml
  16. BIN docs/blog/images/goose-framework-1.0.png
  17. BIN docs/blog/images/goose-mcp.png
  18. BIN docs/blog/images/resolving-ci-issues/goose-github-ci.png
  19. BIN docs/blog/images/screenshot-driven-development-blog/brutalism-calendar.png
  20. BIN docs/blog/images/screenshot-driven-development-blog/claymorphism-calendar.png
  21. BIN docs/blog/images/screenshot-driven-development-blog/glassmorphism-calendar.png
  22. BIN docs/blog/images/screenshot-driven-development-blog/goose-prototypes-calendar.png
  23. BIN docs/blog/images/screenshot-driven-development-blog/neumorphism-calendar.png
  24. BIN docs/blog/images/screenshot-driven-development-blog/screenshot-calendar-og.png
  25. BIN docs/blog/images/screenshot-driven-development-blog/screenshot-driven-development.png
  26. BIN docs/blog/images/whats-new-in-goose-v1/goose-gui.png
  27. BIN docs/blog/images/whats-new-in-goose-v1/goose-v1.0-beta.png
  28. +2 −0 docs/blog/index.md
  29. +293 −0 docs/blog/posts/2024-11-22-screenshot-driven-development.md
  30. +64 −0 docs/blog/posts/2024-12-06-previewing-goose-v1.md
  31. +67 −0 docs/blog/posts/2024-12-10-goose-mcp.md
  32. +169 −0 docs/blog/posts/2024-12-10-resolving-ci-issues.md
  33. +19 −65 docs/configuration.md
  34. +26 −22 docs/guidance/getting-started.md
  35. +85 −0 docs/guidance/managing-goose-sessions.md
  36. +13 −14 docs/guidance/tips.md
  37. +42 −0 docs/guidance/using-goose-free.md
  38. +54 −0 docs/guidance/using-goosehints.md
  39. +18 −77 docs/index.md
  40. +46 −3 docs/installation.md
  41. +55 −20 docs/plugins/available-toolkits.md
  42. +14 −1 docs/plugins/cli.md
  43. +94 −10 docs/plugins/providers.md
  44. +124 −18 docs/plugins/using-toolkits.md
  45. +120 −0 docs/quickstart.md
  46. +0 −1 docs/reference/goose/utils/check_shell_command.md
  47. +1 −0 docs/reference/goose/utils/shell/is_dangerous_command.md
  48. +2 −2 docs/reference/index.md
  49. +33 −9 justfile
  50. +24 −7 mkdocs.yml
  51. +0 −5 packages/exchange/.env.langfuse.local
  52. +5 −2 packages/exchange/pyproject.toml
  53. +4 −3 packages/exchange/src/exchange/exchange.py
  54. +0 −84 packages/exchange/src/exchange/langfuse_wrapper.py
  55. +20 −0 packages/exchange/src/exchange/observers/__init__.py
  56. +43 −0 packages/exchange/src/exchange/observers/base.py
  57. +100 −0 packages/exchange/src/exchange/observers/langfuse.py
  58. +6 −1 packages/exchange/src/exchange/providers/anthropic.py
  59. +19 −4 packages/exchange/src/exchange/providers/base.py
  60. +1 −1 packages/exchange/src/exchange/providers/bedrock.py
  61. +6 −1 packages/exchange/src/exchange/providers/databricks.py
  62. +6 −1 packages/exchange/src/exchange/providers/google.py
  63. +1 −1 packages/exchange/src/exchange/providers/groq.py
  64. +6 −0 packages/exchange/src/exchange/providers/ollama.py
  65. +1 −1 packages/exchange/src/exchange/providers/openai.py
  66. +16 −5 packages/exchange/src/exchange/utils.py
  67. +134 −0 packages/exchange/tests/providers/cassettes/test_google_vision.yaml
  68. +1 −1 packages/exchange/tests/providers/test_anthropic.py
  69. +2 −2 packages/exchange/tests/providers/test_azure.py
  70. +1 −1 packages/exchange/tests/providers/test_bedrock.py
  71. +1 −1 packages/exchange/tests/providers/test_databricks.py
  72. +17 −2 packages/exchange/tests/providers/test_google.py
  73. +1 −2 packages/exchange/tests/providers/test_openai.py
  74. +2 −2 packages/exchange/tests/test_base.py
  75. +0 −46 packages/exchange/tests/test_langfuse_wrapper.py
  76. +61 −0 packages/exchange/tests/test_observer.py
  77. +54 −0 packages/exchange/tests/test_utils.py
  78. +20 −4 pyproject.toml
  79. +1 −16 src/goose/cli/config.py
  80. +31 −4 src/goose/cli/main.py
  81. +47 −32 src/goose/cli/session.py
  82. +3 −0 src/goose/cli/session_notifier.py
  83. +18 −4 src/goose/profile.py
  84. +49 −0 src/goose/synopsis/bash.py
  85. +4 −10 src/goose/synopsis/moderator.py
  86. +96 −0 src/goose/synopsis/process_manager.py
  87. +157 −0 src/goose/synopsis/text_editor.py
  88. +136 −196 src/goose/synopsis/toolkit.py
  89. +11 −0 src/goose/synopsis/util.py
  90. +5 −10 src/goose/toolkit/developer.py
  91. +103 −0 src/goose/toolkit/google_workspace.py
  92. +207 −0 src/goose/toolkit/memory.py
  93. +41 −0 src/goose/toolkit/prompts/browser.jinja
  94. +3 −0 src/goose/toolkit/prompts/google_workspace.jinja
  95. +69 −0 src/goose/toolkit/prompts/memory.jinja
  96. +470 −0 src/goose/toolkit/web_browser.py
  97. +129 −0 src/goose/tools/gmail_client.py
  98. +50 −0 src/goose/tools/google_calendar_client.py
  99. +146 −0 src/goose/tools/google_oauth_handler.py
  100. +28 −6 src/goose/utils/_cost_calculator.py
  101. +1 −1 src/goose/utils/_create_exchange.py
  102. +49 −0 src/goose/utils/command_checker.py
  103. +21 −0 src/goose/utils/goosehints.py
  104. +1 −33 src/goose/utils/shell.py
  105. +5 −0 src/goose/utils/time_utils.py
  106. +10 −0 tests/cli/test_main.py
  107. +151 −21 tests/cli/test_session.py
  108. +8 −8 tests/synopsis/test_process_management.py
  109. +40 −20 tests/synopsis/test_toolkit.py
  110. +6 −2 tests/test_profile.py
  111. +13 −1 tests/toolkit/test_developer.py
  112. +135 −0 tests/toolkit/test_google_workspace.py
  113. +143 −0 tests/toolkit/test_memory.py
  114. +32 −0 tests/toolkit/test_web_browser.py
  115. +11 −1 tests/utils/test_check_shell_command.py
  116. +42 −13 tests/utils/test_cost_calculator.py
25 changes: 18 additions & 7 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
@@ -2,7 +2,12 @@ name: CI

on:
pull_request:
branches: [main]
branches:
- main # Trigger CI on PRs to main

push:
branches:
- main # Trigger CI on pushes to main

jobs:
exchange:
@@ -11,8 +16,10 @@ jobs:
steps:
- uses: actions/checkout@v4

- name: Install UV
run: curl -LsSf https://astral.sh/uv/install.sh | sh
- name: Install uv
uses: astral-sh/setup-uv@v3
with:
version: "0.5.4"

- name: Source Cargo Environment
run: source $HOME/.cargo/env
@@ -33,8 +40,10 @@ jobs:
steps:
- uses: actions/checkout@v4

- name: Install UV
run: curl -LsSf https://astral.sh/uv/install.sh | sh
- name: Install uv
uses: astral-sh/setup-uv@v3
with:
version: "0.5.4"

- name: Source Cargo Environment
run: source $HOME/.cargo/env
@@ -66,8 +75,10 @@ jobs:
steps:
- uses: actions/checkout@v4

- name: Install UV
run: curl -LsSf https://astral.sh/uv/install.sh | sh
- name: Install uv
uses: astral-sh/setup-uv@v3
with:
version: "0.5.4"

- name: Source Cargo Environment
run: source $HOME/.cargo/env
15 changes: 15 additions & 0 deletions .github/workflows/deploy_docs.yaml
Original file line number Diff line number Diff line change
@@ -10,6 +10,15 @@ on:
- 'mkdocs.yml'
- '.github/workflows/deploy_docs.yaml'

pull_request:
branches:
- main
paths:
- 'docs/**'
- 'mkdocs.yml'
- '.github/workflows/deploy_docs.yaml'


jobs:
deploy:
runs-on: ubuntu-latest
@@ -21,5 +30,11 @@ jobs:
- name: Install UV
uses: astral-sh/setup-uv@v3

- name: Create UV virtual environment
run: uv venv

- name: Install dependencies
run: uv pip install "mkdocs-material[imaging]" Pillow cairosvg

- name: Build the documentation
run: uv run mkdocs gh-deploy --force
53 changes: 53 additions & 0 deletions .github/workflows/license-check.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
---
name: License Check

on:
pull_request: # Trigger license check on any PRs
paths:
- '**/pyproject.toml'
- '.github/workflows/license-check.yml'
- '.github/workflows/scripts/check_licenses.py'

push: # Trigger license check on pushes to main
branches:
- main
paths: # TODO: can't DRY unless https://github.com/actions/runner/issues/1182
- '**/pyproject.toml'
- '.github/workflows/license-check.yml'
- '.github/workflows/scripts/check_licenses.py'

jobs:
check-licenses:
name: Check Package Licenses
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.10'

- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install tomli requests urllib3
- name: Check licenses
run: |
python .github/workflows/scripts/check_licenses.py \
pyproject.toml || exit_code=$?
if [ "${exit_code:-0}" -ne 0 ]; then
echo "::error::Found packages with disallowed licenses"
exit 1
fi
- name: Check Exchange licenses
run: |
python .github/workflows/scripts/check_licenses.py \
packages/exchange/pyproject.toml || exit_code=$?
if [ "${exit_code:-0}" -ne 0 ]; then
echo "::error::Found packages with disallowed licenses in exchange"
exit 1
fi
41 changes: 41 additions & 0 deletions .github/workflows/release-monitor.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
name: Release Monitor

on:
release:
types: [published]
workflow_dispatch: # Add this line to enable manual triggering

jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2

- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: '3.x'

- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install pipx
pipx install goose-ai
- name: Check Goose AI Version
run: goose version

- name: Create Issue on Failure
if: failure()
uses: actions/github-script@v3
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
const { owner, repo } = context.repo;
await github.issues.create({
owner: owner,
repo: repo,
title: 'Release Build Failed',
body: `The release for version ${{ github.event.release.tag_name }} failed to run. Please investigate the issue.`
});
Loading