feat(adapters): add structured workflow profiles - #2663
Merged
esokullu merged 2 commits intoAug 3, 2026
Conversation
|
@alectimison-maker is attempting to deploy a commit to the esokullu's projects Team on Vercel. A member of the Team first needs to authorize it. |
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.
Why
Site adapters currently expose their operating knowledge only as prompt-facing
notes. Code can match a site, but it cannot enumerate which regions and jobs an adapter covers, distinguish workflow states, identify confirmation boundaries, or require evidence for a successful terminal state.What changed
webbrain-adapter-workflow/1profile and a browser-free validator shared by the mirrored Chrome and Firefox trees.terminalFor.listAdapterWorkflowProfiles()so migrated profiles form an enumerable matrix while the existinglistAdapters()contract stays unchanged.Compatibility
The metadata is optional. Existing adapters, URL matching, prompt notes, site-adapter enablement, and runtime agent behavior are unchanged. This PR does not infer the active state or alter confirmation behavior; it establishes the validated data contract for those follow-ups.
The helper is byte-identical between Chrome and Firefox, while the 12306 profile is behaviorally compared through the public APIs.
Tests
node test/run.js— 1414 passed; 1 inherited repository failure remains becausepackage.jsonis26.0.4while the newest CHANGELOG entry is26.0.0.npm run test:security— 60/60 passed.npm run test:fixtures— 125/125 passed.npm run test:ci— passed (CI scenarios and cloud capture).npm run test:webmcp— passed against Chrome 150.npm run test:anonymouswas not run because it requires configured provider credentials and an interactive browser environment.Risks and follow-ups
V1 intentionally uses semantic evidence rather than selectors so profiles do not introduce a second brittle selector layer. Its strict field validation makes typos fail loudly when the matrix is enumerated.
Follow-up PRs can migrate adapters by region/job and add runtime state inference or prompt enrichment independently. Those behavior changes are deliberately outside this PR.