Move step infrastructure from IdLE.Steps.Common to IdLE.Core#141
Merged
Move step infrastructure from IdLE.Steps.Common to IdLE.Core#141
Conversation
Co-authored-by: blindzero <13959569+blindzero@users.noreply.github.com>
…Common Co-authored-by: blindzero <13959569+blindzero@users.noreply.github.com>
Co-authored-by: blindzero <13959569+blindzero@users.noreply.github.com>
… its own) Co-authored-by: blindzero <13959569+blindzero@users.noreply.github.com>
Copilot
AI
changed the title
[WIP] Move generic step infrastructure into IdLE.Core
Move step infrastructure from IdLE.Steps.Common to IdLE.Core
Feb 7, 2026
blindzero
reviewed
Feb 7, 2026
Co-authored-by: blindzero <13959569+blindzero@users.noreply.github.com>
Contributor
There was a problem hiding this comment.
Pull request overview
This PR clarifies module layering by making IdLE.Core the foundational dependency for step infrastructure, while keeping IdLE.Steps.Common focused on reusable step implementations. This enables first- and third-party step packs to depend on IdLE.Core without pulling in step implementation libraries.
Changes:
- Update first-party step pack manifests to require
IdLE.Core. - Make
IdLE.Steps.Commonexplicitly requireIdLE.Core. - Export step infrastructure helpers (
Invoke-IdleProviderMethod,Test-IdleProviderMethodParameter) fromIdLE.Coreand improve their comment-based help.
Reviewed changes
Copilot reviewed 8 out of 8 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| src/IdLE.Steps.Mailbox/IdLE.Steps.Mailbox.psd1 | Adds IdLE.Core as a required module for the mailbox step pack. |
| src/IdLE.Steps.DirectorySync/IdLE.Steps.DirectorySync.psd1 | Adds IdLE.Core as a required module for the directory sync step pack. |
| src/IdLE.Steps.Common/Public/Get-IdleStepMetadataCatalog.ps1 | Refines help text to reflect “common” step metadata and updates example output. |
| src/IdLE.Steps.Common/IdLE.Steps.Common.psd1 | Makes IdLE.Steps.Common depend on IdLE.Core. |
| src/IdLE.Core/Public/Test-IdleProviderMethodParameter.ps1 | Adds comment-based help for the provider parameter inspection helper. |
| src/IdLE.Core/Public/Invoke-IdleProviderMethod.ps1 | Adds comment-based help for the provider invocation helper. |
| src/IdLE.Core/IdLE.Core.psm1 | Exports the provider invocation/inspection helpers from IdLE.Core. |
| src/IdLE.Core/IdLE.Core.psd1 | Updates FunctionsToExport to include the provider invocation/inspection helpers. |
Comments suppressed due to low confidence (1)
src/IdLE.Core/Public/Invoke-IdleProviderMethod.ps1:18
- The help text says this helper “validates provider existence”, but the implementation does not check whether
Context.Providers[$ProviderAlias]is present before dereferencing it. If the alias is missing, this will throw a null-reference error rather than a clear message. Either add an explicit provider existence/type check (and throw a descriptive error) or adjust the documentation to match the actual behavior.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
IdLE.Steps.Commonmixed two concerns: generic step infrastructure (helpers, contracts) and step implementations. This made the layering unclear and forced step packs to depend on implementation libraries for foundational utilities.Changes
IdLE.Core now exports step infrastructure:
Invoke-IdleProviderMethod- provider method invocation with auth session supportTest-IdleProviderMethodParameter- parameter inspection for backwards compatibilityStep packs now depend on IdLE.Core:
Each step pack implements its own metadata catalog:
IdLE.Steps.Common→ metadata for common steps (EmitEvent, CreateIdentity, etc.)IdLE.Steps.Mailbox→ metadata for mailbox stepsIdLE.Steps.DirectorySync→ metadata for directory sync stepsArchitecture
Third-party step packs can now depend solely on
IdLE.Corewithout pulling in the common step library.Breaking Changes (pre-1.0)
IdLE.CoretoRequiredModulesTesting
All 351 tests pass. Step discovery, metadata resolution, and provider method invocation verified.
Original prompt
💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.