Skip to content

feat: add workspace global read AI tools#620

Merged
chubes4 merged 1 commit intomainfrom
feat/workspace-global-read-tools-614
Mar 5, 2026
Merged

feat: add workspace global read AI tools#620
chubes4 merged 1 commit intomainfrom
feat/workspace-global-read-tools-614

Conversation

@chubes4
Copy link
Member

@chubes4 chubes4 commented Mar 5, 2026

Summary

  • add new global WorkspaceTools exposing read-only workspace capabilities to AI agents
  • register workspace_path, workspace_list, workspace_show, workspace_ls, and workspace_read in ToolServiceProvider
  • add unit coverage for chat and pipeline tool availability

Why

This adds generic, low-risk workspace inspection primitives so users can compose code-aware workflows without enabling mutation tools.

Testing

  • homeboy test data-machine --skip-lint --path="/var/lib/datamachine/workspace/data-machine" --setting database_type=mysql --setting mysql_host=localhost --setting mysql_database=extrachill --setting mysql_user=extrachill --setting mysql_password= -- --filter WorkspaceToolsAvailabilityTest

Related

@github-actions
Copy link

github-actions bot commented Mar 5, 2026

Homeboy Results — data-machine

Tooling versions

  • Homeboy CLI: homeboy 0.56.0
  • Extension: wordpress from https://github.com/Extra-Chill/homeboy-extensions
  • Extension revision: unknown
  • Action: Extra-Chill/homeboy-action@v1

ℹ️ PR test scope resolved to full for compatibility with installed Homeboy CLI

lint (changed files only)

  • PHPStan: PHPSTAN SUMMARY: 133 errors at level 5

Homeboy Action v1 — homeboy 0.56.0

Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

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

Collateral damage (11 issue(s) in related files)

These errors are in files that reference symbols you changed but were not part of this PR:

data-machine.php

  • ❌ L408: Parameter #1 $new_blog_id of function switch_to_blog expects int, string given. argument.type
  • ❌ L722: If condition is always false. if.alwaysFalse

inc/Api/Chat/Tools/ApiQuery.php

  • ❌ L220: Call to function is_wp_error() with WP_REST_Response will always evaluate to false. function.impossibleType
  • ❌ L275: Variable $next in empty() always exists and is not falsy. empty.variable

inc/Core/Steps/Fetch/Handlers/FetchHandler.php

  • ❌ L66: Call to function is_array() with non-empty-array will always evaluate to true. function.alreadyNarrowedType

inc/Engine/AI/Tools/Global/AmazonAffiliateLink.php

  • ❌ L346: PHPDoc tag @param references unknown parameter: $config_data parameter.notFound

inc/Engine/AI/Tools/Global/BingWebmaster.php

  • ❌ L147: PHPDoc tag @param references unknown parameter: $config_data parameter.notFound

inc/Engine/AI/Tools/Global/GoogleAnalytics.php

  • ❌ L183: PHPDoc tag @param references unknown parameter: $config_data parameter.notFound

inc/Engine/AI/Tools/Global/GoogleSearchConsole.php

  • ❌ L177: PHPDoc tag @param references unknown parameter: $config_data parameter.notFound

inc/Engine/AI/Tools/Global/ImageGeneration.php

  • ❌ L167: PHPDoc tag @param references unknown parameter: $config_data parameter.notFound

inc/Engine/AI/Tools/Global/PageSpeed.php

  • ❌ L148: PHPDoc tag @param references unknown parameter: $config_data parameter.notFound

@chubes4 chubes4 force-pushed the feat/workspace-global-read-tools-614 branch from f029d42 to 4ccf71a Compare March 5, 2026 14:55
Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

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

Collateral damage (11 issue(s) in related files)

These errors are in files that reference symbols you changed but were not part of this PR:

data-machine.php

  • ❌ L408: Parameter #1 $new_blog_id of function switch_to_blog expects int, string given. argument.type
  • ❌ L722: If condition is always false. if.alwaysFalse

inc/Api/Chat/Tools/ApiQuery.php

  • ❌ L220: Call to function is_wp_error() with WP_REST_Response will always evaluate to false. function.impossibleType
  • ❌ L275: Variable $next in empty() always exists and is not falsy. empty.variable

inc/Core/Steps/Fetch/Handlers/FetchHandler.php

  • ❌ L66: Call to function is_array() with non-empty-array will always evaluate to true. function.alreadyNarrowedType

inc/Engine/AI/Tools/Global/AmazonAffiliateLink.php

  • ❌ L346: PHPDoc tag @param references unknown parameter: $config_data parameter.notFound

inc/Engine/AI/Tools/Global/BingWebmaster.php

  • ❌ L147: PHPDoc tag @param references unknown parameter: $config_data parameter.notFound

inc/Engine/AI/Tools/Global/GoogleAnalytics.php

  • ❌ L183: PHPDoc tag @param references unknown parameter: $config_data parameter.notFound

inc/Engine/AI/Tools/Global/GoogleSearchConsole.php

  • ❌ L177: PHPDoc tag @param references unknown parameter: $config_data parameter.notFound

inc/Engine/AI/Tools/Global/ImageGeneration.php

  • ❌ L167: PHPDoc tag @param references unknown parameter: $config_data parameter.notFound

inc/Engine/AI/Tools/Global/PageSpeed.php

  • ❌ L148: PHPDoc tag @param references unknown parameter: $config_data parameter.notFound

@chubes4 chubes4 merged commit 825130a into main Mar 5, 2026
2 checks passed
@chubes4 chubes4 deleted the feat/workspace-global-read-tools-614 branch March 5, 2026 15:11
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.

1 participant