Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: a system for non developers to augment developer system #524

Merged
merged 23 commits into from
Jan 1, 2025

Conversation

michaelneale
Copy link
Collaborator

@michaelneale michaelneale commented Dec 26, 2024

this is a system which augments the developer system with features that a non developer can make use of, running scripts, caching results, crawling, searching etc - without needing to direct towards specific development tools.

This simply adds a new system on top (just one system - only dependency is tempfile) - and it is enabled in the GUI conditionally (if not in a git repo)

Also fixed up some flaky tests on the way.

eg:

        web_scrape
          - Fetch content from websites and APIs
          - Save as text, JSON, or binary files
          - Content is cached locally for later use
          - if website doesn't support it find an alternative way.

        data_process
          - Process text data with common operations
          - Filter, extract, sort, count, and more
          - Works with both small and large files
          - Results are saved to new files

        quick_script
          - Create and run simple automation scripts
          - Supports Shell (such as bash), AppleScript (on macos), Ruby (on macos)
          - Scripts can save their output to files

        web_search
          - Search the web using DuckDuckGo's API for general topics or keywords

        cache
          - Manage your cached files
          - List, view, delete files
          - Clear all cached data

        The system automatically manages:
        - Cache directory: {cache_dir}
        - File organization and cleanup

image

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot reviewed 4 out of 4 changed files in this pull request and generated no comments.

Copy link

Desktop App for this PR

The following build is available for testing:

The app is signed and notarized for macOS. After downloading, unzip the file and drag the Goose.app to your Applications folder.

This link is provided by nightly.link and will work even if you're not logged into GitHub.

Copy link

Desktop App for this PR

The following build is available for testing:

The app is signed and notarized for macOS. After downloading, unzip the file and drag the Goose.app to your Applications folder.

This link is provided by nightly.link and will work even if you're not logged into GitHub.

Copy link

Desktop App for this PR

The following build is available for testing:

The app is signed and notarized for macOS. After downloading, unzip the file and drag the Goose.app to your Applications folder.

This link is provided by nightly.link and will work even if you're not logged into GitHub.

Copy link

Desktop App for this PR

The following build is available for testing:

The app is signed and notarized for macOS. After downloading, unzip the file and drag the Goose.app to your Applications folder.

This link is provided by nightly.link and will work even if you're not logged into GitHub.

@michaelneale michaelneale requested a review from Copilot December 28, 2024 03:26

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot reviewed 4 out of 4 changed files in this pull request and generated no comments.

Copy link

Desktop App for this PR

The following build is available for testing:

The app is signed and notarized for macOS. After downloading, unzip the file and drag the Goose.app to your Applications folder.

This link is provided by nightly.link and will work even if you're not logged into GitHub.

@michaelneale michaelneale changed the title Micn/paradev feat: a system for non developers to augment developer system Dec 28, 2024
Copy link

Desktop App for this PR

The following build is available for testing:

The app is signed and notarized for macOS. After downloading, unzip the file and drag the Goose.app to your Applications folder.

This link is provided by nightly.link and will work even if you're not logged into GitHub.

Copy link

Desktop App for this PR

The following build is available for testing:

The app is signed and notarized for macOS. After downloading, unzip the file and drag the Goose.app to your Applications folder.

This link is provided by nightly.link and will work even if you're not logged into GitHub.

Copy link

Desktop App for this PR

The following build is available for testing:

The app is signed and notarized for macOS. After downloading, unzip the file and drag the Goose.app to your Applications folder.

This link is provided by nightly.link and will work even if you're not logged into GitHub.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot reviewed 6 out of 7 changed files in this pull request and generated no comments.

Files not reviewed (1)
  • .github/workflows/desktop-app-release.yaml: Evaluated as low risk
@michaelneale michaelneale requested a review from Copilot December 30, 2024 05:07
Copy link

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot reviewed 6 out of 7 changed files in this pull request and generated 6 comments.

Files not reviewed (1)
  • .github/workflows/desktop-app-release.yaml: Evaluated as low risk
Comments suppressed due to low confidence (1)

crates/goose-server/src/state.rs:63

  • Remove the dbg! macro as it is used for debugging and should not be in production code.
dbg!("Skipping MemorySystem (GOOSE_SERVER__MEMORY not set)");

