thefrontside / thefrontside/interactors

Interactors CLI

Open
#271 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
TypeScript
Stars
36
Forks
2
Avg merge
4m
Merged PRs (30d)
2

Description

Discussed in https://github.com/thefrontside/interactors/discussions/270

Originally posted by cowboyd July 12, 2024
I wanted to get the ball rolling on a zero-dependency interactors cli that can build a set of interactors into an agent that can be injected into any browsing context. We need to lay out

@wKich has implemented a working prototype and so this will focus on what is needed to make that into a delightful product. This list of questions is by no means exhaustive.

Versioning

How will interactor CLI be versioned? Will it share a version with interactors core? Or should there be some slippage allowed. For example, should you be able to build with different versions of @interactors/html ? It seems to me that if a patch release for interactors comes out, then you shouldn't have to install a completely new version of the CLI just in order to avail yourself of it.

Distribution Channels

Once we have the binary, how will we install it? Being able to codesign would be nice, but I think we can circumvent that by using curl / pkgx

However, we still need a NPM package to be able to use the binary from a javascript project. In the same way that there is a JS api for esbuild, but rebuild itself is a platform executable.

Plugins

We need to describe a round trip scenario of how the interactors CLI will be used in conjunction with some javascript to show how this can be used with Playwright and vitest browser. The goal would be that we can make this happen with a few moving parts as possible. For example @interactors/vitest would use our npm package to interface with the CLI, but then what? How would it integrate the creation and loading of interactors into the runtime?

LSP Integration

When using interactors with the CLI, they will not be built, linted, formatted etc by the rest of the project. They might exist completely outside the project and have different settings like the fact that the Dom lib will be there, not Node.

How will it look when the user opens one of their Interactor files with VSCode? How will it get the types for @interactors/html? How do we make this as smooth as possible?

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with discussion 270 and the working prototype referenced as issue 264. Review how the CLI is expected to cover versioning, distribution, plugins, and LSP integration; the work is not complete until those questions have a decided scope and an implementation plan.

Written by the indexing model from the issue text.

Assessment

Tech stack
playwright, typescript, vscode
Domain
cli, developer-experience, tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.