Skip to content

Conversation

@marc-romu
Copy link
Member

No description provided.

marc-romu and others added 13 commits April 20, 2025 10:55
## Branch Update

This PR updates `dev` with changes from `main` for the path `.github`.

### ℹ️ Protected Branch

This PR was created because `dev` is a protected branch that requires
changes through pull requests.

### Instructions

1. Review the changes
2. Approve and merge the changes

This PR was automatically created by the Branch Update workflow.
## Description

This PR introduces a new Grasshopper component `GhRetrieveComponents`
and its AI tool counterpart `ghretrievecomponents`. They provide a
unified way to enumerate all installed Grasshopper components, returning
for each:
- Name, GUID, category, subcategory, description, keywords  
- Detailed lists of input and output parameters (name, description, data
type, access)

This enhancement enables AI-driven workflows and script-based discovery
of component metadata and parameter signatures.

## Breaking Changes

None.

## Testing Done

- Manual validation in Grasshopper: `GhRetrieveComponents` lists
components correctly.
- AI script invocation of `ghretrievecomponents` returns valid JSON with
expected fields.
- Added unit tests for parameter introspection via `GHParameterUtils`.

## Checklist

- [x] This PR is focused on a single feature or bug fix
- [x] Version in Solution.props was updated, if necessary, and follows
semantic versioning
- [x] CHANGELOG.md has been updated
- [x] PR title follows [Conventional
Commits](https://www.conventionalcommits.org/en/v1.0.0/) format
- [x] PR description follows [Pull Request Description
Template](#pull-request-description-template)
… subcategories of components (#167)

## Description

- Introduces a new `ghcategories` AI tool in
[GhTools](cci:2://file:///c:/Users/Marc%20Roca/source/repos/architects-toolkit/SmartHopper/src/SmartHopper.Core.Grasshopper/Tools/GhTools.cs:31:4-536:5)
that lists all Grasshopper component categories and their subcategories.
- Adds an optional `"filter"` parameter: normalizes the input (removes
`,;_-`), splits by space, and performs a case‑insensitive “soft” match
against category and subcategory names.
- Updates the `ghretrievecomponents` tool’s `categoryFilter` description
to point users to `ghcategories` for a full list of available
categories.

## Breaking Changes

None.

## Testing Done

RH8.18 on windows, using AiChat.

## Checklist

- [x] This PR is focused on a single feature or bug fix
- [x] Version in Solution.props was updated, if necessary, and follows
semantic versioning
- [x] CHANGELOG.md has been updated
- [x] PR title follows [Conventional
Commits](https://www.conventionalcommits.org/en/v1.0.0/) format
- [x] PR description follows [Pull Request Description
Template](#pull-request-description-template)
…ew (#168)

## Description

Introduces a new `ghtogglepreview` tool in `GhVisTools` allowing users
to programmatically turn Grasshopper component preview on or off by
GUID. Utilizes `GHCanvasUtils.FindInstance` and
`GHComponentUtils.SetComponentPreview` with debug logging for tracing.

## Breaking Changes

None.

## Testing Done

- Manually invoked `ghtogglepreview` via AIChatComponent with valid
component GUIDs.
- Verified preview state toggles and canvas redraw occurs without
errors.
- Checked debug output to confirm object lookup and state changes.

## Checklist

- [x] This PR is focused on a single feature or bug fix
- [x] Version in Solution.props was updated, if necessary, and follows
semantic versioning
- [x] CHANGELOG.md has been updated
- [x] PR title follows [Conventional
Commits](https://www.conventionalcommits.org/en/v1.0.0/) format
- [x] PR description follows [Pull Request Description
Template](#pull-request-description-template)
…abled) of components in canvas (#169)

## Description

Introduces a new `ghtogglelocked` tool in `GhObjTools` allowing users to
programmatically turn Grasshopper component on or off by GUID (enabling
and disabling(. Utilizes `GHCanvasUtils.FindInstance` and
`GHComponentUtils.SetComponentLock` with debug logging for tracing.

## Breaking Changes

None

## Testing Done

Tried in RH8.18 on windows, with the AiChat interface.

## Checklist

- [x] This PR is focused on a single feature or bug fix
- [x] Version in Solution.props was updated, if necessary, and follows
semantic versioning
- [x] CHANGELOG.md has been updated
- [x] PR title follows [Conventional
Commits](https://www.conventionalcommits.org/en/v1.0.0/) format
- [x] PR description follows [Pull Request Description
Template](#pull-request-description-template)
…#170)

## Description

- Introduces [MoveInstance(Guid, PointF, bool,
bool)](cci:1://file:///c:/Users/Marc%20Roca/source/repos/architects-toolkit/SmartHopper/src/SmartHopper.Core.Grasshopper/Tools/GhObjTools.cs:170:8-198:9)
in `GHCanvasUtils` to reposition existing canvas objects by GUID,
supporting absolute or relative offsets and optional live redraw.
- Adds `ghmoveobj` AI tool in
[GhObjTools](cci:2://file:///c:/Users/Marc%20Roca/source/repos/architects-toolkit/SmartHopper/src/SmartHopper.Core.Grasshopper/Tools/GhObjTools.cs:25:4-201:5)
to invoke
[MoveInstance](cci:1://file:///c:/Users/Marc%20Roca/source/repos/architects-toolkit/SmartHopper/src/SmartHopper.Core.Grasshopper/Tools/GhObjTools.cs:170:8-198:9)
via JSON parameters (`guids`, `position.x`, `position.y`, `relative`,
`live`).
- Updates
[CHANGELOG.md](cci:7://file:///c:/Users/Marc%20Roca/source/repos/architects-toolkit/SmartHopper/CHANGELOG.md:0:0-0:0)
under **Unreleased → Added** to document both the new tool and utility
method.

## Breaking Changes

None

## Testing Done

- Manually invoked `ghmoveobj` in Grasshopper chat to move components by
GUID (absolute and relative), verified pivot updates on canvas.

## Checklist

- [ ] This PR is focused on a single feature or bug fix
- [ ] Version in Solution.props was updated, if necessary, and follows
semantic versioning
- [ ] CHANGELOG.md has been updated
- [ ] PR title follows [Conventional
Commits](https://www.conventionalcommits.org/en/v1.0.0/) format
- [ ] PR description follows [Pull Request Description
Template](#pull-request-description-template)
## Description

This PR tightens security around provider management. From now on, every
provider assembly must be signed with the same key as the main project;
unsigned or differently signed assemblies will be rejected. This
prevents malicious providers from being loaded. Because it’s a major
change, it breaks compatibility with all previously compiled modules.

Accordingly, we are increasing to version 0.3!!!

## Breaking Changes

Providers built with earlier versions will no longer load. All
assemblies must be built with the identical signing certificate, so
downloaded and locally generated providers will not interoperate.

## Testing Done

RH8.18 on windows.

## Checklist

- [x] This PR is focused on a single feature or bug fix
- [x] Version in Solution.props was updated, if necessary, and follows
semantic versioning
- [x] CHANGELOG.md has been updated
- [x] PR title follows [Conventional
Commits](https://www.conventionalcommits.org/en/v1.0.0/) format
- [x] PR description follows [Pull Request Description
Template](#pull-request-description-template)
This PR updates the version badge in the README.md to match the current
version in Solution.props.

This is an automated PR created by the Update Version Badge workflow.
@marc-romu marc-romu merged commit 07a60c9 into marc-romu/chat Apr 21, 2025
4 checks passed
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