@@ -21,15 +36,34 @@ impl AppState {
pub fn new(provider_config: ProviderConfig, secret_key: String) -> Result<Self> {
let provider = factory::get_provider(provider_config.clone())?;
let mut agent = Agent::new(provider);

dbg!("Adding DeveloperSystem");
Copy link
Preview

Copilot AI Dec 30, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove the dbg! macro as it is used for debugging and should not be in production code.

Copilot is powered by AI, so mistakes are possible. Review output carefully before use.

Positive Feedback
Negative Feedback

Provide additional feedback

Please help us improve GitHub Copilot by sharing more details about this comment.

Please select one or more of the options
let has_hints = has_goosehints_file();

if !in_git && !has_hints {
dbg!("Adding NonDeveloperSystem");
Copy link
Preview

Copilot AI Dec 30, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove the dbg! macro as it is used for debugging and should not be in production code.

Suggested change
dbg!("Adding NonDeveloperSystem");
agent.add_system(Box::new(NonDeveloperSystem::new()));

Copilot is powered by AI, so mistakes are possible. Review output carefully before use.

Positive Feedback
Negative Feedback

Provide additional feedback

Please help us improve GitHub Copilot by sharing more details about this comment.

Please select one or more of the options
// Add memory system only if GOOSE_SERVER__MEMORY is set to "true"
if let Ok(memory_enabled) = env::var("GOOSE_SERVER__MEMORY") {
if memory_enabled.to_lowercase() == "true" {
dbg!("Adding MemorySystem");
Copy link
Preview

Copilot AI Dec 30, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove the dbg! macro as it is used for debugging and should not be in production code.

Suggested change
dbg!("Adding MemorySystem");
agent.add_system(Box::new(MemorySystem::new()));

Copilot is powered by AI, so mistakes are possible. Review output carefully before use.

Positive Feedback
Negative Feedback

Provide additional feedback

Please help us improve GitHub Copilot by sharing more details about this comment.

Please select one or more of the options
agent.add_system(Box::new(MemorySystem::new()));
} else {
dbg!("Skipping MemorySystem (GOOSE_SERVER__MEMORY not 'true')");
Copy link
Preview

Copilot AI Dec 30, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove the dbg! macro as it is used for debugging and should not be in production code.

Copilot is powered by AI, so mistakes are possible. Review output carefully before use.

Positive Feedback
Negative Feedback

Provide additional feedback

Please help us improve GitHub Copilot by sharing more details about this comment.

Please select one or more of the options
}

dbg!("Adding GooseHintsSystem");
Copy link
Preview

Copilot AI Dec 30, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove the dbg! macro as it is used for debugging and should not be in production code.

Suggested change
dbg!("Adding GooseHintsSystem");
// dbg!("Adding GooseHintsSystem");

Copilot is powered by AI, so mistakes are possible. Review output carefully before use.

Positive Feedback
Negative Feedback

Provide additional feedback

Please help us improve GitHub Copilot by sharing more details about this comment.

Please select one or more of the options
crates/goose-server/src/state.rs Outdated Show resolved Hide resolved
Copy link

Desktop App for this PR

The following build is available for testing:

The app is signed and notarized for macOS. After downloading, unzip the file and drag the Goose.app to your Applications folder.

This link is provided by nightly.link and will work even if you're not logged into GitHub.

Copy link

Desktop App for this PR

The following build is available for testing:

The app is signed and notarized for macOS. After downloading, unzip the file and drag the Goose.app to your Applications folder.

This link is provided by nightly.link and will work even if you're not logged into GitHub.

Copy link

Desktop App for this PR

The following build is available for testing:

The app is signed and notarized for macOS. After downloading, unzip the file and drag the Goose.app to your Applications folder.

This link is provided by nightly.link and will work even if you're not logged into GitHub.


// Implement cache tool functionality
async fn cache(&self, params: Value) -> AgentResult<Vec<Content>> {
let operation = params
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: rename to command to be consistent with the text editor tool commands in developer system

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@salman1993 rename operation to command?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ah I see, good catch

Copy link

Desktop App for this PR

The following build is available for testing:

The app is signed and notarized for macOS. After downloading, unzip the file and drag the Goose.app to your Applications folder.

This link is provided by nightly.link and will work even if you're not logged into GitHub.

Copy link

Desktop App for this PR

The following build is available for testing:

The app is signed and notarized for macOS. After downloading, unzip the file and drag the Goose.app to your Applications folder.

This link is provided by nightly.link and will work even if you're not logged into GitHub.

@michaelneale michaelneale merged commit 6573147 into v1.0 Jan 1, 2025
6 checks passed
michaelneale added a commit that referenced this pull request Jan 1, 2025
* v1.0:
  feat: a system for non developers to augment developer system (#524)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants