From 9195c267686565e89710a9168ccea61095f5eedc Mon Sep 17 00:00:00 2001
From: Andreas Arvidsson
Date: Thu, 19 Mar 2026 11:04:04 +0100
Subject: [PATCH 01/24] Rename package folders
---
.../TERMINOLOGY.md | 0
.../{cursorless-neovim => app-neovim}/package.json | 0
.../scripts/compile-esbuild.sh | 0
.../scripts/debug-neovim.bat | 0
.../scripts/debug-neovim.sh | 0
.../scripts/linux-terminal.sh | 0
.../scripts/populate-dist.sh | 0
.../scripts/show-logs.sh | 0
.../src/NeovimCommandServerApi.ts | 0
.../src/constructTestHelpers.ts | 0
.../src/extension.ts | 0
.../{cursorless-neovim => app-neovim}/src/index.ts | 0
.../src/registerCommands.ts | 0
packages/{common => app-neovim}/tsconfig.json | 0
.../package.json | 0
.../scripts/esbuild.sh | 0
.../src/extension.ts | 0
.../src/mainDevelopment.ts | 0
.../src/mainProduction.ts | 0
.../src/types/talon.d.ts | 0
.../{cursorless-engine => app-talon}/tsconfig.json | 0
.../eslintConfig.ts | 0
.../images/logo.png | Bin
.../{cursorless-vscode => app-vscode}/package.json | 0
.../resources/font_measurements.js | 0
.../resources/installationDependencies.html | 0
.../resources/installationDependencies.js | 0
.../scripts/compile-esbuild.sh | 0
.../scripts/install-from-pr.sh | 0
.../scripts/install-local.sh | 0
.../scripts/uninstall-local.sh | 0
.../src/InstallationDependencies.ts | 0
.../src/ReleaseNotes.test.ts | 0
.../src/ReleaseNotes.ts | 0
.../src/ScopeTreeProvider.ts | 0
.../src/ScopeVisualizerCommandApi.ts | 0
.../src/SpyWebviewView.ts | 0
.../src/StatusBarItem.ts | 0
.../src/VscodeSnippets.ts | 0
.../src/VscodeTutorial.ts | 0
.../src/commands.ts | 0
.../src/constructTestHelpers.ts | 0
.../src/createScopeVisualizer.ts | 0
.../src/createTreeSitter.ts | 0
.../src/createTutorial.ts | 0
.../src/createVscodeIde.ts | 0
.../src/extension.ts | 0
.../vscode/VSCodeScopeVisualizer/RangeTypeColors.ts | 0
.../VscodeFancyRangeHighlighter.ts | 0
.../VscodeFancyRangeHighlighterRenderer.ts | 0
.../decorationStyle.types.ts | 0
.../generateDifferentiatedRanges.ts | 0
.../getDifferentiatedStyleMapKey.ts | 0
.../groupDifferentiatedStyledRanges.ts | 0
.../VscodeFancyRangeHighlighter/index.ts | 0
.../VscodeIterationScopeVisualizer.ts | 0
.../VSCodeScopeVisualizer/VscodeScopeRenderer.ts | 0
.../VscodeScopeTargetVisualizer.ts | 0
.../VSCodeScopeVisualizer/VscodeScopeVisualizer.ts | 0
.../VSCodeScopeVisualizer/blendRangeTypeColors.ts | 0
.../createVscodeScopeVisualizer.ts | 0
.../VSCodeScopeVisualizer/getColorsFromConfig.ts | 0
.../src/ide/vscode/VSCodeScopeVisualizer/index.ts | 0
.../src/ide/vscode/VscodeCapabilities.ts | 0
.../src/ide/vscode/VscodeClipboard.ts | 0
.../src/ide/vscode/VscodeConfiguration.ts | 0
.../src/ide/vscode/VscodeEdit.ts | 0
.../src/ide/vscode/VscodeEnabledHatStyleManager.ts | 0
.../src/ide/vscode/VscodeEvents.ts | 0
.../src/ide/vscode/VscodeFileSystem.ts | 0
.../src/ide/vscode/VscodeFlashHandler.ts | 0
.../src/ide/vscode/VscodeFocusEditor.ts | 0
.../src/ide/vscode/VscodeFold.ts | 0
.../ide/vscode/VscodeHighlightDecorationTypes.ts | 0
.../src/ide/vscode/VscodeHighlights.ts | 0
.../src/ide/vscode/VscodeIDE.ts | 0
.../src/ide/vscode/VscodeIdeNotebook.ts | 0
.../src/ide/vscode/VscodeInsertSnippets.ts | 0
.../src/ide/vscode/VscodeKeyValueStore.ts | 0
.../src/ide/vscode/VscodeMessages.ts | 0
.../src/ide/vscode/VscodeOpenLink.ts | 0
.../src/ide/vscode/VscodeRevealLine.ts | 0
.../src/ide/vscode/VscodeRunMode.ts | 0
.../src/ide/vscode/VscodeTextDocument.ts | 0
.../src/ide/vscode/VscodeTextEditor.ts | 0
.../src/ide/vscode/VscodeTextLine.ts | 0
.../src/ide/vscode/VscodeToggleBreakpoint.ts | 0
.../src/ide/vscode/hatStyles.types.ts | 0
.../src/ide/vscode/hats/FakeFontMeasurements.ts | 0
.../src/ide/vscode/hats/FontMeasurements.ts | 0
.../src/ide/vscode/hats/FontMeasurementsImpl.ts | 0
.../src/ide/vscode/hats/VscodeHatRenderer.ts | 0
.../src/ide/vscode/hats/VscodeHats.ts | 0
.../src/ide/vscode/hats/getHatThemeColors.ts | 0
.../src/ide/vscode/hats/getStyleName.ts | 0
.../ide/vscode/hats/performPr1868ShapeUpdateInit.ts | 0
.../src/ide/vscode/hats/shapeAdjustments.ts | 0
.../src/ide/vscode/isDiffEditorOriginal.ts | 0
.../src/ide/vscode/notebook/notebook.ts | 0
.../src/ide/vscode/textLine.vscode.test.ts | 0
.../src/ide/vscode/toVscodeEditor.ts | 0
.../src/ide/vscode/vscodeShowQuickPick.ts | 0
.../src/keyboard/KeyboardActionType.ts | 0
.../src/keyboard/KeyboardCommandHandler.ts | 0
.../src/keyboard/KeyboardCommandTypeHelpers.ts | 0
.../src/keyboard/KeyboardCommands.ts | 0
.../src/keyboard/KeyboardCommandsModal.ts | 0
.../src/keyboard/KeyboardCommandsModalLayer.ts | 0
.../src/keyboard/KeyboardCommandsTargeted.ts | 0
.../src/keyboard/KeyboardConfig.ts | 0
.../src/keyboard/KeyboardHandler.ts | 0
.../src/keyboard/TokenTypeHelpers.ts | 0
.../src/keyboard/TokenTypes.ts | 0
.../src/keyboard/buildSuffixTrie.test.ts | 0
.../src/keyboard/buildSuffixTrie.ts | 0
.../src/keyboard/getTokenTypeKeyMaps.ts | 0
.../keyboard/grammar/CommandRulePostProcessor.ts | 0
.../src/keyboard/grammar/command.ts | 0
.../src/keyboard/grammar/generated/grammar.ts | 0
.../grammar/getAcceptableTokenTypes.test.ts | 0
.../src/keyboard/grammar/getAcceptableTokenTypes.ts | 0
.../src/keyboard/grammar/grammar.ne | 0
.../src/keyboard/grammar/grammar.test.ts | 0
.../src/keyboard/grammar/keyboardLexer.ts | 0
.../src/keyboard/grammar/stringifyTokens.ts | 0
.../src/keyboard/keyboard-config.fixture.json | 0
.../src/logQuickActions.ts | 0
.../src/registerCommands.ts | 0
.../src/revisualizeOnCustomRegexChange.ts | 0
.../src/scripts/hatAdjustments/add.ts | 0
.../src/scripts/hatAdjustments/average.ts | 0
.../src/scripts/hatAdjustments/lib.ts | 0
.../src/scripts/initLaunchSandbox.ts | 0
.../src/scripts/populateDist/Asset.ts | 0
.../src/scripts/populateDist/assets.ts | 0
.../src/scripts/populateDist/context.ts | 0
.../src/scripts/populateDist/generateBuildInfo.ts | 0
.../src/scripts/populateDist/index.ts | 0
.../src/scripts/populateDist/populateDist.ts | 0
.../src/scripts/populateDist/runCommand.ts | 0
.../scripts/populateDist/transformPackageJson.ts | 0
.../src/scripts/preprocessSvgHats.ts | 0
.../src/storedTargetHighlighter.ts | 0
.../src/usingSetting.ts | 0
.../src/vscodeApi.ts | 0
.../tsconfig.json | 0
.../{cursorless-org-docs => app-web-docs}/README.md | 0
.../config/algolia/README.md | 0
.../config/algolia/crawler-settings.js | 0
.../config/algolia/index-settings.json | 0
.../docusaurus.config.mts | 0
.../package.json | 0
.../sidebar.js | 0
.../src/css/custom.scss | 0
.../src/css/github-link.scss | 0
.../src/docs/components/Code.css | 0
.../src/docs/components/Code.tsx | 0
.../src/docs/components/DynamicTOC.tsx | 0
.../src/docs/components/Header.css | 0
.../src/docs/components/Header.tsx | 0
.../src/docs/components/ScopeSupport.css | 0
.../src/docs/components/ScopeVisualizer.tsx | 0
.../src/docs/components/ScrollToHashId.tsx | 0
.../src/docs/components/calculateHighlights.ts | 0
.../src/docs/components/flattenHighlights.test.ts | 0
.../src/docs/components/flattenHighlights.ts | 0
.../src/docs/components/highlightColors.ts | 0
.../src/docs/components/highlightsToDecorations.ts | 0
.../src/docs/components/types.ts | 0
.../src/docs/components/util.ts | 0
.../src/docs/contributing/CONTRIBUTING.mdx | 0
.../src/docs/contributing/MissingLanguageScopes.tsx | 0
.../src/docs/contributing/_api-index.md | 0
.../src/docs/contributing/adding-a-new-language.md | 0
.../src/docs/contributing/adding-a-new-package.md | 0
.../src/docs/contributing/adding-a-new-scope.md | 0
.../docs/contributing/architecture/hat-snapshots.md | 0
.../architecture/images/hat-token-map-snapshots.png | Bin
.../architecture/neovim-test-infrastructure.md | 0
.../contributing/architecture/package-scripts.md | 0
.../src/docs/contributing/cheatsheet.md | 0
.../src/docs/contributing/cursorless-in-neovim.md | 0
.../src/docs/contributing/documentation-search.md | 0
.../src/docs/contributing/guidelines.md | 0
.../docs/contributing/missing-language-scopes.mdx | 0
.../src/docs/contributing/scope-test-format.md | 0
.../src/docs/contributing/scopes/README.md | 0
.../docs/contributing/scopes/anonymousFunction.mdx | 0
.../src/docs/contributing/scopes/argumentList.mdx | 0
.../contributing/scopes/argumentOrParameter.mdx | 0
.../src/docs/contributing/scopes/attribute.mdx | 0
.../scopes/boundedNonWhitespaceSequence.mdx | 0
.../docs/contributing/scopes/boundedParagraph.mdx | 0
.../src/docs/contributing/scopes/branch.mdx | 0
.../src/docs/contributing/scopes/character.mdx | 0
.../src/docs/contributing/scopes/class.mdx | 0
.../src/docs/contributing/scopes/className.mdx | 0
.../src/docs/contributing/scopes/collectionItem.mdx | 0
.../src/docs/contributing/scopes/collectionKey.mdx | 0
.../src/docs/contributing/scopes/command.mdx | 0
.../src/docs/contributing/scopes/comment.mdx | 0
.../docs/contributing/scopes/components/Scopes.tsx | 0
.../src/docs/contributing/scopes/condition.mdx | 0
.../contributing/scopes/disqualifyDelimiter.mdx | 0
.../src/docs/contributing/scopes/document.mdx | 0
.../src/docs/contributing/scopes/environment.mdx | 0
.../src/docs/contributing/scopes/fieldAccess.mdx | 0
.../src/docs/contributing/scopes/fullLine.mdx | 0
.../src/docs/contributing/scopes/functionCall.mdx | 0
.../src/docs/contributing/scopes/functionCallee.mdx | 0
.../src/docs/contributing/scopes/functionName.mdx | 0
.../src/docs/contributing/scopes/identifier.mdx | 0
.../src/docs/contributing/scopes/ifStatement.mdx | 0
.../src/docs/contributing/scopes/interior.mdx | 0
.../src/docs/contributing/scopes/line.mdx | 0
.../src/docs/contributing/scopes/list.mdx | 0
.../src/docs/contributing/scopes/map.mdx | 0
.../src/docs/contributing/scopes/name.mdx | 0
.../src/docs/contributing/scopes/namedFunction.mdx | 0
.../contributing/scopes/nonWhitespaceSequence.mdx | 0
.../src/docs/contributing/scopes/notebookCell.mdx | 0
.../src/docs/contributing/scopes/pairDelimiter.mdx | 0
.../src/docs/contributing/scopes/paragraph.mdx | 0
.../docs/contributing/scopes/regularExpression.mdx | 0
.../src/docs/contributing/scopes/section.mdx | 0
.../src/docs/contributing/scopes/selector.mdx | 0
.../src/docs/contributing/scopes/sentence.mdx | 0
.../src/docs/contributing/scopes/statement.mdx | 0
.../src/docs/contributing/scopes/string.mdx | 0
.../docs/contributing/scopes/surroundingPair.mdx | 0
.../contributing/scopes/surroundingPairInterior.mdx | 0
.../src/docs/contributing/scopes/textFragment.mdx | 0
.../src/docs/contributing/scopes/token.mdx | 0
.../src/docs/contributing/scopes/type.mdx | 0
.../src/docs/contributing/scopes/unit.mdx | 0
.../src/docs/contributing/scopes/url.mdx | 0
.../src/docs/contributing/scopes/value.mdx | 0
.../src/docs/contributing/scopes/word.mdx | 0
.../src/docs/contributing/scopes/xmlBothTags.mdx | 0
.../src/docs/contributing/scopes/xmlElement.mdx | 0
.../src/docs/contributing/scopes/xmlEndTag.mdx | 0
.../src/docs/contributing/scopes/xmlStartTag.mdx | 0
.../src/docs/contributing/test-case-recorder.md | 0
.../src/docs/contributing/tests.md | 0
.../docs/contributing/tree-sitter-query-syntax.md | 0
.../src/docs/user/README.md | 0
.../src/docs/user/customization.md | 0
.../src/docs/user/experimental/README.md | 0
.../src/docs/user/experimental/images/linkWrap.gif | Bin
.../docs/user/experimental/images/tryWrapFine.gif | Bin
.../experimental/keyboard/images/keyboardBring.gif | Bin
.../experimental/keyboard/images/keyboardDelete.gif | Bin
.../experimental/keyboard/images/keyboardPour.gif | Bin
.../src/docs/user/experimental/keyboard/modal.md | 0
.../src/docs/user/glossary.md | 0
.../src/docs/user/hatAssignment.md | 0
.../src/docs/user/how-to.md | 0
.../src/docs/user/images/chuckBat.gif | Bin
.../src/docs/user/images/custom-regex-scopes.png | Bin
.../src/docs/user/images/relative_ordinal.png | Bin
.../src/docs/user/images/relative_ordinal.tex | 0
.../src/docs/user/images/sidebar-scopes.png | Bin
.../docs/user/images/visualize-block-removal.png | Bin
.../src/docs/user/images/visualize-funk.png | Bin
.../src/docs/user/images/visualize-token.png | Bin
.../src/docs/user/installation.md | 0
.../src/docs/user/languages/README.md | 0
.../src/docs/user/languages/c.mdx | 0
.../src/docs/user/languages/clojure.mdx | 0
.../src/docs/user/languages/components/Language.tsx | 0
.../src/docs/user/languages/cpp.mdx | 0
.../src/docs/user/languages/csharp.mdx | 0
.../src/docs/user/languages/css.mdx | 0
.../src/docs/user/languages/dart.mdx | 0
.../src/docs/user/languages/go.mdx | 0
.../src/docs/user/languages/html.mdx | 0
.../src/docs/user/languages/java.mdx | 0
.../src/docs/user/languages/javascript.mdx | 0
.../src/docs/user/languages/javascriptreact.mdx | 0
.../src/docs/user/languages/json.mdx | 0
.../src/docs/user/languages/jsonc.mdx | 0
.../src/docs/user/languages/jsonl.mdx | 0
.../src/docs/user/languages/kotlin.mdx | 0
.../src/docs/user/languages/latex.mdx | 0
.../src/docs/user/languages/lua.mdx | 0
.../src/docs/user/languages/markdown.mdx | 0
.../src/docs/user/languages/php.mdx | 0
.../src/docs/user/languages/plaintext.mdx | 0
.../src/docs/user/languages/properties.mdx | 0
.../src/docs/user/languages/python.mdx | 0
.../src/docs/user/languages/r.mdx | 0
.../src/docs/user/languages/ruby.mdx | 0
.../src/docs/user/languages/rust.mdx | 0
.../src/docs/user/languages/scala.mdx | 0
.../src/docs/user/languages/scm.mdx | 0
.../src/docs/user/languages/scss.mdx | 0
.../src/docs/user/languages/talon-list.mdx | 0
.../src/docs/user/languages/talon.mdx | 0
.../src/docs/user/languages/typescript.mdx | 0
.../src/docs/user/languages/typescriptreact.mdx | 0
.../src/docs/user/languages/xml.mdx | 0
.../src/docs/user/languages/yaml.mdx | 0
.../src/docs/user/localCommandHIstory.md | 0
.../src/docs/user/reference/destinations.md | 0
.../src/docs/user/release-notes/0.28.0.md | 0
.../src/docs/user/release-notes/0.29.0.md | 0
.../src/docs/user/release-notes/1.0.0.md | 0
.../src/docs/user/release-notes/1.1.0.md | 0
.../docs/user/release-notes/2022-year-in-review.md | 0
.../src/docs/user/release-notes/README.md | 0
.../src/docs/user/release-notes/big-hats.png | Bin
.../release-notes/sidebar-containment-icons.png | Bin
.../user/release-notes/sidebar-sneak-preview.png | Bin
.../src/docs/user/scope-sidebar.md | 0
.../src/docs/user/scope-visualizer.md | 0
.../src/docs/user/unicode.md | 0
.../src/docs/user/updating.md | 0
.../src/docs/user/visualAccessibility.md | 0
.../src/plugins/scope-tests-plugin.ts | 0
.../src/theme/Root.tsx | 0
.../static/logo-dark.svg | 0
.../static/logo.svg | 0
.../tsconfig.json | 0
packages/{cursorless-org => app-web}/README.md | 0
.../{cursorless-org => app-web}/eslintConfig.ts | 0
packages/{cursorless-org => app-web}/index.html | 0
packages/{cursorless-org => app-web}/package.json | 0
.../{cursorless-org => app-web}/public/_redirects | 0
.../public/android-chrome-192x192.png | Bin
.../public/android-chrome-512x512.png | Bin
.../public/apple-touch-icon.png | Bin
.../public/browserconfig.xml | 0
.../public/favicon-16x16.png | Bin
.../public/favicon-32x32.png | Bin
.../{cursorless-org => app-web}/public/favicon.ico | Bin
.../{cursorless-org => app-web}/public/favicon.png | Bin
.../{cursorless-org => app-web}/public/favicon.svg | 0
.../public/fonts/Inconsolata-Bold.ttf | Bin
.../public/fonts/Inconsolata-ExtraLight.ttf | Bin
.../public/fonts/Inconsolata-Light.ttf | Bin
.../public/fonts/Inconsolata-Medium.ttf | Bin
.../public/fonts/Inconsolata-Regular.ttf | Bin
.../public/fonts/Inconsolata-SemiBold.ttf | Bin
.../public/fonts/Inconsolata_SemiExpanded-Bold.ttf | Bin
.../fonts/Inconsolata_SemiExpanded-ExtraBold.ttf | Bin
.../public/fonts/Inconsolata_SemiExpanded-Light.ttf | Bin
.../fonts/Inconsolata_SemiExpanded-Medium.ttf | Bin
.../fonts/Inconsolata_SemiExpanded-Regular.ttf | Bin
.../fonts/Inconsolata_SemiExpanded-SemiBold.ttf | Bin
.../public/logo-dark.svg | 0
.../{cursorless-org => app-web}/public/logo.svg | 0
.../public/mstile-144x144.png | Bin
.../public/mstile-150x150.png | Bin
.../public/mstile-310x150.png | Bin
.../public/mstile-310x310.png | Bin
.../public/mstile-70x70.png | Bin
.../public/safari-pinned-tab.svg | 0
.../public/site.webmanifest | 0
.../public/video-share-thumbnail.jpg | Bin
.../scripts/mac-serve-bind-external | 0
packages/{cursorless-org => app-web}/src/App.tsx | 0
packages/{cursorless-org => app-web}/src/Button.tsx | 0
.../{cursorless-org => app-web}/src/Cheatsheet.tsx | 0
.../src/EmbeddedVideo.tsx | 0
.../{cursorless-org => app-web}/src/LandingPage.tsx | 0
.../{cursorless-org => app-web}/src/constants.ts | 0
packages/{cursorless-org => app-web}/src/index.tsx | 0
packages/{cursorless-org => app-web}/src/logo.svg | 0
packages/{cursorless-org => app-web}/src/styles.css | 0
.../{cursorless-org => app-web}/src/vite-env.d.ts | 0
.../{cheatsheet-local => app-web}/tsconfig.json | 0
packages/{cursorless-org => app-web}/vite.config.ts | 0
.../README.md | 0
.../index.html | 0
.../jest.config.ts | 0
.../package.json | 0
.../src/app.tsx | 0
.../src/index.tsx | 0
.../src/styles.css | 0
.../src/test/app.spec.tsx | 0
.../src/test/styleMock.ts | 0
.../tsconfig.json | 0
.../vite.config.ts | 0
.../{cheatsheet => lib-cheatsheet}/jest.config.ts | 0
.../{cheatsheet => lib-cheatsheet}/package.json | 0
.../{cheatsheet => lib-cheatsheet}/src/index.ts | 0
.../src/lib/Cheatsheet.tsx | 0
.../src/lib/CheatsheetLegendSection.tsx | 0
.../src/lib/CheatsheetListSection.tsx | 0
.../src/lib/CheatsheetNotesSection.tsx | 0
.../src/lib/cheatsheet.css | 0
.../src/lib/cheatsheet.types.tsx | 0
.../src/lib/sampleSpokenFormInfos/defaults.json | 0
.../src/lib/utils/SmartLink.tsx | 0
.../src/lib/utils/applyBootstrapTheme.ts | 0
.../src/lib/utils/cheatsheetLegendData.tsx | 0
.../src/lib/utils/fakeCheatsheetInfo.ts | 0
.../src/lib/utils/formatCaptures.tsx | 0
.../src/lib/utils/useIsHighlighted.ts | 0
.../src/test/cheatsheet.spec.tsx | 0
.../src/test/formatCaptures.spec.tsx | 0
.../src/test/styleMock.ts | 0
.../tsconfig.json | 0
packages/{common => lib-common}/eslintConfig.ts | 0
packages/{common => lib-common}/package.json | 0
packages/{common => lib-common}/scripts/c-tsx.js | 0
packages/{common => lib-common}/src/Debouncer.ts | 0
.../src/FakeCommandServerApi.ts | 0
.../{common => lib-common}/src/StoredTargetKey.ts | 0
packages/{common => lib-common}/src/constants.ts | 0
.../src/cursorlessCommandIds.ts | 0
.../src/cursorlessSideBarIds.ts | 0
packages/{common => lib-common}/src/errors.ts | 0
.../src/extensionDependencies.ts | 0
.../src/ide/PassthroughIDE.ts | 0
.../src/ide/fake/FakeCapabilities.ts | 0
.../src/ide/fake/FakeClipboard.ts | 0
.../src/ide/fake/FakeConfiguration.ts | 0
.../{common => lib-common}/src/ide/fake/FakeIDE.ts | 0
.../src/ide/fake/FakeKeyValueStore.ts | 0
.../src/ide/fake/FakeMessages.ts | 0
.../ide/inMemoryTextEditor/InMemoryTextDocument.ts | 0
.../ide/inMemoryTextEditor/InMemoryTextEditor.ts | 0
.../src/ide/inMemoryTextEditor/InMemoryTextLine.ts | 0
.../src/ide/inMemoryTextEditor/performEdits.ts | 0
.../test/InMemoryTextDocument.test.ts | 0
.../test/InMemoryTextDocumentEdit.test.ts | 0
.../test/InMemoryTextDocumentLineAt.test.ts | 0
.../inMemoryTextEditor/test/createTestDocument.ts | 0
.../src/ide/normalized/NormalizedIDE.ts | 0
.../{common => lib-common}/src/ide/spy/SpyIDE.ts | 0
.../src/ide/spy/SpyMessages.ts | 0
.../src/ide/types/Capabilities.ts | 0
.../src/ide/types/Clipboard.ts | 0
.../src/ide/types/CommandHistoryStorage.ts | 0
.../src/ide/types/CommandId.ts | 0
.../src/ide/types/Configuration.ts | 0
.../{common => lib-common}/src/ide/types/Events.ts | 0
.../src/ide/types/FileSystem.types.ts | 0
.../src/ide/types/FlashDescriptor.ts | 0
.../src/ide/types/HatStability.ts | 0
.../{common => lib-common}/src/ide/types/Hats.ts | 0
.../src/ide/types/KeyValueStore.ts | 0
.../src/ide/types/Messages.ts | 0
.../{common => lib-common}/src/ide/types/Paths.ts | 0
.../src/ide/types/QuickPickOptions.ts | 0
.../{common => lib-common}/src/ide/types/README.md | 0
.../src/ide/types/RawTreeSitterQueryProvider.ts | 0
.../src/ide/types/TutorialContentProvider.ts | 0
.../src/ide/types/events.types.ts | 0
.../src/ide/types/hatStyles.types.ts | 0
.../src/ide/types/ide.types.ts | 0
.../{common => lib-common}/src/ide/util/messages.ts | 0
packages/{common => lib-common}/src/index.ts | 0
.../PlaintextScopeSupportFacetInfos.ts | 0
.../src/scopeSupportFacets/c.ts | 0
.../src/scopeSupportFacets/clojure.ts | 0
.../src/scopeSupportFacets/cpp.ts | 0
.../src/scopeSupportFacets/csharp.ts | 0
.../src/scopeSupportFacets/css.ts | 0
.../src/scopeSupportFacets/dart.ts | 0
.../src/scopeSupportFacets/go.ts | 0
.../src/scopeSupportFacets/html.ts | 0
.../src/scopeSupportFacets/java.ts | 0
.../src/scopeSupportFacets/javascript.ts | 0
.../src/scopeSupportFacets/javascriptreact.ts | 0
.../src/scopeSupportFacets/json.ts | 0
.../src/scopeSupportFacets/jsonc.ts | 0
.../src/scopeSupportFacets/jsonl.ts | 0
.../src/scopeSupportFacets/kotlin.ts | 0
.../src/scopeSupportFacets/languageScopeSupport.ts | 0
.../src/scopeSupportFacets/latex.ts | 0
.../src/scopeSupportFacets/lua.ts | 0
.../src/scopeSupportFacets/markdown.ts | 0
.../src/scopeSupportFacets/php.ts | 0
.../src/scopeSupportFacets/properties.ts | 0
.../src/scopeSupportFacets/python.ts | 0
.../src/scopeSupportFacets/r.ts | 0
.../src/scopeSupportFacets/ruby.ts | 0
.../src/scopeSupportFacets/rust.ts | 0
.../src/scopeSupportFacets/scala.ts | 0
.../src/scopeSupportFacets/scm.ts | 0
.../scopeSupportFacets/scopeSupportFacetInfos.ts | 0
.../scopeSupportFacets/scopeSupportFacets.types.ts | 0
.../src/scopeSupportFacets/scss.ts | 0
.../src/scopeSupportFacets/talon.ts | 0
.../src/scopeSupportFacets/talonList.ts | 0
.../src/scopeSupportFacets/typescript.ts | 0
.../src/scopeSupportFacets/typescriptreact.ts | 0
.../src/scopeSupportFacets/xml.ts | 0
.../src/scopeSupportFacets/yaml.ts | 0
.../scopeVisualizerUtil/decorationStyle.types.ts | 0
.../src/scopeVisualizerUtil/decorationUtil.ts | 0
.../generateDecorationsForCharacterRange.ts | 0
.../generateLineInfos.ts | 0
.../handleMultipleLines.test.ts | 0
.../handleMultipleLines.ts | 0
.../generateDecorationsForCharacterRange/index.ts | 0
.../generateDecorationsForLineRange.ts | 0
.../src/testUtil/TestCaseSnapshot.ts | 0
.../src/testUtil/asyncSafety.ts | 0
.../src/testUtil/extractTargetedMarks.ts | 0
.../src/testUtil/fromPlainObject.ts | 0
.../src/testUtil/getSnapshotForComparison.ts | 0
.../src/testUtil/serialize.ts | 0
.../src/testUtil/serializeTestFixture.ts | 0
.../src/testUtil/shouldUpdateFixtures.ts | 0
.../src/testUtil/spyToPlainObject.ts | 0
.../src/testUtil/testConstants.ts | 0
packages/{common => lib-common}/src/tooling/jest.ts | 0
packages/{common => lib-common}/src/tooling/vite.ts | 0
.../src/tooling/viteHtmlParamsPlugin.ts | 0
.../src/tooling/vitePreactAlias.ts | 0
.../src/types/CommandServerApi.ts | 0
packages/{common => lib-common}/src/types/Edit.ts | 0
.../src/types/GeneralizedRange.ts | 0
.../{common => lib-common}/src/types/HatTokenMap.ts | 0
.../src/types/InputBoxOptions.ts | 0
.../src/types/NotebookCell.ts | 0
.../src/types/NotebookEditor.ts | 0
.../{common => lib-common}/src/types/Position.ts | 0
packages/{common => lib-common}/src/types/Range.ts | 0
.../src/types/RangeExpansionBehavior.ts | 0
.../src/types/RevealLineAt.ts | 0
.../src/types/ScopeProvider.ts | 0
.../{common => lib-common}/src/types/Selection.ts | 0
.../{common => lib-common}/src/types/SpokenForm.ts | 0
.../src/types/SpokenFormType.ts | 0
.../src/types/StringRecord.ts | 0
.../src/types/TalonSpokenForms.ts | 0
.../src/types/TestCaseFixture.ts | 0
.../{common => lib-common}/src/types/TestHelpers.ts | 0
.../src/types/TextDocument.ts | 0
.../{common => lib-common}/src/types/TextEditor.ts | 0
.../src/types/TextEditorDecorationType.ts | 0
.../src/types/TextEditorEdit.ts | 0
.../src/types/TextEditorOptions.ts | 0
.../{common => lib-common}/src/types/TextLine.ts | 0
packages/{common => lib-common}/src/types/Token.ts | 0
.../{common => lib-common}/src/types/TreeSitter.ts | 0
.../src/types/command/ActionDescriptor.ts | 0
.../src/types/command/CommandV6.types.ts | 0
.../src/types/command/CommandV7.types.ts | 0
.../types/command/DestinationDescriptor.types.ts | 0
.../types/command/PartialTargetDescriptor.types.ts | 0
.../src/types/command/command.types.ts | 0
.../src/types/command/legacy/ActionCommandV5.ts | 0
.../src/types/command/legacy/CommandV0V1.types.ts | 0
.../src/types/command/legacy/CommandV2.types.ts | 0
.../src/types/command/legacy/CommandV3.types.ts | 0
.../src/types/command/legacy/CommandV4.types.ts | 0
.../src/types/command/legacy/CommandV5.types.ts | 0
.../legacy/PartialTargetDescriptorV3.types.ts | 0
.../legacy/PartialTargetDescriptorV4.types.ts | 0
.../legacy/PartialTargetDescriptorV5.types.ts | 0
.../command/legacy/targetDescriptorV2.types.ts | 0
.../src/types/commandHistory.ts | 0
.../src/types/generalizedRangeContains.test.ts | 0
.../src/types/generalizedRangeTouches.test.ts | 0
.../src/types/isGeneralizedRangeEqual.test.ts | 0
.../src/types/location.types.ts | 0
.../src/types/position.test.ts | 0
.../{common => lib-common}/src/types/range.test.ts | 0
.../src/types/selection.test.ts | 0
.../src/types/tutorial.types.ts | 0
.../src/util/CompositeKeyDefaultMap.ts | 0
.../src/util/CompositeKeyMap.ts | 0
.../{common => lib-common}/src/util/DefaultMap.ts | 0
.../{common => lib-common}/src/util/Notifier.ts | 0
.../{common => lib-common}/src/util/blendColors.ts | 0
.../src/util/clientSupportsFallback.ts | 0
.../src/util/disposableFrom.ts | 0
.../src/util/ensureCommandShape.ts | 0
.../src/util/getEnvironmentVariableStrict.ts | 0
.../src/util/getErrorMessage.ts | 0
.../src/util/getProcessEnv.ts | 0
packages/{common => lib-common}/src/util/index.ts | 0
.../{common => lib-common}/src/util/itertools.ts | 0
packages/{common => lib-common}/src/util/object.ts | 0
.../{common => lib-common}/src/util/omitByDeep.ts | 0
.../src/util/prettifyLanguageName.ts | 0
packages/{common => lib-common}/src/util/regex.ts | 0
.../src/util/selectionsEqual.ts | 0
.../src/util/serializeScopeType.ts | 0
.../src/util/serializedMarksToTokenHats.ts | 0
packages/{common => lib-common}/src/util/sleep.ts | 0
.../{common => lib-common}/src/util/splitKey.ts | 0
.../{common => lib-common}/src/util/stringUtils.ts | 0
.../src/util/toPlainObject.ts | 0
packages/{common => lib-common}/src/util/type.ts | 0
.../{common => lib-common}/src/util/typeUtils.ts | 0
.../src/util/uniqWithHash.test.ts | 0
.../{common => lib-common}/src/util/uniqWithHash.ts | 0
.../{common => lib-common}/src/util/zipStrict.ts | 0
.../tsconfig.json | 0
.../eslintConfig.ts | 0
.../{cursorless-engine => lib-engine}/package.json | 0
.../src/CommandHistory.ts | 0
.../src/CommandHistoryAnalyzer.ts | 0
.../src/CommandRunner.ts | 0
.../src/KeyboardTargetUpdater.ts | 0
.../src/actions/Actions.ts | 0
.../src/actions/BreakLine.ts | 0
.../src/actions/BringMoveSwap.ts | 0
.../src/actions/Call.ts | 0
.../src/actions/CallbackAction.ts | 0
.../src/actions/Clear.ts | 0
.../src/actions/CopyToClipboard.ts | 0
.../src/actions/CutToClipboard.ts | 0
.../src/actions/Deselect.ts | 0
.../src/actions/EditNew/EditNew.ts | 0
.../src/actions/EditNew/EditNew.types.ts | 0
.../src/actions/EditNew/index.ts | 0
.../src/actions/EditNew/runEditTargets.ts | 0
.../actions/EditNew/runInsertLineAfterTargets.ts | 0
.../src/actions/EditNew/runNotebookCellTargets.ts | 0
.../src/actions/EditNewLineAction.ts | 0
.../src/actions/ExecuteCommand.ts | 0
.../src/actions/Find.ts | 0
.../src/actions/FlashTargets.ts | 0
.../src/actions/FollowLink.ts | 0
.../src/actions/GenerateSnippet/GenerateSnippet.ts | 0
.../src/actions/GenerateSnippet/Offsets.ts | 0
.../src/actions/GenerateSnippet/Substituter.ts | 0
.../actions/GenerateSnippet/constructSnippetBody.ts | 0
.../src/actions/GenerateSnippet/editText.ts | 0
.../src/actions/GenerateSnippet/index.ts | 0
.../src/actions/GetTargets.ts | 0
.../src/actions/GetText.ts | 0
.../src/actions/Highlight.ts | 0
.../src/actions/IndentLine.ts | 0
.../src/actions/InsertCopy.ts | 0
.../src/actions/InsertEmptyLines.ts | 0
.../src/actions/InsertSnippet.ts | 0
.../src/actions/JoinLines.ts | 0
.../src/actions/PasteFromClipboard.ts | 0
.../src/actions/PasteFromClipboardDirectly.ts | 0
.../src/actions/PasteFromClipboardUsingCommand.ts | 0
.../src/actions/Remove.ts | 0
.../src/actions/Replace.ts | 0
.../src/actions/Rewrap.ts | 0
.../src/actions/Scroll.ts | 0
.../src/actions/SetSelection.ts | 0
.../src/actions/SetSpecialTarget.ts | 0
.../src/actions/ShowParseTree.ts | 0
.../src/actions/SimpleIdeCommandActions.ts | 0
.../src/actions/Sort.ts | 0
.../src/actions/ToggleBreakpoint.ts | 0
.../src/actions/Wrap.ts | 0
.../src/actions/WrapWithSnippet.ts | 0
.../src/actions/actions.types.ts | 0
.../src/actions/incrementDecrement.ts | 0
.../src/api/CursorlessEngineApi.ts | 0
.../src/core/Debug.ts | 0
.../src/core/HatAllocator.ts | 0
.../src/core/HatTokenMapImpl.ts | 0
.../src/core/IndividualHatMap.ts | 0
.../src/core/Snippets.ts | 0
.../src/core/StoredTargets.ts | 0
.../src/core/UndoStack.test.ts | 0
.../src/core/UndoStack.ts | 0
.../src/core/commandRunner/CommandRunnerImpl.ts | 0
.../core/commandRunner/selectionToStoredTarget.ts | 0
.../canonicalizeAndValidateCommand.ts | 0
.../canonicalizeTargetsInPlace.ts | 0
.../commandVersionUpgrades/upgradeV0ToV1/index.ts | 0
.../upgradeV0ToV1/upgradeV0ToV1.ts | 0
.../commandVersionUpgrades/upgradeV1ToV2/index.ts | 0
.../upgradeV1ToV2/upgradeStrictHere.ts | 0
.../upgradeV1ToV2/upgradeV1ToV2.ts | 0
.../commandVersionUpgrades/upgradeV2ToV3/index.ts | 0
.../upgradeV2ToV3/upgradeV2ToV3.ts | 0
.../commandVersionUpgrades/upgradeV3ToV4/index.ts | 0
.../upgradeV3ToV4/upgradeV3ToV4.ts | 0
.../commandVersionUpgrades/upgradeV4ToV5/index.ts | 0
.../upgradeV4ToV5/upgradeV4ToV5.ts | 0
.../upgradeV5ToV6/canonicalizeActionName.ts | 0
.../commandVersionUpgrades/upgradeV5ToV6/index.ts | 0
.../upgradeV5ToV6/upgradeV5ToV6.ts | 0
.../core/commandVersionUpgrades/upgradeV6ToV7.ts | 0
.../src/core/getCommandFallback.ts | 0
.../src/core/getPreferredSnippet.test.ts | 0
.../src/core/getPreferredSnippet.ts | 0
.../src/core/handleHoistedModifiers.ts | 0
.../src/core/indexArrayStrict.ts | 0
.../src/core/inferFullTargetDescriptor.ts | 0
.../src/core/updateSelections/RangeUpdater.ts | 0
.../getOffsetsForDeleteOrReplace.ts | 0
.../getOffsetsForEmptyRangeInsert.ts | 0
.../getOffsetsForNonEmptyRangeInsert.ts | 0
.../src/core/updateSelections/getUpdatedText.ts | 0
.../src/core/updateSelections/updateRangeInfos.ts | 0
.../src/core/updateSelections/updateSelections.ts | 0
.../src/cursorlessEngine.ts | 0
.../src/customCommandGrammar/CommandLexer.ts | 0
.../src/customCommandGrammar/WithPlaceholders.ts | 0
.../src/customCommandGrammar/fillPlaceholders.ts | 0
.../src/customCommandGrammar/generated/grammar.ts | 0
.../src/customCommandGrammar/grammar.ne | 0
.../src/customCommandGrammar/grammarAction.test.ts | 0
.../customCommandGrammar/grammarScopeType.test.ts | 0
.../src/customCommandGrammar/grammarUtil.ts | 0
.../src/customCommandGrammar/lexer.test.ts | 0
.../src/customCommandGrammar/lexer.ts | 0
.../customCommandGrammar/parseAndFillOutAction.ts | 0
.../src/customCommandGrammar/parseCommand.ts | 0
.../disabledComponents/DisabledCommandServerApi.ts | 0
.../src/disabledComponents/DisabledHatTokenMap.ts | 0
.../DisabledLanguageDefinitions.ts | 0
.../src/disabledComponents/DisabledSnippets.ts | 0
.../disabledComponents/DisabledTalonSpokenForms.ts | 0
.../src/disabledComponents/DisabledTreeSitter.ts | 0
.../CustomSpokenFormGeneratorImpl.test.ts | 0
.../CustomSpokenFormGeneratorImpl.ts | 0
.../src/generateSpokenForm/NoSpokenFormError.ts | 0
.../src/generateSpokenForm/SpokenFormComponent.ts | 0
.../defaultSpokenForms/connectives.ts | 0
.../generateSpokenForm/defaultSpokenForms/marks.ts | 0
.../defaultSpokenForms/modifiers.ts | 0
.../defaultSpokenForms/numbers.ts | 0
.../defaultSpokenForms/snippets.ts | 0
.../surroundingPairsDelimiters.ts | 0
.../generateSpokenForm/generateSpokenForm.test.ts | 0
.../src/generateSpokenForm/generateSpokenForm.ts | 0
.../src/generateSpokenForm/getHatMapCommand.ts | 0
.../src/generateSpokenForm/getRangeConnective.ts | 0
.../generateSpokenForm/getSpokenFormComponentMap.ts | 0
.../src/generateSpokenForm/index.ts | 0
.../primitiveTargetToSpokenForm.ts | 0
.../{cursorless-engine => lib-engine}/src/index.ts | 0
.../src/languages/LanguageDefinition.ts | 0
.../src/languages/LanguageDefinitions.ts | 0
.../TreeSitterQuery/PredicateOperatorSchemaTypes.ts | 0
.../src/languages/TreeSitterQuery/QueryCapture.ts | 0
.../TreeSitterQuery/QueryPredicateOperator.ts | 0
.../languages/TreeSitterQuery/TreeSitterQuery.ts | 0
.../TreeSitterQuery/TreeSitterQueryCache.ts | 0
.../languages/TreeSitterQuery/assertTypesEqual.ts | 0
.../src/languages/TreeSitterQuery/captureNames.ts | 0
.../TreeSitterQuery/checkCaptureStartEnd.test.ts | 0
.../TreeSitterQuery/checkCaptureStartEnd.ts | 0
.../TreeSitterQuery/constructZodErrorMessages.ts | 0
.../TreeSitterQuery/getChildNodesForFieldName.ts | 0
.../src/languages/TreeSitterQuery/getNode.ts | 0
.../src/languages/TreeSitterQuery/getNodeRange.ts | 0
.../src/languages/TreeSitterQuery/index.ts | 0
.../TreeSitterQuery/isContainedInErrorNode.ts | 0
.../src/languages/TreeSitterQuery/isEven.ts | 0
.../TreeSitterQuery/makeRangeFromPositions.ts | 0
.../TreeSitterQuery/operatorArgumentSchemaTypes.ts | 0
.../TreeSitterQuery/parsePredicates.test.ts | 0
.../languages/TreeSitterQuery/parsePredicates.ts | 0
.../parsePredicatesWithErrorHandling.ts | 0
.../languages/TreeSitterQuery/positionToPoint.ts | 0
.../languages/TreeSitterQuery/predicateToString.ts | 0
.../TreeSitterQuery/queryPredicateOperators.ts | 0
.../TreeSitterQuery/rewriteStartOfEndOf.test.ts | 0
.../TreeSitterQuery/rewriteStartOfEndOf.ts | 0
.../src/languages/TreeSitterQuery/setRange.ts | 0
.../TreeSitterQuery/validateQueryCaptures.test.ts | 0
.../TreeSitterQuery/validateQueryCaptures.ts | 0
.../src/processTargets/MarkStageFactory.ts | 0
.../src/processTargets/MarkStageFactoryImpl.ts | 0
.../src/processTargets/ModifierStageFactory.ts | 0
.../src/processTargets/ModifierStageFactoryImpl.ts | 0
.../src/processTargets/PipelineStages.types.ts | 0
.../src/processTargets/TargetPipelineRunner.ts | 0
.../processTargets/createContinuousRangeTarget.ts | 0
.../src/processTargets/index.ts | 0
.../src/processTargets/marks/CursorStage.ts | 0
.../processTargets/marks/DecoratedSymbolStage.ts | 0
.../src/processTargets/marks/ExplicitMarkStage.ts | 0
.../src/processTargets/marks/ImplicitStage.ts | 0
.../src/processTargets/marks/LineNumberStage.ts | 0
.../src/processTargets/marks/NothingStage.ts | 0
.../src/processTargets/marks/RangeMarkStage.ts | 0
.../src/processTargets/marks/StoredTargetStage.ts | 0
.../src/processTargets/marks/TargetMarkStage.ts | 0
.../src/processTargets/marks/getActiveSelections.ts | 0
.../src/processTargets/modifiers/BoundaryStage.ts | 0
.../modifiers/ClassFunctionNameStage.ts | 0
.../modifiers/ConditionalModifierStages.ts | 0
.../modifiers/ContainingScopeStage.ts | 0
.../src/processTargets/modifiers/EveryScopeStage.ts | 0
.../src/processTargets/modifiers/FallbackStage.ts | 0
.../src/processTargets/modifiers/FilterStages.ts | 0
.../src/processTargets/modifiers/HeadTailStage.ts | 0
.../src/processTargets/modifiers/InstanceStage.ts | 0
.../src/processTargets/modifiers/InteriorStage.ts | 0
.../modifiers/LeadingTrailingStages.ts | 0
.../processTargets/modifiers/OrdinalScopeStage.ts | 0
.../src/processTargets/modifiers/PositionStage.ts | 0
.../processTargets/modifiers/PreferredScopeStage.ts | 0
.../processTargets/modifiers/RangeModifierStage.ts | 0
.../processTargets/modifiers/RawSelectionStage.ts | 0
.../processTargets/modifiers/RelativeScopeStage.ts | 0
.../processTargets/modifiers/TooFewScopesError.ts | 0
.../src/processTargets/modifiers/VisibleStage.ts | 0
.../commonContainingScopeIfUntypedModifiers.ts | 0
.../modifiers/constructScopeRangeTarget.ts | 0
.../modifiers/getContainingScopeTarget.ts | 0
.../modifiers/getPreferredScopeTouchingPosition.ts | 0
.../src/processTargets/modifiers/listUtils.ts | 0
.../scopeHandlers/BaseScopeHandler.test.ts | 0
.../modifiers/scopeHandlers/BaseScopeHandler.ts | 0
.../modifiers/scopeHandlers/BoundedScopeHandler.ts | 0
.../scopeHandlers/CharacterScopeHandler.ts | 0
.../CollectionItemScopeHandler.ts | 0
.../CollectionItemTextualScopeHandler.ts | 0
.../collectionItemTextualIterationScopeHandler.ts | 0
.../CollectionItemScopeHandler/createTargetScope.ts | 0
.../CollectionItemScopeHandler/getInteriorRanges.ts | 0
.../getSeparatorOccurrences.ts | 0
.../scopeHandlers/ConditionalScopeHandler.ts | 0
.../modifiers/scopeHandlers/DocumentScopeHandler.ts | 0
.../modifiers/scopeHandlers/FallbackScopeHandler.ts | 0
.../scopeHandlers/IdentifierScopeHandler.ts | 0
.../modifiers/scopeHandlers/IteratorInfo.ts | 0
.../modifiers/scopeHandlers/LineScopeHandler.ts | 0
.../modifiers/scopeHandlers/NestedScopeHandler.ts | 0
.../scopeHandlers/NotHierarchicalScopeError.ts | 0
.../scopeHandlers/NotebookCellApiScopeHandler.ts | 0
.../scopeHandlers/NotebookCellScopeHandler.ts | 0
.../scopeHandlers/ParagraphScopeHandler.ts | 0
.../modifiers/scopeHandlers/RegexScopeHandler.ts | 0
.../modifiers/scopeHandlers/ScopeHandlerCache.ts | 0
.../modifiers/scopeHandlers/ScopeHandlerFactory.ts | 0
.../scopeHandlers/ScopeHandlerFactoryImpl.ts | 0
.../SentenceScopeHandler/SentenceScopeHandler.ts | 0
.../SentenceScopeHandler/SentenceSegmenter.ts | 0
.../modifiers/scopeHandlers/SortedScopeHandler.ts | 0
.../InteriorScopeHandler.ts | 0
.../SurroundingPairInteriorScopeHandler.ts | 0
.../SurroundingPairScopeHandler.ts | 0
.../createTargetScope.ts | 0
.../SurroundingPairScopeHandler/delimiterMaps.ts | 0
.../getDelimiterOccurrences.ts | 0
.../getDelimiterRegex.ts | 0
.../getIndividualDelimiters.ts | 0
.../getSurroundingPairOccurrences.ts | 0
.../SurroundingPairScopeHandler/index.ts | 0
.../SurroundingPairScopeHandler/types.ts | 0
.../modifiers/scopeHandlers/TokenScopeHandler.ts | 0
.../BaseTreeSitterScopeHandler.ts | 0
.../TreeSitterIterationScopeHandler.ts | 0
.../TreeSitterScopeHandler.ts | 0
.../TreeSitterScopeHandler/captureUtils.ts | 0
.../TreeSitterScopeHandler/getQuerySearchRange.ts | 0
.../scopeHandlers/TreeSitterScopeHandler/index.ts | 0
.../TreeSitterScopeHandler/mergeAdjacentBy.ts | 0
.../WordScopeHandler/WordScopeHandler.ts | 0
.../scopeHandlers/WordScopeHandler/WordTokenizer.ts | 0
.../modifiers/scopeHandlers/compareTargetScopes.ts | 0
.../processTargets/modifiers/scopeHandlers/index.ts | 0
.../scopeHandlers/isPreferredOverHelper.ts | 0
.../modifiers/scopeHandlers/scope.types.ts | 0
.../modifiers/scopeHandlers/scopeHandler.types.ts | 0
.../modifiers/scopeHandlers/scopeTypeUtil.ts | 0
.../modifiers/scopeHandlers/shouldYieldScope.ts | 0
.../util/OneWayNestedRangeFinder.test.ts | 0
.../scopeHandlers/util/OneWayNestedRangeFinder.ts | 0
.../scopeHandlers/util/OneWayRangeFinder.ts | 0
.../util/getCollectionItemRemovalRange.ts | 0
.../scopeHandlers/util/isHintsEveryScope.ts | 0
.../processTargets/modifiers/targetSequenceUtils.ts | 0
.../src/processTargets/targets/BaseTarget.ts | 0
.../targets/BoundedParagraphTarget.ts | 0
.../src/processTargets/targets/DestinationImpl.ts | 0
.../src/processTargets/targets/DocumentTarget.ts | 0
.../src/processTargets/targets/HeadTailTarget.ts | 0
.../src/processTargets/targets/ImplicitTarget.ts | 0
.../src/processTargets/targets/InteriorTarget.ts | 0
.../src/processTargets/targets/LineTarget.ts | 0
.../targets/NotebookCellDestination.ts | 0
.../processTargets/targets/NotebookCellTarget.ts | 0
.../src/processTargets/targets/ParagraphTarget.ts | 0
.../src/processTargets/targets/PlainTarget.ts | 0
.../processTargets/targets/RawSelectionTarget.ts | 0
.../src/processTargets/targets/ScopeTypeTarget.ts | 0
.../processTargets/targets/SubTokenWordTarget.ts | 0
.../processTargets/targets/SurroundingPairTarget.ts | 0
.../src/processTargets/targets/TokenTarget.ts | 0
.../src/processTargets/targets/UntypedTarget.ts | 0
.../src/processTargets/targets/index.ts | 0
.../targets/util/createContinuousRange.ts | 0
.../DelimitedSequenceInsertionRemovalBehavior.ts | 0
.../TokenInsertionRemovalBehavior.ts | 0
.../getSmartRemovalTarget.ts | 0
.../insertionRemovalBehavior.types.ts | 0
.../src/runCommand.ts | 0
.../src/scopeProviders/ScopeInfoProvider.ts | 0
.../src/scopeProviders/ScopeRangeProvider.ts | 0
.../src/scopeProviders/ScopeRangeWatcher.ts | 0
.../src/scopeProviders/ScopeSupportChecker.ts | 0
.../src/scopeProviders/ScopeSupportWatcher.ts | 0
.../src/scopeProviders/getIterationRange.ts | 0
.../src/scopeProviders/getIterationScopeRanges.ts | 0
.../src/scopeProviders/getScopeRanges.ts | 0
.../src/scopeProviders/getTargetRanges.ts | 0
.../src/scopeProviders/scopeTypeToString.ts | 0
.../scripts/transformRecordedTests/checkMarks.ts | 0
.../src/scripts/transformRecordedTests/index.ts | 0
.../src/scripts/transformRecordedTests/moveFile.ts | 0
.../scripts/transformRecordedTests/transformFile.ts | 0
.../transformations/canonicalize.ts | 0
.../transformations/identity.ts | 0
.../transformations/upgrade.ts | 0
.../transformations/upgradeFromVersion0.ts | 0
.../src/scripts/transformRecordedTests/types.ts | 0
.../transformRecordedTests/upgradeDecorations.ts | 0
.../src/snippets/snippetParser.test.ts | 0
.../src/snippets/transformSnippetVariables.ts | 0
.../src/snippets/vendor/vscodeSnippet/charCode.ts | 0
.../snippets/vendor/vscodeSnippet/snippetParser.ts | 0
.../vendor/vscodeSnippet/snippetVariables.ts | 0
.../src/spokenForms/CustomSpokenForms.ts | 0
.../src/spokenForms/SpokenFormMap.ts | 0
.../src/spokenForms/defaultSpokenFormMap.ts | 0
.../src/spokenForms/defaultSpokenFormMap.types.ts | 0
.../src/spokenForms/defaultSpokenFormMapCore.ts | 0
.../src/spokenForms/graphemes.ts | 0
.../src/spokenForms/spokenFormMapUtil.ts | 0
.../src/test/fixtures/communitySnippets.fixture.ts | 0
.../src/test/fixtures/multiAction.fixture.ts | 0
.../src/test/fixtures/sentenceSegmeter.fixture.ts | 0
.../src/test/fixtures/spokenFormTest.ts | 0
.../src/test/fixtures/subtoken.fixture.ts | 0
.../test/fixtures/synonymousSpokenForms.fixture.ts | 0
.../src/test/fixtures/talonApi.fixture.ts | 0
.../src/test/scopes.test.ts | 0
.../src/test/sentenceSegmenter.test.ts | 0
.../src/test/spokenForms.talon.test.ts | 0
.../src/test/subtoken.test.ts | 0
.../src/testUtil/Performance.ts | 0
.../src/testUtil/TalonRepl.ts | 0
.../src/testUtil/TestFileSystem.ts | 0
.../src/testUtil/TestTextEditor.ts | 0
.../src/testUtil/TestTreeSitter.ts | 0
.../src/testUtil/createTestEnvironment.ts | 0
.../src/testUtil/extractTargetKeys.ts | 0
.../src/testUtil/plainObjectToTarget.ts | 0
.../src/testUtil/serializeHeader.ts | 0
.../src/testUtil/serializeScopeFixture.ts | 0
.../src/testUtil/serializeTargetRange.ts | 0
.../src/tokenGraphemeSplitter/index.ts | 0
.../tokenGraphemeSplitter.test.ts | 0
.../tokenGraphemeSplitter/tokenGraphemeSplitter.ts | 0
.../src/tokenizer/index.ts | 0
.../src/tokenizer/tokenizer.test.ts | 0
.../src/tokenizer/tokenizer.ts | 0
.../src/tokenizer/tokenizer.types.ts | 0
.../src/typings/TargetDescriptor.ts | 0
.../src/typings/Types.ts | 0
.../src/typings/target.types.ts | 0
.../src/typings/updateSelections.ts | 0
.../src/util/DecorationDebouncer.ts | 0
.../src/util/allocateHats/HatMetrics.ts | 0
.../src/util/allocateHats/allocateHats.ts | 0
.../src/util/allocateHats/chooseTokenHat.ts | 0
.../src/util/allocateHats/getDisplayLineMap.ts | 0
.../src/util/allocateHats/getHatRankingContext.ts | 0
.../src/util/allocateHats/getRankedTokens.ts | 0
.../src/util/allocateHats/getTokenComparator.ts | 0
.../src/util/allocateHats/getTokensInRange.ts | 0
.../src/util/allocateHats/index.ts | 0
.../util/allocateHats/maxByFirstDiffering.test.ts | 0
.../src/util/allocateHats/maxByFirstDiffering.ts | 0
.../src/util/getMatchesInRange.ts | 0
.../src/util/getPartialTargetDescriptors.ts | 0
.../src/util/getPrimitiveTargets.ts | 0
.../src/util/getScopeType.ts | 0
.../src/util/grammarHelpers.ts | 0
.../src/util/map.ts | 0
.../src/util/performDocumentEdits.ts | 0
.../src/util/rangeUtils.ts | 0
.../src/util/selectionUtils.ts | 0
.../src/util/setIsEqual.ts | 0
.../src/util/targetUtils.ts | 0
.../src/util/treeSitterUtils.ts | 0
.../src/util/tryConstructTarget.ts | 0
.../src/util/typeUtils.ts | 0
.../src/util/unifyRanges.ts | 0
.../tsconfig.json | 0
.../package.json | 0
.../src/TestHelpers.ts | 0
.../src/getExtensionApi.ts | 0
.../src/ide/neovim/NeovimCapabilities.ts | 0
.../src/ide/neovim/NeovimClipboard.ts | 0
.../src/ide/neovim/NeovimConfiguration.ts | 0
.../src/ide/neovim/NeovimEdit.ts | 0
.../src/ide/neovim/NeovimEvents.ts | 0
.../src/ide/neovim/NeovimIDE.ts | 0
.../src/ide/neovim/NeovimKeyValueStore.ts | 0
.../src/ide/neovim/NeovimMessages.ts | 0
.../src/ide/neovim/NeovimTextDocument.ts | 0
.../src/ide/neovim/NeovimTextEditor.ts | 0
.../src/ide/neovim/NeovimTextLine.ts | 0
.../src/index.ts | 0
.../src/neovimApi.ts | 0
.../src/neovimHelpers.ts | 0
.../src/runCommand.ts | 0
.../src/testUtil/openNewEditor.ts | 0
.../tsconfig.json | 0
.../package.json | 0
.../src/NeovimRegistry.ts | 0
.../src/index.ts | 0
.../tsconfig.json | 0
.../{node-common => lib-node-common}/package.json | 0
.../src/Cheatsheet.ts | 0
.../src/FileSystemCommandHistoryStorage.ts | 0
.../src/FileSystemRawTreeSitterQueryProvider.ts | 0
.../src/FileSystemTalonSpokenForms.ts | 0
.../src/FileSystemTutorialContentProvider.ts | 0
.../src/getCursorlessRepoRoot.ts | 0
.../src/getFixturePaths.ts | 0
.../src/getScopeTestPathsRecursively.ts | 0
.../{node-common => lib-node-common}/src/index.ts | 0
.../{node-common => lib-node-common}/src/isOS.ts | 0
.../src/loadFixture.ts | 0
.../src/nodeGetRunMode.ts | 0
.../src/runRecordedTest.ts | 0
.../src/walkAsync.ts | 0
.../src/walkSync.ts | 0
.../tsconfig.json | 0
.../README.md | 0
.../package.json | 0
.../src/Match.ts | 0
.../src/index.ts | 0
.../src/sbd.ts | 0
.../src/stringHelper.ts | 0
.../src/test/abbr.test.ts | 0
.../src/test/empty.test.ts | 0
.../src/test/lists.test.ts | 0
.../src/test/multiple_sentences.test.ts | 0
.../src/test/newline.test.ts | 0
.../src/test/preserve_whitespace.test.ts | 0
.../src/test/single_sentence.test.ts | 0
.../src/test/symbols.test.ts | 0
.../tsconfig.json | 0
.../package.json | 0
.../src/README.md | 0
.../src/constructTestHelpers.ts | 0
.../src/extension.ts | 0
.../src/ide/TalonJsCapabilities.ts | 0
.../src/ide/TalonJsClipboard.ts | 0
.../src/ide/TalonJsConfiguration.ts | 0
.../src/ide/TalonJsIDE.ts | 0
.../src/ide/TalonJsKeyValueStore.ts | 0
.../src/ide/TalonJsMessages.ts | 0
.../src/ide/TalonJsTestHats.ts | 0
.../src/ide/flashRanges.ts | 0
.../src/ide/toCharacterRangeOffsets.ts | 0
.../src/index.ts | 0
.../src/polyfill.ts | 0
.../src/registerCommands.ts | 0
.../src/types/talon.ts | 0
.../src/types/types.ts | 0
.../tsconfig.json | 0
.../package.json | 0
.../src/RecordTestCaseCommandOptions.ts | 0
.../src/ScopeTestRecorder.ts | 0
.../src/TestCase.ts | 0
.../src/TestCaseRecorder.ts | 0
.../src/index.ts | 0
.../src/takeSnapshot.ts | 0
.../src/timeUtils.ts | 0
.../tsconfig.json | 0
.../package.json | 0
.../src/Tutorial.ts | 0
.../src/TutorialError.ts | 0
.../src/TutorialImpl.ts | 0
.../src/TutorialStepParser.ts | 0
.../src/arePreconditionsMet.ts | 0
.../src/getScopeTypeSpokenFormStrict.ts | 0
.../src/getSpokenFormStrict.ts | 0
.../src/index.ts | 0
.../src/loadTutorial.ts | 0
.../src/setupStep.ts | 0
.../src/specialTerms.ts | 0
.../stepComponentParsers/ActionComponentParser.ts | 0
.../CursorlessCommandComponentParser.ts | 0
.../stepComponentParsers/GraphemeComponentParser.ts | 0
.../stepComponentParsers/parseSpecialComponent.ts | 0
.../stepComponentParsers/parseVisualizeComponent.ts | 0
.../src/tutorialWrapCommandRunner.ts | 0
.../src/types/StepComponent.ts | 0
.../src/types/TutorialStepTrigger.ts | 0
.../src/types/tutorial.types.ts | 0
.../{neovim-common => lib-tutorial}/tsconfig.json | 0
.../package.json | 0
.../src/ScopeVisualizerColorConfig.ts | 0
.../src/SpyWebViewEvent.ts | 0
.../src/TestHelpers.ts | 0
.../src/VscodeApi.ts | 0
.../src/getExtensionApi.ts | 0
.../src/index.ts | 0
.../src/notebook.ts | 0
.../src/runCommand.ts | 0
.../src/testUtil/closeUiElements.ts | 0
.../src/testUtil/getReusableEditor.ts | 0
.../src/testUtil/openNewEditor.ts | 0
.../src/vscodeUtil.ts | 0
.../tsconfig.json | 0
.../README.md | 0
.../package.json | 0
.../src/App.tsx | 0
.../src/ArrowLeftIcon.tsx | 0
.../src/ArrowRightIcon.tsx | 0
.../src/CloseIcon.tsx | 0
.../src/Command.tsx | 0
.../src/ProgressBar.tsx | 0
.../src/TutorialStep.tsx | 0
.../src/index.css | 0
.../src/index.tsx | 0
.../tsconfig.json | 0
.../vite.config.ts | 0
.../package.json | 0
.../src/endToEndTestSetup.ts | 0
.../src/shouldRunTest.ts | 0
.../src/suite/recorded.neovim.test.ts | 0
.../{node-common => test-neovim-e2e}/tsconfig.json | 0
packages/{test-harness => test-runner}/README.md | 0
packages/{test-harness => test-runner}/package.json | 0
.../scripts/compile-esbuild.sh | 0
.../scripts/run-esbuild.sh | 0
.../src/config/init.lua | 0
.../src/launchNeovimAndRunTests.ts | 0
.../src/launchVscodeAndRunTests.ts | 0
.../src/runAllTests.ts | 0
.../src/runners/README.md | 0
.../src/runners/extensionTestsNeovim.ts | 0
.../src/runners/extensionTestsVscode.ts | 0
.../src/scripts/generateTestSubsetFile.ts | 0
.../src/scripts/runNeovimTestsCI.ts | 0
.../src/scripts/runTalonJsTests.ts | 0
.../src/scripts/runTalonTests.ts | 0
.../src/scripts/runUnitTests.ts | 0
.../src/scripts/runVscodeTestsCI.ts | 0
.../{test-harness => test-runner}/src/testSubset.ts | 0
.../{sentence-parser => test-runner}/tsconfig.json | 0
.../package.json | 0
.../scripts/test-quickjs.sh | 0
.../src/constructTestHelpers.ts | 0
.../src/endToEndTestSetUp.ts | 0
.../src/quickjsTest.ts | 0
.../src/recorded.talonjs.test.ts | 0
.../src/talonMock.ts | 0
.../src/types/cursorless.ts | 0
.../src/types/std.d.ts | 0
.../src/types/talon.ts | 0
.../tsconfig.json | 0
.../package.json | 0
.../src/endToEndTestSetup.ts | 0
.../src/isCI.ts | 0
.../src/mockPrePhraseGetVersion.ts | 0
.../src/notebook.ts | 0
.../src/suite/backwardCompatibility.vscode.test.ts | 0
.../src/suite/breakpoints.vscode.test.ts | 0
.../src/suite/commandHistory.vscode.test.ts | 0
.../src/suite/containingTokenTwice.vscode.test.ts | 0
.../src/suite/crossCellsSetSelection.vscode.test.ts | 0
.../src/suite/editNewCell.vscode.test.ts | 0
.../src/suite/explicitMark.vscode.test.ts | 0
.../src/suite/fold.vscode.test.ts | 0
.../src/suite/followLink.vscode.test.ts | 0
.../src/suite/groupByDocument.vscode.test.ts | 0
.../src/suite/instanceAcrossSplit.vscode.test.ts | 0
.../src/suite/intraCellSetSelection.vscode.test.ts | 0
.../src/suite/keyboard/basic.vscode.test.ts | 0
.../src/suite/performance.vscode.test.ts | 0
.../src/suite/pourAcrossSplit.vscode.test.ts | 0
.../src/suite/prePhraseSnapshot.vscode.test.ts | 0
.../src/suite/recorded.vscode.test.ts | 0
.../src/suite/revealRange.vscode.test.ts | 0
.../scopeProvider/assertCalledWithScopeInfo.ts | 0
.../suite/scopeProvider/runBasicScopeInfoTest.ts | 0
.../scopeProvider/runCustomRegexScopeInfoTest.ts | 0
.../runCustomSpokenFormScopeInfoTest.ts | 0
.../runSurroundingPairScopeInfoTest.ts | 0
.../scopeProvider/scopeProvider.vscode.test.ts | 0
.../src/suite/scopeVisualizer/checkAndResetFakes.ts | 0
.../src/suite/scopeVisualizer/colorConfig.ts | 0
.../src/suite/scopeVisualizer/injectFakes.ts | 0
.../runBasicMultilineContentTest.png | Bin
.../scopeVisualizer/runBasicMultilineContentTest.ts | 0
.../suite/scopeVisualizer/runBasicRemovalTest.png | Bin
.../suite/scopeVisualizer/runBasicRemovalTest.ts | 0
.../runNestedMultilineContentTest.png | Bin
.../runNestedMultilineContentTest.ts | 0
.../src/suite/scopeVisualizer/runUpdateTest.ts | 0
.../scopeVisualizer/scopeVisualizer.vscode.test.ts | 0
.../scopeVisualizer/scopeVisualizerTest.types.ts | 0
.../suite/scopeVisualizer/spyCallsToPlainObject.ts | 0
.../src/suite/scroll.vscode.test.ts | 0
.../src/suite/setupFake.ts | 0
.../src/suite/shouldSkipTest.ts | 0
.../src/suite/testCaseRecorder.vscode.test.ts | 0
.../src/suite/toggleDecorations.vscode.test.ts | 0
.../src/suite/tutorial/tutorial.vscode.test.ts | 0
.../src/suite/visible.vscode.test.ts | 0
.../src/suite/waitFor.ts | 0
.../suite/wrapWithSnippetAcrossSplit.vscode.test.ts | 0
.../{test-harness => test-vscode-e2e}/tsconfig.json | 0
.../{meta-updater => tool-meta-updater}/README.md | 0
.../package.json | 0
.../src/Context.ts | 0
.../src/getCursorlessVscodeFields.ts | 0
.../src/index.ts | 0
.../src/metaUpdater.ts | 0
.../src/textFormat.ts | 0
.../src/toPosixPath.ts | 0
.../src/updateLanguageMdx.ts | 0
.../src/updatePackageJson.ts | 0
.../src/updateScopeMdx.ts | 0
.../src/updateTSConfig.ts | 0
.../src/updateTSConfigBase.ts | 0
.../src/updatesScopeSupportFacetInfos.ts | 0
.../tsconfig.json | 0
1218 files changed, 0 insertions(+), 0 deletions(-)
rename packages/{cursorless-neovim => app-neovim}/TERMINOLOGY.md (100%)
rename packages/{cursorless-neovim => app-neovim}/package.json (100%)
rename packages/{cursorless-neovim => app-neovim}/scripts/compile-esbuild.sh (100%)
mode change 100755 => 100644
rename packages/{cursorless-neovim => app-neovim}/scripts/debug-neovim.bat (100%)
rename packages/{cursorless-neovim => app-neovim}/scripts/debug-neovim.sh (100%)
mode change 100755 => 100644
rename packages/{cursorless-neovim => app-neovim}/scripts/linux-terminal.sh (100%)
mode change 100755 => 100644
rename packages/{cursorless-neovim => app-neovim}/scripts/populate-dist.sh (100%)
mode change 100755 => 100644
rename packages/{cursorless-neovim => app-neovim}/scripts/show-logs.sh (100%)
mode change 100755 => 100644
rename packages/{cursorless-neovim => app-neovim}/src/NeovimCommandServerApi.ts (100%)
rename packages/{cursorless-neovim => app-neovim}/src/constructTestHelpers.ts (100%)
rename packages/{cursorless-neovim => app-neovim}/src/extension.ts (100%)
rename packages/{cursorless-neovim => app-neovim}/src/index.ts (100%)
rename packages/{cursorless-neovim => app-neovim}/src/registerCommands.ts (100%)
rename packages/{common => app-neovim}/tsconfig.json (100%)
rename packages/{cursorless-everywhere-talon => app-talon}/package.json (100%)
rename packages/{cursorless-everywhere-talon => app-talon}/scripts/esbuild.sh (100%)
mode change 100755 => 100644
rename packages/{cursorless-everywhere-talon => app-talon}/src/extension.ts (100%)
rename packages/{cursorless-everywhere-talon => app-talon}/src/mainDevelopment.ts (100%)
rename packages/{cursorless-everywhere-talon => app-talon}/src/mainProduction.ts (100%)
rename packages/{cursorless-everywhere-talon => app-talon}/src/types/talon.d.ts (100%)
rename packages/{cursorless-engine => app-talon}/tsconfig.json (100%)
rename packages/{cursorless-vscode => app-vscode}/eslintConfig.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/images/logo.png (100%)
rename packages/{cursorless-vscode => app-vscode}/package.json (100%)
rename packages/{cursorless-vscode => app-vscode}/resources/font_measurements.js (100%)
rename packages/{cursorless-vscode => app-vscode}/resources/installationDependencies.html (100%)
rename packages/{cursorless-vscode => app-vscode}/resources/installationDependencies.js (100%)
rename packages/{cursorless-vscode => app-vscode}/scripts/compile-esbuild.sh (100%)
mode change 100755 => 100644
rename packages/{cursorless-vscode => app-vscode}/scripts/install-from-pr.sh (100%)
mode change 100755 => 100644
rename packages/{cursorless-vscode => app-vscode}/scripts/install-local.sh (100%)
mode change 100755 => 100644
rename packages/{cursorless-vscode => app-vscode}/scripts/uninstall-local.sh (100%)
mode change 100755 => 100644
rename packages/{cursorless-vscode => app-vscode}/src/InstallationDependencies.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/ReleaseNotes.test.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/ReleaseNotes.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/ScopeTreeProvider.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/ScopeVisualizerCommandApi.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/SpyWebviewView.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/StatusBarItem.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/VscodeSnippets.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/VscodeTutorial.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/commands.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/constructTestHelpers.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/createScopeVisualizer.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/createTreeSitter.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/createTutorial.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/createVscodeIde.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/extension.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/ide/vscode/VSCodeScopeVisualizer/RangeTypeColors.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/ide/vscode/VSCodeScopeVisualizer/VscodeFancyRangeHighlighter/VscodeFancyRangeHighlighter.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/ide/vscode/VSCodeScopeVisualizer/VscodeFancyRangeHighlighter/VscodeFancyRangeHighlighterRenderer.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/ide/vscode/VSCodeScopeVisualizer/VscodeFancyRangeHighlighter/decorationStyle.types.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/ide/vscode/VSCodeScopeVisualizer/VscodeFancyRangeHighlighter/generateDifferentiatedRanges.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/ide/vscode/VSCodeScopeVisualizer/VscodeFancyRangeHighlighter/getDifferentiatedStyleMapKey.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/ide/vscode/VSCodeScopeVisualizer/VscodeFancyRangeHighlighter/groupDifferentiatedStyledRanges.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/ide/vscode/VSCodeScopeVisualizer/VscodeFancyRangeHighlighter/index.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/ide/vscode/VSCodeScopeVisualizer/VscodeIterationScopeVisualizer.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/ide/vscode/VSCodeScopeVisualizer/VscodeScopeRenderer.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/ide/vscode/VSCodeScopeVisualizer/VscodeScopeTargetVisualizer.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/ide/vscode/VSCodeScopeVisualizer/VscodeScopeVisualizer.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/ide/vscode/VSCodeScopeVisualizer/blendRangeTypeColors.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/ide/vscode/VSCodeScopeVisualizer/createVscodeScopeVisualizer.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/ide/vscode/VSCodeScopeVisualizer/getColorsFromConfig.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/ide/vscode/VSCodeScopeVisualizer/index.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/ide/vscode/VscodeCapabilities.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/ide/vscode/VscodeClipboard.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/ide/vscode/VscodeConfiguration.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/ide/vscode/VscodeEdit.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/ide/vscode/VscodeEnabledHatStyleManager.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/ide/vscode/VscodeEvents.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/ide/vscode/VscodeFileSystem.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/ide/vscode/VscodeFlashHandler.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/ide/vscode/VscodeFocusEditor.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/ide/vscode/VscodeFold.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/ide/vscode/VscodeHighlightDecorationTypes.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/ide/vscode/VscodeHighlights.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/ide/vscode/VscodeIDE.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/ide/vscode/VscodeIdeNotebook.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/ide/vscode/VscodeInsertSnippets.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/ide/vscode/VscodeKeyValueStore.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/ide/vscode/VscodeMessages.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/ide/vscode/VscodeOpenLink.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/ide/vscode/VscodeRevealLine.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/ide/vscode/VscodeRunMode.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/ide/vscode/VscodeTextDocument.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/ide/vscode/VscodeTextEditor.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/ide/vscode/VscodeTextLine.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/ide/vscode/VscodeToggleBreakpoint.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/ide/vscode/hatStyles.types.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/ide/vscode/hats/FakeFontMeasurements.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/ide/vscode/hats/FontMeasurements.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/ide/vscode/hats/FontMeasurementsImpl.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/ide/vscode/hats/VscodeHatRenderer.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/ide/vscode/hats/VscodeHats.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/ide/vscode/hats/getHatThemeColors.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/ide/vscode/hats/getStyleName.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/ide/vscode/hats/performPr1868ShapeUpdateInit.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/ide/vscode/hats/shapeAdjustments.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/ide/vscode/isDiffEditorOriginal.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/ide/vscode/notebook/notebook.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/ide/vscode/textLine.vscode.test.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/ide/vscode/toVscodeEditor.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/ide/vscode/vscodeShowQuickPick.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/keyboard/KeyboardActionType.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/keyboard/KeyboardCommandHandler.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/keyboard/KeyboardCommandTypeHelpers.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/keyboard/KeyboardCommands.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/keyboard/KeyboardCommandsModal.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/keyboard/KeyboardCommandsModalLayer.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/keyboard/KeyboardCommandsTargeted.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/keyboard/KeyboardConfig.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/keyboard/KeyboardHandler.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/keyboard/TokenTypeHelpers.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/keyboard/TokenTypes.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/keyboard/buildSuffixTrie.test.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/keyboard/buildSuffixTrie.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/keyboard/getTokenTypeKeyMaps.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/keyboard/grammar/CommandRulePostProcessor.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/keyboard/grammar/command.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/keyboard/grammar/generated/grammar.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/keyboard/grammar/getAcceptableTokenTypes.test.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/keyboard/grammar/getAcceptableTokenTypes.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/keyboard/grammar/grammar.ne (100%)
rename packages/{cursorless-vscode => app-vscode}/src/keyboard/grammar/grammar.test.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/keyboard/grammar/keyboardLexer.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/keyboard/grammar/stringifyTokens.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/keyboard/keyboard-config.fixture.json (100%)
rename packages/{cursorless-vscode => app-vscode}/src/logQuickActions.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/registerCommands.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/revisualizeOnCustomRegexChange.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/scripts/hatAdjustments/add.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/scripts/hatAdjustments/average.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/scripts/hatAdjustments/lib.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/scripts/initLaunchSandbox.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/scripts/populateDist/Asset.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/scripts/populateDist/assets.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/scripts/populateDist/context.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/scripts/populateDist/generateBuildInfo.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/scripts/populateDist/index.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/scripts/populateDist/populateDist.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/scripts/populateDist/runCommand.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/scripts/populateDist/transformPackageJson.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/scripts/preprocessSvgHats.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/storedTargetHighlighter.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/usingSetting.ts (100%)
rename packages/{cursorless-vscode => app-vscode}/src/vscodeApi.ts (100%)
rename packages/{cursorless-everywhere-talon-core => app-vscode}/tsconfig.json (100%)
rename packages/{cursorless-org-docs => app-web-docs}/README.md (100%)
rename packages/{cursorless-org-docs => app-web-docs}/config/algolia/README.md (100%)
rename packages/{cursorless-org-docs => app-web-docs}/config/algolia/crawler-settings.js (100%)
rename packages/{cursorless-org-docs => app-web-docs}/config/algolia/index-settings.json (100%)
rename packages/{cursorless-org-docs => app-web-docs}/docusaurus.config.mts (100%)
rename packages/{cursorless-org-docs => app-web-docs}/package.json (100%)
rename packages/{cursorless-org-docs => app-web-docs}/sidebar.js (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/css/custom.scss (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/css/github-link.scss (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/components/Code.css (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/components/Code.tsx (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/components/DynamicTOC.tsx (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/components/Header.css (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/components/Header.tsx (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/components/ScopeSupport.css (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/components/ScopeVisualizer.tsx (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/components/ScrollToHashId.tsx (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/components/calculateHighlights.ts (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/components/flattenHighlights.test.ts (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/components/flattenHighlights.ts (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/components/highlightColors.ts (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/components/highlightsToDecorations.ts (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/components/types.ts (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/components/util.ts (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/contributing/CONTRIBUTING.mdx (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/contributing/MissingLanguageScopes.tsx (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/contributing/_api-index.md (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/contributing/adding-a-new-language.md (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/contributing/adding-a-new-package.md (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/contributing/adding-a-new-scope.md (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/contributing/architecture/hat-snapshots.md (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/contributing/architecture/images/hat-token-map-snapshots.png (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/contributing/architecture/neovim-test-infrastructure.md (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/contributing/architecture/package-scripts.md (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/contributing/cheatsheet.md (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/contributing/cursorless-in-neovim.md (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/contributing/documentation-search.md (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/contributing/guidelines.md (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/contributing/missing-language-scopes.mdx (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/contributing/scope-test-format.md (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/contributing/scopes/README.md (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/contributing/scopes/anonymousFunction.mdx (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/contributing/scopes/argumentList.mdx (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/contributing/scopes/argumentOrParameter.mdx (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/contributing/scopes/attribute.mdx (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/contributing/scopes/boundedNonWhitespaceSequence.mdx (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/contributing/scopes/boundedParagraph.mdx (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/contributing/scopes/branch.mdx (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/contributing/scopes/character.mdx (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/contributing/scopes/class.mdx (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/contributing/scopes/className.mdx (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/contributing/scopes/collectionItem.mdx (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/contributing/scopes/collectionKey.mdx (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/contributing/scopes/command.mdx (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/contributing/scopes/comment.mdx (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/contributing/scopes/components/Scopes.tsx (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/contributing/scopes/condition.mdx (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/contributing/scopes/disqualifyDelimiter.mdx (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/contributing/scopes/document.mdx (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/contributing/scopes/environment.mdx (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/contributing/scopes/fieldAccess.mdx (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/contributing/scopes/fullLine.mdx (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/contributing/scopes/functionCall.mdx (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/contributing/scopes/functionCallee.mdx (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/contributing/scopes/functionName.mdx (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/contributing/scopes/identifier.mdx (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/contributing/scopes/ifStatement.mdx (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/contributing/scopes/interior.mdx (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/contributing/scopes/line.mdx (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/contributing/scopes/list.mdx (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/contributing/scopes/map.mdx (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/contributing/scopes/name.mdx (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/contributing/scopes/namedFunction.mdx (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/contributing/scopes/nonWhitespaceSequence.mdx (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/contributing/scopes/notebookCell.mdx (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/contributing/scopes/pairDelimiter.mdx (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/contributing/scopes/paragraph.mdx (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/contributing/scopes/regularExpression.mdx (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/contributing/scopes/section.mdx (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/contributing/scopes/selector.mdx (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/contributing/scopes/sentence.mdx (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/contributing/scopes/statement.mdx (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/contributing/scopes/string.mdx (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/contributing/scopes/surroundingPair.mdx (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/contributing/scopes/surroundingPairInterior.mdx (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/contributing/scopes/textFragment.mdx (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/contributing/scopes/token.mdx (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/contributing/scopes/type.mdx (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/contributing/scopes/unit.mdx (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/contributing/scopes/url.mdx (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/contributing/scopes/value.mdx (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/contributing/scopes/word.mdx (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/contributing/scopes/xmlBothTags.mdx (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/contributing/scopes/xmlElement.mdx (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/contributing/scopes/xmlEndTag.mdx (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/contributing/scopes/xmlStartTag.mdx (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/contributing/test-case-recorder.md (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/contributing/tests.md (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/contributing/tree-sitter-query-syntax.md (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/user/README.md (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/user/customization.md (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/user/experimental/README.md (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/user/experimental/images/linkWrap.gif (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/user/experimental/images/tryWrapFine.gif (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/user/experimental/keyboard/images/keyboardBring.gif (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/user/experimental/keyboard/images/keyboardDelete.gif (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/user/experimental/keyboard/images/keyboardPour.gif (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/user/experimental/keyboard/modal.md (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/user/glossary.md (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/user/hatAssignment.md (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/user/how-to.md (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/user/images/chuckBat.gif (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/user/images/custom-regex-scopes.png (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/user/images/relative_ordinal.png (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/user/images/relative_ordinal.tex (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/user/images/sidebar-scopes.png (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/user/images/visualize-block-removal.png (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/user/images/visualize-funk.png (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/user/images/visualize-token.png (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/user/installation.md (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/user/languages/README.md (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/user/languages/c.mdx (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/user/languages/clojure.mdx (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/user/languages/components/Language.tsx (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/user/languages/cpp.mdx (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/user/languages/csharp.mdx (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/user/languages/css.mdx (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/user/languages/dart.mdx (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/user/languages/go.mdx (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/user/languages/html.mdx (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/user/languages/java.mdx (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/user/languages/javascript.mdx (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/user/languages/javascriptreact.mdx (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/user/languages/json.mdx (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/user/languages/jsonc.mdx (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/user/languages/jsonl.mdx (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/user/languages/kotlin.mdx (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/user/languages/latex.mdx (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/user/languages/lua.mdx (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/user/languages/markdown.mdx (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/user/languages/php.mdx (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/user/languages/plaintext.mdx (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/user/languages/properties.mdx (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/user/languages/python.mdx (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/user/languages/r.mdx (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/user/languages/ruby.mdx (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/user/languages/rust.mdx (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/user/languages/scala.mdx (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/user/languages/scm.mdx (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/user/languages/scss.mdx (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/user/languages/talon-list.mdx (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/user/languages/talon.mdx (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/user/languages/typescript.mdx (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/user/languages/typescriptreact.mdx (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/user/languages/xml.mdx (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/user/languages/yaml.mdx (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/user/localCommandHIstory.md (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/user/reference/destinations.md (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/user/release-notes/0.28.0.md (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/user/release-notes/0.29.0.md (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/user/release-notes/1.0.0.md (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/user/release-notes/1.1.0.md (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/user/release-notes/2022-year-in-review.md (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/user/release-notes/README.md (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/user/release-notes/big-hats.png (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/user/release-notes/sidebar-containment-icons.png (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/user/release-notes/sidebar-sneak-preview.png (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/user/scope-sidebar.md (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/user/scope-visualizer.md (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/user/unicode.md (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/user/updating.md (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/docs/user/visualAccessibility.md (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/plugins/scope-tests-plugin.ts (100%)
rename packages/{cursorless-org-docs => app-web-docs}/src/theme/Root.tsx (100%)
rename packages/{cursorless-org-docs => app-web-docs}/static/logo-dark.svg (100%)
rename packages/{cursorless-org-docs => app-web-docs}/static/logo.svg (100%)
rename packages/{cursorless-org-docs => app-web-docs}/tsconfig.json (100%)
rename packages/{cursorless-org => app-web}/README.md (100%)
rename packages/{cursorless-org => app-web}/eslintConfig.ts (100%)
rename packages/{cursorless-org => app-web}/index.html (100%)
rename packages/{cursorless-org => app-web}/package.json (100%)
rename packages/{cursorless-org => app-web}/public/_redirects (100%)
rename packages/{cursorless-org => app-web}/public/android-chrome-192x192.png (100%)
rename packages/{cursorless-org => app-web}/public/android-chrome-512x512.png (100%)
rename packages/{cursorless-org => app-web}/public/apple-touch-icon.png (100%)
rename packages/{cursorless-org => app-web}/public/browserconfig.xml (100%)
rename packages/{cursorless-org => app-web}/public/favicon-16x16.png (100%)
rename packages/{cursorless-org => app-web}/public/favicon-32x32.png (100%)
rename packages/{cursorless-org => app-web}/public/favicon.ico (100%)
rename packages/{cursorless-org => app-web}/public/favicon.png (100%)
rename packages/{cursorless-org => app-web}/public/favicon.svg (100%)
rename packages/{cursorless-org => app-web}/public/fonts/Inconsolata-Bold.ttf (100%)
rename packages/{cursorless-org => app-web}/public/fonts/Inconsolata-ExtraLight.ttf (100%)
rename packages/{cursorless-org => app-web}/public/fonts/Inconsolata-Light.ttf (100%)
rename packages/{cursorless-org => app-web}/public/fonts/Inconsolata-Medium.ttf (100%)
rename packages/{cursorless-org => app-web}/public/fonts/Inconsolata-Regular.ttf (100%)
rename packages/{cursorless-org => app-web}/public/fonts/Inconsolata-SemiBold.ttf (100%)
rename packages/{cursorless-org => app-web}/public/fonts/Inconsolata_SemiExpanded-Bold.ttf (100%)
rename packages/{cursorless-org => app-web}/public/fonts/Inconsolata_SemiExpanded-ExtraBold.ttf (100%)
rename packages/{cursorless-org => app-web}/public/fonts/Inconsolata_SemiExpanded-Light.ttf (100%)
rename packages/{cursorless-org => app-web}/public/fonts/Inconsolata_SemiExpanded-Medium.ttf (100%)
rename packages/{cursorless-org => app-web}/public/fonts/Inconsolata_SemiExpanded-Regular.ttf (100%)
rename packages/{cursorless-org => app-web}/public/fonts/Inconsolata_SemiExpanded-SemiBold.ttf (100%)
rename packages/{cursorless-org => app-web}/public/logo-dark.svg (100%)
rename packages/{cursorless-org => app-web}/public/logo.svg (100%)
rename packages/{cursorless-org => app-web}/public/mstile-144x144.png (100%)
rename packages/{cursorless-org => app-web}/public/mstile-150x150.png (100%)
rename packages/{cursorless-org => app-web}/public/mstile-310x150.png (100%)
rename packages/{cursorless-org => app-web}/public/mstile-310x310.png (100%)
rename packages/{cursorless-org => app-web}/public/mstile-70x70.png (100%)
rename packages/{cursorless-org => app-web}/public/safari-pinned-tab.svg (100%)
rename packages/{cursorless-org => app-web}/public/site.webmanifest (100%)
rename packages/{cursorless-org => app-web}/public/video-share-thumbnail.jpg (100%)
rename packages/{cursorless-org => app-web}/scripts/mac-serve-bind-external (100%)
mode change 100755 => 100644
rename packages/{cursorless-org => app-web}/src/App.tsx (100%)
rename packages/{cursorless-org => app-web}/src/Button.tsx (100%)
rename packages/{cursorless-org => app-web}/src/Cheatsheet.tsx (100%)
rename packages/{cursorless-org => app-web}/src/EmbeddedVideo.tsx (100%)
rename packages/{cursorless-org => app-web}/src/LandingPage.tsx (100%)
rename packages/{cursorless-org => app-web}/src/constants.ts (100%)
rename packages/{cursorless-org => app-web}/src/index.tsx (100%)
rename packages/{cursorless-org => app-web}/src/logo.svg (100%)
rename packages/{cursorless-org => app-web}/src/styles.css (100%)
rename packages/{cursorless-org => app-web}/src/vite-env.d.ts (100%)
rename packages/{cheatsheet-local => app-web}/tsconfig.json (100%)
rename packages/{cursorless-org => app-web}/vite.config.ts (100%)
rename packages/{cheatsheet-local => lib-cheatsheet-local}/README.md (100%)
rename packages/{cheatsheet-local => lib-cheatsheet-local}/index.html (100%)
rename packages/{cheatsheet-local => lib-cheatsheet-local}/jest.config.ts (100%)
rename packages/{cheatsheet-local => lib-cheatsheet-local}/package.json (100%)
rename packages/{cheatsheet-local => lib-cheatsheet-local}/src/app.tsx (100%)
rename packages/{cheatsheet-local => lib-cheatsheet-local}/src/index.tsx (100%)
rename packages/{cheatsheet-local => lib-cheatsheet-local}/src/styles.css (100%)
rename packages/{cheatsheet-local => lib-cheatsheet-local}/src/test/app.spec.tsx (100%)
rename packages/{cheatsheet-local => lib-cheatsheet-local}/src/test/styleMock.ts (100%)
rename packages/{cheatsheet => lib-cheatsheet-local}/tsconfig.json (100%)
rename packages/{cheatsheet-local => lib-cheatsheet-local}/vite.config.ts (100%)
rename packages/{cheatsheet => lib-cheatsheet}/jest.config.ts (100%)
rename packages/{cheatsheet => lib-cheatsheet}/package.json (100%)
rename packages/{cheatsheet => lib-cheatsheet}/src/index.ts (100%)
rename packages/{cheatsheet => lib-cheatsheet}/src/lib/Cheatsheet.tsx (100%)
rename packages/{cheatsheet => lib-cheatsheet}/src/lib/CheatsheetLegendSection.tsx (100%)
rename packages/{cheatsheet => lib-cheatsheet}/src/lib/CheatsheetListSection.tsx (100%)
rename packages/{cheatsheet => lib-cheatsheet}/src/lib/CheatsheetNotesSection.tsx (100%)
rename packages/{cheatsheet => lib-cheatsheet}/src/lib/cheatsheet.css (100%)
rename packages/{cheatsheet => lib-cheatsheet}/src/lib/cheatsheet.types.tsx (100%)
rename packages/{cheatsheet => lib-cheatsheet}/src/lib/sampleSpokenFormInfos/defaults.json (100%)
rename packages/{cheatsheet => lib-cheatsheet}/src/lib/utils/SmartLink.tsx (100%)
rename packages/{cheatsheet => lib-cheatsheet}/src/lib/utils/applyBootstrapTheme.ts (100%)
rename packages/{cheatsheet => lib-cheatsheet}/src/lib/utils/cheatsheetLegendData.tsx (100%)
rename packages/{cheatsheet => lib-cheatsheet}/src/lib/utils/fakeCheatsheetInfo.ts (100%)
rename packages/{cheatsheet => lib-cheatsheet}/src/lib/utils/formatCaptures.tsx (100%)
rename packages/{cheatsheet => lib-cheatsheet}/src/lib/utils/useIsHighlighted.ts (100%)
rename packages/{cheatsheet => lib-cheatsheet}/src/test/cheatsheet.spec.tsx (100%)
rename packages/{cheatsheet => lib-cheatsheet}/src/test/formatCaptures.spec.tsx (100%)
rename packages/{cheatsheet => lib-cheatsheet}/src/test/styleMock.ts (100%)
rename packages/{cursorless-org => lib-cheatsheet}/tsconfig.json (100%)
rename packages/{common => lib-common}/eslintConfig.ts (100%)
rename packages/{common => lib-common}/package.json (100%)
rename packages/{common => lib-common}/scripts/c-tsx.js (100%)
mode change 100755 => 100644
rename packages/{common => lib-common}/src/Debouncer.ts (100%)
rename packages/{common => lib-common}/src/FakeCommandServerApi.ts (100%)
rename packages/{common => lib-common}/src/StoredTargetKey.ts (100%)
rename packages/{common => lib-common}/src/constants.ts (100%)
rename packages/{common => lib-common}/src/cursorlessCommandIds.ts (100%)
rename packages/{common => lib-common}/src/cursorlessSideBarIds.ts (100%)
rename packages/{common => lib-common}/src/errors.ts (100%)
rename packages/{common => lib-common}/src/extensionDependencies.ts (100%)
rename packages/{common => lib-common}/src/ide/PassthroughIDE.ts (100%)
rename packages/{common => lib-common}/src/ide/fake/FakeCapabilities.ts (100%)
rename packages/{common => lib-common}/src/ide/fake/FakeClipboard.ts (100%)
rename packages/{common => lib-common}/src/ide/fake/FakeConfiguration.ts (100%)
rename packages/{common => lib-common}/src/ide/fake/FakeIDE.ts (100%)
rename packages/{common => lib-common}/src/ide/fake/FakeKeyValueStore.ts (100%)
rename packages/{common => lib-common}/src/ide/fake/FakeMessages.ts (100%)
rename packages/{common => lib-common}/src/ide/inMemoryTextEditor/InMemoryTextDocument.ts (100%)
rename packages/{common => lib-common}/src/ide/inMemoryTextEditor/InMemoryTextEditor.ts (100%)
rename packages/{common => lib-common}/src/ide/inMemoryTextEditor/InMemoryTextLine.ts (100%)
rename packages/{common => lib-common}/src/ide/inMemoryTextEditor/performEdits.ts (100%)
rename packages/{common => lib-common}/src/ide/inMemoryTextEditor/test/InMemoryTextDocument.test.ts (100%)
rename packages/{common => lib-common}/src/ide/inMemoryTextEditor/test/InMemoryTextDocumentEdit.test.ts (100%)
rename packages/{common => lib-common}/src/ide/inMemoryTextEditor/test/InMemoryTextDocumentLineAt.test.ts (100%)
rename packages/{common => lib-common}/src/ide/inMemoryTextEditor/test/createTestDocument.ts (100%)
rename packages/{common => lib-common}/src/ide/normalized/NormalizedIDE.ts (100%)
rename packages/{common => lib-common}/src/ide/spy/SpyIDE.ts (100%)
rename packages/{common => lib-common}/src/ide/spy/SpyMessages.ts (100%)
rename packages/{common => lib-common}/src/ide/types/Capabilities.ts (100%)
rename packages/{common => lib-common}/src/ide/types/Clipboard.ts (100%)
rename packages/{common => lib-common}/src/ide/types/CommandHistoryStorage.ts (100%)
rename packages/{common => lib-common}/src/ide/types/CommandId.ts (100%)
rename packages/{common => lib-common}/src/ide/types/Configuration.ts (100%)
rename packages/{common => lib-common}/src/ide/types/Events.ts (100%)
rename packages/{common => lib-common}/src/ide/types/FileSystem.types.ts (100%)
rename packages/{common => lib-common}/src/ide/types/FlashDescriptor.ts (100%)
rename packages/{common => lib-common}/src/ide/types/HatStability.ts (100%)
rename packages/{common => lib-common}/src/ide/types/Hats.ts (100%)
rename packages/{common => lib-common}/src/ide/types/KeyValueStore.ts (100%)
rename packages/{common => lib-common}/src/ide/types/Messages.ts (100%)
rename packages/{common => lib-common}/src/ide/types/Paths.ts (100%)
rename packages/{common => lib-common}/src/ide/types/QuickPickOptions.ts (100%)
rename packages/{common => lib-common}/src/ide/types/README.md (100%)
rename packages/{common => lib-common}/src/ide/types/RawTreeSitterQueryProvider.ts (100%)
rename packages/{common => lib-common}/src/ide/types/TutorialContentProvider.ts (100%)
rename packages/{common => lib-common}/src/ide/types/events.types.ts (100%)
rename packages/{common => lib-common}/src/ide/types/hatStyles.types.ts (100%)
rename packages/{common => lib-common}/src/ide/types/ide.types.ts (100%)
rename packages/{common => lib-common}/src/ide/util/messages.ts (100%)
rename packages/{common => lib-common}/src/index.ts (100%)
rename packages/{common => lib-common}/src/scopeSupportFacets/PlaintextScopeSupportFacetInfos.ts (100%)
rename packages/{common => lib-common}/src/scopeSupportFacets/c.ts (100%)
rename packages/{common => lib-common}/src/scopeSupportFacets/clojure.ts (100%)
rename packages/{common => lib-common}/src/scopeSupportFacets/cpp.ts (100%)
rename packages/{common => lib-common}/src/scopeSupportFacets/csharp.ts (100%)
rename packages/{common => lib-common}/src/scopeSupportFacets/css.ts (100%)
rename packages/{common => lib-common}/src/scopeSupportFacets/dart.ts (100%)
rename packages/{common => lib-common}/src/scopeSupportFacets/go.ts (100%)
rename packages/{common => lib-common}/src/scopeSupportFacets/html.ts (100%)
rename packages/{common => lib-common}/src/scopeSupportFacets/java.ts (100%)
rename packages/{common => lib-common}/src/scopeSupportFacets/javascript.ts (100%)
rename packages/{common => lib-common}/src/scopeSupportFacets/javascriptreact.ts (100%)
rename packages/{common => lib-common}/src/scopeSupportFacets/json.ts (100%)
rename packages/{common => lib-common}/src/scopeSupportFacets/jsonc.ts (100%)
rename packages/{common => lib-common}/src/scopeSupportFacets/jsonl.ts (100%)
rename packages/{common => lib-common}/src/scopeSupportFacets/kotlin.ts (100%)
rename packages/{common => lib-common}/src/scopeSupportFacets/languageScopeSupport.ts (100%)
rename packages/{common => lib-common}/src/scopeSupportFacets/latex.ts (100%)
rename packages/{common => lib-common}/src/scopeSupportFacets/lua.ts (100%)
rename packages/{common => lib-common}/src/scopeSupportFacets/markdown.ts (100%)
rename packages/{common => lib-common}/src/scopeSupportFacets/php.ts (100%)
rename packages/{common => lib-common}/src/scopeSupportFacets/properties.ts (100%)
rename packages/{common => lib-common}/src/scopeSupportFacets/python.ts (100%)
rename packages/{common => lib-common}/src/scopeSupportFacets/r.ts (100%)
rename packages/{common => lib-common}/src/scopeSupportFacets/ruby.ts (100%)
rename packages/{common => lib-common}/src/scopeSupportFacets/rust.ts (100%)
rename packages/{common => lib-common}/src/scopeSupportFacets/scala.ts (100%)
rename packages/{common => lib-common}/src/scopeSupportFacets/scm.ts (100%)
rename packages/{common => lib-common}/src/scopeSupportFacets/scopeSupportFacetInfos.ts (100%)
rename packages/{common => lib-common}/src/scopeSupportFacets/scopeSupportFacets.types.ts (100%)
rename packages/{common => lib-common}/src/scopeSupportFacets/scss.ts (100%)
rename packages/{common => lib-common}/src/scopeSupportFacets/talon.ts (100%)
rename packages/{common => lib-common}/src/scopeSupportFacets/talonList.ts (100%)
rename packages/{common => lib-common}/src/scopeSupportFacets/typescript.ts (100%)
rename packages/{common => lib-common}/src/scopeSupportFacets/typescriptreact.ts (100%)
rename packages/{common => lib-common}/src/scopeSupportFacets/xml.ts (100%)
rename packages/{common => lib-common}/src/scopeSupportFacets/yaml.ts (100%)
rename packages/{common => lib-common}/src/scopeVisualizerUtil/decorationStyle.types.ts (100%)
rename packages/{common => lib-common}/src/scopeVisualizerUtil/decorationUtil.ts (100%)
rename packages/{common => lib-common}/src/scopeVisualizerUtil/generateDecorationsForCharacterRange/generateDecorationsForCharacterRange.ts (100%)
rename packages/{common => lib-common}/src/scopeVisualizerUtil/generateDecorationsForCharacterRange/generateLineInfos.ts (100%)
rename packages/{common => lib-common}/src/scopeVisualizerUtil/generateDecorationsForCharacterRange/handleMultipleLines.test.ts (100%)
rename packages/{common => lib-common}/src/scopeVisualizerUtil/generateDecorationsForCharacterRange/handleMultipleLines.ts (100%)
rename packages/{common => lib-common}/src/scopeVisualizerUtil/generateDecorationsForCharacterRange/index.ts (100%)
rename packages/{common => lib-common}/src/scopeVisualizerUtil/generateDecorationsForLineRange.ts (100%)
rename packages/{common => lib-common}/src/testUtil/TestCaseSnapshot.ts (100%)
rename packages/{common => lib-common}/src/testUtil/asyncSafety.ts (100%)
rename packages/{common => lib-common}/src/testUtil/extractTargetedMarks.ts (100%)
rename packages/{common => lib-common}/src/testUtil/fromPlainObject.ts (100%)
rename packages/{common => lib-common}/src/testUtil/getSnapshotForComparison.ts (100%)
rename packages/{common => lib-common}/src/testUtil/serialize.ts (100%)
rename packages/{common => lib-common}/src/testUtil/serializeTestFixture.ts (100%)
rename packages/{common => lib-common}/src/testUtil/shouldUpdateFixtures.ts (100%)
rename packages/{common => lib-common}/src/testUtil/spyToPlainObject.ts (100%)
rename packages/{common => lib-common}/src/testUtil/testConstants.ts (100%)
rename packages/{common => lib-common}/src/tooling/jest.ts (100%)
rename packages/{common => lib-common}/src/tooling/vite.ts (100%)
rename packages/{common => lib-common}/src/tooling/viteHtmlParamsPlugin.ts (100%)
rename packages/{common => lib-common}/src/tooling/vitePreactAlias.ts (100%)
rename packages/{common => lib-common}/src/types/CommandServerApi.ts (100%)
rename packages/{common => lib-common}/src/types/Edit.ts (100%)
rename packages/{common => lib-common}/src/types/GeneralizedRange.ts (100%)
rename packages/{common => lib-common}/src/types/HatTokenMap.ts (100%)
rename packages/{common => lib-common}/src/types/InputBoxOptions.ts (100%)
rename packages/{common => lib-common}/src/types/NotebookCell.ts (100%)
rename packages/{common => lib-common}/src/types/NotebookEditor.ts (100%)
rename packages/{common => lib-common}/src/types/Position.ts (100%)
rename packages/{common => lib-common}/src/types/Range.ts (100%)
rename packages/{common => lib-common}/src/types/RangeExpansionBehavior.ts (100%)
rename packages/{common => lib-common}/src/types/RevealLineAt.ts (100%)
rename packages/{common => lib-common}/src/types/ScopeProvider.ts (100%)
rename packages/{common => lib-common}/src/types/Selection.ts (100%)
rename packages/{common => lib-common}/src/types/SpokenForm.ts (100%)
rename packages/{common => lib-common}/src/types/SpokenFormType.ts (100%)
rename packages/{common => lib-common}/src/types/StringRecord.ts (100%)
rename packages/{common => lib-common}/src/types/TalonSpokenForms.ts (100%)
rename packages/{common => lib-common}/src/types/TestCaseFixture.ts (100%)
rename packages/{common => lib-common}/src/types/TestHelpers.ts (100%)
rename packages/{common => lib-common}/src/types/TextDocument.ts (100%)
rename packages/{common => lib-common}/src/types/TextEditor.ts (100%)
rename packages/{common => lib-common}/src/types/TextEditorDecorationType.ts (100%)
rename packages/{common => lib-common}/src/types/TextEditorEdit.ts (100%)
rename packages/{common => lib-common}/src/types/TextEditorOptions.ts (100%)
rename packages/{common => lib-common}/src/types/TextLine.ts (100%)
rename packages/{common => lib-common}/src/types/Token.ts (100%)
rename packages/{common => lib-common}/src/types/TreeSitter.ts (100%)
rename packages/{common => lib-common}/src/types/command/ActionDescriptor.ts (100%)
rename packages/{common => lib-common}/src/types/command/CommandV6.types.ts (100%)
rename packages/{common => lib-common}/src/types/command/CommandV7.types.ts (100%)
rename packages/{common => lib-common}/src/types/command/DestinationDescriptor.types.ts (100%)
rename packages/{common => lib-common}/src/types/command/PartialTargetDescriptor.types.ts (100%)
rename packages/{common => lib-common}/src/types/command/command.types.ts (100%)
rename packages/{common => lib-common}/src/types/command/legacy/ActionCommandV5.ts (100%)
rename packages/{common => lib-common}/src/types/command/legacy/CommandV0V1.types.ts (100%)
rename packages/{common => lib-common}/src/types/command/legacy/CommandV2.types.ts (100%)
rename packages/{common => lib-common}/src/types/command/legacy/CommandV3.types.ts (100%)
rename packages/{common => lib-common}/src/types/command/legacy/CommandV4.types.ts (100%)
rename packages/{common => lib-common}/src/types/command/legacy/CommandV5.types.ts (100%)
rename packages/{common => lib-common}/src/types/command/legacy/PartialTargetDescriptorV3.types.ts (100%)
rename packages/{common => lib-common}/src/types/command/legacy/PartialTargetDescriptorV4.types.ts (100%)
rename packages/{common => lib-common}/src/types/command/legacy/PartialTargetDescriptorV5.types.ts (100%)
rename packages/{common => lib-common}/src/types/command/legacy/targetDescriptorV2.types.ts (100%)
rename packages/{common => lib-common}/src/types/commandHistory.ts (100%)
rename packages/{common => lib-common}/src/types/generalizedRangeContains.test.ts (100%)
rename packages/{common => lib-common}/src/types/generalizedRangeTouches.test.ts (100%)
rename packages/{common => lib-common}/src/types/isGeneralizedRangeEqual.test.ts (100%)
rename packages/{common => lib-common}/src/types/location.types.ts (100%)
rename packages/{common => lib-common}/src/types/position.test.ts (100%)
rename packages/{common => lib-common}/src/types/range.test.ts (100%)
rename packages/{common => lib-common}/src/types/selection.test.ts (100%)
rename packages/{common => lib-common}/src/types/tutorial.types.ts (100%)
rename packages/{common => lib-common}/src/util/CompositeKeyDefaultMap.ts (100%)
rename packages/{common => lib-common}/src/util/CompositeKeyMap.ts (100%)
rename packages/{common => lib-common}/src/util/DefaultMap.ts (100%)
rename packages/{common => lib-common}/src/util/Notifier.ts (100%)
rename packages/{common => lib-common}/src/util/blendColors.ts (100%)
rename packages/{common => lib-common}/src/util/clientSupportsFallback.ts (100%)
rename packages/{common => lib-common}/src/util/disposableFrom.ts (100%)
rename packages/{common => lib-common}/src/util/ensureCommandShape.ts (100%)
rename packages/{common => lib-common}/src/util/getEnvironmentVariableStrict.ts (100%)
rename packages/{common => lib-common}/src/util/getErrorMessage.ts (100%)
rename packages/{common => lib-common}/src/util/getProcessEnv.ts (100%)
rename packages/{common => lib-common}/src/util/index.ts (100%)
rename packages/{common => lib-common}/src/util/itertools.ts (100%)
rename packages/{common => lib-common}/src/util/object.ts (100%)
rename packages/{common => lib-common}/src/util/omitByDeep.ts (100%)
rename packages/{common => lib-common}/src/util/prettifyLanguageName.ts (100%)
rename packages/{common => lib-common}/src/util/regex.ts (100%)
rename packages/{common => lib-common}/src/util/selectionsEqual.ts (100%)
rename packages/{common => lib-common}/src/util/serializeScopeType.ts (100%)
rename packages/{common => lib-common}/src/util/serializedMarksToTokenHats.ts (100%)
rename packages/{common => lib-common}/src/util/sleep.ts (100%)
rename packages/{common => lib-common}/src/util/splitKey.ts (100%)
rename packages/{common => lib-common}/src/util/stringUtils.ts (100%)
rename packages/{common => lib-common}/src/util/toPlainObject.ts (100%)
rename packages/{common => lib-common}/src/util/type.ts (100%)
rename packages/{common => lib-common}/src/util/typeUtils.ts (100%)
rename packages/{common => lib-common}/src/util/uniqWithHash.test.ts (100%)
rename packages/{common => lib-common}/src/util/uniqWithHash.ts (100%)
rename packages/{common => lib-common}/src/util/zipStrict.ts (100%)
rename packages/{cursorless-everywhere-talon-e2e => lib-common}/tsconfig.json (100%)
rename packages/{cursorless-engine => lib-engine}/eslintConfig.ts (100%)
rename packages/{cursorless-engine => lib-engine}/package.json (100%)
rename packages/{cursorless-engine => lib-engine}/src/CommandHistory.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/CommandHistoryAnalyzer.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/CommandRunner.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/KeyboardTargetUpdater.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/actions/Actions.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/actions/BreakLine.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/actions/BringMoveSwap.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/actions/Call.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/actions/CallbackAction.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/actions/Clear.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/actions/CopyToClipboard.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/actions/CutToClipboard.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/actions/Deselect.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/actions/EditNew/EditNew.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/actions/EditNew/EditNew.types.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/actions/EditNew/index.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/actions/EditNew/runEditTargets.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/actions/EditNew/runInsertLineAfterTargets.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/actions/EditNew/runNotebookCellTargets.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/actions/EditNewLineAction.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/actions/ExecuteCommand.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/actions/Find.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/actions/FlashTargets.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/actions/FollowLink.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/actions/GenerateSnippet/GenerateSnippet.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/actions/GenerateSnippet/Offsets.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/actions/GenerateSnippet/Substituter.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/actions/GenerateSnippet/constructSnippetBody.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/actions/GenerateSnippet/editText.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/actions/GenerateSnippet/index.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/actions/GetTargets.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/actions/GetText.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/actions/Highlight.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/actions/IndentLine.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/actions/InsertCopy.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/actions/InsertEmptyLines.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/actions/InsertSnippet.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/actions/JoinLines.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/actions/PasteFromClipboard.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/actions/PasteFromClipboardDirectly.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/actions/PasteFromClipboardUsingCommand.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/actions/Remove.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/actions/Replace.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/actions/Rewrap.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/actions/Scroll.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/actions/SetSelection.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/actions/SetSpecialTarget.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/actions/ShowParseTree.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/actions/SimpleIdeCommandActions.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/actions/Sort.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/actions/ToggleBreakpoint.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/actions/Wrap.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/actions/WrapWithSnippet.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/actions/actions.types.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/actions/incrementDecrement.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/api/CursorlessEngineApi.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/core/Debug.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/core/HatAllocator.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/core/HatTokenMapImpl.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/core/IndividualHatMap.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/core/Snippets.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/core/StoredTargets.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/core/UndoStack.test.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/core/UndoStack.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/core/commandRunner/CommandRunnerImpl.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/core/commandRunner/selectionToStoredTarget.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/core/commandVersionUpgrades/canonicalizeAndValidateCommand.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/core/commandVersionUpgrades/canonicalizeTargetsInPlace.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/core/commandVersionUpgrades/upgradeV0ToV1/index.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/core/commandVersionUpgrades/upgradeV0ToV1/upgradeV0ToV1.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/core/commandVersionUpgrades/upgradeV1ToV2/index.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/core/commandVersionUpgrades/upgradeV1ToV2/upgradeStrictHere.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/core/commandVersionUpgrades/upgradeV1ToV2/upgradeV1ToV2.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/core/commandVersionUpgrades/upgradeV2ToV3/index.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/core/commandVersionUpgrades/upgradeV2ToV3/upgradeV2ToV3.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/core/commandVersionUpgrades/upgradeV3ToV4/index.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/core/commandVersionUpgrades/upgradeV3ToV4/upgradeV3ToV4.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/core/commandVersionUpgrades/upgradeV4ToV5/index.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/core/commandVersionUpgrades/upgradeV4ToV5/upgradeV4ToV5.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/core/commandVersionUpgrades/upgradeV5ToV6/canonicalizeActionName.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/core/commandVersionUpgrades/upgradeV5ToV6/index.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/core/commandVersionUpgrades/upgradeV5ToV6/upgradeV5ToV6.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/core/commandVersionUpgrades/upgradeV6ToV7.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/core/getCommandFallback.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/core/getPreferredSnippet.test.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/core/getPreferredSnippet.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/core/handleHoistedModifiers.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/core/indexArrayStrict.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/core/inferFullTargetDescriptor.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/core/updateSelections/RangeUpdater.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/core/updateSelections/getOffsetsForDeleteOrReplace.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/core/updateSelections/getOffsetsForEmptyRangeInsert.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/core/updateSelections/getOffsetsForNonEmptyRangeInsert.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/core/updateSelections/getUpdatedText.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/core/updateSelections/updateRangeInfos.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/core/updateSelections/updateSelections.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/cursorlessEngine.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/customCommandGrammar/CommandLexer.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/customCommandGrammar/WithPlaceholders.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/customCommandGrammar/fillPlaceholders.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/customCommandGrammar/generated/grammar.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/customCommandGrammar/grammar.ne (100%)
rename packages/{cursorless-engine => lib-engine}/src/customCommandGrammar/grammarAction.test.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/customCommandGrammar/grammarScopeType.test.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/customCommandGrammar/grammarUtil.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/customCommandGrammar/lexer.test.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/customCommandGrammar/lexer.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/customCommandGrammar/parseAndFillOutAction.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/customCommandGrammar/parseCommand.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/disabledComponents/DisabledCommandServerApi.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/disabledComponents/DisabledHatTokenMap.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/disabledComponents/DisabledLanguageDefinitions.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/disabledComponents/DisabledSnippets.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/disabledComponents/DisabledTalonSpokenForms.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/disabledComponents/DisabledTreeSitter.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/generateSpokenForm/CustomSpokenFormGeneratorImpl.test.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/generateSpokenForm/CustomSpokenFormGeneratorImpl.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/generateSpokenForm/NoSpokenFormError.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/generateSpokenForm/SpokenFormComponent.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/generateSpokenForm/defaultSpokenForms/connectives.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/generateSpokenForm/defaultSpokenForms/marks.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/generateSpokenForm/defaultSpokenForms/modifiers.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/generateSpokenForm/defaultSpokenForms/numbers.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/generateSpokenForm/defaultSpokenForms/snippets.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/generateSpokenForm/defaultSpokenForms/surroundingPairsDelimiters.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/generateSpokenForm/generateSpokenForm.test.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/generateSpokenForm/generateSpokenForm.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/generateSpokenForm/getHatMapCommand.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/generateSpokenForm/getRangeConnective.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/generateSpokenForm/getSpokenFormComponentMap.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/generateSpokenForm/index.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/generateSpokenForm/primitiveTargetToSpokenForm.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/index.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/languages/LanguageDefinition.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/languages/LanguageDefinitions.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/languages/TreeSitterQuery/PredicateOperatorSchemaTypes.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/languages/TreeSitterQuery/QueryCapture.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/languages/TreeSitterQuery/QueryPredicateOperator.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/languages/TreeSitterQuery/TreeSitterQuery.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/languages/TreeSitterQuery/TreeSitterQueryCache.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/languages/TreeSitterQuery/assertTypesEqual.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/languages/TreeSitterQuery/captureNames.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/languages/TreeSitterQuery/checkCaptureStartEnd.test.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/languages/TreeSitterQuery/checkCaptureStartEnd.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/languages/TreeSitterQuery/constructZodErrorMessages.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/languages/TreeSitterQuery/getChildNodesForFieldName.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/languages/TreeSitterQuery/getNode.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/languages/TreeSitterQuery/getNodeRange.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/languages/TreeSitterQuery/index.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/languages/TreeSitterQuery/isContainedInErrorNode.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/languages/TreeSitterQuery/isEven.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/languages/TreeSitterQuery/makeRangeFromPositions.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/languages/TreeSitterQuery/operatorArgumentSchemaTypes.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/languages/TreeSitterQuery/parsePredicates.test.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/languages/TreeSitterQuery/parsePredicates.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/languages/TreeSitterQuery/parsePredicatesWithErrorHandling.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/languages/TreeSitterQuery/positionToPoint.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/languages/TreeSitterQuery/predicateToString.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/languages/TreeSitterQuery/queryPredicateOperators.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/languages/TreeSitterQuery/rewriteStartOfEndOf.test.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/languages/TreeSitterQuery/rewriteStartOfEndOf.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/languages/TreeSitterQuery/setRange.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/languages/TreeSitterQuery/validateQueryCaptures.test.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/languages/TreeSitterQuery/validateQueryCaptures.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/MarkStageFactory.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/MarkStageFactoryImpl.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/ModifierStageFactory.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/ModifierStageFactoryImpl.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/PipelineStages.types.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/TargetPipelineRunner.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/createContinuousRangeTarget.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/index.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/marks/CursorStage.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/marks/DecoratedSymbolStage.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/marks/ExplicitMarkStage.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/marks/ImplicitStage.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/marks/LineNumberStage.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/marks/NothingStage.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/marks/RangeMarkStage.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/marks/StoredTargetStage.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/marks/TargetMarkStage.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/marks/getActiveSelections.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/modifiers/BoundaryStage.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/modifiers/ClassFunctionNameStage.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/modifiers/ConditionalModifierStages.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/modifiers/ContainingScopeStage.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/modifiers/EveryScopeStage.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/modifiers/FallbackStage.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/modifiers/FilterStages.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/modifiers/HeadTailStage.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/modifiers/InstanceStage.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/modifiers/InteriorStage.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/modifiers/LeadingTrailingStages.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/modifiers/OrdinalScopeStage.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/modifiers/PositionStage.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/modifiers/PreferredScopeStage.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/modifiers/RangeModifierStage.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/modifiers/RawSelectionStage.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/modifiers/RelativeScopeStage.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/modifiers/TooFewScopesError.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/modifiers/VisibleStage.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/modifiers/commonContainingScopeIfUntypedModifiers.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/modifiers/constructScopeRangeTarget.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/modifiers/getContainingScopeTarget.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/modifiers/getPreferredScopeTouchingPosition.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/modifiers/listUtils.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/modifiers/scopeHandlers/BaseScopeHandler.test.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/modifiers/scopeHandlers/BaseScopeHandler.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/modifiers/scopeHandlers/BoundedScopeHandler.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/modifiers/scopeHandlers/CharacterScopeHandler.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/modifiers/scopeHandlers/CollectionItemScopeHandler/CollectionItemScopeHandler.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/modifiers/scopeHandlers/CollectionItemScopeHandler/CollectionItemTextualScopeHandler.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/modifiers/scopeHandlers/CollectionItemScopeHandler/collectionItemTextualIterationScopeHandler.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/modifiers/scopeHandlers/CollectionItemScopeHandler/createTargetScope.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/modifiers/scopeHandlers/CollectionItemScopeHandler/getInteriorRanges.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/modifiers/scopeHandlers/CollectionItemScopeHandler/getSeparatorOccurrences.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/modifiers/scopeHandlers/ConditionalScopeHandler.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/modifiers/scopeHandlers/DocumentScopeHandler.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/modifiers/scopeHandlers/FallbackScopeHandler.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/modifiers/scopeHandlers/IdentifierScopeHandler.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/modifiers/scopeHandlers/IteratorInfo.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/modifiers/scopeHandlers/LineScopeHandler.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/modifiers/scopeHandlers/NestedScopeHandler.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/modifiers/scopeHandlers/NotHierarchicalScopeError.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/modifiers/scopeHandlers/NotebookCellApiScopeHandler.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/modifiers/scopeHandlers/NotebookCellScopeHandler.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/modifiers/scopeHandlers/ParagraphScopeHandler.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/modifiers/scopeHandlers/RegexScopeHandler.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/modifiers/scopeHandlers/ScopeHandlerCache.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/modifiers/scopeHandlers/ScopeHandlerFactory.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/modifiers/scopeHandlers/ScopeHandlerFactoryImpl.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/modifiers/scopeHandlers/SentenceScopeHandler/SentenceScopeHandler.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/modifiers/scopeHandlers/SentenceScopeHandler/SentenceSegmenter.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/modifiers/scopeHandlers/SortedScopeHandler.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/InteriorScopeHandler.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/SurroundingPairInteriorScopeHandler.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/SurroundingPairScopeHandler.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/createTargetScope.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/delimiterMaps.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/getDelimiterOccurrences.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/getDelimiterRegex.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/getIndividualDelimiters.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/getSurroundingPairOccurrences.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/index.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/types.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/modifiers/scopeHandlers/TokenScopeHandler.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/modifiers/scopeHandlers/TreeSitterScopeHandler/BaseTreeSitterScopeHandler.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/modifiers/scopeHandlers/TreeSitterScopeHandler/TreeSitterIterationScopeHandler.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/modifiers/scopeHandlers/TreeSitterScopeHandler/TreeSitterScopeHandler.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/modifiers/scopeHandlers/TreeSitterScopeHandler/captureUtils.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/modifiers/scopeHandlers/TreeSitterScopeHandler/getQuerySearchRange.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/modifiers/scopeHandlers/TreeSitterScopeHandler/index.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/modifiers/scopeHandlers/TreeSitterScopeHandler/mergeAdjacentBy.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/modifiers/scopeHandlers/WordScopeHandler/WordScopeHandler.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/modifiers/scopeHandlers/WordScopeHandler/WordTokenizer.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/modifiers/scopeHandlers/compareTargetScopes.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/modifiers/scopeHandlers/index.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/modifiers/scopeHandlers/isPreferredOverHelper.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/modifiers/scopeHandlers/scope.types.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/modifiers/scopeHandlers/scopeHandler.types.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/modifiers/scopeHandlers/scopeTypeUtil.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/modifiers/scopeHandlers/shouldYieldScope.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/modifiers/scopeHandlers/util/OneWayNestedRangeFinder.test.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/modifiers/scopeHandlers/util/OneWayNestedRangeFinder.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/modifiers/scopeHandlers/util/OneWayRangeFinder.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/modifiers/scopeHandlers/util/getCollectionItemRemovalRange.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/modifiers/scopeHandlers/util/isHintsEveryScope.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/modifiers/targetSequenceUtils.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/targets/BaseTarget.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/targets/BoundedParagraphTarget.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/targets/DestinationImpl.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/targets/DocumentTarget.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/targets/HeadTailTarget.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/targets/ImplicitTarget.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/targets/InteriorTarget.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/targets/LineTarget.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/targets/NotebookCellDestination.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/targets/NotebookCellTarget.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/targets/ParagraphTarget.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/targets/PlainTarget.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/targets/RawSelectionTarget.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/targets/ScopeTypeTarget.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/targets/SubTokenWordTarget.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/targets/SurroundingPairTarget.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/targets/TokenTarget.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/targets/UntypedTarget.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/targets/index.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/targets/util/createContinuousRange.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/targets/util/insertionRemovalBehaviors/DelimitedSequenceInsertionRemovalBehavior.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/targets/util/insertionRemovalBehaviors/TokenInsertionRemovalBehavior.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/targets/util/insertionRemovalBehaviors/getSmartRemovalTarget.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/processTargets/targets/util/insertionRemovalBehaviors/insertionRemovalBehavior.types.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/runCommand.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/scopeProviders/ScopeInfoProvider.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/scopeProviders/ScopeRangeProvider.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/scopeProviders/ScopeRangeWatcher.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/scopeProviders/ScopeSupportChecker.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/scopeProviders/ScopeSupportWatcher.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/scopeProviders/getIterationRange.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/scopeProviders/getIterationScopeRanges.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/scopeProviders/getScopeRanges.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/scopeProviders/getTargetRanges.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/scopeProviders/scopeTypeToString.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/scripts/transformRecordedTests/checkMarks.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/scripts/transformRecordedTests/index.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/scripts/transformRecordedTests/moveFile.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/scripts/transformRecordedTests/transformFile.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/scripts/transformRecordedTests/transformations/canonicalize.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/scripts/transformRecordedTests/transformations/identity.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/scripts/transformRecordedTests/transformations/upgrade.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/scripts/transformRecordedTests/transformations/upgradeFromVersion0.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/scripts/transformRecordedTests/types.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/scripts/transformRecordedTests/upgradeDecorations.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/snippets/snippetParser.test.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/snippets/transformSnippetVariables.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/snippets/vendor/vscodeSnippet/charCode.ts (100%)
mode change 100755 => 100644
rename packages/{cursorless-engine => lib-engine}/src/snippets/vendor/vscodeSnippet/snippetParser.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/snippets/vendor/vscodeSnippet/snippetVariables.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/spokenForms/CustomSpokenForms.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/spokenForms/SpokenFormMap.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/spokenForms/defaultSpokenFormMap.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/spokenForms/defaultSpokenFormMap.types.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/spokenForms/defaultSpokenFormMapCore.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/spokenForms/graphemes.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/spokenForms/spokenFormMapUtil.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/test/fixtures/communitySnippets.fixture.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/test/fixtures/multiAction.fixture.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/test/fixtures/sentenceSegmeter.fixture.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/test/fixtures/spokenFormTest.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/test/fixtures/subtoken.fixture.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/test/fixtures/synonymousSpokenForms.fixture.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/test/fixtures/talonApi.fixture.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/test/scopes.test.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/test/sentenceSegmenter.test.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/test/spokenForms.talon.test.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/test/subtoken.test.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/testUtil/Performance.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/testUtil/TalonRepl.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/testUtil/TestFileSystem.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/testUtil/TestTextEditor.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/testUtil/TestTreeSitter.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/testUtil/createTestEnvironment.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/testUtil/extractTargetKeys.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/testUtil/plainObjectToTarget.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/testUtil/serializeHeader.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/testUtil/serializeScopeFixture.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/testUtil/serializeTargetRange.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/tokenGraphemeSplitter/index.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/tokenGraphemeSplitter/tokenGraphemeSplitter.test.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/tokenGraphemeSplitter/tokenGraphemeSplitter.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/tokenizer/index.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/tokenizer/tokenizer.test.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/tokenizer/tokenizer.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/tokenizer/tokenizer.types.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/typings/TargetDescriptor.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/typings/Types.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/typings/target.types.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/typings/updateSelections.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/util/DecorationDebouncer.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/util/allocateHats/HatMetrics.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/util/allocateHats/allocateHats.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/util/allocateHats/chooseTokenHat.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/util/allocateHats/getDisplayLineMap.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/util/allocateHats/getHatRankingContext.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/util/allocateHats/getRankedTokens.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/util/allocateHats/getTokenComparator.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/util/allocateHats/getTokensInRange.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/util/allocateHats/index.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/util/allocateHats/maxByFirstDiffering.test.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/util/allocateHats/maxByFirstDiffering.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/util/getMatchesInRange.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/util/getPartialTargetDescriptors.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/util/getPrimitiveTargets.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/util/getScopeType.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/util/grammarHelpers.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/util/map.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/util/performDocumentEdits.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/util/rangeUtils.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/util/selectionUtils.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/util/setIsEqual.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/util/targetUtils.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/util/treeSitterUtils.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/util/tryConstructTarget.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/util/typeUtils.ts (100%)
rename packages/{cursorless-engine => lib-engine}/src/util/unifyRanges.ts (100%)
rename packages/{cursorless-everywhere-talon => lib-engine}/tsconfig.json (100%)
rename packages/{neovim-common => lib-neovim-common}/package.json (100%)
rename packages/{neovim-common => lib-neovim-common}/src/TestHelpers.ts (100%)
rename packages/{neovim-common => lib-neovim-common}/src/getExtensionApi.ts (100%)
rename packages/{neovim-common => lib-neovim-common}/src/ide/neovim/NeovimCapabilities.ts (100%)
rename packages/{neovim-common => lib-neovim-common}/src/ide/neovim/NeovimClipboard.ts (100%)
rename packages/{neovim-common => lib-neovim-common}/src/ide/neovim/NeovimConfiguration.ts (100%)
rename packages/{neovim-common => lib-neovim-common}/src/ide/neovim/NeovimEdit.ts (100%)
rename packages/{neovim-common => lib-neovim-common}/src/ide/neovim/NeovimEvents.ts (100%)
rename packages/{neovim-common => lib-neovim-common}/src/ide/neovim/NeovimIDE.ts (100%)
rename packages/{neovim-common => lib-neovim-common}/src/ide/neovim/NeovimKeyValueStore.ts (100%)
rename packages/{neovim-common => lib-neovim-common}/src/ide/neovim/NeovimMessages.ts (100%)
rename packages/{neovim-common => lib-neovim-common}/src/ide/neovim/NeovimTextDocument.ts (100%)
rename packages/{neovim-common => lib-neovim-common}/src/ide/neovim/NeovimTextEditor.ts (100%)
rename packages/{neovim-common => lib-neovim-common}/src/ide/neovim/NeovimTextLine.ts (100%)
rename packages/{neovim-common => lib-neovim-common}/src/index.ts (100%)
rename packages/{neovim-common => lib-neovim-common}/src/neovimApi.ts (100%)
rename packages/{neovim-common => lib-neovim-common}/src/neovimHelpers.ts (100%)
rename packages/{neovim-common => lib-neovim-common}/src/runCommand.ts (100%)
rename packages/{neovim-common => lib-neovim-common}/src/testUtil/openNewEditor.ts (100%)
rename packages/{cursorless-neovim-e2e => lib-neovim-common}/tsconfig.json (100%)
rename packages/{neovim-registry => lib-neovim-registry}/package.json (100%)
rename packages/{neovim-registry => lib-neovim-registry}/src/NeovimRegistry.ts (100%)
rename packages/{neovim-registry => lib-neovim-registry}/src/index.ts (100%)
rename packages/{cursorless-neovim => lib-neovim-registry}/tsconfig.json (100%)
rename packages/{node-common => lib-node-common}/package.json (100%)
rename packages/{node-common => lib-node-common}/src/Cheatsheet.ts (100%)
rename packages/{node-common => lib-node-common}/src/FileSystemCommandHistoryStorage.ts (100%)
rename packages/{node-common => lib-node-common}/src/FileSystemRawTreeSitterQueryProvider.ts (100%)
rename packages/{node-common => lib-node-common}/src/FileSystemTalonSpokenForms.ts (100%)
rename packages/{node-common => lib-node-common}/src/FileSystemTutorialContentProvider.ts (100%)
rename packages/{node-common => lib-node-common}/src/getCursorlessRepoRoot.ts (100%)
rename packages/{node-common => lib-node-common}/src/getFixturePaths.ts (100%)
rename packages/{node-common => lib-node-common}/src/getScopeTestPathsRecursively.ts (100%)
rename packages/{node-common => lib-node-common}/src/index.ts (100%)
rename packages/{node-common => lib-node-common}/src/isOS.ts (100%)
rename packages/{node-common => lib-node-common}/src/loadFixture.ts (100%)
rename packages/{node-common => lib-node-common}/src/nodeGetRunMode.ts (100%)
rename packages/{node-common => lib-node-common}/src/runRecordedTest.ts (100%)
rename packages/{node-common => lib-node-common}/src/walkAsync.ts (100%)
rename packages/{node-common => lib-node-common}/src/walkSync.ts (100%)
rename packages/{cursorless-tutorial => lib-node-common}/tsconfig.json (100%)
rename packages/{sentence-parser => lib-sentence-parser}/README.md (100%)
rename packages/{sentence-parser => lib-sentence-parser}/package.json (100%)
rename packages/{sentence-parser => lib-sentence-parser}/src/Match.ts (100%)
rename packages/{sentence-parser => lib-sentence-parser}/src/index.ts (100%)
rename packages/{sentence-parser => lib-sentence-parser}/src/sbd.ts (100%)
rename packages/{sentence-parser => lib-sentence-parser}/src/stringHelper.ts (100%)
rename packages/{sentence-parser => lib-sentence-parser}/src/test/abbr.test.ts (100%)
rename packages/{sentence-parser => lib-sentence-parser}/src/test/empty.test.ts (100%)
rename packages/{sentence-parser => lib-sentence-parser}/src/test/lists.test.ts (100%)
rename packages/{sentence-parser => lib-sentence-parser}/src/test/multiple_sentences.test.ts (100%)
rename packages/{sentence-parser => lib-sentence-parser}/src/test/newline.test.ts (100%)
rename packages/{sentence-parser => lib-sentence-parser}/src/test/preserve_whitespace.test.ts (100%)
rename packages/{sentence-parser => lib-sentence-parser}/src/test/single_sentence.test.ts (100%)
rename packages/{sentence-parser => lib-sentence-parser}/src/test/symbols.test.ts (100%)
rename packages/{cursorless-vscode-e2e => lib-sentence-parser}/tsconfig.json (100%)
rename packages/{cursorless-everywhere-talon-core => lib-talon-core}/package.json (100%)
rename packages/{cursorless-everywhere-talon-core => lib-talon-core}/src/README.md (100%)
rename packages/{cursorless-everywhere-talon-core => lib-talon-core}/src/constructTestHelpers.ts (100%)
rename packages/{cursorless-everywhere-talon-core => lib-talon-core}/src/extension.ts (100%)
rename packages/{cursorless-everywhere-talon-core => lib-talon-core}/src/ide/TalonJsCapabilities.ts (100%)
rename packages/{cursorless-everywhere-talon-core => lib-talon-core}/src/ide/TalonJsClipboard.ts (100%)
rename packages/{cursorless-everywhere-talon-core => lib-talon-core}/src/ide/TalonJsConfiguration.ts (100%)
rename packages/{cursorless-everywhere-talon-core => lib-talon-core}/src/ide/TalonJsIDE.ts (100%)
rename packages/{cursorless-everywhere-talon-core => lib-talon-core}/src/ide/TalonJsKeyValueStore.ts (100%)
rename packages/{cursorless-everywhere-talon-core => lib-talon-core}/src/ide/TalonJsMessages.ts (100%)
rename packages/{cursorless-everywhere-talon-core => lib-talon-core}/src/ide/TalonJsTestHats.ts (100%)
rename packages/{cursorless-everywhere-talon-core => lib-talon-core}/src/ide/flashRanges.ts (100%)
rename packages/{cursorless-everywhere-talon-core => lib-talon-core}/src/ide/toCharacterRangeOffsets.ts (100%)
rename packages/{cursorless-everywhere-talon-core => lib-talon-core}/src/index.ts (100%)
rename packages/{cursorless-everywhere-talon-core => lib-talon-core}/src/polyfill.ts (100%)
rename packages/{cursorless-everywhere-talon-core => lib-talon-core}/src/registerCommands.ts (100%)
rename packages/{cursorless-everywhere-talon-core => lib-talon-core}/src/types/talon.ts (100%)
rename packages/{cursorless-everywhere-talon-core => lib-talon-core}/src/types/types.ts (100%)
rename packages/{cursorless-vscode => lib-talon-core}/tsconfig.json (100%)
rename packages/{test-case-recorder => lib-test-case-recorder}/package.json (100%)
rename packages/{test-case-recorder => lib-test-case-recorder}/src/RecordTestCaseCommandOptions.ts (100%)
rename packages/{test-case-recorder => lib-test-case-recorder}/src/ScopeTestRecorder.ts (100%)
rename packages/{test-case-recorder => lib-test-case-recorder}/src/TestCase.ts (100%)
rename packages/{test-case-recorder => lib-test-case-recorder}/src/TestCaseRecorder.ts (100%)
rename packages/{test-case-recorder => lib-test-case-recorder}/src/index.ts (100%)
rename packages/{test-case-recorder => lib-test-case-recorder}/src/takeSnapshot.ts (100%)
rename packages/{test-case-recorder => lib-test-case-recorder}/src/timeUtils.ts (100%)
rename packages/{meta-updater => lib-test-case-recorder}/tsconfig.json (100%)
rename packages/{cursorless-tutorial => lib-tutorial}/package.json (100%)
rename packages/{cursorless-tutorial => lib-tutorial}/src/Tutorial.ts (100%)
rename packages/{cursorless-tutorial => lib-tutorial}/src/TutorialError.ts (100%)
rename packages/{cursorless-tutorial => lib-tutorial}/src/TutorialImpl.ts (100%)
rename packages/{cursorless-tutorial => lib-tutorial}/src/TutorialStepParser.ts (100%)
rename packages/{cursorless-tutorial => lib-tutorial}/src/arePreconditionsMet.ts (100%)
rename packages/{cursorless-tutorial => lib-tutorial}/src/getScopeTypeSpokenFormStrict.ts (100%)
rename packages/{cursorless-tutorial => lib-tutorial}/src/getSpokenFormStrict.ts (100%)
rename packages/{cursorless-tutorial => lib-tutorial}/src/index.ts (100%)
rename packages/{cursorless-tutorial => lib-tutorial}/src/loadTutorial.ts (100%)
rename packages/{cursorless-tutorial => lib-tutorial}/src/setupStep.ts (100%)
rename packages/{cursorless-tutorial => lib-tutorial}/src/specialTerms.ts (100%)
rename packages/{cursorless-tutorial => lib-tutorial}/src/stepComponentParsers/ActionComponentParser.ts (100%)
rename packages/{cursorless-tutorial => lib-tutorial}/src/stepComponentParsers/CursorlessCommandComponentParser.ts (100%)
rename packages/{cursorless-tutorial => lib-tutorial}/src/stepComponentParsers/GraphemeComponentParser.ts (100%)
rename packages/{cursorless-tutorial => lib-tutorial}/src/stepComponentParsers/parseSpecialComponent.ts (100%)
rename packages/{cursorless-tutorial => lib-tutorial}/src/stepComponentParsers/parseVisualizeComponent.ts (100%)
rename packages/{cursorless-tutorial => lib-tutorial}/src/tutorialWrapCommandRunner.ts (100%)
rename packages/{cursorless-tutorial => lib-tutorial}/src/types/StepComponent.ts (100%)
rename packages/{cursorless-tutorial => lib-tutorial}/src/types/TutorialStepTrigger.ts (100%)
rename packages/{cursorless-tutorial => lib-tutorial}/src/types/tutorial.types.ts (100%)
rename packages/{neovim-common => lib-tutorial}/tsconfig.json (100%)
rename packages/{vscode-common => lib-vscode-common}/package.json (100%)
rename packages/{vscode-common => lib-vscode-common}/src/ScopeVisualizerColorConfig.ts (100%)
rename packages/{vscode-common => lib-vscode-common}/src/SpyWebViewEvent.ts (100%)
rename packages/{vscode-common => lib-vscode-common}/src/TestHelpers.ts (100%)
rename packages/{vscode-common => lib-vscode-common}/src/VscodeApi.ts (100%)
rename packages/{vscode-common => lib-vscode-common}/src/getExtensionApi.ts (100%)
rename packages/{vscode-common => lib-vscode-common}/src/index.ts (100%)
rename packages/{vscode-common => lib-vscode-common}/src/notebook.ts (100%)
rename packages/{vscode-common => lib-vscode-common}/src/runCommand.ts (100%)
rename packages/{vscode-common => lib-vscode-common}/src/testUtil/closeUiElements.ts (100%)
rename packages/{vscode-common => lib-vscode-common}/src/testUtil/getReusableEditor.ts (100%)
rename packages/{vscode-common => lib-vscode-common}/src/testUtil/openNewEditor.ts (100%)
rename packages/{vscode-common => lib-vscode-common}/src/vscodeUtil.ts (100%)
rename packages/{neovim-registry => lib-vscode-common}/tsconfig.json (100%)
rename packages/{cursorless-vscode-tutorial-webview => lib-vscode-tutorial-webview}/README.md (100%)
rename packages/{cursorless-vscode-tutorial-webview => lib-vscode-tutorial-webview}/package.json (100%)
rename packages/{cursorless-vscode-tutorial-webview => lib-vscode-tutorial-webview}/src/App.tsx (100%)
rename packages/{cursorless-vscode-tutorial-webview => lib-vscode-tutorial-webview}/src/ArrowLeftIcon.tsx (100%)
rename packages/{cursorless-vscode-tutorial-webview => lib-vscode-tutorial-webview}/src/ArrowRightIcon.tsx (100%)
rename packages/{cursorless-vscode-tutorial-webview => lib-vscode-tutorial-webview}/src/CloseIcon.tsx (100%)
rename packages/{cursorless-vscode-tutorial-webview => lib-vscode-tutorial-webview}/src/Command.tsx (100%)
rename packages/{cursorless-vscode-tutorial-webview => lib-vscode-tutorial-webview}/src/ProgressBar.tsx (100%)
rename packages/{cursorless-vscode-tutorial-webview => lib-vscode-tutorial-webview}/src/TutorialStep.tsx (100%)
rename packages/{cursorless-vscode-tutorial-webview => lib-vscode-tutorial-webview}/src/index.css (100%)
rename packages/{cursorless-vscode-tutorial-webview => lib-vscode-tutorial-webview}/src/index.tsx (100%)
rename packages/{cursorless-vscode-tutorial-webview => lib-vscode-tutorial-webview}/tsconfig.json (100%)
rename packages/{cursorless-vscode-tutorial-webview => lib-vscode-tutorial-webview}/vite.config.ts (100%)
rename packages/{cursorless-neovim-e2e => test-neovim-e2e}/package.json (100%)
rename packages/{cursorless-neovim-e2e => test-neovim-e2e}/src/endToEndTestSetup.ts (100%)
rename packages/{cursorless-neovim-e2e => test-neovim-e2e}/src/shouldRunTest.ts (100%)
rename packages/{cursorless-neovim-e2e => test-neovim-e2e}/src/suite/recorded.neovim.test.ts (100%)
rename packages/{node-common => test-neovim-e2e}/tsconfig.json (100%)
rename packages/{test-harness => test-runner}/README.md (100%)
rename packages/{test-harness => test-runner}/package.json (100%)
rename packages/{test-harness => test-runner}/scripts/compile-esbuild.sh (100%)
mode change 100755 => 100644
rename packages/{test-harness => test-runner}/scripts/run-esbuild.sh (100%)
mode change 100755 => 100644
rename packages/{test-harness => test-runner}/src/config/init.lua (100%)
rename packages/{test-harness => test-runner}/src/launchNeovimAndRunTests.ts (100%)
rename packages/{test-harness => test-runner}/src/launchVscodeAndRunTests.ts (100%)
rename packages/{test-harness => test-runner}/src/runAllTests.ts (100%)
rename packages/{test-harness => test-runner}/src/runners/README.md (100%)
rename packages/{test-harness => test-runner}/src/runners/extensionTestsNeovim.ts (100%)
rename packages/{test-harness => test-runner}/src/runners/extensionTestsVscode.ts (100%)
rename packages/{test-harness => test-runner}/src/scripts/generateTestSubsetFile.ts (100%)
rename packages/{test-harness => test-runner}/src/scripts/runNeovimTestsCI.ts (100%)
rename packages/{test-harness => test-runner}/src/scripts/runTalonJsTests.ts (100%)
rename packages/{test-harness => test-runner}/src/scripts/runTalonTests.ts (100%)
rename packages/{test-harness => test-runner}/src/scripts/runUnitTests.ts (100%)
rename packages/{test-harness => test-runner}/src/scripts/runVscodeTestsCI.ts (100%)
rename packages/{test-harness => test-runner}/src/testSubset.ts (100%)
rename packages/{sentence-parser => test-runner}/tsconfig.json (100%)
rename packages/{cursorless-everywhere-talon-e2e => test-talon-e2e}/package.json (100%)
rename packages/{cursorless-everywhere-talon-e2e => test-talon-e2e}/scripts/test-quickjs.sh (100%)
mode change 100755 => 100644
rename packages/{cursorless-everywhere-talon-e2e => test-talon-e2e}/src/constructTestHelpers.ts (100%)
rename packages/{cursorless-everywhere-talon-e2e => test-talon-e2e}/src/endToEndTestSetUp.ts (100%)
rename packages/{cursorless-everywhere-talon-e2e => test-talon-e2e}/src/quickjsTest.ts (100%)
rename packages/{cursorless-everywhere-talon-e2e => test-talon-e2e}/src/recorded.talonjs.test.ts (100%)
rename packages/{cursorless-everywhere-talon-e2e => test-talon-e2e}/src/talonMock.ts (100%)
rename packages/{cursorless-everywhere-talon-e2e => test-talon-e2e}/src/types/cursorless.ts (100%)
rename packages/{cursorless-everywhere-talon-e2e => test-talon-e2e}/src/types/std.d.ts (100%)
rename packages/{cursorless-everywhere-talon-e2e => test-talon-e2e}/src/types/talon.ts (100%)
rename packages/{test-case-recorder => test-talon-e2e}/tsconfig.json (100%)
rename packages/{cursorless-vscode-e2e => test-vscode-e2e}/package.json (100%)
rename packages/{cursorless-vscode-e2e => test-vscode-e2e}/src/endToEndTestSetup.ts (100%)
rename packages/{cursorless-vscode-e2e => test-vscode-e2e}/src/isCI.ts (100%)
rename packages/{cursorless-vscode-e2e => test-vscode-e2e}/src/mockPrePhraseGetVersion.ts (100%)
rename packages/{cursorless-vscode-e2e => test-vscode-e2e}/src/notebook.ts (100%)
rename packages/{cursorless-vscode-e2e => test-vscode-e2e}/src/suite/backwardCompatibility.vscode.test.ts (100%)
rename packages/{cursorless-vscode-e2e => test-vscode-e2e}/src/suite/breakpoints.vscode.test.ts (100%)
rename packages/{cursorless-vscode-e2e => test-vscode-e2e}/src/suite/commandHistory.vscode.test.ts (100%)
rename packages/{cursorless-vscode-e2e => test-vscode-e2e}/src/suite/containingTokenTwice.vscode.test.ts (100%)
rename packages/{cursorless-vscode-e2e => test-vscode-e2e}/src/suite/crossCellsSetSelection.vscode.test.ts (100%)
rename packages/{cursorless-vscode-e2e => test-vscode-e2e}/src/suite/editNewCell.vscode.test.ts (100%)
rename packages/{cursorless-vscode-e2e => test-vscode-e2e}/src/suite/explicitMark.vscode.test.ts (100%)
rename packages/{cursorless-vscode-e2e => test-vscode-e2e}/src/suite/fold.vscode.test.ts (100%)
rename packages/{cursorless-vscode-e2e => test-vscode-e2e}/src/suite/followLink.vscode.test.ts (100%)
rename packages/{cursorless-vscode-e2e => test-vscode-e2e}/src/suite/groupByDocument.vscode.test.ts (100%)
rename packages/{cursorless-vscode-e2e => test-vscode-e2e}/src/suite/instanceAcrossSplit.vscode.test.ts (100%)
rename packages/{cursorless-vscode-e2e => test-vscode-e2e}/src/suite/intraCellSetSelection.vscode.test.ts (100%)
rename packages/{cursorless-vscode-e2e => test-vscode-e2e}/src/suite/keyboard/basic.vscode.test.ts (100%)
rename packages/{cursorless-vscode-e2e => test-vscode-e2e}/src/suite/performance.vscode.test.ts (100%)
rename packages/{cursorless-vscode-e2e => test-vscode-e2e}/src/suite/pourAcrossSplit.vscode.test.ts (100%)
rename packages/{cursorless-vscode-e2e => test-vscode-e2e}/src/suite/prePhraseSnapshot.vscode.test.ts (100%)
rename packages/{cursorless-vscode-e2e => test-vscode-e2e}/src/suite/recorded.vscode.test.ts (100%)
rename packages/{cursorless-vscode-e2e => test-vscode-e2e}/src/suite/revealRange.vscode.test.ts (100%)
rename packages/{cursorless-vscode-e2e => test-vscode-e2e}/src/suite/scopeProvider/assertCalledWithScopeInfo.ts (100%)
rename packages/{cursorless-vscode-e2e => test-vscode-e2e}/src/suite/scopeProvider/runBasicScopeInfoTest.ts (100%)
rename packages/{cursorless-vscode-e2e => test-vscode-e2e}/src/suite/scopeProvider/runCustomRegexScopeInfoTest.ts (100%)
rename packages/{cursorless-vscode-e2e => test-vscode-e2e}/src/suite/scopeProvider/runCustomSpokenFormScopeInfoTest.ts (100%)
rename packages/{cursorless-vscode-e2e => test-vscode-e2e}/src/suite/scopeProvider/runSurroundingPairScopeInfoTest.ts (100%)
rename packages/{cursorless-vscode-e2e => test-vscode-e2e}/src/suite/scopeProvider/scopeProvider.vscode.test.ts (100%)
rename packages/{cursorless-vscode-e2e => test-vscode-e2e}/src/suite/scopeVisualizer/checkAndResetFakes.ts (100%)
rename packages/{cursorless-vscode-e2e => test-vscode-e2e}/src/suite/scopeVisualizer/colorConfig.ts (100%)
rename packages/{cursorless-vscode-e2e => test-vscode-e2e}/src/suite/scopeVisualizer/injectFakes.ts (100%)
rename packages/{cursorless-vscode-e2e => test-vscode-e2e}/src/suite/scopeVisualizer/runBasicMultilineContentTest.png (100%)
rename packages/{cursorless-vscode-e2e => test-vscode-e2e}/src/suite/scopeVisualizer/runBasicMultilineContentTest.ts (100%)
rename packages/{cursorless-vscode-e2e => test-vscode-e2e}/src/suite/scopeVisualizer/runBasicRemovalTest.png (100%)
rename packages/{cursorless-vscode-e2e => test-vscode-e2e}/src/suite/scopeVisualizer/runBasicRemovalTest.ts (100%)
rename packages/{cursorless-vscode-e2e => test-vscode-e2e}/src/suite/scopeVisualizer/runNestedMultilineContentTest.png (100%)
rename packages/{cursorless-vscode-e2e => test-vscode-e2e}/src/suite/scopeVisualizer/runNestedMultilineContentTest.ts (100%)
rename packages/{cursorless-vscode-e2e => test-vscode-e2e}/src/suite/scopeVisualizer/runUpdateTest.ts (100%)
rename packages/{cursorless-vscode-e2e => test-vscode-e2e}/src/suite/scopeVisualizer/scopeVisualizer.vscode.test.ts (100%)
rename packages/{cursorless-vscode-e2e => test-vscode-e2e}/src/suite/scopeVisualizer/scopeVisualizerTest.types.ts (100%)
rename packages/{cursorless-vscode-e2e => test-vscode-e2e}/src/suite/scopeVisualizer/spyCallsToPlainObject.ts (100%)
rename packages/{cursorless-vscode-e2e => test-vscode-e2e}/src/suite/scroll.vscode.test.ts (100%)
rename packages/{cursorless-vscode-e2e => test-vscode-e2e}/src/suite/setupFake.ts (100%)
rename packages/{cursorless-vscode-e2e => test-vscode-e2e}/src/suite/shouldSkipTest.ts (100%)
rename packages/{cursorless-vscode-e2e => test-vscode-e2e}/src/suite/testCaseRecorder.vscode.test.ts (100%)
rename packages/{cursorless-vscode-e2e => test-vscode-e2e}/src/suite/toggleDecorations.vscode.test.ts (100%)
rename packages/{cursorless-vscode-e2e => test-vscode-e2e}/src/suite/tutorial/tutorial.vscode.test.ts (100%)
rename packages/{cursorless-vscode-e2e => test-vscode-e2e}/src/suite/visible.vscode.test.ts (100%)
rename packages/{cursorless-vscode-e2e => test-vscode-e2e}/src/suite/waitFor.ts (100%)
rename packages/{cursorless-vscode-e2e => test-vscode-e2e}/src/suite/wrapWithSnippetAcrossSplit.vscode.test.ts (100%)
rename packages/{test-harness => test-vscode-e2e}/tsconfig.json (100%)
rename packages/{meta-updater => tool-meta-updater}/README.md (100%)
rename packages/{meta-updater => tool-meta-updater}/package.json (100%)
rename packages/{meta-updater => tool-meta-updater}/src/Context.ts (100%)
rename packages/{meta-updater => tool-meta-updater}/src/getCursorlessVscodeFields.ts (100%)
rename packages/{meta-updater => tool-meta-updater}/src/index.ts (100%)
rename packages/{meta-updater => tool-meta-updater}/src/metaUpdater.ts (100%)
rename packages/{meta-updater => tool-meta-updater}/src/textFormat.ts (100%)
rename packages/{meta-updater => tool-meta-updater}/src/toPosixPath.ts (100%)
rename packages/{meta-updater => tool-meta-updater}/src/updateLanguageMdx.ts (100%)
rename packages/{meta-updater => tool-meta-updater}/src/updatePackageJson.ts (100%)
rename packages/{meta-updater => tool-meta-updater}/src/updateScopeMdx.ts (100%)
rename packages/{meta-updater => tool-meta-updater}/src/updateTSConfig.ts (100%)
rename packages/{meta-updater => tool-meta-updater}/src/updateTSConfigBase.ts (100%)
rename packages/{meta-updater => tool-meta-updater}/src/updatesScopeSupportFacetInfos.ts (100%)
rename packages/{vscode-common => tool-meta-updater}/tsconfig.json (100%)
diff --git a/packages/cursorless-neovim/TERMINOLOGY.md b/packages/app-neovim/TERMINOLOGY.md
similarity index 100%
rename from packages/cursorless-neovim/TERMINOLOGY.md
rename to packages/app-neovim/TERMINOLOGY.md
diff --git a/packages/cursorless-neovim/package.json b/packages/app-neovim/package.json
similarity index 100%
rename from packages/cursorless-neovim/package.json
rename to packages/app-neovim/package.json
diff --git a/packages/cursorless-neovim/scripts/compile-esbuild.sh b/packages/app-neovim/scripts/compile-esbuild.sh
old mode 100755
new mode 100644
similarity index 100%
rename from packages/cursorless-neovim/scripts/compile-esbuild.sh
rename to packages/app-neovim/scripts/compile-esbuild.sh
diff --git a/packages/cursorless-neovim/scripts/debug-neovim.bat b/packages/app-neovim/scripts/debug-neovim.bat
similarity index 100%
rename from packages/cursorless-neovim/scripts/debug-neovim.bat
rename to packages/app-neovim/scripts/debug-neovim.bat
diff --git a/packages/cursorless-neovim/scripts/debug-neovim.sh b/packages/app-neovim/scripts/debug-neovim.sh
old mode 100755
new mode 100644
similarity index 100%
rename from packages/cursorless-neovim/scripts/debug-neovim.sh
rename to packages/app-neovim/scripts/debug-neovim.sh
diff --git a/packages/cursorless-neovim/scripts/linux-terminal.sh b/packages/app-neovim/scripts/linux-terminal.sh
old mode 100755
new mode 100644
similarity index 100%
rename from packages/cursorless-neovim/scripts/linux-terminal.sh
rename to packages/app-neovim/scripts/linux-terminal.sh
diff --git a/packages/cursorless-neovim/scripts/populate-dist.sh b/packages/app-neovim/scripts/populate-dist.sh
old mode 100755
new mode 100644
similarity index 100%
rename from packages/cursorless-neovim/scripts/populate-dist.sh
rename to packages/app-neovim/scripts/populate-dist.sh
diff --git a/packages/cursorless-neovim/scripts/show-logs.sh b/packages/app-neovim/scripts/show-logs.sh
old mode 100755
new mode 100644
similarity index 100%
rename from packages/cursorless-neovim/scripts/show-logs.sh
rename to packages/app-neovim/scripts/show-logs.sh
diff --git a/packages/cursorless-neovim/src/NeovimCommandServerApi.ts b/packages/app-neovim/src/NeovimCommandServerApi.ts
similarity index 100%
rename from packages/cursorless-neovim/src/NeovimCommandServerApi.ts
rename to packages/app-neovim/src/NeovimCommandServerApi.ts
diff --git a/packages/cursorless-neovim/src/constructTestHelpers.ts b/packages/app-neovim/src/constructTestHelpers.ts
similarity index 100%
rename from packages/cursorless-neovim/src/constructTestHelpers.ts
rename to packages/app-neovim/src/constructTestHelpers.ts
diff --git a/packages/cursorless-neovim/src/extension.ts b/packages/app-neovim/src/extension.ts
similarity index 100%
rename from packages/cursorless-neovim/src/extension.ts
rename to packages/app-neovim/src/extension.ts
diff --git a/packages/cursorless-neovim/src/index.ts b/packages/app-neovim/src/index.ts
similarity index 100%
rename from packages/cursorless-neovim/src/index.ts
rename to packages/app-neovim/src/index.ts
diff --git a/packages/cursorless-neovim/src/registerCommands.ts b/packages/app-neovim/src/registerCommands.ts
similarity index 100%
rename from packages/cursorless-neovim/src/registerCommands.ts
rename to packages/app-neovim/src/registerCommands.ts
diff --git a/packages/common/tsconfig.json b/packages/app-neovim/tsconfig.json
similarity index 100%
rename from packages/common/tsconfig.json
rename to packages/app-neovim/tsconfig.json
diff --git a/packages/cursorless-everywhere-talon/package.json b/packages/app-talon/package.json
similarity index 100%
rename from packages/cursorless-everywhere-talon/package.json
rename to packages/app-talon/package.json
diff --git a/packages/cursorless-everywhere-talon/scripts/esbuild.sh b/packages/app-talon/scripts/esbuild.sh
old mode 100755
new mode 100644
similarity index 100%
rename from packages/cursorless-everywhere-talon/scripts/esbuild.sh
rename to packages/app-talon/scripts/esbuild.sh
diff --git a/packages/cursorless-everywhere-talon/src/extension.ts b/packages/app-talon/src/extension.ts
similarity index 100%
rename from packages/cursorless-everywhere-talon/src/extension.ts
rename to packages/app-talon/src/extension.ts
diff --git a/packages/cursorless-everywhere-talon/src/mainDevelopment.ts b/packages/app-talon/src/mainDevelopment.ts
similarity index 100%
rename from packages/cursorless-everywhere-talon/src/mainDevelopment.ts
rename to packages/app-talon/src/mainDevelopment.ts
diff --git a/packages/cursorless-everywhere-talon/src/mainProduction.ts b/packages/app-talon/src/mainProduction.ts
similarity index 100%
rename from packages/cursorless-everywhere-talon/src/mainProduction.ts
rename to packages/app-talon/src/mainProduction.ts
diff --git a/packages/cursorless-everywhere-talon/src/types/talon.d.ts b/packages/app-talon/src/types/talon.d.ts
similarity index 100%
rename from packages/cursorless-everywhere-talon/src/types/talon.d.ts
rename to packages/app-talon/src/types/talon.d.ts
diff --git a/packages/cursorless-engine/tsconfig.json b/packages/app-talon/tsconfig.json
similarity index 100%
rename from packages/cursorless-engine/tsconfig.json
rename to packages/app-talon/tsconfig.json
diff --git a/packages/cursorless-vscode/eslintConfig.ts b/packages/app-vscode/eslintConfig.ts
similarity index 100%
rename from packages/cursorless-vscode/eslintConfig.ts
rename to packages/app-vscode/eslintConfig.ts
diff --git a/packages/cursorless-vscode/images/logo.png b/packages/app-vscode/images/logo.png
similarity index 100%
rename from packages/cursorless-vscode/images/logo.png
rename to packages/app-vscode/images/logo.png
diff --git a/packages/cursorless-vscode/package.json b/packages/app-vscode/package.json
similarity index 100%
rename from packages/cursorless-vscode/package.json
rename to packages/app-vscode/package.json
diff --git a/packages/cursorless-vscode/resources/font_measurements.js b/packages/app-vscode/resources/font_measurements.js
similarity index 100%
rename from packages/cursorless-vscode/resources/font_measurements.js
rename to packages/app-vscode/resources/font_measurements.js
diff --git a/packages/cursorless-vscode/resources/installationDependencies.html b/packages/app-vscode/resources/installationDependencies.html
similarity index 100%
rename from packages/cursorless-vscode/resources/installationDependencies.html
rename to packages/app-vscode/resources/installationDependencies.html
diff --git a/packages/cursorless-vscode/resources/installationDependencies.js b/packages/app-vscode/resources/installationDependencies.js
similarity index 100%
rename from packages/cursorless-vscode/resources/installationDependencies.js
rename to packages/app-vscode/resources/installationDependencies.js
diff --git a/packages/cursorless-vscode/scripts/compile-esbuild.sh b/packages/app-vscode/scripts/compile-esbuild.sh
old mode 100755
new mode 100644
similarity index 100%
rename from packages/cursorless-vscode/scripts/compile-esbuild.sh
rename to packages/app-vscode/scripts/compile-esbuild.sh
diff --git a/packages/cursorless-vscode/scripts/install-from-pr.sh b/packages/app-vscode/scripts/install-from-pr.sh
old mode 100755
new mode 100644
similarity index 100%
rename from packages/cursorless-vscode/scripts/install-from-pr.sh
rename to packages/app-vscode/scripts/install-from-pr.sh
diff --git a/packages/cursorless-vscode/scripts/install-local.sh b/packages/app-vscode/scripts/install-local.sh
old mode 100755
new mode 100644
similarity index 100%
rename from packages/cursorless-vscode/scripts/install-local.sh
rename to packages/app-vscode/scripts/install-local.sh
diff --git a/packages/cursorless-vscode/scripts/uninstall-local.sh b/packages/app-vscode/scripts/uninstall-local.sh
old mode 100755
new mode 100644
similarity index 100%
rename from packages/cursorless-vscode/scripts/uninstall-local.sh
rename to packages/app-vscode/scripts/uninstall-local.sh
diff --git a/packages/cursorless-vscode/src/InstallationDependencies.ts b/packages/app-vscode/src/InstallationDependencies.ts
similarity index 100%
rename from packages/cursorless-vscode/src/InstallationDependencies.ts
rename to packages/app-vscode/src/InstallationDependencies.ts
diff --git a/packages/cursorless-vscode/src/ReleaseNotes.test.ts b/packages/app-vscode/src/ReleaseNotes.test.ts
similarity index 100%
rename from packages/cursorless-vscode/src/ReleaseNotes.test.ts
rename to packages/app-vscode/src/ReleaseNotes.test.ts
diff --git a/packages/cursorless-vscode/src/ReleaseNotes.ts b/packages/app-vscode/src/ReleaseNotes.ts
similarity index 100%
rename from packages/cursorless-vscode/src/ReleaseNotes.ts
rename to packages/app-vscode/src/ReleaseNotes.ts
diff --git a/packages/cursorless-vscode/src/ScopeTreeProvider.ts b/packages/app-vscode/src/ScopeTreeProvider.ts
similarity index 100%
rename from packages/cursorless-vscode/src/ScopeTreeProvider.ts
rename to packages/app-vscode/src/ScopeTreeProvider.ts
diff --git a/packages/cursorless-vscode/src/ScopeVisualizerCommandApi.ts b/packages/app-vscode/src/ScopeVisualizerCommandApi.ts
similarity index 100%
rename from packages/cursorless-vscode/src/ScopeVisualizerCommandApi.ts
rename to packages/app-vscode/src/ScopeVisualizerCommandApi.ts
diff --git a/packages/cursorless-vscode/src/SpyWebviewView.ts b/packages/app-vscode/src/SpyWebviewView.ts
similarity index 100%
rename from packages/cursorless-vscode/src/SpyWebviewView.ts
rename to packages/app-vscode/src/SpyWebviewView.ts
diff --git a/packages/cursorless-vscode/src/StatusBarItem.ts b/packages/app-vscode/src/StatusBarItem.ts
similarity index 100%
rename from packages/cursorless-vscode/src/StatusBarItem.ts
rename to packages/app-vscode/src/StatusBarItem.ts
diff --git a/packages/cursorless-vscode/src/VscodeSnippets.ts b/packages/app-vscode/src/VscodeSnippets.ts
similarity index 100%
rename from packages/cursorless-vscode/src/VscodeSnippets.ts
rename to packages/app-vscode/src/VscodeSnippets.ts
diff --git a/packages/cursorless-vscode/src/VscodeTutorial.ts b/packages/app-vscode/src/VscodeTutorial.ts
similarity index 100%
rename from packages/cursorless-vscode/src/VscodeTutorial.ts
rename to packages/app-vscode/src/VscodeTutorial.ts
diff --git a/packages/cursorless-vscode/src/commands.ts b/packages/app-vscode/src/commands.ts
similarity index 100%
rename from packages/cursorless-vscode/src/commands.ts
rename to packages/app-vscode/src/commands.ts
diff --git a/packages/cursorless-vscode/src/constructTestHelpers.ts b/packages/app-vscode/src/constructTestHelpers.ts
similarity index 100%
rename from packages/cursorless-vscode/src/constructTestHelpers.ts
rename to packages/app-vscode/src/constructTestHelpers.ts
diff --git a/packages/cursorless-vscode/src/createScopeVisualizer.ts b/packages/app-vscode/src/createScopeVisualizer.ts
similarity index 100%
rename from packages/cursorless-vscode/src/createScopeVisualizer.ts
rename to packages/app-vscode/src/createScopeVisualizer.ts
diff --git a/packages/cursorless-vscode/src/createTreeSitter.ts b/packages/app-vscode/src/createTreeSitter.ts
similarity index 100%
rename from packages/cursorless-vscode/src/createTreeSitter.ts
rename to packages/app-vscode/src/createTreeSitter.ts
diff --git a/packages/cursorless-vscode/src/createTutorial.ts b/packages/app-vscode/src/createTutorial.ts
similarity index 100%
rename from packages/cursorless-vscode/src/createTutorial.ts
rename to packages/app-vscode/src/createTutorial.ts
diff --git a/packages/cursorless-vscode/src/createVscodeIde.ts b/packages/app-vscode/src/createVscodeIde.ts
similarity index 100%
rename from packages/cursorless-vscode/src/createVscodeIde.ts
rename to packages/app-vscode/src/createVscodeIde.ts
diff --git a/packages/cursorless-vscode/src/extension.ts b/packages/app-vscode/src/extension.ts
similarity index 100%
rename from packages/cursorless-vscode/src/extension.ts
rename to packages/app-vscode/src/extension.ts
diff --git a/packages/cursorless-vscode/src/ide/vscode/VSCodeScopeVisualizer/RangeTypeColors.ts b/packages/app-vscode/src/ide/vscode/VSCodeScopeVisualizer/RangeTypeColors.ts
similarity index 100%
rename from packages/cursorless-vscode/src/ide/vscode/VSCodeScopeVisualizer/RangeTypeColors.ts
rename to packages/app-vscode/src/ide/vscode/VSCodeScopeVisualizer/RangeTypeColors.ts
diff --git a/packages/cursorless-vscode/src/ide/vscode/VSCodeScopeVisualizer/VscodeFancyRangeHighlighter/VscodeFancyRangeHighlighter.ts b/packages/app-vscode/src/ide/vscode/VSCodeScopeVisualizer/VscodeFancyRangeHighlighter/VscodeFancyRangeHighlighter.ts
similarity index 100%
rename from packages/cursorless-vscode/src/ide/vscode/VSCodeScopeVisualizer/VscodeFancyRangeHighlighter/VscodeFancyRangeHighlighter.ts
rename to packages/app-vscode/src/ide/vscode/VSCodeScopeVisualizer/VscodeFancyRangeHighlighter/VscodeFancyRangeHighlighter.ts
diff --git a/packages/cursorless-vscode/src/ide/vscode/VSCodeScopeVisualizer/VscodeFancyRangeHighlighter/VscodeFancyRangeHighlighterRenderer.ts b/packages/app-vscode/src/ide/vscode/VSCodeScopeVisualizer/VscodeFancyRangeHighlighter/VscodeFancyRangeHighlighterRenderer.ts
similarity index 100%
rename from packages/cursorless-vscode/src/ide/vscode/VSCodeScopeVisualizer/VscodeFancyRangeHighlighter/VscodeFancyRangeHighlighterRenderer.ts
rename to packages/app-vscode/src/ide/vscode/VSCodeScopeVisualizer/VscodeFancyRangeHighlighter/VscodeFancyRangeHighlighterRenderer.ts
diff --git a/packages/cursorless-vscode/src/ide/vscode/VSCodeScopeVisualizer/VscodeFancyRangeHighlighter/decorationStyle.types.ts b/packages/app-vscode/src/ide/vscode/VSCodeScopeVisualizer/VscodeFancyRangeHighlighter/decorationStyle.types.ts
similarity index 100%
rename from packages/cursorless-vscode/src/ide/vscode/VSCodeScopeVisualizer/VscodeFancyRangeHighlighter/decorationStyle.types.ts
rename to packages/app-vscode/src/ide/vscode/VSCodeScopeVisualizer/VscodeFancyRangeHighlighter/decorationStyle.types.ts
diff --git a/packages/cursorless-vscode/src/ide/vscode/VSCodeScopeVisualizer/VscodeFancyRangeHighlighter/generateDifferentiatedRanges.ts b/packages/app-vscode/src/ide/vscode/VSCodeScopeVisualizer/VscodeFancyRangeHighlighter/generateDifferentiatedRanges.ts
similarity index 100%
rename from packages/cursorless-vscode/src/ide/vscode/VSCodeScopeVisualizer/VscodeFancyRangeHighlighter/generateDifferentiatedRanges.ts
rename to packages/app-vscode/src/ide/vscode/VSCodeScopeVisualizer/VscodeFancyRangeHighlighter/generateDifferentiatedRanges.ts
diff --git a/packages/cursorless-vscode/src/ide/vscode/VSCodeScopeVisualizer/VscodeFancyRangeHighlighter/getDifferentiatedStyleMapKey.ts b/packages/app-vscode/src/ide/vscode/VSCodeScopeVisualizer/VscodeFancyRangeHighlighter/getDifferentiatedStyleMapKey.ts
similarity index 100%
rename from packages/cursorless-vscode/src/ide/vscode/VSCodeScopeVisualizer/VscodeFancyRangeHighlighter/getDifferentiatedStyleMapKey.ts
rename to packages/app-vscode/src/ide/vscode/VSCodeScopeVisualizer/VscodeFancyRangeHighlighter/getDifferentiatedStyleMapKey.ts
diff --git a/packages/cursorless-vscode/src/ide/vscode/VSCodeScopeVisualizer/VscodeFancyRangeHighlighter/groupDifferentiatedStyledRanges.ts b/packages/app-vscode/src/ide/vscode/VSCodeScopeVisualizer/VscodeFancyRangeHighlighter/groupDifferentiatedStyledRanges.ts
similarity index 100%
rename from packages/cursorless-vscode/src/ide/vscode/VSCodeScopeVisualizer/VscodeFancyRangeHighlighter/groupDifferentiatedStyledRanges.ts
rename to packages/app-vscode/src/ide/vscode/VSCodeScopeVisualizer/VscodeFancyRangeHighlighter/groupDifferentiatedStyledRanges.ts
diff --git a/packages/cursorless-vscode/src/ide/vscode/VSCodeScopeVisualizer/VscodeFancyRangeHighlighter/index.ts b/packages/app-vscode/src/ide/vscode/VSCodeScopeVisualizer/VscodeFancyRangeHighlighter/index.ts
similarity index 100%
rename from packages/cursorless-vscode/src/ide/vscode/VSCodeScopeVisualizer/VscodeFancyRangeHighlighter/index.ts
rename to packages/app-vscode/src/ide/vscode/VSCodeScopeVisualizer/VscodeFancyRangeHighlighter/index.ts
diff --git a/packages/cursorless-vscode/src/ide/vscode/VSCodeScopeVisualizer/VscodeIterationScopeVisualizer.ts b/packages/app-vscode/src/ide/vscode/VSCodeScopeVisualizer/VscodeIterationScopeVisualizer.ts
similarity index 100%
rename from packages/cursorless-vscode/src/ide/vscode/VSCodeScopeVisualizer/VscodeIterationScopeVisualizer.ts
rename to packages/app-vscode/src/ide/vscode/VSCodeScopeVisualizer/VscodeIterationScopeVisualizer.ts
diff --git a/packages/cursorless-vscode/src/ide/vscode/VSCodeScopeVisualizer/VscodeScopeRenderer.ts b/packages/app-vscode/src/ide/vscode/VSCodeScopeVisualizer/VscodeScopeRenderer.ts
similarity index 100%
rename from packages/cursorless-vscode/src/ide/vscode/VSCodeScopeVisualizer/VscodeScopeRenderer.ts
rename to packages/app-vscode/src/ide/vscode/VSCodeScopeVisualizer/VscodeScopeRenderer.ts
diff --git a/packages/cursorless-vscode/src/ide/vscode/VSCodeScopeVisualizer/VscodeScopeTargetVisualizer.ts b/packages/app-vscode/src/ide/vscode/VSCodeScopeVisualizer/VscodeScopeTargetVisualizer.ts
similarity index 100%
rename from packages/cursorless-vscode/src/ide/vscode/VSCodeScopeVisualizer/VscodeScopeTargetVisualizer.ts
rename to packages/app-vscode/src/ide/vscode/VSCodeScopeVisualizer/VscodeScopeTargetVisualizer.ts
diff --git a/packages/cursorless-vscode/src/ide/vscode/VSCodeScopeVisualizer/VscodeScopeVisualizer.ts b/packages/app-vscode/src/ide/vscode/VSCodeScopeVisualizer/VscodeScopeVisualizer.ts
similarity index 100%
rename from packages/cursorless-vscode/src/ide/vscode/VSCodeScopeVisualizer/VscodeScopeVisualizer.ts
rename to packages/app-vscode/src/ide/vscode/VSCodeScopeVisualizer/VscodeScopeVisualizer.ts
diff --git a/packages/cursorless-vscode/src/ide/vscode/VSCodeScopeVisualizer/blendRangeTypeColors.ts b/packages/app-vscode/src/ide/vscode/VSCodeScopeVisualizer/blendRangeTypeColors.ts
similarity index 100%
rename from packages/cursorless-vscode/src/ide/vscode/VSCodeScopeVisualizer/blendRangeTypeColors.ts
rename to packages/app-vscode/src/ide/vscode/VSCodeScopeVisualizer/blendRangeTypeColors.ts
diff --git a/packages/cursorless-vscode/src/ide/vscode/VSCodeScopeVisualizer/createVscodeScopeVisualizer.ts b/packages/app-vscode/src/ide/vscode/VSCodeScopeVisualizer/createVscodeScopeVisualizer.ts
similarity index 100%
rename from packages/cursorless-vscode/src/ide/vscode/VSCodeScopeVisualizer/createVscodeScopeVisualizer.ts
rename to packages/app-vscode/src/ide/vscode/VSCodeScopeVisualizer/createVscodeScopeVisualizer.ts
diff --git a/packages/cursorless-vscode/src/ide/vscode/VSCodeScopeVisualizer/getColorsFromConfig.ts b/packages/app-vscode/src/ide/vscode/VSCodeScopeVisualizer/getColorsFromConfig.ts
similarity index 100%
rename from packages/cursorless-vscode/src/ide/vscode/VSCodeScopeVisualizer/getColorsFromConfig.ts
rename to packages/app-vscode/src/ide/vscode/VSCodeScopeVisualizer/getColorsFromConfig.ts
diff --git a/packages/cursorless-vscode/src/ide/vscode/VSCodeScopeVisualizer/index.ts b/packages/app-vscode/src/ide/vscode/VSCodeScopeVisualizer/index.ts
similarity index 100%
rename from packages/cursorless-vscode/src/ide/vscode/VSCodeScopeVisualizer/index.ts
rename to packages/app-vscode/src/ide/vscode/VSCodeScopeVisualizer/index.ts
diff --git a/packages/cursorless-vscode/src/ide/vscode/VscodeCapabilities.ts b/packages/app-vscode/src/ide/vscode/VscodeCapabilities.ts
similarity index 100%
rename from packages/cursorless-vscode/src/ide/vscode/VscodeCapabilities.ts
rename to packages/app-vscode/src/ide/vscode/VscodeCapabilities.ts
diff --git a/packages/cursorless-vscode/src/ide/vscode/VscodeClipboard.ts b/packages/app-vscode/src/ide/vscode/VscodeClipboard.ts
similarity index 100%
rename from packages/cursorless-vscode/src/ide/vscode/VscodeClipboard.ts
rename to packages/app-vscode/src/ide/vscode/VscodeClipboard.ts
diff --git a/packages/cursorless-vscode/src/ide/vscode/VscodeConfiguration.ts b/packages/app-vscode/src/ide/vscode/VscodeConfiguration.ts
similarity index 100%
rename from packages/cursorless-vscode/src/ide/vscode/VscodeConfiguration.ts
rename to packages/app-vscode/src/ide/vscode/VscodeConfiguration.ts
diff --git a/packages/cursorless-vscode/src/ide/vscode/VscodeEdit.ts b/packages/app-vscode/src/ide/vscode/VscodeEdit.ts
similarity index 100%
rename from packages/cursorless-vscode/src/ide/vscode/VscodeEdit.ts
rename to packages/app-vscode/src/ide/vscode/VscodeEdit.ts
diff --git a/packages/cursorless-vscode/src/ide/vscode/VscodeEnabledHatStyleManager.ts b/packages/app-vscode/src/ide/vscode/VscodeEnabledHatStyleManager.ts
similarity index 100%
rename from packages/cursorless-vscode/src/ide/vscode/VscodeEnabledHatStyleManager.ts
rename to packages/app-vscode/src/ide/vscode/VscodeEnabledHatStyleManager.ts
diff --git a/packages/cursorless-vscode/src/ide/vscode/VscodeEvents.ts b/packages/app-vscode/src/ide/vscode/VscodeEvents.ts
similarity index 100%
rename from packages/cursorless-vscode/src/ide/vscode/VscodeEvents.ts
rename to packages/app-vscode/src/ide/vscode/VscodeEvents.ts
diff --git a/packages/cursorless-vscode/src/ide/vscode/VscodeFileSystem.ts b/packages/app-vscode/src/ide/vscode/VscodeFileSystem.ts
similarity index 100%
rename from packages/cursorless-vscode/src/ide/vscode/VscodeFileSystem.ts
rename to packages/app-vscode/src/ide/vscode/VscodeFileSystem.ts
diff --git a/packages/cursorless-vscode/src/ide/vscode/VscodeFlashHandler.ts b/packages/app-vscode/src/ide/vscode/VscodeFlashHandler.ts
similarity index 100%
rename from packages/cursorless-vscode/src/ide/vscode/VscodeFlashHandler.ts
rename to packages/app-vscode/src/ide/vscode/VscodeFlashHandler.ts
diff --git a/packages/cursorless-vscode/src/ide/vscode/VscodeFocusEditor.ts b/packages/app-vscode/src/ide/vscode/VscodeFocusEditor.ts
similarity index 100%
rename from packages/cursorless-vscode/src/ide/vscode/VscodeFocusEditor.ts
rename to packages/app-vscode/src/ide/vscode/VscodeFocusEditor.ts
diff --git a/packages/cursorless-vscode/src/ide/vscode/VscodeFold.ts b/packages/app-vscode/src/ide/vscode/VscodeFold.ts
similarity index 100%
rename from packages/cursorless-vscode/src/ide/vscode/VscodeFold.ts
rename to packages/app-vscode/src/ide/vscode/VscodeFold.ts
diff --git a/packages/cursorless-vscode/src/ide/vscode/VscodeHighlightDecorationTypes.ts b/packages/app-vscode/src/ide/vscode/VscodeHighlightDecorationTypes.ts
similarity index 100%
rename from packages/cursorless-vscode/src/ide/vscode/VscodeHighlightDecorationTypes.ts
rename to packages/app-vscode/src/ide/vscode/VscodeHighlightDecorationTypes.ts
diff --git a/packages/cursorless-vscode/src/ide/vscode/VscodeHighlights.ts b/packages/app-vscode/src/ide/vscode/VscodeHighlights.ts
similarity index 100%
rename from packages/cursorless-vscode/src/ide/vscode/VscodeHighlights.ts
rename to packages/app-vscode/src/ide/vscode/VscodeHighlights.ts
diff --git a/packages/cursorless-vscode/src/ide/vscode/VscodeIDE.ts b/packages/app-vscode/src/ide/vscode/VscodeIDE.ts
similarity index 100%
rename from packages/cursorless-vscode/src/ide/vscode/VscodeIDE.ts
rename to packages/app-vscode/src/ide/vscode/VscodeIDE.ts
diff --git a/packages/cursorless-vscode/src/ide/vscode/VscodeIdeNotebook.ts b/packages/app-vscode/src/ide/vscode/VscodeIdeNotebook.ts
similarity index 100%
rename from packages/cursorless-vscode/src/ide/vscode/VscodeIdeNotebook.ts
rename to packages/app-vscode/src/ide/vscode/VscodeIdeNotebook.ts
diff --git a/packages/cursorless-vscode/src/ide/vscode/VscodeInsertSnippets.ts b/packages/app-vscode/src/ide/vscode/VscodeInsertSnippets.ts
similarity index 100%
rename from packages/cursorless-vscode/src/ide/vscode/VscodeInsertSnippets.ts
rename to packages/app-vscode/src/ide/vscode/VscodeInsertSnippets.ts
diff --git a/packages/cursorless-vscode/src/ide/vscode/VscodeKeyValueStore.ts b/packages/app-vscode/src/ide/vscode/VscodeKeyValueStore.ts
similarity index 100%
rename from packages/cursorless-vscode/src/ide/vscode/VscodeKeyValueStore.ts
rename to packages/app-vscode/src/ide/vscode/VscodeKeyValueStore.ts
diff --git a/packages/cursorless-vscode/src/ide/vscode/VscodeMessages.ts b/packages/app-vscode/src/ide/vscode/VscodeMessages.ts
similarity index 100%
rename from packages/cursorless-vscode/src/ide/vscode/VscodeMessages.ts
rename to packages/app-vscode/src/ide/vscode/VscodeMessages.ts
diff --git a/packages/cursorless-vscode/src/ide/vscode/VscodeOpenLink.ts b/packages/app-vscode/src/ide/vscode/VscodeOpenLink.ts
similarity index 100%
rename from packages/cursorless-vscode/src/ide/vscode/VscodeOpenLink.ts
rename to packages/app-vscode/src/ide/vscode/VscodeOpenLink.ts
diff --git a/packages/cursorless-vscode/src/ide/vscode/VscodeRevealLine.ts b/packages/app-vscode/src/ide/vscode/VscodeRevealLine.ts
similarity index 100%
rename from packages/cursorless-vscode/src/ide/vscode/VscodeRevealLine.ts
rename to packages/app-vscode/src/ide/vscode/VscodeRevealLine.ts
diff --git a/packages/cursorless-vscode/src/ide/vscode/VscodeRunMode.ts b/packages/app-vscode/src/ide/vscode/VscodeRunMode.ts
similarity index 100%
rename from packages/cursorless-vscode/src/ide/vscode/VscodeRunMode.ts
rename to packages/app-vscode/src/ide/vscode/VscodeRunMode.ts
diff --git a/packages/cursorless-vscode/src/ide/vscode/VscodeTextDocument.ts b/packages/app-vscode/src/ide/vscode/VscodeTextDocument.ts
similarity index 100%
rename from packages/cursorless-vscode/src/ide/vscode/VscodeTextDocument.ts
rename to packages/app-vscode/src/ide/vscode/VscodeTextDocument.ts
diff --git a/packages/cursorless-vscode/src/ide/vscode/VscodeTextEditor.ts b/packages/app-vscode/src/ide/vscode/VscodeTextEditor.ts
similarity index 100%
rename from packages/cursorless-vscode/src/ide/vscode/VscodeTextEditor.ts
rename to packages/app-vscode/src/ide/vscode/VscodeTextEditor.ts
diff --git a/packages/cursorless-vscode/src/ide/vscode/VscodeTextLine.ts b/packages/app-vscode/src/ide/vscode/VscodeTextLine.ts
similarity index 100%
rename from packages/cursorless-vscode/src/ide/vscode/VscodeTextLine.ts
rename to packages/app-vscode/src/ide/vscode/VscodeTextLine.ts
diff --git a/packages/cursorless-vscode/src/ide/vscode/VscodeToggleBreakpoint.ts b/packages/app-vscode/src/ide/vscode/VscodeToggleBreakpoint.ts
similarity index 100%
rename from packages/cursorless-vscode/src/ide/vscode/VscodeToggleBreakpoint.ts
rename to packages/app-vscode/src/ide/vscode/VscodeToggleBreakpoint.ts
diff --git a/packages/cursorless-vscode/src/ide/vscode/hatStyles.types.ts b/packages/app-vscode/src/ide/vscode/hatStyles.types.ts
similarity index 100%
rename from packages/cursorless-vscode/src/ide/vscode/hatStyles.types.ts
rename to packages/app-vscode/src/ide/vscode/hatStyles.types.ts
diff --git a/packages/cursorless-vscode/src/ide/vscode/hats/FakeFontMeasurements.ts b/packages/app-vscode/src/ide/vscode/hats/FakeFontMeasurements.ts
similarity index 100%
rename from packages/cursorless-vscode/src/ide/vscode/hats/FakeFontMeasurements.ts
rename to packages/app-vscode/src/ide/vscode/hats/FakeFontMeasurements.ts
diff --git a/packages/cursorless-vscode/src/ide/vscode/hats/FontMeasurements.ts b/packages/app-vscode/src/ide/vscode/hats/FontMeasurements.ts
similarity index 100%
rename from packages/cursorless-vscode/src/ide/vscode/hats/FontMeasurements.ts
rename to packages/app-vscode/src/ide/vscode/hats/FontMeasurements.ts
diff --git a/packages/cursorless-vscode/src/ide/vscode/hats/FontMeasurementsImpl.ts b/packages/app-vscode/src/ide/vscode/hats/FontMeasurementsImpl.ts
similarity index 100%
rename from packages/cursorless-vscode/src/ide/vscode/hats/FontMeasurementsImpl.ts
rename to packages/app-vscode/src/ide/vscode/hats/FontMeasurementsImpl.ts
diff --git a/packages/cursorless-vscode/src/ide/vscode/hats/VscodeHatRenderer.ts b/packages/app-vscode/src/ide/vscode/hats/VscodeHatRenderer.ts
similarity index 100%
rename from packages/cursorless-vscode/src/ide/vscode/hats/VscodeHatRenderer.ts
rename to packages/app-vscode/src/ide/vscode/hats/VscodeHatRenderer.ts
diff --git a/packages/cursorless-vscode/src/ide/vscode/hats/VscodeHats.ts b/packages/app-vscode/src/ide/vscode/hats/VscodeHats.ts
similarity index 100%
rename from packages/cursorless-vscode/src/ide/vscode/hats/VscodeHats.ts
rename to packages/app-vscode/src/ide/vscode/hats/VscodeHats.ts
diff --git a/packages/cursorless-vscode/src/ide/vscode/hats/getHatThemeColors.ts b/packages/app-vscode/src/ide/vscode/hats/getHatThemeColors.ts
similarity index 100%
rename from packages/cursorless-vscode/src/ide/vscode/hats/getHatThemeColors.ts
rename to packages/app-vscode/src/ide/vscode/hats/getHatThemeColors.ts
diff --git a/packages/cursorless-vscode/src/ide/vscode/hats/getStyleName.ts b/packages/app-vscode/src/ide/vscode/hats/getStyleName.ts
similarity index 100%
rename from packages/cursorless-vscode/src/ide/vscode/hats/getStyleName.ts
rename to packages/app-vscode/src/ide/vscode/hats/getStyleName.ts
diff --git a/packages/cursorless-vscode/src/ide/vscode/hats/performPr1868ShapeUpdateInit.ts b/packages/app-vscode/src/ide/vscode/hats/performPr1868ShapeUpdateInit.ts
similarity index 100%
rename from packages/cursorless-vscode/src/ide/vscode/hats/performPr1868ShapeUpdateInit.ts
rename to packages/app-vscode/src/ide/vscode/hats/performPr1868ShapeUpdateInit.ts
diff --git a/packages/cursorless-vscode/src/ide/vscode/hats/shapeAdjustments.ts b/packages/app-vscode/src/ide/vscode/hats/shapeAdjustments.ts
similarity index 100%
rename from packages/cursorless-vscode/src/ide/vscode/hats/shapeAdjustments.ts
rename to packages/app-vscode/src/ide/vscode/hats/shapeAdjustments.ts
diff --git a/packages/cursorless-vscode/src/ide/vscode/isDiffEditorOriginal.ts b/packages/app-vscode/src/ide/vscode/isDiffEditorOriginal.ts
similarity index 100%
rename from packages/cursorless-vscode/src/ide/vscode/isDiffEditorOriginal.ts
rename to packages/app-vscode/src/ide/vscode/isDiffEditorOriginal.ts
diff --git a/packages/cursorless-vscode/src/ide/vscode/notebook/notebook.ts b/packages/app-vscode/src/ide/vscode/notebook/notebook.ts
similarity index 100%
rename from packages/cursorless-vscode/src/ide/vscode/notebook/notebook.ts
rename to packages/app-vscode/src/ide/vscode/notebook/notebook.ts
diff --git a/packages/cursorless-vscode/src/ide/vscode/textLine.vscode.test.ts b/packages/app-vscode/src/ide/vscode/textLine.vscode.test.ts
similarity index 100%
rename from packages/cursorless-vscode/src/ide/vscode/textLine.vscode.test.ts
rename to packages/app-vscode/src/ide/vscode/textLine.vscode.test.ts
diff --git a/packages/cursorless-vscode/src/ide/vscode/toVscodeEditor.ts b/packages/app-vscode/src/ide/vscode/toVscodeEditor.ts
similarity index 100%
rename from packages/cursorless-vscode/src/ide/vscode/toVscodeEditor.ts
rename to packages/app-vscode/src/ide/vscode/toVscodeEditor.ts
diff --git a/packages/cursorless-vscode/src/ide/vscode/vscodeShowQuickPick.ts b/packages/app-vscode/src/ide/vscode/vscodeShowQuickPick.ts
similarity index 100%
rename from packages/cursorless-vscode/src/ide/vscode/vscodeShowQuickPick.ts
rename to packages/app-vscode/src/ide/vscode/vscodeShowQuickPick.ts
diff --git a/packages/cursorless-vscode/src/keyboard/KeyboardActionType.ts b/packages/app-vscode/src/keyboard/KeyboardActionType.ts
similarity index 100%
rename from packages/cursorless-vscode/src/keyboard/KeyboardActionType.ts
rename to packages/app-vscode/src/keyboard/KeyboardActionType.ts
diff --git a/packages/cursorless-vscode/src/keyboard/KeyboardCommandHandler.ts b/packages/app-vscode/src/keyboard/KeyboardCommandHandler.ts
similarity index 100%
rename from packages/cursorless-vscode/src/keyboard/KeyboardCommandHandler.ts
rename to packages/app-vscode/src/keyboard/KeyboardCommandHandler.ts
diff --git a/packages/cursorless-vscode/src/keyboard/KeyboardCommandTypeHelpers.ts b/packages/app-vscode/src/keyboard/KeyboardCommandTypeHelpers.ts
similarity index 100%
rename from packages/cursorless-vscode/src/keyboard/KeyboardCommandTypeHelpers.ts
rename to packages/app-vscode/src/keyboard/KeyboardCommandTypeHelpers.ts
diff --git a/packages/cursorless-vscode/src/keyboard/KeyboardCommands.ts b/packages/app-vscode/src/keyboard/KeyboardCommands.ts
similarity index 100%
rename from packages/cursorless-vscode/src/keyboard/KeyboardCommands.ts
rename to packages/app-vscode/src/keyboard/KeyboardCommands.ts
diff --git a/packages/cursorless-vscode/src/keyboard/KeyboardCommandsModal.ts b/packages/app-vscode/src/keyboard/KeyboardCommandsModal.ts
similarity index 100%
rename from packages/cursorless-vscode/src/keyboard/KeyboardCommandsModal.ts
rename to packages/app-vscode/src/keyboard/KeyboardCommandsModal.ts
diff --git a/packages/cursorless-vscode/src/keyboard/KeyboardCommandsModalLayer.ts b/packages/app-vscode/src/keyboard/KeyboardCommandsModalLayer.ts
similarity index 100%
rename from packages/cursorless-vscode/src/keyboard/KeyboardCommandsModalLayer.ts
rename to packages/app-vscode/src/keyboard/KeyboardCommandsModalLayer.ts
diff --git a/packages/cursorless-vscode/src/keyboard/KeyboardCommandsTargeted.ts b/packages/app-vscode/src/keyboard/KeyboardCommandsTargeted.ts
similarity index 100%
rename from packages/cursorless-vscode/src/keyboard/KeyboardCommandsTargeted.ts
rename to packages/app-vscode/src/keyboard/KeyboardCommandsTargeted.ts
diff --git a/packages/cursorless-vscode/src/keyboard/KeyboardConfig.ts b/packages/app-vscode/src/keyboard/KeyboardConfig.ts
similarity index 100%
rename from packages/cursorless-vscode/src/keyboard/KeyboardConfig.ts
rename to packages/app-vscode/src/keyboard/KeyboardConfig.ts
diff --git a/packages/cursorless-vscode/src/keyboard/KeyboardHandler.ts b/packages/app-vscode/src/keyboard/KeyboardHandler.ts
similarity index 100%
rename from packages/cursorless-vscode/src/keyboard/KeyboardHandler.ts
rename to packages/app-vscode/src/keyboard/KeyboardHandler.ts
diff --git a/packages/cursorless-vscode/src/keyboard/TokenTypeHelpers.ts b/packages/app-vscode/src/keyboard/TokenTypeHelpers.ts
similarity index 100%
rename from packages/cursorless-vscode/src/keyboard/TokenTypeHelpers.ts
rename to packages/app-vscode/src/keyboard/TokenTypeHelpers.ts
diff --git a/packages/cursorless-vscode/src/keyboard/TokenTypes.ts b/packages/app-vscode/src/keyboard/TokenTypes.ts
similarity index 100%
rename from packages/cursorless-vscode/src/keyboard/TokenTypes.ts
rename to packages/app-vscode/src/keyboard/TokenTypes.ts
diff --git a/packages/cursorless-vscode/src/keyboard/buildSuffixTrie.test.ts b/packages/app-vscode/src/keyboard/buildSuffixTrie.test.ts
similarity index 100%
rename from packages/cursorless-vscode/src/keyboard/buildSuffixTrie.test.ts
rename to packages/app-vscode/src/keyboard/buildSuffixTrie.test.ts
diff --git a/packages/cursorless-vscode/src/keyboard/buildSuffixTrie.ts b/packages/app-vscode/src/keyboard/buildSuffixTrie.ts
similarity index 100%
rename from packages/cursorless-vscode/src/keyboard/buildSuffixTrie.ts
rename to packages/app-vscode/src/keyboard/buildSuffixTrie.ts
diff --git a/packages/cursorless-vscode/src/keyboard/getTokenTypeKeyMaps.ts b/packages/app-vscode/src/keyboard/getTokenTypeKeyMaps.ts
similarity index 100%
rename from packages/cursorless-vscode/src/keyboard/getTokenTypeKeyMaps.ts
rename to packages/app-vscode/src/keyboard/getTokenTypeKeyMaps.ts
diff --git a/packages/cursorless-vscode/src/keyboard/grammar/CommandRulePostProcessor.ts b/packages/app-vscode/src/keyboard/grammar/CommandRulePostProcessor.ts
similarity index 100%
rename from packages/cursorless-vscode/src/keyboard/grammar/CommandRulePostProcessor.ts
rename to packages/app-vscode/src/keyboard/grammar/CommandRulePostProcessor.ts
diff --git a/packages/cursorless-vscode/src/keyboard/grammar/command.ts b/packages/app-vscode/src/keyboard/grammar/command.ts
similarity index 100%
rename from packages/cursorless-vscode/src/keyboard/grammar/command.ts
rename to packages/app-vscode/src/keyboard/grammar/command.ts
diff --git a/packages/cursorless-vscode/src/keyboard/grammar/generated/grammar.ts b/packages/app-vscode/src/keyboard/grammar/generated/grammar.ts
similarity index 100%
rename from packages/cursorless-vscode/src/keyboard/grammar/generated/grammar.ts
rename to packages/app-vscode/src/keyboard/grammar/generated/grammar.ts
diff --git a/packages/cursorless-vscode/src/keyboard/grammar/getAcceptableTokenTypes.test.ts b/packages/app-vscode/src/keyboard/grammar/getAcceptableTokenTypes.test.ts
similarity index 100%
rename from packages/cursorless-vscode/src/keyboard/grammar/getAcceptableTokenTypes.test.ts
rename to packages/app-vscode/src/keyboard/grammar/getAcceptableTokenTypes.test.ts
diff --git a/packages/cursorless-vscode/src/keyboard/grammar/getAcceptableTokenTypes.ts b/packages/app-vscode/src/keyboard/grammar/getAcceptableTokenTypes.ts
similarity index 100%
rename from packages/cursorless-vscode/src/keyboard/grammar/getAcceptableTokenTypes.ts
rename to packages/app-vscode/src/keyboard/grammar/getAcceptableTokenTypes.ts
diff --git a/packages/cursorless-vscode/src/keyboard/grammar/grammar.ne b/packages/app-vscode/src/keyboard/grammar/grammar.ne
similarity index 100%
rename from packages/cursorless-vscode/src/keyboard/grammar/grammar.ne
rename to packages/app-vscode/src/keyboard/grammar/grammar.ne
diff --git a/packages/cursorless-vscode/src/keyboard/grammar/grammar.test.ts b/packages/app-vscode/src/keyboard/grammar/grammar.test.ts
similarity index 100%
rename from packages/cursorless-vscode/src/keyboard/grammar/grammar.test.ts
rename to packages/app-vscode/src/keyboard/grammar/grammar.test.ts
diff --git a/packages/cursorless-vscode/src/keyboard/grammar/keyboardLexer.ts b/packages/app-vscode/src/keyboard/grammar/keyboardLexer.ts
similarity index 100%
rename from packages/cursorless-vscode/src/keyboard/grammar/keyboardLexer.ts
rename to packages/app-vscode/src/keyboard/grammar/keyboardLexer.ts
diff --git a/packages/cursorless-vscode/src/keyboard/grammar/stringifyTokens.ts b/packages/app-vscode/src/keyboard/grammar/stringifyTokens.ts
similarity index 100%
rename from packages/cursorless-vscode/src/keyboard/grammar/stringifyTokens.ts
rename to packages/app-vscode/src/keyboard/grammar/stringifyTokens.ts
diff --git a/packages/cursorless-vscode/src/keyboard/keyboard-config.fixture.json b/packages/app-vscode/src/keyboard/keyboard-config.fixture.json
similarity index 100%
rename from packages/cursorless-vscode/src/keyboard/keyboard-config.fixture.json
rename to packages/app-vscode/src/keyboard/keyboard-config.fixture.json
diff --git a/packages/cursorless-vscode/src/logQuickActions.ts b/packages/app-vscode/src/logQuickActions.ts
similarity index 100%
rename from packages/cursorless-vscode/src/logQuickActions.ts
rename to packages/app-vscode/src/logQuickActions.ts
diff --git a/packages/cursorless-vscode/src/registerCommands.ts b/packages/app-vscode/src/registerCommands.ts
similarity index 100%
rename from packages/cursorless-vscode/src/registerCommands.ts
rename to packages/app-vscode/src/registerCommands.ts
diff --git a/packages/cursorless-vscode/src/revisualizeOnCustomRegexChange.ts b/packages/app-vscode/src/revisualizeOnCustomRegexChange.ts
similarity index 100%
rename from packages/cursorless-vscode/src/revisualizeOnCustomRegexChange.ts
rename to packages/app-vscode/src/revisualizeOnCustomRegexChange.ts
diff --git a/packages/cursorless-vscode/src/scripts/hatAdjustments/add.ts b/packages/app-vscode/src/scripts/hatAdjustments/add.ts
similarity index 100%
rename from packages/cursorless-vscode/src/scripts/hatAdjustments/add.ts
rename to packages/app-vscode/src/scripts/hatAdjustments/add.ts
diff --git a/packages/cursorless-vscode/src/scripts/hatAdjustments/average.ts b/packages/app-vscode/src/scripts/hatAdjustments/average.ts
similarity index 100%
rename from packages/cursorless-vscode/src/scripts/hatAdjustments/average.ts
rename to packages/app-vscode/src/scripts/hatAdjustments/average.ts
diff --git a/packages/cursorless-vscode/src/scripts/hatAdjustments/lib.ts b/packages/app-vscode/src/scripts/hatAdjustments/lib.ts
similarity index 100%
rename from packages/cursorless-vscode/src/scripts/hatAdjustments/lib.ts
rename to packages/app-vscode/src/scripts/hatAdjustments/lib.ts
diff --git a/packages/cursorless-vscode/src/scripts/initLaunchSandbox.ts b/packages/app-vscode/src/scripts/initLaunchSandbox.ts
similarity index 100%
rename from packages/cursorless-vscode/src/scripts/initLaunchSandbox.ts
rename to packages/app-vscode/src/scripts/initLaunchSandbox.ts
diff --git a/packages/cursorless-vscode/src/scripts/populateDist/Asset.ts b/packages/app-vscode/src/scripts/populateDist/Asset.ts
similarity index 100%
rename from packages/cursorless-vscode/src/scripts/populateDist/Asset.ts
rename to packages/app-vscode/src/scripts/populateDist/Asset.ts
diff --git a/packages/cursorless-vscode/src/scripts/populateDist/assets.ts b/packages/app-vscode/src/scripts/populateDist/assets.ts
similarity index 100%
rename from packages/cursorless-vscode/src/scripts/populateDist/assets.ts
rename to packages/app-vscode/src/scripts/populateDist/assets.ts
diff --git a/packages/cursorless-vscode/src/scripts/populateDist/context.ts b/packages/app-vscode/src/scripts/populateDist/context.ts
similarity index 100%
rename from packages/cursorless-vscode/src/scripts/populateDist/context.ts
rename to packages/app-vscode/src/scripts/populateDist/context.ts
diff --git a/packages/cursorless-vscode/src/scripts/populateDist/generateBuildInfo.ts b/packages/app-vscode/src/scripts/populateDist/generateBuildInfo.ts
similarity index 100%
rename from packages/cursorless-vscode/src/scripts/populateDist/generateBuildInfo.ts
rename to packages/app-vscode/src/scripts/populateDist/generateBuildInfo.ts
diff --git a/packages/cursorless-vscode/src/scripts/populateDist/index.ts b/packages/app-vscode/src/scripts/populateDist/index.ts
similarity index 100%
rename from packages/cursorless-vscode/src/scripts/populateDist/index.ts
rename to packages/app-vscode/src/scripts/populateDist/index.ts
diff --git a/packages/cursorless-vscode/src/scripts/populateDist/populateDist.ts b/packages/app-vscode/src/scripts/populateDist/populateDist.ts
similarity index 100%
rename from packages/cursorless-vscode/src/scripts/populateDist/populateDist.ts
rename to packages/app-vscode/src/scripts/populateDist/populateDist.ts
diff --git a/packages/cursorless-vscode/src/scripts/populateDist/runCommand.ts b/packages/app-vscode/src/scripts/populateDist/runCommand.ts
similarity index 100%
rename from packages/cursorless-vscode/src/scripts/populateDist/runCommand.ts
rename to packages/app-vscode/src/scripts/populateDist/runCommand.ts
diff --git a/packages/cursorless-vscode/src/scripts/populateDist/transformPackageJson.ts b/packages/app-vscode/src/scripts/populateDist/transformPackageJson.ts
similarity index 100%
rename from packages/cursorless-vscode/src/scripts/populateDist/transformPackageJson.ts
rename to packages/app-vscode/src/scripts/populateDist/transformPackageJson.ts
diff --git a/packages/cursorless-vscode/src/scripts/preprocessSvgHats.ts b/packages/app-vscode/src/scripts/preprocessSvgHats.ts
similarity index 100%
rename from packages/cursorless-vscode/src/scripts/preprocessSvgHats.ts
rename to packages/app-vscode/src/scripts/preprocessSvgHats.ts
diff --git a/packages/cursorless-vscode/src/storedTargetHighlighter.ts b/packages/app-vscode/src/storedTargetHighlighter.ts
similarity index 100%
rename from packages/cursorless-vscode/src/storedTargetHighlighter.ts
rename to packages/app-vscode/src/storedTargetHighlighter.ts
diff --git a/packages/cursorless-vscode/src/usingSetting.ts b/packages/app-vscode/src/usingSetting.ts
similarity index 100%
rename from packages/cursorless-vscode/src/usingSetting.ts
rename to packages/app-vscode/src/usingSetting.ts
diff --git a/packages/cursorless-vscode/src/vscodeApi.ts b/packages/app-vscode/src/vscodeApi.ts
similarity index 100%
rename from packages/cursorless-vscode/src/vscodeApi.ts
rename to packages/app-vscode/src/vscodeApi.ts
diff --git a/packages/cursorless-everywhere-talon-core/tsconfig.json b/packages/app-vscode/tsconfig.json
similarity index 100%
rename from packages/cursorless-everywhere-talon-core/tsconfig.json
rename to packages/app-vscode/tsconfig.json
diff --git a/packages/cursorless-org-docs/README.md b/packages/app-web-docs/README.md
similarity index 100%
rename from packages/cursorless-org-docs/README.md
rename to packages/app-web-docs/README.md
diff --git a/packages/cursorless-org-docs/config/algolia/README.md b/packages/app-web-docs/config/algolia/README.md
similarity index 100%
rename from packages/cursorless-org-docs/config/algolia/README.md
rename to packages/app-web-docs/config/algolia/README.md
diff --git a/packages/cursorless-org-docs/config/algolia/crawler-settings.js b/packages/app-web-docs/config/algolia/crawler-settings.js
similarity index 100%
rename from packages/cursorless-org-docs/config/algolia/crawler-settings.js
rename to packages/app-web-docs/config/algolia/crawler-settings.js
diff --git a/packages/cursorless-org-docs/config/algolia/index-settings.json b/packages/app-web-docs/config/algolia/index-settings.json
similarity index 100%
rename from packages/cursorless-org-docs/config/algolia/index-settings.json
rename to packages/app-web-docs/config/algolia/index-settings.json
diff --git a/packages/cursorless-org-docs/docusaurus.config.mts b/packages/app-web-docs/docusaurus.config.mts
similarity index 100%
rename from packages/cursorless-org-docs/docusaurus.config.mts
rename to packages/app-web-docs/docusaurus.config.mts
diff --git a/packages/cursorless-org-docs/package.json b/packages/app-web-docs/package.json
similarity index 100%
rename from packages/cursorless-org-docs/package.json
rename to packages/app-web-docs/package.json
diff --git a/packages/cursorless-org-docs/sidebar.js b/packages/app-web-docs/sidebar.js
similarity index 100%
rename from packages/cursorless-org-docs/sidebar.js
rename to packages/app-web-docs/sidebar.js
diff --git a/packages/cursorless-org-docs/src/css/custom.scss b/packages/app-web-docs/src/css/custom.scss
similarity index 100%
rename from packages/cursorless-org-docs/src/css/custom.scss
rename to packages/app-web-docs/src/css/custom.scss
diff --git a/packages/cursorless-org-docs/src/css/github-link.scss b/packages/app-web-docs/src/css/github-link.scss
similarity index 100%
rename from packages/cursorless-org-docs/src/css/github-link.scss
rename to packages/app-web-docs/src/css/github-link.scss
diff --git a/packages/cursorless-org-docs/src/docs/components/Code.css b/packages/app-web-docs/src/docs/components/Code.css
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/components/Code.css
rename to packages/app-web-docs/src/docs/components/Code.css
diff --git a/packages/cursorless-org-docs/src/docs/components/Code.tsx b/packages/app-web-docs/src/docs/components/Code.tsx
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/components/Code.tsx
rename to packages/app-web-docs/src/docs/components/Code.tsx
diff --git a/packages/cursorless-org-docs/src/docs/components/DynamicTOC.tsx b/packages/app-web-docs/src/docs/components/DynamicTOC.tsx
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/components/DynamicTOC.tsx
rename to packages/app-web-docs/src/docs/components/DynamicTOC.tsx
diff --git a/packages/cursorless-org-docs/src/docs/components/Header.css b/packages/app-web-docs/src/docs/components/Header.css
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/components/Header.css
rename to packages/app-web-docs/src/docs/components/Header.css
diff --git a/packages/cursorless-org-docs/src/docs/components/Header.tsx b/packages/app-web-docs/src/docs/components/Header.tsx
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/components/Header.tsx
rename to packages/app-web-docs/src/docs/components/Header.tsx
diff --git a/packages/cursorless-org-docs/src/docs/components/ScopeSupport.css b/packages/app-web-docs/src/docs/components/ScopeSupport.css
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/components/ScopeSupport.css
rename to packages/app-web-docs/src/docs/components/ScopeSupport.css
diff --git a/packages/cursorless-org-docs/src/docs/components/ScopeVisualizer.tsx b/packages/app-web-docs/src/docs/components/ScopeVisualizer.tsx
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/components/ScopeVisualizer.tsx
rename to packages/app-web-docs/src/docs/components/ScopeVisualizer.tsx
diff --git a/packages/cursorless-org-docs/src/docs/components/ScrollToHashId.tsx b/packages/app-web-docs/src/docs/components/ScrollToHashId.tsx
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/components/ScrollToHashId.tsx
rename to packages/app-web-docs/src/docs/components/ScrollToHashId.tsx
diff --git a/packages/cursorless-org-docs/src/docs/components/calculateHighlights.ts b/packages/app-web-docs/src/docs/components/calculateHighlights.ts
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/components/calculateHighlights.ts
rename to packages/app-web-docs/src/docs/components/calculateHighlights.ts
diff --git a/packages/cursorless-org-docs/src/docs/components/flattenHighlights.test.ts b/packages/app-web-docs/src/docs/components/flattenHighlights.test.ts
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/components/flattenHighlights.test.ts
rename to packages/app-web-docs/src/docs/components/flattenHighlights.test.ts
diff --git a/packages/cursorless-org-docs/src/docs/components/flattenHighlights.ts b/packages/app-web-docs/src/docs/components/flattenHighlights.ts
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/components/flattenHighlights.ts
rename to packages/app-web-docs/src/docs/components/flattenHighlights.ts
diff --git a/packages/cursorless-org-docs/src/docs/components/highlightColors.ts b/packages/app-web-docs/src/docs/components/highlightColors.ts
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/components/highlightColors.ts
rename to packages/app-web-docs/src/docs/components/highlightColors.ts
diff --git a/packages/cursorless-org-docs/src/docs/components/highlightsToDecorations.ts b/packages/app-web-docs/src/docs/components/highlightsToDecorations.ts
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/components/highlightsToDecorations.ts
rename to packages/app-web-docs/src/docs/components/highlightsToDecorations.ts
diff --git a/packages/cursorless-org-docs/src/docs/components/types.ts b/packages/app-web-docs/src/docs/components/types.ts
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/components/types.ts
rename to packages/app-web-docs/src/docs/components/types.ts
diff --git a/packages/cursorless-org-docs/src/docs/components/util.ts b/packages/app-web-docs/src/docs/components/util.ts
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/components/util.ts
rename to packages/app-web-docs/src/docs/components/util.ts
diff --git a/packages/cursorless-org-docs/src/docs/contributing/CONTRIBUTING.mdx b/packages/app-web-docs/src/docs/contributing/CONTRIBUTING.mdx
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/contributing/CONTRIBUTING.mdx
rename to packages/app-web-docs/src/docs/contributing/CONTRIBUTING.mdx
diff --git a/packages/cursorless-org-docs/src/docs/contributing/MissingLanguageScopes.tsx b/packages/app-web-docs/src/docs/contributing/MissingLanguageScopes.tsx
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/contributing/MissingLanguageScopes.tsx
rename to packages/app-web-docs/src/docs/contributing/MissingLanguageScopes.tsx
diff --git a/packages/cursorless-org-docs/src/docs/contributing/_api-index.md b/packages/app-web-docs/src/docs/contributing/_api-index.md
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/contributing/_api-index.md
rename to packages/app-web-docs/src/docs/contributing/_api-index.md
diff --git a/packages/cursorless-org-docs/src/docs/contributing/adding-a-new-language.md b/packages/app-web-docs/src/docs/contributing/adding-a-new-language.md
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/contributing/adding-a-new-language.md
rename to packages/app-web-docs/src/docs/contributing/adding-a-new-language.md
diff --git a/packages/cursorless-org-docs/src/docs/contributing/adding-a-new-package.md b/packages/app-web-docs/src/docs/contributing/adding-a-new-package.md
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/contributing/adding-a-new-package.md
rename to packages/app-web-docs/src/docs/contributing/adding-a-new-package.md
diff --git a/packages/cursorless-org-docs/src/docs/contributing/adding-a-new-scope.md b/packages/app-web-docs/src/docs/contributing/adding-a-new-scope.md
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/contributing/adding-a-new-scope.md
rename to packages/app-web-docs/src/docs/contributing/adding-a-new-scope.md
diff --git a/packages/cursorless-org-docs/src/docs/contributing/architecture/hat-snapshots.md b/packages/app-web-docs/src/docs/contributing/architecture/hat-snapshots.md
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/contributing/architecture/hat-snapshots.md
rename to packages/app-web-docs/src/docs/contributing/architecture/hat-snapshots.md
diff --git a/packages/cursorless-org-docs/src/docs/contributing/architecture/images/hat-token-map-snapshots.png b/packages/app-web-docs/src/docs/contributing/architecture/images/hat-token-map-snapshots.png
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/contributing/architecture/images/hat-token-map-snapshots.png
rename to packages/app-web-docs/src/docs/contributing/architecture/images/hat-token-map-snapshots.png
diff --git a/packages/cursorless-org-docs/src/docs/contributing/architecture/neovim-test-infrastructure.md b/packages/app-web-docs/src/docs/contributing/architecture/neovim-test-infrastructure.md
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/contributing/architecture/neovim-test-infrastructure.md
rename to packages/app-web-docs/src/docs/contributing/architecture/neovim-test-infrastructure.md
diff --git a/packages/cursorless-org-docs/src/docs/contributing/architecture/package-scripts.md b/packages/app-web-docs/src/docs/contributing/architecture/package-scripts.md
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/contributing/architecture/package-scripts.md
rename to packages/app-web-docs/src/docs/contributing/architecture/package-scripts.md
diff --git a/packages/cursorless-org-docs/src/docs/contributing/cheatsheet.md b/packages/app-web-docs/src/docs/contributing/cheatsheet.md
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/contributing/cheatsheet.md
rename to packages/app-web-docs/src/docs/contributing/cheatsheet.md
diff --git a/packages/cursorless-org-docs/src/docs/contributing/cursorless-in-neovim.md b/packages/app-web-docs/src/docs/contributing/cursorless-in-neovim.md
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/contributing/cursorless-in-neovim.md
rename to packages/app-web-docs/src/docs/contributing/cursorless-in-neovim.md
diff --git a/packages/cursorless-org-docs/src/docs/contributing/documentation-search.md b/packages/app-web-docs/src/docs/contributing/documentation-search.md
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/contributing/documentation-search.md
rename to packages/app-web-docs/src/docs/contributing/documentation-search.md
diff --git a/packages/cursorless-org-docs/src/docs/contributing/guidelines.md b/packages/app-web-docs/src/docs/contributing/guidelines.md
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/contributing/guidelines.md
rename to packages/app-web-docs/src/docs/contributing/guidelines.md
diff --git a/packages/cursorless-org-docs/src/docs/contributing/missing-language-scopes.mdx b/packages/app-web-docs/src/docs/contributing/missing-language-scopes.mdx
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/contributing/missing-language-scopes.mdx
rename to packages/app-web-docs/src/docs/contributing/missing-language-scopes.mdx
diff --git a/packages/cursorless-org-docs/src/docs/contributing/scope-test-format.md b/packages/app-web-docs/src/docs/contributing/scope-test-format.md
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/contributing/scope-test-format.md
rename to packages/app-web-docs/src/docs/contributing/scope-test-format.md
diff --git a/packages/cursorless-org-docs/src/docs/contributing/scopes/README.md b/packages/app-web-docs/src/docs/contributing/scopes/README.md
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/contributing/scopes/README.md
rename to packages/app-web-docs/src/docs/contributing/scopes/README.md
diff --git a/packages/cursorless-org-docs/src/docs/contributing/scopes/anonymousFunction.mdx b/packages/app-web-docs/src/docs/contributing/scopes/anonymousFunction.mdx
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/contributing/scopes/anonymousFunction.mdx
rename to packages/app-web-docs/src/docs/contributing/scopes/anonymousFunction.mdx
diff --git a/packages/cursorless-org-docs/src/docs/contributing/scopes/argumentList.mdx b/packages/app-web-docs/src/docs/contributing/scopes/argumentList.mdx
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/contributing/scopes/argumentList.mdx
rename to packages/app-web-docs/src/docs/contributing/scopes/argumentList.mdx
diff --git a/packages/cursorless-org-docs/src/docs/contributing/scopes/argumentOrParameter.mdx b/packages/app-web-docs/src/docs/contributing/scopes/argumentOrParameter.mdx
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/contributing/scopes/argumentOrParameter.mdx
rename to packages/app-web-docs/src/docs/contributing/scopes/argumentOrParameter.mdx
diff --git a/packages/cursorless-org-docs/src/docs/contributing/scopes/attribute.mdx b/packages/app-web-docs/src/docs/contributing/scopes/attribute.mdx
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/contributing/scopes/attribute.mdx
rename to packages/app-web-docs/src/docs/contributing/scopes/attribute.mdx
diff --git a/packages/cursorless-org-docs/src/docs/contributing/scopes/boundedNonWhitespaceSequence.mdx b/packages/app-web-docs/src/docs/contributing/scopes/boundedNonWhitespaceSequence.mdx
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/contributing/scopes/boundedNonWhitespaceSequence.mdx
rename to packages/app-web-docs/src/docs/contributing/scopes/boundedNonWhitespaceSequence.mdx
diff --git a/packages/cursorless-org-docs/src/docs/contributing/scopes/boundedParagraph.mdx b/packages/app-web-docs/src/docs/contributing/scopes/boundedParagraph.mdx
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/contributing/scopes/boundedParagraph.mdx
rename to packages/app-web-docs/src/docs/contributing/scopes/boundedParagraph.mdx
diff --git a/packages/cursorless-org-docs/src/docs/contributing/scopes/branch.mdx b/packages/app-web-docs/src/docs/contributing/scopes/branch.mdx
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/contributing/scopes/branch.mdx
rename to packages/app-web-docs/src/docs/contributing/scopes/branch.mdx
diff --git a/packages/cursorless-org-docs/src/docs/contributing/scopes/character.mdx b/packages/app-web-docs/src/docs/contributing/scopes/character.mdx
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/contributing/scopes/character.mdx
rename to packages/app-web-docs/src/docs/contributing/scopes/character.mdx
diff --git a/packages/cursorless-org-docs/src/docs/contributing/scopes/class.mdx b/packages/app-web-docs/src/docs/contributing/scopes/class.mdx
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/contributing/scopes/class.mdx
rename to packages/app-web-docs/src/docs/contributing/scopes/class.mdx
diff --git a/packages/cursorless-org-docs/src/docs/contributing/scopes/className.mdx b/packages/app-web-docs/src/docs/contributing/scopes/className.mdx
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/contributing/scopes/className.mdx
rename to packages/app-web-docs/src/docs/contributing/scopes/className.mdx
diff --git a/packages/cursorless-org-docs/src/docs/contributing/scopes/collectionItem.mdx b/packages/app-web-docs/src/docs/contributing/scopes/collectionItem.mdx
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/contributing/scopes/collectionItem.mdx
rename to packages/app-web-docs/src/docs/contributing/scopes/collectionItem.mdx
diff --git a/packages/cursorless-org-docs/src/docs/contributing/scopes/collectionKey.mdx b/packages/app-web-docs/src/docs/contributing/scopes/collectionKey.mdx
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/contributing/scopes/collectionKey.mdx
rename to packages/app-web-docs/src/docs/contributing/scopes/collectionKey.mdx
diff --git a/packages/cursorless-org-docs/src/docs/contributing/scopes/command.mdx b/packages/app-web-docs/src/docs/contributing/scopes/command.mdx
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/contributing/scopes/command.mdx
rename to packages/app-web-docs/src/docs/contributing/scopes/command.mdx
diff --git a/packages/cursorless-org-docs/src/docs/contributing/scopes/comment.mdx b/packages/app-web-docs/src/docs/contributing/scopes/comment.mdx
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/contributing/scopes/comment.mdx
rename to packages/app-web-docs/src/docs/contributing/scopes/comment.mdx
diff --git a/packages/cursorless-org-docs/src/docs/contributing/scopes/components/Scopes.tsx b/packages/app-web-docs/src/docs/contributing/scopes/components/Scopes.tsx
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/contributing/scopes/components/Scopes.tsx
rename to packages/app-web-docs/src/docs/contributing/scopes/components/Scopes.tsx
diff --git a/packages/cursorless-org-docs/src/docs/contributing/scopes/condition.mdx b/packages/app-web-docs/src/docs/contributing/scopes/condition.mdx
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/contributing/scopes/condition.mdx
rename to packages/app-web-docs/src/docs/contributing/scopes/condition.mdx
diff --git a/packages/cursorless-org-docs/src/docs/contributing/scopes/disqualifyDelimiter.mdx b/packages/app-web-docs/src/docs/contributing/scopes/disqualifyDelimiter.mdx
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/contributing/scopes/disqualifyDelimiter.mdx
rename to packages/app-web-docs/src/docs/contributing/scopes/disqualifyDelimiter.mdx
diff --git a/packages/cursorless-org-docs/src/docs/contributing/scopes/document.mdx b/packages/app-web-docs/src/docs/contributing/scopes/document.mdx
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/contributing/scopes/document.mdx
rename to packages/app-web-docs/src/docs/contributing/scopes/document.mdx
diff --git a/packages/cursorless-org-docs/src/docs/contributing/scopes/environment.mdx b/packages/app-web-docs/src/docs/contributing/scopes/environment.mdx
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/contributing/scopes/environment.mdx
rename to packages/app-web-docs/src/docs/contributing/scopes/environment.mdx
diff --git a/packages/cursorless-org-docs/src/docs/contributing/scopes/fieldAccess.mdx b/packages/app-web-docs/src/docs/contributing/scopes/fieldAccess.mdx
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/contributing/scopes/fieldAccess.mdx
rename to packages/app-web-docs/src/docs/contributing/scopes/fieldAccess.mdx
diff --git a/packages/cursorless-org-docs/src/docs/contributing/scopes/fullLine.mdx b/packages/app-web-docs/src/docs/contributing/scopes/fullLine.mdx
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/contributing/scopes/fullLine.mdx
rename to packages/app-web-docs/src/docs/contributing/scopes/fullLine.mdx
diff --git a/packages/cursorless-org-docs/src/docs/contributing/scopes/functionCall.mdx b/packages/app-web-docs/src/docs/contributing/scopes/functionCall.mdx
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/contributing/scopes/functionCall.mdx
rename to packages/app-web-docs/src/docs/contributing/scopes/functionCall.mdx
diff --git a/packages/cursorless-org-docs/src/docs/contributing/scopes/functionCallee.mdx b/packages/app-web-docs/src/docs/contributing/scopes/functionCallee.mdx
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/contributing/scopes/functionCallee.mdx
rename to packages/app-web-docs/src/docs/contributing/scopes/functionCallee.mdx
diff --git a/packages/cursorless-org-docs/src/docs/contributing/scopes/functionName.mdx b/packages/app-web-docs/src/docs/contributing/scopes/functionName.mdx
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/contributing/scopes/functionName.mdx
rename to packages/app-web-docs/src/docs/contributing/scopes/functionName.mdx
diff --git a/packages/cursorless-org-docs/src/docs/contributing/scopes/identifier.mdx b/packages/app-web-docs/src/docs/contributing/scopes/identifier.mdx
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/contributing/scopes/identifier.mdx
rename to packages/app-web-docs/src/docs/contributing/scopes/identifier.mdx
diff --git a/packages/cursorless-org-docs/src/docs/contributing/scopes/ifStatement.mdx b/packages/app-web-docs/src/docs/contributing/scopes/ifStatement.mdx
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/contributing/scopes/ifStatement.mdx
rename to packages/app-web-docs/src/docs/contributing/scopes/ifStatement.mdx
diff --git a/packages/cursorless-org-docs/src/docs/contributing/scopes/interior.mdx b/packages/app-web-docs/src/docs/contributing/scopes/interior.mdx
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/contributing/scopes/interior.mdx
rename to packages/app-web-docs/src/docs/contributing/scopes/interior.mdx
diff --git a/packages/cursorless-org-docs/src/docs/contributing/scopes/line.mdx b/packages/app-web-docs/src/docs/contributing/scopes/line.mdx
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/contributing/scopes/line.mdx
rename to packages/app-web-docs/src/docs/contributing/scopes/line.mdx
diff --git a/packages/cursorless-org-docs/src/docs/contributing/scopes/list.mdx b/packages/app-web-docs/src/docs/contributing/scopes/list.mdx
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/contributing/scopes/list.mdx
rename to packages/app-web-docs/src/docs/contributing/scopes/list.mdx
diff --git a/packages/cursorless-org-docs/src/docs/contributing/scopes/map.mdx b/packages/app-web-docs/src/docs/contributing/scopes/map.mdx
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/contributing/scopes/map.mdx
rename to packages/app-web-docs/src/docs/contributing/scopes/map.mdx
diff --git a/packages/cursorless-org-docs/src/docs/contributing/scopes/name.mdx b/packages/app-web-docs/src/docs/contributing/scopes/name.mdx
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/contributing/scopes/name.mdx
rename to packages/app-web-docs/src/docs/contributing/scopes/name.mdx
diff --git a/packages/cursorless-org-docs/src/docs/contributing/scopes/namedFunction.mdx b/packages/app-web-docs/src/docs/contributing/scopes/namedFunction.mdx
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/contributing/scopes/namedFunction.mdx
rename to packages/app-web-docs/src/docs/contributing/scopes/namedFunction.mdx
diff --git a/packages/cursorless-org-docs/src/docs/contributing/scopes/nonWhitespaceSequence.mdx b/packages/app-web-docs/src/docs/contributing/scopes/nonWhitespaceSequence.mdx
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/contributing/scopes/nonWhitespaceSequence.mdx
rename to packages/app-web-docs/src/docs/contributing/scopes/nonWhitespaceSequence.mdx
diff --git a/packages/cursorless-org-docs/src/docs/contributing/scopes/notebookCell.mdx b/packages/app-web-docs/src/docs/contributing/scopes/notebookCell.mdx
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/contributing/scopes/notebookCell.mdx
rename to packages/app-web-docs/src/docs/contributing/scopes/notebookCell.mdx
diff --git a/packages/cursorless-org-docs/src/docs/contributing/scopes/pairDelimiter.mdx b/packages/app-web-docs/src/docs/contributing/scopes/pairDelimiter.mdx
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/contributing/scopes/pairDelimiter.mdx
rename to packages/app-web-docs/src/docs/contributing/scopes/pairDelimiter.mdx
diff --git a/packages/cursorless-org-docs/src/docs/contributing/scopes/paragraph.mdx b/packages/app-web-docs/src/docs/contributing/scopes/paragraph.mdx
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/contributing/scopes/paragraph.mdx
rename to packages/app-web-docs/src/docs/contributing/scopes/paragraph.mdx
diff --git a/packages/cursorless-org-docs/src/docs/contributing/scopes/regularExpression.mdx b/packages/app-web-docs/src/docs/contributing/scopes/regularExpression.mdx
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/contributing/scopes/regularExpression.mdx
rename to packages/app-web-docs/src/docs/contributing/scopes/regularExpression.mdx
diff --git a/packages/cursorless-org-docs/src/docs/contributing/scopes/section.mdx b/packages/app-web-docs/src/docs/contributing/scopes/section.mdx
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/contributing/scopes/section.mdx
rename to packages/app-web-docs/src/docs/contributing/scopes/section.mdx
diff --git a/packages/cursorless-org-docs/src/docs/contributing/scopes/selector.mdx b/packages/app-web-docs/src/docs/contributing/scopes/selector.mdx
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/contributing/scopes/selector.mdx
rename to packages/app-web-docs/src/docs/contributing/scopes/selector.mdx
diff --git a/packages/cursorless-org-docs/src/docs/contributing/scopes/sentence.mdx b/packages/app-web-docs/src/docs/contributing/scopes/sentence.mdx
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/contributing/scopes/sentence.mdx
rename to packages/app-web-docs/src/docs/contributing/scopes/sentence.mdx
diff --git a/packages/cursorless-org-docs/src/docs/contributing/scopes/statement.mdx b/packages/app-web-docs/src/docs/contributing/scopes/statement.mdx
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/contributing/scopes/statement.mdx
rename to packages/app-web-docs/src/docs/contributing/scopes/statement.mdx
diff --git a/packages/cursorless-org-docs/src/docs/contributing/scopes/string.mdx b/packages/app-web-docs/src/docs/contributing/scopes/string.mdx
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/contributing/scopes/string.mdx
rename to packages/app-web-docs/src/docs/contributing/scopes/string.mdx
diff --git a/packages/cursorless-org-docs/src/docs/contributing/scopes/surroundingPair.mdx b/packages/app-web-docs/src/docs/contributing/scopes/surroundingPair.mdx
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/contributing/scopes/surroundingPair.mdx
rename to packages/app-web-docs/src/docs/contributing/scopes/surroundingPair.mdx
diff --git a/packages/cursorless-org-docs/src/docs/contributing/scopes/surroundingPairInterior.mdx b/packages/app-web-docs/src/docs/contributing/scopes/surroundingPairInterior.mdx
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/contributing/scopes/surroundingPairInterior.mdx
rename to packages/app-web-docs/src/docs/contributing/scopes/surroundingPairInterior.mdx
diff --git a/packages/cursorless-org-docs/src/docs/contributing/scopes/textFragment.mdx b/packages/app-web-docs/src/docs/contributing/scopes/textFragment.mdx
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/contributing/scopes/textFragment.mdx
rename to packages/app-web-docs/src/docs/contributing/scopes/textFragment.mdx
diff --git a/packages/cursorless-org-docs/src/docs/contributing/scopes/token.mdx b/packages/app-web-docs/src/docs/contributing/scopes/token.mdx
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/contributing/scopes/token.mdx
rename to packages/app-web-docs/src/docs/contributing/scopes/token.mdx
diff --git a/packages/cursorless-org-docs/src/docs/contributing/scopes/type.mdx b/packages/app-web-docs/src/docs/contributing/scopes/type.mdx
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/contributing/scopes/type.mdx
rename to packages/app-web-docs/src/docs/contributing/scopes/type.mdx
diff --git a/packages/cursorless-org-docs/src/docs/contributing/scopes/unit.mdx b/packages/app-web-docs/src/docs/contributing/scopes/unit.mdx
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/contributing/scopes/unit.mdx
rename to packages/app-web-docs/src/docs/contributing/scopes/unit.mdx
diff --git a/packages/cursorless-org-docs/src/docs/contributing/scopes/url.mdx b/packages/app-web-docs/src/docs/contributing/scopes/url.mdx
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/contributing/scopes/url.mdx
rename to packages/app-web-docs/src/docs/contributing/scopes/url.mdx
diff --git a/packages/cursorless-org-docs/src/docs/contributing/scopes/value.mdx b/packages/app-web-docs/src/docs/contributing/scopes/value.mdx
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/contributing/scopes/value.mdx
rename to packages/app-web-docs/src/docs/contributing/scopes/value.mdx
diff --git a/packages/cursorless-org-docs/src/docs/contributing/scopes/word.mdx b/packages/app-web-docs/src/docs/contributing/scopes/word.mdx
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/contributing/scopes/word.mdx
rename to packages/app-web-docs/src/docs/contributing/scopes/word.mdx
diff --git a/packages/cursorless-org-docs/src/docs/contributing/scopes/xmlBothTags.mdx b/packages/app-web-docs/src/docs/contributing/scopes/xmlBothTags.mdx
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/contributing/scopes/xmlBothTags.mdx
rename to packages/app-web-docs/src/docs/contributing/scopes/xmlBothTags.mdx
diff --git a/packages/cursorless-org-docs/src/docs/contributing/scopes/xmlElement.mdx b/packages/app-web-docs/src/docs/contributing/scopes/xmlElement.mdx
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/contributing/scopes/xmlElement.mdx
rename to packages/app-web-docs/src/docs/contributing/scopes/xmlElement.mdx
diff --git a/packages/cursorless-org-docs/src/docs/contributing/scopes/xmlEndTag.mdx b/packages/app-web-docs/src/docs/contributing/scopes/xmlEndTag.mdx
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/contributing/scopes/xmlEndTag.mdx
rename to packages/app-web-docs/src/docs/contributing/scopes/xmlEndTag.mdx
diff --git a/packages/cursorless-org-docs/src/docs/contributing/scopes/xmlStartTag.mdx b/packages/app-web-docs/src/docs/contributing/scopes/xmlStartTag.mdx
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/contributing/scopes/xmlStartTag.mdx
rename to packages/app-web-docs/src/docs/contributing/scopes/xmlStartTag.mdx
diff --git a/packages/cursorless-org-docs/src/docs/contributing/test-case-recorder.md b/packages/app-web-docs/src/docs/contributing/test-case-recorder.md
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/contributing/test-case-recorder.md
rename to packages/app-web-docs/src/docs/contributing/test-case-recorder.md
diff --git a/packages/cursorless-org-docs/src/docs/contributing/tests.md b/packages/app-web-docs/src/docs/contributing/tests.md
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/contributing/tests.md
rename to packages/app-web-docs/src/docs/contributing/tests.md
diff --git a/packages/cursorless-org-docs/src/docs/contributing/tree-sitter-query-syntax.md b/packages/app-web-docs/src/docs/contributing/tree-sitter-query-syntax.md
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/contributing/tree-sitter-query-syntax.md
rename to packages/app-web-docs/src/docs/contributing/tree-sitter-query-syntax.md
diff --git a/packages/cursorless-org-docs/src/docs/user/README.md b/packages/app-web-docs/src/docs/user/README.md
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/user/README.md
rename to packages/app-web-docs/src/docs/user/README.md
diff --git a/packages/cursorless-org-docs/src/docs/user/customization.md b/packages/app-web-docs/src/docs/user/customization.md
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/user/customization.md
rename to packages/app-web-docs/src/docs/user/customization.md
diff --git a/packages/cursorless-org-docs/src/docs/user/experimental/README.md b/packages/app-web-docs/src/docs/user/experimental/README.md
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/user/experimental/README.md
rename to packages/app-web-docs/src/docs/user/experimental/README.md
diff --git a/packages/cursorless-org-docs/src/docs/user/experimental/images/linkWrap.gif b/packages/app-web-docs/src/docs/user/experimental/images/linkWrap.gif
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/user/experimental/images/linkWrap.gif
rename to packages/app-web-docs/src/docs/user/experimental/images/linkWrap.gif
diff --git a/packages/cursorless-org-docs/src/docs/user/experimental/images/tryWrapFine.gif b/packages/app-web-docs/src/docs/user/experimental/images/tryWrapFine.gif
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/user/experimental/images/tryWrapFine.gif
rename to packages/app-web-docs/src/docs/user/experimental/images/tryWrapFine.gif
diff --git a/packages/cursorless-org-docs/src/docs/user/experimental/keyboard/images/keyboardBring.gif b/packages/app-web-docs/src/docs/user/experimental/keyboard/images/keyboardBring.gif
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/user/experimental/keyboard/images/keyboardBring.gif
rename to packages/app-web-docs/src/docs/user/experimental/keyboard/images/keyboardBring.gif
diff --git a/packages/cursorless-org-docs/src/docs/user/experimental/keyboard/images/keyboardDelete.gif b/packages/app-web-docs/src/docs/user/experimental/keyboard/images/keyboardDelete.gif
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/user/experimental/keyboard/images/keyboardDelete.gif
rename to packages/app-web-docs/src/docs/user/experimental/keyboard/images/keyboardDelete.gif
diff --git a/packages/cursorless-org-docs/src/docs/user/experimental/keyboard/images/keyboardPour.gif b/packages/app-web-docs/src/docs/user/experimental/keyboard/images/keyboardPour.gif
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/user/experimental/keyboard/images/keyboardPour.gif
rename to packages/app-web-docs/src/docs/user/experimental/keyboard/images/keyboardPour.gif
diff --git a/packages/cursorless-org-docs/src/docs/user/experimental/keyboard/modal.md b/packages/app-web-docs/src/docs/user/experimental/keyboard/modal.md
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/user/experimental/keyboard/modal.md
rename to packages/app-web-docs/src/docs/user/experimental/keyboard/modal.md
diff --git a/packages/cursorless-org-docs/src/docs/user/glossary.md b/packages/app-web-docs/src/docs/user/glossary.md
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/user/glossary.md
rename to packages/app-web-docs/src/docs/user/glossary.md
diff --git a/packages/cursorless-org-docs/src/docs/user/hatAssignment.md b/packages/app-web-docs/src/docs/user/hatAssignment.md
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/user/hatAssignment.md
rename to packages/app-web-docs/src/docs/user/hatAssignment.md
diff --git a/packages/cursorless-org-docs/src/docs/user/how-to.md b/packages/app-web-docs/src/docs/user/how-to.md
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/user/how-to.md
rename to packages/app-web-docs/src/docs/user/how-to.md
diff --git a/packages/cursorless-org-docs/src/docs/user/images/chuckBat.gif b/packages/app-web-docs/src/docs/user/images/chuckBat.gif
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/user/images/chuckBat.gif
rename to packages/app-web-docs/src/docs/user/images/chuckBat.gif
diff --git a/packages/cursorless-org-docs/src/docs/user/images/custom-regex-scopes.png b/packages/app-web-docs/src/docs/user/images/custom-regex-scopes.png
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/user/images/custom-regex-scopes.png
rename to packages/app-web-docs/src/docs/user/images/custom-regex-scopes.png
diff --git a/packages/cursorless-org-docs/src/docs/user/images/relative_ordinal.png b/packages/app-web-docs/src/docs/user/images/relative_ordinal.png
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/user/images/relative_ordinal.png
rename to packages/app-web-docs/src/docs/user/images/relative_ordinal.png
diff --git a/packages/cursorless-org-docs/src/docs/user/images/relative_ordinal.tex b/packages/app-web-docs/src/docs/user/images/relative_ordinal.tex
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/user/images/relative_ordinal.tex
rename to packages/app-web-docs/src/docs/user/images/relative_ordinal.tex
diff --git a/packages/cursorless-org-docs/src/docs/user/images/sidebar-scopes.png b/packages/app-web-docs/src/docs/user/images/sidebar-scopes.png
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/user/images/sidebar-scopes.png
rename to packages/app-web-docs/src/docs/user/images/sidebar-scopes.png
diff --git a/packages/cursorless-org-docs/src/docs/user/images/visualize-block-removal.png b/packages/app-web-docs/src/docs/user/images/visualize-block-removal.png
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/user/images/visualize-block-removal.png
rename to packages/app-web-docs/src/docs/user/images/visualize-block-removal.png
diff --git a/packages/cursorless-org-docs/src/docs/user/images/visualize-funk.png b/packages/app-web-docs/src/docs/user/images/visualize-funk.png
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/user/images/visualize-funk.png
rename to packages/app-web-docs/src/docs/user/images/visualize-funk.png
diff --git a/packages/cursorless-org-docs/src/docs/user/images/visualize-token.png b/packages/app-web-docs/src/docs/user/images/visualize-token.png
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/user/images/visualize-token.png
rename to packages/app-web-docs/src/docs/user/images/visualize-token.png
diff --git a/packages/cursorless-org-docs/src/docs/user/installation.md b/packages/app-web-docs/src/docs/user/installation.md
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/user/installation.md
rename to packages/app-web-docs/src/docs/user/installation.md
diff --git a/packages/cursorless-org-docs/src/docs/user/languages/README.md b/packages/app-web-docs/src/docs/user/languages/README.md
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/user/languages/README.md
rename to packages/app-web-docs/src/docs/user/languages/README.md
diff --git a/packages/cursorless-org-docs/src/docs/user/languages/c.mdx b/packages/app-web-docs/src/docs/user/languages/c.mdx
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/user/languages/c.mdx
rename to packages/app-web-docs/src/docs/user/languages/c.mdx
diff --git a/packages/cursorless-org-docs/src/docs/user/languages/clojure.mdx b/packages/app-web-docs/src/docs/user/languages/clojure.mdx
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/user/languages/clojure.mdx
rename to packages/app-web-docs/src/docs/user/languages/clojure.mdx
diff --git a/packages/cursorless-org-docs/src/docs/user/languages/components/Language.tsx b/packages/app-web-docs/src/docs/user/languages/components/Language.tsx
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/user/languages/components/Language.tsx
rename to packages/app-web-docs/src/docs/user/languages/components/Language.tsx
diff --git a/packages/cursorless-org-docs/src/docs/user/languages/cpp.mdx b/packages/app-web-docs/src/docs/user/languages/cpp.mdx
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/user/languages/cpp.mdx
rename to packages/app-web-docs/src/docs/user/languages/cpp.mdx
diff --git a/packages/cursorless-org-docs/src/docs/user/languages/csharp.mdx b/packages/app-web-docs/src/docs/user/languages/csharp.mdx
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/user/languages/csharp.mdx
rename to packages/app-web-docs/src/docs/user/languages/csharp.mdx
diff --git a/packages/cursorless-org-docs/src/docs/user/languages/css.mdx b/packages/app-web-docs/src/docs/user/languages/css.mdx
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/user/languages/css.mdx
rename to packages/app-web-docs/src/docs/user/languages/css.mdx
diff --git a/packages/cursorless-org-docs/src/docs/user/languages/dart.mdx b/packages/app-web-docs/src/docs/user/languages/dart.mdx
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/user/languages/dart.mdx
rename to packages/app-web-docs/src/docs/user/languages/dart.mdx
diff --git a/packages/cursorless-org-docs/src/docs/user/languages/go.mdx b/packages/app-web-docs/src/docs/user/languages/go.mdx
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/user/languages/go.mdx
rename to packages/app-web-docs/src/docs/user/languages/go.mdx
diff --git a/packages/cursorless-org-docs/src/docs/user/languages/html.mdx b/packages/app-web-docs/src/docs/user/languages/html.mdx
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/user/languages/html.mdx
rename to packages/app-web-docs/src/docs/user/languages/html.mdx
diff --git a/packages/cursorless-org-docs/src/docs/user/languages/java.mdx b/packages/app-web-docs/src/docs/user/languages/java.mdx
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/user/languages/java.mdx
rename to packages/app-web-docs/src/docs/user/languages/java.mdx
diff --git a/packages/cursorless-org-docs/src/docs/user/languages/javascript.mdx b/packages/app-web-docs/src/docs/user/languages/javascript.mdx
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/user/languages/javascript.mdx
rename to packages/app-web-docs/src/docs/user/languages/javascript.mdx
diff --git a/packages/cursorless-org-docs/src/docs/user/languages/javascriptreact.mdx b/packages/app-web-docs/src/docs/user/languages/javascriptreact.mdx
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/user/languages/javascriptreact.mdx
rename to packages/app-web-docs/src/docs/user/languages/javascriptreact.mdx
diff --git a/packages/cursorless-org-docs/src/docs/user/languages/json.mdx b/packages/app-web-docs/src/docs/user/languages/json.mdx
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/user/languages/json.mdx
rename to packages/app-web-docs/src/docs/user/languages/json.mdx
diff --git a/packages/cursorless-org-docs/src/docs/user/languages/jsonc.mdx b/packages/app-web-docs/src/docs/user/languages/jsonc.mdx
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/user/languages/jsonc.mdx
rename to packages/app-web-docs/src/docs/user/languages/jsonc.mdx
diff --git a/packages/cursorless-org-docs/src/docs/user/languages/jsonl.mdx b/packages/app-web-docs/src/docs/user/languages/jsonl.mdx
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/user/languages/jsonl.mdx
rename to packages/app-web-docs/src/docs/user/languages/jsonl.mdx
diff --git a/packages/cursorless-org-docs/src/docs/user/languages/kotlin.mdx b/packages/app-web-docs/src/docs/user/languages/kotlin.mdx
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/user/languages/kotlin.mdx
rename to packages/app-web-docs/src/docs/user/languages/kotlin.mdx
diff --git a/packages/cursorless-org-docs/src/docs/user/languages/latex.mdx b/packages/app-web-docs/src/docs/user/languages/latex.mdx
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/user/languages/latex.mdx
rename to packages/app-web-docs/src/docs/user/languages/latex.mdx
diff --git a/packages/cursorless-org-docs/src/docs/user/languages/lua.mdx b/packages/app-web-docs/src/docs/user/languages/lua.mdx
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/user/languages/lua.mdx
rename to packages/app-web-docs/src/docs/user/languages/lua.mdx
diff --git a/packages/cursorless-org-docs/src/docs/user/languages/markdown.mdx b/packages/app-web-docs/src/docs/user/languages/markdown.mdx
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/user/languages/markdown.mdx
rename to packages/app-web-docs/src/docs/user/languages/markdown.mdx
diff --git a/packages/cursorless-org-docs/src/docs/user/languages/php.mdx b/packages/app-web-docs/src/docs/user/languages/php.mdx
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/user/languages/php.mdx
rename to packages/app-web-docs/src/docs/user/languages/php.mdx
diff --git a/packages/cursorless-org-docs/src/docs/user/languages/plaintext.mdx b/packages/app-web-docs/src/docs/user/languages/plaintext.mdx
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/user/languages/plaintext.mdx
rename to packages/app-web-docs/src/docs/user/languages/plaintext.mdx
diff --git a/packages/cursorless-org-docs/src/docs/user/languages/properties.mdx b/packages/app-web-docs/src/docs/user/languages/properties.mdx
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/user/languages/properties.mdx
rename to packages/app-web-docs/src/docs/user/languages/properties.mdx
diff --git a/packages/cursorless-org-docs/src/docs/user/languages/python.mdx b/packages/app-web-docs/src/docs/user/languages/python.mdx
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/user/languages/python.mdx
rename to packages/app-web-docs/src/docs/user/languages/python.mdx
diff --git a/packages/cursorless-org-docs/src/docs/user/languages/r.mdx b/packages/app-web-docs/src/docs/user/languages/r.mdx
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/user/languages/r.mdx
rename to packages/app-web-docs/src/docs/user/languages/r.mdx
diff --git a/packages/cursorless-org-docs/src/docs/user/languages/ruby.mdx b/packages/app-web-docs/src/docs/user/languages/ruby.mdx
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/user/languages/ruby.mdx
rename to packages/app-web-docs/src/docs/user/languages/ruby.mdx
diff --git a/packages/cursorless-org-docs/src/docs/user/languages/rust.mdx b/packages/app-web-docs/src/docs/user/languages/rust.mdx
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/user/languages/rust.mdx
rename to packages/app-web-docs/src/docs/user/languages/rust.mdx
diff --git a/packages/cursorless-org-docs/src/docs/user/languages/scala.mdx b/packages/app-web-docs/src/docs/user/languages/scala.mdx
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/user/languages/scala.mdx
rename to packages/app-web-docs/src/docs/user/languages/scala.mdx
diff --git a/packages/cursorless-org-docs/src/docs/user/languages/scm.mdx b/packages/app-web-docs/src/docs/user/languages/scm.mdx
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/user/languages/scm.mdx
rename to packages/app-web-docs/src/docs/user/languages/scm.mdx
diff --git a/packages/cursorless-org-docs/src/docs/user/languages/scss.mdx b/packages/app-web-docs/src/docs/user/languages/scss.mdx
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/user/languages/scss.mdx
rename to packages/app-web-docs/src/docs/user/languages/scss.mdx
diff --git a/packages/cursorless-org-docs/src/docs/user/languages/talon-list.mdx b/packages/app-web-docs/src/docs/user/languages/talon-list.mdx
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/user/languages/talon-list.mdx
rename to packages/app-web-docs/src/docs/user/languages/talon-list.mdx
diff --git a/packages/cursorless-org-docs/src/docs/user/languages/talon.mdx b/packages/app-web-docs/src/docs/user/languages/talon.mdx
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/user/languages/talon.mdx
rename to packages/app-web-docs/src/docs/user/languages/talon.mdx
diff --git a/packages/cursorless-org-docs/src/docs/user/languages/typescript.mdx b/packages/app-web-docs/src/docs/user/languages/typescript.mdx
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/user/languages/typescript.mdx
rename to packages/app-web-docs/src/docs/user/languages/typescript.mdx
diff --git a/packages/cursorless-org-docs/src/docs/user/languages/typescriptreact.mdx b/packages/app-web-docs/src/docs/user/languages/typescriptreact.mdx
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/user/languages/typescriptreact.mdx
rename to packages/app-web-docs/src/docs/user/languages/typescriptreact.mdx
diff --git a/packages/cursorless-org-docs/src/docs/user/languages/xml.mdx b/packages/app-web-docs/src/docs/user/languages/xml.mdx
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/user/languages/xml.mdx
rename to packages/app-web-docs/src/docs/user/languages/xml.mdx
diff --git a/packages/cursorless-org-docs/src/docs/user/languages/yaml.mdx b/packages/app-web-docs/src/docs/user/languages/yaml.mdx
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/user/languages/yaml.mdx
rename to packages/app-web-docs/src/docs/user/languages/yaml.mdx
diff --git a/packages/cursorless-org-docs/src/docs/user/localCommandHIstory.md b/packages/app-web-docs/src/docs/user/localCommandHIstory.md
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/user/localCommandHIstory.md
rename to packages/app-web-docs/src/docs/user/localCommandHIstory.md
diff --git a/packages/cursorless-org-docs/src/docs/user/reference/destinations.md b/packages/app-web-docs/src/docs/user/reference/destinations.md
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/user/reference/destinations.md
rename to packages/app-web-docs/src/docs/user/reference/destinations.md
diff --git a/packages/cursorless-org-docs/src/docs/user/release-notes/0.28.0.md b/packages/app-web-docs/src/docs/user/release-notes/0.28.0.md
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/user/release-notes/0.28.0.md
rename to packages/app-web-docs/src/docs/user/release-notes/0.28.0.md
diff --git a/packages/cursorless-org-docs/src/docs/user/release-notes/0.29.0.md b/packages/app-web-docs/src/docs/user/release-notes/0.29.0.md
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/user/release-notes/0.29.0.md
rename to packages/app-web-docs/src/docs/user/release-notes/0.29.0.md
diff --git a/packages/cursorless-org-docs/src/docs/user/release-notes/1.0.0.md b/packages/app-web-docs/src/docs/user/release-notes/1.0.0.md
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/user/release-notes/1.0.0.md
rename to packages/app-web-docs/src/docs/user/release-notes/1.0.0.md
diff --git a/packages/cursorless-org-docs/src/docs/user/release-notes/1.1.0.md b/packages/app-web-docs/src/docs/user/release-notes/1.1.0.md
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/user/release-notes/1.1.0.md
rename to packages/app-web-docs/src/docs/user/release-notes/1.1.0.md
diff --git a/packages/cursorless-org-docs/src/docs/user/release-notes/2022-year-in-review.md b/packages/app-web-docs/src/docs/user/release-notes/2022-year-in-review.md
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/user/release-notes/2022-year-in-review.md
rename to packages/app-web-docs/src/docs/user/release-notes/2022-year-in-review.md
diff --git a/packages/cursorless-org-docs/src/docs/user/release-notes/README.md b/packages/app-web-docs/src/docs/user/release-notes/README.md
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/user/release-notes/README.md
rename to packages/app-web-docs/src/docs/user/release-notes/README.md
diff --git a/packages/cursorless-org-docs/src/docs/user/release-notes/big-hats.png b/packages/app-web-docs/src/docs/user/release-notes/big-hats.png
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/user/release-notes/big-hats.png
rename to packages/app-web-docs/src/docs/user/release-notes/big-hats.png
diff --git a/packages/cursorless-org-docs/src/docs/user/release-notes/sidebar-containment-icons.png b/packages/app-web-docs/src/docs/user/release-notes/sidebar-containment-icons.png
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/user/release-notes/sidebar-containment-icons.png
rename to packages/app-web-docs/src/docs/user/release-notes/sidebar-containment-icons.png
diff --git a/packages/cursorless-org-docs/src/docs/user/release-notes/sidebar-sneak-preview.png b/packages/app-web-docs/src/docs/user/release-notes/sidebar-sneak-preview.png
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/user/release-notes/sidebar-sneak-preview.png
rename to packages/app-web-docs/src/docs/user/release-notes/sidebar-sneak-preview.png
diff --git a/packages/cursorless-org-docs/src/docs/user/scope-sidebar.md b/packages/app-web-docs/src/docs/user/scope-sidebar.md
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/user/scope-sidebar.md
rename to packages/app-web-docs/src/docs/user/scope-sidebar.md
diff --git a/packages/cursorless-org-docs/src/docs/user/scope-visualizer.md b/packages/app-web-docs/src/docs/user/scope-visualizer.md
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/user/scope-visualizer.md
rename to packages/app-web-docs/src/docs/user/scope-visualizer.md
diff --git a/packages/cursorless-org-docs/src/docs/user/unicode.md b/packages/app-web-docs/src/docs/user/unicode.md
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/user/unicode.md
rename to packages/app-web-docs/src/docs/user/unicode.md
diff --git a/packages/cursorless-org-docs/src/docs/user/updating.md b/packages/app-web-docs/src/docs/user/updating.md
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/user/updating.md
rename to packages/app-web-docs/src/docs/user/updating.md
diff --git a/packages/cursorless-org-docs/src/docs/user/visualAccessibility.md b/packages/app-web-docs/src/docs/user/visualAccessibility.md
similarity index 100%
rename from packages/cursorless-org-docs/src/docs/user/visualAccessibility.md
rename to packages/app-web-docs/src/docs/user/visualAccessibility.md
diff --git a/packages/cursorless-org-docs/src/plugins/scope-tests-plugin.ts b/packages/app-web-docs/src/plugins/scope-tests-plugin.ts
similarity index 100%
rename from packages/cursorless-org-docs/src/plugins/scope-tests-plugin.ts
rename to packages/app-web-docs/src/plugins/scope-tests-plugin.ts
diff --git a/packages/cursorless-org-docs/src/theme/Root.tsx b/packages/app-web-docs/src/theme/Root.tsx
similarity index 100%
rename from packages/cursorless-org-docs/src/theme/Root.tsx
rename to packages/app-web-docs/src/theme/Root.tsx
diff --git a/packages/cursorless-org-docs/static/logo-dark.svg b/packages/app-web-docs/static/logo-dark.svg
similarity index 100%
rename from packages/cursorless-org-docs/static/logo-dark.svg
rename to packages/app-web-docs/static/logo-dark.svg
diff --git a/packages/cursorless-org-docs/static/logo.svg b/packages/app-web-docs/static/logo.svg
similarity index 100%
rename from packages/cursorless-org-docs/static/logo.svg
rename to packages/app-web-docs/static/logo.svg
diff --git a/packages/cursorless-org-docs/tsconfig.json b/packages/app-web-docs/tsconfig.json
similarity index 100%
rename from packages/cursorless-org-docs/tsconfig.json
rename to packages/app-web-docs/tsconfig.json
diff --git a/packages/cursorless-org/README.md b/packages/app-web/README.md
similarity index 100%
rename from packages/cursorless-org/README.md
rename to packages/app-web/README.md
diff --git a/packages/cursorless-org/eslintConfig.ts b/packages/app-web/eslintConfig.ts
similarity index 100%
rename from packages/cursorless-org/eslintConfig.ts
rename to packages/app-web/eslintConfig.ts
diff --git a/packages/cursorless-org/index.html b/packages/app-web/index.html
similarity index 100%
rename from packages/cursorless-org/index.html
rename to packages/app-web/index.html
diff --git a/packages/cursorless-org/package.json b/packages/app-web/package.json
similarity index 100%
rename from packages/cursorless-org/package.json
rename to packages/app-web/package.json
diff --git a/packages/cursorless-org/public/_redirects b/packages/app-web/public/_redirects
similarity index 100%
rename from packages/cursorless-org/public/_redirects
rename to packages/app-web/public/_redirects
diff --git a/packages/cursorless-org/public/android-chrome-192x192.png b/packages/app-web/public/android-chrome-192x192.png
similarity index 100%
rename from packages/cursorless-org/public/android-chrome-192x192.png
rename to packages/app-web/public/android-chrome-192x192.png
diff --git a/packages/cursorless-org/public/android-chrome-512x512.png b/packages/app-web/public/android-chrome-512x512.png
similarity index 100%
rename from packages/cursorless-org/public/android-chrome-512x512.png
rename to packages/app-web/public/android-chrome-512x512.png
diff --git a/packages/cursorless-org/public/apple-touch-icon.png b/packages/app-web/public/apple-touch-icon.png
similarity index 100%
rename from packages/cursorless-org/public/apple-touch-icon.png
rename to packages/app-web/public/apple-touch-icon.png
diff --git a/packages/cursorless-org/public/browserconfig.xml b/packages/app-web/public/browserconfig.xml
similarity index 100%
rename from packages/cursorless-org/public/browserconfig.xml
rename to packages/app-web/public/browserconfig.xml
diff --git a/packages/cursorless-org/public/favicon-16x16.png b/packages/app-web/public/favicon-16x16.png
similarity index 100%
rename from packages/cursorless-org/public/favicon-16x16.png
rename to packages/app-web/public/favicon-16x16.png
diff --git a/packages/cursorless-org/public/favicon-32x32.png b/packages/app-web/public/favicon-32x32.png
similarity index 100%
rename from packages/cursorless-org/public/favicon-32x32.png
rename to packages/app-web/public/favicon-32x32.png
diff --git a/packages/cursorless-org/public/favicon.ico b/packages/app-web/public/favicon.ico
similarity index 100%
rename from packages/cursorless-org/public/favicon.ico
rename to packages/app-web/public/favicon.ico
diff --git a/packages/cursorless-org/public/favicon.png b/packages/app-web/public/favicon.png
similarity index 100%
rename from packages/cursorless-org/public/favicon.png
rename to packages/app-web/public/favicon.png
diff --git a/packages/cursorless-org/public/favicon.svg b/packages/app-web/public/favicon.svg
similarity index 100%
rename from packages/cursorless-org/public/favicon.svg
rename to packages/app-web/public/favicon.svg
diff --git a/packages/cursorless-org/public/fonts/Inconsolata-Bold.ttf b/packages/app-web/public/fonts/Inconsolata-Bold.ttf
similarity index 100%
rename from packages/cursorless-org/public/fonts/Inconsolata-Bold.ttf
rename to packages/app-web/public/fonts/Inconsolata-Bold.ttf
diff --git a/packages/cursorless-org/public/fonts/Inconsolata-ExtraLight.ttf b/packages/app-web/public/fonts/Inconsolata-ExtraLight.ttf
similarity index 100%
rename from packages/cursorless-org/public/fonts/Inconsolata-ExtraLight.ttf
rename to packages/app-web/public/fonts/Inconsolata-ExtraLight.ttf
diff --git a/packages/cursorless-org/public/fonts/Inconsolata-Light.ttf b/packages/app-web/public/fonts/Inconsolata-Light.ttf
similarity index 100%
rename from packages/cursorless-org/public/fonts/Inconsolata-Light.ttf
rename to packages/app-web/public/fonts/Inconsolata-Light.ttf
diff --git a/packages/cursorless-org/public/fonts/Inconsolata-Medium.ttf b/packages/app-web/public/fonts/Inconsolata-Medium.ttf
similarity index 100%
rename from packages/cursorless-org/public/fonts/Inconsolata-Medium.ttf
rename to packages/app-web/public/fonts/Inconsolata-Medium.ttf
diff --git a/packages/cursorless-org/public/fonts/Inconsolata-Regular.ttf b/packages/app-web/public/fonts/Inconsolata-Regular.ttf
similarity index 100%
rename from packages/cursorless-org/public/fonts/Inconsolata-Regular.ttf
rename to packages/app-web/public/fonts/Inconsolata-Regular.ttf
diff --git a/packages/cursorless-org/public/fonts/Inconsolata-SemiBold.ttf b/packages/app-web/public/fonts/Inconsolata-SemiBold.ttf
similarity index 100%
rename from packages/cursorless-org/public/fonts/Inconsolata-SemiBold.ttf
rename to packages/app-web/public/fonts/Inconsolata-SemiBold.ttf
diff --git a/packages/cursorless-org/public/fonts/Inconsolata_SemiExpanded-Bold.ttf b/packages/app-web/public/fonts/Inconsolata_SemiExpanded-Bold.ttf
similarity index 100%
rename from packages/cursorless-org/public/fonts/Inconsolata_SemiExpanded-Bold.ttf
rename to packages/app-web/public/fonts/Inconsolata_SemiExpanded-Bold.ttf
diff --git a/packages/cursorless-org/public/fonts/Inconsolata_SemiExpanded-ExtraBold.ttf b/packages/app-web/public/fonts/Inconsolata_SemiExpanded-ExtraBold.ttf
similarity index 100%
rename from packages/cursorless-org/public/fonts/Inconsolata_SemiExpanded-ExtraBold.ttf
rename to packages/app-web/public/fonts/Inconsolata_SemiExpanded-ExtraBold.ttf
diff --git a/packages/cursorless-org/public/fonts/Inconsolata_SemiExpanded-Light.ttf b/packages/app-web/public/fonts/Inconsolata_SemiExpanded-Light.ttf
similarity index 100%
rename from packages/cursorless-org/public/fonts/Inconsolata_SemiExpanded-Light.ttf
rename to packages/app-web/public/fonts/Inconsolata_SemiExpanded-Light.ttf
diff --git a/packages/cursorless-org/public/fonts/Inconsolata_SemiExpanded-Medium.ttf b/packages/app-web/public/fonts/Inconsolata_SemiExpanded-Medium.ttf
similarity index 100%
rename from packages/cursorless-org/public/fonts/Inconsolata_SemiExpanded-Medium.ttf
rename to packages/app-web/public/fonts/Inconsolata_SemiExpanded-Medium.ttf
diff --git a/packages/cursorless-org/public/fonts/Inconsolata_SemiExpanded-Regular.ttf b/packages/app-web/public/fonts/Inconsolata_SemiExpanded-Regular.ttf
similarity index 100%
rename from packages/cursorless-org/public/fonts/Inconsolata_SemiExpanded-Regular.ttf
rename to packages/app-web/public/fonts/Inconsolata_SemiExpanded-Regular.ttf
diff --git a/packages/cursorless-org/public/fonts/Inconsolata_SemiExpanded-SemiBold.ttf b/packages/app-web/public/fonts/Inconsolata_SemiExpanded-SemiBold.ttf
similarity index 100%
rename from packages/cursorless-org/public/fonts/Inconsolata_SemiExpanded-SemiBold.ttf
rename to packages/app-web/public/fonts/Inconsolata_SemiExpanded-SemiBold.ttf
diff --git a/packages/cursorless-org/public/logo-dark.svg b/packages/app-web/public/logo-dark.svg
similarity index 100%
rename from packages/cursorless-org/public/logo-dark.svg
rename to packages/app-web/public/logo-dark.svg
diff --git a/packages/cursorless-org/public/logo.svg b/packages/app-web/public/logo.svg
similarity index 100%
rename from packages/cursorless-org/public/logo.svg
rename to packages/app-web/public/logo.svg
diff --git a/packages/cursorless-org/public/mstile-144x144.png b/packages/app-web/public/mstile-144x144.png
similarity index 100%
rename from packages/cursorless-org/public/mstile-144x144.png
rename to packages/app-web/public/mstile-144x144.png
diff --git a/packages/cursorless-org/public/mstile-150x150.png b/packages/app-web/public/mstile-150x150.png
similarity index 100%
rename from packages/cursorless-org/public/mstile-150x150.png
rename to packages/app-web/public/mstile-150x150.png
diff --git a/packages/cursorless-org/public/mstile-310x150.png b/packages/app-web/public/mstile-310x150.png
similarity index 100%
rename from packages/cursorless-org/public/mstile-310x150.png
rename to packages/app-web/public/mstile-310x150.png
diff --git a/packages/cursorless-org/public/mstile-310x310.png b/packages/app-web/public/mstile-310x310.png
similarity index 100%
rename from packages/cursorless-org/public/mstile-310x310.png
rename to packages/app-web/public/mstile-310x310.png
diff --git a/packages/cursorless-org/public/mstile-70x70.png b/packages/app-web/public/mstile-70x70.png
similarity index 100%
rename from packages/cursorless-org/public/mstile-70x70.png
rename to packages/app-web/public/mstile-70x70.png
diff --git a/packages/cursorless-org/public/safari-pinned-tab.svg b/packages/app-web/public/safari-pinned-tab.svg
similarity index 100%
rename from packages/cursorless-org/public/safari-pinned-tab.svg
rename to packages/app-web/public/safari-pinned-tab.svg
diff --git a/packages/cursorless-org/public/site.webmanifest b/packages/app-web/public/site.webmanifest
similarity index 100%
rename from packages/cursorless-org/public/site.webmanifest
rename to packages/app-web/public/site.webmanifest
diff --git a/packages/cursorless-org/public/video-share-thumbnail.jpg b/packages/app-web/public/video-share-thumbnail.jpg
similarity index 100%
rename from packages/cursorless-org/public/video-share-thumbnail.jpg
rename to packages/app-web/public/video-share-thumbnail.jpg
diff --git a/packages/cursorless-org/scripts/mac-serve-bind-external b/packages/app-web/scripts/mac-serve-bind-external
old mode 100755
new mode 100644
similarity index 100%
rename from packages/cursorless-org/scripts/mac-serve-bind-external
rename to packages/app-web/scripts/mac-serve-bind-external
diff --git a/packages/cursorless-org/src/App.tsx b/packages/app-web/src/App.tsx
similarity index 100%
rename from packages/cursorless-org/src/App.tsx
rename to packages/app-web/src/App.tsx
diff --git a/packages/cursorless-org/src/Button.tsx b/packages/app-web/src/Button.tsx
similarity index 100%
rename from packages/cursorless-org/src/Button.tsx
rename to packages/app-web/src/Button.tsx
diff --git a/packages/cursorless-org/src/Cheatsheet.tsx b/packages/app-web/src/Cheatsheet.tsx
similarity index 100%
rename from packages/cursorless-org/src/Cheatsheet.tsx
rename to packages/app-web/src/Cheatsheet.tsx
diff --git a/packages/cursorless-org/src/EmbeddedVideo.tsx b/packages/app-web/src/EmbeddedVideo.tsx
similarity index 100%
rename from packages/cursorless-org/src/EmbeddedVideo.tsx
rename to packages/app-web/src/EmbeddedVideo.tsx
diff --git a/packages/cursorless-org/src/LandingPage.tsx b/packages/app-web/src/LandingPage.tsx
similarity index 100%
rename from packages/cursorless-org/src/LandingPage.tsx
rename to packages/app-web/src/LandingPage.tsx
diff --git a/packages/cursorless-org/src/constants.ts b/packages/app-web/src/constants.ts
similarity index 100%
rename from packages/cursorless-org/src/constants.ts
rename to packages/app-web/src/constants.ts
diff --git a/packages/cursorless-org/src/index.tsx b/packages/app-web/src/index.tsx
similarity index 100%
rename from packages/cursorless-org/src/index.tsx
rename to packages/app-web/src/index.tsx
diff --git a/packages/cursorless-org/src/logo.svg b/packages/app-web/src/logo.svg
similarity index 100%
rename from packages/cursorless-org/src/logo.svg
rename to packages/app-web/src/logo.svg
diff --git a/packages/cursorless-org/src/styles.css b/packages/app-web/src/styles.css
similarity index 100%
rename from packages/cursorless-org/src/styles.css
rename to packages/app-web/src/styles.css
diff --git a/packages/cursorless-org/src/vite-env.d.ts b/packages/app-web/src/vite-env.d.ts
similarity index 100%
rename from packages/cursorless-org/src/vite-env.d.ts
rename to packages/app-web/src/vite-env.d.ts
diff --git a/packages/cheatsheet-local/tsconfig.json b/packages/app-web/tsconfig.json
similarity index 100%
rename from packages/cheatsheet-local/tsconfig.json
rename to packages/app-web/tsconfig.json
diff --git a/packages/cursorless-org/vite.config.ts b/packages/app-web/vite.config.ts
similarity index 100%
rename from packages/cursorless-org/vite.config.ts
rename to packages/app-web/vite.config.ts
diff --git a/packages/cheatsheet-local/README.md b/packages/lib-cheatsheet-local/README.md
similarity index 100%
rename from packages/cheatsheet-local/README.md
rename to packages/lib-cheatsheet-local/README.md
diff --git a/packages/cheatsheet-local/index.html b/packages/lib-cheatsheet-local/index.html
similarity index 100%
rename from packages/cheatsheet-local/index.html
rename to packages/lib-cheatsheet-local/index.html
diff --git a/packages/cheatsheet-local/jest.config.ts b/packages/lib-cheatsheet-local/jest.config.ts
similarity index 100%
rename from packages/cheatsheet-local/jest.config.ts
rename to packages/lib-cheatsheet-local/jest.config.ts
diff --git a/packages/cheatsheet-local/package.json b/packages/lib-cheatsheet-local/package.json
similarity index 100%
rename from packages/cheatsheet-local/package.json
rename to packages/lib-cheatsheet-local/package.json
diff --git a/packages/cheatsheet-local/src/app.tsx b/packages/lib-cheatsheet-local/src/app.tsx
similarity index 100%
rename from packages/cheatsheet-local/src/app.tsx
rename to packages/lib-cheatsheet-local/src/app.tsx
diff --git a/packages/cheatsheet-local/src/index.tsx b/packages/lib-cheatsheet-local/src/index.tsx
similarity index 100%
rename from packages/cheatsheet-local/src/index.tsx
rename to packages/lib-cheatsheet-local/src/index.tsx
diff --git a/packages/cheatsheet-local/src/styles.css b/packages/lib-cheatsheet-local/src/styles.css
similarity index 100%
rename from packages/cheatsheet-local/src/styles.css
rename to packages/lib-cheatsheet-local/src/styles.css
diff --git a/packages/cheatsheet-local/src/test/app.spec.tsx b/packages/lib-cheatsheet-local/src/test/app.spec.tsx
similarity index 100%
rename from packages/cheatsheet-local/src/test/app.spec.tsx
rename to packages/lib-cheatsheet-local/src/test/app.spec.tsx
diff --git a/packages/cheatsheet-local/src/test/styleMock.ts b/packages/lib-cheatsheet-local/src/test/styleMock.ts
similarity index 100%
rename from packages/cheatsheet-local/src/test/styleMock.ts
rename to packages/lib-cheatsheet-local/src/test/styleMock.ts
diff --git a/packages/cheatsheet/tsconfig.json b/packages/lib-cheatsheet-local/tsconfig.json
similarity index 100%
rename from packages/cheatsheet/tsconfig.json
rename to packages/lib-cheatsheet-local/tsconfig.json
diff --git a/packages/cheatsheet-local/vite.config.ts b/packages/lib-cheatsheet-local/vite.config.ts
similarity index 100%
rename from packages/cheatsheet-local/vite.config.ts
rename to packages/lib-cheatsheet-local/vite.config.ts
diff --git a/packages/cheatsheet/jest.config.ts b/packages/lib-cheatsheet/jest.config.ts
similarity index 100%
rename from packages/cheatsheet/jest.config.ts
rename to packages/lib-cheatsheet/jest.config.ts
diff --git a/packages/cheatsheet/package.json b/packages/lib-cheatsheet/package.json
similarity index 100%
rename from packages/cheatsheet/package.json
rename to packages/lib-cheatsheet/package.json
diff --git a/packages/cheatsheet/src/index.ts b/packages/lib-cheatsheet/src/index.ts
similarity index 100%
rename from packages/cheatsheet/src/index.ts
rename to packages/lib-cheatsheet/src/index.ts
diff --git a/packages/cheatsheet/src/lib/Cheatsheet.tsx b/packages/lib-cheatsheet/src/lib/Cheatsheet.tsx
similarity index 100%
rename from packages/cheatsheet/src/lib/Cheatsheet.tsx
rename to packages/lib-cheatsheet/src/lib/Cheatsheet.tsx
diff --git a/packages/cheatsheet/src/lib/CheatsheetLegendSection.tsx b/packages/lib-cheatsheet/src/lib/CheatsheetLegendSection.tsx
similarity index 100%
rename from packages/cheatsheet/src/lib/CheatsheetLegendSection.tsx
rename to packages/lib-cheatsheet/src/lib/CheatsheetLegendSection.tsx
diff --git a/packages/cheatsheet/src/lib/CheatsheetListSection.tsx b/packages/lib-cheatsheet/src/lib/CheatsheetListSection.tsx
similarity index 100%
rename from packages/cheatsheet/src/lib/CheatsheetListSection.tsx
rename to packages/lib-cheatsheet/src/lib/CheatsheetListSection.tsx
diff --git a/packages/cheatsheet/src/lib/CheatsheetNotesSection.tsx b/packages/lib-cheatsheet/src/lib/CheatsheetNotesSection.tsx
similarity index 100%
rename from packages/cheatsheet/src/lib/CheatsheetNotesSection.tsx
rename to packages/lib-cheatsheet/src/lib/CheatsheetNotesSection.tsx
diff --git a/packages/cheatsheet/src/lib/cheatsheet.css b/packages/lib-cheatsheet/src/lib/cheatsheet.css
similarity index 100%
rename from packages/cheatsheet/src/lib/cheatsheet.css
rename to packages/lib-cheatsheet/src/lib/cheatsheet.css
diff --git a/packages/cheatsheet/src/lib/cheatsheet.types.tsx b/packages/lib-cheatsheet/src/lib/cheatsheet.types.tsx
similarity index 100%
rename from packages/cheatsheet/src/lib/cheatsheet.types.tsx
rename to packages/lib-cheatsheet/src/lib/cheatsheet.types.tsx
diff --git a/packages/cheatsheet/src/lib/sampleSpokenFormInfos/defaults.json b/packages/lib-cheatsheet/src/lib/sampleSpokenFormInfos/defaults.json
similarity index 100%
rename from packages/cheatsheet/src/lib/sampleSpokenFormInfos/defaults.json
rename to packages/lib-cheatsheet/src/lib/sampleSpokenFormInfos/defaults.json
diff --git a/packages/cheatsheet/src/lib/utils/SmartLink.tsx b/packages/lib-cheatsheet/src/lib/utils/SmartLink.tsx
similarity index 100%
rename from packages/cheatsheet/src/lib/utils/SmartLink.tsx
rename to packages/lib-cheatsheet/src/lib/utils/SmartLink.tsx
diff --git a/packages/cheatsheet/src/lib/utils/applyBootstrapTheme.ts b/packages/lib-cheatsheet/src/lib/utils/applyBootstrapTheme.ts
similarity index 100%
rename from packages/cheatsheet/src/lib/utils/applyBootstrapTheme.ts
rename to packages/lib-cheatsheet/src/lib/utils/applyBootstrapTheme.ts
diff --git a/packages/cheatsheet/src/lib/utils/cheatsheetLegendData.tsx b/packages/lib-cheatsheet/src/lib/utils/cheatsheetLegendData.tsx
similarity index 100%
rename from packages/cheatsheet/src/lib/utils/cheatsheetLegendData.tsx
rename to packages/lib-cheatsheet/src/lib/utils/cheatsheetLegendData.tsx
diff --git a/packages/cheatsheet/src/lib/utils/fakeCheatsheetInfo.ts b/packages/lib-cheatsheet/src/lib/utils/fakeCheatsheetInfo.ts
similarity index 100%
rename from packages/cheatsheet/src/lib/utils/fakeCheatsheetInfo.ts
rename to packages/lib-cheatsheet/src/lib/utils/fakeCheatsheetInfo.ts
diff --git a/packages/cheatsheet/src/lib/utils/formatCaptures.tsx b/packages/lib-cheatsheet/src/lib/utils/formatCaptures.tsx
similarity index 100%
rename from packages/cheatsheet/src/lib/utils/formatCaptures.tsx
rename to packages/lib-cheatsheet/src/lib/utils/formatCaptures.tsx
diff --git a/packages/cheatsheet/src/lib/utils/useIsHighlighted.ts b/packages/lib-cheatsheet/src/lib/utils/useIsHighlighted.ts
similarity index 100%
rename from packages/cheatsheet/src/lib/utils/useIsHighlighted.ts
rename to packages/lib-cheatsheet/src/lib/utils/useIsHighlighted.ts
diff --git a/packages/cheatsheet/src/test/cheatsheet.spec.tsx b/packages/lib-cheatsheet/src/test/cheatsheet.spec.tsx
similarity index 100%
rename from packages/cheatsheet/src/test/cheatsheet.spec.tsx
rename to packages/lib-cheatsheet/src/test/cheatsheet.spec.tsx
diff --git a/packages/cheatsheet/src/test/formatCaptures.spec.tsx b/packages/lib-cheatsheet/src/test/formatCaptures.spec.tsx
similarity index 100%
rename from packages/cheatsheet/src/test/formatCaptures.spec.tsx
rename to packages/lib-cheatsheet/src/test/formatCaptures.spec.tsx
diff --git a/packages/cheatsheet/src/test/styleMock.ts b/packages/lib-cheatsheet/src/test/styleMock.ts
similarity index 100%
rename from packages/cheatsheet/src/test/styleMock.ts
rename to packages/lib-cheatsheet/src/test/styleMock.ts
diff --git a/packages/cursorless-org/tsconfig.json b/packages/lib-cheatsheet/tsconfig.json
similarity index 100%
rename from packages/cursorless-org/tsconfig.json
rename to packages/lib-cheatsheet/tsconfig.json
diff --git a/packages/common/eslintConfig.ts b/packages/lib-common/eslintConfig.ts
similarity index 100%
rename from packages/common/eslintConfig.ts
rename to packages/lib-common/eslintConfig.ts
diff --git a/packages/common/package.json b/packages/lib-common/package.json
similarity index 100%
rename from packages/common/package.json
rename to packages/lib-common/package.json
diff --git a/packages/common/scripts/c-tsx.js b/packages/lib-common/scripts/c-tsx.js
old mode 100755
new mode 100644
similarity index 100%
rename from packages/common/scripts/c-tsx.js
rename to packages/lib-common/scripts/c-tsx.js
diff --git a/packages/common/src/Debouncer.ts b/packages/lib-common/src/Debouncer.ts
similarity index 100%
rename from packages/common/src/Debouncer.ts
rename to packages/lib-common/src/Debouncer.ts
diff --git a/packages/common/src/FakeCommandServerApi.ts b/packages/lib-common/src/FakeCommandServerApi.ts
similarity index 100%
rename from packages/common/src/FakeCommandServerApi.ts
rename to packages/lib-common/src/FakeCommandServerApi.ts
diff --git a/packages/common/src/StoredTargetKey.ts b/packages/lib-common/src/StoredTargetKey.ts
similarity index 100%
rename from packages/common/src/StoredTargetKey.ts
rename to packages/lib-common/src/StoredTargetKey.ts
diff --git a/packages/common/src/constants.ts b/packages/lib-common/src/constants.ts
similarity index 100%
rename from packages/common/src/constants.ts
rename to packages/lib-common/src/constants.ts
diff --git a/packages/common/src/cursorlessCommandIds.ts b/packages/lib-common/src/cursorlessCommandIds.ts
similarity index 100%
rename from packages/common/src/cursorlessCommandIds.ts
rename to packages/lib-common/src/cursorlessCommandIds.ts
diff --git a/packages/common/src/cursorlessSideBarIds.ts b/packages/lib-common/src/cursorlessSideBarIds.ts
similarity index 100%
rename from packages/common/src/cursorlessSideBarIds.ts
rename to packages/lib-common/src/cursorlessSideBarIds.ts
diff --git a/packages/common/src/errors.ts b/packages/lib-common/src/errors.ts
similarity index 100%
rename from packages/common/src/errors.ts
rename to packages/lib-common/src/errors.ts
diff --git a/packages/common/src/extensionDependencies.ts b/packages/lib-common/src/extensionDependencies.ts
similarity index 100%
rename from packages/common/src/extensionDependencies.ts
rename to packages/lib-common/src/extensionDependencies.ts
diff --git a/packages/common/src/ide/PassthroughIDE.ts b/packages/lib-common/src/ide/PassthroughIDE.ts
similarity index 100%
rename from packages/common/src/ide/PassthroughIDE.ts
rename to packages/lib-common/src/ide/PassthroughIDE.ts
diff --git a/packages/common/src/ide/fake/FakeCapabilities.ts b/packages/lib-common/src/ide/fake/FakeCapabilities.ts
similarity index 100%
rename from packages/common/src/ide/fake/FakeCapabilities.ts
rename to packages/lib-common/src/ide/fake/FakeCapabilities.ts
diff --git a/packages/common/src/ide/fake/FakeClipboard.ts b/packages/lib-common/src/ide/fake/FakeClipboard.ts
similarity index 100%
rename from packages/common/src/ide/fake/FakeClipboard.ts
rename to packages/lib-common/src/ide/fake/FakeClipboard.ts
diff --git a/packages/common/src/ide/fake/FakeConfiguration.ts b/packages/lib-common/src/ide/fake/FakeConfiguration.ts
similarity index 100%
rename from packages/common/src/ide/fake/FakeConfiguration.ts
rename to packages/lib-common/src/ide/fake/FakeConfiguration.ts
diff --git a/packages/common/src/ide/fake/FakeIDE.ts b/packages/lib-common/src/ide/fake/FakeIDE.ts
similarity index 100%
rename from packages/common/src/ide/fake/FakeIDE.ts
rename to packages/lib-common/src/ide/fake/FakeIDE.ts
diff --git a/packages/common/src/ide/fake/FakeKeyValueStore.ts b/packages/lib-common/src/ide/fake/FakeKeyValueStore.ts
similarity index 100%
rename from packages/common/src/ide/fake/FakeKeyValueStore.ts
rename to packages/lib-common/src/ide/fake/FakeKeyValueStore.ts
diff --git a/packages/common/src/ide/fake/FakeMessages.ts b/packages/lib-common/src/ide/fake/FakeMessages.ts
similarity index 100%
rename from packages/common/src/ide/fake/FakeMessages.ts
rename to packages/lib-common/src/ide/fake/FakeMessages.ts
diff --git a/packages/common/src/ide/inMemoryTextEditor/InMemoryTextDocument.ts b/packages/lib-common/src/ide/inMemoryTextEditor/InMemoryTextDocument.ts
similarity index 100%
rename from packages/common/src/ide/inMemoryTextEditor/InMemoryTextDocument.ts
rename to packages/lib-common/src/ide/inMemoryTextEditor/InMemoryTextDocument.ts
diff --git a/packages/common/src/ide/inMemoryTextEditor/InMemoryTextEditor.ts b/packages/lib-common/src/ide/inMemoryTextEditor/InMemoryTextEditor.ts
similarity index 100%
rename from packages/common/src/ide/inMemoryTextEditor/InMemoryTextEditor.ts
rename to packages/lib-common/src/ide/inMemoryTextEditor/InMemoryTextEditor.ts
diff --git a/packages/common/src/ide/inMemoryTextEditor/InMemoryTextLine.ts b/packages/lib-common/src/ide/inMemoryTextEditor/InMemoryTextLine.ts
similarity index 100%
rename from packages/common/src/ide/inMemoryTextEditor/InMemoryTextLine.ts
rename to packages/lib-common/src/ide/inMemoryTextEditor/InMemoryTextLine.ts
diff --git a/packages/common/src/ide/inMemoryTextEditor/performEdits.ts b/packages/lib-common/src/ide/inMemoryTextEditor/performEdits.ts
similarity index 100%
rename from packages/common/src/ide/inMemoryTextEditor/performEdits.ts
rename to packages/lib-common/src/ide/inMemoryTextEditor/performEdits.ts
diff --git a/packages/common/src/ide/inMemoryTextEditor/test/InMemoryTextDocument.test.ts b/packages/lib-common/src/ide/inMemoryTextEditor/test/InMemoryTextDocument.test.ts
similarity index 100%
rename from packages/common/src/ide/inMemoryTextEditor/test/InMemoryTextDocument.test.ts
rename to packages/lib-common/src/ide/inMemoryTextEditor/test/InMemoryTextDocument.test.ts
diff --git a/packages/common/src/ide/inMemoryTextEditor/test/InMemoryTextDocumentEdit.test.ts b/packages/lib-common/src/ide/inMemoryTextEditor/test/InMemoryTextDocumentEdit.test.ts
similarity index 100%
rename from packages/common/src/ide/inMemoryTextEditor/test/InMemoryTextDocumentEdit.test.ts
rename to packages/lib-common/src/ide/inMemoryTextEditor/test/InMemoryTextDocumentEdit.test.ts
diff --git a/packages/common/src/ide/inMemoryTextEditor/test/InMemoryTextDocumentLineAt.test.ts b/packages/lib-common/src/ide/inMemoryTextEditor/test/InMemoryTextDocumentLineAt.test.ts
similarity index 100%
rename from packages/common/src/ide/inMemoryTextEditor/test/InMemoryTextDocumentLineAt.test.ts
rename to packages/lib-common/src/ide/inMemoryTextEditor/test/InMemoryTextDocumentLineAt.test.ts
diff --git a/packages/common/src/ide/inMemoryTextEditor/test/createTestDocument.ts b/packages/lib-common/src/ide/inMemoryTextEditor/test/createTestDocument.ts
similarity index 100%
rename from packages/common/src/ide/inMemoryTextEditor/test/createTestDocument.ts
rename to packages/lib-common/src/ide/inMemoryTextEditor/test/createTestDocument.ts
diff --git a/packages/common/src/ide/normalized/NormalizedIDE.ts b/packages/lib-common/src/ide/normalized/NormalizedIDE.ts
similarity index 100%
rename from packages/common/src/ide/normalized/NormalizedIDE.ts
rename to packages/lib-common/src/ide/normalized/NormalizedIDE.ts
diff --git a/packages/common/src/ide/spy/SpyIDE.ts b/packages/lib-common/src/ide/spy/SpyIDE.ts
similarity index 100%
rename from packages/common/src/ide/spy/SpyIDE.ts
rename to packages/lib-common/src/ide/spy/SpyIDE.ts
diff --git a/packages/common/src/ide/spy/SpyMessages.ts b/packages/lib-common/src/ide/spy/SpyMessages.ts
similarity index 100%
rename from packages/common/src/ide/spy/SpyMessages.ts
rename to packages/lib-common/src/ide/spy/SpyMessages.ts
diff --git a/packages/common/src/ide/types/Capabilities.ts b/packages/lib-common/src/ide/types/Capabilities.ts
similarity index 100%
rename from packages/common/src/ide/types/Capabilities.ts
rename to packages/lib-common/src/ide/types/Capabilities.ts
diff --git a/packages/common/src/ide/types/Clipboard.ts b/packages/lib-common/src/ide/types/Clipboard.ts
similarity index 100%
rename from packages/common/src/ide/types/Clipboard.ts
rename to packages/lib-common/src/ide/types/Clipboard.ts
diff --git a/packages/common/src/ide/types/CommandHistoryStorage.ts b/packages/lib-common/src/ide/types/CommandHistoryStorage.ts
similarity index 100%
rename from packages/common/src/ide/types/CommandHistoryStorage.ts
rename to packages/lib-common/src/ide/types/CommandHistoryStorage.ts
diff --git a/packages/common/src/ide/types/CommandId.ts b/packages/lib-common/src/ide/types/CommandId.ts
similarity index 100%
rename from packages/common/src/ide/types/CommandId.ts
rename to packages/lib-common/src/ide/types/CommandId.ts
diff --git a/packages/common/src/ide/types/Configuration.ts b/packages/lib-common/src/ide/types/Configuration.ts
similarity index 100%
rename from packages/common/src/ide/types/Configuration.ts
rename to packages/lib-common/src/ide/types/Configuration.ts
diff --git a/packages/common/src/ide/types/Events.ts b/packages/lib-common/src/ide/types/Events.ts
similarity index 100%
rename from packages/common/src/ide/types/Events.ts
rename to packages/lib-common/src/ide/types/Events.ts
diff --git a/packages/common/src/ide/types/FileSystem.types.ts b/packages/lib-common/src/ide/types/FileSystem.types.ts
similarity index 100%
rename from packages/common/src/ide/types/FileSystem.types.ts
rename to packages/lib-common/src/ide/types/FileSystem.types.ts
diff --git a/packages/common/src/ide/types/FlashDescriptor.ts b/packages/lib-common/src/ide/types/FlashDescriptor.ts
similarity index 100%
rename from packages/common/src/ide/types/FlashDescriptor.ts
rename to packages/lib-common/src/ide/types/FlashDescriptor.ts
diff --git a/packages/common/src/ide/types/HatStability.ts b/packages/lib-common/src/ide/types/HatStability.ts
similarity index 100%
rename from packages/common/src/ide/types/HatStability.ts
rename to packages/lib-common/src/ide/types/HatStability.ts
diff --git a/packages/common/src/ide/types/Hats.ts b/packages/lib-common/src/ide/types/Hats.ts
similarity index 100%
rename from packages/common/src/ide/types/Hats.ts
rename to packages/lib-common/src/ide/types/Hats.ts
diff --git a/packages/common/src/ide/types/KeyValueStore.ts b/packages/lib-common/src/ide/types/KeyValueStore.ts
similarity index 100%
rename from packages/common/src/ide/types/KeyValueStore.ts
rename to packages/lib-common/src/ide/types/KeyValueStore.ts
diff --git a/packages/common/src/ide/types/Messages.ts b/packages/lib-common/src/ide/types/Messages.ts
similarity index 100%
rename from packages/common/src/ide/types/Messages.ts
rename to packages/lib-common/src/ide/types/Messages.ts
diff --git a/packages/common/src/ide/types/Paths.ts b/packages/lib-common/src/ide/types/Paths.ts
similarity index 100%
rename from packages/common/src/ide/types/Paths.ts
rename to packages/lib-common/src/ide/types/Paths.ts
diff --git a/packages/common/src/ide/types/QuickPickOptions.ts b/packages/lib-common/src/ide/types/QuickPickOptions.ts
similarity index 100%
rename from packages/common/src/ide/types/QuickPickOptions.ts
rename to packages/lib-common/src/ide/types/QuickPickOptions.ts
diff --git a/packages/common/src/ide/types/README.md b/packages/lib-common/src/ide/types/README.md
similarity index 100%
rename from packages/common/src/ide/types/README.md
rename to packages/lib-common/src/ide/types/README.md
diff --git a/packages/common/src/ide/types/RawTreeSitterQueryProvider.ts b/packages/lib-common/src/ide/types/RawTreeSitterQueryProvider.ts
similarity index 100%
rename from packages/common/src/ide/types/RawTreeSitterQueryProvider.ts
rename to packages/lib-common/src/ide/types/RawTreeSitterQueryProvider.ts
diff --git a/packages/common/src/ide/types/TutorialContentProvider.ts b/packages/lib-common/src/ide/types/TutorialContentProvider.ts
similarity index 100%
rename from packages/common/src/ide/types/TutorialContentProvider.ts
rename to packages/lib-common/src/ide/types/TutorialContentProvider.ts
diff --git a/packages/common/src/ide/types/events.types.ts b/packages/lib-common/src/ide/types/events.types.ts
similarity index 100%
rename from packages/common/src/ide/types/events.types.ts
rename to packages/lib-common/src/ide/types/events.types.ts
diff --git a/packages/common/src/ide/types/hatStyles.types.ts b/packages/lib-common/src/ide/types/hatStyles.types.ts
similarity index 100%
rename from packages/common/src/ide/types/hatStyles.types.ts
rename to packages/lib-common/src/ide/types/hatStyles.types.ts
diff --git a/packages/common/src/ide/types/ide.types.ts b/packages/lib-common/src/ide/types/ide.types.ts
similarity index 100%
rename from packages/common/src/ide/types/ide.types.ts
rename to packages/lib-common/src/ide/types/ide.types.ts
diff --git a/packages/common/src/ide/util/messages.ts b/packages/lib-common/src/ide/util/messages.ts
similarity index 100%
rename from packages/common/src/ide/util/messages.ts
rename to packages/lib-common/src/ide/util/messages.ts
diff --git a/packages/common/src/index.ts b/packages/lib-common/src/index.ts
similarity index 100%
rename from packages/common/src/index.ts
rename to packages/lib-common/src/index.ts
diff --git a/packages/common/src/scopeSupportFacets/PlaintextScopeSupportFacetInfos.ts b/packages/lib-common/src/scopeSupportFacets/PlaintextScopeSupportFacetInfos.ts
similarity index 100%
rename from packages/common/src/scopeSupportFacets/PlaintextScopeSupportFacetInfos.ts
rename to packages/lib-common/src/scopeSupportFacets/PlaintextScopeSupportFacetInfos.ts
diff --git a/packages/common/src/scopeSupportFacets/c.ts b/packages/lib-common/src/scopeSupportFacets/c.ts
similarity index 100%
rename from packages/common/src/scopeSupportFacets/c.ts
rename to packages/lib-common/src/scopeSupportFacets/c.ts
diff --git a/packages/common/src/scopeSupportFacets/clojure.ts b/packages/lib-common/src/scopeSupportFacets/clojure.ts
similarity index 100%
rename from packages/common/src/scopeSupportFacets/clojure.ts
rename to packages/lib-common/src/scopeSupportFacets/clojure.ts
diff --git a/packages/common/src/scopeSupportFacets/cpp.ts b/packages/lib-common/src/scopeSupportFacets/cpp.ts
similarity index 100%
rename from packages/common/src/scopeSupportFacets/cpp.ts
rename to packages/lib-common/src/scopeSupportFacets/cpp.ts
diff --git a/packages/common/src/scopeSupportFacets/csharp.ts b/packages/lib-common/src/scopeSupportFacets/csharp.ts
similarity index 100%
rename from packages/common/src/scopeSupportFacets/csharp.ts
rename to packages/lib-common/src/scopeSupportFacets/csharp.ts
diff --git a/packages/common/src/scopeSupportFacets/css.ts b/packages/lib-common/src/scopeSupportFacets/css.ts
similarity index 100%
rename from packages/common/src/scopeSupportFacets/css.ts
rename to packages/lib-common/src/scopeSupportFacets/css.ts
diff --git a/packages/common/src/scopeSupportFacets/dart.ts b/packages/lib-common/src/scopeSupportFacets/dart.ts
similarity index 100%
rename from packages/common/src/scopeSupportFacets/dart.ts
rename to packages/lib-common/src/scopeSupportFacets/dart.ts
diff --git a/packages/common/src/scopeSupportFacets/go.ts b/packages/lib-common/src/scopeSupportFacets/go.ts
similarity index 100%
rename from packages/common/src/scopeSupportFacets/go.ts
rename to packages/lib-common/src/scopeSupportFacets/go.ts
diff --git a/packages/common/src/scopeSupportFacets/html.ts b/packages/lib-common/src/scopeSupportFacets/html.ts
similarity index 100%
rename from packages/common/src/scopeSupportFacets/html.ts
rename to packages/lib-common/src/scopeSupportFacets/html.ts
diff --git a/packages/common/src/scopeSupportFacets/java.ts b/packages/lib-common/src/scopeSupportFacets/java.ts
similarity index 100%
rename from packages/common/src/scopeSupportFacets/java.ts
rename to packages/lib-common/src/scopeSupportFacets/java.ts
diff --git a/packages/common/src/scopeSupportFacets/javascript.ts b/packages/lib-common/src/scopeSupportFacets/javascript.ts
similarity index 100%
rename from packages/common/src/scopeSupportFacets/javascript.ts
rename to packages/lib-common/src/scopeSupportFacets/javascript.ts
diff --git a/packages/common/src/scopeSupportFacets/javascriptreact.ts b/packages/lib-common/src/scopeSupportFacets/javascriptreact.ts
similarity index 100%
rename from packages/common/src/scopeSupportFacets/javascriptreact.ts
rename to packages/lib-common/src/scopeSupportFacets/javascriptreact.ts
diff --git a/packages/common/src/scopeSupportFacets/json.ts b/packages/lib-common/src/scopeSupportFacets/json.ts
similarity index 100%
rename from packages/common/src/scopeSupportFacets/json.ts
rename to packages/lib-common/src/scopeSupportFacets/json.ts
diff --git a/packages/common/src/scopeSupportFacets/jsonc.ts b/packages/lib-common/src/scopeSupportFacets/jsonc.ts
similarity index 100%
rename from packages/common/src/scopeSupportFacets/jsonc.ts
rename to packages/lib-common/src/scopeSupportFacets/jsonc.ts
diff --git a/packages/common/src/scopeSupportFacets/jsonl.ts b/packages/lib-common/src/scopeSupportFacets/jsonl.ts
similarity index 100%
rename from packages/common/src/scopeSupportFacets/jsonl.ts
rename to packages/lib-common/src/scopeSupportFacets/jsonl.ts
diff --git a/packages/common/src/scopeSupportFacets/kotlin.ts b/packages/lib-common/src/scopeSupportFacets/kotlin.ts
similarity index 100%
rename from packages/common/src/scopeSupportFacets/kotlin.ts
rename to packages/lib-common/src/scopeSupportFacets/kotlin.ts
diff --git a/packages/common/src/scopeSupportFacets/languageScopeSupport.ts b/packages/lib-common/src/scopeSupportFacets/languageScopeSupport.ts
similarity index 100%
rename from packages/common/src/scopeSupportFacets/languageScopeSupport.ts
rename to packages/lib-common/src/scopeSupportFacets/languageScopeSupport.ts
diff --git a/packages/common/src/scopeSupportFacets/latex.ts b/packages/lib-common/src/scopeSupportFacets/latex.ts
similarity index 100%
rename from packages/common/src/scopeSupportFacets/latex.ts
rename to packages/lib-common/src/scopeSupportFacets/latex.ts
diff --git a/packages/common/src/scopeSupportFacets/lua.ts b/packages/lib-common/src/scopeSupportFacets/lua.ts
similarity index 100%
rename from packages/common/src/scopeSupportFacets/lua.ts
rename to packages/lib-common/src/scopeSupportFacets/lua.ts
diff --git a/packages/common/src/scopeSupportFacets/markdown.ts b/packages/lib-common/src/scopeSupportFacets/markdown.ts
similarity index 100%
rename from packages/common/src/scopeSupportFacets/markdown.ts
rename to packages/lib-common/src/scopeSupportFacets/markdown.ts
diff --git a/packages/common/src/scopeSupportFacets/php.ts b/packages/lib-common/src/scopeSupportFacets/php.ts
similarity index 100%
rename from packages/common/src/scopeSupportFacets/php.ts
rename to packages/lib-common/src/scopeSupportFacets/php.ts
diff --git a/packages/common/src/scopeSupportFacets/properties.ts b/packages/lib-common/src/scopeSupportFacets/properties.ts
similarity index 100%
rename from packages/common/src/scopeSupportFacets/properties.ts
rename to packages/lib-common/src/scopeSupportFacets/properties.ts
diff --git a/packages/common/src/scopeSupportFacets/python.ts b/packages/lib-common/src/scopeSupportFacets/python.ts
similarity index 100%
rename from packages/common/src/scopeSupportFacets/python.ts
rename to packages/lib-common/src/scopeSupportFacets/python.ts
diff --git a/packages/common/src/scopeSupportFacets/r.ts b/packages/lib-common/src/scopeSupportFacets/r.ts
similarity index 100%
rename from packages/common/src/scopeSupportFacets/r.ts
rename to packages/lib-common/src/scopeSupportFacets/r.ts
diff --git a/packages/common/src/scopeSupportFacets/ruby.ts b/packages/lib-common/src/scopeSupportFacets/ruby.ts
similarity index 100%
rename from packages/common/src/scopeSupportFacets/ruby.ts
rename to packages/lib-common/src/scopeSupportFacets/ruby.ts
diff --git a/packages/common/src/scopeSupportFacets/rust.ts b/packages/lib-common/src/scopeSupportFacets/rust.ts
similarity index 100%
rename from packages/common/src/scopeSupportFacets/rust.ts
rename to packages/lib-common/src/scopeSupportFacets/rust.ts
diff --git a/packages/common/src/scopeSupportFacets/scala.ts b/packages/lib-common/src/scopeSupportFacets/scala.ts
similarity index 100%
rename from packages/common/src/scopeSupportFacets/scala.ts
rename to packages/lib-common/src/scopeSupportFacets/scala.ts
diff --git a/packages/common/src/scopeSupportFacets/scm.ts b/packages/lib-common/src/scopeSupportFacets/scm.ts
similarity index 100%
rename from packages/common/src/scopeSupportFacets/scm.ts
rename to packages/lib-common/src/scopeSupportFacets/scm.ts
diff --git a/packages/common/src/scopeSupportFacets/scopeSupportFacetInfos.ts b/packages/lib-common/src/scopeSupportFacets/scopeSupportFacetInfos.ts
similarity index 100%
rename from packages/common/src/scopeSupportFacets/scopeSupportFacetInfos.ts
rename to packages/lib-common/src/scopeSupportFacets/scopeSupportFacetInfos.ts
diff --git a/packages/common/src/scopeSupportFacets/scopeSupportFacets.types.ts b/packages/lib-common/src/scopeSupportFacets/scopeSupportFacets.types.ts
similarity index 100%
rename from packages/common/src/scopeSupportFacets/scopeSupportFacets.types.ts
rename to packages/lib-common/src/scopeSupportFacets/scopeSupportFacets.types.ts
diff --git a/packages/common/src/scopeSupportFacets/scss.ts b/packages/lib-common/src/scopeSupportFacets/scss.ts
similarity index 100%
rename from packages/common/src/scopeSupportFacets/scss.ts
rename to packages/lib-common/src/scopeSupportFacets/scss.ts
diff --git a/packages/common/src/scopeSupportFacets/talon.ts b/packages/lib-common/src/scopeSupportFacets/talon.ts
similarity index 100%
rename from packages/common/src/scopeSupportFacets/talon.ts
rename to packages/lib-common/src/scopeSupportFacets/talon.ts
diff --git a/packages/common/src/scopeSupportFacets/talonList.ts b/packages/lib-common/src/scopeSupportFacets/talonList.ts
similarity index 100%
rename from packages/common/src/scopeSupportFacets/talonList.ts
rename to packages/lib-common/src/scopeSupportFacets/talonList.ts
diff --git a/packages/common/src/scopeSupportFacets/typescript.ts b/packages/lib-common/src/scopeSupportFacets/typescript.ts
similarity index 100%
rename from packages/common/src/scopeSupportFacets/typescript.ts
rename to packages/lib-common/src/scopeSupportFacets/typescript.ts
diff --git a/packages/common/src/scopeSupportFacets/typescriptreact.ts b/packages/lib-common/src/scopeSupportFacets/typescriptreact.ts
similarity index 100%
rename from packages/common/src/scopeSupportFacets/typescriptreact.ts
rename to packages/lib-common/src/scopeSupportFacets/typescriptreact.ts
diff --git a/packages/common/src/scopeSupportFacets/xml.ts b/packages/lib-common/src/scopeSupportFacets/xml.ts
similarity index 100%
rename from packages/common/src/scopeSupportFacets/xml.ts
rename to packages/lib-common/src/scopeSupportFacets/xml.ts
diff --git a/packages/common/src/scopeSupportFacets/yaml.ts b/packages/lib-common/src/scopeSupportFacets/yaml.ts
similarity index 100%
rename from packages/common/src/scopeSupportFacets/yaml.ts
rename to packages/lib-common/src/scopeSupportFacets/yaml.ts
diff --git a/packages/common/src/scopeVisualizerUtil/decorationStyle.types.ts b/packages/lib-common/src/scopeVisualizerUtil/decorationStyle.types.ts
similarity index 100%
rename from packages/common/src/scopeVisualizerUtil/decorationStyle.types.ts
rename to packages/lib-common/src/scopeVisualizerUtil/decorationStyle.types.ts
diff --git a/packages/common/src/scopeVisualizerUtil/decorationUtil.ts b/packages/lib-common/src/scopeVisualizerUtil/decorationUtil.ts
similarity index 100%
rename from packages/common/src/scopeVisualizerUtil/decorationUtil.ts
rename to packages/lib-common/src/scopeVisualizerUtil/decorationUtil.ts
diff --git a/packages/common/src/scopeVisualizerUtil/generateDecorationsForCharacterRange/generateDecorationsForCharacterRange.ts b/packages/lib-common/src/scopeVisualizerUtil/generateDecorationsForCharacterRange/generateDecorationsForCharacterRange.ts
similarity index 100%
rename from packages/common/src/scopeVisualizerUtil/generateDecorationsForCharacterRange/generateDecorationsForCharacterRange.ts
rename to packages/lib-common/src/scopeVisualizerUtil/generateDecorationsForCharacterRange/generateDecorationsForCharacterRange.ts
diff --git a/packages/common/src/scopeVisualizerUtil/generateDecorationsForCharacterRange/generateLineInfos.ts b/packages/lib-common/src/scopeVisualizerUtil/generateDecorationsForCharacterRange/generateLineInfos.ts
similarity index 100%
rename from packages/common/src/scopeVisualizerUtil/generateDecorationsForCharacterRange/generateLineInfos.ts
rename to packages/lib-common/src/scopeVisualizerUtil/generateDecorationsForCharacterRange/generateLineInfos.ts
diff --git a/packages/common/src/scopeVisualizerUtil/generateDecorationsForCharacterRange/handleMultipleLines.test.ts b/packages/lib-common/src/scopeVisualizerUtil/generateDecorationsForCharacterRange/handleMultipleLines.test.ts
similarity index 100%
rename from packages/common/src/scopeVisualizerUtil/generateDecorationsForCharacterRange/handleMultipleLines.test.ts
rename to packages/lib-common/src/scopeVisualizerUtil/generateDecorationsForCharacterRange/handleMultipleLines.test.ts
diff --git a/packages/common/src/scopeVisualizerUtil/generateDecorationsForCharacterRange/handleMultipleLines.ts b/packages/lib-common/src/scopeVisualizerUtil/generateDecorationsForCharacterRange/handleMultipleLines.ts
similarity index 100%
rename from packages/common/src/scopeVisualizerUtil/generateDecorationsForCharacterRange/handleMultipleLines.ts
rename to packages/lib-common/src/scopeVisualizerUtil/generateDecorationsForCharacterRange/handleMultipleLines.ts
diff --git a/packages/common/src/scopeVisualizerUtil/generateDecorationsForCharacterRange/index.ts b/packages/lib-common/src/scopeVisualizerUtil/generateDecorationsForCharacterRange/index.ts
similarity index 100%
rename from packages/common/src/scopeVisualizerUtil/generateDecorationsForCharacterRange/index.ts
rename to packages/lib-common/src/scopeVisualizerUtil/generateDecorationsForCharacterRange/index.ts
diff --git a/packages/common/src/scopeVisualizerUtil/generateDecorationsForLineRange.ts b/packages/lib-common/src/scopeVisualizerUtil/generateDecorationsForLineRange.ts
similarity index 100%
rename from packages/common/src/scopeVisualizerUtil/generateDecorationsForLineRange.ts
rename to packages/lib-common/src/scopeVisualizerUtil/generateDecorationsForLineRange.ts
diff --git a/packages/common/src/testUtil/TestCaseSnapshot.ts b/packages/lib-common/src/testUtil/TestCaseSnapshot.ts
similarity index 100%
rename from packages/common/src/testUtil/TestCaseSnapshot.ts
rename to packages/lib-common/src/testUtil/TestCaseSnapshot.ts
diff --git a/packages/common/src/testUtil/asyncSafety.ts b/packages/lib-common/src/testUtil/asyncSafety.ts
similarity index 100%
rename from packages/common/src/testUtil/asyncSafety.ts
rename to packages/lib-common/src/testUtil/asyncSafety.ts
diff --git a/packages/common/src/testUtil/extractTargetedMarks.ts b/packages/lib-common/src/testUtil/extractTargetedMarks.ts
similarity index 100%
rename from packages/common/src/testUtil/extractTargetedMarks.ts
rename to packages/lib-common/src/testUtil/extractTargetedMarks.ts
diff --git a/packages/common/src/testUtil/fromPlainObject.ts b/packages/lib-common/src/testUtil/fromPlainObject.ts
similarity index 100%
rename from packages/common/src/testUtil/fromPlainObject.ts
rename to packages/lib-common/src/testUtil/fromPlainObject.ts
diff --git a/packages/common/src/testUtil/getSnapshotForComparison.ts b/packages/lib-common/src/testUtil/getSnapshotForComparison.ts
similarity index 100%
rename from packages/common/src/testUtil/getSnapshotForComparison.ts
rename to packages/lib-common/src/testUtil/getSnapshotForComparison.ts
diff --git a/packages/common/src/testUtil/serialize.ts b/packages/lib-common/src/testUtil/serialize.ts
similarity index 100%
rename from packages/common/src/testUtil/serialize.ts
rename to packages/lib-common/src/testUtil/serialize.ts
diff --git a/packages/common/src/testUtil/serializeTestFixture.ts b/packages/lib-common/src/testUtil/serializeTestFixture.ts
similarity index 100%
rename from packages/common/src/testUtil/serializeTestFixture.ts
rename to packages/lib-common/src/testUtil/serializeTestFixture.ts
diff --git a/packages/common/src/testUtil/shouldUpdateFixtures.ts b/packages/lib-common/src/testUtil/shouldUpdateFixtures.ts
similarity index 100%
rename from packages/common/src/testUtil/shouldUpdateFixtures.ts
rename to packages/lib-common/src/testUtil/shouldUpdateFixtures.ts
diff --git a/packages/common/src/testUtil/spyToPlainObject.ts b/packages/lib-common/src/testUtil/spyToPlainObject.ts
similarity index 100%
rename from packages/common/src/testUtil/spyToPlainObject.ts
rename to packages/lib-common/src/testUtil/spyToPlainObject.ts
diff --git a/packages/common/src/testUtil/testConstants.ts b/packages/lib-common/src/testUtil/testConstants.ts
similarity index 100%
rename from packages/common/src/testUtil/testConstants.ts
rename to packages/lib-common/src/testUtil/testConstants.ts
diff --git a/packages/common/src/tooling/jest.ts b/packages/lib-common/src/tooling/jest.ts
similarity index 100%
rename from packages/common/src/tooling/jest.ts
rename to packages/lib-common/src/tooling/jest.ts
diff --git a/packages/common/src/tooling/vite.ts b/packages/lib-common/src/tooling/vite.ts
similarity index 100%
rename from packages/common/src/tooling/vite.ts
rename to packages/lib-common/src/tooling/vite.ts
diff --git a/packages/common/src/tooling/viteHtmlParamsPlugin.ts b/packages/lib-common/src/tooling/viteHtmlParamsPlugin.ts
similarity index 100%
rename from packages/common/src/tooling/viteHtmlParamsPlugin.ts
rename to packages/lib-common/src/tooling/viteHtmlParamsPlugin.ts
diff --git a/packages/common/src/tooling/vitePreactAlias.ts b/packages/lib-common/src/tooling/vitePreactAlias.ts
similarity index 100%
rename from packages/common/src/tooling/vitePreactAlias.ts
rename to packages/lib-common/src/tooling/vitePreactAlias.ts
diff --git a/packages/common/src/types/CommandServerApi.ts b/packages/lib-common/src/types/CommandServerApi.ts
similarity index 100%
rename from packages/common/src/types/CommandServerApi.ts
rename to packages/lib-common/src/types/CommandServerApi.ts
diff --git a/packages/common/src/types/Edit.ts b/packages/lib-common/src/types/Edit.ts
similarity index 100%
rename from packages/common/src/types/Edit.ts
rename to packages/lib-common/src/types/Edit.ts
diff --git a/packages/common/src/types/GeneralizedRange.ts b/packages/lib-common/src/types/GeneralizedRange.ts
similarity index 100%
rename from packages/common/src/types/GeneralizedRange.ts
rename to packages/lib-common/src/types/GeneralizedRange.ts
diff --git a/packages/common/src/types/HatTokenMap.ts b/packages/lib-common/src/types/HatTokenMap.ts
similarity index 100%
rename from packages/common/src/types/HatTokenMap.ts
rename to packages/lib-common/src/types/HatTokenMap.ts
diff --git a/packages/common/src/types/InputBoxOptions.ts b/packages/lib-common/src/types/InputBoxOptions.ts
similarity index 100%
rename from packages/common/src/types/InputBoxOptions.ts
rename to packages/lib-common/src/types/InputBoxOptions.ts
diff --git a/packages/common/src/types/NotebookCell.ts b/packages/lib-common/src/types/NotebookCell.ts
similarity index 100%
rename from packages/common/src/types/NotebookCell.ts
rename to packages/lib-common/src/types/NotebookCell.ts
diff --git a/packages/common/src/types/NotebookEditor.ts b/packages/lib-common/src/types/NotebookEditor.ts
similarity index 100%
rename from packages/common/src/types/NotebookEditor.ts
rename to packages/lib-common/src/types/NotebookEditor.ts
diff --git a/packages/common/src/types/Position.ts b/packages/lib-common/src/types/Position.ts
similarity index 100%
rename from packages/common/src/types/Position.ts
rename to packages/lib-common/src/types/Position.ts
diff --git a/packages/common/src/types/Range.ts b/packages/lib-common/src/types/Range.ts
similarity index 100%
rename from packages/common/src/types/Range.ts
rename to packages/lib-common/src/types/Range.ts
diff --git a/packages/common/src/types/RangeExpansionBehavior.ts b/packages/lib-common/src/types/RangeExpansionBehavior.ts
similarity index 100%
rename from packages/common/src/types/RangeExpansionBehavior.ts
rename to packages/lib-common/src/types/RangeExpansionBehavior.ts
diff --git a/packages/common/src/types/RevealLineAt.ts b/packages/lib-common/src/types/RevealLineAt.ts
similarity index 100%
rename from packages/common/src/types/RevealLineAt.ts
rename to packages/lib-common/src/types/RevealLineAt.ts
diff --git a/packages/common/src/types/ScopeProvider.ts b/packages/lib-common/src/types/ScopeProvider.ts
similarity index 100%
rename from packages/common/src/types/ScopeProvider.ts
rename to packages/lib-common/src/types/ScopeProvider.ts
diff --git a/packages/common/src/types/Selection.ts b/packages/lib-common/src/types/Selection.ts
similarity index 100%
rename from packages/common/src/types/Selection.ts
rename to packages/lib-common/src/types/Selection.ts
diff --git a/packages/common/src/types/SpokenForm.ts b/packages/lib-common/src/types/SpokenForm.ts
similarity index 100%
rename from packages/common/src/types/SpokenForm.ts
rename to packages/lib-common/src/types/SpokenForm.ts
diff --git a/packages/common/src/types/SpokenFormType.ts b/packages/lib-common/src/types/SpokenFormType.ts
similarity index 100%
rename from packages/common/src/types/SpokenFormType.ts
rename to packages/lib-common/src/types/SpokenFormType.ts
diff --git a/packages/common/src/types/StringRecord.ts b/packages/lib-common/src/types/StringRecord.ts
similarity index 100%
rename from packages/common/src/types/StringRecord.ts
rename to packages/lib-common/src/types/StringRecord.ts
diff --git a/packages/common/src/types/TalonSpokenForms.ts b/packages/lib-common/src/types/TalonSpokenForms.ts
similarity index 100%
rename from packages/common/src/types/TalonSpokenForms.ts
rename to packages/lib-common/src/types/TalonSpokenForms.ts
diff --git a/packages/common/src/types/TestCaseFixture.ts b/packages/lib-common/src/types/TestCaseFixture.ts
similarity index 100%
rename from packages/common/src/types/TestCaseFixture.ts
rename to packages/lib-common/src/types/TestCaseFixture.ts
diff --git a/packages/common/src/types/TestHelpers.ts b/packages/lib-common/src/types/TestHelpers.ts
similarity index 100%
rename from packages/common/src/types/TestHelpers.ts
rename to packages/lib-common/src/types/TestHelpers.ts
diff --git a/packages/common/src/types/TextDocument.ts b/packages/lib-common/src/types/TextDocument.ts
similarity index 100%
rename from packages/common/src/types/TextDocument.ts
rename to packages/lib-common/src/types/TextDocument.ts
diff --git a/packages/common/src/types/TextEditor.ts b/packages/lib-common/src/types/TextEditor.ts
similarity index 100%
rename from packages/common/src/types/TextEditor.ts
rename to packages/lib-common/src/types/TextEditor.ts
diff --git a/packages/common/src/types/TextEditorDecorationType.ts b/packages/lib-common/src/types/TextEditorDecorationType.ts
similarity index 100%
rename from packages/common/src/types/TextEditorDecorationType.ts
rename to packages/lib-common/src/types/TextEditorDecorationType.ts
diff --git a/packages/common/src/types/TextEditorEdit.ts b/packages/lib-common/src/types/TextEditorEdit.ts
similarity index 100%
rename from packages/common/src/types/TextEditorEdit.ts
rename to packages/lib-common/src/types/TextEditorEdit.ts
diff --git a/packages/common/src/types/TextEditorOptions.ts b/packages/lib-common/src/types/TextEditorOptions.ts
similarity index 100%
rename from packages/common/src/types/TextEditorOptions.ts
rename to packages/lib-common/src/types/TextEditorOptions.ts
diff --git a/packages/common/src/types/TextLine.ts b/packages/lib-common/src/types/TextLine.ts
similarity index 100%
rename from packages/common/src/types/TextLine.ts
rename to packages/lib-common/src/types/TextLine.ts
diff --git a/packages/common/src/types/Token.ts b/packages/lib-common/src/types/Token.ts
similarity index 100%
rename from packages/common/src/types/Token.ts
rename to packages/lib-common/src/types/Token.ts
diff --git a/packages/common/src/types/TreeSitter.ts b/packages/lib-common/src/types/TreeSitter.ts
similarity index 100%
rename from packages/common/src/types/TreeSitter.ts
rename to packages/lib-common/src/types/TreeSitter.ts
diff --git a/packages/common/src/types/command/ActionDescriptor.ts b/packages/lib-common/src/types/command/ActionDescriptor.ts
similarity index 100%
rename from packages/common/src/types/command/ActionDescriptor.ts
rename to packages/lib-common/src/types/command/ActionDescriptor.ts
diff --git a/packages/common/src/types/command/CommandV6.types.ts b/packages/lib-common/src/types/command/CommandV6.types.ts
similarity index 100%
rename from packages/common/src/types/command/CommandV6.types.ts
rename to packages/lib-common/src/types/command/CommandV6.types.ts
diff --git a/packages/common/src/types/command/CommandV7.types.ts b/packages/lib-common/src/types/command/CommandV7.types.ts
similarity index 100%
rename from packages/common/src/types/command/CommandV7.types.ts
rename to packages/lib-common/src/types/command/CommandV7.types.ts
diff --git a/packages/common/src/types/command/DestinationDescriptor.types.ts b/packages/lib-common/src/types/command/DestinationDescriptor.types.ts
similarity index 100%
rename from packages/common/src/types/command/DestinationDescriptor.types.ts
rename to packages/lib-common/src/types/command/DestinationDescriptor.types.ts
diff --git a/packages/common/src/types/command/PartialTargetDescriptor.types.ts b/packages/lib-common/src/types/command/PartialTargetDescriptor.types.ts
similarity index 100%
rename from packages/common/src/types/command/PartialTargetDescriptor.types.ts
rename to packages/lib-common/src/types/command/PartialTargetDescriptor.types.ts
diff --git a/packages/common/src/types/command/command.types.ts b/packages/lib-common/src/types/command/command.types.ts
similarity index 100%
rename from packages/common/src/types/command/command.types.ts
rename to packages/lib-common/src/types/command/command.types.ts
diff --git a/packages/common/src/types/command/legacy/ActionCommandV5.ts b/packages/lib-common/src/types/command/legacy/ActionCommandV5.ts
similarity index 100%
rename from packages/common/src/types/command/legacy/ActionCommandV5.ts
rename to packages/lib-common/src/types/command/legacy/ActionCommandV5.ts
diff --git a/packages/common/src/types/command/legacy/CommandV0V1.types.ts b/packages/lib-common/src/types/command/legacy/CommandV0V1.types.ts
similarity index 100%
rename from packages/common/src/types/command/legacy/CommandV0V1.types.ts
rename to packages/lib-common/src/types/command/legacy/CommandV0V1.types.ts
diff --git a/packages/common/src/types/command/legacy/CommandV2.types.ts b/packages/lib-common/src/types/command/legacy/CommandV2.types.ts
similarity index 100%
rename from packages/common/src/types/command/legacy/CommandV2.types.ts
rename to packages/lib-common/src/types/command/legacy/CommandV2.types.ts
diff --git a/packages/common/src/types/command/legacy/CommandV3.types.ts b/packages/lib-common/src/types/command/legacy/CommandV3.types.ts
similarity index 100%
rename from packages/common/src/types/command/legacy/CommandV3.types.ts
rename to packages/lib-common/src/types/command/legacy/CommandV3.types.ts
diff --git a/packages/common/src/types/command/legacy/CommandV4.types.ts b/packages/lib-common/src/types/command/legacy/CommandV4.types.ts
similarity index 100%
rename from packages/common/src/types/command/legacy/CommandV4.types.ts
rename to packages/lib-common/src/types/command/legacy/CommandV4.types.ts
diff --git a/packages/common/src/types/command/legacy/CommandV5.types.ts b/packages/lib-common/src/types/command/legacy/CommandV5.types.ts
similarity index 100%
rename from packages/common/src/types/command/legacy/CommandV5.types.ts
rename to packages/lib-common/src/types/command/legacy/CommandV5.types.ts
diff --git a/packages/common/src/types/command/legacy/PartialTargetDescriptorV3.types.ts b/packages/lib-common/src/types/command/legacy/PartialTargetDescriptorV3.types.ts
similarity index 100%
rename from packages/common/src/types/command/legacy/PartialTargetDescriptorV3.types.ts
rename to packages/lib-common/src/types/command/legacy/PartialTargetDescriptorV3.types.ts
diff --git a/packages/common/src/types/command/legacy/PartialTargetDescriptorV4.types.ts b/packages/lib-common/src/types/command/legacy/PartialTargetDescriptorV4.types.ts
similarity index 100%
rename from packages/common/src/types/command/legacy/PartialTargetDescriptorV4.types.ts
rename to packages/lib-common/src/types/command/legacy/PartialTargetDescriptorV4.types.ts
diff --git a/packages/common/src/types/command/legacy/PartialTargetDescriptorV5.types.ts b/packages/lib-common/src/types/command/legacy/PartialTargetDescriptorV5.types.ts
similarity index 100%
rename from packages/common/src/types/command/legacy/PartialTargetDescriptorV5.types.ts
rename to packages/lib-common/src/types/command/legacy/PartialTargetDescriptorV5.types.ts
diff --git a/packages/common/src/types/command/legacy/targetDescriptorV2.types.ts b/packages/lib-common/src/types/command/legacy/targetDescriptorV2.types.ts
similarity index 100%
rename from packages/common/src/types/command/legacy/targetDescriptorV2.types.ts
rename to packages/lib-common/src/types/command/legacy/targetDescriptorV2.types.ts
diff --git a/packages/common/src/types/commandHistory.ts b/packages/lib-common/src/types/commandHistory.ts
similarity index 100%
rename from packages/common/src/types/commandHistory.ts
rename to packages/lib-common/src/types/commandHistory.ts
diff --git a/packages/common/src/types/generalizedRangeContains.test.ts b/packages/lib-common/src/types/generalizedRangeContains.test.ts
similarity index 100%
rename from packages/common/src/types/generalizedRangeContains.test.ts
rename to packages/lib-common/src/types/generalizedRangeContains.test.ts
diff --git a/packages/common/src/types/generalizedRangeTouches.test.ts b/packages/lib-common/src/types/generalizedRangeTouches.test.ts
similarity index 100%
rename from packages/common/src/types/generalizedRangeTouches.test.ts
rename to packages/lib-common/src/types/generalizedRangeTouches.test.ts
diff --git a/packages/common/src/types/isGeneralizedRangeEqual.test.ts b/packages/lib-common/src/types/isGeneralizedRangeEqual.test.ts
similarity index 100%
rename from packages/common/src/types/isGeneralizedRangeEqual.test.ts
rename to packages/lib-common/src/types/isGeneralizedRangeEqual.test.ts
diff --git a/packages/common/src/types/location.types.ts b/packages/lib-common/src/types/location.types.ts
similarity index 100%
rename from packages/common/src/types/location.types.ts
rename to packages/lib-common/src/types/location.types.ts
diff --git a/packages/common/src/types/position.test.ts b/packages/lib-common/src/types/position.test.ts
similarity index 100%
rename from packages/common/src/types/position.test.ts
rename to packages/lib-common/src/types/position.test.ts
diff --git a/packages/common/src/types/range.test.ts b/packages/lib-common/src/types/range.test.ts
similarity index 100%
rename from packages/common/src/types/range.test.ts
rename to packages/lib-common/src/types/range.test.ts
diff --git a/packages/common/src/types/selection.test.ts b/packages/lib-common/src/types/selection.test.ts
similarity index 100%
rename from packages/common/src/types/selection.test.ts
rename to packages/lib-common/src/types/selection.test.ts
diff --git a/packages/common/src/types/tutorial.types.ts b/packages/lib-common/src/types/tutorial.types.ts
similarity index 100%
rename from packages/common/src/types/tutorial.types.ts
rename to packages/lib-common/src/types/tutorial.types.ts
diff --git a/packages/common/src/util/CompositeKeyDefaultMap.ts b/packages/lib-common/src/util/CompositeKeyDefaultMap.ts
similarity index 100%
rename from packages/common/src/util/CompositeKeyDefaultMap.ts
rename to packages/lib-common/src/util/CompositeKeyDefaultMap.ts
diff --git a/packages/common/src/util/CompositeKeyMap.ts b/packages/lib-common/src/util/CompositeKeyMap.ts
similarity index 100%
rename from packages/common/src/util/CompositeKeyMap.ts
rename to packages/lib-common/src/util/CompositeKeyMap.ts
diff --git a/packages/common/src/util/DefaultMap.ts b/packages/lib-common/src/util/DefaultMap.ts
similarity index 100%
rename from packages/common/src/util/DefaultMap.ts
rename to packages/lib-common/src/util/DefaultMap.ts
diff --git a/packages/common/src/util/Notifier.ts b/packages/lib-common/src/util/Notifier.ts
similarity index 100%
rename from packages/common/src/util/Notifier.ts
rename to packages/lib-common/src/util/Notifier.ts
diff --git a/packages/common/src/util/blendColors.ts b/packages/lib-common/src/util/blendColors.ts
similarity index 100%
rename from packages/common/src/util/blendColors.ts
rename to packages/lib-common/src/util/blendColors.ts
diff --git a/packages/common/src/util/clientSupportsFallback.ts b/packages/lib-common/src/util/clientSupportsFallback.ts
similarity index 100%
rename from packages/common/src/util/clientSupportsFallback.ts
rename to packages/lib-common/src/util/clientSupportsFallback.ts
diff --git a/packages/common/src/util/disposableFrom.ts b/packages/lib-common/src/util/disposableFrom.ts
similarity index 100%
rename from packages/common/src/util/disposableFrom.ts
rename to packages/lib-common/src/util/disposableFrom.ts
diff --git a/packages/common/src/util/ensureCommandShape.ts b/packages/lib-common/src/util/ensureCommandShape.ts
similarity index 100%
rename from packages/common/src/util/ensureCommandShape.ts
rename to packages/lib-common/src/util/ensureCommandShape.ts
diff --git a/packages/common/src/util/getEnvironmentVariableStrict.ts b/packages/lib-common/src/util/getEnvironmentVariableStrict.ts
similarity index 100%
rename from packages/common/src/util/getEnvironmentVariableStrict.ts
rename to packages/lib-common/src/util/getEnvironmentVariableStrict.ts
diff --git a/packages/common/src/util/getErrorMessage.ts b/packages/lib-common/src/util/getErrorMessage.ts
similarity index 100%
rename from packages/common/src/util/getErrorMessage.ts
rename to packages/lib-common/src/util/getErrorMessage.ts
diff --git a/packages/common/src/util/getProcessEnv.ts b/packages/lib-common/src/util/getProcessEnv.ts
similarity index 100%
rename from packages/common/src/util/getProcessEnv.ts
rename to packages/lib-common/src/util/getProcessEnv.ts
diff --git a/packages/common/src/util/index.ts b/packages/lib-common/src/util/index.ts
similarity index 100%
rename from packages/common/src/util/index.ts
rename to packages/lib-common/src/util/index.ts
diff --git a/packages/common/src/util/itertools.ts b/packages/lib-common/src/util/itertools.ts
similarity index 100%
rename from packages/common/src/util/itertools.ts
rename to packages/lib-common/src/util/itertools.ts
diff --git a/packages/common/src/util/object.ts b/packages/lib-common/src/util/object.ts
similarity index 100%
rename from packages/common/src/util/object.ts
rename to packages/lib-common/src/util/object.ts
diff --git a/packages/common/src/util/omitByDeep.ts b/packages/lib-common/src/util/omitByDeep.ts
similarity index 100%
rename from packages/common/src/util/omitByDeep.ts
rename to packages/lib-common/src/util/omitByDeep.ts
diff --git a/packages/common/src/util/prettifyLanguageName.ts b/packages/lib-common/src/util/prettifyLanguageName.ts
similarity index 100%
rename from packages/common/src/util/prettifyLanguageName.ts
rename to packages/lib-common/src/util/prettifyLanguageName.ts
diff --git a/packages/common/src/util/regex.ts b/packages/lib-common/src/util/regex.ts
similarity index 100%
rename from packages/common/src/util/regex.ts
rename to packages/lib-common/src/util/regex.ts
diff --git a/packages/common/src/util/selectionsEqual.ts b/packages/lib-common/src/util/selectionsEqual.ts
similarity index 100%
rename from packages/common/src/util/selectionsEqual.ts
rename to packages/lib-common/src/util/selectionsEqual.ts
diff --git a/packages/common/src/util/serializeScopeType.ts b/packages/lib-common/src/util/serializeScopeType.ts
similarity index 100%
rename from packages/common/src/util/serializeScopeType.ts
rename to packages/lib-common/src/util/serializeScopeType.ts
diff --git a/packages/common/src/util/serializedMarksToTokenHats.ts b/packages/lib-common/src/util/serializedMarksToTokenHats.ts
similarity index 100%
rename from packages/common/src/util/serializedMarksToTokenHats.ts
rename to packages/lib-common/src/util/serializedMarksToTokenHats.ts
diff --git a/packages/common/src/util/sleep.ts b/packages/lib-common/src/util/sleep.ts
similarity index 100%
rename from packages/common/src/util/sleep.ts
rename to packages/lib-common/src/util/sleep.ts
diff --git a/packages/common/src/util/splitKey.ts b/packages/lib-common/src/util/splitKey.ts
similarity index 100%
rename from packages/common/src/util/splitKey.ts
rename to packages/lib-common/src/util/splitKey.ts
diff --git a/packages/common/src/util/stringUtils.ts b/packages/lib-common/src/util/stringUtils.ts
similarity index 100%
rename from packages/common/src/util/stringUtils.ts
rename to packages/lib-common/src/util/stringUtils.ts
diff --git a/packages/common/src/util/toPlainObject.ts b/packages/lib-common/src/util/toPlainObject.ts
similarity index 100%
rename from packages/common/src/util/toPlainObject.ts
rename to packages/lib-common/src/util/toPlainObject.ts
diff --git a/packages/common/src/util/type.ts b/packages/lib-common/src/util/type.ts
similarity index 100%
rename from packages/common/src/util/type.ts
rename to packages/lib-common/src/util/type.ts
diff --git a/packages/common/src/util/typeUtils.ts b/packages/lib-common/src/util/typeUtils.ts
similarity index 100%
rename from packages/common/src/util/typeUtils.ts
rename to packages/lib-common/src/util/typeUtils.ts
diff --git a/packages/common/src/util/uniqWithHash.test.ts b/packages/lib-common/src/util/uniqWithHash.test.ts
similarity index 100%
rename from packages/common/src/util/uniqWithHash.test.ts
rename to packages/lib-common/src/util/uniqWithHash.test.ts
diff --git a/packages/common/src/util/uniqWithHash.ts b/packages/lib-common/src/util/uniqWithHash.ts
similarity index 100%
rename from packages/common/src/util/uniqWithHash.ts
rename to packages/lib-common/src/util/uniqWithHash.ts
diff --git a/packages/common/src/util/zipStrict.ts b/packages/lib-common/src/util/zipStrict.ts
similarity index 100%
rename from packages/common/src/util/zipStrict.ts
rename to packages/lib-common/src/util/zipStrict.ts
diff --git a/packages/cursorless-everywhere-talon-e2e/tsconfig.json b/packages/lib-common/tsconfig.json
similarity index 100%
rename from packages/cursorless-everywhere-talon-e2e/tsconfig.json
rename to packages/lib-common/tsconfig.json
diff --git a/packages/cursorless-engine/eslintConfig.ts b/packages/lib-engine/eslintConfig.ts
similarity index 100%
rename from packages/cursorless-engine/eslintConfig.ts
rename to packages/lib-engine/eslintConfig.ts
diff --git a/packages/cursorless-engine/package.json b/packages/lib-engine/package.json
similarity index 100%
rename from packages/cursorless-engine/package.json
rename to packages/lib-engine/package.json
diff --git a/packages/cursorless-engine/src/CommandHistory.ts b/packages/lib-engine/src/CommandHistory.ts
similarity index 100%
rename from packages/cursorless-engine/src/CommandHistory.ts
rename to packages/lib-engine/src/CommandHistory.ts
diff --git a/packages/cursorless-engine/src/CommandHistoryAnalyzer.ts b/packages/lib-engine/src/CommandHistoryAnalyzer.ts
similarity index 100%
rename from packages/cursorless-engine/src/CommandHistoryAnalyzer.ts
rename to packages/lib-engine/src/CommandHistoryAnalyzer.ts
diff --git a/packages/cursorless-engine/src/CommandRunner.ts b/packages/lib-engine/src/CommandRunner.ts
similarity index 100%
rename from packages/cursorless-engine/src/CommandRunner.ts
rename to packages/lib-engine/src/CommandRunner.ts
diff --git a/packages/cursorless-engine/src/KeyboardTargetUpdater.ts b/packages/lib-engine/src/KeyboardTargetUpdater.ts
similarity index 100%
rename from packages/cursorless-engine/src/KeyboardTargetUpdater.ts
rename to packages/lib-engine/src/KeyboardTargetUpdater.ts
diff --git a/packages/cursorless-engine/src/actions/Actions.ts b/packages/lib-engine/src/actions/Actions.ts
similarity index 100%
rename from packages/cursorless-engine/src/actions/Actions.ts
rename to packages/lib-engine/src/actions/Actions.ts
diff --git a/packages/cursorless-engine/src/actions/BreakLine.ts b/packages/lib-engine/src/actions/BreakLine.ts
similarity index 100%
rename from packages/cursorless-engine/src/actions/BreakLine.ts
rename to packages/lib-engine/src/actions/BreakLine.ts
diff --git a/packages/cursorless-engine/src/actions/BringMoveSwap.ts b/packages/lib-engine/src/actions/BringMoveSwap.ts
similarity index 100%
rename from packages/cursorless-engine/src/actions/BringMoveSwap.ts
rename to packages/lib-engine/src/actions/BringMoveSwap.ts
diff --git a/packages/cursorless-engine/src/actions/Call.ts b/packages/lib-engine/src/actions/Call.ts
similarity index 100%
rename from packages/cursorless-engine/src/actions/Call.ts
rename to packages/lib-engine/src/actions/Call.ts
diff --git a/packages/cursorless-engine/src/actions/CallbackAction.ts b/packages/lib-engine/src/actions/CallbackAction.ts
similarity index 100%
rename from packages/cursorless-engine/src/actions/CallbackAction.ts
rename to packages/lib-engine/src/actions/CallbackAction.ts
diff --git a/packages/cursorless-engine/src/actions/Clear.ts b/packages/lib-engine/src/actions/Clear.ts
similarity index 100%
rename from packages/cursorless-engine/src/actions/Clear.ts
rename to packages/lib-engine/src/actions/Clear.ts
diff --git a/packages/cursorless-engine/src/actions/CopyToClipboard.ts b/packages/lib-engine/src/actions/CopyToClipboard.ts
similarity index 100%
rename from packages/cursorless-engine/src/actions/CopyToClipboard.ts
rename to packages/lib-engine/src/actions/CopyToClipboard.ts
diff --git a/packages/cursorless-engine/src/actions/CutToClipboard.ts b/packages/lib-engine/src/actions/CutToClipboard.ts
similarity index 100%
rename from packages/cursorless-engine/src/actions/CutToClipboard.ts
rename to packages/lib-engine/src/actions/CutToClipboard.ts
diff --git a/packages/cursorless-engine/src/actions/Deselect.ts b/packages/lib-engine/src/actions/Deselect.ts
similarity index 100%
rename from packages/cursorless-engine/src/actions/Deselect.ts
rename to packages/lib-engine/src/actions/Deselect.ts
diff --git a/packages/cursorless-engine/src/actions/EditNew/EditNew.ts b/packages/lib-engine/src/actions/EditNew/EditNew.ts
similarity index 100%
rename from packages/cursorless-engine/src/actions/EditNew/EditNew.ts
rename to packages/lib-engine/src/actions/EditNew/EditNew.ts
diff --git a/packages/cursorless-engine/src/actions/EditNew/EditNew.types.ts b/packages/lib-engine/src/actions/EditNew/EditNew.types.ts
similarity index 100%
rename from packages/cursorless-engine/src/actions/EditNew/EditNew.types.ts
rename to packages/lib-engine/src/actions/EditNew/EditNew.types.ts
diff --git a/packages/cursorless-engine/src/actions/EditNew/index.ts b/packages/lib-engine/src/actions/EditNew/index.ts
similarity index 100%
rename from packages/cursorless-engine/src/actions/EditNew/index.ts
rename to packages/lib-engine/src/actions/EditNew/index.ts
diff --git a/packages/cursorless-engine/src/actions/EditNew/runEditTargets.ts b/packages/lib-engine/src/actions/EditNew/runEditTargets.ts
similarity index 100%
rename from packages/cursorless-engine/src/actions/EditNew/runEditTargets.ts
rename to packages/lib-engine/src/actions/EditNew/runEditTargets.ts
diff --git a/packages/cursorless-engine/src/actions/EditNew/runInsertLineAfterTargets.ts b/packages/lib-engine/src/actions/EditNew/runInsertLineAfterTargets.ts
similarity index 100%
rename from packages/cursorless-engine/src/actions/EditNew/runInsertLineAfterTargets.ts
rename to packages/lib-engine/src/actions/EditNew/runInsertLineAfterTargets.ts
diff --git a/packages/cursorless-engine/src/actions/EditNew/runNotebookCellTargets.ts b/packages/lib-engine/src/actions/EditNew/runNotebookCellTargets.ts
similarity index 100%
rename from packages/cursorless-engine/src/actions/EditNew/runNotebookCellTargets.ts
rename to packages/lib-engine/src/actions/EditNew/runNotebookCellTargets.ts
diff --git a/packages/cursorless-engine/src/actions/EditNewLineAction.ts b/packages/lib-engine/src/actions/EditNewLineAction.ts
similarity index 100%
rename from packages/cursorless-engine/src/actions/EditNewLineAction.ts
rename to packages/lib-engine/src/actions/EditNewLineAction.ts
diff --git a/packages/cursorless-engine/src/actions/ExecuteCommand.ts b/packages/lib-engine/src/actions/ExecuteCommand.ts
similarity index 100%
rename from packages/cursorless-engine/src/actions/ExecuteCommand.ts
rename to packages/lib-engine/src/actions/ExecuteCommand.ts
diff --git a/packages/cursorless-engine/src/actions/Find.ts b/packages/lib-engine/src/actions/Find.ts
similarity index 100%
rename from packages/cursorless-engine/src/actions/Find.ts
rename to packages/lib-engine/src/actions/Find.ts
diff --git a/packages/cursorless-engine/src/actions/FlashTargets.ts b/packages/lib-engine/src/actions/FlashTargets.ts
similarity index 100%
rename from packages/cursorless-engine/src/actions/FlashTargets.ts
rename to packages/lib-engine/src/actions/FlashTargets.ts
diff --git a/packages/cursorless-engine/src/actions/FollowLink.ts b/packages/lib-engine/src/actions/FollowLink.ts
similarity index 100%
rename from packages/cursorless-engine/src/actions/FollowLink.ts
rename to packages/lib-engine/src/actions/FollowLink.ts
diff --git a/packages/cursorless-engine/src/actions/GenerateSnippet/GenerateSnippet.ts b/packages/lib-engine/src/actions/GenerateSnippet/GenerateSnippet.ts
similarity index 100%
rename from packages/cursorless-engine/src/actions/GenerateSnippet/GenerateSnippet.ts
rename to packages/lib-engine/src/actions/GenerateSnippet/GenerateSnippet.ts
diff --git a/packages/cursorless-engine/src/actions/GenerateSnippet/Offsets.ts b/packages/lib-engine/src/actions/GenerateSnippet/Offsets.ts
similarity index 100%
rename from packages/cursorless-engine/src/actions/GenerateSnippet/Offsets.ts
rename to packages/lib-engine/src/actions/GenerateSnippet/Offsets.ts
diff --git a/packages/cursorless-engine/src/actions/GenerateSnippet/Substituter.ts b/packages/lib-engine/src/actions/GenerateSnippet/Substituter.ts
similarity index 100%
rename from packages/cursorless-engine/src/actions/GenerateSnippet/Substituter.ts
rename to packages/lib-engine/src/actions/GenerateSnippet/Substituter.ts
diff --git a/packages/cursorless-engine/src/actions/GenerateSnippet/constructSnippetBody.ts b/packages/lib-engine/src/actions/GenerateSnippet/constructSnippetBody.ts
similarity index 100%
rename from packages/cursorless-engine/src/actions/GenerateSnippet/constructSnippetBody.ts
rename to packages/lib-engine/src/actions/GenerateSnippet/constructSnippetBody.ts
diff --git a/packages/cursorless-engine/src/actions/GenerateSnippet/editText.ts b/packages/lib-engine/src/actions/GenerateSnippet/editText.ts
similarity index 100%
rename from packages/cursorless-engine/src/actions/GenerateSnippet/editText.ts
rename to packages/lib-engine/src/actions/GenerateSnippet/editText.ts
diff --git a/packages/cursorless-engine/src/actions/GenerateSnippet/index.ts b/packages/lib-engine/src/actions/GenerateSnippet/index.ts
similarity index 100%
rename from packages/cursorless-engine/src/actions/GenerateSnippet/index.ts
rename to packages/lib-engine/src/actions/GenerateSnippet/index.ts
diff --git a/packages/cursorless-engine/src/actions/GetTargets.ts b/packages/lib-engine/src/actions/GetTargets.ts
similarity index 100%
rename from packages/cursorless-engine/src/actions/GetTargets.ts
rename to packages/lib-engine/src/actions/GetTargets.ts
diff --git a/packages/cursorless-engine/src/actions/GetText.ts b/packages/lib-engine/src/actions/GetText.ts
similarity index 100%
rename from packages/cursorless-engine/src/actions/GetText.ts
rename to packages/lib-engine/src/actions/GetText.ts
diff --git a/packages/cursorless-engine/src/actions/Highlight.ts b/packages/lib-engine/src/actions/Highlight.ts
similarity index 100%
rename from packages/cursorless-engine/src/actions/Highlight.ts
rename to packages/lib-engine/src/actions/Highlight.ts
diff --git a/packages/cursorless-engine/src/actions/IndentLine.ts b/packages/lib-engine/src/actions/IndentLine.ts
similarity index 100%
rename from packages/cursorless-engine/src/actions/IndentLine.ts
rename to packages/lib-engine/src/actions/IndentLine.ts
diff --git a/packages/cursorless-engine/src/actions/InsertCopy.ts b/packages/lib-engine/src/actions/InsertCopy.ts
similarity index 100%
rename from packages/cursorless-engine/src/actions/InsertCopy.ts
rename to packages/lib-engine/src/actions/InsertCopy.ts
diff --git a/packages/cursorless-engine/src/actions/InsertEmptyLines.ts b/packages/lib-engine/src/actions/InsertEmptyLines.ts
similarity index 100%
rename from packages/cursorless-engine/src/actions/InsertEmptyLines.ts
rename to packages/lib-engine/src/actions/InsertEmptyLines.ts
diff --git a/packages/cursorless-engine/src/actions/InsertSnippet.ts b/packages/lib-engine/src/actions/InsertSnippet.ts
similarity index 100%
rename from packages/cursorless-engine/src/actions/InsertSnippet.ts
rename to packages/lib-engine/src/actions/InsertSnippet.ts
diff --git a/packages/cursorless-engine/src/actions/JoinLines.ts b/packages/lib-engine/src/actions/JoinLines.ts
similarity index 100%
rename from packages/cursorless-engine/src/actions/JoinLines.ts
rename to packages/lib-engine/src/actions/JoinLines.ts
diff --git a/packages/cursorless-engine/src/actions/PasteFromClipboard.ts b/packages/lib-engine/src/actions/PasteFromClipboard.ts
similarity index 100%
rename from packages/cursorless-engine/src/actions/PasteFromClipboard.ts
rename to packages/lib-engine/src/actions/PasteFromClipboard.ts
diff --git a/packages/cursorless-engine/src/actions/PasteFromClipboardDirectly.ts b/packages/lib-engine/src/actions/PasteFromClipboardDirectly.ts
similarity index 100%
rename from packages/cursorless-engine/src/actions/PasteFromClipboardDirectly.ts
rename to packages/lib-engine/src/actions/PasteFromClipboardDirectly.ts
diff --git a/packages/cursorless-engine/src/actions/PasteFromClipboardUsingCommand.ts b/packages/lib-engine/src/actions/PasteFromClipboardUsingCommand.ts
similarity index 100%
rename from packages/cursorless-engine/src/actions/PasteFromClipboardUsingCommand.ts
rename to packages/lib-engine/src/actions/PasteFromClipboardUsingCommand.ts
diff --git a/packages/cursorless-engine/src/actions/Remove.ts b/packages/lib-engine/src/actions/Remove.ts
similarity index 100%
rename from packages/cursorless-engine/src/actions/Remove.ts
rename to packages/lib-engine/src/actions/Remove.ts
diff --git a/packages/cursorless-engine/src/actions/Replace.ts b/packages/lib-engine/src/actions/Replace.ts
similarity index 100%
rename from packages/cursorless-engine/src/actions/Replace.ts
rename to packages/lib-engine/src/actions/Replace.ts
diff --git a/packages/cursorless-engine/src/actions/Rewrap.ts b/packages/lib-engine/src/actions/Rewrap.ts
similarity index 100%
rename from packages/cursorless-engine/src/actions/Rewrap.ts
rename to packages/lib-engine/src/actions/Rewrap.ts
diff --git a/packages/cursorless-engine/src/actions/Scroll.ts b/packages/lib-engine/src/actions/Scroll.ts
similarity index 100%
rename from packages/cursorless-engine/src/actions/Scroll.ts
rename to packages/lib-engine/src/actions/Scroll.ts
diff --git a/packages/cursorless-engine/src/actions/SetSelection.ts b/packages/lib-engine/src/actions/SetSelection.ts
similarity index 100%
rename from packages/cursorless-engine/src/actions/SetSelection.ts
rename to packages/lib-engine/src/actions/SetSelection.ts
diff --git a/packages/cursorless-engine/src/actions/SetSpecialTarget.ts b/packages/lib-engine/src/actions/SetSpecialTarget.ts
similarity index 100%
rename from packages/cursorless-engine/src/actions/SetSpecialTarget.ts
rename to packages/lib-engine/src/actions/SetSpecialTarget.ts
diff --git a/packages/cursorless-engine/src/actions/ShowParseTree.ts b/packages/lib-engine/src/actions/ShowParseTree.ts
similarity index 100%
rename from packages/cursorless-engine/src/actions/ShowParseTree.ts
rename to packages/lib-engine/src/actions/ShowParseTree.ts
diff --git a/packages/cursorless-engine/src/actions/SimpleIdeCommandActions.ts b/packages/lib-engine/src/actions/SimpleIdeCommandActions.ts
similarity index 100%
rename from packages/cursorless-engine/src/actions/SimpleIdeCommandActions.ts
rename to packages/lib-engine/src/actions/SimpleIdeCommandActions.ts
diff --git a/packages/cursorless-engine/src/actions/Sort.ts b/packages/lib-engine/src/actions/Sort.ts
similarity index 100%
rename from packages/cursorless-engine/src/actions/Sort.ts
rename to packages/lib-engine/src/actions/Sort.ts
diff --git a/packages/cursorless-engine/src/actions/ToggleBreakpoint.ts b/packages/lib-engine/src/actions/ToggleBreakpoint.ts
similarity index 100%
rename from packages/cursorless-engine/src/actions/ToggleBreakpoint.ts
rename to packages/lib-engine/src/actions/ToggleBreakpoint.ts
diff --git a/packages/cursorless-engine/src/actions/Wrap.ts b/packages/lib-engine/src/actions/Wrap.ts
similarity index 100%
rename from packages/cursorless-engine/src/actions/Wrap.ts
rename to packages/lib-engine/src/actions/Wrap.ts
diff --git a/packages/cursorless-engine/src/actions/WrapWithSnippet.ts b/packages/lib-engine/src/actions/WrapWithSnippet.ts
similarity index 100%
rename from packages/cursorless-engine/src/actions/WrapWithSnippet.ts
rename to packages/lib-engine/src/actions/WrapWithSnippet.ts
diff --git a/packages/cursorless-engine/src/actions/actions.types.ts b/packages/lib-engine/src/actions/actions.types.ts
similarity index 100%
rename from packages/cursorless-engine/src/actions/actions.types.ts
rename to packages/lib-engine/src/actions/actions.types.ts
diff --git a/packages/cursorless-engine/src/actions/incrementDecrement.ts b/packages/lib-engine/src/actions/incrementDecrement.ts
similarity index 100%
rename from packages/cursorless-engine/src/actions/incrementDecrement.ts
rename to packages/lib-engine/src/actions/incrementDecrement.ts
diff --git a/packages/cursorless-engine/src/api/CursorlessEngineApi.ts b/packages/lib-engine/src/api/CursorlessEngineApi.ts
similarity index 100%
rename from packages/cursorless-engine/src/api/CursorlessEngineApi.ts
rename to packages/lib-engine/src/api/CursorlessEngineApi.ts
diff --git a/packages/cursorless-engine/src/core/Debug.ts b/packages/lib-engine/src/core/Debug.ts
similarity index 100%
rename from packages/cursorless-engine/src/core/Debug.ts
rename to packages/lib-engine/src/core/Debug.ts
diff --git a/packages/cursorless-engine/src/core/HatAllocator.ts b/packages/lib-engine/src/core/HatAllocator.ts
similarity index 100%
rename from packages/cursorless-engine/src/core/HatAllocator.ts
rename to packages/lib-engine/src/core/HatAllocator.ts
diff --git a/packages/cursorless-engine/src/core/HatTokenMapImpl.ts b/packages/lib-engine/src/core/HatTokenMapImpl.ts
similarity index 100%
rename from packages/cursorless-engine/src/core/HatTokenMapImpl.ts
rename to packages/lib-engine/src/core/HatTokenMapImpl.ts
diff --git a/packages/cursorless-engine/src/core/IndividualHatMap.ts b/packages/lib-engine/src/core/IndividualHatMap.ts
similarity index 100%
rename from packages/cursorless-engine/src/core/IndividualHatMap.ts
rename to packages/lib-engine/src/core/IndividualHatMap.ts
diff --git a/packages/cursorless-engine/src/core/Snippets.ts b/packages/lib-engine/src/core/Snippets.ts
similarity index 100%
rename from packages/cursorless-engine/src/core/Snippets.ts
rename to packages/lib-engine/src/core/Snippets.ts
diff --git a/packages/cursorless-engine/src/core/StoredTargets.ts b/packages/lib-engine/src/core/StoredTargets.ts
similarity index 100%
rename from packages/cursorless-engine/src/core/StoredTargets.ts
rename to packages/lib-engine/src/core/StoredTargets.ts
diff --git a/packages/cursorless-engine/src/core/UndoStack.test.ts b/packages/lib-engine/src/core/UndoStack.test.ts
similarity index 100%
rename from packages/cursorless-engine/src/core/UndoStack.test.ts
rename to packages/lib-engine/src/core/UndoStack.test.ts
diff --git a/packages/cursorless-engine/src/core/UndoStack.ts b/packages/lib-engine/src/core/UndoStack.ts
similarity index 100%
rename from packages/cursorless-engine/src/core/UndoStack.ts
rename to packages/lib-engine/src/core/UndoStack.ts
diff --git a/packages/cursorless-engine/src/core/commandRunner/CommandRunnerImpl.ts b/packages/lib-engine/src/core/commandRunner/CommandRunnerImpl.ts
similarity index 100%
rename from packages/cursorless-engine/src/core/commandRunner/CommandRunnerImpl.ts
rename to packages/lib-engine/src/core/commandRunner/CommandRunnerImpl.ts
diff --git a/packages/cursorless-engine/src/core/commandRunner/selectionToStoredTarget.ts b/packages/lib-engine/src/core/commandRunner/selectionToStoredTarget.ts
similarity index 100%
rename from packages/cursorless-engine/src/core/commandRunner/selectionToStoredTarget.ts
rename to packages/lib-engine/src/core/commandRunner/selectionToStoredTarget.ts
diff --git a/packages/cursorless-engine/src/core/commandVersionUpgrades/canonicalizeAndValidateCommand.ts b/packages/lib-engine/src/core/commandVersionUpgrades/canonicalizeAndValidateCommand.ts
similarity index 100%
rename from packages/cursorless-engine/src/core/commandVersionUpgrades/canonicalizeAndValidateCommand.ts
rename to packages/lib-engine/src/core/commandVersionUpgrades/canonicalizeAndValidateCommand.ts
diff --git a/packages/cursorless-engine/src/core/commandVersionUpgrades/canonicalizeTargetsInPlace.ts b/packages/lib-engine/src/core/commandVersionUpgrades/canonicalizeTargetsInPlace.ts
similarity index 100%
rename from packages/cursorless-engine/src/core/commandVersionUpgrades/canonicalizeTargetsInPlace.ts
rename to packages/lib-engine/src/core/commandVersionUpgrades/canonicalizeTargetsInPlace.ts
diff --git a/packages/cursorless-engine/src/core/commandVersionUpgrades/upgradeV0ToV1/index.ts b/packages/lib-engine/src/core/commandVersionUpgrades/upgradeV0ToV1/index.ts
similarity index 100%
rename from packages/cursorless-engine/src/core/commandVersionUpgrades/upgradeV0ToV1/index.ts
rename to packages/lib-engine/src/core/commandVersionUpgrades/upgradeV0ToV1/index.ts
diff --git a/packages/cursorless-engine/src/core/commandVersionUpgrades/upgradeV0ToV1/upgradeV0ToV1.ts b/packages/lib-engine/src/core/commandVersionUpgrades/upgradeV0ToV1/upgradeV0ToV1.ts
similarity index 100%
rename from packages/cursorless-engine/src/core/commandVersionUpgrades/upgradeV0ToV1/upgradeV0ToV1.ts
rename to packages/lib-engine/src/core/commandVersionUpgrades/upgradeV0ToV1/upgradeV0ToV1.ts
diff --git a/packages/cursorless-engine/src/core/commandVersionUpgrades/upgradeV1ToV2/index.ts b/packages/lib-engine/src/core/commandVersionUpgrades/upgradeV1ToV2/index.ts
similarity index 100%
rename from packages/cursorless-engine/src/core/commandVersionUpgrades/upgradeV1ToV2/index.ts
rename to packages/lib-engine/src/core/commandVersionUpgrades/upgradeV1ToV2/index.ts
diff --git a/packages/cursorless-engine/src/core/commandVersionUpgrades/upgradeV1ToV2/upgradeStrictHere.ts b/packages/lib-engine/src/core/commandVersionUpgrades/upgradeV1ToV2/upgradeStrictHere.ts
similarity index 100%
rename from packages/cursorless-engine/src/core/commandVersionUpgrades/upgradeV1ToV2/upgradeStrictHere.ts
rename to packages/lib-engine/src/core/commandVersionUpgrades/upgradeV1ToV2/upgradeStrictHere.ts
diff --git a/packages/cursorless-engine/src/core/commandVersionUpgrades/upgradeV1ToV2/upgradeV1ToV2.ts b/packages/lib-engine/src/core/commandVersionUpgrades/upgradeV1ToV2/upgradeV1ToV2.ts
similarity index 100%
rename from packages/cursorless-engine/src/core/commandVersionUpgrades/upgradeV1ToV2/upgradeV1ToV2.ts
rename to packages/lib-engine/src/core/commandVersionUpgrades/upgradeV1ToV2/upgradeV1ToV2.ts
diff --git a/packages/cursorless-engine/src/core/commandVersionUpgrades/upgradeV2ToV3/index.ts b/packages/lib-engine/src/core/commandVersionUpgrades/upgradeV2ToV3/index.ts
similarity index 100%
rename from packages/cursorless-engine/src/core/commandVersionUpgrades/upgradeV2ToV3/index.ts
rename to packages/lib-engine/src/core/commandVersionUpgrades/upgradeV2ToV3/index.ts
diff --git a/packages/cursorless-engine/src/core/commandVersionUpgrades/upgradeV2ToV3/upgradeV2ToV3.ts b/packages/lib-engine/src/core/commandVersionUpgrades/upgradeV2ToV3/upgradeV2ToV3.ts
similarity index 100%
rename from packages/cursorless-engine/src/core/commandVersionUpgrades/upgradeV2ToV3/upgradeV2ToV3.ts
rename to packages/lib-engine/src/core/commandVersionUpgrades/upgradeV2ToV3/upgradeV2ToV3.ts
diff --git a/packages/cursorless-engine/src/core/commandVersionUpgrades/upgradeV3ToV4/index.ts b/packages/lib-engine/src/core/commandVersionUpgrades/upgradeV3ToV4/index.ts
similarity index 100%
rename from packages/cursorless-engine/src/core/commandVersionUpgrades/upgradeV3ToV4/index.ts
rename to packages/lib-engine/src/core/commandVersionUpgrades/upgradeV3ToV4/index.ts
diff --git a/packages/cursorless-engine/src/core/commandVersionUpgrades/upgradeV3ToV4/upgradeV3ToV4.ts b/packages/lib-engine/src/core/commandVersionUpgrades/upgradeV3ToV4/upgradeV3ToV4.ts
similarity index 100%
rename from packages/cursorless-engine/src/core/commandVersionUpgrades/upgradeV3ToV4/upgradeV3ToV4.ts
rename to packages/lib-engine/src/core/commandVersionUpgrades/upgradeV3ToV4/upgradeV3ToV4.ts
diff --git a/packages/cursorless-engine/src/core/commandVersionUpgrades/upgradeV4ToV5/index.ts b/packages/lib-engine/src/core/commandVersionUpgrades/upgradeV4ToV5/index.ts
similarity index 100%
rename from packages/cursorless-engine/src/core/commandVersionUpgrades/upgradeV4ToV5/index.ts
rename to packages/lib-engine/src/core/commandVersionUpgrades/upgradeV4ToV5/index.ts
diff --git a/packages/cursorless-engine/src/core/commandVersionUpgrades/upgradeV4ToV5/upgradeV4ToV5.ts b/packages/lib-engine/src/core/commandVersionUpgrades/upgradeV4ToV5/upgradeV4ToV5.ts
similarity index 100%
rename from packages/cursorless-engine/src/core/commandVersionUpgrades/upgradeV4ToV5/upgradeV4ToV5.ts
rename to packages/lib-engine/src/core/commandVersionUpgrades/upgradeV4ToV5/upgradeV4ToV5.ts
diff --git a/packages/cursorless-engine/src/core/commandVersionUpgrades/upgradeV5ToV6/canonicalizeActionName.ts b/packages/lib-engine/src/core/commandVersionUpgrades/upgradeV5ToV6/canonicalizeActionName.ts
similarity index 100%
rename from packages/cursorless-engine/src/core/commandVersionUpgrades/upgradeV5ToV6/canonicalizeActionName.ts
rename to packages/lib-engine/src/core/commandVersionUpgrades/upgradeV5ToV6/canonicalizeActionName.ts
diff --git a/packages/cursorless-engine/src/core/commandVersionUpgrades/upgradeV5ToV6/index.ts b/packages/lib-engine/src/core/commandVersionUpgrades/upgradeV5ToV6/index.ts
similarity index 100%
rename from packages/cursorless-engine/src/core/commandVersionUpgrades/upgradeV5ToV6/index.ts
rename to packages/lib-engine/src/core/commandVersionUpgrades/upgradeV5ToV6/index.ts
diff --git a/packages/cursorless-engine/src/core/commandVersionUpgrades/upgradeV5ToV6/upgradeV5ToV6.ts b/packages/lib-engine/src/core/commandVersionUpgrades/upgradeV5ToV6/upgradeV5ToV6.ts
similarity index 100%
rename from packages/cursorless-engine/src/core/commandVersionUpgrades/upgradeV5ToV6/upgradeV5ToV6.ts
rename to packages/lib-engine/src/core/commandVersionUpgrades/upgradeV5ToV6/upgradeV5ToV6.ts
diff --git a/packages/cursorless-engine/src/core/commandVersionUpgrades/upgradeV6ToV7.ts b/packages/lib-engine/src/core/commandVersionUpgrades/upgradeV6ToV7.ts
similarity index 100%
rename from packages/cursorless-engine/src/core/commandVersionUpgrades/upgradeV6ToV7.ts
rename to packages/lib-engine/src/core/commandVersionUpgrades/upgradeV6ToV7.ts
diff --git a/packages/cursorless-engine/src/core/getCommandFallback.ts b/packages/lib-engine/src/core/getCommandFallback.ts
similarity index 100%
rename from packages/cursorless-engine/src/core/getCommandFallback.ts
rename to packages/lib-engine/src/core/getCommandFallback.ts
diff --git a/packages/cursorless-engine/src/core/getPreferredSnippet.test.ts b/packages/lib-engine/src/core/getPreferredSnippet.test.ts
similarity index 100%
rename from packages/cursorless-engine/src/core/getPreferredSnippet.test.ts
rename to packages/lib-engine/src/core/getPreferredSnippet.test.ts
diff --git a/packages/cursorless-engine/src/core/getPreferredSnippet.ts b/packages/lib-engine/src/core/getPreferredSnippet.ts
similarity index 100%
rename from packages/cursorless-engine/src/core/getPreferredSnippet.ts
rename to packages/lib-engine/src/core/getPreferredSnippet.ts
diff --git a/packages/cursorless-engine/src/core/handleHoistedModifiers.ts b/packages/lib-engine/src/core/handleHoistedModifiers.ts
similarity index 100%
rename from packages/cursorless-engine/src/core/handleHoistedModifiers.ts
rename to packages/lib-engine/src/core/handleHoistedModifiers.ts
diff --git a/packages/cursorless-engine/src/core/indexArrayStrict.ts b/packages/lib-engine/src/core/indexArrayStrict.ts
similarity index 100%
rename from packages/cursorless-engine/src/core/indexArrayStrict.ts
rename to packages/lib-engine/src/core/indexArrayStrict.ts
diff --git a/packages/cursorless-engine/src/core/inferFullTargetDescriptor.ts b/packages/lib-engine/src/core/inferFullTargetDescriptor.ts
similarity index 100%
rename from packages/cursorless-engine/src/core/inferFullTargetDescriptor.ts
rename to packages/lib-engine/src/core/inferFullTargetDescriptor.ts
diff --git a/packages/cursorless-engine/src/core/updateSelections/RangeUpdater.ts b/packages/lib-engine/src/core/updateSelections/RangeUpdater.ts
similarity index 100%
rename from packages/cursorless-engine/src/core/updateSelections/RangeUpdater.ts
rename to packages/lib-engine/src/core/updateSelections/RangeUpdater.ts
diff --git a/packages/cursorless-engine/src/core/updateSelections/getOffsetsForDeleteOrReplace.ts b/packages/lib-engine/src/core/updateSelections/getOffsetsForDeleteOrReplace.ts
similarity index 100%
rename from packages/cursorless-engine/src/core/updateSelections/getOffsetsForDeleteOrReplace.ts
rename to packages/lib-engine/src/core/updateSelections/getOffsetsForDeleteOrReplace.ts
diff --git a/packages/cursorless-engine/src/core/updateSelections/getOffsetsForEmptyRangeInsert.ts b/packages/lib-engine/src/core/updateSelections/getOffsetsForEmptyRangeInsert.ts
similarity index 100%
rename from packages/cursorless-engine/src/core/updateSelections/getOffsetsForEmptyRangeInsert.ts
rename to packages/lib-engine/src/core/updateSelections/getOffsetsForEmptyRangeInsert.ts
diff --git a/packages/cursorless-engine/src/core/updateSelections/getOffsetsForNonEmptyRangeInsert.ts b/packages/lib-engine/src/core/updateSelections/getOffsetsForNonEmptyRangeInsert.ts
similarity index 100%
rename from packages/cursorless-engine/src/core/updateSelections/getOffsetsForNonEmptyRangeInsert.ts
rename to packages/lib-engine/src/core/updateSelections/getOffsetsForNonEmptyRangeInsert.ts
diff --git a/packages/cursorless-engine/src/core/updateSelections/getUpdatedText.ts b/packages/lib-engine/src/core/updateSelections/getUpdatedText.ts
similarity index 100%
rename from packages/cursorless-engine/src/core/updateSelections/getUpdatedText.ts
rename to packages/lib-engine/src/core/updateSelections/getUpdatedText.ts
diff --git a/packages/cursorless-engine/src/core/updateSelections/updateRangeInfos.ts b/packages/lib-engine/src/core/updateSelections/updateRangeInfos.ts
similarity index 100%
rename from packages/cursorless-engine/src/core/updateSelections/updateRangeInfos.ts
rename to packages/lib-engine/src/core/updateSelections/updateRangeInfos.ts
diff --git a/packages/cursorless-engine/src/core/updateSelections/updateSelections.ts b/packages/lib-engine/src/core/updateSelections/updateSelections.ts
similarity index 100%
rename from packages/cursorless-engine/src/core/updateSelections/updateSelections.ts
rename to packages/lib-engine/src/core/updateSelections/updateSelections.ts
diff --git a/packages/cursorless-engine/src/cursorlessEngine.ts b/packages/lib-engine/src/cursorlessEngine.ts
similarity index 100%
rename from packages/cursorless-engine/src/cursorlessEngine.ts
rename to packages/lib-engine/src/cursorlessEngine.ts
diff --git a/packages/cursorless-engine/src/customCommandGrammar/CommandLexer.ts b/packages/lib-engine/src/customCommandGrammar/CommandLexer.ts
similarity index 100%
rename from packages/cursorless-engine/src/customCommandGrammar/CommandLexer.ts
rename to packages/lib-engine/src/customCommandGrammar/CommandLexer.ts
diff --git a/packages/cursorless-engine/src/customCommandGrammar/WithPlaceholders.ts b/packages/lib-engine/src/customCommandGrammar/WithPlaceholders.ts
similarity index 100%
rename from packages/cursorless-engine/src/customCommandGrammar/WithPlaceholders.ts
rename to packages/lib-engine/src/customCommandGrammar/WithPlaceholders.ts
diff --git a/packages/cursorless-engine/src/customCommandGrammar/fillPlaceholders.ts b/packages/lib-engine/src/customCommandGrammar/fillPlaceholders.ts
similarity index 100%
rename from packages/cursorless-engine/src/customCommandGrammar/fillPlaceholders.ts
rename to packages/lib-engine/src/customCommandGrammar/fillPlaceholders.ts
diff --git a/packages/cursorless-engine/src/customCommandGrammar/generated/grammar.ts b/packages/lib-engine/src/customCommandGrammar/generated/grammar.ts
similarity index 100%
rename from packages/cursorless-engine/src/customCommandGrammar/generated/grammar.ts
rename to packages/lib-engine/src/customCommandGrammar/generated/grammar.ts
diff --git a/packages/cursorless-engine/src/customCommandGrammar/grammar.ne b/packages/lib-engine/src/customCommandGrammar/grammar.ne
similarity index 100%
rename from packages/cursorless-engine/src/customCommandGrammar/grammar.ne
rename to packages/lib-engine/src/customCommandGrammar/grammar.ne
diff --git a/packages/cursorless-engine/src/customCommandGrammar/grammarAction.test.ts b/packages/lib-engine/src/customCommandGrammar/grammarAction.test.ts
similarity index 100%
rename from packages/cursorless-engine/src/customCommandGrammar/grammarAction.test.ts
rename to packages/lib-engine/src/customCommandGrammar/grammarAction.test.ts
diff --git a/packages/cursorless-engine/src/customCommandGrammar/grammarScopeType.test.ts b/packages/lib-engine/src/customCommandGrammar/grammarScopeType.test.ts
similarity index 100%
rename from packages/cursorless-engine/src/customCommandGrammar/grammarScopeType.test.ts
rename to packages/lib-engine/src/customCommandGrammar/grammarScopeType.test.ts
diff --git a/packages/cursorless-engine/src/customCommandGrammar/grammarUtil.ts b/packages/lib-engine/src/customCommandGrammar/grammarUtil.ts
similarity index 100%
rename from packages/cursorless-engine/src/customCommandGrammar/grammarUtil.ts
rename to packages/lib-engine/src/customCommandGrammar/grammarUtil.ts
diff --git a/packages/cursorless-engine/src/customCommandGrammar/lexer.test.ts b/packages/lib-engine/src/customCommandGrammar/lexer.test.ts
similarity index 100%
rename from packages/cursorless-engine/src/customCommandGrammar/lexer.test.ts
rename to packages/lib-engine/src/customCommandGrammar/lexer.test.ts
diff --git a/packages/cursorless-engine/src/customCommandGrammar/lexer.ts b/packages/lib-engine/src/customCommandGrammar/lexer.ts
similarity index 100%
rename from packages/cursorless-engine/src/customCommandGrammar/lexer.ts
rename to packages/lib-engine/src/customCommandGrammar/lexer.ts
diff --git a/packages/cursorless-engine/src/customCommandGrammar/parseAndFillOutAction.ts b/packages/lib-engine/src/customCommandGrammar/parseAndFillOutAction.ts
similarity index 100%
rename from packages/cursorless-engine/src/customCommandGrammar/parseAndFillOutAction.ts
rename to packages/lib-engine/src/customCommandGrammar/parseAndFillOutAction.ts
diff --git a/packages/cursorless-engine/src/customCommandGrammar/parseCommand.ts b/packages/lib-engine/src/customCommandGrammar/parseCommand.ts
similarity index 100%
rename from packages/cursorless-engine/src/customCommandGrammar/parseCommand.ts
rename to packages/lib-engine/src/customCommandGrammar/parseCommand.ts
diff --git a/packages/cursorless-engine/src/disabledComponents/DisabledCommandServerApi.ts b/packages/lib-engine/src/disabledComponents/DisabledCommandServerApi.ts
similarity index 100%
rename from packages/cursorless-engine/src/disabledComponents/DisabledCommandServerApi.ts
rename to packages/lib-engine/src/disabledComponents/DisabledCommandServerApi.ts
diff --git a/packages/cursorless-engine/src/disabledComponents/DisabledHatTokenMap.ts b/packages/lib-engine/src/disabledComponents/DisabledHatTokenMap.ts
similarity index 100%
rename from packages/cursorless-engine/src/disabledComponents/DisabledHatTokenMap.ts
rename to packages/lib-engine/src/disabledComponents/DisabledHatTokenMap.ts
diff --git a/packages/cursorless-engine/src/disabledComponents/DisabledLanguageDefinitions.ts b/packages/lib-engine/src/disabledComponents/DisabledLanguageDefinitions.ts
similarity index 100%
rename from packages/cursorless-engine/src/disabledComponents/DisabledLanguageDefinitions.ts
rename to packages/lib-engine/src/disabledComponents/DisabledLanguageDefinitions.ts
diff --git a/packages/cursorless-engine/src/disabledComponents/DisabledSnippets.ts b/packages/lib-engine/src/disabledComponents/DisabledSnippets.ts
similarity index 100%
rename from packages/cursorless-engine/src/disabledComponents/DisabledSnippets.ts
rename to packages/lib-engine/src/disabledComponents/DisabledSnippets.ts
diff --git a/packages/cursorless-engine/src/disabledComponents/DisabledTalonSpokenForms.ts b/packages/lib-engine/src/disabledComponents/DisabledTalonSpokenForms.ts
similarity index 100%
rename from packages/cursorless-engine/src/disabledComponents/DisabledTalonSpokenForms.ts
rename to packages/lib-engine/src/disabledComponents/DisabledTalonSpokenForms.ts
diff --git a/packages/cursorless-engine/src/disabledComponents/DisabledTreeSitter.ts b/packages/lib-engine/src/disabledComponents/DisabledTreeSitter.ts
similarity index 100%
rename from packages/cursorless-engine/src/disabledComponents/DisabledTreeSitter.ts
rename to packages/lib-engine/src/disabledComponents/DisabledTreeSitter.ts
diff --git a/packages/cursorless-engine/src/generateSpokenForm/CustomSpokenFormGeneratorImpl.test.ts b/packages/lib-engine/src/generateSpokenForm/CustomSpokenFormGeneratorImpl.test.ts
similarity index 100%
rename from packages/cursorless-engine/src/generateSpokenForm/CustomSpokenFormGeneratorImpl.test.ts
rename to packages/lib-engine/src/generateSpokenForm/CustomSpokenFormGeneratorImpl.test.ts
diff --git a/packages/cursorless-engine/src/generateSpokenForm/CustomSpokenFormGeneratorImpl.ts b/packages/lib-engine/src/generateSpokenForm/CustomSpokenFormGeneratorImpl.ts
similarity index 100%
rename from packages/cursorless-engine/src/generateSpokenForm/CustomSpokenFormGeneratorImpl.ts
rename to packages/lib-engine/src/generateSpokenForm/CustomSpokenFormGeneratorImpl.ts
diff --git a/packages/cursorless-engine/src/generateSpokenForm/NoSpokenFormError.ts b/packages/lib-engine/src/generateSpokenForm/NoSpokenFormError.ts
similarity index 100%
rename from packages/cursorless-engine/src/generateSpokenForm/NoSpokenFormError.ts
rename to packages/lib-engine/src/generateSpokenForm/NoSpokenFormError.ts
diff --git a/packages/cursorless-engine/src/generateSpokenForm/SpokenFormComponent.ts b/packages/lib-engine/src/generateSpokenForm/SpokenFormComponent.ts
similarity index 100%
rename from packages/cursorless-engine/src/generateSpokenForm/SpokenFormComponent.ts
rename to packages/lib-engine/src/generateSpokenForm/SpokenFormComponent.ts
diff --git a/packages/cursorless-engine/src/generateSpokenForm/defaultSpokenForms/connectives.ts b/packages/lib-engine/src/generateSpokenForm/defaultSpokenForms/connectives.ts
similarity index 100%
rename from packages/cursorless-engine/src/generateSpokenForm/defaultSpokenForms/connectives.ts
rename to packages/lib-engine/src/generateSpokenForm/defaultSpokenForms/connectives.ts
diff --git a/packages/cursorless-engine/src/generateSpokenForm/defaultSpokenForms/marks.ts b/packages/lib-engine/src/generateSpokenForm/defaultSpokenForms/marks.ts
similarity index 100%
rename from packages/cursorless-engine/src/generateSpokenForm/defaultSpokenForms/marks.ts
rename to packages/lib-engine/src/generateSpokenForm/defaultSpokenForms/marks.ts
diff --git a/packages/cursorless-engine/src/generateSpokenForm/defaultSpokenForms/modifiers.ts b/packages/lib-engine/src/generateSpokenForm/defaultSpokenForms/modifiers.ts
similarity index 100%
rename from packages/cursorless-engine/src/generateSpokenForm/defaultSpokenForms/modifiers.ts
rename to packages/lib-engine/src/generateSpokenForm/defaultSpokenForms/modifiers.ts
diff --git a/packages/cursorless-engine/src/generateSpokenForm/defaultSpokenForms/numbers.ts b/packages/lib-engine/src/generateSpokenForm/defaultSpokenForms/numbers.ts
similarity index 100%
rename from packages/cursorless-engine/src/generateSpokenForm/defaultSpokenForms/numbers.ts
rename to packages/lib-engine/src/generateSpokenForm/defaultSpokenForms/numbers.ts
diff --git a/packages/cursorless-engine/src/generateSpokenForm/defaultSpokenForms/snippets.ts b/packages/lib-engine/src/generateSpokenForm/defaultSpokenForms/snippets.ts
similarity index 100%
rename from packages/cursorless-engine/src/generateSpokenForm/defaultSpokenForms/snippets.ts
rename to packages/lib-engine/src/generateSpokenForm/defaultSpokenForms/snippets.ts
diff --git a/packages/cursorless-engine/src/generateSpokenForm/defaultSpokenForms/surroundingPairsDelimiters.ts b/packages/lib-engine/src/generateSpokenForm/defaultSpokenForms/surroundingPairsDelimiters.ts
similarity index 100%
rename from packages/cursorless-engine/src/generateSpokenForm/defaultSpokenForms/surroundingPairsDelimiters.ts
rename to packages/lib-engine/src/generateSpokenForm/defaultSpokenForms/surroundingPairsDelimiters.ts
diff --git a/packages/cursorless-engine/src/generateSpokenForm/generateSpokenForm.test.ts b/packages/lib-engine/src/generateSpokenForm/generateSpokenForm.test.ts
similarity index 100%
rename from packages/cursorless-engine/src/generateSpokenForm/generateSpokenForm.test.ts
rename to packages/lib-engine/src/generateSpokenForm/generateSpokenForm.test.ts
diff --git a/packages/cursorless-engine/src/generateSpokenForm/generateSpokenForm.ts b/packages/lib-engine/src/generateSpokenForm/generateSpokenForm.ts
similarity index 100%
rename from packages/cursorless-engine/src/generateSpokenForm/generateSpokenForm.ts
rename to packages/lib-engine/src/generateSpokenForm/generateSpokenForm.ts
diff --git a/packages/cursorless-engine/src/generateSpokenForm/getHatMapCommand.ts b/packages/lib-engine/src/generateSpokenForm/getHatMapCommand.ts
similarity index 100%
rename from packages/cursorless-engine/src/generateSpokenForm/getHatMapCommand.ts
rename to packages/lib-engine/src/generateSpokenForm/getHatMapCommand.ts
diff --git a/packages/cursorless-engine/src/generateSpokenForm/getRangeConnective.ts b/packages/lib-engine/src/generateSpokenForm/getRangeConnective.ts
similarity index 100%
rename from packages/cursorless-engine/src/generateSpokenForm/getRangeConnective.ts
rename to packages/lib-engine/src/generateSpokenForm/getRangeConnective.ts
diff --git a/packages/cursorless-engine/src/generateSpokenForm/getSpokenFormComponentMap.ts b/packages/lib-engine/src/generateSpokenForm/getSpokenFormComponentMap.ts
similarity index 100%
rename from packages/cursorless-engine/src/generateSpokenForm/getSpokenFormComponentMap.ts
rename to packages/lib-engine/src/generateSpokenForm/getSpokenFormComponentMap.ts
diff --git a/packages/cursorless-engine/src/generateSpokenForm/index.ts b/packages/lib-engine/src/generateSpokenForm/index.ts
similarity index 100%
rename from packages/cursorless-engine/src/generateSpokenForm/index.ts
rename to packages/lib-engine/src/generateSpokenForm/index.ts
diff --git a/packages/cursorless-engine/src/generateSpokenForm/primitiveTargetToSpokenForm.ts b/packages/lib-engine/src/generateSpokenForm/primitiveTargetToSpokenForm.ts
similarity index 100%
rename from packages/cursorless-engine/src/generateSpokenForm/primitiveTargetToSpokenForm.ts
rename to packages/lib-engine/src/generateSpokenForm/primitiveTargetToSpokenForm.ts
diff --git a/packages/cursorless-engine/src/index.ts b/packages/lib-engine/src/index.ts
similarity index 100%
rename from packages/cursorless-engine/src/index.ts
rename to packages/lib-engine/src/index.ts
diff --git a/packages/cursorless-engine/src/languages/LanguageDefinition.ts b/packages/lib-engine/src/languages/LanguageDefinition.ts
similarity index 100%
rename from packages/cursorless-engine/src/languages/LanguageDefinition.ts
rename to packages/lib-engine/src/languages/LanguageDefinition.ts
diff --git a/packages/cursorless-engine/src/languages/LanguageDefinitions.ts b/packages/lib-engine/src/languages/LanguageDefinitions.ts
similarity index 100%
rename from packages/cursorless-engine/src/languages/LanguageDefinitions.ts
rename to packages/lib-engine/src/languages/LanguageDefinitions.ts
diff --git a/packages/cursorless-engine/src/languages/TreeSitterQuery/PredicateOperatorSchemaTypes.ts b/packages/lib-engine/src/languages/TreeSitterQuery/PredicateOperatorSchemaTypes.ts
similarity index 100%
rename from packages/cursorless-engine/src/languages/TreeSitterQuery/PredicateOperatorSchemaTypes.ts
rename to packages/lib-engine/src/languages/TreeSitterQuery/PredicateOperatorSchemaTypes.ts
diff --git a/packages/cursorless-engine/src/languages/TreeSitterQuery/QueryCapture.ts b/packages/lib-engine/src/languages/TreeSitterQuery/QueryCapture.ts
similarity index 100%
rename from packages/cursorless-engine/src/languages/TreeSitterQuery/QueryCapture.ts
rename to packages/lib-engine/src/languages/TreeSitterQuery/QueryCapture.ts
diff --git a/packages/cursorless-engine/src/languages/TreeSitterQuery/QueryPredicateOperator.ts b/packages/lib-engine/src/languages/TreeSitterQuery/QueryPredicateOperator.ts
similarity index 100%
rename from packages/cursorless-engine/src/languages/TreeSitterQuery/QueryPredicateOperator.ts
rename to packages/lib-engine/src/languages/TreeSitterQuery/QueryPredicateOperator.ts
diff --git a/packages/cursorless-engine/src/languages/TreeSitterQuery/TreeSitterQuery.ts b/packages/lib-engine/src/languages/TreeSitterQuery/TreeSitterQuery.ts
similarity index 100%
rename from packages/cursorless-engine/src/languages/TreeSitterQuery/TreeSitterQuery.ts
rename to packages/lib-engine/src/languages/TreeSitterQuery/TreeSitterQuery.ts
diff --git a/packages/cursorless-engine/src/languages/TreeSitterQuery/TreeSitterQueryCache.ts b/packages/lib-engine/src/languages/TreeSitterQuery/TreeSitterQueryCache.ts
similarity index 100%
rename from packages/cursorless-engine/src/languages/TreeSitterQuery/TreeSitterQueryCache.ts
rename to packages/lib-engine/src/languages/TreeSitterQuery/TreeSitterQueryCache.ts
diff --git a/packages/cursorless-engine/src/languages/TreeSitterQuery/assertTypesEqual.ts b/packages/lib-engine/src/languages/TreeSitterQuery/assertTypesEqual.ts
similarity index 100%
rename from packages/cursorless-engine/src/languages/TreeSitterQuery/assertTypesEqual.ts
rename to packages/lib-engine/src/languages/TreeSitterQuery/assertTypesEqual.ts
diff --git a/packages/cursorless-engine/src/languages/TreeSitterQuery/captureNames.ts b/packages/lib-engine/src/languages/TreeSitterQuery/captureNames.ts
similarity index 100%
rename from packages/cursorless-engine/src/languages/TreeSitterQuery/captureNames.ts
rename to packages/lib-engine/src/languages/TreeSitterQuery/captureNames.ts
diff --git a/packages/cursorless-engine/src/languages/TreeSitterQuery/checkCaptureStartEnd.test.ts b/packages/lib-engine/src/languages/TreeSitterQuery/checkCaptureStartEnd.test.ts
similarity index 100%
rename from packages/cursorless-engine/src/languages/TreeSitterQuery/checkCaptureStartEnd.test.ts
rename to packages/lib-engine/src/languages/TreeSitterQuery/checkCaptureStartEnd.test.ts
diff --git a/packages/cursorless-engine/src/languages/TreeSitterQuery/checkCaptureStartEnd.ts b/packages/lib-engine/src/languages/TreeSitterQuery/checkCaptureStartEnd.ts
similarity index 100%
rename from packages/cursorless-engine/src/languages/TreeSitterQuery/checkCaptureStartEnd.ts
rename to packages/lib-engine/src/languages/TreeSitterQuery/checkCaptureStartEnd.ts
diff --git a/packages/cursorless-engine/src/languages/TreeSitterQuery/constructZodErrorMessages.ts b/packages/lib-engine/src/languages/TreeSitterQuery/constructZodErrorMessages.ts
similarity index 100%
rename from packages/cursorless-engine/src/languages/TreeSitterQuery/constructZodErrorMessages.ts
rename to packages/lib-engine/src/languages/TreeSitterQuery/constructZodErrorMessages.ts
diff --git a/packages/cursorless-engine/src/languages/TreeSitterQuery/getChildNodesForFieldName.ts b/packages/lib-engine/src/languages/TreeSitterQuery/getChildNodesForFieldName.ts
similarity index 100%
rename from packages/cursorless-engine/src/languages/TreeSitterQuery/getChildNodesForFieldName.ts
rename to packages/lib-engine/src/languages/TreeSitterQuery/getChildNodesForFieldName.ts
diff --git a/packages/cursorless-engine/src/languages/TreeSitterQuery/getNode.ts b/packages/lib-engine/src/languages/TreeSitterQuery/getNode.ts
similarity index 100%
rename from packages/cursorless-engine/src/languages/TreeSitterQuery/getNode.ts
rename to packages/lib-engine/src/languages/TreeSitterQuery/getNode.ts
diff --git a/packages/cursorless-engine/src/languages/TreeSitterQuery/getNodeRange.ts b/packages/lib-engine/src/languages/TreeSitterQuery/getNodeRange.ts
similarity index 100%
rename from packages/cursorless-engine/src/languages/TreeSitterQuery/getNodeRange.ts
rename to packages/lib-engine/src/languages/TreeSitterQuery/getNodeRange.ts
diff --git a/packages/cursorless-engine/src/languages/TreeSitterQuery/index.ts b/packages/lib-engine/src/languages/TreeSitterQuery/index.ts
similarity index 100%
rename from packages/cursorless-engine/src/languages/TreeSitterQuery/index.ts
rename to packages/lib-engine/src/languages/TreeSitterQuery/index.ts
diff --git a/packages/cursorless-engine/src/languages/TreeSitterQuery/isContainedInErrorNode.ts b/packages/lib-engine/src/languages/TreeSitterQuery/isContainedInErrorNode.ts
similarity index 100%
rename from packages/cursorless-engine/src/languages/TreeSitterQuery/isContainedInErrorNode.ts
rename to packages/lib-engine/src/languages/TreeSitterQuery/isContainedInErrorNode.ts
diff --git a/packages/cursorless-engine/src/languages/TreeSitterQuery/isEven.ts b/packages/lib-engine/src/languages/TreeSitterQuery/isEven.ts
similarity index 100%
rename from packages/cursorless-engine/src/languages/TreeSitterQuery/isEven.ts
rename to packages/lib-engine/src/languages/TreeSitterQuery/isEven.ts
diff --git a/packages/cursorless-engine/src/languages/TreeSitterQuery/makeRangeFromPositions.ts b/packages/lib-engine/src/languages/TreeSitterQuery/makeRangeFromPositions.ts
similarity index 100%
rename from packages/cursorless-engine/src/languages/TreeSitterQuery/makeRangeFromPositions.ts
rename to packages/lib-engine/src/languages/TreeSitterQuery/makeRangeFromPositions.ts
diff --git a/packages/cursorless-engine/src/languages/TreeSitterQuery/operatorArgumentSchemaTypes.ts b/packages/lib-engine/src/languages/TreeSitterQuery/operatorArgumentSchemaTypes.ts
similarity index 100%
rename from packages/cursorless-engine/src/languages/TreeSitterQuery/operatorArgumentSchemaTypes.ts
rename to packages/lib-engine/src/languages/TreeSitterQuery/operatorArgumentSchemaTypes.ts
diff --git a/packages/cursorless-engine/src/languages/TreeSitterQuery/parsePredicates.test.ts b/packages/lib-engine/src/languages/TreeSitterQuery/parsePredicates.test.ts
similarity index 100%
rename from packages/cursorless-engine/src/languages/TreeSitterQuery/parsePredicates.test.ts
rename to packages/lib-engine/src/languages/TreeSitterQuery/parsePredicates.test.ts
diff --git a/packages/cursorless-engine/src/languages/TreeSitterQuery/parsePredicates.ts b/packages/lib-engine/src/languages/TreeSitterQuery/parsePredicates.ts
similarity index 100%
rename from packages/cursorless-engine/src/languages/TreeSitterQuery/parsePredicates.ts
rename to packages/lib-engine/src/languages/TreeSitterQuery/parsePredicates.ts
diff --git a/packages/cursorless-engine/src/languages/TreeSitterQuery/parsePredicatesWithErrorHandling.ts b/packages/lib-engine/src/languages/TreeSitterQuery/parsePredicatesWithErrorHandling.ts
similarity index 100%
rename from packages/cursorless-engine/src/languages/TreeSitterQuery/parsePredicatesWithErrorHandling.ts
rename to packages/lib-engine/src/languages/TreeSitterQuery/parsePredicatesWithErrorHandling.ts
diff --git a/packages/cursorless-engine/src/languages/TreeSitterQuery/positionToPoint.ts b/packages/lib-engine/src/languages/TreeSitterQuery/positionToPoint.ts
similarity index 100%
rename from packages/cursorless-engine/src/languages/TreeSitterQuery/positionToPoint.ts
rename to packages/lib-engine/src/languages/TreeSitterQuery/positionToPoint.ts
diff --git a/packages/cursorless-engine/src/languages/TreeSitterQuery/predicateToString.ts b/packages/lib-engine/src/languages/TreeSitterQuery/predicateToString.ts
similarity index 100%
rename from packages/cursorless-engine/src/languages/TreeSitterQuery/predicateToString.ts
rename to packages/lib-engine/src/languages/TreeSitterQuery/predicateToString.ts
diff --git a/packages/cursorless-engine/src/languages/TreeSitterQuery/queryPredicateOperators.ts b/packages/lib-engine/src/languages/TreeSitterQuery/queryPredicateOperators.ts
similarity index 100%
rename from packages/cursorless-engine/src/languages/TreeSitterQuery/queryPredicateOperators.ts
rename to packages/lib-engine/src/languages/TreeSitterQuery/queryPredicateOperators.ts
diff --git a/packages/cursorless-engine/src/languages/TreeSitterQuery/rewriteStartOfEndOf.test.ts b/packages/lib-engine/src/languages/TreeSitterQuery/rewriteStartOfEndOf.test.ts
similarity index 100%
rename from packages/cursorless-engine/src/languages/TreeSitterQuery/rewriteStartOfEndOf.test.ts
rename to packages/lib-engine/src/languages/TreeSitterQuery/rewriteStartOfEndOf.test.ts
diff --git a/packages/cursorless-engine/src/languages/TreeSitterQuery/rewriteStartOfEndOf.ts b/packages/lib-engine/src/languages/TreeSitterQuery/rewriteStartOfEndOf.ts
similarity index 100%
rename from packages/cursorless-engine/src/languages/TreeSitterQuery/rewriteStartOfEndOf.ts
rename to packages/lib-engine/src/languages/TreeSitterQuery/rewriteStartOfEndOf.ts
diff --git a/packages/cursorless-engine/src/languages/TreeSitterQuery/setRange.ts b/packages/lib-engine/src/languages/TreeSitterQuery/setRange.ts
similarity index 100%
rename from packages/cursorless-engine/src/languages/TreeSitterQuery/setRange.ts
rename to packages/lib-engine/src/languages/TreeSitterQuery/setRange.ts
diff --git a/packages/cursorless-engine/src/languages/TreeSitterQuery/validateQueryCaptures.test.ts b/packages/lib-engine/src/languages/TreeSitterQuery/validateQueryCaptures.test.ts
similarity index 100%
rename from packages/cursorless-engine/src/languages/TreeSitterQuery/validateQueryCaptures.test.ts
rename to packages/lib-engine/src/languages/TreeSitterQuery/validateQueryCaptures.test.ts
diff --git a/packages/cursorless-engine/src/languages/TreeSitterQuery/validateQueryCaptures.ts b/packages/lib-engine/src/languages/TreeSitterQuery/validateQueryCaptures.ts
similarity index 100%
rename from packages/cursorless-engine/src/languages/TreeSitterQuery/validateQueryCaptures.ts
rename to packages/lib-engine/src/languages/TreeSitterQuery/validateQueryCaptures.ts
diff --git a/packages/cursorless-engine/src/processTargets/MarkStageFactory.ts b/packages/lib-engine/src/processTargets/MarkStageFactory.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/MarkStageFactory.ts
rename to packages/lib-engine/src/processTargets/MarkStageFactory.ts
diff --git a/packages/cursorless-engine/src/processTargets/MarkStageFactoryImpl.ts b/packages/lib-engine/src/processTargets/MarkStageFactoryImpl.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/MarkStageFactoryImpl.ts
rename to packages/lib-engine/src/processTargets/MarkStageFactoryImpl.ts
diff --git a/packages/cursorless-engine/src/processTargets/ModifierStageFactory.ts b/packages/lib-engine/src/processTargets/ModifierStageFactory.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/ModifierStageFactory.ts
rename to packages/lib-engine/src/processTargets/ModifierStageFactory.ts
diff --git a/packages/cursorless-engine/src/processTargets/ModifierStageFactoryImpl.ts b/packages/lib-engine/src/processTargets/ModifierStageFactoryImpl.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/ModifierStageFactoryImpl.ts
rename to packages/lib-engine/src/processTargets/ModifierStageFactoryImpl.ts
diff --git a/packages/cursorless-engine/src/processTargets/PipelineStages.types.ts b/packages/lib-engine/src/processTargets/PipelineStages.types.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/PipelineStages.types.ts
rename to packages/lib-engine/src/processTargets/PipelineStages.types.ts
diff --git a/packages/cursorless-engine/src/processTargets/TargetPipelineRunner.ts b/packages/lib-engine/src/processTargets/TargetPipelineRunner.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/TargetPipelineRunner.ts
rename to packages/lib-engine/src/processTargets/TargetPipelineRunner.ts
diff --git a/packages/cursorless-engine/src/processTargets/createContinuousRangeTarget.ts b/packages/lib-engine/src/processTargets/createContinuousRangeTarget.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/createContinuousRangeTarget.ts
rename to packages/lib-engine/src/processTargets/createContinuousRangeTarget.ts
diff --git a/packages/cursorless-engine/src/processTargets/index.ts b/packages/lib-engine/src/processTargets/index.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/index.ts
rename to packages/lib-engine/src/processTargets/index.ts
diff --git a/packages/cursorless-engine/src/processTargets/marks/CursorStage.ts b/packages/lib-engine/src/processTargets/marks/CursorStage.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/marks/CursorStage.ts
rename to packages/lib-engine/src/processTargets/marks/CursorStage.ts
diff --git a/packages/cursorless-engine/src/processTargets/marks/DecoratedSymbolStage.ts b/packages/lib-engine/src/processTargets/marks/DecoratedSymbolStage.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/marks/DecoratedSymbolStage.ts
rename to packages/lib-engine/src/processTargets/marks/DecoratedSymbolStage.ts
diff --git a/packages/cursorless-engine/src/processTargets/marks/ExplicitMarkStage.ts b/packages/lib-engine/src/processTargets/marks/ExplicitMarkStage.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/marks/ExplicitMarkStage.ts
rename to packages/lib-engine/src/processTargets/marks/ExplicitMarkStage.ts
diff --git a/packages/cursorless-engine/src/processTargets/marks/ImplicitStage.ts b/packages/lib-engine/src/processTargets/marks/ImplicitStage.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/marks/ImplicitStage.ts
rename to packages/lib-engine/src/processTargets/marks/ImplicitStage.ts
diff --git a/packages/cursorless-engine/src/processTargets/marks/LineNumberStage.ts b/packages/lib-engine/src/processTargets/marks/LineNumberStage.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/marks/LineNumberStage.ts
rename to packages/lib-engine/src/processTargets/marks/LineNumberStage.ts
diff --git a/packages/cursorless-engine/src/processTargets/marks/NothingStage.ts b/packages/lib-engine/src/processTargets/marks/NothingStage.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/marks/NothingStage.ts
rename to packages/lib-engine/src/processTargets/marks/NothingStage.ts
diff --git a/packages/cursorless-engine/src/processTargets/marks/RangeMarkStage.ts b/packages/lib-engine/src/processTargets/marks/RangeMarkStage.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/marks/RangeMarkStage.ts
rename to packages/lib-engine/src/processTargets/marks/RangeMarkStage.ts
diff --git a/packages/cursorless-engine/src/processTargets/marks/StoredTargetStage.ts b/packages/lib-engine/src/processTargets/marks/StoredTargetStage.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/marks/StoredTargetStage.ts
rename to packages/lib-engine/src/processTargets/marks/StoredTargetStage.ts
diff --git a/packages/cursorless-engine/src/processTargets/marks/TargetMarkStage.ts b/packages/lib-engine/src/processTargets/marks/TargetMarkStage.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/marks/TargetMarkStage.ts
rename to packages/lib-engine/src/processTargets/marks/TargetMarkStage.ts
diff --git a/packages/cursorless-engine/src/processTargets/marks/getActiveSelections.ts b/packages/lib-engine/src/processTargets/marks/getActiveSelections.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/marks/getActiveSelections.ts
rename to packages/lib-engine/src/processTargets/marks/getActiveSelections.ts
diff --git a/packages/cursorless-engine/src/processTargets/modifiers/BoundaryStage.ts b/packages/lib-engine/src/processTargets/modifiers/BoundaryStage.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/modifiers/BoundaryStage.ts
rename to packages/lib-engine/src/processTargets/modifiers/BoundaryStage.ts
diff --git a/packages/cursorless-engine/src/processTargets/modifiers/ClassFunctionNameStage.ts b/packages/lib-engine/src/processTargets/modifiers/ClassFunctionNameStage.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/modifiers/ClassFunctionNameStage.ts
rename to packages/lib-engine/src/processTargets/modifiers/ClassFunctionNameStage.ts
diff --git a/packages/cursorless-engine/src/processTargets/modifiers/ConditionalModifierStages.ts b/packages/lib-engine/src/processTargets/modifiers/ConditionalModifierStages.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/modifiers/ConditionalModifierStages.ts
rename to packages/lib-engine/src/processTargets/modifiers/ConditionalModifierStages.ts
diff --git a/packages/cursorless-engine/src/processTargets/modifiers/ContainingScopeStage.ts b/packages/lib-engine/src/processTargets/modifiers/ContainingScopeStage.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/modifiers/ContainingScopeStage.ts
rename to packages/lib-engine/src/processTargets/modifiers/ContainingScopeStage.ts
diff --git a/packages/cursorless-engine/src/processTargets/modifiers/EveryScopeStage.ts b/packages/lib-engine/src/processTargets/modifiers/EveryScopeStage.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/modifiers/EveryScopeStage.ts
rename to packages/lib-engine/src/processTargets/modifiers/EveryScopeStage.ts
diff --git a/packages/cursorless-engine/src/processTargets/modifiers/FallbackStage.ts b/packages/lib-engine/src/processTargets/modifiers/FallbackStage.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/modifiers/FallbackStage.ts
rename to packages/lib-engine/src/processTargets/modifiers/FallbackStage.ts
diff --git a/packages/cursorless-engine/src/processTargets/modifiers/FilterStages.ts b/packages/lib-engine/src/processTargets/modifiers/FilterStages.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/modifiers/FilterStages.ts
rename to packages/lib-engine/src/processTargets/modifiers/FilterStages.ts
diff --git a/packages/cursorless-engine/src/processTargets/modifiers/HeadTailStage.ts b/packages/lib-engine/src/processTargets/modifiers/HeadTailStage.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/modifiers/HeadTailStage.ts
rename to packages/lib-engine/src/processTargets/modifiers/HeadTailStage.ts
diff --git a/packages/cursorless-engine/src/processTargets/modifiers/InstanceStage.ts b/packages/lib-engine/src/processTargets/modifiers/InstanceStage.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/modifiers/InstanceStage.ts
rename to packages/lib-engine/src/processTargets/modifiers/InstanceStage.ts
diff --git a/packages/cursorless-engine/src/processTargets/modifiers/InteriorStage.ts b/packages/lib-engine/src/processTargets/modifiers/InteriorStage.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/modifiers/InteriorStage.ts
rename to packages/lib-engine/src/processTargets/modifiers/InteriorStage.ts
diff --git a/packages/cursorless-engine/src/processTargets/modifiers/LeadingTrailingStages.ts b/packages/lib-engine/src/processTargets/modifiers/LeadingTrailingStages.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/modifiers/LeadingTrailingStages.ts
rename to packages/lib-engine/src/processTargets/modifiers/LeadingTrailingStages.ts
diff --git a/packages/cursorless-engine/src/processTargets/modifiers/OrdinalScopeStage.ts b/packages/lib-engine/src/processTargets/modifiers/OrdinalScopeStage.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/modifiers/OrdinalScopeStage.ts
rename to packages/lib-engine/src/processTargets/modifiers/OrdinalScopeStage.ts
diff --git a/packages/cursorless-engine/src/processTargets/modifiers/PositionStage.ts b/packages/lib-engine/src/processTargets/modifiers/PositionStage.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/modifiers/PositionStage.ts
rename to packages/lib-engine/src/processTargets/modifiers/PositionStage.ts
diff --git a/packages/cursorless-engine/src/processTargets/modifiers/PreferredScopeStage.ts b/packages/lib-engine/src/processTargets/modifiers/PreferredScopeStage.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/modifiers/PreferredScopeStage.ts
rename to packages/lib-engine/src/processTargets/modifiers/PreferredScopeStage.ts
diff --git a/packages/cursorless-engine/src/processTargets/modifiers/RangeModifierStage.ts b/packages/lib-engine/src/processTargets/modifiers/RangeModifierStage.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/modifiers/RangeModifierStage.ts
rename to packages/lib-engine/src/processTargets/modifiers/RangeModifierStage.ts
diff --git a/packages/cursorless-engine/src/processTargets/modifiers/RawSelectionStage.ts b/packages/lib-engine/src/processTargets/modifiers/RawSelectionStage.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/modifiers/RawSelectionStage.ts
rename to packages/lib-engine/src/processTargets/modifiers/RawSelectionStage.ts
diff --git a/packages/cursorless-engine/src/processTargets/modifiers/RelativeScopeStage.ts b/packages/lib-engine/src/processTargets/modifiers/RelativeScopeStage.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/modifiers/RelativeScopeStage.ts
rename to packages/lib-engine/src/processTargets/modifiers/RelativeScopeStage.ts
diff --git a/packages/cursorless-engine/src/processTargets/modifiers/TooFewScopesError.ts b/packages/lib-engine/src/processTargets/modifiers/TooFewScopesError.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/modifiers/TooFewScopesError.ts
rename to packages/lib-engine/src/processTargets/modifiers/TooFewScopesError.ts
diff --git a/packages/cursorless-engine/src/processTargets/modifiers/VisibleStage.ts b/packages/lib-engine/src/processTargets/modifiers/VisibleStage.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/modifiers/VisibleStage.ts
rename to packages/lib-engine/src/processTargets/modifiers/VisibleStage.ts
diff --git a/packages/cursorless-engine/src/processTargets/modifiers/commonContainingScopeIfUntypedModifiers.ts b/packages/lib-engine/src/processTargets/modifiers/commonContainingScopeIfUntypedModifiers.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/modifiers/commonContainingScopeIfUntypedModifiers.ts
rename to packages/lib-engine/src/processTargets/modifiers/commonContainingScopeIfUntypedModifiers.ts
diff --git a/packages/cursorless-engine/src/processTargets/modifiers/constructScopeRangeTarget.ts b/packages/lib-engine/src/processTargets/modifiers/constructScopeRangeTarget.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/modifiers/constructScopeRangeTarget.ts
rename to packages/lib-engine/src/processTargets/modifiers/constructScopeRangeTarget.ts
diff --git a/packages/cursorless-engine/src/processTargets/modifiers/getContainingScopeTarget.ts b/packages/lib-engine/src/processTargets/modifiers/getContainingScopeTarget.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/modifiers/getContainingScopeTarget.ts
rename to packages/lib-engine/src/processTargets/modifiers/getContainingScopeTarget.ts
diff --git a/packages/cursorless-engine/src/processTargets/modifiers/getPreferredScopeTouchingPosition.ts b/packages/lib-engine/src/processTargets/modifiers/getPreferredScopeTouchingPosition.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/modifiers/getPreferredScopeTouchingPosition.ts
rename to packages/lib-engine/src/processTargets/modifiers/getPreferredScopeTouchingPosition.ts
diff --git a/packages/cursorless-engine/src/processTargets/modifiers/listUtils.ts b/packages/lib-engine/src/processTargets/modifiers/listUtils.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/modifiers/listUtils.ts
rename to packages/lib-engine/src/processTargets/modifiers/listUtils.ts
diff --git a/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/BaseScopeHandler.test.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/BaseScopeHandler.test.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/BaseScopeHandler.test.ts
rename to packages/lib-engine/src/processTargets/modifiers/scopeHandlers/BaseScopeHandler.test.ts
diff --git a/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/BaseScopeHandler.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/BaseScopeHandler.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/BaseScopeHandler.ts
rename to packages/lib-engine/src/processTargets/modifiers/scopeHandlers/BaseScopeHandler.ts
diff --git a/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/BoundedScopeHandler.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/BoundedScopeHandler.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/BoundedScopeHandler.ts
rename to packages/lib-engine/src/processTargets/modifiers/scopeHandlers/BoundedScopeHandler.ts
diff --git a/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/CharacterScopeHandler.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/CharacterScopeHandler.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/CharacterScopeHandler.ts
rename to packages/lib-engine/src/processTargets/modifiers/scopeHandlers/CharacterScopeHandler.ts
diff --git a/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/CollectionItemScopeHandler/CollectionItemScopeHandler.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/CollectionItemScopeHandler/CollectionItemScopeHandler.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/CollectionItemScopeHandler/CollectionItemScopeHandler.ts
rename to packages/lib-engine/src/processTargets/modifiers/scopeHandlers/CollectionItemScopeHandler/CollectionItemScopeHandler.ts
diff --git a/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/CollectionItemScopeHandler/CollectionItemTextualScopeHandler.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/CollectionItemScopeHandler/CollectionItemTextualScopeHandler.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/CollectionItemScopeHandler/CollectionItemTextualScopeHandler.ts
rename to packages/lib-engine/src/processTargets/modifiers/scopeHandlers/CollectionItemScopeHandler/CollectionItemTextualScopeHandler.ts
diff --git a/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/CollectionItemScopeHandler/collectionItemTextualIterationScopeHandler.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/CollectionItemScopeHandler/collectionItemTextualIterationScopeHandler.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/CollectionItemScopeHandler/collectionItemTextualIterationScopeHandler.ts
rename to packages/lib-engine/src/processTargets/modifiers/scopeHandlers/CollectionItemScopeHandler/collectionItemTextualIterationScopeHandler.ts
diff --git a/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/CollectionItemScopeHandler/createTargetScope.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/CollectionItemScopeHandler/createTargetScope.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/CollectionItemScopeHandler/createTargetScope.ts
rename to packages/lib-engine/src/processTargets/modifiers/scopeHandlers/CollectionItemScopeHandler/createTargetScope.ts
diff --git a/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/CollectionItemScopeHandler/getInteriorRanges.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/CollectionItemScopeHandler/getInteriorRanges.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/CollectionItemScopeHandler/getInteriorRanges.ts
rename to packages/lib-engine/src/processTargets/modifiers/scopeHandlers/CollectionItemScopeHandler/getInteriorRanges.ts
diff --git a/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/CollectionItemScopeHandler/getSeparatorOccurrences.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/CollectionItemScopeHandler/getSeparatorOccurrences.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/CollectionItemScopeHandler/getSeparatorOccurrences.ts
rename to packages/lib-engine/src/processTargets/modifiers/scopeHandlers/CollectionItemScopeHandler/getSeparatorOccurrences.ts
diff --git a/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/ConditionalScopeHandler.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/ConditionalScopeHandler.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/ConditionalScopeHandler.ts
rename to packages/lib-engine/src/processTargets/modifiers/scopeHandlers/ConditionalScopeHandler.ts
diff --git a/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/DocumentScopeHandler.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/DocumentScopeHandler.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/DocumentScopeHandler.ts
rename to packages/lib-engine/src/processTargets/modifiers/scopeHandlers/DocumentScopeHandler.ts
diff --git a/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/FallbackScopeHandler.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/FallbackScopeHandler.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/FallbackScopeHandler.ts
rename to packages/lib-engine/src/processTargets/modifiers/scopeHandlers/FallbackScopeHandler.ts
diff --git a/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/IdentifierScopeHandler.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/IdentifierScopeHandler.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/IdentifierScopeHandler.ts
rename to packages/lib-engine/src/processTargets/modifiers/scopeHandlers/IdentifierScopeHandler.ts
diff --git a/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/IteratorInfo.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/IteratorInfo.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/IteratorInfo.ts
rename to packages/lib-engine/src/processTargets/modifiers/scopeHandlers/IteratorInfo.ts
diff --git a/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/LineScopeHandler.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/LineScopeHandler.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/LineScopeHandler.ts
rename to packages/lib-engine/src/processTargets/modifiers/scopeHandlers/LineScopeHandler.ts
diff --git a/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/NestedScopeHandler.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/NestedScopeHandler.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/NestedScopeHandler.ts
rename to packages/lib-engine/src/processTargets/modifiers/scopeHandlers/NestedScopeHandler.ts
diff --git a/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/NotHierarchicalScopeError.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/NotHierarchicalScopeError.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/NotHierarchicalScopeError.ts
rename to packages/lib-engine/src/processTargets/modifiers/scopeHandlers/NotHierarchicalScopeError.ts
diff --git a/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/NotebookCellApiScopeHandler.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/NotebookCellApiScopeHandler.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/NotebookCellApiScopeHandler.ts
rename to packages/lib-engine/src/processTargets/modifiers/scopeHandlers/NotebookCellApiScopeHandler.ts
diff --git a/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/NotebookCellScopeHandler.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/NotebookCellScopeHandler.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/NotebookCellScopeHandler.ts
rename to packages/lib-engine/src/processTargets/modifiers/scopeHandlers/NotebookCellScopeHandler.ts
diff --git a/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/ParagraphScopeHandler.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/ParagraphScopeHandler.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/ParagraphScopeHandler.ts
rename to packages/lib-engine/src/processTargets/modifiers/scopeHandlers/ParagraphScopeHandler.ts
diff --git a/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/RegexScopeHandler.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/RegexScopeHandler.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/RegexScopeHandler.ts
rename to packages/lib-engine/src/processTargets/modifiers/scopeHandlers/RegexScopeHandler.ts
diff --git a/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/ScopeHandlerCache.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/ScopeHandlerCache.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/ScopeHandlerCache.ts
rename to packages/lib-engine/src/processTargets/modifiers/scopeHandlers/ScopeHandlerCache.ts
diff --git a/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/ScopeHandlerFactory.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/ScopeHandlerFactory.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/ScopeHandlerFactory.ts
rename to packages/lib-engine/src/processTargets/modifiers/scopeHandlers/ScopeHandlerFactory.ts
diff --git a/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/ScopeHandlerFactoryImpl.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/ScopeHandlerFactoryImpl.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/ScopeHandlerFactoryImpl.ts
rename to packages/lib-engine/src/processTargets/modifiers/scopeHandlers/ScopeHandlerFactoryImpl.ts
diff --git a/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/SentenceScopeHandler/SentenceScopeHandler.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/SentenceScopeHandler/SentenceScopeHandler.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/SentenceScopeHandler/SentenceScopeHandler.ts
rename to packages/lib-engine/src/processTargets/modifiers/scopeHandlers/SentenceScopeHandler/SentenceScopeHandler.ts
diff --git a/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/SentenceScopeHandler/SentenceSegmenter.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/SentenceScopeHandler/SentenceSegmenter.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/SentenceScopeHandler/SentenceSegmenter.ts
rename to packages/lib-engine/src/processTargets/modifiers/scopeHandlers/SentenceScopeHandler/SentenceSegmenter.ts
diff --git a/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/SortedScopeHandler.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/SortedScopeHandler.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/SortedScopeHandler.ts
rename to packages/lib-engine/src/processTargets/modifiers/scopeHandlers/SortedScopeHandler.ts
diff --git a/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/InteriorScopeHandler.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/InteriorScopeHandler.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/InteriorScopeHandler.ts
rename to packages/lib-engine/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/InteriorScopeHandler.ts
diff --git a/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/SurroundingPairInteriorScopeHandler.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/SurroundingPairInteriorScopeHandler.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/SurroundingPairInteriorScopeHandler.ts
rename to packages/lib-engine/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/SurroundingPairInteriorScopeHandler.ts
diff --git a/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/SurroundingPairScopeHandler.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/SurroundingPairScopeHandler.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/SurroundingPairScopeHandler.ts
rename to packages/lib-engine/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/SurroundingPairScopeHandler.ts
diff --git a/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/createTargetScope.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/createTargetScope.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/createTargetScope.ts
rename to packages/lib-engine/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/createTargetScope.ts
diff --git a/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/delimiterMaps.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/delimiterMaps.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/delimiterMaps.ts
rename to packages/lib-engine/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/delimiterMaps.ts
diff --git a/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/getDelimiterOccurrences.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/getDelimiterOccurrences.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/getDelimiterOccurrences.ts
rename to packages/lib-engine/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/getDelimiterOccurrences.ts
diff --git a/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/getDelimiterRegex.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/getDelimiterRegex.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/getDelimiterRegex.ts
rename to packages/lib-engine/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/getDelimiterRegex.ts
diff --git a/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/getIndividualDelimiters.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/getIndividualDelimiters.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/getIndividualDelimiters.ts
rename to packages/lib-engine/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/getIndividualDelimiters.ts
diff --git a/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/getSurroundingPairOccurrences.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/getSurroundingPairOccurrences.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/getSurroundingPairOccurrences.ts
rename to packages/lib-engine/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/getSurroundingPairOccurrences.ts
diff --git a/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/index.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/index.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/index.ts
rename to packages/lib-engine/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/index.ts
diff --git a/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/types.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/types.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/types.ts
rename to packages/lib-engine/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/types.ts
diff --git a/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/TokenScopeHandler.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/TokenScopeHandler.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/TokenScopeHandler.ts
rename to packages/lib-engine/src/processTargets/modifiers/scopeHandlers/TokenScopeHandler.ts
diff --git a/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/TreeSitterScopeHandler/BaseTreeSitterScopeHandler.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/TreeSitterScopeHandler/BaseTreeSitterScopeHandler.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/TreeSitterScopeHandler/BaseTreeSitterScopeHandler.ts
rename to packages/lib-engine/src/processTargets/modifiers/scopeHandlers/TreeSitterScopeHandler/BaseTreeSitterScopeHandler.ts
diff --git a/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/TreeSitterScopeHandler/TreeSitterIterationScopeHandler.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/TreeSitterScopeHandler/TreeSitterIterationScopeHandler.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/TreeSitterScopeHandler/TreeSitterIterationScopeHandler.ts
rename to packages/lib-engine/src/processTargets/modifiers/scopeHandlers/TreeSitterScopeHandler/TreeSitterIterationScopeHandler.ts
diff --git a/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/TreeSitterScopeHandler/TreeSitterScopeHandler.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/TreeSitterScopeHandler/TreeSitterScopeHandler.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/TreeSitterScopeHandler/TreeSitterScopeHandler.ts
rename to packages/lib-engine/src/processTargets/modifiers/scopeHandlers/TreeSitterScopeHandler/TreeSitterScopeHandler.ts
diff --git a/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/TreeSitterScopeHandler/captureUtils.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/TreeSitterScopeHandler/captureUtils.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/TreeSitterScopeHandler/captureUtils.ts
rename to packages/lib-engine/src/processTargets/modifiers/scopeHandlers/TreeSitterScopeHandler/captureUtils.ts
diff --git a/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/TreeSitterScopeHandler/getQuerySearchRange.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/TreeSitterScopeHandler/getQuerySearchRange.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/TreeSitterScopeHandler/getQuerySearchRange.ts
rename to packages/lib-engine/src/processTargets/modifiers/scopeHandlers/TreeSitterScopeHandler/getQuerySearchRange.ts
diff --git a/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/TreeSitterScopeHandler/index.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/TreeSitterScopeHandler/index.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/TreeSitterScopeHandler/index.ts
rename to packages/lib-engine/src/processTargets/modifiers/scopeHandlers/TreeSitterScopeHandler/index.ts
diff --git a/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/TreeSitterScopeHandler/mergeAdjacentBy.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/TreeSitterScopeHandler/mergeAdjacentBy.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/TreeSitterScopeHandler/mergeAdjacentBy.ts
rename to packages/lib-engine/src/processTargets/modifiers/scopeHandlers/TreeSitterScopeHandler/mergeAdjacentBy.ts
diff --git a/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/WordScopeHandler/WordScopeHandler.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/WordScopeHandler/WordScopeHandler.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/WordScopeHandler/WordScopeHandler.ts
rename to packages/lib-engine/src/processTargets/modifiers/scopeHandlers/WordScopeHandler/WordScopeHandler.ts
diff --git a/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/WordScopeHandler/WordTokenizer.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/WordScopeHandler/WordTokenizer.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/WordScopeHandler/WordTokenizer.ts
rename to packages/lib-engine/src/processTargets/modifiers/scopeHandlers/WordScopeHandler/WordTokenizer.ts
diff --git a/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/compareTargetScopes.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/compareTargetScopes.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/compareTargetScopes.ts
rename to packages/lib-engine/src/processTargets/modifiers/scopeHandlers/compareTargetScopes.ts
diff --git a/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/index.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/index.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/index.ts
rename to packages/lib-engine/src/processTargets/modifiers/scopeHandlers/index.ts
diff --git a/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/isPreferredOverHelper.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/isPreferredOverHelper.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/isPreferredOverHelper.ts
rename to packages/lib-engine/src/processTargets/modifiers/scopeHandlers/isPreferredOverHelper.ts
diff --git a/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/scope.types.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/scope.types.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/scope.types.ts
rename to packages/lib-engine/src/processTargets/modifiers/scopeHandlers/scope.types.ts
diff --git a/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/scopeHandler.types.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/scopeHandler.types.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/scopeHandler.types.ts
rename to packages/lib-engine/src/processTargets/modifiers/scopeHandlers/scopeHandler.types.ts
diff --git a/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/scopeTypeUtil.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/scopeTypeUtil.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/scopeTypeUtil.ts
rename to packages/lib-engine/src/processTargets/modifiers/scopeHandlers/scopeTypeUtil.ts
diff --git a/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/shouldYieldScope.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/shouldYieldScope.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/shouldYieldScope.ts
rename to packages/lib-engine/src/processTargets/modifiers/scopeHandlers/shouldYieldScope.ts
diff --git a/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/util/OneWayNestedRangeFinder.test.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/util/OneWayNestedRangeFinder.test.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/util/OneWayNestedRangeFinder.test.ts
rename to packages/lib-engine/src/processTargets/modifiers/scopeHandlers/util/OneWayNestedRangeFinder.test.ts
diff --git a/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/util/OneWayNestedRangeFinder.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/util/OneWayNestedRangeFinder.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/util/OneWayNestedRangeFinder.ts
rename to packages/lib-engine/src/processTargets/modifiers/scopeHandlers/util/OneWayNestedRangeFinder.ts
diff --git a/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/util/OneWayRangeFinder.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/util/OneWayRangeFinder.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/util/OneWayRangeFinder.ts
rename to packages/lib-engine/src/processTargets/modifiers/scopeHandlers/util/OneWayRangeFinder.ts
diff --git a/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/util/getCollectionItemRemovalRange.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/util/getCollectionItemRemovalRange.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/util/getCollectionItemRemovalRange.ts
rename to packages/lib-engine/src/processTargets/modifiers/scopeHandlers/util/getCollectionItemRemovalRange.ts
diff --git a/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/util/isHintsEveryScope.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/util/isHintsEveryScope.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/util/isHintsEveryScope.ts
rename to packages/lib-engine/src/processTargets/modifiers/scopeHandlers/util/isHintsEveryScope.ts
diff --git a/packages/cursorless-engine/src/processTargets/modifiers/targetSequenceUtils.ts b/packages/lib-engine/src/processTargets/modifiers/targetSequenceUtils.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/modifiers/targetSequenceUtils.ts
rename to packages/lib-engine/src/processTargets/modifiers/targetSequenceUtils.ts
diff --git a/packages/cursorless-engine/src/processTargets/targets/BaseTarget.ts b/packages/lib-engine/src/processTargets/targets/BaseTarget.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/targets/BaseTarget.ts
rename to packages/lib-engine/src/processTargets/targets/BaseTarget.ts
diff --git a/packages/cursorless-engine/src/processTargets/targets/BoundedParagraphTarget.ts b/packages/lib-engine/src/processTargets/targets/BoundedParagraphTarget.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/targets/BoundedParagraphTarget.ts
rename to packages/lib-engine/src/processTargets/targets/BoundedParagraphTarget.ts
diff --git a/packages/cursorless-engine/src/processTargets/targets/DestinationImpl.ts b/packages/lib-engine/src/processTargets/targets/DestinationImpl.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/targets/DestinationImpl.ts
rename to packages/lib-engine/src/processTargets/targets/DestinationImpl.ts
diff --git a/packages/cursorless-engine/src/processTargets/targets/DocumentTarget.ts b/packages/lib-engine/src/processTargets/targets/DocumentTarget.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/targets/DocumentTarget.ts
rename to packages/lib-engine/src/processTargets/targets/DocumentTarget.ts
diff --git a/packages/cursorless-engine/src/processTargets/targets/HeadTailTarget.ts b/packages/lib-engine/src/processTargets/targets/HeadTailTarget.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/targets/HeadTailTarget.ts
rename to packages/lib-engine/src/processTargets/targets/HeadTailTarget.ts
diff --git a/packages/cursorless-engine/src/processTargets/targets/ImplicitTarget.ts b/packages/lib-engine/src/processTargets/targets/ImplicitTarget.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/targets/ImplicitTarget.ts
rename to packages/lib-engine/src/processTargets/targets/ImplicitTarget.ts
diff --git a/packages/cursorless-engine/src/processTargets/targets/InteriorTarget.ts b/packages/lib-engine/src/processTargets/targets/InteriorTarget.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/targets/InteriorTarget.ts
rename to packages/lib-engine/src/processTargets/targets/InteriorTarget.ts
diff --git a/packages/cursorless-engine/src/processTargets/targets/LineTarget.ts b/packages/lib-engine/src/processTargets/targets/LineTarget.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/targets/LineTarget.ts
rename to packages/lib-engine/src/processTargets/targets/LineTarget.ts
diff --git a/packages/cursorless-engine/src/processTargets/targets/NotebookCellDestination.ts b/packages/lib-engine/src/processTargets/targets/NotebookCellDestination.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/targets/NotebookCellDestination.ts
rename to packages/lib-engine/src/processTargets/targets/NotebookCellDestination.ts
diff --git a/packages/cursorless-engine/src/processTargets/targets/NotebookCellTarget.ts b/packages/lib-engine/src/processTargets/targets/NotebookCellTarget.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/targets/NotebookCellTarget.ts
rename to packages/lib-engine/src/processTargets/targets/NotebookCellTarget.ts
diff --git a/packages/cursorless-engine/src/processTargets/targets/ParagraphTarget.ts b/packages/lib-engine/src/processTargets/targets/ParagraphTarget.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/targets/ParagraphTarget.ts
rename to packages/lib-engine/src/processTargets/targets/ParagraphTarget.ts
diff --git a/packages/cursorless-engine/src/processTargets/targets/PlainTarget.ts b/packages/lib-engine/src/processTargets/targets/PlainTarget.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/targets/PlainTarget.ts
rename to packages/lib-engine/src/processTargets/targets/PlainTarget.ts
diff --git a/packages/cursorless-engine/src/processTargets/targets/RawSelectionTarget.ts b/packages/lib-engine/src/processTargets/targets/RawSelectionTarget.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/targets/RawSelectionTarget.ts
rename to packages/lib-engine/src/processTargets/targets/RawSelectionTarget.ts
diff --git a/packages/cursorless-engine/src/processTargets/targets/ScopeTypeTarget.ts b/packages/lib-engine/src/processTargets/targets/ScopeTypeTarget.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/targets/ScopeTypeTarget.ts
rename to packages/lib-engine/src/processTargets/targets/ScopeTypeTarget.ts
diff --git a/packages/cursorless-engine/src/processTargets/targets/SubTokenWordTarget.ts b/packages/lib-engine/src/processTargets/targets/SubTokenWordTarget.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/targets/SubTokenWordTarget.ts
rename to packages/lib-engine/src/processTargets/targets/SubTokenWordTarget.ts
diff --git a/packages/cursorless-engine/src/processTargets/targets/SurroundingPairTarget.ts b/packages/lib-engine/src/processTargets/targets/SurroundingPairTarget.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/targets/SurroundingPairTarget.ts
rename to packages/lib-engine/src/processTargets/targets/SurroundingPairTarget.ts
diff --git a/packages/cursorless-engine/src/processTargets/targets/TokenTarget.ts b/packages/lib-engine/src/processTargets/targets/TokenTarget.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/targets/TokenTarget.ts
rename to packages/lib-engine/src/processTargets/targets/TokenTarget.ts
diff --git a/packages/cursorless-engine/src/processTargets/targets/UntypedTarget.ts b/packages/lib-engine/src/processTargets/targets/UntypedTarget.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/targets/UntypedTarget.ts
rename to packages/lib-engine/src/processTargets/targets/UntypedTarget.ts
diff --git a/packages/cursorless-engine/src/processTargets/targets/index.ts b/packages/lib-engine/src/processTargets/targets/index.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/targets/index.ts
rename to packages/lib-engine/src/processTargets/targets/index.ts
diff --git a/packages/cursorless-engine/src/processTargets/targets/util/createContinuousRange.ts b/packages/lib-engine/src/processTargets/targets/util/createContinuousRange.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/targets/util/createContinuousRange.ts
rename to packages/lib-engine/src/processTargets/targets/util/createContinuousRange.ts
diff --git a/packages/cursorless-engine/src/processTargets/targets/util/insertionRemovalBehaviors/DelimitedSequenceInsertionRemovalBehavior.ts b/packages/lib-engine/src/processTargets/targets/util/insertionRemovalBehaviors/DelimitedSequenceInsertionRemovalBehavior.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/targets/util/insertionRemovalBehaviors/DelimitedSequenceInsertionRemovalBehavior.ts
rename to packages/lib-engine/src/processTargets/targets/util/insertionRemovalBehaviors/DelimitedSequenceInsertionRemovalBehavior.ts
diff --git a/packages/cursorless-engine/src/processTargets/targets/util/insertionRemovalBehaviors/TokenInsertionRemovalBehavior.ts b/packages/lib-engine/src/processTargets/targets/util/insertionRemovalBehaviors/TokenInsertionRemovalBehavior.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/targets/util/insertionRemovalBehaviors/TokenInsertionRemovalBehavior.ts
rename to packages/lib-engine/src/processTargets/targets/util/insertionRemovalBehaviors/TokenInsertionRemovalBehavior.ts
diff --git a/packages/cursorless-engine/src/processTargets/targets/util/insertionRemovalBehaviors/getSmartRemovalTarget.ts b/packages/lib-engine/src/processTargets/targets/util/insertionRemovalBehaviors/getSmartRemovalTarget.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/targets/util/insertionRemovalBehaviors/getSmartRemovalTarget.ts
rename to packages/lib-engine/src/processTargets/targets/util/insertionRemovalBehaviors/getSmartRemovalTarget.ts
diff --git a/packages/cursorless-engine/src/processTargets/targets/util/insertionRemovalBehaviors/insertionRemovalBehavior.types.ts b/packages/lib-engine/src/processTargets/targets/util/insertionRemovalBehaviors/insertionRemovalBehavior.types.ts
similarity index 100%
rename from packages/cursorless-engine/src/processTargets/targets/util/insertionRemovalBehaviors/insertionRemovalBehavior.types.ts
rename to packages/lib-engine/src/processTargets/targets/util/insertionRemovalBehaviors/insertionRemovalBehavior.types.ts
diff --git a/packages/cursorless-engine/src/runCommand.ts b/packages/lib-engine/src/runCommand.ts
similarity index 100%
rename from packages/cursorless-engine/src/runCommand.ts
rename to packages/lib-engine/src/runCommand.ts
diff --git a/packages/cursorless-engine/src/scopeProviders/ScopeInfoProvider.ts b/packages/lib-engine/src/scopeProviders/ScopeInfoProvider.ts
similarity index 100%
rename from packages/cursorless-engine/src/scopeProviders/ScopeInfoProvider.ts
rename to packages/lib-engine/src/scopeProviders/ScopeInfoProvider.ts
diff --git a/packages/cursorless-engine/src/scopeProviders/ScopeRangeProvider.ts b/packages/lib-engine/src/scopeProviders/ScopeRangeProvider.ts
similarity index 100%
rename from packages/cursorless-engine/src/scopeProviders/ScopeRangeProvider.ts
rename to packages/lib-engine/src/scopeProviders/ScopeRangeProvider.ts
diff --git a/packages/cursorless-engine/src/scopeProviders/ScopeRangeWatcher.ts b/packages/lib-engine/src/scopeProviders/ScopeRangeWatcher.ts
similarity index 100%
rename from packages/cursorless-engine/src/scopeProviders/ScopeRangeWatcher.ts
rename to packages/lib-engine/src/scopeProviders/ScopeRangeWatcher.ts
diff --git a/packages/cursorless-engine/src/scopeProviders/ScopeSupportChecker.ts b/packages/lib-engine/src/scopeProviders/ScopeSupportChecker.ts
similarity index 100%
rename from packages/cursorless-engine/src/scopeProviders/ScopeSupportChecker.ts
rename to packages/lib-engine/src/scopeProviders/ScopeSupportChecker.ts
diff --git a/packages/cursorless-engine/src/scopeProviders/ScopeSupportWatcher.ts b/packages/lib-engine/src/scopeProviders/ScopeSupportWatcher.ts
similarity index 100%
rename from packages/cursorless-engine/src/scopeProviders/ScopeSupportWatcher.ts
rename to packages/lib-engine/src/scopeProviders/ScopeSupportWatcher.ts
diff --git a/packages/cursorless-engine/src/scopeProviders/getIterationRange.ts b/packages/lib-engine/src/scopeProviders/getIterationRange.ts
similarity index 100%
rename from packages/cursorless-engine/src/scopeProviders/getIterationRange.ts
rename to packages/lib-engine/src/scopeProviders/getIterationRange.ts
diff --git a/packages/cursorless-engine/src/scopeProviders/getIterationScopeRanges.ts b/packages/lib-engine/src/scopeProviders/getIterationScopeRanges.ts
similarity index 100%
rename from packages/cursorless-engine/src/scopeProviders/getIterationScopeRanges.ts
rename to packages/lib-engine/src/scopeProviders/getIterationScopeRanges.ts
diff --git a/packages/cursorless-engine/src/scopeProviders/getScopeRanges.ts b/packages/lib-engine/src/scopeProviders/getScopeRanges.ts
similarity index 100%
rename from packages/cursorless-engine/src/scopeProviders/getScopeRanges.ts
rename to packages/lib-engine/src/scopeProviders/getScopeRanges.ts
diff --git a/packages/cursorless-engine/src/scopeProviders/getTargetRanges.ts b/packages/lib-engine/src/scopeProviders/getTargetRanges.ts
similarity index 100%
rename from packages/cursorless-engine/src/scopeProviders/getTargetRanges.ts
rename to packages/lib-engine/src/scopeProviders/getTargetRanges.ts
diff --git a/packages/cursorless-engine/src/scopeProviders/scopeTypeToString.ts b/packages/lib-engine/src/scopeProviders/scopeTypeToString.ts
similarity index 100%
rename from packages/cursorless-engine/src/scopeProviders/scopeTypeToString.ts
rename to packages/lib-engine/src/scopeProviders/scopeTypeToString.ts
diff --git a/packages/cursorless-engine/src/scripts/transformRecordedTests/checkMarks.ts b/packages/lib-engine/src/scripts/transformRecordedTests/checkMarks.ts
similarity index 100%
rename from packages/cursorless-engine/src/scripts/transformRecordedTests/checkMarks.ts
rename to packages/lib-engine/src/scripts/transformRecordedTests/checkMarks.ts
diff --git a/packages/cursorless-engine/src/scripts/transformRecordedTests/index.ts b/packages/lib-engine/src/scripts/transformRecordedTests/index.ts
similarity index 100%
rename from packages/cursorless-engine/src/scripts/transformRecordedTests/index.ts
rename to packages/lib-engine/src/scripts/transformRecordedTests/index.ts
diff --git a/packages/cursorless-engine/src/scripts/transformRecordedTests/moveFile.ts b/packages/lib-engine/src/scripts/transformRecordedTests/moveFile.ts
similarity index 100%
rename from packages/cursorless-engine/src/scripts/transformRecordedTests/moveFile.ts
rename to packages/lib-engine/src/scripts/transformRecordedTests/moveFile.ts
diff --git a/packages/cursorless-engine/src/scripts/transformRecordedTests/transformFile.ts b/packages/lib-engine/src/scripts/transformRecordedTests/transformFile.ts
similarity index 100%
rename from packages/cursorless-engine/src/scripts/transformRecordedTests/transformFile.ts
rename to packages/lib-engine/src/scripts/transformRecordedTests/transformFile.ts
diff --git a/packages/cursorless-engine/src/scripts/transformRecordedTests/transformations/canonicalize.ts b/packages/lib-engine/src/scripts/transformRecordedTests/transformations/canonicalize.ts
similarity index 100%
rename from packages/cursorless-engine/src/scripts/transformRecordedTests/transformations/canonicalize.ts
rename to packages/lib-engine/src/scripts/transformRecordedTests/transformations/canonicalize.ts
diff --git a/packages/cursorless-engine/src/scripts/transformRecordedTests/transformations/identity.ts b/packages/lib-engine/src/scripts/transformRecordedTests/transformations/identity.ts
similarity index 100%
rename from packages/cursorless-engine/src/scripts/transformRecordedTests/transformations/identity.ts
rename to packages/lib-engine/src/scripts/transformRecordedTests/transformations/identity.ts
diff --git a/packages/cursorless-engine/src/scripts/transformRecordedTests/transformations/upgrade.ts b/packages/lib-engine/src/scripts/transformRecordedTests/transformations/upgrade.ts
similarity index 100%
rename from packages/cursorless-engine/src/scripts/transformRecordedTests/transformations/upgrade.ts
rename to packages/lib-engine/src/scripts/transformRecordedTests/transformations/upgrade.ts
diff --git a/packages/cursorless-engine/src/scripts/transformRecordedTests/transformations/upgradeFromVersion0.ts b/packages/lib-engine/src/scripts/transformRecordedTests/transformations/upgradeFromVersion0.ts
similarity index 100%
rename from packages/cursorless-engine/src/scripts/transformRecordedTests/transformations/upgradeFromVersion0.ts
rename to packages/lib-engine/src/scripts/transformRecordedTests/transformations/upgradeFromVersion0.ts
diff --git a/packages/cursorless-engine/src/scripts/transformRecordedTests/types.ts b/packages/lib-engine/src/scripts/transformRecordedTests/types.ts
similarity index 100%
rename from packages/cursorless-engine/src/scripts/transformRecordedTests/types.ts
rename to packages/lib-engine/src/scripts/transformRecordedTests/types.ts
diff --git a/packages/cursorless-engine/src/scripts/transformRecordedTests/upgradeDecorations.ts b/packages/lib-engine/src/scripts/transformRecordedTests/upgradeDecorations.ts
similarity index 100%
rename from packages/cursorless-engine/src/scripts/transformRecordedTests/upgradeDecorations.ts
rename to packages/lib-engine/src/scripts/transformRecordedTests/upgradeDecorations.ts
diff --git a/packages/cursorless-engine/src/snippets/snippetParser.test.ts b/packages/lib-engine/src/snippets/snippetParser.test.ts
similarity index 100%
rename from packages/cursorless-engine/src/snippets/snippetParser.test.ts
rename to packages/lib-engine/src/snippets/snippetParser.test.ts
diff --git a/packages/cursorless-engine/src/snippets/transformSnippetVariables.ts b/packages/lib-engine/src/snippets/transformSnippetVariables.ts
similarity index 100%
rename from packages/cursorless-engine/src/snippets/transformSnippetVariables.ts
rename to packages/lib-engine/src/snippets/transformSnippetVariables.ts
diff --git a/packages/cursorless-engine/src/snippets/vendor/vscodeSnippet/charCode.ts b/packages/lib-engine/src/snippets/vendor/vscodeSnippet/charCode.ts
old mode 100755
new mode 100644
similarity index 100%
rename from packages/cursorless-engine/src/snippets/vendor/vscodeSnippet/charCode.ts
rename to packages/lib-engine/src/snippets/vendor/vscodeSnippet/charCode.ts
diff --git a/packages/cursorless-engine/src/snippets/vendor/vscodeSnippet/snippetParser.ts b/packages/lib-engine/src/snippets/vendor/vscodeSnippet/snippetParser.ts
similarity index 100%
rename from packages/cursorless-engine/src/snippets/vendor/vscodeSnippet/snippetParser.ts
rename to packages/lib-engine/src/snippets/vendor/vscodeSnippet/snippetParser.ts
diff --git a/packages/cursorless-engine/src/snippets/vendor/vscodeSnippet/snippetVariables.ts b/packages/lib-engine/src/snippets/vendor/vscodeSnippet/snippetVariables.ts
similarity index 100%
rename from packages/cursorless-engine/src/snippets/vendor/vscodeSnippet/snippetVariables.ts
rename to packages/lib-engine/src/snippets/vendor/vscodeSnippet/snippetVariables.ts
diff --git a/packages/cursorless-engine/src/spokenForms/CustomSpokenForms.ts b/packages/lib-engine/src/spokenForms/CustomSpokenForms.ts
similarity index 100%
rename from packages/cursorless-engine/src/spokenForms/CustomSpokenForms.ts
rename to packages/lib-engine/src/spokenForms/CustomSpokenForms.ts
diff --git a/packages/cursorless-engine/src/spokenForms/SpokenFormMap.ts b/packages/lib-engine/src/spokenForms/SpokenFormMap.ts
similarity index 100%
rename from packages/cursorless-engine/src/spokenForms/SpokenFormMap.ts
rename to packages/lib-engine/src/spokenForms/SpokenFormMap.ts
diff --git a/packages/cursorless-engine/src/spokenForms/defaultSpokenFormMap.ts b/packages/lib-engine/src/spokenForms/defaultSpokenFormMap.ts
similarity index 100%
rename from packages/cursorless-engine/src/spokenForms/defaultSpokenFormMap.ts
rename to packages/lib-engine/src/spokenForms/defaultSpokenFormMap.ts
diff --git a/packages/cursorless-engine/src/spokenForms/defaultSpokenFormMap.types.ts b/packages/lib-engine/src/spokenForms/defaultSpokenFormMap.types.ts
similarity index 100%
rename from packages/cursorless-engine/src/spokenForms/defaultSpokenFormMap.types.ts
rename to packages/lib-engine/src/spokenForms/defaultSpokenFormMap.types.ts
diff --git a/packages/cursorless-engine/src/spokenForms/defaultSpokenFormMapCore.ts b/packages/lib-engine/src/spokenForms/defaultSpokenFormMapCore.ts
similarity index 100%
rename from packages/cursorless-engine/src/spokenForms/defaultSpokenFormMapCore.ts
rename to packages/lib-engine/src/spokenForms/defaultSpokenFormMapCore.ts
diff --git a/packages/cursorless-engine/src/spokenForms/graphemes.ts b/packages/lib-engine/src/spokenForms/graphemes.ts
similarity index 100%
rename from packages/cursorless-engine/src/spokenForms/graphemes.ts
rename to packages/lib-engine/src/spokenForms/graphemes.ts
diff --git a/packages/cursorless-engine/src/spokenForms/spokenFormMapUtil.ts b/packages/lib-engine/src/spokenForms/spokenFormMapUtil.ts
similarity index 100%
rename from packages/cursorless-engine/src/spokenForms/spokenFormMapUtil.ts
rename to packages/lib-engine/src/spokenForms/spokenFormMapUtil.ts
diff --git a/packages/cursorless-engine/src/test/fixtures/communitySnippets.fixture.ts b/packages/lib-engine/src/test/fixtures/communitySnippets.fixture.ts
similarity index 100%
rename from packages/cursorless-engine/src/test/fixtures/communitySnippets.fixture.ts
rename to packages/lib-engine/src/test/fixtures/communitySnippets.fixture.ts
diff --git a/packages/cursorless-engine/src/test/fixtures/multiAction.fixture.ts b/packages/lib-engine/src/test/fixtures/multiAction.fixture.ts
similarity index 100%
rename from packages/cursorless-engine/src/test/fixtures/multiAction.fixture.ts
rename to packages/lib-engine/src/test/fixtures/multiAction.fixture.ts
diff --git a/packages/cursorless-engine/src/test/fixtures/sentenceSegmeter.fixture.ts b/packages/lib-engine/src/test/fixtures/sentenceSegmeter.fixture.ts
similarity index 100%
rename from packages/cursorless-engine/src/test/fixtures/sentenceSegmeter.fixture.ts
rename to packages/lib-engine/src/test/fixtures/sentenceSegmeter.fixture.ts
diff --git a/packages/cursorless-engine/src/test/fixtures/spokenFormTest.ts b/packages/lib-engine/src/test/fixtures/spokenFormTest.ts
similarity index 100%
rename from packages/cursorless-engine/src/test/fixtures/spokenFormTest.ts
rename to packages/lib-engine/src/test/fixtures/spokenFormTest.ts
diff --git a/packages/cursorless-engine/src/test/fixtures/subtoken.fixture.ts b/packages/lib-engine/src/test/fixtures/subtoken.fixture.ts
similarity index 100%
rename from packages/cursorless-engine/src/test/fixtures/subtoken.fixture.ts
rename to packages/lib-engine/src/test/fixtures/subtoken.fixture.ts
diff --git a/packages/cursorless-engine/src/test/fixtures/synonymousSpokenForms.fixture.ts b/packages/lib-engine/src/test/fixtures/synonymousSpokenForms.fixture.ts
similarity index 100%
rename from packages/cursorless-engine/src/test/fixtures/synonymousSpokenForms.fixture.ts
rename to packages/lib-engine/src/test/fixtures/synonymousSpokenForms.fixture.ts
diff --git a/packages/cursorless-engine/src/test/fixtures/talonApi.fixture.ts b/packages/lib-engine/src/test/fixtures/talonApi.fixture.ts
similarity index 100%
rename from packages/cursorless-engine/src/test/fixtures/talonApi.fixture.ts
rename to packages/lib-engine/src/test/fixtures/talonApi.fixture.ts
diff --git a/packages/cursorless-engine/src/test/scopes.test.ts b/packages/lib-engine/src/test/scopes.test.ts
similarity index 100%
rename from packages/cursorless-engine/src/test/scopes.test.ts
rename to packages/lib-engine/src/test/scopes.test.ts
diff --git a/packages/cursorless-engine/src/test/sentenceSegmenter.test.ts b/packages/lib-engine/src/test/sentenceSegmenter.test.ts
similarity index 100%
rename from packages/cursorless-engine/src/test/sentenceSegmenter.test.ts
rename to packages/lib-engine/src/test/sentenceSegmenter.test.ts
diff --git a/packages/cursorless-engine/src/test/spokenForms.talon.test.ts b/packages/lib-engine/src/test/spokenForms.talon.test.ts
similarity index 100%
rename from packages/cursorless-engine/src/test/spokenForms.talon.test.ts
rename to packages/lib-engine/src/test/spokenForms.talon.test.ts
diff --git a/packages/cursorless-engine/src/test/subtoken.test.ts b/packages/lib-engine/src/test/subtoken.test.ts
similarity index 100%
rename from packages/cursorless-engine/src/test/subtoken.test.ts
rename to packages/lib-engine/src/test/subtoken.test.ts
diff --git a/packages/cursorless-engine/src/testUtil/Performance.ts b/packages/lib-engine/src/testUtil/Performance.ts
similarity index 100%
rename from packages/cursorless-engine/src/testUtil/Performance.ts
rename to packages/lib-engine/src/testUtil/Performance.ts
diff --git a/packages/cursorless-engine/src/testUtil/TalonRepl.ts b/packages/lib-engine/src/testUtil/TalonRepl.ts
similarity index 100%
rename from packages/cursorless-engine/src/testUtil/TalonRepl.ts
rename to packages/lib-engine/src/testUtil/TalonRepl.ts
diff --git a/packages/cursorless-engine/src/testUtil/TestFileSystem.ts b/packages/lib-engine/src/testUtil/TestFileSystem.ts
similarity index 100%
rename from packages/cursorless-engine/src/testUtil/TestFileSystem.ts
rename to packages/lib-engine/src/testUtil/TestFileSystem.ts
diff --git a/packages/cursorless-engine/src/testUtil/TestTextEditor.ts b/packages/lib-engine/src/testUtil/TestTextEditor.ts
similarity index 100%
rename from packages/cursorless-engine/src/testUtil/TestTextEditor.ts
rename to packages/lib-engine/src/testUtil/TestTextEditor.ts
diff --git a/packages/cursorless-engine/src/testUtil/TestTreeSitter.ts b/packages/lib-engine/src/testUtil/TestTreeSitter.ts
similarity index 100%
rename from packages/cursorless-engine/src/testUtil/TestTreeSitter.ts
rename to packages/lib-engine/src/testUtil/TestTreeSitter.ts
diff --git a/packages/cursorless-engine/src/testUtil/createTestEnvironment.ts b/packages/lib-engine/src/testUtil/createTestEnvironment.ts
similarity index 100%
rename from packages/cursorless-engine/src/testUtil/createTestEnvironment.ts
rename to packages/lib-engine/src/testUtil/createTestEnvironment.ts
diff --git a/packages/cursorless-engine/src/testUtil/extractTargetKeys.ts b/packages/lib-engine/src/testUtil/extractTargetKeys.ts
similarity index 100%
rename from packages/cursorless-engine/src/testUtil/extractTargetKeys.ts
rename to packages/lib-engine/src/testUtil/extractTargetKeys.ts
diff --git a/packages/cursorless-engine/src/testUtil/plainObjectToTarget.ts b/packages/lib-engine/src/testUtil/plainObjectToTarget.ts
similarity index 100%
rename from packages/cursorless-engine/src/testUtil/plainObjectToTarget.ts
rename to packages/lib-engine/src/testUtil/plainObjectToTarget.ts
diff --git a/packages/cursorless-engine/src/testUtil/serializeHeader.ts b/packages/lib-engine/src/testUtil/serializeHeader.ts
similarity index 100%
rename from packages/cursorless-engine/src/testUtil/serializeHeader.ts
rename to packages/lib-engine/src/testUtil/serializeHeader.ts
diff --git a/packages/cursorless-engine/src/testUtil/serializeScopeFixture.ts b/packages/lib-engine/src/testUtil/serializeScopeFixture.ts
similarity index 100%
rename from packages/cursorless-engine/src/testUtil/serializeScopeFixture.ts
rename to packages/lib-engine/src/testUtil/serializeScopeFixture.ts
diff --git a/packages/cursorless-engine/src/testUtil/serializeTargetRange.ts b/packages/lib-engine/src/testUtil/serializeTargetRange.ts
similarity index 100%
rename from packages/cursorless-engine/src/testUtil/serializeTargetRange.ts
rename to packages/lib-engine/src/testUtil/serializeTargetRange.ts
diff --git a/packages/cursorless-engine/src/tokenGraphemeSplitter/index.ts b/packages/lib-engine/src/tokenGraphemeSplitter/index.ts
similarity index 100%
rename from packages/cursorless-engine/src/tokenGraphemeSplitter/index.ts
rename to packages/lib-engine/src/tokenGraphemeSplitter/index.ts
diff --git a/packages/cursorless-engine/src/tokenGraphemeSplitter/tokenGraphemeSplitter.test.ts b/packages/lib-engine/src/tokenGraphemeSplitter/tokenGraphemeSplitter.test.ts
similarity index 100%
rename from packages/cursorless-engine/src/tokenGraphemeSplitter/tokenGraphemeSplitter.test.ts
rename to packages/lib-engine/src/tokenGraphemeSplitter/tokenGraphemeSplitter.test.ts
diff --git a/packages/cursorless-engine/src/tokenGraphemeSplitter/tokenGraphemeSplitter.ts b/packages/lib-engine/src/tokenGraphemeSplitter/tokenGraphemeSplitter.ts
similarity index 100%
rename from packages/cursorless-engine/src/tokenGraphemeSplitter/tokenGraphemeSplitter.ts
rename to packages/lib-engine/src/tokenGraphemeSplitter/tokenGraphemeSplitter.ts
diff --git a/packages/cursorless-engine/src/tokenizer/index.ts b/packages/lib-engine/src/tokenizer/index.ts
similarity index 100%
rename from packages/cursorless-engine/src/tokenizer/index.ts
rename to packages/lib-engine/src/tokenizer/index.ts
diff --git a/packages/cursorless-engine/src/tokenizer/tokenizer.test.ts b/packages/lib-engine/src/tokenizer/tokenizer.test.ts
similarity index 100%
rename from packages/cursorless-engine/src/tokenizer/tokenizer.test.ts
rename to packages/lib-engine/src/tokenizer/tokenizer.test.ts
diff --git a/packages/cursorless-engine/src/tokenizer/tokenizer.ts b/packages/lib-engine/src/tokenizer/tokenizer.ts
similarity index 100%
rename from packages/cursorless-engine/src/tokenizer/tokenizer.ts
rename to packages/lib-engine/src/tokenizer/tokenizer.ts
diff --git a/packages/cursorless-engine/src/tokenizer/tokenizer.types.ts b/packages/lib-engine/src/tokenizer/tokenizer.types.ts
similarity index 100%
rename from packages/cursorless-engine/src/tokenizer/tokenizer.types.ts
rename to packages/lib-engine/src/tokenizer/tokenizer.types.ts
diff --git a/packages/cursorless-engine/src/typings/TargetDescriptor.ts b/packages/lib-engine/src/typings/TargetDescriptor.ts
similarity index 100%
rename from packages/cursorless-engine/src/typings/TargetDescriptor.ts
rename to packages/lib-engine/src/typings/TargetDescriptor.ts
diff --git a/packages/cursorless-engine/src/typings/Types.ts b/packages/lib-engine/src/typings/Types.ts
similarity index 100%
rename from packages/cursorless-engine/src/typings/Types.ts
rename to packages/lib-engine/src/typings/Types.ts
diff --git a/packages/cursorless-engine/src/typings/target.types.ts b/packages/lib-engine/src/typings/target.types.ts
similarity index 100%
rename from packages/cursorless-engine/src/typings/target.types.ts
rename to packages/lib-engine/src/typings/target.types.ts
diff --git a/packages/cursorless-engine/src/typings/updateSelections.ts b/packages/lib-engine/src/typings/updateSelections.ts
similarity index 100%
rename from packages/cursorless-engine/src/typings/updateSelections.ts
rename to packages/lib-engine/src/typings/updateSelections.ts
diff --git a/packages/cursorless-engine/src/util/DecorationDebouncer.ts b/packages/lib-engine/src/util/DecorationDebouncer.ts
similarity index 100%
rename from packages/cursorless-engine/src/util/DecorationDebouncer.ts
rename to packages/lib-engine/src/util/DecorationDebouncer.ts
diff --git a/packages/cursorless-engine/src/util/allocateHats/HatMetrics.ts b/packages/lib-engine/src/util/allocateHats/HatMetrics.ts
similarity index 100%
rename from packages/cursorless-engine/src/util/allocateHats/HatMetrics.ts
rename to packages/lib-engine/src/util/allocateHats/HatMetrics.ts
diff --git a/packages/cursorless-engine/src/util/allocateHats/allocateHats.ts b/packages/lib-engine/src/util/allocateHats/allocateHats.ts
similarity index 100%
rename from packages/cursorless-engine/src/util/allocateHats/allocateHats.ts
rename to packages/lib-engine/src/util/allocateHats/allocateHats.ts
diff --git a/packages/cursorless-engine/src/util/allocateHats/chooseTokenHat.ts b/packages/lib-engine/src/util/allocateHats/chooseTokenHat.ts
similarity index 100%
rename from packages/cursorless-engine/src/util/allocateHats/chooseTokenHat.ts
rename to packages/lib-engine/src/util/allocateHats/chooseTokenHat.ts
diff --git a/packages/cursorless-engine/src/util/allocateHats/getDisplayLineMap.ts b/packages/lib-engine/src/util/allocateHats/getDisplayLineMap.ts
similarity index 100%
rename from packages/cursorless-engine/src/util/allocateHats/getDisplayLineMap.ts
rename to packages/lib-engine/src/util/allocateHats/getDisplayLineMap.ts
diff --git a/packages/cursorless-engine/src/util/allocateHats/getHatRankingContext.ts b/packages/lib-engine/src/util/allocateHats/getHatRankingContext.ts
similarity index 100%
rename from packages/cursorless-engine/src/util/allocateHats/getHatRankingContext.ts
rename to packages/lib-engine/src/util/allocateHats/getHatRankingContext.ts
diff --git a/packages/cursorless-engine/src/util/allocateHats/getRankedTokens.ts b/packages/lib-engine/src/util/allocateHats/getRankedTokens.ts
similarity index 100%
rename from packages/cursorless-engine/src/util/allocateHats/getRankedTokens.ts
rename to packages/lib-engine/src/util/allocateHats/getRankedTokens.ts
diff --git a/packages/cursorless-engine/src/util/allocateHats/getTokenComparator.ts b/packages/lib-engine/src/util/allocateHats/getTokenComparator.ts
similarity index 100%
rename from packages/cursorless-engine/src/util/allocateHats/getTokenComparator.ts
rename to packages/lib-engine/src/util/allocateHats/getTokenComparator.ts
diff --git a/packages/cursorless-engine/src/util/allocateHats/getTokensInRange.ts b/packages/lib-engine/src/util/allocateHats/getTokensInRange.ts
similarity index 100%
rename from packages/cursorless-engine/src/util/allocateHats/getTokensInRange.ts
rename to packages/lib-engine/src/util/allocateHats/getTokensInRange.ts
diff --git a/packages/cursorless-engine/src/util/allocateHats/index.ts b/packages/lib-engine/src/util/allocateHats/index.ts
similarity index 100%
rename from packages/cursorless-engine/src/util/allocateHats/index.ts
rename to packages/lib-engine/src/util/allocateHats/index.ts
diff --git a/packages/cursorless-engine/src/util/allocateHats/maxByFirstDiffering.test.ts b/packages/lib-engine/src/util/allocateHats/maxByFirstDiffering.test.ts
similarity index 100%
rename from packages/cursorless-engine/src/util/allocateHats/maxByFirstDiffering.test.ts
rename to packages/lib-engine/src/util/allocateHats/maxByFirstDiffering.test.ts
diff --git a/packages/cursorless-engine/src/util/allocateHats/maxByFirstDiffering.ts b/packages/lib-engine/src/util/allocateHats/maxByFirstDiffering.ts
similarity index 100%
rename from packages/cursorless-engine/src/util/allocateHats/maxByFirstDiffering.ts
rename to packages/lib-engine/src/util/allocateHats/maxByFirstDiffering.ts
diff --git a/packages/cursorless-engine/src/util/getMatchesInRange.ts b/packages/lib-engine/src/util/getMatchesInRange.ts
similarity index 100%
rename from packages/cursorless-engine/src/util/getMatchesInRange.ts
rename to packages/lib-engine/src/util/getMatchesInRange.ts
diff --git a/packages/cursorless-engine/src/util/getPartialTargetDescriptors.ts b/packages/lib-engine/src/util/getPartialTargetDescriptors.ts
similarity index 100%
rename from packages/cursorless-engine/src/util/getPartialTargetDescriptors.ts
rename to packages/lib-engine/src/util/getPartialTargetDescriptors.ts
diff --git a/packages/cursorless-engine/src/util/getPrimitiveTargets.ts b/packages/lib-engine/src/util/getPrimitiveTargets.ts
similarity index 100%
rename from packages/cursorless-engine/src/util/getPrimitiveTargets.ts
rename to packages/lib-engine/src/util/getPrimitiveTargets.ts
diff --git a/packages/cursorless-engine/src/util/getScopeType.ts b/packages/lib-engine/src/util/getScopeType.ts
similarity index 100%
rename from packages/cursorless-engine/src/util/getScopeType.ts
rename to packages/lib-engine/src/util/getScopeType.ts
diff --git a/packages/cursorless-engine/src/util/grammarHelpers.ts b/packages/lib-engine/src/util/grammarHelpers.ts
similarity index 100%
rename from packages/cursorless-engine/src/util/grammarHelpers.ts
rename to packages/lib-engine/src/util/grammarHelpers.ts
diff --git a/packages/cursorless-engine/src/util/map.ts b/packages/lib-engine/src/util/map.ts
similarity index 100%
rename from packages/cursorless-engine/src/util/map.ts
rename to packages/lib-engine/src/util/map.ts
diff --git a/packages/cursorless-engine/src/util/performDocumentEdits.ts b/packages/lib-engine/src/util/performDocumentEdits.ts
similarity index 100%
rename from packages/cursorless-engine/src/util/performDocumentEdits.ts
rename to packages/lib-engine/src/util/performDocumentEdits.ts
diff --git a/packages/cursorless-engine/src/util/rangeUtils.ts b/packages/lib-engine/src/util/rangeUtils.ts
similarity index 100%
rename from packages/cursorless-engine/src/util/rangeUtils.ts
rename to packages/lib-engine/src/util/rangeUtils.ts
diff --git a/packages/cursorless-engine/src/util/selectionUtils.ts b/packages/lib-engine/src/util/selectionUtils.ts
similarity index 100%
rename from packages/cursorless-engine/src/util/selectionUtils.ts
rename to packages/lib-engine/src/util/selectionUtils.ts
diff --git a/packages/cursorless-engine/src/util/setIsEqual.ts b/packages/lib-engine/src/util/setIsEqual.ts
similarity index 100%
rename from packages/cursorless-engine/src/util/setIsEqual.ts
rename to packages/lib-engine/src/util/setIsEqual.ts
diff --git a/packages/cursorless-engine/src/util/targetUtils.ts b/packages/lib-engine/src/util/targetUtils.ts
similarity index 100%
rename from packages/cursorless-engine/src/util/targetUtils.ts
rename to packages/lib-engine/src/util/targetUtils.ts
diff --git a/packages/cursorless-engine/src/util/treeSitterUtils.ts b/packages/lib-engine/src/util/treeSitterUtils.ts
similarity index 100%
rename from packages/cursorless-engine/src/util/treeSitterUtils.ts
rename to packages/lib-engine/src/util/treeSitterUtils.ts
diff --git a/packages/cursorless-engine/src/util/tryConstructTarget.ts b/packages/lib-engine/src/util/tryConstructTarget.ts
similarity index 100%
rename from packages/cursorless-engine/src/util/tryConstructTarget.ts
rename to packages/lib-engine/src/util/tryConstructTarget.ts
diff --git a/packages/cursorless-engine/src/util/typeUtils.ts b/packages/lib-engine/src/util/typeUtils.ts
similarity index 100%
rename from packages/cursorless-engine/src/util/typeUtils.ts
rename to packages/lib-engine/src/util/typeUtils.ts
diff --git a/packages/cursorless-engine/src/util/unifyRanges.ts b/packages/lib-engine/src/util/unifyRanges.ts
similarity index 100%
rename from packages/cursorless-engine/src/util/unifyRanges.ts
rename to packages/lib-engine/src/util/unifyRanges.ts
diff --git a/packages/cursorless-everywhere-talon/tsconfig.json b/packages/lib-engine/tsconfig.json
similarity index 100%
rename from packages/cursorless-everywhere-talon/tsconfig.json
rename to packages/lib-engine/tsconfig.json
diff --git a/packages/neovim-common/package.json b/packages/lib-neovim-common/package.json
similarity index 100%
rename from packages/neovim-common/package.json
rename to packages/lib-neovim-common/package.json
diff --git a/packages/neovim-common/src/TestHelpers.ts b/packages/lib-neovim-common/src/TestHelpers.ts
similarity index 100%
rename from packages/neovim-common/src/TestHelpers.ts
rename to packages/lib-neovim-common/src/TestHelpers.ts
diff --git a/packages/neovim-common/src/getExtensionApi.ts b/packages/lib-neovim-common/src/getExtensionApi.ts
similarity index 100%
rename from packages/neovim-common/src/getExtensionApi.ts
rename to packages/lib-neovim-common/src/getExtensionApi.ts
diff --git a/packages/neovim-common/src/ide/neovim/NeovimCapabilities.ts b/packages/lib-neovim-common/src/ide/neovim/NeovimCapabilities.ts
similarity index 100%
rename from packages/neovim-common/src/ide/neovim/NeovimCapabilities.ts
rename to packages/lib-neovim-common/src/ide/neovim/NeovimCapabilities.ts
diff --git a/packages/neovim-common/src/ide/neovim/NeovimClipboard.ts b/packages/lib-neovim-common/src/ide/neovim/NeovimClipboard.ts
similarity index 100%
rename from packages/neovim-common/src/ide/neovim/NeovimClipboard.ts
rename to packages/lib-neovim-common/src/ide/neovim/NeovimClipboard.ts
diff --git a/packages/neovim-common/src/ide/neovim/NeovimConfiguration.ts b/packages/lib-neovim-common/src/ide/neovim/NeovimConfiguration.ts
similarity index 100%
rename from packages/neovim-common/src/ide/neovim/NeovimConfiguration.ts
rename to packages/lib-neovim-common/src/ide/neovim/NeovimConfiguration.ts
diff --git a/packages/neovim-common/src/ide/neovim/NeovimEdit.ts b/packages/lib-neovim-common/src/ide/neovim/NeovimEdit.ts
similarity index 100%
rename from packages/neovim-common/src/ide/neovim/NeovimEdit.ts
rename to packages/lib-neovim-common/src/ide/neovim/NeovimEdit.ts
diff --git a/packages/neovim-common/src/ide/neovim/NeovimEvents.ts b/packages/lib-neovim-common/src/ide/neovim/NeovimEvents.ts
similarity index 100%
rename from packages/neovim-common/src/ide/neovim/NeovimEvents.ts
rename to packages/lib-neovim-common/src/ide/neovim/NeovimEvents.ts
diff --git a/packages/neovim-common/src/ide/neovim/NeovimIDE.ts b/packages/lib-neovim-common/src/ide/neovim/NeovimIDE.ts
similarity index 100%
rename from packages/neovim-common/src/ide/neovim/NeovimIDE.ts
rename to packages/lib-neovim-common/src/ide/neovim/NeovimIDE.ts
diff --git a/packages/neovim-common/src/ide/neovim/NeovimKeyValueStore.ts b/packages/lib-neovim-common/src/ide/neovim/NeovimKeyValueStore.ts
similarity index 100%
rename from packages/neovim-common/src/ide/neovim/NeovimKeyValueStore.ts
rename to packages/lib-neovim-common/src/ide/neovim/NeovimKeyValueStore.ts
diff --git a/packages/neovim-common/src/ide/neovim/NeovimMessages.ts b/packages/lib-neovim-common/src/ide/neovim/NeovimMessages.ts
similarity index 100%
rename from packages/neovim-common/src/ide/neovim/NeovimMessages.ts
rename to packages/lib-neovim-common/src/ide/neovim/NeovimMessages.ts
diff --git a/packages/neovim-common/src/ide/neovim/NeovimTextDocument.ts b/packages/lib-neovim-common/src/ide/neovim/NeovimTextDocument.ts
similarity index 100%
rename from packages/neovim-common/src/ide/neovim/NeovimTextDocument.ts
rename to packages/lib-neovim-common/src/ide/neovim/NeovimTextDocument.ts
diff --git a/packages/neovim-common/src/ide/neovim/NeovimTextEditor.ts b/packages/lib-neovim-common/src/ide/neovim/NeovimTextEditor.ts
similarity index 100%
rename from packages/neovim-common/src/ide/neovim/NeovimTextEditor.ts
rename to packages/lib-neovim-common/src/ide/neovim/NeovimTextEditor.ts
diff --git a/packages/neovim-common/src/ide/neovim/NeovimTextLine.ts b/packages/lib-neovim-common/src/ide/neovim/NeovimTextLine.ts
similarity index 100%
rename from packages/neovim-common/src/ide/neovim/NeovimTextLine.ts
rename to packages/lib-neovim-common/src/ide/neovim/NeovimTextLine.ts
diff --git a/packages/neovim-common/src/index.ts b/packages/lib-neovim-common/src/index.ts
similarity index 100%
rename from packages/neovim-common/src/index.ts
rename to packages/lib-neovim-common/src/index.ts
diff --git a/packages/neovim-common/src/neovimApi.ts b/packages/lib-neovim-common/src/neovimApi.ts
similarity index 100%
rename from packages/neovim-common/src/neovimApi.ts
rename to packages/lib-neovim-common/src/neovimApi.ts
diff --git a/packages/neovim-common/src/neovimHelpers.ts b/packages/lib-neovim-common/src/neovimHelpers.ts
similarity index 100%
rename from packages/neovim-common/src/neovimHelpers.ts
rename to packages/lib-neovim-common/src/neovimHelpers.ts
diff --git a/packages/neovim-common/src/runCommand.ts b/packages/lib-neovim-common/src/runCommand.ts
similarity index 100%
rename from packages/neovim-common/src/runCommand.ts
rename to packages/lib-neovim-common/src/runCommand.ts
diff --git a/packages/neovim-common/src/testUtil/openNewEditor.ts b/packages/lib-neovim-common/src/testUtil/openNewEditor.ts
similarity index 100%
rename from packages/neovim-common/src/testUtil/openNewEditor.ts
rename to packages/lib-neovim-common/src/testUtil/openNewEditor.ts
diff --git a/packages/cursorless-neovim-e2e/tsconfig.json b/packages/lib-neovim-common/tsconfig.json
similarity index 100%
rename from packages/cursorless-neovim-e2e/tsconfig.json
rename to packages/lib-neovim-common/tsconfig.json
diff --git a/packages/neovim-registry/package.json b/packages/lib-neovim-registry/package.json
similarity index 100%
rename from packages/neovim-registry/package.json
rename to packages/lib-neovim-registry/package.json
diff --git a/packages/neovim-registry/src/NeovimRegistry.ts b/packages/lib-neovim-registry/src/NeovimRegistry.ts
similarity index 100%
rename from packages/neovim-registry/src/NeovimRegistry.ts
rename to packages/lib-neovim-registry/src/NeovimRegistry.ts
diff --git a/packages/neovim-registry/src/index.ts b/packages/lib-neovim-registry/src/index.ts
similarity index 100%
rename from packages/neovim-registry/src/index.ts
rename to packages/lib-neovim-registry/src/index.ts
diff --git a/packages/cursorless-neovim/tsconfig.json b/packages/lib-neovim-registry/tsconfig.json
similarity index 100%
rename from packages/cursorless-neovim/tsconfig.json
rename to packages/lib-neovim-registry/tsconfig.json
diff --git a/packages/node-common/package.json b/packages/lib-node-common/package.json
similarity index 100%
rename from packages/node-common/package.json
rename to packages/lib-node-common/package.json
diff --git a/packages/node-common/src/Cheatsheet.ts b/packages/lib-node-common/src/Cheatsheet.ts
similarity index 100%
rename from packages/node-common/src/Cheatsheet.ts
rename to packages/lib-node-common/src/Cheatsheet.ts
diff --git a/packages/node-common/src/FileSystemCommandHistoryStorage.ts b/packages/lib-node-common/src/FileSystemCommandHistoryStorage.ts
similarity index 100%
rename from packages/node-common/src/FileSystemCommandHistoryStorage.ts
rename to packages/lib-node-common/src/FileSystemCommandHistoryStorage.ts
diff --git a/packages/node-common/src/FileSystemRawTreeSitterQueryProvider.ts b/packages/lib-node-common/src/FileSystemRawTreeSitterQueryProvider.ts
similarity index 100%
rename from packages/node-common/src/FileSystemRawTreeSitterQueryProvider.ts
rename to packages/lib-node-common/src/FileSystemRawTreeSitterQueryProvider.ts
diff --git a/packages/node-common/src/FileSystemTalonSpokenForms.ts b/packages/lib-node-common/src/FileSystemTalonSpokenForms.ts
similarity index 100%
rename from packages/node-common/src/FileSystemTalonSpokenForms.ts
rename to packages/lib-node-common/src/FileSystemTalonSpokenForms.ts
diff --git a/packages/node-common/src/FileSystemTutorialContentProvider.ts b/packages/lib-node-common/src/FileSystemTutorialContentProvider.ts
similarity index 100%
rename from packages/node-common/src/FileSystemTutorialContentProvider.ts
rename to packages/lib-node-common/src/FileSystemTutorialContentProvider.ts
diff --git a/packages/node-common/src/getCursorlessRepoRoot.ts b/packages/lib-node-common/src/getCursorlessRepoRoot.ts
similarity index 100%
rename from packages/node-common/src/getCursorlessRepoRoot.ts
rename to packages/lib-node-common/src/getCursorlessRepoRoot.ts
diff --git a/packages/node-common/src/getFixturePaths.ts b/packages/lib-node-common/src/getFixturePaths.ts
similarity index 100%
rename from packages/node-common/src/getFixturePaths.ts
rename to packages/lib-node-common/src/getFixturePaths.ts
diff --git a/packages/node-common/src/getScopeTestPathsRecursively.ts b/packages/lib-node-common/src/getScopeTestPathsRecursively.ts
similarity index 100%
rename from packages/node-common/src/getScopeTestPathsRecursively.ts
rename to packages/lib-node-common/src/getScopeTestPathsRecursively.ts
diff --git a/packages/node-common/src/index.ts b/packages/lib-node-common/src/index.ts
similarity index 100%
rename from packages/node-common/src/index.ts
rename to packages/lib-node-common/src/index.ts
diff --git a/packages/node-common/src/isOS.ts b/packages/lib-node-common/src/isOS.ts
similarity index 100%
rename from packages/node-common/src/isOS.ts
rename to packages/lib-node-common/src/isOS.ts
diff --git a/packages/node-common/src/loadFixture.ts b/packages/lib-node-common/src/loadFixture.ts
similarity index 100%
rename from packages/node-common/src/loadFixture.ts
rename to packages/lib-node-common/src/loadFixture.ts
diff --git a/packages/node-common/src/nodeGetRunMode.ts b/packages/lib-node-common/src/nodeGetRunMode.ts
similarity index 100%
rename from packages/node-common/src/nodeGetRunMode.ts
rename to packages/lib-node-common/src/nodeGetRunMode.ts
diff --git a/packages/node-common/src/runRecordedTest.ts b/packages/lib-node-common/src/runRecordedTest.ts
similarity index 100%
rename from packages/node-common/src/runRecordedTest.ts
rename to packages/lib-node-common/src/runRecordedTest.ts
diff --git a/packages/node-common/src/walkAsync.ts b/packages/lib-node-common/src/walkAsync.ts
similarity index 100%
rename from packages/node-common/src/walkAsync.ts
rename to packages/lib-node-common/src/walkAsync.ts
diff --git a/packages/node-common/src/walkSync.ts b/packages/lib-node-common/src/walkSync.ts
similarity index 100%
rename from packages/node-common/src/walkSync.ts
rename to packages/lib-node-common/src/walkSync.ts
diff --git a/packages/cursorless-tutorial/tsconfig.json b/packages/lib-node-common/tsconfig.json
similarity index 100%
rename from packages/cursorless-tutorial/tsconfig.json
rename to packages/lib-node-common/tsconfig.json
diff --git a/packages/sentence-parser/README.md b/packages/lib-sentence-parser/README.md
similarity index 100%
rename from packages/sentence-parser/README.md
rename to packages/lib-sentence-parser/README.md
diff --git a/packages/sentence-parser/package.json b/packages/lib-sentence-parser/package.json
similarity index 100%
rename from packages/sentence-parser/package.json
rename to packages/lib-sentence-parser/package.json
diff --git a/packages/sentence-parser/src/Match.ts b/packages/lib-sentence-parser/src/Match.ts
similarity index 100%
rename from packages/sentence-parser/src/Match.ts
rename to packages/lib-sentence-parser/src/Match.ts
diff --git a/packages/sentence-parser/src/index.ts b/packages/lib-sentence-parser/src/index.ts
similarity index 100%
rename from packages/sentence-parser/src/index.ts
rename to packages/lib-sentence-parser/src/index.ts
diff --git a/packages/sentence-parser/src/sbd.ts b/packages/lib-sentence-parser/src/sbd.ts
similarity index 100%
rename from packages/sentence-parser/src/sbd.ts
rename to packages/lib-sentence-parser/src/sbd.ts
diff --git a/packages/sentence-parser/src/stringHelper.ts b/packages/lib-sentence-parser/src/stringHelper.ts
similarity index 100%
rename from packages/sentence-parser/src/stringHelper.ts
rename to packages/lib-sentence-parser/src/stringHelper.ts
diff --git a/packages/sentence-parser/src/test/abbr.test.ts b/packages/lib-sentence-parser/src/test/abbr.test.ts
similarity index 100%
rename from packages/sentence-parser/src/test/abbr.test.ts
rename to packages/lib-sentence-parser/src/test/abbr.test.ts
diff --git a/packages/sentence-parser/src/test/empty.test.ts b/packages/lib-sentence-parser/src/test/empty.test.ts
similarity index 100%
rename from packages/sentence-parser/src/test/empty.test.ts
rename to packages/lib-sentence-parser/src/test/empty.test.ts
diff --git a/packages/sentence-parser/src/test/lists.test.ts b/packages/lib-sentence-parser/src/test/lists.test.ts
similarity index 100%
rename from packages/sentence-parser/src/test/lists.test.ts
rename to packages/lib-sentence-parser/src/test/lists.test.ts
diff --git a/packages/sentence-parser/src/test/multiple_sentences.test.ts b/packages/lib-sentence-parser/src/test/multiple_sentences.test.ts
similarity index 100%
rename from packages/sentence-parser/src/test/multiple_sentences.test.ts
rename to packages/lib-sentence-parser/src/test/multiple_sentences.test.ts
diff --git a/packages/sentence-parser/src/test/newline.test.ts b/packages/lib-sentence-parser/src/test/newline.test.ts
similarity index 100%
rename from packages/sentence-parser/src/test/newline.test.ts
rename to packages/lib-sentence-parser/src/test/newline.test.ts
diff --git a/packages/sentence-parser/src/test/preserve_whitespace.test.ts b/packages/lib-sentence-parser/src/test/preserve_whitespace.test.ts
similarity index 100%
rename from packages/sentence-parser/src/test/preserve_whitespace.test.ts
rename to packages/lib-sentence-parser/src/test/preserve_whitespace.test.ts
diff --git a/packages/sentence-parser/src/test/single_sentence.test.ts b/packages/lib-sentence-parser/src/test/single_sentence.test.ts
similarity index 100%
rename from packages/sentence-parser/src/test/single_sentence.test.ts
rename to packages/lib-sentence-parser/src/test/single_sentence.test.ts
diff --git a/packages/sentence-parser/src/test/symbols.test.ts b/packages/lib-sentence-parser/src/test/symbols.test.ts
similarity index 100%
rename from packages/sentence-parser/src/test/symbols.test.ts
rename to packages/lib-sentence-parser/src/test/symbols.test.ts
diff --git a/packages/cursorless-vscode-e2e/tsconfig.json b/packages/lib-sentence-parser/tsconfig.json
similarity index 100%
rename from packages/cursorless-vscode-e2e/tsconfig.json
rename to packages/lib-sentence-parser/tsconfig.json
diff --git a/packages/cursorless-everywhere-talon-core/package.json b/packages/lib-talon-core/package.json
similarity index 100%
rename from packages/cursorless-everywhere-talon-core/package.json
rename to packages/lib-talon-core/package.json
diff --git a/packages/cursorless-everywhere-talon-core/src/README.md b/packages/lib-talon-core/src/README.md
similarity index 100%
rename from packages/cursorless-everywhere-talon-core/src/README.md
rename to packages/lib-talon-core/src/README.md
diff --git a/packages/cursorless-everywhere-talon-core/src/constructTestHelpers.ts b/packages/lib-talon-core/src/constructTestHelpers.ts
similarity index 100%
rename from packages/cursorless-everywhere-talon-core/src/constructTestHelpers.ts
rename to packages/lib-talon-core/src/constructTestHelpers.ts
diff --git a/packages/cursorless-everywhere-talon-core/src/extension.ts b/packages/lib-talon-core/src/extension.ts
similarity index 100%
rename from packages/cursorless-everywhere-talon-core/src/extension.ts
rename to packages/lib-talon-core/src/extension.ts
diff --git a/packages/cursorless-everywhere-talon-core/src/ide/TalonJsCapabilities.ts b/packages/lib-talon-core/src/ide/TalonJsCapabilities.ts
similarity index 100%
rename from packages/cursorless-everywhere-talon-core/src/ide/TalonJsCapabilities.ts
rename to packages/lib-talon-core/src/ide/TalonJsCapabilities.ts
diff --git a/packages/cursorless-everywhere-talon-core/src/ide/TalonJsClipboard.ts b/packages/lib-talon-core/src/ide/TalonJsClipboard.ts
similarity index 100%
rename from packages/cursorless-everywhere-talon-core/src/ide/TalonJsClipboard.ts
rename to packages/lib-talon-core/src/ide/TalonJsClipboard.ts
diff --git a/packages/cursorless-everywhere-talon-core/src/ide/TalonJsConfiguration.ts b/packages/lib-talon-core/src/ide/TalonJsConfiguration.ts
similarity index 100%
rename from packages/cursorless-everywhere-talon-core/src/ide/TalonJsConfiguration.ts
rename to packages/lib-talon-core/src/ide/TalonJsConfiguration.ts
diff --git a/packages/cursorless-everywhere-talon-core/src/ide/TalonJsIDE.ts b/packages/lib-talon-core/src/ide/TalonJsIDE.ts
similarity index 100%
rename from packages/cursorless-everywhere-talon-core/src/ide/TalonJsIDE.ts
rename to packages/lib-talon-core/src/ide/TalonJsIDE.ts
diff --git a/packages/cursorless-everywhere-talon-core/src/ide/TalonJsKeyValueStore.ts b/packages/lib-talon-core/src/ide/TalonJsKeyValueStore.ts
similarity index 100%
rename from packages/cursorless-everywhere-talon-core/src/ide/TalonJsKeyValueStore.ts
rename to packages/lib-talon-core/src/ide/TalonJsKeyValueStore.ts
diff --git a/packages/cursorless-everywhere-talon-core/src/ide/TalonJsMessages.ts b/packages/lib-talon-core/src/ide/TalonJsMessages.ts
similarity index 100%
rename from packages/cursorless-everywhere-talon-core/src/ide/TalonJsMessages.ts
rename to packages/lib-talon-core/src/ide/TalonJsMessages.ts
diff --git a/packages/cursorless-everywhere-talon-core/src/ide/TalonJsTestHats.ts b/packages/lib-talon-core/src/ide/TalonJsTestHats.ts
similarity index 100%
rename from packages/cursorless-everywhere-talon-core/src/ide/TalonJsTestHats.ts
rename to packages/lib-talon-core/src/ide/TalonJsTestHats.ts
diff --git a/packages/cursorless-everywhere-talon-core/src/ide/flashRanges.ts b/packages/lib-talon-core/src/ide/flashRanges.ts
similarity index 100%
rename from packages/cursorless-everywhere-talon-core/src/ide/flashRanges.ts
rename to packages/lib-talon-core/src/ide/flashRanges.ts
diff --git a/packages/cursorless-everywhere-talon-core/src/ide/toCharacterRangeOffsets.ts b/packages/lib-talon-core/src/ide/toCharacterRangeOffsets.ts
similarity index 100%
rename from packages/cursorless-everywhere-talon-core/src/ide/toCharacterRangeOffsets.ts
rename to packages/lib-talon-core/src/ide/toCharacterRangeOffsets.ts
diff --git a/packages/cursorless-everywhere-talon-core/src/index.ts b/packages/lib-talon-core/src/index.ts
similarity index 100%
rename from packages/cursorless-everywhere-talon-core/src/index.ts
rename to packages/lib-talon-core/src/index.ts
diff --git a/packages/cursorless-everywhere-talon-core/src/polyfill.ts b/packages/lib-talon-core/src/polyfill.ts
similarity index 100%
rename from packages/cursorless-everywhere-talon-core/src/polyfill.ts
rename to packages/lib-talon-core/src/polyfill.ts
diff --git a/packages/cursorless-everywhere-talon-core/src/registerCommands.ts b/packages/lib-talon-core/src/registerCommands.ts
similarity index 100%
rename from packages/cursorless-everywhere-talon-core/src/registerCommands.ts
rename to packages/lib-talon-core/src/registerCommands.ts
diff --git a/packages/cursorless-everywhere-talon-core/src/types/talon.ts b/packages/lib-talon-core/src/types/talon.ts
similarity index 100%
rename from packages/cursorless-everywhere-talon-core/src/types/talon.ts
rename to packages/lib-talon-core/src/types/talon.ts
diff --git a/packages/cursorless-everywhere-talon-core/src/types/types.ts b/packages/lib-talon-core/src/types/types.ts
similarity index 100%
rename from packages/cursorless-everywhere-talon-core/src/types/types.ts
rename to packages/lib-talon-core/src/types/types.ts
diff --git a/packages/cursorless-vscode/tsconfig.json b/packages/lib-talon-core/tsconfig.json
similarity index 100%
rename from packages/cursorless-vscode/tsconfig.json
rename to packages/lib-talon-core/tsconfig.json
diff --git a/packages/test-case-recorder/package.json b/packages/lib-test-case-recorder/package.json
similarity index 100%
rename from packages/test-case-recorder/package.json
rename to packages/lib-test-case-recorder/package.json
diff --git a/packages/test-case-recorder/src/RecordTestCaseCommandOptions.ts b/packages/lib-test-case-recorder/src/RecordTestCaseCommandOptions.ts
similarity index 100%
rename from packages/test-case-recorder/src/RecordTestCaseCommandOptions.ts
rename to packages/lib-test-case-recorder/src/RecordTestCaseCommandOptions.ts
diff --git a/packages/test-case-recorder/src/ScopeTestRecorder.ts b/packages/lib-test-case-recorder/src/ScopeTestRecorder.ts
similarity index 100%
rename from packages/test-case-recorder/src/ScopeTestRecorder.ts
rename to packages/lib-test-case-recorder/src/ScopeTestRecorder.ts
diff --git a/packages/test-case-recorder/src/TestCase.ts b/packages/lib-test-case-recorder/src/TestCase.ts
similarity index 100%
rename from packages/test-case-recorder/src/TestCase.ts
rename to packages/lib-test-case-recorder/src/TestCase.ts
diff --git a/packages/test-case-recorder/src/TestCaseRecorder.ts b/packages/lib-test-case-recorder/src/TestCaseRecorder.ts
similarity index 100%
rename from packages/test-case-recorder/src/TestCaseRecorder.ts
rename to packages/lib-test-case-recorder/src/TestCaseRecorder.ts
diff --git a/packages/test-case-recorder/src/index.ts b/packages/lib-test-case-recorder/src/index.ts
similarity index 100%
rename from packages/test-case-recorder/src/index.ts
rename to packages/lib-test-case-recorder/src/index.ts
diff --git a/packages/test-case-recorder/src/takeSnapshot.ts b/packages/lib-test-case-recorder/src/takeSnapshot.ts
similarity index 100%
rename from packages/test-case-recorder/src/takeSnapshot.ts
rename to packages/lib-test-case-recorder/src/takeSnapshot.ts
diff --git a/packages/test-case-recorder/src/timeUtils.ts b/packages/lib-test-case-recorder/src/timeUtils.ts
similarity index 100%
rename from packages/test-case-recorder/src/timeUtils.ts
rename to packages/lib-test-case-recorder/src/timeUtils.ts
diff --git a/packages/meta-updater/tsconfig.json b/packages/lib-test-case-recorder/tsconfig.json
similarity index 100%
rename from packages/meta-updater/tsconfig.json
rename to packages/lib-test-case-recorder/tsconfig.json
diff --git a/packages/cursorless-tutorial/package.json b/packages/lib-tutorial/package.json
similarity index 100%
rename from packages/cursorless-tutorial/package.json
rename to packages/lib-tutorial/package.json
diff --git a/packages/cursorless-tutorial/src/Tutorial.ts b/packages/lib-tutorial/src/Tutorial.ts
similarity index 100%
rename from packages/cursorless-tutorial/src/Tutorial.ts
rename to packages/lib-tutorial/src/Tutorial.ts
diff --git a/packages/cursorless-tutorial/src/TutorialError.ts b/packages/lib-tutorial/src/TutorialError.ts
similarity index 100%
rename from packages/cursorless-tutorial/src/TutorialError.ts
rename to packages/lib-tutorial/src/TutorialError.ts
diff --git a/packages/cursorless-tutorial/src/TutorialImpl.ts b/packages/lib-tutorial/src/TutorialImpl.ts
similarity index 100%
rename from packages/cursorless-tutorial/src/TutorialImpl.ts
rename to packages/lib-tutorial/src/TutorialImpl.ts
diff --git a/packages/cursorless-tutorial/src/TutorialStepParser.ts b/packages/lib-tutorial/src/TutorialStepParser.ts
similarity index 100%
rename from packages/cursorless-tutorial/src/TutorialStepParser.ts
rename to packages/lib-tutorial/src/TutorialStepParser.ts
diff --git a/packages/cursorless-tutorial/src/arePreconditionsMet.ts b/packages/lib-tutorial/src/arePreconditionsMet.ts
similarity index 100%
rename from packages/cursorless-tutorial/src/arePreconditionsMet.ts
rename to packages/lib-tutorial/src/arePreconditionsMet.ts
diff --git a/packages/cursorless-tutorial/src/getScopeTypeSpokenFormStrict.ts b/packages/lib-tutorial/src/getScopeTypeSpokenFormStrict.ts
similarity index 100%
rename from packages/cursorless-tutorial/src/getScopeTypeSpokenFormStrict.ts
rename to packages/lib-tutorial/src/getScopeTypeSpokenFormStrict.ts
diff --git a/packages/cursorless-tutorial/src/getSpokenFormStrict.ts b/packages/lib-tutorial/src/getSpokenFormStrict.ts
similarity index 100%
rename from packages/cursorless-tutorial/src/getSpokenFormStrict.ts
rename to packages/lib-tutorial/src/getSpokenFormStrict.ts
diff --git a/packages/cursorless-tutorial/src/index.ts b/packages/lib-tutorial/src/index.ts
similarity index 100%
rename from packages/cursorless-tutorial/src/index.ts
rename to packages/lib-tutorial/src/index.ts
diff --git a/packages/cursorless-tutorial/src/loadTutorial.ts b/packages/lib-tutorial/src/loadTutorial.ts
similarity index 100%
rename from packages/cursorless-tutorial/src/loadTutorial.ts
rename to packages/lib-tutorial/src/loadTutorial.ts
diff --git a/packages/cursorless-tutorial/src/setupStep.ts b/packages/lib-tutorial/src/setupStep.ts
similarity index 100%
rename from packages/cursorless-tutorial/src/setupStep.ts
rename to packages/lib-tutorial/src/setupStep.ts
diff --git a/packages/cursorless-tutorial/src/specialTerms.ts b/packages/lib-tutorial/src/specialTerms.ts
similarity index 100%
rename from packages/cursorless-tutorial/src/specialTerms.ts
rename to packages/lib-tutorial/src/specialTerms.ts
diff --git a/packages/cursorless-tutorial/src/stepComponentParsers/ActionComponentParser.ts b/packages/lib-tutorial/src/stepComponentParsers/ActionComponentParser.ts
similarity index 100%
rename from packages/cursorless-tutorial/src/stepComponentParsers/ActionComponentParser.ts
rename to packages/lib-tutorial/src/stepComponentParsers/ActionComponentParser.ts
diff --git a/packages/cursorless-tutorial/src/stepComponentParsers/CursorlessCommandComponentParser.ts b/packages/lib-tutorial/src/stepComponentParsers/CursorlessCommandComponentParser.ts
similarity index 100%
rename from packages/cursorless-tutorial/src/stepComponentParsers/CursorlessCommandComponentParser.ts
rename to packages/lib-tutorial/src/stepComponentParsers/CursorlessCommandComponentParser.ts
diff --git a/packages/cursorless-tutorial/src/stepComponentParsers/GraphemeComponentParser.ts b/packages/lib-tutorial/src/stepComponentParsers/GraphemeComponentParser.ts
similarity index 100%
rename from packages/cursorless-tutorial/src/stepComponentParsers/GraphemeComponentParser.ts
rename to packages/lib-tutorial/src/stepComponentParsers/GraphemeComponentParser.ts
diff --git a/packages/cursorless-tutorial/src/stepComponentParsers/parseSpecialComponent.ts b/packages/lib-tutorial/src/stepComponentParsers/parseSpecialComponent.ts
similarity index 100%
rename from packages/cursorless-tutorial/src/stepComponentParsers/parseSpecialComponent.ts
rename to packages/lib-tutorial/src/stepComponentParsers/parseSpecialComponent.ts
diff --git a/packages/cursorless-tutorial/src/stepComponentParsers/parseVisualizeComponent.ts b/packages/lib-tutorial/src/stepComponentParsers/parseVisualizeComponent.ts
similarity index 100%
rename from packages/cursorless-tutorial/src/stepComponentParsers/parseVisualizeComponent.ts
rename to packages/lib-tutorial/src/stepComponentParsers/parseVisualizeComponent.ts
diff --git a/packages/cursorless-tutorial/src/tutorialWrapCommandRunner.ts b/packages/lib-tutorial/src/tutorialWrapCommandRunner.ts
similarity index 100%
rename from packages/cursorless-tutorial/src/tutorialWrapCommandRunner.ts
rename to packages/lib-tutorial/src/tutorialWrapCommandRunner.ts
diff --git a/packages/cursorless-tutorial/src/types/StepComponent.ts b/packages/lib-tutorial/src/types/StepComponent.ts
similarity index 100%
rename from packages/cursorless-tutorial/src/types/StepComponent.ts
rename to packages/lib-tutorial/src/types/StepComponent.ts
diff --git a/packages/cursorless-tutorial/src/types/TutorialStepTrigger.ts b/packages/lib-tutorial/src/types/TutorialStepTrigger.ts
similarity index 100%
rename from packages/cursorless-tutorial/src/types/TutorialStepTrigger.ts
rename to packages/lib-tutorial/src/types/TutorialStepTrigger.ts
diff --git a/packages/cursorless-tutorial/src/types/tutorial.types.ts b/packages/lib-tutorial/src/types/tutorial.types.ts
similarity index 100%
rename from packages/cursorless-tutorial/src/types/tutorial.types.ts
rename to packages/lib-tutorial/src/types/tutorial.types.ts
diff --git a/packages/neovim-common/tsconfig.json b/packages/lib-tutorial/tsconfig.json
similarity index 100%
rename from packages/neovim-common/tsconfig.json
rename to packages/lib-tutorial/tsconfig.json
diff --git a/packages/vscode-common/package.json b/packages/lib-vscode-common/package.json
similarity index 100%
rename from packages/vscode-common/package.json
rename to packages/lib-vscode-common/package.json
diff --git a/packages/vscode-common/src/ScopeVisualizerColorConfig.ts b/packages/lib-vscode-common/src/ScopeVisualizerColorConfig.ts
similarity index 100%
rename from packages/vscode-common/src/ScopeVisualizerColorConfig.ts
rename to packages/lib-vscode-common/src/ScopeVisualizerColorConfig.ts
diff --git a/packages/vscode-common/src/SpyWebViewEvent.ts b/packages/lib-vscode-common/src/SpyWebViewEvent.ts
similarity index 100%
rename from packages/vscode-common/src/SpyWebViewEvent.ts
rename to packages/lib-vscode-common/src/SpyWebViewEvent.ts
diff --git a/packages/vscode-common/src/TestHelpers.ts b/packages/lib-vscode-common/src/TestHelpers.ts
similarity index 100%
rename from packages/vscode-common/src/TestHelpers.ts
rename to packages/lib-vscode-common/src/TestHelpers.ts
diff --git a/packages/vscode-common/src/VscodeApi.ts b/packages/lib-vscode-common/src/VscodeApi.ts
similarity index 100%
rename from packages/vscode-common/src/VscodeApi.ts
rename to packages/lib-vscode-common/src/VscodeApi.ts
diff --git a/packages/vscode-common/src/getExtensionApi.ts b/packages/lib-vscode-common/src/getExtensionApi.ts
similarity index 100%
rename from packages/vscode-common/src/getExtensionApi.ts
rename to packages/lib-vscode-common/src/getExtensionApi.ts
diff --git a/packages/vscode-common/src/index.ts b/packages/lib-vscode-common/src/index.ts
similarity index 100%
rename from packages/vscode-common/src/index.ts
rename to packages/lib-vscode-common/src/index.ts
diff --git a/packages/vscode-common/src/notebook.ts b/packages/lib-vscode-common/src/notebook.ts
similarity index 100%
rename from packages/vscode-common/src/notebook.ts
rename to packages/lib-vscode-common/src/notebook.ts
diff --git a/packages/vscode-common/src/runCommand.ts b/packages/lib-vscode-common/src/runCommand.ts
similarity index 100%
rename from packages/vscode-common/src/runCommand.ts
rename to packages/lib-vscode-common/src/runCommand.ts
diff --git a/packages/vscode-common/src/testUtil/closeUiElements.ts b/packages/lib-vscode-common/src/testUtil/closeUiElements.ts
similarity index 100%
rename from packages/vscode-common/src/testUtil/closeUiElements.ts
rename to packages/lib-vscode-common/src/testUtil/closeUiElements.ts
diff --git a/packages/vscode-common/src/testUtil/getReusableEditor.ts b/packages/lib-vscode-common/src/testUtil/getReusableEditor.ts
similarity index 100%
rename from packages/vscode-common/src/testUtil/getReusableEditor.ts
rename to packages/lib-vscode-common/src/testUtil/getReusableEditor.ts
diff --git a/packages/vscode-common/src/testUtil/openNewEditor.ts b/packages/lib-vscode-common/src/testUtil/openNewEditor.ts
similarity index 100%
rename from packages/vscode-common/src/testUtil/openNewEditor.ts
rename to packages/lib-vscode-common/src/testUtil/openNewEditor.ts
diff --git a/packages/vscode-common/src/vscodeUtil.ts b/packages/lib-vscode-common/src/vscodeUtil.ts
similarity index 100%
rename from packages/vscode-common/src/vscodeUtil.ts
rename to packages/lib-vscode-common/src/vscodeUtil.ts
diff --git a/packages/neovim-registry/tsconfig.json b/packages/lib-vscode-common/tsconfig.json
similarity index 100%
rename from packages/neovim-registry/tsconfig.json
rename to packages/lib-vscode-common/tsconfig.json
diff --git a/packages/cursorless-vscode-tutorial-webview/README.md b/packages/lib-vscode-tutorial-webview/README.md
similarity index 100%
rename from packages/cursorless-vscode-tutorial-webview/README.md
rename to packages/lib-vscode-tutorial-webview/README.md
diff --git a/packages/cursorless-vscode-tutorial-webview/package.json b/packages/lib-vscode-tutorial-webview/package.json
similarity index 100%
rename from packages/cursorless-vscode-tutorial-webview/package.json
rename to packages/lib-vscode-tutorial-webview/package.json
diff --git a/packages/cursorless-vscode-tutorial-webview/src/App.tsx b/packages/lib-vscode-tutorial-webview/src/App.tsx
similarity index 100%
rename from packages/cursorless-vscode-tutorial-webview/src/App.tsx
rename to packages/lib-vscode-tutorial-webview/src/App.tsx
diff --git a/packages/cursorless-vscode-tutorial-webview/src/ArrowLeftIcon.tsx b/packages/lib-vscode-tutorial-webview/src/ArrowLeftIcon.tsx
similarity index 100%
rename from packages/cursorless-vscode-tutorial-webview/src/ArrowLeftIcon.tsx
rename to packages/lib-vscode-tutorial-webview/src/ArrowLeftIcon.tsx
diff --git a/packages/cursorless-vscode-tutorial-webview/src/ArrowRightIcon.tsx b/packages/lib-vscode-tutorial-webview/src/ArrowRightIcon.tsx
similarity index 100%
rename from packages/cursorless-vscode-tutorial-webview/src/ArrowRightIcon.tsx
rename to packages/lib-vscode-tutorial-webview/src/ArrowRightIcon.tsx
diff --git a/packages/cursorless-vscode-tutorial-webview/src/CloseIcon.tsx b/packages/lib-vscode-tutorial-webview/src/CloseIcon.tsx
similarity index 100%
rename from packages/cursorless-vscode-tutorial-webview/src/CloseIcon.tsx
rename to packages/lib-vscode-tutorial-webview/src/CloseIcon.tsx
diff --git a/packages/cursorless-vscode-tutorial-webview/src/Command.tsx b/packages/lib-vscode-tutorial-webview/src/Command.tsx
similarity index 100%
rename from packages/cursorless-vscode-tutorial-webview/src/Command.tsx
rename to packages/lib-vscode-tutorial-webview/src/Command.tsx
diff --git a/packages/cursorless-vscode-tutorial-webview/src/ProgressBar.tsx b/packages/lib-vscode-tutorial-webview/src/ProgressBar.tsx
similarity index 100%
rename from packages/cursorless-vscode-tutorial-webview/src/ProgressBar.tsx
rename to packages/lib-vscode-tutorial-webview/src/ProgressBar.tsx
diff --git a/packages/cursorless-vscode-tutorial-webview/src/TutorialStep.tsx b/packages/lib-vscode-tutorial-webview/src/TutorialStep.tsx
similarity index 100%
rename from packages/cursorless-vscode-tutorial-webview/src/TutorialStep.tsx
rename to packages/lib-vscode-tutorial-webview/src/TutorialStep.tsx
diff --git a/packages/cursorless-vscode-tutorial-webview/src/index.css b/packages/lib-vscode-tutorial-webview/src/index.css
similarity index 100%
rename from packages/cursorless-vscode-tutorial-webview/src/index.css
rename to packages/lib-vscode-tutorial-webview/src/index.css
diff --git a/packages/cursorless-vscode-tutorial-webview/src/index.tsx b/packages/lib-vscode-tutorial-webview/src/index.tsx
similarity index 100%
rename from packages/cursorless-vscode-tutorial-webview/src/index.tsx
rename to packages/lib-vscode-tutorial-webview/src/index.tsx
diff --git a/packages/cursorless-vscode-tutorial-webview/tsconfig.json b/packages/lib-vscode-tutorial-webview/tsconfig.json
similarity index 100%
rename from packages/cursorless-vscode-tutorial-webview/tsconfig.json
rename to packages/lib-vscode-tutorial-webview/tsconfig.json
diff --git a/packages/cursorless-vscode-tutorial-webview/vite.config.ts b/packages/lib-vscode-tutorial-webview/vite.config.ts
similarity index 100%
rename from packages/cursorless-vscode-tutorial-webview/vite.config.ts
rename to packages/lib-vscode-tutorial-webview/vite.config.ts
diff --git a/packages/cursorless-neovim-e2e/package.json b/packages/test-neovim-e2e/package.json
similarity index 100%
rename from packages/cursorless-neovim-e2e/package.json
rename to packages/test-neovim-e2e/package.json
diff --git a/packages/cursorless-neovim-e2e/src/endToEndTestSetup.ts b/packages/test-neovim-e2e/src/endToEndTestSetup.ts
similarity index 100%
rename from packages/cursorless-neovim-e2e/src/endToEndTestSetup.ts
rename to packages/test-neovim-e2e/src/endToEndTestSetup.ts
diff --git a/packages/cursorless-neovim-e2e/src/shouldRunTest.ts b/packages/test-neovim-e2e/src/shouldRunTest.ts
similarity index 100%
rename from packages/cursorless-neovim-e2e/src/shouldRunTest.ts
rename to packages/test-neovim-e2e/src/shouldRunTest.ts
diff --git a/packages/cursorless-neovim-e2e/src/suite/recorded.neovim.test.ts b/packages/test-neovim-e2e/src/suite/recorded.neovim.test.ts
similarity index 100%
rename from packages/cursorless-neovim-e2e/src/suite/recorded.neovim.test.ts
rename to packages/test-neovim-e2e/src/suite/recorded.neovim.test.ts
diff --git a/packages/node-common/tsconfig.json b/packages/test-neovim-e2e/tsconfig.json
similarity index 100%
rename from packages/node-common/tsconfig.json
rename to packages/test-neovim-e2e/tsconfig.json
diff --git a/packages/test-harness/README.md b/packages/test-runner/README.md
similarity index 100%
rename from packages/test-harness/README.md
rename to packages/test-runner/README.md
diff --git a/packages/test-harness/package.json b/packages/test-runner/package.json
similarity index 100%
rename from packages/test-harness/package.json
rename to packages/test-runner/package.json
diff --git a/packages/test-harness/scripts/compile-esbuild.sh b/packages/test-runner/scripts/compile-esbuild.sh
old mode 100755
new mode 100644
similarity index 100%
rename from packages/test-harness/scripts/compile-esbuild.sh
rename to packages/test-runner/scripts/compile-esbuild.sh
diff --git a/packages/test-harness/scripts/run-esbuild.sh b/packages/test-runner/scripts/run-esbuild.sh
old mode 100755
new mode 100644
similarity index 100%
rename from packages/test-harness/scripts/run-esbuild.sh
rename to packages/test-runner/scripts/run-esbuild.sh
diff --git a/packages/test-harness/src/config/init.lua b/packages/test-runner/src/config/init.lua
similarity index 100%
rename from packages/test-harness/src/config/init.lua
rename to packages/test-runner/src/config/init.lua
diff --git a/packages/test-harness/src/launchNeovimAndRunTests.ts b/packages/test-runner/src/launchNeovimAndRunTests.ts
similarity index 100%
rename from packages/test-harness/src/launchNeovimAndRunTests.ts
rename to packages/test-runner/src/launchNeovimAndRunTests.ts
diff --git a/packages/test-harness/src/launchVscodeAndRunTests.ts b/packages/test-runner/src/launchVscodeAndRunTests.ts
similarity index 100%
rename from packages/test-harness/src/launchVscodeAndRunTests.ts
rename to packages/test-runner/src/launchVscodeAndRunTests.ts
diff --git a/packages/test-harness/src/runAllTests.ts b/packages/test-runner/src/runAllTests.ts
similarity index 100%
rename from packages/test-harness/src/runAllTests.ts
rename to packages/test-runner/src/runAllTests.ts
diff --git a/packages/test-harness/src/runners/README.md b/packages/test-runner/src/runners/README.md
similarity index 100%
rename from packages/test-harness/src/runners/README.md
rename to packages/test-runner/src/runners/README.md
diff --git a/packages/test-harness/src/runners/extensionTestsNeovim.ts b/packages/test-runner/src/runners/extensionTestsNeovim.ts
similarity index 100%
rename from packages/test-harness/src/runners/extensionTestsNeovim.ts
rename to packages/test-runner/src/runners/extensionTestsNeovim.ts
diff --git a/packages/test-harness/src/runners/extensionTestsVscode.ts b/packages/test-runner/src/runners/extensionTestsVscode.ts
similarity index 100%
rename from packages/test-harness/src/runners/extensionTestsVscode.ts
rename to packages/test-runner/src/runners/extensionTestsVscode.ts
diff --git a/packages/test-harness/src/scripts/generateTestSubsetFile.ts b/packages/test-runner/src/scripts/generateTestSubsetFile.ts
similarity index 100%
rename from packages/test-harness/src/scripts/generateTestSubsetFile.ts
rename to packages/test-runner/src/scripts/generateTestSubsetFile.ts
diff --git a/packages/test-harness/src/scripts/runNeovimTestsCI.ts b/packages/test-runner/src/scripts/runNeovimTestsCI.ts
similarity index 100%
rename from packages/test-harness/src/scripts/runNeovimTestsCI.ts
rename to packages/test-runner/src/scripts/runNeovimTestsCI.ts
diff --git a/packages/test-harness/src/scripts/runTalonJsTests.ts b/packages/test-runner/src/scripts/runTalonJsTests.ts
similarity index 100%
rename from packages/test-harness/src/scripts/runTalonJsTests.ts
rename to packages/test-runner/src/scripts/runTalonJsTests.ts
diff --git a/packages/test-harness/src/scripts/runTalonTests.ts b/packages/test-runner/src/scripts/runTalonTests.ts
similarity index 100%
rename from packages/test-harness/src/scripts/runTalonTests.ts
rename to packages/test-runner/src/scripts/runTalonTests.ts
diff --git a/packages/test-harness/src/scripts/runUnitTests.ts b/packages/test-runner/src/scripts/runUnitTests.ts
similarity index 100%
rename from packages/test-harness/src/scripts/runUnitTests.ts
rename to packages/test-runner/src/scripts/runUnitTests.ts
diff --git a/packages/test-harness/src/scripts/runVscodeTestsCI.ts b/packages/test-runner/src/scripts/runVscodeTestsCI.ts
similarity index 100%
rename from packages/test-harness/src/scripts/runVscodeTestsCI.ts
rename to packages/test-runner/src/scripts/runVscodeTestsCI.ts
diff --git a/packages/test-harness/src/testSubset.ts b/packages/test-runner/src/testSubset.ts
similarity index 100%
rename from packages/test-harness/src/testSubset.ts
rename to packages/test-runner/src/testSubset.ts
diff --git a/packages/sentence-parser/tsconfig.json b/packages/test-runner/tsconfig.json
similarity index 100%
rename from packages/sentence-parser/tsconfig.json
rename to packages/test-runner/tsconfig.json
diff --git a/packages/cursorless-everywhere-talon-e2e/package.json b/packages/test-talon-e2e/package.json
similarity index 100%
rename from packages/cursorless-everywhere-talon-e2e/package.json
rename to packages/test-talon-e2e/package.json
diff --git a/packages/cursorless-everywhere-talon-e2e/scripts/test-quickjs.sh b/packages/test-talon-e2e/scripts/test-quickjs.sh
old mode 100755
new mode 100644
similarity index 100%
rename from packages/cursorless-everywhere-talon-e2e/scripts/test-quickjs.sh
rename to packages/test-talon-e2e/scripts/test-quickjs.sh
diff --git a/packages/cursorless-everywhere-talon-e2e/src/constructTestHelpers.ts b/packages/test-talon-e2e/src/constructTestHelpers.ts
similarity index 100%
rename from packages/cursorless-everywhere-talon-e2e/src/constructTestHelpers.ts
rename to packages/test-talon-e2e/src/constructTestHelpers.ts
diff --git a/packages/cursorless-everywhere-talon-e2e/src/endToEndTestSetUp.ts b/packages/test-talon-e2e/src/endToEndTestSetUp.ts
similarity index 100%
rename from packages/cursorless-everywhere-talon-e2e/src/endToEndTestSetUp.ts
rename to packages/test-talon-e2e/src/endToEndTestSetUp.ts
diff --git a/packages/cursorless-everywhere-talon-e2e/src/quickjsTest.ts b/packages/test-talon-e2e/src/quickjsTest.ts
similarity index 100%
rename from packages/cursorless-everywhere-talon-e2e/src/quickjsTest.ts
rename to packages/test-talon-e2e/src/quickjsTest.ts
diff --git a/packages/cursorless-everywhere-talon-e2e/src/recorded.talonjs.test.ts b/packages/test-talon-e2e/src/recorded.talonjs.test.ts
similarity index 100%
rename from packages/cursorless-everywhere-talon-e2e/src/recorded.talonjs.test.ts
rename to packages/test-talon-e2e/src/recorded.talonjs.test.ts
diff --git a/packages/cursorless-everywhere-talon-e2e/src/talonMock.ts b/packages/test-talon-e2e/src/talonMock.ts
similarity index 100%
rename from packages/cursorless-everywhere-talon-e2e/src/talonMock.ts
rename to packages/test-talon-e2e/src/talonMock.ts
diff --git a/packages/cursorless-everywhere-talon-e2e/src/types/cursorless.ts b/packages/test-talon-e2e/src/types/cursorless.ts
similarity index 100%
rename from packages/cursorless-everywhere-talon-e2e/src/types/cursorless.ts
rename to packages/test-talon-e2e/src/types/cursorless.ts
diff --git a/packages/cursorless-everywhere-talon-e2e/src/types/std.d.ts b/packages/test-talon-e2e/src/types/std.d.ts
similarity index 100%
rename from packages/cursorless-everywhere-talon-e2e/src/types/std.d.ts
rename to packages/test-talon-e2e/src/types/std.d.ts
diff --git a/packages/cursorless-everywhere-talon-e2e/src/types/talon.ts b/packages/test-talon-e2e/src/types/talon.ts
similarity index 100%
rename from packages/cursorless-everywhere-talon-e2e/src/types/talon.ts
rename to packages/test-talon-e2e/src/types/talon.ts
diff --git a/packages/test-case-recorder/tsconfig.json b/packages/test-talon-e2e/tsconfig.json
similarity index 100%
rename from packages/test-case-recorder/tsconfig.json
rename to packages/test-talon-e2e/tsconfig.json
diff --git a/packages/cursorless-vscode-e2e/package.json b/packages/test-vscode-e2e/package.json
similarity index 100%
rename from packages/cursorless-vscode-e2e/package.json
rename to packages/test-vscode-e2e/package.json
diff --git a/packages/cursorless-vscode-e2e/src/endToEndTestSetup.ts b/packages/test-vscode-e2e/src/endToEndTestSetup.ts
similarity index 100%
rename from packages/cursorless-vscode-e2e/src/endToEndTestSetup.ts
rename to packages/test-vscode-e2e/src/endToEndTestSetup.ts
diff --git a/packages/cursorless-vscode-e2e/src/isCI.ts b/packages/test-vscode-e2e/src/isCI.ts
similarity index 100%
rename from packages/cursorless-vscode-e2e/src/isCI.ts
rename to packages/test-vscode-e2e/src/isCI.ts
diff --git a/packages/cursorless-vscode-e2e/src/mockPrePhraseGetVersion.ts b/packages/test-vscode-e2e/src/mockPrePhraseGetVersion.ts
similarity index 100%
rename from packages/cursorless-vscode-e2e/src/mockPrePhraseGetVersion.ts
rename to packages/test-vscode-e2e/src/mockPrePhraseGetVersion.ts
diff --git a/packages/cursorless-vscode-e2e/src/notebook.ts b/packages/test-vscode-e2e/src/notebook.ts
similarity index 100%
rename from packages/cursorless-vscode-e2e/src/notebook.ts
rename to packages/test-vscode-e2e/src/notebook.ts
diff --git a/packages/cursorless-vscode-e2e/src/suite/backwardCompatibility.vscode.test.ts b/packages/test-vscode-e2e/src/suite/backwardCompatibility.vscode.test.ts
similarity index 100%
rename from packages/cursorless-vscode-e2e/src/suite/backwardCompatibility.vscode.test.ts
rename to packages/test-vscode-e2e/src/suite/backwardCompatibility.vscode.test.ts
diff --git a/packages/cursorless-vscode-e2e/src/suite/breakpoints.vscode.test.ts b/packages/test-vscode-e2e/src/suite/breakpoints.vscode.test.ts
similarity index 100%
rename from packages/cursorless-vscode-e2e/src/suite/breakpoints.vscode.test.ts
rename to packages/test-vscode-e2e/src/suite/breakpoints.vscode.test.ts
diff --git a/packages/cursorless-vscode-e2e/src/suite/commandHistory.vscode.test.ts b/packages/test-vscode-e2e/src/suite/commandHistory.vscode.test.ts
similarity index 100%
rename from packages/cursorless-vscode-e2e/src/suite/commandHistory.vscode.test.ts
rename to packages/test-vscode-e2e/src/suite/commandHistory.vscode.test.ts
diff --git a/packages/cursorless-vscode-e2e/src/suite/containingTokenTwice.vscode.test.ts b/packages/test-vscode-e2e/src/suite/containingTokenTwice.vscode.test.ts
similarity index 100%
rename from packages/cursorless-vscode-e2e/src/suite/containingTokenTwice.vscode.test.ts
rename to packages/test-vscode-e2e/src/suite/containingTokenTwice.vscode.test.ts
diff --git a/packages/cursorless-vscode-e2e/src/suite/crossCellsSetSelection.vscode.test.ts b/packages/test-vscode-e2e/src/suite/crossCellsSetSelection.vscode.test.ts
similarity index 100%
rename from packages/cursorless-vscode-e2e/src/suite/crossCellsSetSelection.vscode.test.ts
rename to packages/test-vscode-e2e/src/suite/crossCellsSetSelection.vscode.test.ts
diff --git a/packages/cursorless-vscode-e2e/src/suite/editNewCell.vscode.test.ts b/packages/test-vscode-e2e/src/suite/editNewCell.vscode.test.ts
similarity index 100%
rename from packages/cursorless-vscode-e2e/src/suite/editNewCell.vscode.test.ts
rename to packages/test-vscode-e2e/src/suite/editNewCell.vscode.test.ts
diff --git a/packages/cursorless-vscode-e2e/src/suite/explicitMark.vscode.test.ts b/packages/test-vscode-e2e/src/suite/explicitMark.vscode.test.ts
similarity index 100%
rename from packages/cursorless-vscode-e2e/src/suite/explicitMark.vscode.test.ts
rename to packages/test-vscode-e2e/src/suite/explicitMark.vscode.test.ts
diff --git a/packages/cursorless-vscode-e2e/src/suite/fold.vscode.test.ts b/packages/test-vscode-e2e/src/suite/fold.vscode.test.ts
similarity index 100%
rename from packages/cursorless-vscode-e2e/src/suite/fold.vscode.test.ts
rename to packages/test-vscode-e2e/src/suite/fold.vscode.test.ts
diff --git a/packages/cursorless-vscode-e2e/src/suite/followLink.vscode.test.ts b/packages/test-vscode-e2e/src/suite/followLink.vscode.test.ts
similarity index 100%
rename from packages/cursorless-vscode-e2e/src/suite/followLink.vscode.test.ts
rename to packages/test-vscode-e2e/src/suite/followLink.vscode.test.ts
diff --git a/packages/cursorless-vscode-e2e/src/suite/groupByDocument.vscode.test.ts b/packages/test-vscode-e2e/src/suite/groupByDocument.vscode.test.ts
similarity index 100%
rename from packages/cursorless-vscode-e2e/src/suite/groupByDocument.vscode.test.ts
rename to packages/test-vscode-e2e/src/suite/groupByDocument.vscode.test.ts
diff --git a/packages/cursorless-vscode-e2e/src/suite/instanceAcrossSplit.vscode.test.ts b/packages/test-vscode-e2e/src/suite/instanceAcrossSplit.vscode.test.ts
similarity index 100%
rename from packages/cursorless-vscode-e2e/src/suite/instanceAcrossSplit.vscode.test.ts
rename to packages/test-vscode-e2e/src/suite/instanceAcrossSplit.vscode.test.ts
diff --git a/packages/cursorless-vscode-e2e/src/suite/intraCellSetSelection.vscode.test.ts b/packages/test-vscode-e2e/src/suite/intraCellSetSelection.vscode.test.ts
similarity index 100%
rename from packages/cursorless-vscode-e2e/src/suite/intraCellSetSelection.vscode.test.ts
rename to packages/test-vscode-e2e/src/suite/intraCellSetSelection.vscode.test.ts
diff --git a/packages/cursorless-vscode-e2e/src/suite/keyboard/basic.vscode.test.ts b/packages/test-vscode-e2e/src/suite/keyboard/basic.vscode.test.ts
similarity index 100%
rename from packages/cursorless-vscode-e2e/src/suite/keyboard/basic.vscode.test.ts
rename to packages/test-vscode-e2e/src/suite/keyboard/basic.vscode.test.ts
diff --git a/packages/cursorless-vscode-e2e/src/suite/performance.vscode.test.ts b/packages/test-vscode-e2e/src/suite/performance.vscode.test.ts
similarity index 100%
rename from packages/cursorless-vscode-e2e/src/suite/performance.vscode.test.ts
rename to packages/test-vscode-e2e/src/suite/performance.vscode.test.ts
diff --git a/packages/cursorless-vscode-e2e/src/suite/pourAcrossSplit.vscode.test.ts b/packages/test-vscode-e2e/src/suite/pourAcrossSplit.vscode.test.ts
similarity index 100%
rename from packages/cursorless-vscode-e2e/src/suite/pourAcrossSplit.vscode.test.ts
rename to packages/test-vscode-e2e/src/suite/pourAcrossSplit.vscode.test.ts
diff --git a/packages/cursorless-vscode-e2e/src/suite/prePhraseSnapshot.vscode.test.ts b/packages/test-vscode-e2e/src/suite/prePhraseSnapshot.vscode.test.ts
similarity index 100%
rename from packages/cursorless-vscode-e2e/src/suite/prePhraseSnapshot.vscode.test.ts
rename to packages/test-vscode-e2e/src/suite/prePhraseSnapshot.vscode.test.ts
diff --git a/packages/cursorless-vscode-e2e/src/suite/recorded.vscode.test.ts b/packages/test-vscode-e2e/src/suite/recorded.vscode.test.ts
similarity index 100%
rename from packages/cursorless-vscode-e2e/src/suite/recorded.vscode.test.ts
rename to packages/test-vscode-e2e/src/suite/recorded.vscode.test.ts
diff --git a/packages/cursorless-vscode-e2e/src/suite/revealRange.vscode.test.ts b/packages/test-vscode-e2e/src/suite/revealRange.vscode.test.ts
similarity index 100%
rename from packages/cursorless-vscode-e2e/src/suite/revealRange.vscode.test.ts
rename to packages/test-vscode-e2e/src/suite/revealRange.vscode.test.ts
diff --git a/packages/cursorless-vscode-e2e/src/suite/scopeProvider/assertCalledWithScopeInfo.ts b/packages/test-vscode-e2e/src/suite/scopeProvider/assertCalledWithScopeInfo.ts
similarity index 100%
rename from packages/cursorless-vscode-e2e/src/suite/scopeProvider/assertCalledWithScopeInfo.ts
rename to packages/test-vscode-e2e/src/suite/scopeProvider/assertCalledWithScopeInfo.ts
diff --git a/packages/cursorless-vscode-e2e/src/suite/scopeProvider/runBasicScopeInfoTest.ts b/packages/test-vscode-e2e/src/suite/scopeProvider/runBasicScopeInfoTest.ts
similarity index 100%
rename from packages/cursorless-vscode-e2e/src/suite/scopeProvider/runBasicScopeInfoTest.ts
rename to packages/test-vscode-e2e/src/suite/scopeProvider/runBasicScopeInfoTest.ts
diff --git a/packages/cursorless-vscode-e2e/src/suite/scopeProvider/runCustomRegexScopeInfoTest.ts b/packages/test-vscode-e2e/src/suite/scopeProvider/runCustomRegexScopeInfoTest.ts
similarity index 100%
rename from packages/cursorless-vscode-e2e/src/suite/scopeProvider/runCustomRegexScopeInfoTest.ts
rename to packages/test-vscode-e2e/src/suite/scopeProvider/runCustomRegexScopeInfoTest.ts
diff --git a/packages/cursorless-vscode-e2e/src/suite/scopeProvider/runCustomSpokenFormScopeInfoTest.ts b/packages/test-vscode-e2e/src/suite/scopeProvider/runCustomSpokenFormScopeInfoTest.ts
similarity index 100%
rename from packages/cursorless-vscode-e2e/src/suite/scopeProvider/runCustomSpokenFormScopeInfoTest.ts
rename to packages/test-vscode-e2e/src/suite/scopeProvider/runCustomSpokenFormScopeInfoTest.ts
diff --git a/packages/cursorless-vscode-e2e/src/suite/scopeProvider/runSurroundingPairScopeInfoTest.ts b/packages/test-vscode-e2e/src/suite/scopeProvider/runSurroundingPairScopeInfoTest.ts
similarity index 100%
rename from packages/cursorless-vscode-e2e/src/suite/scopeProvider/runSurroundingPairScopeInfoTest.ts
rename to packages/test-vscode-e2e/src/suite/scopeProvider/runSurroundingPairScopeInfoTest.ts
diff --git a/packages/cursorless-vscode-e2e/src/suite/scopeProvider/scopeProvider.vscode.test.ts b/packages/test-vscode-e2e/src/suite/scopeProvider/scopeProvider.vscode.test.ts
similarity index 100%
rename from packages/cursorless-vscode-e2e/src/suite/scopeProvider/scopeProvider.vscode.test.ts
rename to packages/test-vscode-e2e/src/suite/scopeProvider/scopeProvider.vscode.test.ts
diff --git a/packages/cursorless-vscode-e2e/src/suite/scopeVisualizer/checkAndResetFakes.ts b/packages/test-vscode-e2e/src/suite/scopeVisualizer/checkAndResetFakes.ts
similarity index 100%
rename from packages/cursorless-vscode-e2e/src/suite/scopeVisualizer/checkAndResetFakes.ts
rename to packages/test-vscode-e2e/src/suite/scopeVisualizer/checkAndResetFakes.ts
diff --git a/packages/cursorless-vscode-e2e/src/suite/scopeVisualizer/colorConfig.ts b/packages/test-vscode-e2e/src/suite/scopeVisualizer/colorConfig.ts
similarity index 100%
rename from packages/cursorless-vscode-e2e/src/suite/scopeVisualizer/colorConfig.ts
rename to packages/test-vscode-e2e/src/suite/scopeVisualizer/colorConfig.ts
diff --git a/packages/cursorless-vscode-e2e/src/suite/scopeVisualizer/injectFakes.ts b/packages/test-vscode-e2e/src/suite/scopeVisualizer/injectFakes.ts
similarity index 100%
rename from packages/cursorless-vscode-e2e/src/suite/scopeVisualizer/injectFakes.ts
rename to packages/test-vscode-e2e/src/suite/scopeVisualizer/injectFakes.ts
diff --git a/packages/cursorless-vscode-e2e/src/suite/scopeVisualizer/runBasicMultilineContentTest.png b/packages/test-vscode-e2e/src/suite/scopeVisualizer/runBasicMultilineContentTest.png
similarity index 100%
rename from packages/cursorless-vscode-e2e/src/suite/scopeVisualizer/runBasicMultilineContentTest.png
rename to packages/test-vscode-e2e/src/suite/scopeVisualizer/runBasicMultilineContentTest.png
diff --git a/packages/cursorless-vscode-e2e/src/suite/scopeVisualizer/runBasicMultilineContentTest.ts b/packages/test-vscode-e2e/src/suite/scopeVisualizer/runBasicMultilineContentTest.ts
similarity index 100%
rename from packages/cursorless-vscode-e2e/src/suite/scopeVisualizer/runBasicMultilineContentTest.ts
rename to packages/test-vscode-e2e/src/suite/scopeVisualizer/runBasicMultilineContentTest.ts
diff --git a/packages/cursorless-vscode-e2e/src/suite/scopeVisualizer/runBasicRemovalTest.png b/packages/test-vscode-e2e/src/suite/scopeVisualizer/runBasicRemovalTest.png
similarity index 100%
rename from packages/cursorless-vscode-e2e/src/suite/scopeVisualizer/runBasicRemovalTest.png
rename to packages/test-vscode-e2e/src/suite/scopeVisualizer/runBasicRemovalTest.png
diff --git a/packages/cursorless-vscode-e2e/src/suite/scopeVisualizer/runBasicRemovalTest.ts b/packages/test-vscode-e2e/src/suite/scopeVisualizer/runBasicRemovalTest.ts
similarity index 100%
rename from packages/cursorless-vscode-e2e/src/suite/scopeVisualizer/runBasicRemovalTest.ts
rename to packages/test-vscode-e2e/src/suite/scopeVisualizer/runBasicRemovalTest.ts
diff --git a/packages/cursorless-vscode-e2e/src/suite/scopeVisualizer/runNestedMultilineContentTest.png b/packages/test-vscode-e2e/src/suite/scopeVisualizer/runNestedMultilineContentTest.png
similarity index 100%
rename from packages/cursorless-vscode-e2e/src/suite/scopeVisualizer/runNestedMultilineContentTest.png
rename to packages/test-vscode-e2e/src/suite/scopeVisualizer/runNestedMultilineContentTest.png
diff --git a/packages/cursorless-vscode-e2e/src/suite/scopeVisualizer/runNestedMultilineContentTest.ts b/packages/test-vscode-e2e/src/suite/scopeVisualizer/runNestedMultilineContentTest.ts
similarity index 100%
rename from packages/cursorless-vscode-e2e/src/suite/scopeVisualizer/runNestedMultilineContentTest.ts
rename to packages/test-vscode-e2e/src/suite/scopeVisualizer/runNestedMultilineContentTest.ts
diff --git a/packages/cursorless-vscode-e2e/src/suite/scopeVisualizer/runUpdateTest.ts b/packages/test-vscode-e2e/src/suite/scopeVisualizer/runUpdateTest.ts
similarity index 100%
rename from packages/cursorless-vscode-e2e/src/suite/scopeVisualizer/runUpdateTest.ts
rename to packages/test-vscode-e2e/src/suite/scopeVisualizer/runUpdateTest.ts
diff --git a/packages/cursorless-vscode-e2e/src/suite/scopeVisualizer/scopeVisualizer.vscode.test.ts b/packages/test-vscode-e2e/src/suite/scopeVisualizer/scopeVisualizer.vscode.test.ts
similarity index 100%
rename from packages/cursorless-vscode-e2e/src/suite/scopeVisualizer/scopeVisualizer.vscode.test.ts
rename to packages/test-vscode-e2e/src/suite/scopeVisualizer/scopeVisualizer.vscode.test.ts
diff --git a/packages/cursorless-vscode-e2e/src/suite/scopeVisualizer/scopeVisualizerTest.types.ts b/packages/test-vscode-e2e/src/suite/scopeVisualizer/scopeVisualizerTest.types.ts
similarity index 100%
rename from packages/cursorless-vscode-e2e/src/suite/scopeVisualizer/scopeVisualizerTest.types.ts
rename to packages/test-vscode-e2e/src/suite/scopeVisualizer/scopeVisualizerTest.types.ts
diff --git a/packages/cursorless-vscode-e2e/src/suite/scopeVisualizer/spyCallsToPlainObject.ts b/packages/test-vscode-e2e/src/suite/scopeVisualizer/spyCallsToPlainObject.ts
similarity index 100%
rename from packages/cursorless-vscode-e2e/src/suite/scopeVisualizer/spyCallsToPlainObject.ts
rename to packages/test-vscode-e2e/src/suite/scopeVisualizer/spyCallsToPlainObject.ts
diff --git a/packages/cursorless-vscode-e2e/src/suite/scroll.vscode.test.ts b/packages/test-vscode-e2e/src/suite/scroll.vscode.test.ts
similarity index 100%
rename from packages/cursorless-vscode-e2e/src/suite/scroll.vscode.test.ts
rename to packages/test-vscode-e2e/src/suite/scroll.vscode.test.ts
diff --git a/packages/cursorless-vscode-e2e/src/suite/setupFake.ts b/packages/test-vscode-e2e/src/suite/setupFake.ts
similarity index 100%
rename from packages/cursorless-vscode-e2e/src/suite/setupFake.ts
rename to packages/test-vscode-e2e/src/suite/setupFake.ts
diff --git a/packages/cursorless-vscode-e2e/src/suite/shouldSkipTest.ts b/packages/test-vscode-e2e/src/suite/shouldSkipTest.ts
similarity index 100%
rename from packages/cursorless-vscode-e2e/src/suite/shouldSkipTest.ts
rename to packages/test-vscode-e2e/src/suite/shouldSkipTest.ts
diff --git a/packages/cursorless-vscode-e2e/src/suite/testCaseRecorder.vscode.test.ts b/packages/test-vscode-e2e/src/suite/testCaseRecorder.vscode.test.ts
similarity index 100%
rename from packages/cursorless-vscode-e2e/src/suite/testCaseRecorder.vscode.test.ts
rename to packages/test-vscode-e2e/src/suite/testCaseRecorder.vscode.test.ts
diff --git a/packages/cursorless-vscode-e2e/src/suite/toggleDecorations.vscode.test.ts b/packages/test-vscode-e2e/src/suite/toggleDecorations.vscode.test.ts
similarity index 100%
rename from packages/cursorless-vscode-e2e/src/suite/toggleDecorations.vscode.test.ts
rename to packages/test-vscode-e2e/src/suite/toggleDecorations.vscode.test.ts
diff --git a/packages/cursorless-vscode-e2e/src/suite/tutorial/tutorial.vscode.test.ts b/packages/test-vscode-e2e/src/suite/tutorial/tutorial.vscode.test.ts
similarity index 100%
rename from packages/cursorless-vscode-e2e/src/suite/tutorial/tutorial.vscode.test.ts
rename to packages/test-vscode-e2e/src/suite/tutorial/tutorial.vscode.test.ts
diff --git a/packages/cursorless-vscode-e2e/src/suite/visible.vscode.test.ts b/packages/test-vscode-e2e/src/suite/visible.vscode.test.ts
similarity index 100%
rename from packages/cursorless-vscode-e2e/src/suite/visible.vscode.test.ts
rename to packages/test-vscode-e2e/src/suite/visible.vscode.test.ts
diff --git a/packages/cursorless-vscode-e2e/src/suite/waitFor.ts b/packages/test-vscode-e2e/src/suite/waitFor.ts
similarity index 100%
rename from packages/cursorless-vscode-e2e/src/suite/waitFor.ts
rename to packages/test-vscode-e2e/src/suite/waitFor.ts
diff --git a/packages/cursorless-vscode-e2e/src/suite/wrapWithSnippetAcrossSplit.vscode.test.ts b/packages/test-vscode-e2e/src/suite/wrapWithSnippetAcrossSplit.vscode.test.ts
similarity index 100%
rename from packages/cursorless-vscode-e2e/src/suite/wrapWithSnippetAcrossSplit.vscode.test.ts
rename to packages/test-vscode-e2e/src/suite/wrapWithSnippetAcrossSplit.vscode.test.ts
diff --git a/packages/test-harness/tsconfig.json b/packages/test-vscode-e2e/tsconfig.json
similarity index 100%
rename from packages/test-harness/tsconfig.json
rename to packages/test-vscode-e2e/tsconfig.json
diff --git a/packages/meta-updater/README.md b/packages/tool-meta-updater/README.md
similarity index 100%
rename from packages/meta-updater/README.md
rename to packages/tool-meta-updater/README.md
diff --git a/packages/meta-updater/package.json b/packages/tool-meta-updater/package.json
similarity index 100%
rename from packages/meta-updater/package.json
rename to packages/tool-meta-updater/package.json
diff --git a/packages/meta-updater/src/Context.ts b/packages/tool-meta-updater/src/Context.ts
similarity index 100%
rename from packages/meta-updater/src/Context.ts
rename to packages/tool-meta-updater/src/Context.ts
diff --git a/packages/meta-updater/src/getCursorlessVscodeFields.ts b/packages/tool-meta-updater/src/getCursorlessVscodeFields.ts
similarity index 100%
rename from packages/meta-updater/src/getCursorlessVscodeFields.ts
rename to packages/tool-meta-updater/src/getCursorlessVscodeFields.ts
diff --git a/packages/meta-updater/src/index.ts b/packages/tool-meta-updater/src/index.ts
similarity index 100%
rename from packages/meta-updater/src/index.ts
rename to packages/tool-meta-updater/src/index.ts
diff --git a/packages/meta-updater/src/metaUpdater.ts b/packages/tool-meta-updater/src/metaUpdater.ts
similarity index 100%
rename from packages/meta-updater/src/metaUpdater.ts
rename to packages/tool-meta-updater/src/metaUpdater.ts
diff --git a/packages/meta-updater/src/textFormat.ts b/packages/tool-meta-updater/src/textFormat.ts
similarity index 100%
rename from packages/meta-updater/src/textFormat.ts
rename to packages/tool-meta-updater/src/textFormat.ts
diff --git a/packages/meta-updater/src/toPosixPath.ts b/packages/tool-meta-updater/src/toPosixPath.ts
similarity index 100%
rename from packages/meta-updater/src/toPosixPath.ts
rename to packages/tool-meta-updater/src/toPosixPath.ts
diff --git a/packages/meta-updater/src/updateLanguageMdx.ts b/packages/tool-meta-updater/src/updateLanguageMdx.ts
similarity index 100%
rename from packages/meta-updater/src/updateLanguageMdx.ts
rename to packages/tool-meta-updater/src/updateLanguageMdx.ts
diff --git a/packages/meta-updater/src/updatePackageJson.ts b/packages/tool-meta-updater/src/updatePackageJson.ts
similarity index 100%
rename from packages/meta-updater/src/updatePackageJson.ts
rename to packages/tool-meta-updater/src/updatePackageJson.ts
diff --git a/packages/meta-updater/src/updateScopeMdx.ts b/packages/tool-meta-updater/src/updateScopeMdx.ts
similarity index 100%
rename from packages/meta-updater/src/updateScopeMdx.ts
rename to packages/tool-meta-updater/src/updateScopeMdx.ts
diff --git a/packages/meta-updater/src/updateTSConfig.ts b/packages/tool-meta-updater/src/updateTSConfig.ts
similarity index 100%
rename from packages/meta-updater/src/updateTSConfig.ts
rename to packages/tool-meta-updater/src/updateTSConfig.ts
diff --git a/packages/meta-updater/src/updateTSConfigBase.ts b/packages/tool-meta-updater/src/updateTSConfigBase.ts
similarity index 100%
rename from packages/meta-updater/src/updateTSConfigBase.ts
rename to packages/tool-meta-updater/src/updateTSConfigBase.ts
diff --git a/packages/meta-updater/src/updatesScopeSupportFacetInfos.ts b/packages/tool-meta-updater/src/updatesScopeSupportFacetInfos.ts
similarity index 100%
rename from packages/meta-updater/src/updatesScopeSupportFacetInfos.ts
rename to packages/tool-meta-updater/src/updatesScopeSupportFacetInfos.ts
diff --git a/packages/vscode-common/tsconfig.json b/packages/tool-meta-updater/tsconfig.json
similarity index 100%
rename from packages/vscode-common/tsconfig.json
rename to packages/tool-meta-updater/tsconfig.json
From 3668bf0b6a24608999eb4d68c9cf53d382cade55 Mon Sep 17 00:00:00 2001
From: Andreas Arvidsson
Date: Thu, 19 Mar 2026 11:09:43 +0100
Subject: [PATCH 02/24] @cursorless/cheatsheet
---
packages/app-vscode/package.json | 4 ++--
packages/app-vscode/scripts/install-local.sh | 2 +-
packages/app-web/package.json | 2 +-
packages/app-web/src/Cheatsheet.tsx | 4 ++--
packages/lib-cheatsheet-local/package.json | 4 ++--
packages/lib-cheatsheet-local/src/app.tsx | 4 ++--
.../src/test/app.spec.tsx | 2 +-
packages/lib-cheatsheet-local/vite.config.ts | 2 +-
packages/lib-cheatsheet/package.json | 2 +-
tsconfig.base.json | 24 +++++++++----------
10 files changed, 25 insertions(+), 25 deletions(-)
diff --git a/packages/app-vscode/package.json b/packages/app-vscode/package.json
index 26dc4404e5..7b250115ec 100644
--- a/packages/app-vscode/package.json
+++ b/packages/app-vscode/package.json
@@ -1286,8 +1286,8 @@
"test": "pnpm ensure-grammar-up-to-date",
"dev": "pnpm generate-grammar && pnpm run compile:dev && pnpm run bundle:dev && pnpm run populate-dist",
"build": "pnpm generate-grammar && pnpm run compile:prod && pnpm run bundle:prod && pnpm run populate-dist",
- "bundle:dev": "pnpm -F @cursorless/cursorless-vscode-tutorial-webview -F @cursorless/cheatsheet-local run bundle:dev",
- "bundle:prod": "pnpm -F @cursorless/cursorless-vscode-tutorial-webview -F @cursorless/cheatsheet-local run bundle:prod",
+ "bundle:dev": "pnpm -F @cursorless/cursorless-vscode-tutorial-webview -F @cursorless/lib-cheatsheet-local run bundle:dev",
+ "bundle:prod": "pnpm -F @cursorless/cursorless-vscode-tutorial-webview -F @cursorless/lib-cheatsheet-local run bundle:prod",
"compile:prod": "pnpm run compile:base --minify",
"compile:dev": "pnpm run compile:base --sourcemap",
"compile:watch": "pnpm run compile:base --sourcemap --watch",
diff --git a/packages/app-vscode/scripts/install-local.sh b/packages/app-vscode/scripts/install-local.sh
index 525d39029c..14bbb96764 100644
--- a/packages/app-vscode/scripts/install-local.sh
+++ b/packages/app-vscode/scripts/install-local.sh
@@ -16,7 +16,7 @@ fi
# Cursorless first and using a special extension id to break update chain
# 1. Build local cursorless, using special extension id to break update chain
-pnpm -F @cursorless/cheatsheet-local bundle:prod
+pnpm -F @cursorless/lib-cheatsheet-local bundle:prod
pnpm -F @cursorless/cursorless-vscode-tutorial-webview bundle:prod
pnpm build --local-install
diff --git a/packages/app-web/package.json b/packages/app-web/package.json
index 7aa7bf0aa2..350af37758 100644
--- a/packages/app-web/package.json
+++ b/packages/app-web/package.json
@@ -12,7 +12,7 @@
"build": "env NODE_OPTIONS=--import=tsx vite build"
},
"dependencies": {
- "@cursorless/cheatsheet": "workspace:*",
+ "@cursorless/lib-cheatsheet": "workspace:*",
"@cursorless/common": "workspace:*",
"bootstrap": "^5.3.8",
"preact": "^10.29.0",
diff --git a/packages/app-web/src/Cheatsheet.tsx b/packages/app-web/src/Cheatsheet.tsx
index 7d95fcec0c..86bb9269a7 100644
--- a/packages/app-web/src/Cheatsheet.tsx
+++ b/packages/app-web/src/Cheatsheet.tsx
@@ -1,5 +1,5 @@
-import { Cheatsheet as OriginalCheatsheet } from "@cursorless/cheatsheet";
-import defaultCheatsheetInfo from "@cursorless/cheatsheet/defaultSpokenForms";
+import { Cheatsheet as OriginalCheatsheet } from "@cursorless/lib-cheatsheet";
+import defaultCheatsheetInfo from "@cursorless/lib-cheatsheet/defaultSpokenForms";
export function Cheatsheet() {
return (
diff --git a/packages/lib-cheatsheet-local/package.json b/packages/lib-cheatsheet-local/package.json
index 64108ac472..4e480f6e2b 100644
--- a/packages/lib-cheatsheet-local/package.json
+++ b/packages/lib-cheatsheet-local/package.json
@@ -1,5 +1,5 @@
{
- "name": "@cursorless/cheatsheet-local",
+ "name": "@cursorless/lib-cheatsheet-local",
"version": "0.1.0",
"description": "Thin wrapper around the cheatsheet for showing local cheatsheet",
"license": "MIT",
@@ -15,7 +15,7 @@
"bundle:watch": "env NODE_OPTIONS=--import=tsx vite build --mode development --watch"
},
"dependencies": {
- "@cursorless/cheatsheet": "workspace:*",
+ "@cursorless/lib-cheatsheet": "workspace:*",
"@cursorless/common": "workspace:*",
"bootstrap": "^5.3.8",
"preact": "^10.29.0"
diff --git a/packages/lib-cheatsheet-local/src/app.tsx b/packages/lib-cheatsheet-local/src/app.tsx
index ea1332d4b6..efc338c031 100644
--- a/packages/lib-cheatsheet-local/src/app.tsx
+++ b/packages/lib-cheatsheet-local/src/app.tsx
@@ -1,5 +1,5 @@
-import type { CheatsheetInfo } from "@cursorless/cheatsheet";
-import { Cheatsheet } from "@cursorless/cheatsheet";
+import type { CheatsheetInfo } from "@cursorless/lib-cheatsheet";
+import { Cheatsheet } from "@cursorless/lib-cheatsheet";
import "./styles.css";
declare global {
diff --git a/packages/lib-cheatsheet-local/src/test/app.spec.tsx b/packages/lib-cheatsheet-local/src/test/app.spec.tsx
index ec265fb7dd..0b1344915e 100644
--- a/packages/lib-cheatsheet-local/src/test/app.spec.tsx
+++ b/packages/lib-cheatsheet-local/src/test/app.spec.tsx
@@ -1,4 +1,4 @@
-import { fakeCheatsheetInfo } from "@cursorless/cheatsheet";
+import { fakeCheatsheetInfo } from "@cursorless/lib-cheatsheet";
import { render } from "preact";
import { act } from "preact/test-utils";
import { App } from "../app";
diff --git a/packages/lib-cheatsheet-local/vite.config.ts b/packages/lib-cheatsheet-local/vite.config.ts
index edf7ba61d2..7031ddec34 100644
--- a/packages/lib-cheatsheet-local/vite.config.ts
+++ b/packages/lib-cheatsheet-local/vite.config.ts
@@ -1,4 +1,4 @@
-import defaultCheatsheetInfo from "@cursorless/cheatsheet/defaultSpokenForms";
+import defaultCheatsheetInfo from "@cursorless/lib-cheatsheet/defaultSpokenForms";
import { viteHtmlParams, vitePreactAlias } from "@cursorless/common/vite";
import { defineConfig, type UserConfig } from "vite";
import purgeCss from "vite-plugin-purgecss";
diff --git a/packages/lib-cheatsheet/package.json b/packages/lib-cheatsheet/package.json
index 4438cd6ff4..d44b0af53a 100644
--- a/packages/lib-cheatsheet/package.json
+++ b/packages/lib-cheatsheet/package.json
@@ -1,5 +1,5 @@
{
- "name": "@cursorless/cheatsheet",
+ "name": "@cursorless/lib-cheatsheet",
"version": "0.1.0",
"description": "Core cheatsheet Preact component",
"license": "MIT",
diff --git a/tsconfig.base.json b/tsconfig.base.json
index 6c3bd800ec..f8d7e54b8d 100644
--- a/tsconfig.base.json
+++ b/tsconfig.base.json
@@ -12,19 +12,19 @@
"isolatedModules": true,
"strict": true,
"paths": {
- "@cursorless/cheatsheet": ["./packages/cheatsheet"],
- "@cursorless/common": ["./packages/common"],
- "@cursorless/cursorless-engine": ["./packages/cursorless-engine"],
- "@cursorless/cursorless-everywhere-talon-core": [
- "./packages/cursorless-everywhere-talon-core"
+ "@cursorless/lib-cheatsheet": ["./packages/lib-cheatsheet"],
+ "@cursorless/lib-common": ["./packages/lib-common"],
+ "@cursorless/lib-engine": ["./packages/lib-engine"],
+ "@cursorless/lib-neovim-common": ["./packages/lib-neovim-common"],
+ "@cursorless/lib-neovim-registry": ["./packages/lib-neovim-registry"],
+ "@cursorless/lib-node-common": ["./packages/lib-node-common"],
+ "@cursorless/lib-sentence-parser": ["./packages/lib-sentence-parser"],
+ "@cursorless/lib-talon-core": ["./packages/lib-talon-core"],
+ "@cursorless/lib-test-case-recorder": [
+ "./packages/lib-test-case-recorder"
],
- "@cursorless/cursorless-tutorial": ["./packages/cursorless-tutorial"],
- "@cursorless/neovim-common": ["./packages/neovim-common"],
- "@cursorless/neovim-registry": ["./packages/neovim-registry"],
- "@cursorless/node-common": ["./packages/node-common"],
- "@cursorless/sentence-parser": ["./packages/sentence-parser"],
- "@cursorless/test-case-recorder": ["./packages/test-case-recorder"],
- "@cursorless/vscode-common": ["./packages/vscode-common"]
+ "@cursorless/lib-tutorial": ["./packages/lib-tutorial"],
+ "@cursorless/lib-vscode-common": ["./packages/lib-vscode-common"]
}
}
}
From e9f3dae57c38450e3dd18c417bb9d63767382dd5 Mon Sep 17 00:00:00 2001
From: Andreas Arvidsson
Date: Thu, 19 Mar 2026 11:10:59 +0100
Subject: [PATCH 03/24] @cursorless/common
---
packages/app-neovim/package.json | 2 +-
.../app-neovim/src/NeovimCommandServerApi.ts | 2 +-
.../app-neovim/src/constructTestHelpers.ts | 2 +-
packages/app-neovim/src/extension.ts | 2 +-
packages/app-neovim/src/registerCommands.ts | 4 +-
packages/app-talon/package.json | 2 +-
packages/app-talon/src/extension.ts | 2 +-
packages/app-vscode/package.json | 2 +-
packages/app-vscode/src/ReleaseNotes.test.ts | 4 +-
packages/app-vscode/src/ReleaseNotes.ts | 4 +-
packages/app-vscode/src/ScopeTreeProvider.ts | 4 +-
.../src/ScopeVisualizerCommandApi.ts | 2 +-
packages/app-vscode/src/SpyWebviewView.ts | 2 +-
packages/app-vscode/src/VscodeSnippets.ts | 2 +-
packages/app-vscode/src/VscodeTutorial.ts | 6 +-
packages/app-vscode/src/commands.ts | 2 +-
.../app-vscode/src/constructTestHelpers.ts | 2 +-
.../app-vscode/src/createScopeVisualizer.ts | 2 +-
packages/app-vscode/src/createTreeSitter.ts | 2 +-
packages/app-vscode/src/createTutorial.ts | 2 +-
packages/app-vscode/src/extension.ts | 4 +-
.../VscodeFancyRangeHighlighter.ts | 4 +-
.../VscodeFancyRangeHighlighterRenderer.ts | 4 +-
.../decorationStyle.types.ts | 2 +-
.../generateDifferentiatedRanges.ts | 4 +-
.../getDifferentiatedStyleMapKey.ts | 2 +-
.../groupDifferentiatedStyledRanges.ts | 2 +-
.../VscodeIterationScopeVisualizer.ts | 8 +-
.../VscodeScopeRenderer.ts | 4 +-
.../VscodeScopeTargetVisualizer.ts | 4 +-
.../VscodeScopeVisualizer.ts | 4 +-
.../blendRangeTypeColors.ts | 2 +-
.../createVscodeScopeVisualizer.ts | 2 +-
.../src/ide/vscode/VscodeCapabilities.ts | 5 +-
.../src/ide/vscode/VscodeClipboard.ts | 2 +-
.../src/ide/vscode/VscodeConfiguration.ts | 4 +-
.../app-vscode/src/ide/vscode/VscodeEdit.ts | 2 +-
.../vscode/VscodeEnabledHatStyleManager.ts | 8 +-
.../app-vscode/src/ide/vscode/VscodeEvents.ts | 2 +-
.../src/ide/vscode/VscodeFileSystem.ts | 2 +-
.../src/ide/vscode/VscodeFlashHandler.ts | 4 +-
.../app-vscode/src/ide/vscode/VscodeFold.ts | 2 +-
.../src/ide/vscode/VscodeHighlights.ts | 4 +-
.../app-vscode/src/ide/vscode/VscodeIDE.ts | 4 +-
.../src/ide/vscode/VscodeIdeNotebook.ts | 2 +-
.../src/ide/vscode/VscodeInsertSnippets.ts | 4 +-
.../src/ide/vscode/VscodeKeyValueStore.ts | 4 +-
.../src/ide/vscode/VscodeMessages.ts | 4 +-
.../src/ide/vscode/VscodeOpenLink.ts | 4 +-
.../src/ide/vscode/VscodeRevealLine.ts | 2 +-
.../src/ide/vscode/VscodeRunMode.ts | 2 +-
.../src/ide/vscode/VscodeTextDocument.ts | 4 +-
.../src/ide/vscode/VscodeTextEditor.ts | 4 +-
.../src/ide/vscode/VscodeTextLine.ts | 4 +-
.../src/ide/vscode/VscodeToggleBreakpoint.ts | 2 +-
.../src/ide/vscode/hats/VscodeHatRenderer.ts | 4 +-
.../src/ide/vscode/hats/VscodeHats.ts | 4 +-
.../hats/performPr1868ShapeUpdateInit.ts | 4 +-
.../src/ide/vscode/toVscodeEditor.ts | 2 +-
.../src/ide/vscode/vscodeShowQuickPick.ts | 2 +-
.../src/keyboard/KeyboardActionType.ts | 6 +-
.../src/keyboard/KeyboardCommandHandler.ts | 2 +-
.../src/keyboard/KeyboardCommandsModal.ts | 2 +-
.../src/keyboard/KeyboardCommandsTargeted.ts | 4 +-
.../app-vscode/src/keyboard/TokenTypes.ts | 2 +-
.../src/keyboard/grammar/generated/grammar.ts | 351 +++++++++++++-----
.../grammar/getAcceptableTokenTypes.ts | 2 +-
.../src/keyboard/grammar/grammar.ne | 2 +-
packages/app-vscode/src/registerCommands.ts | 4 +-
.../src/revisualizeOnCustomRegexChange.ts | 4 +-
.../src/scripts/initLaunchSandbox.ts | 2 +-
.../scripts/populateDist/generateBuildInfo.ts | 2 +-
.../app-vscode/src/storedTargetHighlighter.ts | 4 +-
packages/app-vscode/src/usingSetting.ts | 2 +-
packages/app-web-docs/package.json | 2 +-
.../src/docs/components/Header.tsx | 2 +-
.../src/docs/components/ScopeVisualizer.tsx | 7 +-
.../docs/components/calculateHighlights.ts | 4 +-
.../docs/components/flattenHighlights.test.ts | 2 +-
.../src/docs/components/flattenHighlights.ts | 8 +-
.../components/highlightsToDecorations.ts | 2 +-
.../app-web-docs/src/docs/components/types.ts | 2 +-
.../app-web-docs/src/docs/components/util.ts | 4 +-
.../contributing/MissingLanguageScopes.tsx | 4 +-
.../docs/contributing/adding-a-new-package.md | 2 +-
.../contributing/scopes/components/Scopes.tsx | 2 +-
packages/app-web/package.json | 2 +-
packages/app-web/src/constants.ts | 2 +-
packages/app-web/vite.config.ts | 4 +-
packages/lib-cheatsheet-local/jest.config.ts | 2 +-
packages/lib-cheatsheet-local/package.json | 2 +-
packages/lib-cheatsheet-local/vite.config.ts | 2 +-
packages/lib-cheatsheet/jest.config.ts | 2 +-
packages/lib-cheatsheet/package.json | 2 +-
packages/lib-common/package.json | 2 +-
.../inMemoryTextEditor/InMemoryTextEditor.ts | 4 +-
.../ide/types/RawTreeSitterQueryProvider.ts | 2 +-
.../lib-common/src/types/SpokenFormType.ts | 2 +-
.../lib-common/src/types/TalonSpokenForms.ts | 2 +-
packages/lib-common/src/types/TreeSitter.ts | 2 +-
packages/lib-engine/package.json | 2 +-
packages/lib-engine/src/CommandHistory.ts | 2 +-
.../lib-engine/src/CommandHistoryAnalyzer.ts | 4 +-
packages/lib-engine/src/CommandRunner.ts | 2 +-
.../lib-engine/src/KeyboardTargetUpdater.ts | 2 +-
packages/lib-engine/src/actions/Actions.ts | 2 +-
packages/lib-engine/src/actions/BreakLine.ts | 4 +-
.../lib-engine/src/actions/BringMoveSwap.ts | 4 +-
.../lib-engine/src/actions/CallbackAction.ts | 8 +-
packages/lib-engine/src/actions/Clear.ts | 2 +-
.../lib-engine/src/actions/CopyToClipboard.ts | 4 +-
.../lib-engine/src/actions/CutToClipboard.ts | 8 +-
packages/lib-engine/src/actions/Deselect.ts | 2 +-
.../lib-engine/src/actions/EditNew/EditNew.ts | 4 +-
.../src/actions/EditNew/EditNew.types.ts | 2 +-
.../src/actions/EditNew/runEditTargets.ts | 4 +-
.../EditNew/runInsertLineAfterTargets.ts | 4 +-
.../actions/EditNew/runNotebookCellTargets.ts | 2 +-
.../lib-engine/src/actions/ExecuteCommand.ts | 2 +-
packages/lib-engine/src/actions/Find.ts | 4 +-
.../lib-engine/src/actions/FlashTargets.ts | 4 +-
packages/lib-engine/src/actions/FollowLink.ts | 4 +-
.../GenerateSnippet/GenerateSnippet.ts | 8 +-
packages/lib-engine/src/actions/GetText.ts | 4 +-
packages/lib-engine/src/actions/Highlight.ts | 2 +-
packages/lib-engine/src/actions/IndentLine.ts | 4 +-
packages/lib-engine/src/actions/InsertCopy.ts | 4 +-
.../src/actions/InsertEmptyLines.ts | 4 +-
.../lib-engine/src/actions/InsertSnippet.ts | 4 +-
packages/lib-engine/src/actions/JoinLines.ts | 9 +-
.../src/actions/PasteFromClipboard.ts | 2 +-
.../src/actions/PasteFromClipboardDirectly.ts | 4 +-
.../actions/PasteFromClipboardUsingCommand.ts | 2 +-
packages/lib-engine/src/actions/Remove.ts | 4 +-
packages/lib-engine/src/actions/Replace.ts | 4 +-
packages/lib-engine/src/actions/Rewrap.ts | 4 +-
packages/lib-engine/src/actions/Scroll.ts | 4 +-
.../lib-engine/src/actions/SetSelection.ts | 4 +-
.../src/actions/SetSpecialTarget.ts | 2 +-
.../lib-engine/src/actions/ShowParseTree.ts | 4 +-
.../src/actions/SimpleIdeCommandActions.ts | 2 +-
packages/lib-engine/src/actions/Sort.ts | 2 +-
.../src/actions/ToggleBreakpoint.ts | 2 +-
packages/lib-engine/src/actions/Wrap.ts | 4 +-
.../lib-engine/src/actions/WrapWithSnippet.ts | 4 +-
.../lib-engine/src/actions/actions.types.ts | 2 +-
.../src/actions/incrementDecrement.ts | 4 +-
.../lib-engine/src/api/CursorlessEngineApi.ts | 2 +-
packages/lib-engine/src/core/Debug.ts | 2 +-
packages/lib-engine/src/core/HatAllocator.ts | 2 +-
.../lib-engine/src/core/HatTokenMapImpl.ts | 2 +-
.../lib-engine/src/core/IndividualHatMap.ts | 4 +-
packages/lib-engine/src/core/Snippets.ts | 2 +-
packages/lib-engine/src/core/StoredTargets.ts | 4 +-
.../core/commandRunner/CommandRunnerImpl.ts | 4 +-
.../canonicalizeAndValidateCommand.ts | 4 +-
.../canonicalizeTargetsInPlace.ts | 2 +-
.../upgradeV0ToV1/upgradeV0ToV1.ts | 2 +-
.../upgradeV1ToV2/upgradeStrictHere.ts | 2 +-
.../upgradeV1ToV2/upgradeV1ToV2.ts | 2 +-
.../upgradeV2ToV3/upgradeV2ToV3.ts | 2 +-
.../upgradeV3ToV4/upgradeV3ToV4.ts | 2 +-
.../upgradeV4ToV5/upgradeV4ToV5.ts | 2 +-
.../upgradeV5ToV6/canonicalizeActionName.ts | 4 +-
.../upgradeV5ToV6/upgradeV5ToV6.ts | 2 +-
.../commandVersionUpgrades/upgradeV6ToV7.ts | 2 +-
.../lib-engine/src/core/getCommandFallback.ts | 2 +-
.../src/core/getPreferredSnippet.test.ts | 2 +-
.../src/core/getPreferredSnippet.ts | 4 +-
.../src/core/handleHoistedModifiers.ts | 2 +-
.../src/core/inferFullTargetDescriptor.ts | 2 +-
.../src/core/updateSelections/RangeUpdater.ts | 2 +-
.../getOffsetsForDeleteOrReplace.ts | 2 +-
.../getOffsetsForEmptyRangeInsert.ts | 4 +-
.../getOffsetsForNonEmptyRangeInsert.ts | 4 +-
.../core/updateSelections/getUpdatedText.ts | 2 +-
.../core/updateSelections/updateRangeInfos.ts | 2 +-
.../core/updateSelections/updateSelections.ts | 4 +-
packages/lib-engine/src/cursorlessEngine.ts | 4 +-
.../grammarAction.test.ts | 2 +-
.../grammarScopeType.test.ts | 2 +-
.../src/customCommandGrammar/grammarUtil.ts | 2 +-
.../src/customCommandGrammar/lexer.ts | 4 +-
.../parseAndFillOutAction.ts | 2 +-
.../src/customCommandGrammar/parseCommand.ts | 2 +-
.../DisabledCommandServerApi.ts | 2 +-
.../disabledComponents/DisabledHatTokenMap.ts | 2 +-
.../DisabledLanguageDefinitions.ts | 2 +-
.../disabledComponents/DisabledSnippets.ts | 2 +-
.../DisabledTalonSpokenForms.ts | 4 +-
.../disabledComponents/DisabledTreeSitter.ts | 2 +-
.../CustomSpokenFormGeneratorImpl.test.ts | 2 +-
.../CustomSpokenFormGeneratorImpl.ts | 2 +-
.../generateSpokenForm/SpokenFormComponent.ts | 5 +-
.../defaultSpokenForms/marks.ts | 2 +-
.../defaultSpokenForms/modifiers.ts | 4 +-
.../defaultSpokenForms/snippets.ts | 5 +-
.../surroundingPairsDelimiters.ts | 2 +-
.../generateSpokenForm.test.ts | 7 +-
.../generateSpokenForm/generateSpokenForm.ts | 4 +-
.../generateSpokenForm/getHatMapCommand.ts | 4 +-
.../generateSpokenForm/getRangeConnective.ts | 2 +-
.../getSpokenFormComponentMap.ts | 2 +-
.../primitiveTargetToSpokenForm.ts | 2 +-
.../src/languages/LanguageDefinition.ts | 4 +-
.../src/languages/LanguageDefinitions.ts | 4 +-
.../languages/TreeSitterQuery/QueryCapture.ts | 2 +-
.../TreeSitterQuery/TreeSitterQuery.ts | 2 +-
.../TreeSitterQuery/TreeSitterQueryCache.ts | 2 +-
.../languages/TreeSitterQuery/captureNames.ts | 2 +-
.../checkCaptureStartEnd.test.ts | 4 +-
.../TreeSitterQuery/checkCaptureStartEnd.ts | 4 +-
.../languages/TreeSitterQuery/getNodeRange.ts | 2 +-
.../TreeSitterQuery/makeRangeFromPositions.ts | 2 +-
.../operatorArgumentSchemaTypes.ts | 2 +-
.../parsePredicatesWithErrorHandling.ts | 4 +-
.../TreeSitterQuery/positionToPoint.ts | 2 +-
.../queryPredicateOperators.ts | 2 +-
.../rewriteStartOfEndOf.test.ts | 2 +-
.../TreeSitterQuery/rewriteStartOfEndOf.ts | 2 +-
.../src/languages/TreeSitterQuery/setRange.ts | 2 +-
.../validateQueryCaptures.test.ts | 2 +-
.../TreeSitterQuery/validateQueryCaptures.ts | 2 +-
.../processTargets/MarkStageFactoryImpl.ts | 2 +-
.../processTargets/ModifierStageFactory.ts | 2 +-
.../ModifierStageFactoryImpl.ts | 2 +-
.../processTargets/TargetPipelineRunner.ts | 4 +-
.../src/processTargets/marks/CursorStage.ts | 2 +-
.../marks/DecoratedSymbolStage.ts | 5 +-
.../processTargets/marks/ExplicitMarkStage.ts | 4 +-
.../src/processTargets/marks/ImplicitStage.ts | 2 +-
.../processTargets/marks/LineNumberStage.ts | 2 +-
.../src/processTargets/marks/NothingStage.ts | 2 +-
.../processTargets/marks/StoredTargetStage.ts | 2 +-
.../marks/getActiveSelections.ts | 2 +-
.../processTargets/modifiers/BoundaryStage.ts | 2 +-
.../modifiers/ClassFunctionNameStage.ts | 2 +-
.../modifiers/ConditionalModifierStages.ts | 2 +-
.../modifiers/ContainingScopeStage.ts | 4 +-
.../modifiers/EveryScopeStage.ts | 8 +-
.../processTargets/modifiers/FallbackStage.ts | 2 +-
.../processTargets/modifiers/FilterStages.ts | 2 +-
.../processTargets/modifiers/HeadTailStage.ts | 2 +-
.../processTargets/modifiers/InstanceStage.ts | 4 +-
.../processTargets/modifiers/InteriorStage.ts | 4 +-
.../modifiers/LeadingTrailingStages.ts | 2 +-
.../modifiers/OrdinalScopeStage.ts | 2 +-
.../processTargets/modifiers/PositionStage.ts | 2 +-
.../modifiers/PreferredScopeStage.ts | 4 +-
.../modifiers/RangeModifierStage.ts | 2 +-
.../modifiers/RawSelectionStage.ts | 2 +-
.../modifiers/RelativeScopeStage.ts | 4 +-
.../processTargets/modifiers/VisibleStage.ts | 2 +-
...commonContainingScopeIfUntypedModifiers.ts | 2 +-
.../modifiers/getContainingScopeTarget.ts | 2 +-
.../getPreferredScopeTouchingPosition.ts | 2 +-
.../src/processTargets/modifiers/listUtils.ts | 2 +-
.../scopeHandlers/BaseScopeHandler.test.ts | 4 +-
.../scopeHandlers/BaseScopeHandler.ts | 2 +-
.../scopeHandlers/BoundedScopeHandler.ts | 2 +-
.../scopeHandlers/CharacterScopeHandler.ts | 2 +-
.../CollectionItemScopeHandler.ts | 2 +-
.../CollectionItemTextualScopeHandler.ts | 4 +-
...lectionItemTextualIterationScopeHandler.ts | 2 +-
.../createTargetScope.ts | 4 +-
.../getInteriorRanges.ts | 2 +-
.../getSeparatorOccurrences.ts | 4 +-
.../scopeHandlers/ConditionalScopeHandler.ts | 2 +-
.../scopeHandlers/DocumentScopeHandler.ts | 2 +-
.../scopeHandlers/FallbackScopeHandler.ts | 2 +-
.../scopeHandlers/IdentifierScopeHandler.ts | 2 +-
.../scopeHandlers/LineScopeHandler.ts | 2 +-
.../scopeHandlers/NestedScopeHandler.ts | 2 +-
.../NotHierarchicalScopeError.ts | 2 +-
.../NotebookCellApiScopeHandler.ts | 4 +-
.../scopeHandlers/NotebookCellScopeHandler.ts | 2 +-
.../scopeHandlers/ParagraphScopeHandler.ts | 4 +-
.../scopeHandlers/RegexScopeHandler.ts | 2 +-
.../scopeHandlers/ScopeHandlerCache.ts | 2 +-
.../scopeHandlers/ScopeHandlerFactory.ts | 2 +-
.../scopeHandlers/ScopeHandlerFactoryImpl.ts | 2 +-
.../SentenceScopeHandler.ts | 4 +-
.../SentenceScopeHandler/SentenceSegmenter.ts | 4 +-
.../scopeHandlers/SortedScopeHandler.ts | 2 +-
.../InteriorScopeHandler.ts | 4 +-
.../SurroundingPairInteriorScopeHandler.ts | 2 +-
.../SurroundingPairScopeHandler.ts | 2 +-
.../createTargetScope.ts | 4 +-
.../delimiterMaps.ts | 4 +-
.../getDelimiterOccurrences.ts | 4 +-
.../getIndividualDelimiters.ts | 4 +-
.../getSurroundingPairOccurrences.ts | 2 +-
.../SurroundingPairScopeHandler/types.ts | 2 +-
.../scopeHandlers/TokenScopeHandler.ts | 2 +-
.../BaseTreeSitterScopeHandler.ts | 9 +-
.../TreeSitterIterationScopeHandler.ts | 2 +-
.../TreeSitterScopeHandler.ts | 2 +-
.../TreeSitterScopeHandler/captureUtils.ts | 2 +-
.../getQuerySearchRange.ts | 2 +-
.../WordScopeHandler/WordScopeHandler.ts | 9 +-
.../WordScopeHandler/WordTokenizer.ts | 4 +-
.../scopeHandlers/compareTargetScopes.ts | 2 +-
.../scopeHandlers/isPreferredOverHelper.ts | 2 +-
.../modifiers/scopeHandlers/scope.types.ts | 2 +-
.../scopeHandlers/scopeHandler.types.ts | 2 +-
.../modifiers/scopeHandlers/scopeTypeUtil.ts | 2 +-
.../scopeHandlers/shouldYieldScope.ts | 4 +-
.../util/OneWayNestedRangeFinder.test.ts | 2 +-
.../util/OneWayNestedRangeFinder.ts | 2 +-
.../scopeHandlers/util/OneWayRangeFinder.ts | 2 +-
.../util/getCollectionItemRemovalRange.ts | 2 +-
.../modifiers/targetSequenceUtils.ts | 2 +-
.../src/processTargets/targets/BaseTarget.ts | 4 +-
.../targets/BoundedParagraphTarget.ts | 2 +-
.../processTargets/targets/DestinationImpl.ts | 4 +-
.../processTargets/targets/DocumentTarget.ts | 2 +-
.../processTargets/targets/HeadTailTarget.ts | 2 +-
.../processTargets/targets/ImplicitTarget.ts | 2 +-
.../processTargets/targets/InteriorTarget.ts | 2 +-
.../src/processTargets/targets/LineTarget.ts | 4 +-
.../targets/NotebookCellDestination.ts | 2 +-
.../targets/NotebookCellTarget.ts | 2 +-
.../processTargets/targets/ParagraphTarget.ts | 4 +-
.../src/processTargets/targets/PlainTarget.ts | 2 +-
.../targets/RawSelectionTarget.ts | 2 +-
.../processTargets/targets/ScopeTypeTarget.ts | 2 +-
.../targets/SubTokenWordTarget.ts | 2 +-
.../targets/SurroundingPairTarget.ts | 2 +-
.../src/processTargets/targets/TokenTarget.ts | 2 +-
.../processTargets/targets/UntypedTarget.ts | 2 +-
.../targets/util/createContinuousRange.ts | 2 +-
...limitedSequenceInsertionRemovalBehavior.ts | 2 +-
.../TokenInsertionRemovalBehavior.ts | 4 +-
.../getSmartRemovalTarget.ts | 2 +-
.../insertionRemovalBehavior.types.ts | 2 +-
packages/lib-engine/src/runCommand.ts | 4 +-
.../src/scopeProviders/ScopeInfoProvider.ts | 4 +-
.../src/scopeProviders/ScopeRangeProvider.ts | 4 +-
.../src/scopeProviders/ScopeRangeWatcher.ts | 4 +-
.../src/scopeProviders/ScopeSupportChecker.ts | 8 +-
.../src/scopeProviders/ScopeSupportWatcher.ts | 4 +-
.../src/scopeProviders/getIterationRange.ts | 2 +-
.../scopeProviders/getIterationScopeRanges.ts | 2 +-
.../src/scopeProviders/getScopeRanges.ts | 2 +-
.../src/scopeProviders/getTargetRanges.ts | 2 +-
.../src/scopeProviders/scopeTypeToString.ts | 4 +-
.../transformRecordedTests/checkMarks.ts | 4 +-
.../scripts/transformRecordedTests/index.ts | 7 +-
.../transformRecordedTests/moveFile.ts | 2 +-
.../transformRecordedTests/transformFile.ts | 4 +-
.../transformations/canonicalize.ts | 2 +-
.../transformations/identity.ts | 2 +-
.../transformations/upgrade.ts | 7 +-
.../transformations/upgradeFromVersion0.ts | 2 +-
.../scripts/transformRecordedTests/types.ts | 2 +-
.../upgradeDecorations.ts | 2 +-
.../src/spokenForms/CustomSpokenForms.ts | 4 +-
.../src/spokenForms/SpokenFormMap.ts | 2 +-
.../spokenForms/defaultSpokenFormMap.types.ts | 2 +-
.../fixtures/communitySnippets.fixture.ts | 2 +-
.../src/test/fixtures/multiAction.fixture.ts | 2 +-
.../src/test/fixtures/spokenFormTest.ts | 2 +-
.../fixtures/synonymousSpokenForms.fixture.ts | 2 +-
.../src/test/fixtures/talonApi.fixture.ts | 2 +-
packages/lib-engine/src/test/scopes.test.ts | 4 +-
.../src/test/spokenForms.talon.test.ts | 4 +-
packages/lib-engine/src/test/subtoken.test.ts | 2 +-
.../lib-engine/src/testUtil/TestFileSystem.ts | 2 +-
.../lib-engine/src/testUtil/TestTextEditor.ts | 2 +-
.../lib-engine/src/testUtil/TestTreeSitter.ts | 2 +-
.../src/testUtil/createTestEnvironment.ts | 4 +-
.../src/testUtil/extractTargetKeys.ts | 4 +-
.../src/testUtil/plainObjectToTarget.ts | 4 +-
.../src/testUtil/serializeHeader.ts | 2 +-
.../src/testUtil/serializeScopeFixture.ts | 2 +-
.../src/testUtil/serializeTargetRange.ts | 2 +-
.../tokenGraphemeSplitter.test.ts | 4 +-
.../tokenGraphemeSplitter.ts | 4 +-
.../src/tokenizer/tokenizer.test.ts | 2 +-
.../lib-engine/src/tokenizer/tokenizer.ts | 2 +-
.../src/typings/TargetDescriptor.ts | 2 +-
packages/lib-engine/src/typings/Types.ts | 7 +-
.../lib-engine/src/typings/target.types.ts | 2 +-
.../src/typings/updateSelections.ts | 2 +-
.../src/util/DecorationDebouncer.ts | 4 +-
.../src/util/allocateHats/HatMetrics.ts | 4 +-
.../src/util/allocateHats/allocateHats.ts | 4 +-
.../src/util/allocateHats/chooseTokenHat.ts | 2 +-
.../util/allocateHats/getDisplayLineMap.ts | 2 +-
.../util/allocateHats/getHatRankingContext.ts | 4 +-
.../src/util/allocateHats/getRankedTokens.ts | 2 +-
.../util/allocateHats/getTokenComparator.ts | 2 +-
.../src/util/allocateHats/getTokensInRange.ts | 4 +-
.../lib-engine/src/util/getMatchesInRange.ts | 4 +-
.../src/util/getPartialTargetDescriptors.ts | 2 +-
.../src/util/getPrimitiveTargets.ts | 2 +-
packages/lib-engine/src/util/getScopeType.ts | 2 +-
.../src/util/performDocumentEdits.ts | 2 +-
packages/lib-engine/src/util/rangeUtils.ts | 4 +-
.../lib-engine/src/util/selectionUtils.ts | 4 +-
packages/lib-engine/src/util/targetUtils.ts | 4 +-
.../lib-engine/src/util/tryConstructTarget.ts | 2 +-
packages/lib-neovim-common/package.json | 2 +-
packages/lib-neovim-common/src/TestHelpers.ts | 2 +-
.../src/ide/neovim/NeovimCapabilities.ts | 5 +-
.../src/ide/neovim/NeovimClipboard.ts | 2 +-
.../src/ide/neovim/NeovimConfiguration.ts | 4 +-
.../src/ide/neovim/NeovimEdit.ts | 2 +-
.../src/ide/neovim/NeovimEvents.ts | 4 +-
.../src/ide/neovim/NeovimIDE.ts | 2 +-
.../src/ide/neovim/NeovimKeyValueStore.ts | 4 +-
.../src/ide/neovim/NeovimMessages.ts | 2 +-
.../src/ide/neovim/NeovimTextDocument.ts | 4 +-
.../src/ide/neovim/NeovimTextEditor.ts | 2 +-
.../src/ide/neovim/NeovimTextLine.ts | 4 +-
packages/lib-neovim-common/src/neovimApi.ts | 2 +-
.../lib-neovim-common/src/neovimHelpers.ts | 2 +-
packages/lib-neovim-common/src/runCommand.ts | 4 +-
packages/lib-node-common/package.json | 2 +-
packages/lib-node-common/src/Cheatsheet.ts | 2 +-
.../src/FileSystemCommandHistoryStorage.ts | 2 +-
.../FileSystemRawTreeSitterQueryProvider.ts | 2 +-
.../src/FileSystemTalonSpokenForms.ts | 4 +-
.../src/FileSystemTutorialContentProvider.ts | 2 +-
.../lib-node-common/src/getFixturePaths.ts | 2 +-
packages/lib-node-common/src/loadFixture.ts | 2 +-
.../lib-node-common/src/nodeGetRunMode.ts | 2 +-
.../lib-node-common/src/runRecordedTest.ts | 4 +-
packages/lib-talon-core/package.json | 2 +-
.../src/constructTestHelpers.ts | 2 +-
packages/lib-talon-core/src/extension.ts | 4 +-
.../src/ide/TalonJsCapabilities.ts | 5 +-
.../src/ide/TalonJsClipboard.ts | 2 +-
.../src/ide/TalonJsConfiguration.ts | 4 +-
packages/lib-talon-core/src/ide/TalonJsIDE.ts | 4 +-
.../src/ide/TalonJsKeyValueStore.ts | 2 +-
.../lib-talon-core/src/ide/TalonJsMessages.ts | 4 +-
.../lib-talon-core/src/ide/TalonJsTestHats.ts | 2 +-
.../lib-talon-core/src/ide/flashRanges.ts | 2 +-
.../src/ide/toCharacterRangeOffsets.ts | 2 +-
.../lib-talon-core/src/registerCommands.ts | 2 +-
packages/lib-talon-core/src/types/talon.ts | 2 +-
packages/lib-talon-core/src/types/types.ts | 2 +-
packages/lib-test-case-recorder/package.json | 2 +-
.../src/RecordTestCaseCommandOptions.ts | 2 +-
.../src/ScopeTestRecorder.ts | 2 +-
.../lib-test-case-recorder/src/TestCase.ts | 4 +-
.../src/TestCaseRecorder.ts | 4 +-
.../src/takeSnapshot.ts | 4 +-
packages/lib-tutorial/package.json | 2 +-
packages/lib-tutorial/src/Tutorial.ts | 2 +-
packages/lib-tutorial/src/TutorialImpl.ts | 4 +-
.../lib-tutorial/src/TutorialStepParser.ts | 2 +-
.../lib-tutorial/src/arePreconditionsMet.ts | 4 +-
.../src/getScopeTypeSpokenFormStrict.ts | 2 +-
.../lib-tutorial/src/getSpokenFormStrict.ts | 2 +-
packages/lib-tutorial/src/loadTutorial.ts | 2 +-
packages/lib-tutorial/src/setupStep.ts | 4 +-
.../ActionComponentParser.ts | 4 +-
.../CursorlessCommandComponentParser.ts | 4 +-
.../src/tutorialWrapCommandRunner.ts | 2 +-
.../lib-tutorial/src/types/StepComponent.ts | 2 +-
.../src/types/TutorialStepTrigger.ts | 2 +-
.../lib-tutorial/src/types/tutorial.types.ts | 2 +-
packages/lib-vscode-common/package.json | 2 +-
packages/lib-vscode-common/src/TestHelpers.ts | 2 +-
.../lib-vscode-common/src/getExtensionApi.ts | 2 +-
packages/lib-vscode-common/src/runCommand.ts | 4 +-
packages/lib-vscode-common/src/vscodeUtil.ts | 4 +-
.../lib-vscode-tutorial-webview/package.json | 2 +-
.../lib-vscode-tutorial-webview/src/App.tsx | 2 +-
.../src/TutorialStep.tsx | 2 +-
.../vite.config.ts | 2 +-
packages/test-neovim-e2e/package.json | 2 +-
.../test-neovim-e2e/src/endToEndTestSetup.ts | 4 +-
packages/test-neovim-e2e/src/shouldRunTest.ts | 2 +-
.../src/suite/recorded.neovim.test.ts | 4 +-
packages/test-runner/package.json | 2 +-
.../src/launchNeovimAndRunTests.ts | 2 +-
.../src/launchVscodeAndRunTests.ts | 2 +-
packages/test-talon-e2e/package.json | 2 +-
.../src/constructTestHelpers.ts | 2 +-
.../test-talon-e2e/src/endToEndTestSetUp.ts | 2 +-
packages/test-talon-e2e/src/quickjsTest.ts | 2 +-
.../src/recorded.talonjs.test.ts | 2 +-
packages/test-talon-e2e/src/talonMock.ts | 2 +-
.../test-talon-e2e/src/types/cursorless.ts | 2 +-
packages/test-vscode-e2e/package.json | 2 +-
.../test-vscode-e2e/src/endToEndTestSetup.ts | 4 +-
.../src/mockPrePhraseGetVersion.ts | 2 +-
.../backwardCompatibility.vscode.test.ts | 2 +-
.../src/suite/breakpoints.vscode.test.ts | 2 +-
.../src/suite/commandHistory.vscode.test.ts | 4 +-
.../suite/containingTokenTwice.vscode.test.ts | 2 +-
.../crossCellsSetSelection.vscode.test.ts | 2 +-
.../src/suite/editNewCell.vscode.test.ts | 2 +-
.../src/suite/explicitMark.vscode.test.ts | 2 +-
.../src/suite/fold.vscode.test.ts | 2 +-
.../src/suite/followLink.vscode.test.ts | 2 +-
.../src/suite/groupByDocument.vscode.test.ts | 2 +-
.../suite/instanceAcrossSplit.vscode.test.ts | 4 +-
.../intraCellSetSelection.vscode.test.ts | 2 +-
.../src/suite/performance.vscode.test.ts | 4 +-
.../src/suite/pourAcrossSplit.vscode.test.ts | 2 +-
.../suite/prePhraseSnapshot.vscode.test.ts | 2 +-
.../src/suite/recorded.vscode.test.ts | 4 +-
.../src/suite/revealRange.vscode.test.ts | 2 +-
.../assertCalledWithScopeInfo.ts | 2 +-
.../scopeProvider/runBasicScopeInfoTest.ts | 4 +-
.../runCustomRegexScopeInfoTest.ts | 4 +-
.../runCustomSpokenFormScopeInfoTest.ts | 4 +-
.../runSurroundingPairScopeInfoTest.ts | 4 +-
.../scopeProvider.vscode.test.ts | 2 +-
.../scopeVisualizer.vscode.test.ts | 2 +-
.../scopeVisualizerTest.types.ts | 2 +-
.../scopeVisualizer/spyCallsToPlainObject.ts | 2 +-
.../src/suite/scroll.vscode.test.ts | 2 +-
.../test-vscode-e2e/src/suite/setupFake.ts | 2 +-
.../src/suite/testCaseRecorder.vscode.test.ts | 4 +-
.../suite/tutorial/tutorial.vscode.test.ts | 4 +-
.../src/suite/visible.vscode.test.ts | 2 +-
.../wrapWithSnippetAcrossSplit.vscode.test.ts | 2 +-
packages/tool-meta-updater/package.json | 2 +-
.../src/getCursorlessVscodeFields.ts | 2 +-
packages/tool-meta-updater/src/metaUpdater.ts | 2 +-
.../src/updateLanguageMdx.ts | 2 +-
.../src/updatePackageJson.ts | 2 +-
.../tool-meta-updater/src/updateScopeMdx.ts | 4 +-
.../src/updatesScopeSupportFacetInfos.ts | 4 +-
529 files changed, 1066 insertions(+), 797 deletions(-)
diff --git a/packages/app-neovim/package.json b/packages/app-neovim/package.json
index 7dd316a219..b4b4aac2de 100644
--- a/packages/app-neovim/package.json
+++ b/packages/app-neovim/package.json
@@ -17,7 +17,7 @@
"populate-dist": "bash ./scripts/populate-dist.sh"
},
"dependencies": {
- "@cursorless/common": "workspace:*",
+ "@cursorless/lib-common": "workspace:*",
"@cursorless/cursorless-engine": "workspace:*",
"@cursorless/neovim-common": "workspace:*",
"@cursorless/neovim-registry": "workspace:*",
diff --git a/packages/app-neovim/src/NeovimCommandServerApi.ts b/packages/app-neovim/src/NeovimCommandServerApi.ts
index 625c643fcd..af23ed18dc 100644
--- a/packages/app-neovim/src/NeovimCommandServerApi.ts
+++ b/packages/app-neovim/src/NeovimCommandServerApi.ts
@@ -2,7 +2,7 @@ import type {
CommandServerApi,
FocusedElementType,
InboundSignal,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import type { NeovimClient } from "neovim/lib/api/client";
export class NeovimCommandServerApi implements CommandServerApi {
diff --git a/packages/app-neovim/src/constructTestHelpers.ts b/packages/app-neovim/src/constructTestHelpers.ts
index 044beebbe7..72b306f419 100644
--- a/packages/app-neovim/src/constructTestHelpers.ts
+++ b/packages/app-neovim/src/constructTestHelpers.ts
@@ -11,7 +11,7 @@ import type {
TargetPlainObject,
TestCaseSnapshot,
TextEditor,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import type { StoredTargetMap } from "@cursorless/cursorless-engine";
import { plainObjectToTarget } from "@cursorless/cursorless-engine";
import type { NeovimIDE, NeovimTestHelpers } from "@cursorless/neovim-common";
diff --git a/packages/app-neovim/src/extension.ts b/packages/app-neovim/src/extension.ts
index e51c4da9e6..e8e8bcdc30 100644
--- a/packages/app-neovim/src/extension.ts
+++ b/packages/app-neovim/src/extension.ts
@@ -2,7 +2,7 @@ import {
FakeCommandServerApi,
FakeIDE,
NormalizedIDE,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import { createCursorlessEngine } from "@cursorless/cursorless-engine";
import { EXTENSION_ID, NeovimIDE } from "@cursorless/neovim-common";
import { getNeovimRegistry } from "@cursorless/neovim-registry";
diff --git a/packages/app-neovim/src/registerCommands.ts b/packages/app-neovim/src/registerCommands.ts
index 983dc44f9f..6998bf1f2a 100644
--- a/packages/app-neovim/src/registerCommands.ts
+++ b/packages/app-neovim/src/registerCommands.ts
@@ -2,12 +2,12 @@ import type {
CommandResponse,
CommandServerApi,
CursorlessCommandId,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import {
CURSORLESS_COMMAND_ID,
clientSupportsFallback,
ensureCommandShape,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import type { CommandApi } from "@cursorless/cursorless-engine";
import type { NeovimIDE } from "@cursorless/neovim-common";
diff --git a/packages/app-talon/package.json b/packages/app-talon/package.json
index e9c7462b65..00c92dfc3b 100644
--- a/packages/app-talon/package.json
+++ b/packages/app-talon/package.json
@@ -17,7 +17,7 @@
"compile:base": "bash scripts/esbuild.sh"
},
"dependencies": {
- "@cursorless/common": "workspace:*",
+ "@cursorless/lib-common": "workspace:*",
"@cursorless/cursorless-everywhere-talon-core": "workspace:*"
}
}
diff --git a/packages/app-talon/src/extension.ts b/packages/app-talon/src/extension.ts
index 6df740cf7b..79b46e8f55 100644
--- a/packages/app-talon/src/extension.ts
+++ b/packages/app-talon/src/extension.ts
@@ -1,4 +1,4 @@
-import type { RunMode } from "@cursorless/common";
+import type { RunMode } from "@cursorless/lib-common";
import { activate as activateCore } from "@cursorless/cursorless-everywhere-talon-core";
import * as talon from "talon";
diff --git a/packages/app-vscode/package.json b/packages/app-vscode/package.json
index 7b250115ec..0e6e605e44 100644
--- a/packages/app-vscode/package.json
+++ b/packages/app-vscode/package.json
@@ -1309,7 +1309,7 @@
"pokey.parse-tree"
],
"dependencies": {
- "@cursorless/common": "workspace:*",
+ "@cursorless/lib-common": "workspace:*",
"@cursorless/cursorless-engine": "workspace:*",
"@cursorless/cursorless-tutorial": "workspace:*",
"@cursorless/node-common": "workspace:*",
diff --git a/packages/app-vscode/src/ReleaseNotes.test.ts b/packages/app-vscode/src/ReleaseNotes.test.ts
index caf781cfe8..3b16f9e011 100644
--- a/packages/app-vscode/src/ReleaseNotes.test.ts
+++ b/packages/app-vscode/src/ReleaseNotes.test.ts
@@ -1,6 +1,6 @@
import * as sinon from "sinon";
-import type { MessageType, Messages } from "@cursorless/common";
-import { asyncSafety } from "@cursorless/common";
+import type { MessageType, Messages } from "@cursorless/lib-common";
+import { asyncSafety } from "@cursorless/lib-common";
import type { ExtensionContext, Uri } from "vscode";
import { ReleaseNotes, VERSION_KEY, WHATS_NEW } from "./ReleaseNotes";
import type { VscodeApi } from "@cursorless/vscode-common";
diff --git a/packages/app-vscode/src/ReleaseNotes.ts b/packages/app-vscode/src/ReleaseNotes.ts
index dc16ca23b1..c12d8f812d 100644
--- a/packages/app-vscode/src/ReleaseNotes.ts
+++ b/packages/app-vscode/src/ReleaseNotes.ts
@@ -1,6 +1,6 @@
import type { ExtensionContext } from "vscode";
-import type { Messages } from "@cursorless/common";
-import { showInfo } from "@cursorless/common";
+import type { Messages } from "@cursorless/lib-common";
+import { showInfo } from "@cursorless/lib-common";
import * as semver from "semver";
import type { VscodeApi } from "@cursorless/vscode-common";
import { URI } from "vscode-uri";
diff --git a/packages/app-vscode/src/ScopeTreeProvider.ts b/packages/app-vscode/src/ScopeTreeProvider.ts
index 50d050fa50..38afbc6a6d 100644
--- a/packages/app-vscode/src/ScopeTreeProvider.ts
+++ b/packages/app-vscode/src/ScopeTreeProvider.ts
@@ -7,7 +7,7 @@ import type {
ScopeTypeInfo,
Selection,
TextEditor,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import {
CURSORLESS_SCOPE_TREE_VIEW_ID,
DOCS_URL,
@@ -15,7 +15,7 @@ import {
disposableFrom,
serializeScopeType,
uriEncodeHashId,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import { type CustomSpokenFormGenerator } from "@cursorless/cursorless-engine";
import { type VscodeApi } from "@cursorless/vscode-common";
import { isEqual } from "lodash-es";
diff --git a/packages/app-vscode/src/ScopeVisualizerCommandApi.ts b/packages/app-vscode/src/ScopeVisualizerCommandApi.ts
index 3c0d04c955..2c29208732 100644
--- a/packages/app-vscode/src/ScopeVisualizerCommandApi.ts
+++ b/packages/app-vscode/src/ScopeVisualizerCommandApi.ts
@@ -1,4 +1,4 @@
-import type { Disposable, ScopeType } from "@cursorless/common";
+import type { Disposable, ScopeType } from "@cursorless/lib-common";
export type ScopeVisualizerListener = (
scopeType: ScopeType | undefined,
diff --git a/packages/app-vscode/src/SpyWebviewView.ts b/packages/app-vscode/src/SpyWebviewView.ts
index 50217e54ac..df991b1564 100644
--- a/packages/app-vscode/src/SpyWebviewView.ts
+++ b/packages/app-vscode/src/SpyWebviewView.ts
@@ -1,4 +1,4 @@
-import type { Disposable } from "@cursorless/common";
+import type { Disposable } from "@cursorless/lib-common";
import { cloneDeep } from "lodash-es";
import type { Uri, Webview, WebviewView } from "vscode";
import type { SpyWebViewEvent } from "@cursorless/vscode-common";
diff --git a/packages/app-vscode/src/VscodeSnippets.ts b/packages/app-vscode/src/VscodeSnippets.ts
index 90e61ef1dc..55b0591178 100644
--- a/packages/app-vscode/src/VscodeSnippets.ts
+++ b/packages/app-vscode/src/VscodeSnippets.ts
@@ -1,4 +1,4 @@
-import type { IDE, TextEditor } from "@cursorless/common";
+import type { IDE, TextEditor } from "@cursorless/lib-common";
import { type Snippets } from "@cursorless/cursorless-engine";
import { open } from "node:fs/promises";
import { join } from "node:path";
diff --git a/packages/app-vscode/src/VscodeTutorial.ts b/packages/app-vscode/src/VscodeTutorial.ts
index 625116766c..1f1d94fe5e 100644
--- a/packages/app-vscode/src/VscodeTutorial.ts
+++ b/packages/app-vscode/src/VscodeTutorial.ts
@@ -1,4 +1,8 @@
-import type { FileSystem, TutorialId, TutorialState } from "@cursorless/common";
+import type {
+ FileSystem,
+ TutorialId,
+ TutorialState,
+} from "@cursorless/lib-common";
import { getCursorlessRepoRoot } from "@cursorless/node-common";
import type { SpyWebViewEvent, VscodeApi } from "@cursorless/vscode-common";
import path from "node:path";
diff --git a/packages/app-vscode/src/commands.ts b/packages/app-vscode/src/commands.ts
index d306935f01..e962c37853 100644
--- a/packages/app-vscode/src/commands.ts
+++ b/packages/app-vscode/src/commands.ts
@@ -1,4 +1,4 @@
-import { CURSORLESS_ORG_URL, DOCS_URL } from "@cursorless/common";
+import { CURSORLESS_ORG_URL, DOCS_URL } from "@cursorless/lib-common";
import * as vscode from "vscode";
export const showDocumentation = () => {
diff --git a/packages/app-vscode/src/constructTestHelpers.ts b/packages/app-vscode/src/constructTestHelpers.ts
index ac43ef2fee..033e42aadf 100644
--- a/packages/app-vscode/src/constructTestHelpers.ts
+++ b/packages/app-vscode/src/constructTestHelpers.ts
@@ -11,7 +11,7 @@ import type {
TargetPlainObject,
TestCaseSnapshot,
TextEditor,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import type { StoredTargetMap } from "@cursorless/cursorless-engine";
import {
plainObjectToTarget,
diff --git a/packages/app-vscode/src/createScopeVisualizer.ts b/packages/app-vscode/src/createScopeVisualizer.ts
index 9a2b9ebf7b..b55f3ae89d 100644
--- a/packages/app-vscode/src/createScopeVisualizer.ts
+++ b/packages/app-vscode/src/createScopeVisualizer.ts
@@ -3,7 +3,7 @@ import type {
IDE,
ScopeProvider,
ScopeType,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import { pull } from "lodash-es";
import {
type VscodeScopeVisualizer,
diff --git a/packages/app-vscode/src/createTreeSitter.ts b/packages/app-vscode/src/createTreeSitter.ts
index 115167f918..e748f7c379 100644
--- a/packages/app-vscode/src/createTreeSitter.ts
+++ b/packages/app-vscode/src/createTreeSitter.ts
@@ -1,4 +1,4 @@
-import type { TreeSitter } from "@cursorless/common";
+import type { TreeSitter } from "@cursorless/lib-common";
import type { ParseTreeApi } from "@cursorless/vscode-common";
export function createTreeSitter(parseTreeApi: ParseTreeApi): TreeSitter {
diff --git a/packages/app-vscode/src/createTutorial.ts b/packages/app-vscode/src/createTutorial.ts
index fd7c573bae..b78a0cdfdf 100644
--- a/packages/app-vscode/src/createTutorial.ts
+++ b/packages/app-vscode/src/createTutorial.ts
@@ -1,4 +1,4 @@
-import type { Hats, HatTokenMap, IDE } from "@cursorless/common";
+import type { Hats, HatTokenMap, IDE } from "@cursorless/lib-common";
import type {
CommandRunnerDecorator,
CustomSpokenFormGenerator,
diff --git a/packages/app-vscode/src/extension.ts b/packages/app-vscode/src/extension.ts
index 63a195f7e5..ea680d7442 100644
--- a/packages/app-vscode/src/extension.ts
+++ b/packages/app-vscode/src/extension.ts
@@ -1,9 +1,9 @@
-import type { EnforceUndefined } from "@cursorless/common";
+import type { EnforceUndefined } from "@cursorless/lib-common";
import {
FakeCommandServerApi,
FakeIDE,
NormalizedIDE,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import type { EngineProps } from "@cursorless/cursorless-engine";
import {
CommandHistory,
diff --git a/packages/app-vscode/src/ide/vscode/VSCodeScopeVisualizer/VscodeFancyRangeHighlighter/VscodeFancyRangeHighlighter.ts b/packages/app-vscode/src/ide/vscode/VSCodeScopeVisualizer/VscodeFancyRangeHighlighter/VscodeFancyRangeHighlighter.ts
index a2ed5ca91c..b1bc57a01c 100644
--- a/packages/app-vscode/src/ide/vscode/VSCodeScopeVisualizer/VscodeFancyRangeHighlighter/VscodeFancyRangeHighlighter.ts
+++ b/packages/app-vscode/src/ide/vscode/VSCodeScopeVisualizer/VscodeFancyRangeHighlighter/VscodeFancyRangeHighlighter.ts
@@ -1,9 +1,9 @@
-import type { GeneralizedRange, TextEditor } from "@cursorless/common";
+import type { GeneralizedRange, TextEditor } from "@cursorless/lib-common";
import {
generateDecorationsForCharacterRange,
generateDecorationsForLineRange,
Range,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import { flatmap } from "itertools";
import { range as lodashRange } from "lodash-es";
import type { VscodeTextEditor } from "../../VscodeTextEditor";
diff --git a/packages/app-vscode/src/ide/vscode/VSCodeScopeVisualizer/VscodeFancyRangeHighlighter/VscodeFancyRangeHighlighterRenderer.ts b/packages/app-vscode/src/ide/vscode/VSCodeScopeVisualizer/VscodeFancyRangeHighlighter/VscodeFancyRangeHighlighterRenderer.ts
index aeb2d188ab..9682c4bb51 100644
--- a/packages/app-vscode/src/ide/vscode/VSCodeScopeVisualizer/VscodeFancyRangeHighlighter/VscodeFancyRangeHighlighterRenderer.ts
+++ b/packages/app-vscode/src/ide/vscode/VSCodeScopeVisualizer/VscodeFancyRangeHighlighter/VscodeFancyRangeHighlighterRenderer.ts
@@ -1,11 +1,11 @@
-import type { DecorationStyle } from "@cursorless/common";
+import type { DecorationStyle } from "@cursorless/lib-common";
import {
BORDER_WIDTH,
CompositeKeyDefaultMap,
getBorderColor,
getBorderRadius,
getBorderStyle,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import { toVscodeRange } from "@cursorless/vscode-common";
import type { DecorationRenderOptions, TextEditorDecorationType } from "vscode";
import { DecorationRangeBehavior } from "vscode";
diff --git a/packages/app-vscode/src/ide/vscode/VSCodeScopeVisualizer/VscodeFancyRangeHighlighter/decorationStyle.types.ts b/packages/app-vscode/src/ide/vscode/VSCodeScopeVisualizer/VscodeFancyRangeHighlighter/decorationStyle.types.ts
index fbbd3de26f..36f4248bb4 100644
--- a/packages/app-vscode/src/ide/vscode/VSCodeScopeVisualizer/VscodeFancyRangeHighlighter/decorationStyle.types.ts
+++ b/packages/app-vscode/src/ide/vscode/VSCodeScopeVisualizer/VscodeFancyRangeHighlighter/decorationStyle.types.ts
@@ -2,7 +2,7 @@ import type {
DecorationStyle,
GeneralizedRange,
Range,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
/**
* A decoration style that is differentiated from other styles by a number. We
diff --git a/packages/app-vscode/src/ide/vscode/VSCodeScopeVisualizer/VscodeFancyRangeHighlighter/generateDifferentiatedRanges.ts b/packages/app-vscode/src/ide/vscode/VSCodeScopeVisualizer/VscodeFancyRangeHighlighter/generateDifferentiatedRanges.ts
index 12cb17e6fb..60b5dc1350 100644
--- a/packages/app-vscode/src/ide/vscode/VSCodeScopeVisualizer/VscodeFancyRangeHighlighter/generateDifferentiatedRanges.ts
+++ b/packages/app-vscode/src/ide/vscode/VSCodeScopeVisualizer/VscodeFancyRangeHighlighter/generateDifferentiatedRanges.ts
@@ -1,8 +1,8 @@
-import type { GeneralizedRange } from "@cursorless/common";
+import type { GeneralizedRange } from "@cursorless/lib-common";
import {
generalizedRangeContains,
generalizedRangeTouches,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import { max } from "lodash-es";
import type { DifferentiatedGeneralizedRange } from "./decorationStyle.types";
diff --git a/packages/app-vscode/src/ide/vscode/VSCodeScopeVisualizer/VscodeFancyRangeHighlighter/getDifferentiatedStyleMapKey.ts b/packages/app-vscode/src/ide/vscode/VSCodeScopeVisualizer/VscodeFancyRangeHighlighter/getDifferentiatedStyleMapKey.ts
index 19eeaaeca9..d4cc7e94e7 100644
--- a/packages/app-vscode/src/ide/vscode/VSCodeScopeVisualizer/VscodeFancyRangeHighlighter/getDifferentiatedStyleMapKey.ts
+++ b/packages/app-vscode/src/ide/vscode/VSCodeScopeVisualizer/VscodeFancyRangeHighlighter/getDifferentiatedStyleMapKey.ts
@@ -1,4 +1,4 @@
-import type { BorderStyle } from "@cursorless/common";
+import type { BorderStyle } from "@cursorless/lib-common";
import type { DifferentiatedStyle } from "./decorationStyle.types";
/**
diff --git a/packages/app-vscode/src/ide/vscode/VSCodeScopeVisualizer/VscodeFancyRangeHighlighter/groupDifferentiatedStyledRanges.ts b/packages/app-vscode/src/ide/vscode/VSCodeScopeVisualizer/VscodeFancyRangeHighlighter/groupDifferentiatedStyledRanges.ts
index c72f2dc35b..887f698981 100644
--- a/packages/app-vscode/src/ide/vscode/VSCodeScopeVisualizer/VscodeFancyRangeHighlighter/groupDifferentiatedStyledRanges.ts
+++ b/packages/app-vscode/src/ide/vscode/VSCodeScopeVisualizer/VscodeFancyRangeHighlighter/groupDifferentiatedStyledRanges.ts
@@ -1,4 +1,4 @@
-import { CompositeKeyDefaultMap } from "@cursorless/common";
+import { CompositeKeyDefaultMap } from "@cursorless/lib-common";
import type {
DifferentiatedStyle,
DifferentiatedStyledRange,
diff --git a/packages/app-vscode/src/ide/vscode/VSCodeScopeVisualizer/VscodeIterationScopeVisualizer.ts b/packages/app-vscode/src/ide/vscode/VSCodeScopeVisualizer/VscodeIterationScopeVisualizer.ts
index e497d9e7ea..fd1a88afde 100644
--- a/packages/app-vscode/src/ide/vscode/VSCodeScopeVisualizer/VscodeIterationScopeVisualizer.ts
+++ b/packages/app-vscode/src/ide/vscode/VSCodeScopeVisualizer/VscodeIterationScopeVisualizer.ts
@@ -1,5 +1,9 @@
-import type { Disposable, ScopeSupport, TextEditor } from "@cursorless/common";
-import { toCharacterRange } from "@cursorless/common";
+import type {
+ Disposable,
+ ScopeSupport,
+ TextEditor,
+} from "@cursorless/lib-common";
+import { toCharacterRange } from "@cursorless/lib-common";
import type { VscodeTextEditor } from "../VscodeTextEditor";
import { VscodeScopeVisualizer } from "./VscodeScopeVisualizer";
diff --git a/packages/app-vscode/src/ide/vscode/VSCodeScopeVisualizer/VscodeScopeRenderer.ts b/packages/app-vscode/src/ide/vscode/VSCodeScopeVisualizer/VscodeScopeRenderer.ts
index cc5dcdada6..17ac66cba7 100644
--- a/packages/app-vscode/src/ide/vscode/VSCodeScopeVisualizer/VscodeScopeRenderer.ts
+++ b/packages/app-vscode/src/ide/vscode/VSCodeScopeVisualizer/VscodeScopeRenderer.ts
@@ -1,5 +1,5 @@
-import type { Disposable, GeneralizedRange } from "@cursorless/common";
-import { isGeneralizedRangeEqual } from "@cursorless/common";
+import type { Disposable, GeneralizedRange } from "@cursorless/lib-common";
+import { isGeneralizedRangeEqual } from "@cursorless/lib-common";
import type { VscodeTextEditor } from "../VscodeTextEditor";
import type { RangeTypeColors } from "./RangeTypeColors";
import { VscodeFancyRangeHighlighter } from "./VscodeFancyRangeHighlighter";
diff --git a/packages/app-vscode/src/ide/vscode/VSCodeScopeVisualizer/VscodeScopeTargetVisualizer.ts b/packages/app-vscode/src/ide/vscode/VSCodeScopeVisualizer/VscodeScopeTargetVisualizer.ts
index 0ca38f1529..f2079af121 100644
--- a/packages/app-vscode/src/ide/vscode/VSCodeScopeVisualizer/VscodeScopeTargetVisualizer.ts
+++ b/packages/app-vscode/src/ide/vscode/VSCodeScopeVisualizer/VscodeScopeTargetVisualizer.ts
@@ -4,8 +4,8 @@ import type {
ScopeSupport,
TargetRanges,
TextEditor,
-} from "@cursorless/common";
-import { toCharacterRange } from "@cursorless/common";
+} from "@cursorless/lib-common";
+import { toCharacterRange } from "@cursorless/lib-common";
import { VscodeScopeVisualizer } from "./VscodeScopeVisualizer";
import type { VscodeTextEditor } from "../VscodeTextEditor";
diff --git a/packages/app-vscode/src/ide/vscode/VSCodeScopeVisualizer/VscodeScopeVisualizer.ts b/packages/app-vscode/src/ide/vscode/VSCodeScopeVisualizer/VscodeScopeVisualizer.ts
index a9f386a153..8ff73951d3 100644
--- a/packages/app-vscode/src/ide/vscode/VSCodeScopeVisualizer/VscodeScopeVisualizer.ts
+++ b/packages/app-vscode/src/ide/vscode/VSCodeScopeVisualizer/VscodeScopeVisualizer.ts
@@ -4,8 +4,8 @@ import type {
ScopeProvider,
ScopeType,
TextEditor,
-} from "@cursorless/common";
-import { DOCS_URL, ScopeSupport, showError } from "@cursorless/common";
+} from "@cursorless/lib-common";
+import { DOCS_URL, ScopeSupport, showError } from "@cursorless/lib-common";
import type {
ScopeRangeType,
ScopeVisualizerColorConfig,
diff --git a/packages/app-vscode/src/ide/vscode/VSCodeScopeVisualizer/blendRangeTypeColors.ts b/packages/app-vscode/src/ide/vscode/VSCodeScopeVisualizer/blendRangeTypeColors.ts
index abf099abe9..132fa8b6bb 100644
--- a/packages/app-vscode/src/ide/vscode/VSCodeScopeVisualizer/blendRangeTypeColors.ts
+++ b/packages/app-vscode/src/ide/vscode/VSCodeScopeVisualizer/blendRangeTypeColors.ts
@@ -1,4 +1,4 @@
-import { blendColors } from "@cursorless/common";
+import { blendColors } from "@cursorless/lib-common";
import type { RangeTypeColors } from "./RangeTypeColors";
/**
diff --git a/packages/app-vscode/src/ide/vscode/VSCodeScopeVisualizer/createVscodeScopeVisualizer.ts b/packages/app-vscode/src/ide/vscode/VSCodeScopeVisualizer/createVscodeScopeVisualizer.ts
index 204f3854bf..5304c617bd 100644
--- a/packages/app-vscode/src/ide/vscode/VSCodeScopeVisualizer/createVscodeScopeVisualizer.ts
+++ b/packages/app-vscode/src/ide/vscode/VSCodeScopeVisualizer/createVscodeScopeVisualizer.ts
@@ -1,4 +1,4 @@
-import type { IDE, ScopeProvider, ScopeType } from "@cursorless/common";
+import type { IDE, ScopeProvider, ScopeType } from "@cursorless/lib-common";
import type { VisualizationType } from "../../../ScopeVisualizerCommandApi";
import { VscodeIterationScopeVisualizer } from "./VscodeIterationScopeVisualizer";
import {
diff --git a/packages/app-vscode/src/ide/vscode/VscodeCapabilities.ts b/packages/app-vscode/src/ide/vscode/VscodeCapabilities.ts
index 25aad37cce..5f037a1353 100644
--- a/packages/app-vscode/src/ide/vscode/VscodeCapabilities.ts
+++ b/packages/app-vscode/src/ide/vscode/VscodeCapabilities.ts
@@ -1,4 +1,7 @@
-import type { Capabilities, CommandCapabilityMap } from "@cursorless/common";
+import type {
+ Capabilities,
+ CommandCapabilityMap,
+} from "@cursorless/lib-common";
import { nodeGetRunMode } from "@cursorless/node-common";
import * as semver from "semver";
import * as vscode from "vscode";
diff --git a/packages/app-vscode/src/ide/vscode/VscodeClipboard.ts b/packages/app-vscode/src/ide/vscode/VscodeClipboard.ts
index 4c0531e1ad..9064e81516 100644
--- a/packages/app-vscode/src/ide/vscode/VscodeClipboard.ts
+++ b/packages/app-vscode/src/ide/vscode/VscodeClipboard.ts
@@ -1,5 +1,5 @@
import * as vscode from "vscode";
-import type { Clipboard } from "@cursorless/common";
+import type { Clipboard } from "@cursorless/lib-common";
export default class VscodeClipboard implements Clipboard {
async readText(): Promise {
diff --git a/packages/app-vscode/src/ide/vscode/VscodeConfiguration.ts b/packages/app-vscode/src/ide/vscode/VscodeConfiguration.ts
index d9c571d2aa..f097c58565 100644
--- a/packages/app-vscode/src/ide/vscode/VscodeConfiguration.ts
+++ b/packages/app-vscode/src/ide/vscode/VscodeConfiguration.ts
@@ -4,8 +4,8 @@ import type {
CursorlessConfiguration,
GetFieldType,
Paths,
-} from "@cursorless/common";
-import { HatStability, Notifier } from "@cursorless/common";
+} from "@cursorless/lib-common";
+import { HatStability, Notifier } from "@cursorless/lib-common";
import * as os from "node:os";
import * as vscode from "vscode";
import type { VscodeIDE } from "./VscodeIDE";
diff --git a/packages/app-vscode/src/ide/vscode/VscodeEdit.ts b/packages/app-vscode/src/ide/vscode/VscodeEdit.ts
index 0531f26d37..88addbab2f 100644
--- a/packages/app-vscode/src/ide/vscode/VscodeEdit.ts
+++ b/packages/app-vscode/src/ide/vscode/VscodeEdit.ts
@@ -1,4 +1,4 @@
-import type { Edit } from "@cursorless/common";
+import type { Edit } from "@cursorless/lib-common";
import { toVscodePosition, toVscodeRange } from "@cursorless/vscode-common";
import type * as vscode from "vscode";
diff --git a/packages/app-vscode/src/ide/vscode/VscodeEnabledHatStyleManager.ts b/packages/app-vscode/src/ide/vscode/VscodeEnabledHatStyleManager.ts
index daeafcf7d2..5430078d56 100644
--- a/packages/app-vscode/src/ide/vscode/VscodeEnabledHatStyleManager.ts
+++ b/packages/app-vscode/src/ide/vscode/VscodeEnabledHatStyleManager.ts
@@ -1,5 +1,9 @@
-import type { HatStyleInfo, HatStyleMap, Listener } from "@cursorless/common";
-import { Notifier } from "@cursorless/common";
+import type {
+ HatStyleInfo,
+ HatStyleMap,
+ Listener,
+} from "@cursorless/lib-common";
+import { Notifier } from "@cursorless/lib-common";
import { pickBy } from "lodash-es";
import * as vscode from "vscode";
import type { HatColor, HatShape, VscodeHatStyleName } from "./hatStyles.types";
diff --git a/packages/app-vscode/src/ide/vscode/VscodeEvents.ts b/packages/app-vscode/src/ide/vscode/VscodeEvents.ts
index 5c208fc3ad..247e22f672 100644
--- a/packages/app-vscode/src/ide/vscode/VscodeEvents.ts
+++ b/packages/app-vscode/src/ide/vscode/VscodeEvents.ts
@@ -4,7 +4,7 @@ import type {
TextDocumentChangeEvent,
TextDocumentChangeReason,
TextDocumentContentChangeEvent,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import { fromVscodeRange } from "@cursorless/vscode-common";
import * as vscode from "vscode";
import { VscodeTextDocument } from "./VscodeTextDocument";
diff --git a/packages/app-vscode/src/ide/vscode/VscodeFileSystem.ts b/packages/app-vscode/src/ide/vscode/VscodeFileSystem.ts
index 87a938d440..a1838cb751 100644
--- a/packages/app-vscode/src/ide/vscode/VscodeFileSystem.ts
+++ b/packages/app-vscode/src/ide/vscode/VscodeFileSystem.ts
@@ -3,7 +3,7 @@ import type {
FileSystem,
PathChangeListener,
RunMode,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import { isAbsolute, join } from "node:path";
import * as vscode from "vscode";
diff --git a/packages/app-vscode/src/ide/vscode/VscodeFlashHandler.ts b/packages/app-vscode/src/ide/vscode/VscodeFlashHandler.ts
index 2cf56f71b8..31af474028 100644
--- a/packages/app-vscode/src/ide/vscode/VscodeFlashHandler.ts
+++ b/packages/app-vscode/src/ide/vscode/VscodeFlashHandler.ts
@@ -2,8 +2,8 @@ import type {
EditorGeneralizedRange,
FlashDescriptor,
FlashStyle,
-} from "@cursorless/common";
-import { groupBy, sleep } from "@cursorless/common";
+} from "@cursorless/lib-common";
+import { groupBy, sleep } from "@cursorless/lib-common";
import { workspace } from "vscode";
import type VscodeHighlights from "./VscodeHighlights";
import type { VscodeIDE } from "./VscodeIDE";
diff --git a/packages/app-vscode/src/ide/vscode/VscodeFold.ts b/packages/app-vscode/src/ide/vscode/VscodeFold.ts
index bc2aebc1eb..517cc88424 100644
--- a/packages/app-vscode/src/ide/vscode/VscodeFold.ts
+++ b/packages/app-vscode/src/ide/vscode/VscodeFold.ts
@@ -1,4 +1,4 @@
-import type { Range } from "@cursorless/common";
+import type { Range } from "@cursorless/lib-common";
import * as vscode from "vscode";
import type { VscodeIDE } from "./VscodeIDE";
import type { VscodeTextEditor } from "./VscodeTextEditor";
diff --git a/packages/app-vscode/src/ide/vscode/VscodeHighlights.ts b/packages/app-vscode/src/ide/vscode/VscodeHighlights.ts
index 7fd9f9da47..d57df97165 100644
--- a/packages/app-vscode/src/ide/vscode/VscodeHighlights.ts
+++ b/packages/app-vscode/src/ide/vscode/VscodeHighlights.ts
@@ -2,8 +2,8 @@ import type {
CharacterRange,
GeneralizedRange,
LineRange,
-} from "@cursorless/common";
-import { FlashStyle, isLineRange, partition } from "@cursorless/common";
+} from "@cursorless/lib-common";
+import { FlashStyle, isLineRange, partition } from "@cursorless/lib-common";
import type { ExtensionContext } from "vscode";
import * as vscode from "vscode";
import { VscodeHighlightDecorationTypes } from "./VscodeHighlightDecorationTypes";
diff --git a/packages/app-vscode/src/ide/vscode/VscodeIDE.ts b/packages/app-vscode/src/ide/vscode/VscodeIDE.ts
index c53cab5ffc..c7aabdf678 100644
--- a/packages/app-vscode/src/ide/vscode/VscodeIDE.ts
+++ b/packages/app-vscode/src/ide/vscode/VscodeIDE.ts
@@ -12,8 +12,8 @@ import type {
RunMode,
TextDocumentChangeEvent,
TextEditor,
-} from "@cursorless/common";
-import { OutdatedExtensionError } from "@cursorless/common";
+} from "@cursorless/lib-common";
+import { OutdatedExtensionError } from "@cursorless/lib-common";
import {
fromVscodeRange,
fromVscodeSelection,
diff --git a/packages/app-vscode/src/ide/vscode/VscodeIdeNotebook.ts b/packages/app-vscode/src/ide/vscode/VscodeIdeNotebook.ts
index 2cd418593b..b47b6e8a8e 100644
--- a/packages/app-vscode/src/ide/vscode/VscodeIdeNotebook.ts
+++ b/packages/app-vscode/src/ide/vscode/VscodeIdeNotebook.ts
@@ -3,7 +3,7 @@ import type {
NotebookCellKind,
NotebookEditor,
TextDocument,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import type * as vscode from "vscode";
import type { URI } from "vscode-uri";
import { VscodeTextDocument } from "./VscodeTextDocument";
diff --git a/packages/app-vscode/src/ide/vscode/VscodeInsertSnippets.ts b/packages/app-vscode/src/ide/vscode/VscodeInsertSnippets.ts
index 608de60299..558f0295a6 100644
--- a/packages/app-vscode/src/ide/vscode/VscodeInsertSnippets.ts
+++ b/packages/app-vscode/src/ide/vscode/VscodeInsertSnippets.ts
@@ -1,6 +1,6 @@
import * as vscode from "vscode";
-import type { Range } from "@cursorless/common";
-import { Selection } from "@cursorless/common";
+import type { Range } from "@cursorless/lib-common";
+import { Selection } from "@cursorless/lib-common";
import type { VscodeTextEditor } from "./VscodeTextEditor";
export async function vscodeInsertSnippet(
diff --git a/packages/app-vscode/src/ide/vscode/VscodeKeyValueStore.ts b/packages/app-vscode/src/ide/vscode/VscodeKeyValueStore.ts
index 0be2c01f40..5805ca0d21 100644
--- a/packages/app-vscode/src/ide/vscode/VscodeKeyValueStore.ts
+++ b/packages/app-vscode/src/ide/vscode/VscodeKeyValueStore.ts
@@ -2,8 +2,8 @@ import type {
KeyValueStore,
KeyValueStoreData,
KeyValueStoreKey,
-} from "@cursorless/common";
-import { KEY_VALUE_STORE_DEFAULTS } from "@cursorless/common";
+} from "@cursorless/lib-common";
+import { KEY_VALUE_STORE_DEFAULTS } from "@cursorless/lib-common";
import type { ExtensionContext } from "vscode";
import { VERSION_KEY } from "../../ReleaseNotes";
import { DONT_SHOW_TALON_UPDATE_MESSAGE_KEY } from "../../ScopeTreeProvider";
diff --git a/packages/app-vscode/src/ide/vscode/VscodeMessages.ts b/packages/app-vscode/src/ide/vscode/VscodeMessages.ts
index 07dd5e7adb..11894d2204 100644
--- a/packages/app-vscode/src/ide/vscode/VscodeMessages.ts
+++ b/packages/app-vscode/src/ide/vscode/VscodeMessages.ts
@@ -1,6 +1,6 @@
import { window } from "vscode";
-import type { MessageId, Messages } from "@cursorless/common";
-import { MessageType } from "@cursorless/common";
+import type { MessageId, Messages } from "@cursorless/lib-common";
+import { MessageType } from "@cursorless/lib-common";
export default class VscodeMessages implements Messages {
async showMessage(
diff --git a/packages/app-vscode/src/ide/vscode/VscodeOpenLink.ts b/packages/app-vscode/src/ide/vscode/VscodeOpenLink.ts
index 0c9dce8cd9..fc7a7eb309 100644
--- a/packages/app-vscode/src/ide/vscode/VscodeOpenLink.ts
+++ b/packages/app-vscode/src/ide/vscode/VscodeOpenLink.ts
@@ -1,7 +1,7 @@
import * as vscode from "vscode";
import type { VscodeTextEditor } from "./VscodeTextEditor";
-import type { OpenLinkOptions, Range } from "@cursorless/common";
-import { Selection } from "@cursorless/common";
+import type { OpenLinkOptions, Range } from "@cursorless/lib-common";
+import { Selection } from "@cursorless/lib-common";
import { toVscodePositionOrRange } from "@cursorless/vscode-common";
export default async function vscodeOpenLink(
diff --git a/packages/app-vscode/src/ide/vscode/VscodeRevealLine.ts b/packages/app-vscode/src/ide/vscode/VscodeRevealLine.ts
index 6039b34653..06b8534dc0 100644
--- a/packages/app-vscode/src/ide/vscode/VscodeRevealLine.ts
+++ b/packages/app-vscode/src/ide/vscode/VscodeRevealLine.ts
@@ -1,5 +1,5 @@
import * as vscode from "vscode";
-import { RevealLineAt } from "@cursorless/common";
+import { RevealLineAt } from "@cursorless/lib-common";
import type { VscodeTextEditor } from "./VscodeTextEditor";
export async function vscodeRevealLine(
diff --git a/packages/app-vscode/src/ide/vscode/VscodeRunMode.ts b/packages/app-vscode/src/ide/vscode/VscodeRunMode.ts
index 2c1dd0a1a8..3aa890ea24 100644
--- a/packages/app-vscode/src/ide/vscode/VscodeRunMode.ts
+++ b/packages/app-vscode/src/ide/vscode/VscodeRunMode.ts
@@ -1,6 +1,6 @@
import type { ExtensionContext } from "vscode";
import { ExtensionMode } from "vscode";
-import type { RunMode } from "@cursorless/common";
+import type { RunMode } from "@cursorless/lib-common";
import { nodeGetRunMode } from "@cursorless/node-common";
const EXTENSION_MODE_MAP: Record = {
diff --git a/packages/app-vscode/src/ide/vscode/VscodeTextDocument.ts b/packages/app-vscode/src/ide/vscode/VscodeTextDocument.ts
index 8fcf667620..26920eafa2 100644
--- a/packages/app-vscode/src/ide/vscode/VscodeTextDocument.ts
+++ b/packages/app-vscode/src/ide/vscode/VscodeTextDocument.ts
@@ -3,8 +3,8 @@ import type {
Position,
TextDocument,
TextLine,
-} from "@cursorless/common";
-import { Range } from "@cursorless/common";
+} from "@cursorless/lib-common";
+import { Range } from "@cursorless/lib-common";
import {
fromVscodeEndOfLine,
fromVscodePosition,
diff --git a/packages/app-vscode/src/ide/vscode/VscodeTextEditor.ts b/packages/app-vscode/src/ide/vscode/VscodeTextEditor.ts
index e98f5bf82e..147702813c 100644
--- a/packages/app-vscode/src/ide/vscode/VscodeTextEditor.ts
+++ b/packages/app-vscode/src/ide/vscode/VscodeTextEditor.ts
@@ -10,8 +10,8 @@ import type {
TextDocument,
TextEditor,
TextEditorOptions,
-} from "@cursorless/common";
-import { sleep, uniqWithHash } from "@cursorless/common";
+} from "@cursorless/lib-common";
+import { sleep, uniqWithHash } from "@cursorless/lib-common";
import {
fromVscodeRange,
fromVscodeSelection,
diff --git a/packages/app-vscode/src/ide/vscode/VscodeTextLine.ts b/packages/app-vscode/src/ide/vscode/VscodeTextLine.ts
index aa5a0976de..01abf2da2d 100644
--- a/packages/app-vscode/src/ide/vscode/VscodeTextLine.ts
+++ b/packages/app-vscode/src/ide/vscode/VscodeTextLine.ts
@@ -1,5 +1,5 @@
-import type { TextLine } from "@cursorless/common";
-import { Position, Range } from "@cursorless/common";
+import type { TextLine } from "@cursorless/lib-common";
+import { Position, Range } from "@cursorless/lib-common";
import { fromVscodeRange } from "@cursorless/vscode-common";
import type * as vscode from "vscode";
diff --git a/packages/app-vscode/src/ide/vscode/VscodeToggleBreakpoint.ts b/packages/app-vscode/src/ide/vscode/VscodeToggleBreakpoint.ts
index dd2335e091..589554bba5 100644
--- a/packages/app-vscode/src/ide/vscode/VscodeToggleBreakpoint.ts
+++ b/packages/app-vscode/src/ide/vscode/VscodeToggleBreakpoint.ts
@@ -1,4 +1,4 @@
-import type { GeneralizedRange, Position } from "@cursorless/common";
+import type { GeneralizedRange, Position } from "@cursorless/lib-common";
import { toVscodePosition } from "@cursorless/vscode-common";
import * as vscode from "vscode";
import type { VscodeTextEditor } from "./VscodeTextEditor";
diff --git a/packages/app-vscode/src/ide/vscode/hats/VscodeHatRenderer.ts b/packages/app-vscode/src/ide/vscode/hats/VscodeHatRenderer.ts
index 6f0229ddce..bf48e135c2 100644
--- a/packages/app-vscode/src/ide/vscode/hats/VscodeHatRenderer.ts
+++ b/packages/app-vscode/src/ide/vscode/hats/VscodeHatRenderer.ts
@@ -2,8 +2,8 @@ import type {
Listener,
Messages,
PathChangeListener,
-} from "@cursorless/common";
-import { Notifier } from "@cursorless/common";
+} from "@cursorless/lib-common";
+import { Notifier } from "@cursorless/lib-common";
import { walkFiles } from "@cursorless/node-common";
import type { VscodeApi } from "@cursorless/vscode-common";
import * as fs from "node:fs/promises";
diff --git a/packages/app-vscode/src/ide/vscode/hats/VscodeHats.ts b/packages/app-vscode/src/ide/vscode/hats/VscodeHats.ts
index 7c290151b8..af8f5467b0 100644
--- a/packages/app-vscode/src/ide/vscode/hats/VscodeHats.ts
+++ b/packages/app-vscode/src/ide/vscode/hats/VscodeHats.ts
@@ -6,8 +6,8 @@ import type {
Listener,
Range,
TextEditor,
-} from "@cursorless/common";
-import { Notifier } from "@cursorless/common";
+} from "@cursorless/lib-common";
+import { Notifier } from "@cursorless/lib-common";
import type { VscodeApi } from "@cursorless/vscode-common";
import { toVscodeRange } from "@cursorless/vscode-common";
import * as vscode from "vscode";
diff --git a/packages/app-vscode/src/ide/vscode/hats/performPr1868ShapeUpdateInit.ts b/packages/app-vscode/src/ide/vscode/hats/performPr1868ShapeUpdateInit.ts
index 0aab430301..5d9bf32a4c 100644
--- a/packages/app-vscode/src/ide/vscode/hats/performPr1868ShapeUpdateInit.ts
+++ b/packages/app-vscode/src/ide/vscode/hats/performPr1868ShapeUpdateInit.ts
@@ -1,5 +1,5 @@
-import type { Messages } from "@cursorless/common";
-import { showInfo } from "@cursorless/common";
+import type { Messages } from "@cursorless/lib-common";
+import { showInfo } from "@cursorless/lib-common";
import type { VscodeApi } from "@cursorless/vscode-common";
import * as vscode from "vscode";
import type { ExtendedHatStyleMap } from "../VscodeEnabledHatStyleManager";
diff --git a/packages/app-vscode/src/ide/vscode/toVscodeEditor.ts b/packages/app-vscode/src/ide/vscode/toVscodeEditor.ts
index 144a9fac61..b349ece7c7 100644
--- a/packages/app-vscode/src/ide/vscode/toVscodeEditor.ts
+++ b/packages/app-vscode/src/ide/vscode/toVscodeEditor.ts
@@ -1,4 +1,4 @@
-import type { TextEditor } from "@cursorless/common";
+import type { TextEditor } from "@cursorless/lib-common";
import type * as vscode from "vscode";
import type { VscodeTextEditor } from "./VscodeTextEditor";
diff --git a/packages/app-vscode/src/ide/vscode/vscodeShowQuickPick.ts b/packages/app-vscode/src/ide/vscode/vscodeShowQuickPick.ts
index d527a2be76..846fd942e5 100644
--- a/packages/app-vscode/src/ide/vscode/vscodeShowQuickPick.ts
+++ b/packages/app-vscode/src/ide/vscode/vscodeShowQuickPick.ts
@@ -1,4 +1,4 @@
-import type { QuickPickOptions } from "@cursorless/common";
+import type { QuickPickOptions } from "@cursorless/lib-common";
import * as vscode from "vscode";
/**
diff --git a/packages/app-vscode/src/keyboard/KeyboardActionType.ts b/packages/app-vscode/src/keyboard/KeyboardActionType.ts
index 797106a52f..ffef180441 100644
--- a/packages/app-vscode/src/keyboard/KeyboardActionType.ts
+++ b/packages/app-vscode/src/keyboard/KeyboardActionType.ts
@@ -1,9 +1,9 @@
-import type { ActionType } from "@cursorless/common";
-import { actionNames } from "@cursorless/common";
+import type { ActionType } from "@cursorless/lib-common";
+import { actionNames } from "@cursorless/lib-common";
// This file contains types defining the allowable identifiers for actions in
// user keyboard config settings. It is a modified version of the default action
-// identifiers from @cursorless/common, with the addition of the "wrap" action
+// identifiers from @cursorless/lib-common, with the addition of the "wrap" action
// that is designed to function like the "wrap" spoken form (ie use the same spoken
// form for both snippet and delimiter wrapping).
diff --git a/packages/app-vscode/src/keyboard/KeyboardCommandHandler.ts b/packages/app-vscode/src/keyboard/KeyboardCommandHandler.ts
index 34f9423d89..67aff5077a 100644
--- a/packages/app-vscode/src/keyboard/KeyboardCommandHandler.ts
+++ b/packages/app-vscode/src/keyboard/KeyboardCommandHandler.ts
@@ -2,7 +2,7 @@ import type {
Modifier,
PartialMark,
SurroundingPairName,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import { surroundingPairsDelimiters } from "@cursorless/cursorless-engine";
import { isString } from "lodash-es";
import * as vscode from "vscode";
diff --git a/packages/app-vscode/src/keyboard/KeyboardCommandsModal.ts b/packages/app-vscode/src/keyboard/KeyboardCommandsModal.ts
index a47ef50083..5e3e64fec7 100644
--- a/packages/app-vscode/src/keyboard/KeyboardCommandsModal.ts
+++ b/packages/app-vscode/src/keyboard/KeyboardCommandsModal.ts
@@ -1,4 +1,4 @@
-import { CompositeKeyMap } from "@cursorless/common";
+import { CompositeKeyMap } from "@cursorless/lib-common";
import type { VscodeApi } from "@cursorless/vscode-common";
import { pick, sortedUniq, toPairs } from "lodash-es";
import { Grammar, Parser } from "nearley";
diff --git a/packages/app-vscode/src/keyboard/KeyboardCommandsTargeted.ts b/packages/app-vscode/src/keyboard/KeyboardCommandsTargeted.ts
index bbc33833e0..88a7ffe17e 100644
--- a/packages/app-vscode/src/keyboard/KeyboardCommandsTargeted.ts
+++ b/packages/app-vscode/src/keyboard/KeyboardCommandsTargeted.ts
@@ -5,8 +5,8 @@ import type {
PartialPrimitiveTargetDescriptor,
PartialTargetDescriptor,
ScopeType,
-} from "@cursorless/common";
-import { LATEST_VERSION } from "@cursorless/common";
+} from "@cursorless/lib-common";
+import { LATEST_VERSION } from "@cursorless/lib-common";
import { runCursorlessCommand } from "@cursorless/vscode-common";
import * as vscode from "vscode";
import type { HatColor, HatShape } from "../ide/vscode/hatStyles.types";
diff --git a/packages/app-vscode/src/keyboard/TokenTypes.ts b/packages/app-vscode/src/keyboard/TokenTypes.ts
index e6aedd618f..31a7c05a8c 100644
--- a/packages/app-vscode/src/keyboard/TokenTypes.ts
+++ b/packages/app-vscode/src/keyboard/TokenTypes.ts
@@ -1,7 +1,7 @@
import type {
SimpleScopeTypeType,
SurroundingPairName,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import type { HatColor, HatShape } from "../ide/vscode/hatStyles.types";
import type {
PolymorphicKeyboardActionDescriptor,
diff --git a/packages/app-vscode/src/keyboard/grammar/generated/grammar.ts b/packages/app-vscode/src/keyboard/grammar/generated/grammar.ts
index 29cd4ff655..44492bddf2 100644
--- a/packages/app-vscode/src/keyboard/grammar/generated/grammar.ts
+++ b/packages/app-vscode/src/keyboard/grammar/generated/grammar.ts
@@ -2,7 +2,9 @@
// http://github.com/Hardmath123/nearley
// Bypasses TS6133. Allow declared but unused functions.
// @ts-ignore
-function id(d: any[]): any { return d[0]; }
+function id(d: any[]): any {
+ return d[0];
+}
declare var targetingMode: any;
declare var simpleAction: any;
declare var wrap: any;
@@ -20,17 +22,21 @@ declare var combineColorAndShape: any;
declare var direction: any;
declare var digit: any;
-import { capture, UNUSED as _, argPositions } from "@cursorless/cursorless-engine"
-import { command } from "../command"
+import {
+ capture,
+ UNUSED as _,
+ argPositions,
+} from "@cursorless/cursorless-engine";
+import { command } from "../command";
import { keyboardLexer } from "../keyboardLexer";
-import { RelativeScopeModifier } from "@cursorless/common";
+import { RelativeScopeModifier } from "@cursorless/lib-common";
const { $0, $1, $2 } = argPositions;
interface NearleyToken {
value: any;
[key: string]: any;
-};
+}
interface NearleyLexer {
reset: (chunk: any, info: any) => void;
@@ -38,100 +44,277 @@ interface NearleyLexer {
save: () => any;
formatError: (token: any, message: string) => string;
has: (tokenType: any) => boolean;
-};
+}
interface NearleyRule {
name: string;
symbols: NearleySymbol[];
postprocess?: (d: any[], loc?: number, reject?: {}) => any;
-};
+}
-type NearleySymbol = string | { literal: any } | { test: (token: any) => boolean };
+type NearleySymbol =
+ | string
+ | { literal: any }
+ | { test: (token: any) => boolean };
interface Grammar {
Lexer: NearleyLexer | undefined;
ParserRules: NearleyRule[];
ParserStart: string;
-};
+}
const grammar: Grammar = {
Lexer: keyboardLexer,
ParserRules: [
- {"name": "main$ebnf$1", "symbols": [(keyboardLexer.has("targetingMode") ? {type: "targetingMode"} : targetingMode)], "postprocess": id},
- {"name": "main$ebnf$1", "symbols": [], "postprocess": () => null},
- {"name": "main", "symbols": ["main$ebnf$1", "decoratedMark"], "postprocess":
- command(
- "targetDecoratedMark",
- ([targetingMode, decoratedMark]) => ({ decoratedMark, mode: targetingMode ?? "replace" })
- )
- },
- {"name": "main$ebnf$2", "symbols": [(keyboardLexer.has("targetingMode") ? {type: "targetingMode"} : targetingMode)], "postprocess": id},
- {"name": "main$ebnf$2", "symbols": [], "postprocess": () => null},
- {"name": "main", "symbols": ["main$ebnf$2", "mark"], "postprocess":
- command("targetMark", ([targetingMode, mark]) => ({ mark, mode: targetingMode ?? "replace" }))
- },
- {"name": "main$ebnf$3", "symbols": [(keyboardLexer.has("targetingMode") ? {type: "targetingMode"} : targetingMode)], "postprocess": id},
- {"name": "main$ebnf$3", "symbols": [], "postprocess": () => null},
- {"name": "main", "symbols": ["main$ebnf$3", "modifier"], "postprocess":
- command(
- "modifyTarget",
- ([targetingMode, modifier]) => ({ modifier, mode: targetingMode ?? "replace" })
- )
- },
- {"name": "main", "symbols": [(keyboardLexer.has("simpleAction") ? {type: "simpleAction"} : simpleAction)], "postprocess": command("performSimpleActionOnTarget", ["actionDescriptor"])},
- {"name": "main", "symbols": [(keyboardLexer.has("wrap") ? {type: "wrap"} : wrap), (keyboardLexer.has("pairedDelimiter") ? {type: "pairedDelimiter"} : pairedDelimiter)], "postprocess":
- command("performWrapActionOnTarget", ["actionDescriptor", "delimiter"])
- },
- {"name": "main", "symbols": [(keyboardLexer.has("vscodeCommand") ? {type: "vscodeCommand"} : vscodeCommand)], "postprocess": command("vscodeCommand", ["command"])},
- {"name": "modifier", "symbols": [(keyboardLexer.has("simpleModifier") ? {type: "simpleModifier"} : simpleModifier)], "postprocess": capture({ type: $0 })},
- {"name": "modifier", "symbols": [(keyboardLexer.has("headTail") ? {type: "headTail"} : headTail), "modifier"], "postprocess":
- ([type, modifier]) => ({ type, modifiers: [modifier] })
- },
- {"name": "modifier", "symbols": ["scopeType"], "postprocess": capture({ type: "containingScope", scopeType: $0 })},
- {"name": "modifier", "symbols": [(keyboardLexer.has("every") ? {type: "every"} : every), "scopeType"], "postprocess": capture({ type: "everyScope", scopeType: $1 })},
- {"name": "modifier$ebnf$1", "symbols": ["offset"], "postprocess": id},
- {"name": "modifier$ebnf$1", "symbols": [], "postprocess": () => null},
- {"name": "modifier$ebnf$2", "symbols": ["number"], "postprocess": id},
- {"name": "modifier$ebnf$2", "symbols": [], "postprocess": () => null},
- {"name": "modifier", "symbols": ["modifier$ebnf$1", (keyboardLexer.has("nextPrev") ? {type: "nextPrev"} : nextPrev), "modifier$ebnf$2", "scopeType"], "postprocess":
- ([offset, _, length, scopeType]): RelativeScopeModifier => ({
- type: "relativeScope",
- offset: offset?.number ?? 1,
- direction: offset?.direction ?? "forward",
- length: length ?? 1,
- scopeType,
- })
- },
- {"name": "modifier", "symbols": ["offset", "scopeType"], "postprocess":
- ([offset, scopeType]): RelativeScopeModifier => ({
- type: "relativeScope",
- offset: 0,
- direction: offset?.direction ?? "forward",
- length: offset?.number ?? 1,
- scopeType,
- })
- },
- {"name": "scopeType", "symbols": [(keyboardLexer.has("simpleScopeTypeType") ? {type: "simpleScopeTypeType"} : simpleScopeTypeType)], "postprocess": capture("type")},
- {"name": "scopeType", "symbols": [(keyboardLexer.has("pairedDelimiter") ? {type: "pairedDelimiter"} : pairedDelimiter)], "postprocess":
- ([delimiter]) => ({ type: "surroundingPair", delimiter })
- },
- {"name": "mark", "symbols": [(keyboardLexer.has("simpleSpecialMark") ? {type: "simpleSpecialMark"} : simpleSpecialMark)], "postprocess": capture({ type: $0 })},
- {"name": "decoratedMark", "symbols": [(keyboardLexer.has("color") ? {type: "color"} : color)], "postprocess": capture("color")},
- {"name": "decoratedMark", "symbols": [(keyboardLexer.has("shape") ? {type: "shape"} : shape)], "postprocess": capture("shape")},
- {"name": "decoratedMark", "symbols": [(keyboardLexer.has("combineColorAndShape") ? {type: "combineColorAndShape"} : combineColorAndShape), (keyboardLexer.has("color") ? {type: "color"} : color), (keyboardLexer.has("shape") ? {type: "shape"} : shape)], "postprocess": capture(_, "color", "shape")},
- {"name": "decoratedMark", "symbols": [(keyboardLexer.has("combineColorAndShape") ? {type: "combineColorAndShape"} : combineColorAndShape), (keyboardLexer.has("shape") ? {type: "shape"} : shape), (keyboardLexer.has("color") ? {type: "color"} : color)], "postprocess": capture(_, "shape", "color")},
- {"name": "offset$ebnf$1", "symbols": [(keyboardLexer.has("direction") ? {type: "direction"} : direction)], "postprocess": id},
- {"name": "offset$ebnf$1", "symbols": [], "postprocess": () => null},
- {"name": "offset", "symbols": ["offset$ebnf$1", "number"], "postprocess": capture("direction", "number")},
- {"name": "offset$ebnf$2", "symbols": ["number"], "postprocess": id},
- {"name": "offset$ebnf$2", "symbols": [], "postprocess": () => null},
- {"name": "offset", "symbols": ["offset$ebnf$2", (keyboardLexer.has("direction") ? {type: "direction"} : direction)], "postprocess": capture("number", "direction")},
- {"name": "number$ebnf$1", "symbols": [(keyboardLexer.has("digit") ? {type: "digit"} : digit)]},
- {"name": "number$ebnf$1", "symbols": ["number$ebnf$1", (keyboardLexer.has("digit") ? {type: "digit"} : digit)], "postprocess": (d) => d[0].concat([d[1]])},
- {"name": "number", "symbols": ["number$ebnf$1"], "postprocess":
- ([digits]) =>
- digits.reduce((total: number, digit: number) => total * 10 + digit, 0)
- }
+ {
+ name: "main$ebnf$1",
+ symbols: [
+ keyboardLexer.has("targetingMode")
+ ? { type: "targetingMode" }
+ : targetingMode,
+ ],
+ postprocess: id,
+ },
+ { name: "main$ebnf$1", symbols: [], postprocess: () => null },
+ {
+ name: "main",
+ symbols: ["main$ebnf$1", "decoratedMark"],
+ postprocess: command(
+ "targetDecoratedMark",
+ ([targetingMode, decoratedMark]) => ({
+ decoratedMark,
+ mode: targetingMode ?? "replace",
+ }),
+ ),
+ },
+ {
+ name: "main$ebnf$2",
+ symbols: [
+ keyboardLexer.has("targetingMode")
+ ? { type: "targetingMode" }
+ : targetingMode,
+ ],
+ postprocess: id,
+ },
+ { name: "main$ebnf$2", symbols: [], postprocess: () => null },
+ {
+ name: "main",
+ symbols: ["main$ebnf$2", "mark"],
+ postprocess: command("targetMark", ([targetingMode, mark]) => ({
+ mark,
+ mode: targetingMode ?? "replace",
+ })),
+ },
+ {
+ name: "main$ebnf$3",
+ symbols: [
+ keyboardLexer.has("targetingMode")
+ ? { type: "targetingMode" }
+ : targetingMode,
+ ],
+ postprocess: id,
+ },
+ { name: "main$ebnf$3", symbols: [], postprocess: () => null },
+ {
+ name: "main",
+ symbols: ["main$ebnf$3", "modifier"],
+ postprocess: command("modifyTarget", ([targetingMode, modifier]) => ({
+ modifier,
+ mode: targetingMode ?? "replace",
+ })),
+ },
+ {
+ name: "main",
+ symbols: [
+ keyboardLexer.has("simpleAction")
+ ? { type: "simpleAction" }
+ : simpleAction,
+ ],
+ postprocess: command("performSimpleActionOnTarget", ["actionDescriptor"]),
+ },
+ {
+ name: "main",
+ symbols: [
+ keyboardLexer.has("wrap") ? { type: "wrap" } : wrap,
+ keyboardLexer.has("pairedDelimiter")
+ ? { type: "pairedDelimiter" }
+ : pairedDelimiter,
+ ],
+ postprocess: command("performWrapActionOnTarget", [
+ "actionDescriptor",
+ "delimiter",
+ ]),
+ },
+ {
+ name: "main",
+ symbols: [
+ keyboardLexer.has("vscodeCommand")
+ ? { type: "vscodeCommand" }
+ : vscodeCommand,
+ ],
+ postprocess: command("vscodeCommand", ["command"]),
+ },
+ {
+ name: "modifier",
+ symbols: [
+ keyboardLexer.has("simpleModifier")
+ ? { type: "simpleModifier" }
+ : simpleModifier,
+ ],
+ postprocess: capture({ type: $0 }),
+ },
+ {
+ name: "modifier",
+ symbols: [
+ keyboardLexer.has("headTail") ? { type: "headTail" } : headTail,
+ "modifier",
+ ],
+ postprocess: ([type, modifier]) => ({ type, modifiers: [modifier] }),
+ },
+ {
+ name: "modifier",
+ symbols: ["scopeType"],
+ postprocess: capture({ type: "containingScope", scopeType: $0 }),
+ },
+ {
+ name: "modifier",
+ symbols: [
+ keyboardLexer.has("every") ? { type: "every" } : every,
+ "scopeType",
+ ],
+ postprocess: capture({ type: "everyScope", scopeType: $1 }),
+ },
+ { name: "modifier$ebnf$1", symbols: ["offset"], postprocess: id },
+ { name: "modifier$ebnf$1", symbols: [], postprocess: () => null },
+ { name: "modifier$ebnf$2", symbols: ["number"], postprocess: id },
+ { name: "modifier$ebnf$2", symbols: [], postprocess: () => null },
+ {
+ name: "modifier",
+ symbols: [
+ "modifier$ebnf$1",
+ keyboardLexer.has("nextPrev") ? { type: "nextPrev" } : nextPrev,
+ "modifier$ebnf$2",
+ "scopeType",
+ ],
+ postprocess: ([offset, _, length, scopeType]): RelativeScopeModifier => ({
+ type: "relativeScope",
+ offset: offset?.number ?? 1,
+ direction: offset?.direction ?? "forward",
+ length: length ?? 1,
+ scopeType,
+ }),
+ },
+ {
+ name: "modifier",
+ symbols: ["offset", "scopeType"],
+ postprocess: ([offset, scopeType]): RelativeScopeModifier => ({
+ type: "relativeScope",
+ offset: 0,
+ direction: offset?.direction ?? "forward",
+ length: offset?.number ?? 1,
+ scopeType,
+ }),
+ },
+ {
+ name: "scopeType",
+ symbols: [
+ keyboardLexer.has("simpleScopeTypeType")
+ ? { type: "simpleScopeTypeType" }
+ : simpleScopeTypeType,
+ ],
+ postprocess: capture("type"),
+ },
+ {
+ name: "scopeType",
+ symbols: [
+ keyboardLexer.has("pairedDelimiter")
+ ? { type: "pairedDelimiter" }
+ : pairedDelimiter,
+ ],
+ postprocess: ([delimiter]) => ({ type: "surroundingPair", delimiter }),
+ },
+ {
+ name: "mark",
+ symbols: [
+ keyboardLexer.has("simpleSpecialMark")
+ ? { type: "simpleSpecialMark" }
+ : simpleSpecialMark,
+ ],
+ postprocess: capture({ type: $0 }),
+ },
+ {
+ name: "decoratedMark",
+ symbols: [keyboardLexer.has("color") ? { type: "color" } : color],
+ postprocess: capture("color"),
+ },
+ {
+ name: "decoratedMark",
+ symbols: [keyboardLexer.has("shape") ? { type: "shape" } : shape],
+ postprocess: capture("shape"),
+ },
+ {
+ name: "decoratedMark",
+ symbols: [
+ keyboardLexer.has("combineColorAndShape")
+ ? { type: "combineColorAndShape" }
+ : combineColorAndShape,
+ keyboardLexer.has("color") ? { type: "color" } : color,
+ keyboardLexer.has("shape") ? { type: "shape" } : shape,
+ ],
+ postprocess: capture(_, "color", "shape"),
+ },
+ {
+ name: "decoratedMark",
+ symbols: [
+ keyboardLexer.has("combineColorAndShape")
+ ? { type: "combineColorAndShape" }
+ : combineColorAndShape,
+ keyboardLexer.has("shape") ? { type: "shape" } : shape,
+ keyboardLexer.has("color") ? { type: "color" } : color,
+ ],
+ postprocess: capture(_, "shape", "color"),
+ },
+ {
+ name: "offset$ebnf$1",
+ symbols: [
+ keyboardLexer.has("direction") ? { type: "direction" } : direction,
+ ],
+ postprocess: id,
+ },
+ { name: "offset$ebnf$1", symbols: [], postprocess: () => null },
+ {
+ name: "offset",
+ symbols: ["offset$ebnf$1", "number"],
+ postprocess: capture("direction", "number"),
+ },
+ { name: "offset$ebnf$2", symbols: ["number"], postprocess: id },
+ { name: "offset$ebnf$2", symbols: [], postprocess: () => null },
+ {
+ name: "offset",
+ symbols: [
+ "offset$ebnf$2",
+ keyboardLexer.has("direction") ? { type: "direction" } : direction,
+ ],
+ postprocess: capture("number", "direction"),
+ },
+ {
+ name: "number$ebnf$1",
+ symbols: [keyboardLexer.has("digit") ? { type: "digit" } : digit],
+ },
+ {
+ name: "number$ebnf$1",
+ symbols: [
+ "number$ebnf$1",
+ keyboardLexer.has("digit") ? { type: "digit" } : digit,
+ ],
+ postprocess: (d) => d[0].concat([d[1]]),
+ },
+ {
+ name: "number",
+ symbols: ["number$ebnf$1"],
+ postprocess: ([digits]) =>
+ digits.reduce((total: number, digit: number) => total * 10 + digit, 0),
+ },
],
ParserStart: "main",
};
diff --git a/packages/app-vscode/src/keyboard/grammar/getAcceptableTokenTypes.ts b/packages/app-vscode/src/keyboard/grammar/getAcceptableTokenTypes.ts
index 56e4380db5..f878492aab 100644
--- a/packages/app-vscode/src/keyboard/grammar/getAcceptableTokenTypes.ts
+++ b/packages/app-vscode/src/keyboard/grammar/getAcceptableTokenTypes.ts
@@ -2,7 +2,7 @@ import type { State } from "nearley";
import type nearley from "nearley";
import { isEqual, times } from "lodash-es";
import type { CommandRulePostProcessor } from "./CommandRulePostProcessor";
-import { DefaultMap, uniqWithHash } from "@cursorless/common";
+import { DefaultMap, uniqWithHash } from "@cursorless/lib-common";
import type { KeyboardCommandHandler } from "../KeyboardCommandHandler";
import type { TokenType } from "../TokenTypeHelpers";
diff --git a/packages/app-vscode/src/keyboard/grammar/grammar.ne b/packages/app-vscode/src/keyboard/grammar/grammar.ne
index b82f98b72f..5954ffeb16 100644
--- a/packages/app-vscode/src/keyboard/grammar/grammar.ne
+++ b/packages/app-vscode/src/keyboard/grammar/grammar.ne
@@ -3,7 +3,7 @@
import { capture, UNUSED as _, argPositions } from "@cursorless/cursorless-engine"
import { command } from "../command"
import { keyboardLexer } from "../keyboardLexer";
-import { RelativeScopeModifier } from "@cursorless/common";
+import { RelativeScopeModifier } from "@cursorless/lib-common";
const { $0, $1, $2 } = argPositions;
%}
diff --git a/packages/app-vscode/src/registerCommands.ts b/packages/app-vscode/src/registerCommands.ts
index a1047f8013..c5d50aff81 100644
--- a/packages/app-vscode/src/registerCommands.ts
+++ b/packages/app-vscode/src/registerCommands.ts
@@ -2,8 +2,8 @@ import type {
CommandHistoryStorage,
CursorlessCommandId,
ScopeType,
-} from "@cursorless/common";
-import { CURSORLESS_COMMAND_ID } from "@cursorless/common";
+} from "@cursorless/lib-common";
+import { CURSORLESS_COMMAND_ID } from "@cursorless/lib-common";
import type {
CommandApi,
StoredTargetMap,
diff --git a/packages/app-vscode/src/revisualizeOnCustomRegexChange.ts b/packages/app-vscode/src/revisualizeOnCustomRegexChange.ts
index bf1fc6588f..3c5eeba746 100644
--- a/packages/app-vscode/src/revisualizeOnCustomRegexChange.ts
+++ b/packages/app-vscode/src/revisualizeOnCustomRegexChange.ts
@@ -2,8 +2,8 @@ import type {
Disposable,
ScopeProvider,
ScopeTypeInfo,
-} from "@cursorless/common";
-import { disposableFrom } from "@cursorless/common";
+} from "@cursorless/lib-common";
+import { disposableFrom } from "@cursorless/lib-common";
import { isEqual } from "lodash-es";
import type {
ScopeVisualizer,
diff --git a/packages/app-vscode/src/scripts/initLaunchSandbox.ts b/packages/app-vscode/src/scripts/initLaunchSandbox.ts
index 3566d80069..d1a99eb842 100644
--- a/packages/app-vscode/src/scripts/initLaunchSandbox.ts
+++ b/packages/app-vscode/src/scripts/initLaunchSandbox.ts
@@ -3,7 +3,7 @@
* allowing you to have a separate set of extensions and settings for use when
* developing the Cursorless VSCode extension locally.
*/
-import { extensionDependencies } from "@cursorless/common";
+import { extensionDependencies } from "@cursorless/lib-common";
import * as cp from "child_process";
const vsCodeToolName: string = "code";
diff --git a/packages/app-vscode/src/scripts/populateDist/generateBuildInfo.ts b/packages/app-vscode/src/scripts/populateDist/generateBuildInfo.ts
index d512501557..cfda13df8d 100644
--- a/packages/app-vscode/src/scripts/populateDist/generateBuildInfo.ts
+++ b/packages/app-vscode/src/scripts/populateDist/generateBuildInfo.ts
@@ -1,4 +1,4 @@
-import { getEnvironmentVariableStrict } from "@cursorless/common";
+import { getEnvironmentVariableStrict } from "@cursorless/lib-common";
import { runCommand } from "./runCommand";
import type { Context } from "./context";
diff --git a/packages/app-vscode/src/storedTargetHighlighter.ts b/packages/app-vscode/src/storedTargetHighlighter.ts
index cb2e327e8d..3ebc969695 100644
--- a/packages/app-vscode/src/storedTargetHighlighter.ts
+++ b/packages/app-vscode/src/storedTargetHighlighter.ts
@@ -1,5 +1,5 @@
-import type { StoredTargetKey } from "@cursorless/common";
-import { groupBy, toCharacterRange } from "@cursorless/common";
+import type { StoredTargetKey } from "@cursorless/lib-common";
+import { groupBy, toCharacterRange } from "@cursorless/lib-common";
import type { StoredTargetMap } from "@cursorless/cursorless-engine";
import type {
ScopeRangeType,
diff --git a/packages/app-vscode/src/usingSetting.ts b/packages/app-vscode/src/usingSetting.ts
index 6816c3216d..ffb4fd3203 100644
--- a/packages/app-vscode/src/usingSetting.ts
+++ b/packages/app-vscode/src/usingSetting.ts
@@ -1,5 +1,5 @@
import { vscodeApi } from "./vscodeApi";
-import type { Disposable } from "@cursorless/common";
+import type { Disposable } from "@cursorless/lib-common";
/**
* Watches for changes to a setting and calls a factory function whenever the
diff --git a/packages/app-web-docs/package.json b/packages/app-web-docs/package.json
index 88b46c0270..c5533cd195 100644
--- a/packages/app-web-docs/package.json
+++ b/packages/app-web-docs/package.json
@@ -24,7 +24,7 @@
},
"dependencies": {
"@algolia/client-search": "^5.49.2",
- "@cursorless/common": "workspace:*",
+ "@cursorless/lib-common": "workspace:*",
"@docsearch/react": "^4.6.0",
"@docusaurus/core": "^3.9.2",
"@docusaurus/faster": "^3.9.2",
diff --git a/packages/app-web-docs/src/docs/components/Header.tsx b/packages/app-web-docs/src/docs/components/Header.tsx
index e6942839d1..e38d0454b4 100644
--- a/packages/app-web-docs/src/docs/components/Header.tsx
+++ b/packages/app-web-docs/src/docs/components/Header.tsx
@@ -1,4 +1,4 @@
-import { uriEncodeHashId } from "@cursorless/common";
+import { uriEncodeHashId } from "@cursorless/lib-common";
import React from "react";
import "./Header.css";
diff --git a/packages/app-web-docs/src/docs/components/ScopeVisualizer.tsx b/packages/app-web-docs/src/docs/components/ScopeVisualizer.tsx
index 9a62af2f8c..5e64884a54 100644
--- a/packages/app-web-docs/src/docs/components/ScopeVisualizer.tsx
+++ b/packages/app-web-docs/src/docs/components/ScopeVisualizer.tsx
@@ -1,9 +1,12 @@
-import type { ScopeSupportFacetInfo, ScopeTypeType } from "@cursorless/common";
+import type {
+ ScopeSupportFacetInfo,
+ ScopeTypeType,
+} from "@cursorless/lib-common";
import {
prettifyLanguageName,
prettifyScopeType,
serializeScopeType,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import { usePluginData } from "@docusaurus/useGlobalData";
import React, { useState } from "react";
import { generateDecorations } from "./calculateHighlights";
diff --git a/packages/app-web-docs/src/docs/components/calculateHighlights.ts b/packages/app-web-docs/src/docs/components/calculateHighlights.ts
index 1df18e3ac3..45f4925a90 100644
--- a/packages/app-web-docs/src/docs/components/calculateHighlights.ts
+++ b/packages/app-web-docs/src/docs/components/calculateHighlights.ts
@@ -1,9 +1,9 @@
-import type { DecorationStyle } from "@cursorless/common";
+import type { DecorationStyle } from "@cursorless/lib-common";
import {
generateDecorationsForCharacterRange,
Range,
useSingleCornerBorderRadius,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import type { DecorationItem } from "shiki";
import { flattenHighlights } from "./flattenHighlights";
import { highlightColors } from "./highlightColors";
diff --git a/packages/app-web-docs/src/docs/components/flattenHighlights.test.ts b/packages/app-web-docs/src/docs/components/flattenHighlights.test.ts
index b7bbe11d95..0dd7c654ea 100644
--- a/packages/app-web-docs/src/docs/components/flattenHighlights.test.ts
+++ b/packages/app-web-docs/src/docs/components/flattenHighlights.test.ts
@@ -1,4 +1,4 @@
-import { BorderStyle, Range } from "@cursorless/common";
+import { BorderStyle, Range } from "@cursorless/lib-common";
import * as assert from "assert";
import { flattenHighlights } from "./flattenHighlights";
import type { Highlight, Scope } from "./types";
diff --git a/packages/app-web-docs/src/docs/components/flattenHighlights.ts b/packages/app-web-docs/src/docs/components/flattenHighlights.ts
index 3fa393e470..2961130625 100644
--- a/packages/app-web-docs/src/docs/components/flattenHighlights.ts
+++ b/packages/app-web-docs/src/docs/components/flattenHighlights.ts
@@ -1,5 +1,9 @@
-import type { DecorationStyle, Position } from "@cursorless/common";
-import { blendMultipleColors, BorderStyle, Range } from "@cursorless/common";
+import type { DecorationStyle, Position } from "@cursorless/lib-common";
+import {
+ blendMultipleColors,
+ BorderStyle,
+ Range,
+} from "@cursorless/lib-common";
import type { BorderRadius, Highlight, Style } from "./types";
export function flattenHighlights(highlights: Highlight[]): Highlight[] {
diff --git a/packages/app-web-docs/src/docs/components/highlightsToDecorations.ts b/packages/app-web-docs/src/docs/components/highlightsToDecorations.ts
index 9e3f2eb9d2..81305d6be9 100644
--- a/packages/app-web-docs/src/docs/components/highlightsToDecorations.ts
+++ b/packages/app-web-docs/src/docs/components/highlightsToDecorations.ts
@@ -3,7 +3,7 @@ import {
BORDER_WIDTH,
getBorderColor,
getBorderStyle,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import type { DecorationItem } from "shiki";
import type { BorderRadius, Highlight, Style } from "./types";
diff --git a/packages/app-web-docs/src/docs/components/types.ts b/packages/app-web-docs/src/docs/components/types.ts
index d2f5d823e7..b5e09b6a03 100644
--- a/packages/app-web-docs/src/docs/components/types.ts
+++ b/packages/app-web-docs/src/docs/components/types.ts
@@ -3,7 +3,7 @@ import type {
PlaintextScopeSupportFacet,
ScopeSupportFacet,
Range,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
export type RangeType = "content" | "removal" | "blend";
export type FacetValue = ScopeSupportFacet | PlaintextScopeSupportFacet;
diff --git a/packages/app-web-docs/src/docs/components/util.ts b/packages/app-web-docs/src/docs/components/util.ts
index 3b59b9e541..4dc8597a7e 100644
--- a/packages/app-web-docs/src/docs/components/util.ts
+++ b/packages/app-web-docs/src/docs/components/util.ts
@@ -3,13 +3,13 @@ import type {
ScopeSupportFacet,
ScopeSupportFacetInfo,
ScopeTypeType,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import {
camelCaseToAllDown,
capitalize,
plaintextScopeSupportFacetInfos,
scopeSupportFacetInfos,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
export function prettifyFacet(
facet: ScopeSupportFacet | PlaintextScopeSupportFacet,
diff --git a/packages/app-web-docs/src/docs/contributing/MissingLanguageScopes.tsx b/packages/app-web-docs/src/docs/contributing/MissingLanguageScopes.tsx
index 1a28ac7416..d8c1416a4a 100644
--- a/packages/app-web-docs/src/docs/contributing/MissingLanguageScopes.tsx
+++ b/packages/app-web-docs/src/docs/contributing/MissingLanguageScopes.tsx
@@ -1,11 +1,11 @@
-import type { ScopeSupportFacet } from "@cursorless/common";
+import type { ScopeSupportFacet } from "@cursorless/lib-common";
import {
languageScopeSupport,
scopeSupportFacetInfos,
ScopeSupportFacetLevel,
scopeSupportFacets,
serializeScopeType,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import React, { useState } from "react";
export function MissingLanguageScopes(): React.JSX.Element {
diff --git a/packages/app-web-docs/src/docs/contributing/adding-a-new-package.md b/packages/app-web-docs/src/docs/contributing/adding-a-new-package.md
index ecf1201e2d..71a3f534e6 100644
--- a/packages/app-web-docs/src/docs/contributing/adding-a-new-package.md
+++ b/packages/app-web-docs/src/docs/contributing/adding-a-new-package.md
@@ -24,4 +24,4 @@ For any packages that you need to depend on, you can run
pnpm add some-package
```
-from the `packages/foo` directory. Note that `some-package` could be a local package, eg `@cursorless/common`. In that case, you need to re-run `pnpm -w fix:meta` after adding the dependency, so that the Typescript references can be updated.
+from the `packages/foo` directory. Note that `some-package` could be a local package, eg `@cursorless/lib-common`. In that case, you need to re-run `pnpm -w fix:meta` after adding the dependency, so that the Typescript references can be updated.
diff --git a/packages/app-web-docs/src/docs/contributing/scopes/components/Scopes.tsx b/packages/app-web-docs/src/docs/contributing/scopes/components/Scopes.tsx
index a45af8b497..26ac5b4480 100644
--- a/packages/app-web-docs/src/docs/contributing/scopes/components/Scopes.tsx
+++ b/packages/app-web-docs/src/docs/contributing/scopes/components/Scopes.tsx
@@ -1,4 +1,4 @@
-import type { ScopeTypeType } from "@cursorless/common";
+import type { ScopeTypeType } from "@cursorless/lib-common";
import React from "react";
import { DynamicTOC } from "../../../components/DynamicTOC";
import { ScopeVisualizer } from "../../../components/ScopeVisualizer";
diff --git a/packages/app-web/package.json b/packages/app-web/package.json
index 350af37758..058701c22d 100644
--- a/packages/app-web/package.json
+++ b/packages/app-web/package.json
@@ -13,7 +13,7 @@
},
"dependencies": {
"@cursorless/lib-cheatsheet": "workspace:*",
- "@cursorless/common": "workspace:*",
+ "@cursorless/lib-common": "workspace:*",
"bootstrap": "^5.3.8",
"preact": "^10.29.0",
"react-player": "^3.4.0",
diff --git a/packages/app-web/src/constants.ts b/packages/app-web/src/constants.ts
index 56d4f20ccf..507104bb27 100644
--- a/packages/app-web/src/constants.ts
+++ b/packages/app-web/src/constants.ts
@@ -1,4 +1,4 @@
-import { CURSORLESS_ORG_URL } from "@cursorless/common";
+import { CURSORLESS_ORG_URL } from "@cursorless/lib-common";
export const NAME = "Cursorless";
export const DESCRIPTION = "Voice coding at the speed of thought";
diff --git a/packages/app-web/vite.config.ts b/packages/app-web/vite.config.ts
index 364d3dc9d6..b7ef3e2990 100644
--- a/packages/app-web/vite.config.ts
+++ b/packages/app-web/vite.config.ts
@@ -1,5 +1,5 @@
-import { CURSORLESS_ORG_URL } from "@cursorless/common";
-import { viteHtmlParams, vitePreactAlias } from "@cursorless/common/vite";
+import { CURSORLESS_ORG_URL } from "@cursorless/lib-common";
+import { viteHtmlParams, vitePreactAlias } from "@cursorless/lib-common/vite";
import type { UserConfig } from "vite";
import { defineConfig } from "vite";
import purgeCss from "vite-plugin-purgecss";
diff --git a/packages/lib-cheatsheet-local/jest.config.ts b/packages/lib-cheatsheet-local/jest.config.ts
index af74c7a652..2dd42b2354 100644
--- a/packages/lib-cheatsheet-local/jest.config.ts
+++ b/packages/lib-cheatsheet-local/jest.config.ts
@@ -1,5 +1,5 @@
import type { Config } from "jest";
-import { preactModuleNameMapper } from "@cursorless/common/jest";
+import { preactModuleNameMapper } from "@cursorless/lib-common/jest";
const config: Config = {
preset: "ts-jest",
diff --git a/packages/lib-cheatsheet-local/package.json b/packages/lib-cheatsheet-local/package.json
index 4e480f6e2b..f6f7c528f1 100644
--- a/packages/lib-cheatsheet-local/package.json
+++ b/packages/lib-cheatsheet-local/package.json
@@ -16,7 +16,7 @@
},
"dependencies": {
"@cursorless/lib-cheatsheet": "workspace:*",
- "@cursorless/common": "workspace:*",
+ "@cursorless/lib-common": "workspace:*",
"bootstrap": "^5.3.8",
"preact": "^10.29.0"
},
diff --git a/packages/lib-cheatsheet-local/vite.config.ts b/packages/lib-cheatsheet-local/vite.config.ts
index 7031ddec34..ab4eb0c5ba 100644
--- a/packages/lib-cheatsheet-local/vite.config.ts
+++ b/packages/lib-cheatsheet-local/vite.config.ts
@@ -1,5 +1,5 @@
import defaultCheatsheetInfo from "@cursorless/lib-cheatsheet/defaultSpokenForms";
-import { viteHtmlParams, vitePreactAlias } from "@cursorless/common/vite";
+import { viteHtmlParams, vitePreactAlias } from "@cursorless/lib-common/vite";
import { defineConfig, type UserConfig } from "vite";
import purgeCss from "vite-plugin-purgecss";
import { viteSingleFile } from "vite-plugin-singlefile";
diff --git a/packages/lib-cheatsheet/jest.config.ts b/packages/lib-cheatsheet/jest.config.ts
index af74c7a652..2dd42b2354 100644
--- a/packages/lib-cheatsheet/jest.config.ts
+++ b/packages/lib-cheatsheet/jest.config.ts
@@ -1,5 +1,5 @@
import type { Config } from "jest";
-import { preactModuleNameMapper } from "@cursorless/common/jest";
+import { preactModuleNameMapper } from "@cursorless/lib-common/jest";
const config: Config = {
preset: "ts-jest",
diff --git a/packages/lib-cheatsheet/package.json b/packages/lib-cheatsheet/package.json
index d44b0af53a..459883ec7c 100644
--- a/packages/lib-cheatsheet/package.json
+++ b/packages/lib-cheatsheet/package.json
@@ -17,7 +17,7 @@
"test": "jest"
},
"dependencies": {
- "@cursorless/common": "workspace:*",
+ "@cursorless/lib-common": "workspace:*",
"preact": "^10.29.0",
"react-bootstrap-icons": "^1.11.6"
},
diff --git a/packages/lib-common/package.json b/packages/lib-common/package.json
index e04c16b265..79b24be180 100644
--- a/packages/lib-common/package.json
+++ b/packages/lib-common/package.json
@@ -1,5 +1,5 @@
{
- "name": "@cursorless/common",
+ "name": "@cursorless/lib-common",
"version": "0.1.0",
"description": "Common utilities for use anywhere in our codebase",
"license": "MIT",
diff --git a/packages/lib-common/src/ide/inMemoryTextEditor/InMemoryTextEditor.ts b/packages/lib-common/src/ide/inMemoryTextEditor/InMemoryTextEditor.ts
index 3431b5b86c..9647ae8d17 100644
--- a/packages/lib-common/src/ide/inMemoryTextEditor/InMemoryTextEditor.ts
+++ b/packages/lib-common/src/ide/inMemoryTextEditor/InMemoryTextEditor.ts
@@ -11,8 +11,8 @@ import type {
TextDocument,
TextEditor,
TextEditorOptions,
-} from "@cursorless/common";
-import { Selection, selectionsEqual } from "@cursorless/common";
+} from "@cursorless/lib-common";
+import { Selection, selectionsEqual } from "@cursorless/lib-common";
import { URI } from "vscode-uri";
import { InMemoryTextDocument } from "./InMemoryTextDocument";
diff --git a/packages/lib-common/src/ide/types/RawTreeSitterQueryProvider.ts b/packages/lib-common/src/ide/types/RawTreeSitterQueryProvider.ts
index ca69e60f9c..ee5775a4db 100644
--- a/packages/lib-common/src/ide/types/RawTreeSitterQueryProvider.ts
+++ b/packages/lib-common/src/ide/types/RawTreeSitterQueryProvider.ts
@@ -1,4 +1,4 @@
-import type { Disposable } from "@cursorless/common";
+import type { Disposable } from "@cursorless/lib-common";
/**
* Provides raw tree-sitter queries. These are usually read from `.scm` files
diff --git a/packages/lib-common/src/types/SpokenFormType.ts b/packages/lib-common/src/types/SpokenFormType.ts
index 4d7a9ee362..f17210075a 100644
--- a/packages/lib-common/src/types/SpokenFormType.ts
+++ b/packages/lib-common/src/types/SpokenFormType.ts
@@ -3,7 +3,7 @@ import type {
ModifierType,
SimpleScopeTypeType,
SurroundingPairName,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
/**
* This interface is the source of truth for the types used in our spoken form
diff --git a/packages/lib-common/src/types/TalonSpokenForms.ts b/packages/lib-common/src/types/TalonSpokenForms.ts
index d8637c72e0..452c6c78a1 100644
--- a/packages/lib-common/src/types/TalonSpokenForms.ts
+++ b/packages/lib-common/src/types/TalonSpokenForms.ts
@@ -1,4 +1,4 @@
-import type { Notifier } from "@cursorless/common";
+import type { Notifier } from "@cursorless/lib-common";
import type { SpokenFormMapKeyTypes, SpokenFormType } from "./SpokenFormType";
/**
diff --git a/packages/lib-common/src/types/TreeSitter.ts b/packages/lib-common/src/types/TreeSitter.ts
index 16005745aa..947bf00cc7 100644
--- a/packages/lib-common/src/types/TreeSitter.ts
+++ b/packages/lib-common/src/types/TreeSitter.ts
@@ -1,4 +1,4 @@
-import type { TextDocument } from "@cursorless/common";
+import type { TextDocument } from "@cursorless/lib-common";
import type { Query, Tree } from "web-tree-sitter";
export interface TreeSitter {
diff --git a/packages/lib-engine/package.json b/packages/lib-engine/package.json
index 2078e8bbf8..a9cb9e9d41 100644
--- a/packages/lib-engine/package.json
+++ b/packages/lib-engine/package.json
@@ -17,7 +17,7 @@
"generate-railroad": "mkdir out && nearley-railroad src/customCommandGrammar/grammar.ne -o out/railroad.html"
},
"dependencies": {
- "@cursorless/common": "workspace:*",
+ "@cursorless/lib-common": "workspace:*",
"@cursorless/node-common": "workspace:*",
"@cursorless/sentence-parser": "workspace:*",
"@cursorless/talon-tools": "^0.8.0",
diff --git a/packages/lib-engine/src/CommandHistory.ts b/packages/lib-engine/src/CommandHistory.ts
index 4b5ff72af8..0967d1d148 100644
--- a/packages/lib-engine/src/CommandHistory.ts
+++ b/packages/lib-engine/src/CommandHistory.ts
@@ -6,7 +6,7 @@ import type {
CommandServerApi,
IDE,
ReadOnlyHatMap,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import { produce } from "immer";
import { v4 as uuid } from "uuid";
import type { CommandRunner } from "./CommandRunner";
diff --git a/packages/lib-engine/src/CommandHistoryAnalyzer.ts b/packages/lib-engine/src/CommandHistoryAnalyzer.ts
index bec84a1106..1e3ab81243 100644
--- a/packages/lib-engine/src/CommandHistoryAnalyzer.ts
+++ b/packages/lib-engine/src/CommandHistoryAnalyzer.ts
@@ -5,8 +5,8 @@ import type {
Modifier,
PartialPrimitiveTargetDescriptor,
ScopeType,
-} from "@cursorless/common";
-import { showWarning } from "@cursorless/common";
+} from "@cursorless/lib-common";
+import { showWarning } from "@cursorless/lib-common";
import { groupBy, map, sum } from "lodash-es";
import { canonicalizeAndValidateCommand } from "./core/commandVersionUpgrades/canonicalizeAndValidateCommand";
import { getPartialTargetDescriptors } from "./util/getPartialTargetDescriptors";
diff --git a/packages/lib-engine/src/CommandRunner.ts b/packages/lib-engine/src/CommandRunner.ts
index d70f19d58b..e960d7c92c 100644
--- a/packages/lib-engine/src/CommandRunner.ts
+++ b/packages/lib-engine/src/CommandRunner.ts
@@ -1,4 +1,4 @@
-import type { CommandComplete, CommandResponse } from "@cursorless/common";
+import type { CommandComplete, CommandResponse } from "@cursorless/lib-common";
export interface CommandRunner {
run(command: CommandComplete): Promise;
diff --git a/packages/lib-engine/src/KeyboardTargetUpdater.ts b/packages/lib-engine/src/KeyboardTargetUpdater.ts
index 4d548a57b8..a01ffda7d6 100644
--- a/packages/lib-engine/src/KeyboardTargetUpdater.ts
+++ b/packages/lib-engine/src/KeyboardTargetUpdater.ts
@@ -1,4 +1,4 @@
-import type { Disposable, IDE } from "@cursorless/common";
+import type { Disposable, IDE } from "@cursorless/lib-common";
import type { StoredTargetMap } from "./core/StoredTargets";
import { CursorStage } from "./processTargets/marks/CursorStage";
import { DecorationDebouncer } from "./util/DecorationDebouncer";
diff --git a/packages/lib-engine/src/actions/Actions.ts b/packages/lib-engine/src/actions/Actions.ts
index 78afdc17a2..127ef27ce6 100644
--- a/packages/lib-engine/src/actions/Actions.ts
+++ b/packages/lib-engine/src/actions/Actions.ts
@@ -1,4 +1,4 @@
-import type { IDE, TreeSitter } from "@cursorless/common";
+import type { IDE, TreeSitter } from "@cursorless/lib-common";
import type { Snippets } from "../core/Snippets";
import type { RangeUpdater } from "../core/updateSelections/RangeUpdater";
import type { ModifierStageFactory } from "../processTargets/ModifierStageFactory";
diff --git a/packages/lib-engine/src/actions/BreakLine.ts b/packages/lib-engine/src/actions/BreakLine.ts
index 3284e4f78e..edfa62834a 100644
--- a/packages/lib-engine/src/actions/BreakLine.ts
+++ b/packages/lib-engine/src/actions/BreakLine.ts
@@ -1,5 +1,5 @@
-import type { Edit, IDE, TextEditor } from "@cursorless/common";
-import { FlashStyle, Position, Range, Selection } from "@cursorless/common";
+import type { Edit, IDE, TextEditor } from "@cursorless/lib-common";
+import { FlashStyle, Position, Range, Selection } from "@cursorless/lib-common";
import { flatten, zip } from "lodash-es";
import type { RangeUpdater } from "../core/updateSelections/RangeUpdater";
import { performEditsAndUpdateSelections } from "../core/updateSelections/updateSelections";
diff --git a/packages/lib-engine/src/actions/BringMoveSwap.ts b/packages/lib-engine/src/actions/BringMoveSwap.ts
index 8a7cde55bf..74e3f01ecd 100644
--- a/packages/lib-engine/src/actions/BringMoveSwap.ts
+++ b/packages/lib-engine/src/actions/BringMoveSwap.ts
@@ -3,12 +3,12 @@ import type {
IDE,
Range,
TextEditor,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import {
FlashStyle,
RangeExpansionBehavior,
Selection,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import { flatten } from "lodash-es";
import type { RangeUpdater } from "../core/updateSelections/RangeUpdater";
import { performEditsAndUpdateSelections } from "../core/updateSelections/updateSelections";
diff --git a/packages/lib-engine/src/actions/CallbackAction.ts b/packages/lib-engine/src/actions/CallbackAction.ts
index f662e65de9..d5488f8b98 100644
--- a/packages/lib-engine/src/actions/CallbackAction.ts
+++ b/packages/lib-engine/src/actions/CallbackAction.ts
@@ -1,5 +1,9 @@
-import type { EditableTextEditor, IDE, TextEditor } from "@cursorless/common";
-import { FlashStyle } from "@cursorless/common";
+import type {
+ EditableTextEditor,
+ IDE,
+ TextEditor,
+} from "@cursorless/lib-common";
+import { FlashStyle } from "@cursorless/lib-common";
import { flatten } from "lodash-es";
import { selectionToStoredTarget } from "../core/commandRunner/selectionToStoredTarget";
import type { RangeUpdater } from "../core/updateSelections/RangeUpdater";
diff --git a/packages/lib-engine/src/actions/Clear.ts b/packages/lib-engine/src/actions/Clear.ts
index f4812a79b7..4e8e75cc73 100644
--- a/packages/lib-engine/src/actions/Clear.ts
+++ b/packages/lib-engine/src/actions/Clear.ts
@@ -1,4 +1,4 @@
-import type { IDE } from "@cursorless/common";
+import type { IDE } from "@cursorless/lib-common";
import { PlainTarget } from "../processTargets/targets";
import type { Target } from "../typings/target.types";
import { ensureSingleEditor } from "../util/targetUtils";
diff --git a/packages/lib-engine/src/actions/CopyToClipboard.ts b/packages/lib-engine/src/actions/CopyToClipboard.ts
index efe03b072a..c8bb0595d6 100644
--- a/packages/lib-engine/src/actions/CopyToClipboard.ts
+++ b/packages/lib-engine/src/actions/CopyToClipboard.ts
@@ -1,5 +1,5 @@
-import type { IDE } from "@cursorless/common";
-import { FlashStyle } from "@cursorless/common";
+import type { IDE } from "@cursorless/lib-common";
+import { FlashStyle } from "@cursorless/lib-common";
import type { RangeUpdater } from "../core/updateSelections/RangeUpdater";
import { CopyToClipboardSimple } from "./SimpleIdeCommandActions";
import type { Target } from "../typings/target.types";
diff --git a/packages/lib-engine/src/actions/CutToClipboard.ts b/packages/lib-engine/src/actions/CutToClipboard.ts
index 9b5963ba85..05111fab6d 100644
--- a/packages/lib-engine/src/actions/CutToClipboard.ts
+++ b/packages/lib-engine/src/actions/CutToClipboard.ts
@@ -1,5 +1,9 @@
-import type { CharacterRange, FlashDescriptor, IDE } from "@cursorless/common";
-import { FlashStyle, Range, toCharacterRange } from "@cursorless/common";
+import type {
+ CharacterRange,
+ FlashDescriptor,
+ IDE,
+} from "@cursorless/lib-common";
+import { FlashStyle, Range, toCharacterRange } from "@cursorless/lib-common";
import type { Target } from "../typings/target.types";
import type { Actions } from "./Actions";
import type { ActionReturnValue, SimpleAction } from "./actions.types";
diff --git a/packages/lib-engine/src/actions/Deselect.ts b/packages/lib-engine/src/actions/Deselect.ts
index 15968d1bb5..919d44b6b1 100644
--- a/packages/lib-engine/src/actions/Deselect.ts
+++ b/packages/lib-engine/src/actions/Deselect.ts
@@ -1,4 +1,4 @@
-import type { IDE } from "@cursorless/common";
+import type { IDE } from "@cursorless/lib-common";
import type { Target } from "../typings/target.types";
import { runOnTargetsForEachEditor } from "../util/targetUtils";
import type { SimpleAction, ActionReturnValue } from "./actions.types";
diff --git a/packages/lib-engine/src/actions/EditNew/EditNew.ts b/packages/lib-engine/src/actions/EditNew/EditNew.ts
index 562ad03658..00f8bf28f2 100644
--- a/packages/lib-engine/src/actions/EditNew/EditNew.ts
+++ b/packages/lib-engine/src/actions/EditNew/EditNew.ts
@@ -1,5 +1,5 @@
-import type { IDE } from "@cursorless/common";
-import { Selection } from "@cursorless/common";
+import type { IDE } from "@cursorless/lib-common";
+import { Selection } from "@cursorless/lib-common";
import type { RangeUpdater } from "../../core/updateSelections/RangeUpdater";
import type { Destination } from "../../typings/target.types";
import { createThatMark, ensureSingleEditor } from "../../util/targetUtils";
diff --git a/packages/lib-engine/src/actions/EditNew/EditNew.types.ts b/packages/lib-engine/src/actions/EditNew/EditNew.types.ts
index e90cf92e83..d5692af9c8 100644
--- a/packages/lib-engine/src/actions/EditNew/EditNew.types.ts
+++ b/packages/lib-engine/src/actions/EditNew/EditNew.types.ts
@@ -1,4 +1,4 @@
-import type { Range } from "@cursorless/common";
+import type { Range } from "@cursorless/lib-common";
import type {
Destination,
EditNewActionType,
diff --git a/packages/lib-engine/src/actions/EditNew/runEditTargets.ts b/packages/lib-engine/src/actions/EditNew/runEditTargets.ts
index b05df5767a..3625a20203 100644
--- a/packages/lib-engine/src/actions/EditNew/runEditTargets.ts
+++ b/packages/lib-engine/src/actions/EditNew/runEditTargets.ts
@@ -1,5 +1,5 @@
-import type { EditableTextEditor } from "@cursorless/common";
-import { RangeExpansionBehavior } from "@cursorless/common";
+import type { EditableTextEditor } from "@cursorless/lib-common";
+import { RangeExpansionBehavior } from "@cursorless/lib-common";
import { zip } from "lodash-es";
import type { RangeUpdater } from "../../core/updateSelections/RangeUpdater";
import { performEditsAndUpdateSelections } from "../../core/updateSelections/updateSelections";
diff --git a/packages/lib-engine/src/actions/EditNew/runInsertLineAfterTargets.ts b/packages/lib-engine/src/actions/EditNew/runInsertLineAfterTargets.ts
index a121ae2531..51d7ec4053 100644
--- a/packages/lib-engine/src/actions/EditNew/runInsertLineAfterTargets.ts
+++ b/packages/lib-engine/src/actions/EditNew/runInsertLineAfterTargets.ts
@@ -1,8 +1,8 @@
import type {
CommandCapabilities,
EditableTextEditor,
-} from "@cursorless/common";
-import { Selection } from "@cursorless/common";
+} from "@cursorless/lib-common";
+import { Selection } from "@cursorless/lib-common";
import type { RangeUpdater } from "../../core/updateSelections/RangeUpdater";
import { performEditsAndUpdateSelections } from "../../core/updateSelections/updateSelections";
import type { EditDestination, State } from "./EditNew.types";
diff --git a/packages/lib-engine/src/actions/EditNew/runNotebookCellTargets.ts b/packages/lib-engine/src/actions/EditNew/runNotebookCellTargets.ts
index 9a51a606ec..522af5f933 100644
--- a/packages/lib-engine/src/actions/EditNew/runNotebookCellTargets.ts
+++ b/packages/lib-engine/src/actions/EditNew/runNotebookCellTargets.ts
@@ -1,4 +1,4 @@
-import type { IDE } from "@cursorless/common";
+import type { IDE } from "@cursorless/lib-common";
import type { Destination } from "../../typings/target.types";
import { createThatMark, ensureSingleTarget } from "../../util/targetUtils";
import type { Actions } from "../Actions";
diff --git a/packages/lib-engine/src/actions/ExecuteCommand.ts b/packages/lib-engine/src/actions/ExecuteCommand.ts
index 0435aa6b9a..4133afe5fa 100644
--- a/packages/lib-engine/src/actions/ExecuteCommand.ts
+++ b/packages/lib-engine/src/actions/ExecuteCommand.ts
@@ -1,4 +1,4 @@
-import type { ExecuteCommandOptions, IDE } from "@cursorless/common";
+import type { ExecuteCommandOptions, IDE } from "@cursorless/lib-common";
import type { RangeUpdater } from "../core/updateSelections/RangeUpdater";
import type { Target } from "../typings/target.types";
import { CallbackAction } from "./CallbackAction";
diff --git a/packages/lib-engine/src/actions/Find.ts b/packages/lib-engine/src/actions/Find.ts
index 79ddea9210..0a714a4cbb 100644
--- a/packages/lib-engine/src/actions/Find.ts
+++ b/packages/lib-engine/src/actions/Find.ts
@@ -1,5 +1,5 @@
-import type { IDE } from "@cursorless/common";
-import { showWarning } from "@cursorless/common";
+import type { IDE } from "@cursorless/lib-common";
+import { showWarning } from "@cursorless/lib-common";
import type { Target } from "../typings/target.types";
import { ensureSingleTarget } from "../util/targetUtils";
import type { Actions } from "./Actions";
diff --git a/packages/lib-engine/src/actions/FlashTargets.ts b/packages/lib-engine/src/actions/FlashTargets.ts
index 8cf5f3f222..b15ce9ec80 100644
--- a/packages/lib-engine/src/actions/FlashTargets.ts
+++ b/packages/lib-engine/src/actions/FlashTargets.ts
@@ -1,5 +1,5 @@
-import type { IDE } from "@cursorless/common";
-import { FlashStyle } from "@cursorless/common";
+import type { IDE } from "@cursorless/lib-common";
+import { FlashStyle } from "@cursorless/lib-common";
import type { Target } from "../typings/target.types";
import { flashTargets } from "../util/targetUtils";
import type { ActionReturnValue, SimpleAction } from "./actions.types";
diff --git a/packages/lib-engine/src/actions/FollowLink.ts b/packages/lib-engine/src/actions/FollowLink.ts
index 47a8ed02ef..8f7cb83f65 100644
--- a/packages/lib-engine/src/actions/FollowLink.ts
+++ b/packages/lib-engine/src/actions/FollowLink.ts
@@ -1,5 +1,5 @@
-import type { IDE, OpenLinkOptions } from "@cursorless/common";
-import { FlashStyle } from "@cursorless/common";
+import type { IDE, OpenLinkOptions } from "@cursorless/lib-common";
+import { FlashStyle } from "@cursorless/lib-common";
import type { Target } from "../typings/target.types";
import {
createThatMark,
diff --git a/packages/lib-engine/src/actions/GenerateSnippet/GenerateSnippet.ts b/packages/lib-engine/src/actions/GenerateSnippet/GenerateSnippet.ts
index 648f83b527..e81a3e6431 100644
--- a/packages/lib-engine/src/actions/GenerateSnippet/GenerateSnippet.ts
+++ b/packages/lib-engine/src/actions/GenerateSnippet/GenerateSnippet.ts
@@ -1,5 +1,9 @@
-import type { EditableTextEditor, IDE, TextEditor } from "@cursorless/common";
-import { FlashStyle, Range, matchAll, Selection } from "@cursorless/common";
+import type {
+ EditableTextEditor,
+ IDE,
+ TextEditor,
+} from "@cursorless/lib-common";
+import { FlashStyle, Range, matchAll, Selection } from "@cursorless/lib-common";
import type {
Snippet,
SnippetFile,
diff --git a/packages/lib-engine/src/actions/GetText.ts b/packages/lib-engine/src/actions/GetText.ts
index 5e0856e88a..50c839182f 100644
--- a/packages/lib-engine/src/actions/GetText.ts
+++ b/packages/lib-engine/src/actions/GetText.ts
@@ -1,5 +1,5 @@
-import type { GetTextActionOptions, IDE } from "@cursorless/common";
-import { FlashStyle } from "@cursorless/common";
+import type { GetTextActionOptions, IDE } from "@cursorless/lib-common";
+import { FlashStyle } from "@cursorless/lib-common";
import type { Target } from "../typings/target.types";
import { ensureSingleTarget, flashTargets } from "../util/targetUtils";
import type { ActionReturnValue } from "./actions.types";
diff --git a/packages/lib-engine/src/actions/Highlight.ts b/packages/lib-engine/src/actions/Highlight.ts
index 65c8e52144..96f7a5938e 100644
--- a/packages/lib-engine/src/actions/Highlight.ts
+++ b/packages/lib-engine/src/actions/Highlight.ts
@@ -1,4 +1,4 @@
-import type { HighlightId, IDE } from "@cursorless/common";
+import type { HighlightId, IDE } from "@cursorless/lib-common";
import type { Target } from "../typings/target.types";
import {
runOnTargetsForEachEditor,
diff --git a/packages/lib-engine/src/actions/IndentLine.ts b/packages/lib-engine/src/actions/IndentLine.ts
index b590bf3a44..feecc3ae21 100644
--- a/packages/lib-engine/src/actions/IndentLine.ts
+++ b/packages/lib-engine/src/actions/IndentLine.ts
@@ -1,5 +1,5 @@
-import type { IDE, TextEditor } from "@cursorless/common";
-import { FlashStyle, Range, Selection } from "@cursorless/common";
+import type { IDE, TextEditor } from "@cursorless/lib-common";
+import { FlashStyle, Range, Selection } from "@cursorless/lib-common";
import { flatten, zip } from "lodash-es";
import { selectionToStoredTarget } from "../core/commandRunner/selectionToStoredTarget";
import type { RangeUpdater } from "../core/updateSelections/RangeUpdater";
diff --git a/packages/lib-engine/src/actions/InsertCopy.ts b/packages/lib-engine/src/actions/InsertCopy.ts
index b23781ad57..b3c9acb154 100644
--- a/packages/lib-engine/src/actions/InsertCopy.ts
+++ b/packages/lib-engine/src/actions/InsertCopy.ts
@@ -1,9 +1,9 @@
-import type { IDE, TextEditor } from "@cursorless/common";
+import type { IDE, TextEditor } from "@cursorless/lib-common";
import {
FlashStyle,
RangeExpansionBehavior,
toCharacterRange,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import { flatten, zip } from "lodash-es";
import type { RangeUpdater } from "../core/updateSelections/RangeUpdater";
import { performEditsAndUpdateSelections } from "../core/updateSelections/updateSelections";
diff --git a/packages/lib-engine/src/actions/InsertEmptyLines.ts b/packages/lib-engine/src/actions/InsertEmptyLines.ts
index e1deecaf60..429a63c157 100644
--- a/packages/lib-engine/src/actions/InsertEmptyLines.ts
+++ b/packages/lib-engine/src/actions/InsertEmptyLines.ts
@@ -1,11 +1,11 @@
-import type { IDE, InsertionMode } from "@cursorless/common";
+import type { IDE, InsertionMode } from "@cursorless/lib-common";
import {
FlashStyle,
RangeExpansionBehavior,
toCharacterRange,
toLineRange,
zipStrict,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import type { RangeUpdater } from "../core/updateSelections/RangeUpdater";
import { performEditsAndUpdateSelections } from "../core/updateSelections/updateSelections";
import { containingLineIfUntypedModifier } from "../processTargets/modifiers/commonContainingScopeIfUntypedModifiers";
diff --git a/packages/lib-engine/src/actions/InsertSnippet.ts b/packages/lib-engine/src/actions/InsertSnippet.ts
index 96dc227086..0f47d31077 100644
--- a/packages/lib-engine/src/actions/InsertSnippet.ts
+++ b/packages/lib-engine/src/actions/InsertSnippet.ts
@@ -1,8 +1,8 @@
-import type { IDE, InsertSnippetArg } from "@cursorless/common";
+import type { IDE, InsertSnippetArg } from "@cursorless/lib-common";
import {
NamedSnippetsDeprecationError,
RangeExpansionBehavior,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import { getPreferredSnippet } from "../core/getPreferredSnippet";
import type { RangeUpdater } from "../core/updateSelections/RangeUpdater";
import { performEditsAndUpdateSelections } from "../core/updateSelections/updateSelections";
diff --git a/packages/lib-engine/src/actions/JoinLines.ts b/packages/lib-engine/src/actions/JoinLines.ts
index c59e1c2e26..4fdd6d8d0b 100644
--- a/packages/lib-engine/src/actions/JoinLines.ts
+++ b/packages/lib-engine/src/actions/JoinLines.ts
@@ -1,5 +1,10 @@
-import type { Edit, IDE, TextEditor } from "@cursorless/common";
-import { FlashStyle, Range, Selection, zipStrict } from "@cursorless/common";
+import type { Edit, IDE, TextEditor } from "@cursorless/lib-common";
+import {
+ FlashStyle,
+ Range,
+ Selection,
+ zipStrict,
+} from "@cursorless/lib-common";
import { range as iterRange, map, pairwise } from "itertools";
import { flatten } from "lodash-es";
import type { RangeUpdater } from "../core/updateSelections/RangeUpdater";
diff --git a/packages/lib-engine/src/actions/PasteFromClipboard.ts b/packages/lib-engine/src/actions/PasteFromClipboard.ts
index 0943eb373e..2635b0af2c 100644
--- a/packages/lib-engine/src/actions/PasteFromClipboard.ts
+++ b/packages/lib-engine/src/actions/PasteFromClipboard.ts
@@ -1,4 +1,4 @@
-import type { IDE } from "@cursorless/common";
+import type { IDE } from "@cursorless/lib-common";
import type { RangeUpdater } from "../core/updateSelections/RangeUpdater";
import type { Destination } from "../typings/target.types";
import type { Actions } from "./Actions";
diff --git a/packages/lib-engine/src/actions/PasteFromClipboardDirectly.ts b/packages/lib-engine/src/actions/PasteFromClipboardDirectly.ts
index 19947d4fe4..24bfb086d6 100644
--- a/packages/lib-engine/src/actions/PasteFromClipboardDirectly.ts
+++ b/packages/lib-engine/src/actions/PasteFromClipboardDirectly.ts
@@ -1,11 +1,11 @@
-import type { IDE, TextEditor } from "@cursorless/common";
+import type { IDE, TextEditor } from "@cursorless/lib-common";
import {
FlashStyle,
RangeExpansionBehavior,
Selection,
toCharacterRange,
zipStrict,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import { flatten } from "lodash-es";
import type { RangeUpdater } from "../core/updateSelections/RangeUpdater";
import { performEditsAndUpdateSelections } from "../core/updateSelections/updateSelections";
diff --git a/packages/lib-engine/src/actions/PasteFromClipboardUsingCommand.ts b/packages/lib-engine/src/actions/PasteFromClipboardUsingCommand.ts
index b242860195..cbbbb89efd 100644
--- a/packages/lib-engine/src/actions/PasteFromClipboardUsingCommand.ts
+++ b/packages/lib-engine/src/actions/PasteFromClipboardUsingCommand.ts
@@ -3,7 +3,7 @@ import {
RangeExpansionBehavior,
toCharacterRange,
type IDE,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import type { RangeUpdater } from "../core/updateSelections/RangeUpdater";
import { performEditsAndUpdateSelections } from "../core/updateSelections/updateSelections";
import type { Destination } from "../typings/target.types";
diff --git a/packages/lib-engine/src/actions/Remove.ts b/packages/lib-engine/src/actions/Remove.ts
index ad1230924e..c65198482c 100644
--- a/packages/lib-engine/src/actions/Remove.ts
+++ b/packages/lib-engine/src/actions/Remove.ts
@@ -1,5 +1,5 @@
-import type { IDE, TextEditor } from "@cursorless/common";
-import { FlashStyle } from "@cursorless/common";
+import type { IDE, TextEditor } from "@cursorless/lib-common";
+import { FlashStyle } from "@cursorless/lib-common";
import { flatten, zip } from "lodash-es";
import type { RangeUpdater } from "../core/updateSelections/RangeUpdater";
import { performEditsAndUpdateSelections } from "../core/updateSelections/updateSelections";
diff --git a/packages/lib-engine/src/actions/Replace.ts b/packages/lib-engine/src/actions/Replace.ts
index a0bb7fef50..67cad29f4d 100644
--- a/packages/lib-engine/src/actions/Replace.ts
+++ b/packages/lib-engine/src/actions/Replace.ts
@@ -1,9 +1,9 @@
-import type { IDE, ReplaceWith } from "@cursorless/common";
+import type { IDE, ReplaceWith } from "@cursorless/lib-common";
import {
FlashStyle,
RangeExpansionBehavior,
Selection,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import { zip } from "lodash-es";
import type { RangeUpdater } from "../core/updateSelections/RangeUpdater";
import { performEditsAndUpdateSelections } from "../core/updateSelections/updateSelections";
diff --git a/packages/lib-engine/src/actions/Rewrap.ts b/packages/lib-engine/src/actions/Rewrap.ts
index 7b33a35244..d8c845e7f7 100644
--- a/packages/lib-engine/src/actions/Rewrap.ts
+++ b/packages/lib-engine/src/actions/Rewrap.ts
@@ -1,5 +1,5 @@
-import type { IDE } from "@cursorless/common";
-import { FlashStyle } from "@cursorless/common";
+import type { IDE } from "@cursorless/lib-common";
+import { FlashStyle } from "@cursorless/lib-common";
import type { RangeUpdater } from "../core/updateSelections/RangeUpdater";
import { performEditsAndUpdateSelections } from "../core/updateSelections/updateSelections";
import { getContainingSurroundingPairIfNoBoundaryStage } from "../processTargets/modifiers/BoundaryStage";
diff --git a/packages/lib-engine/src/actions/Scroll.ts b/packages/lib-engine/src/actions/Scroll.ts
index ad60f4faf4..9765f67d6d 100644
--- a/packages/lib-engine/src/actions/Scroll.ts
+++ b/packages/lib-engine/src/actions/Scroll.ts
@@ -1,10 +1,10 @@
-import type { IDE } from "@cursorless/common";
+import type { IDE } from "@cursorless/lib-common";
import {
FlashStyle,
groupBy,
RevealLineAt,
toLineRange,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import type { Target } from "../typings/target.types";
import type { SimpleAction, ActionReturnValue } from "./actions.types";
diff --git a/packages/lib-engine/src/actions/SetSelection.ts b/packages/lib-engine/src/actions/SetSelection.ts
index dbfc9807d0..77c1f0a6e1 100644
--- a/packages/lib-engine/src/actions/SetSelection.ts
+++ b/packages/lib-engine/src/actions/SetSelection.ts
@@ -1,5 +1,5 @@
-import type { IDE } from "@cursorless/common";
-import { Selection } from "@cursorless/common";
+import type { IDE } from "@cursorless/lib-common";
+import { Selection } from "@cursorless/lib-common";
import type { Target } from "../typings/target.types";
import { ensureSingleEditor } from "../util/targetUtils";
import type { SimpleAction, ActionReturnValue } from "./actions.types";
diff --git a/packages/lib-engine/src/actions/SetSpecialTarget.ts b/packages/lib-engine/src/actions/SetSpecialTarget.ts
index 2c514599b5..16cabcb339 100644
--- a/packages/lib-engine/src/actions/SetSpecialTarget.ts
+++ b/packages/lib-engine/src/actions/SetSpecialTarget.ts
@@ -1,4 +1,4 @@
-import type { StoredTargetKey } from "@cursorless/common";
+import type { StoredTargetKey } from "@cursorless/lib-common";
import type { Target } from "../typings/target.types";
import type { SimpleAction, ActionReturnValue } from "./actions.types";
diff --git a/packages/lib-engine/src/actions/ShowParseTree.ts b/packages/lib-engine/src/actions/ShowParseTree.ts
index 7e93d1f365..3ab71dc112 100644
--- a/packages/lib-engine/src/actions/ShowParseTree.ts
+++ b/packages/lib-engine/src/actions/ShowParseTree.ts
@@ -1,5 +1,5 @@
-import type { IDE, TextDocument, TreeSitter } from "@cursorless/common";
-import { FlashStyle, Range } from "@cursorless/common";
+import type { IDE, TextDocument, TreeSitter } from "@cursorless/lib-common";
+import { FlashStyle, Range } from "@cursorless/lib-common";
import type { Tree, TreeCursor } from "web-tree-sitter";
import type { Target } from "../typings/target.types";
import { flashTargets } from "../util/targetUtils";
diff --git a/packages/lib-engine/src/actions/SimpleIdeCommandActions.ts b/packages/lib-engine/src/actions/SimpleIdeCommandActions.ts
index 149ab83fe2..76edd0bb22 100644
--- a/packages/lib-engine/src/actions/SimpleIdeCommandActions.ts
+++ b/packages/lib-engine/src/actions/SimpleIdeCommandActions.ts
@@ -3,7 +3,7 @@ import type {
EditableTextEditor,
IDE,
Range,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import type { RangeUpdater } from "../core/updateSelections/RangeUpdater";
import type { Target } from "../typings/target.types";
import { CallbackAction } from "./CallbackAction";
diff --git a/packages/lib-engine/src/actions/Sort.ts b/packages/lib-engine/src/actions/Sort.ts
index 59cc16aa70..2e3ac83370 100644
--- a/packages/lib-engine/src/actions/Sort.ts
+++ b/packages/lib-engine/src/actions/Sort.ts
@@ -1,4 +1,4 @@
-import { showWarning, type IDE } from "@cursorless/common";
+import { showWarning, type IDE } from "@cursorless/lib-common";
import { shuffle } from "lodash-es";
import type { Target } from "../typings/target.types";
import type { Actions } from "./Actions";
diff --git a/packages/lib-engine/src/actions/ToggleBreakpoint.ts b/packages/lib-engine/src/actions/ToggleBreakpoint.ts
index 17e843cdfa..100f9b8128 100644
--- a/packages/lib-engine/src/actions/ToggleBreakpoint.ts
+++ b/packages/lib-engine/src/actions/ToggleBreakpoint.ts
@@ -1,4 +1,4 @@
-import { FlashStyle, type IDE } from "@cursorless/common";
+import { FlashStyle, type IDE } from "@cursorless/lib-common";
import type { ModifierStageFactory } from "../processTargets/ModifierStageFactory";
import { containingLineIfUntypedModifier } from "../processTargets/modifiers/commonContainingScopeIfUntypedModifiers";
import type { Target } from "../typings/target.types";
diff --git a/packages/lib-engine/src/actions/Wrap.ts b/packages/lib-engine/src/actions/Wrap.ts
index e72fca4202..a617a5da06 100644
--- a/packages/lib-engine/src/actions/Wrap.ts
+++ b/packages/lib-engine/src/actions/Wrap.ts
@@ -1,10 +1,10 @@
-import type { Edit, IDE } from "@cursorless/common";
+import type { Edit, IDE } from "@cursorless/lib-common";
import {
FlashStyle,
RangeExpansionBehavior,
Selection,
toCharacterRange,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import type { RangeUpdater } from "../core/updateSelections/RangeUpdater";
import { performEditsAndUpdateSelections } from "../core/updateSelections/updateSelections";
import type { Target } from "../typings/target.types";
diff --git a/packages/lib-engine/src/actions/WrapWithSnippet.ts b/packages/lib-engine/src/actions/WrapWithSnippet.ts
index 158bd1a7dc..9d8a062307 100644
--- a/packages/lib-engine/src/actions/WrapWithSnippet.ts
+++ b/packages/lib-engine/src/actions/WrapWithSnippet.ts
@@ -1,5 +1,5 @@
-import type { IDE, WrapWithSnippetArg } from "@cursorless/common";
-import { FlashStyle } from "@cursorless/common";
+import type { IDE, WrapWithSnippetArg } from "@cursorless/lib-common";
+import { FlashStyle } from "@cursorless/lib-common";
import { getPreferredSnippet } from "../core/getPreferredSnippet";
import type { RangeUpdater } from "../core/updateSelections/RangeUpdater";
import { performEditsAndUpdateSelections } from "../core/updateSelections/updateSelections";
diff --git a/packages/lib-engine/src/actions/actions.types.ts b/packages/lib-engine/src/actions/actions.types.ts
index e1c93967c0..28086b3e13 100644
--- a/packages/lib-engine/src/actions/actions.types.ts
+++ b/packages/lib-engine/src/actions/actions.types.ts
@@ -6,7 +6,7 @@ import type {
ReplaceWith,
SimpleActionName,
WrapWithSnippetArg,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import type { ModifierStage } from "../processTargets/PipelineStages.types";
import type { SelectionWithEditor } from "../typings/Types";
import type { Destination, Target } from "../typings/target.types";
diff --git a/packages/lib-engine/src/actions/incrementDecrement.ts b/packages/lib-engine/src/actions/incrementDecrement.ts
index 1b1a1e69ea..efb2f0343e 100644
--- a/packages/lib-engine/src/actions/incrementDecrement.ts
+++ b/packages/lib-engine/src/actions/incrementDecrement.ts
@@ -1,5 +1,5 @@
-import type { MatchedText, TextEditor } from "@cursorless/common";
-import { Range, matchText } from "@cursorless/common";
+import type { MatchedText, TextEditor } from "@cursorless/lib-common";
+import { Range, matchText } from "@cursorless/lib-common";
import { PlainTarget } from "../processTargets/targets";
import type { SelectionWithEditor } from "../typings/Types";
import type { Destination, Target } from "../typings/target.types";
diff --git a/packages/lib-engine/src/api/CursorlessEngineApi.ts b/packages/lib-engine/src/api/CursorlessEngineApi.ts
index 24d73103f1..223dbb07ea 100644
--- a/packages/lib-engine/src/api/CursorlessEngineApi.ts
+++ b/packages/lib-engine/src/api/CursorlessEngineApi.ts
@@ -10,7 +10,7 @@ import type {
ScopeProvider,
ScopeType,
SpokenForm,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import type { CommandRunner } from "../CommandRunner";
import type { StoredTargetMap } from "../core/StoredTargets";
import type { LanguageDefinitions } from "../languages/LanguageDefinitions";
diff --git a/packages/lib-engine/src/core/Debug.ts b/packages/lib-engine/src/core/Debug.ts
index 91f341193c..d38c0ad366 100644
--- a/packages/lib-engine/src/core/Debug.ts
+++ b/packages/lib-engine/src/core/Debug.ts
@@ -1,4 +1,4 @@
-import type { Disposable, IDE } from "@cursorless/common";
+import type { Disposable, IDE } from "@cursorless/lib-common";
/**
* Debug logger
diff --git a/packages/lib-engine/src/core/HatAllocator.ts b/packages/lib-engine/src/core/HatAllocator.ts
index b3263f164a..5dcfad5c52 100644
--- a/packages/lib-engine/src/core/HatAllocator.ts
+++ b/packages/lib-engine/src/core/HatAllocator.ts
@@ -1,4 +1,4 @@
-import type { Disposable, Hats, IDE, TokenHat } from "@cursorless/common";
+import type { Disposable, Hats, IDE, TokenHat } from "@cursorless/lib-common";
import type { TokenGraphemeSplitter } from "../tokenGraphemeSplitter";
import { allocateHats } from "../util/allocateHats";
import type { IndividualHatMap } from "./IndividualHatMap";
diff --git a/packages/lib-engine/src/core/HatTokenMapImpl.ts b/packages/lib-engine/src/core/HatTokenMapImpl.ts
index 103f4e6314..34a4392652 100644
--- a/packages/lib-engine/src/core/HatTokenMapImpl.ts
+++ b/packages/lib-engine/src/core/HatTokenMapImpl.ts
@@ -5,7 +5,7 @@ import type {
IDE,
ReadOnlyHatMap,
TokenHat,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import type { TokenGraphemeSplitter } from "../tokenGraphemeSplitter";
import type { Debug } from "./Debug";
import { HatAllocator } from "./HatAllocator";
diff --git a/packages/lib-engine/src/core/IndividualHatMap.ts b/packages/lib-engine/src/core/IndividualHatMap.ts
index a11f32f1d1..b27cc72df2 100644
--- a/packages/lib-engine/src/core/IndividualHatMap.ts
+++ b/packages/lib-engine/src/core/IndividualHatMap.ts
@@ -5,8 +5,8 @@ import type {
TextDocument,
Token,
TokenHat,
-} from "@cursorless/common";
-import { getKey } from "@cursorless/common";
+} from "@cursorless/lib-common";
+import { getKey } from "@cursorless/lib-common";
import type { TokenGraphemeSplitter } from "../tokenGraphemeSplitter";
import { getMatcher } from "../tokenizer";
import type { FullRangeInfo } from "../typings/updateSelections";
diff --git a/packages/lib-engine/src/core/Snippets.ts b/packages/lib-engine/src/core/Snippets.ts
index f6309c84c1..c6ad5b9eac 100644
--- a/packages/lib-engine/src/core/Snippets.ts
+++ b/packages/lib-engine/src/core/Snippets.ts
@@ -1,4 +1,4 @@
-import type { TextEditor } from "@cursorless/common";
+import type { TextEditor } from "@cursorless/lib-common";
export interface Snippets {
/**
diff --git a/packages/lib-engine/src/core/StoredTargets.ts b/packages/lib-engine/src/core/StoredTargets.ts
index 4d4ee8088f..158ea0c312 100644
--- a/packages/lib-engine/src/core/StoredTargets.ts
+++ b/packages/lib-engine/src/core/StoredTargets.ts
@@ -1,5 +1,5 @@
-import type { StoredTargetKey } from "@cursorless/common";
-import { DefaultMap, Notifier, storedTargetKeys } from "@cursorless/common";
+import type { StoredTargetKey } from "@cursorless/lib-common";
+import { DefaultMap, Notifier, storedTargetKeys } from "@cursorless/lib-common";
import type { Target } from "../typings/target.types";
import { UndoStack } from "./UndoStack";
diff --git a/packages/lib-engine/src/core/commandRunner/CommandRunnerImpl.ts b/packages/lib-engine/src/core/commandRunner/CommandRunnerImpl.ts
index d4c8ebb90f..00654b3799 100644
--- a/packages/lib-engine/src/core/commandRunner/CommandRunnerImpl.ts
+++ b/packages/lib-engine/src/core/commandRunner/CommandRunnerImpl.ts
@@ -5,8 +5,8 @@ import type {
CommandServerApi,
DestinationDescriptor,
PartialTargetDescriptor,
-} from "@cursorless/common";
-import { clientSupportsFallback } from "@cursorless/common";
+} from "@cursorless/lib-common";
+import { clientSupportsFallback } from "@cursorless/lib-common";
import type { CommandRunner } from "../../CommandRunner";
import type {
ActionRecord,
diff --git a/packages/lib-engine/src/core/commandVersionUpgrades/canonicalizeAndValidateCommand.ts b/packages/lib-engine/src/core/commandVersionUpgrades/canonicalizeAndValidateCommand.ts
index 0543516e34..88e86ecde7 100644
--- a/packages/lib-engine/src/core/commandVersionUpgrades/canonicalizeAndValidateCommand.ts
+++ b/packages/lib-engine/src/core/commandVersionUpgrades/canonicalizeAndValidateCommand.ts
@@ -5,8 +5,8 @@ import type {
CommandVersion,
EnforceUndefined,
PartialTargetDescriptor,
-} from "@cursorless/common";
-import { LATEST_VERSION, OutdatedExtensionError } from "@cursorless/common";
+} from "@cursorless/lib-common";
+import { LATEST_VERSION, OutdatedExtensionError } from "@cursorless/lib-common";
import { produce } from "immer";
import { getPartialTargetDescriptors } from "../../util/getPartialTargetDescriptors";
import canonicalizeTargetsInPlace from "./canonicalizeTargetsInPlace";
diff --git a/packages/lib-engine/src/core/commandVersionUpgrades/canonicalizeTargetsInPlace.ts b/packages/lib-engine/src/core/commandVersionUpgrades/canonicalizeTargetsInPlace.ts
index 7f6ef4f659..7612880a75 100644
--- a/packages/lib-engine/src/core/commandVersionUpgrades/canonicalizeTargetsInPlace.ts
+++ b/packages/lib-engine/src/core/commandVersionUpgrades/canonicalizeTargetsInPlace.ts
@@ -3,7 +3,7 @@ import type {
PartialPrimitiveTargetDescriptor,
PartialTargetDescriptor,
SimpleScopeTypeType,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import { getPartialPrimitiveTargets } from "../../util/getPrimitiveTargets";
const SCOPE_TYPE_CANONICALIZATION_MAPPING: Record =
diff --git a/packages/lib-engine/src/core/commandVersionUpgrades/upgradeV0ToV1/upgradeV0ToV1.ts b/packages/lib-engine/src/core/commandVersionUpgrades/upgradeV0ToV1/upgradeV0ToV1.ts
index a375fb8dc1..81fe49463a 100644
--- a/packages/lib-engine/src/core/commandVersionUpgrades/upgradeV0ToV1/upgradeV0ToV1.ts
+++ b/packages/lib-engine/src/core/commandVersionUpgrades/upgradeV0ToV1/upgradeV0ToV1.ts
@@ -1,4 +1,4 @@
-import type { CommandV0, CommandV1 } from "@cursorless/common";
+import type { CommandV0, CommandV1 } from "@cursorless/lib-common";
export function upgradeV0ToV1(command: CommandV0): CommandV1 {
return { ...command, version: 1 };
diff --git a/packages/lib-engine/src/core/commandVersionUpgrades/upgradeV1ToV2/upgradeStrictHere.ts b/packages/lib-engine/src/core/commandVersionUpgrades/upgradeV1ToV2/upgradeStrictHere.ts
index 6068fdb81f..9f130d4b39 100644
--- a/packages/lib-engine/src/core/commandVersionUpgrades/upgradeV1ToV2/upgradeStrictHere.ts
+++ b/packages/lib-engine/src/core/commandVersionUpgrades/upgradeV1ToV2/upgradeStrictHere.ts
@@ -1,5 +1,5 @@
import { isEqual } from "lodash-es";
-import type { PartialPrimitiveTargetDescriptorV2 } from "@cursorless/common";
+import type { PartialPrimitiveTargetDescriptorV2 } from "@cursorless/lib-common";
const STRICT_HERE = {
type: "primitive",
diff --git a/packages/lib-engine/src/core/commandVersionUpgrades/upgradeV1ToV2/upgradeV1ToV2.ts b/packages/lib-engine/src/core/commandVersionUpgrades/upgradeV1ToV2/upgradeV1ToV2.ts
index 0ba97908d1..99588ee8fb 100644
--- a/packages/lib-engine/src/core/commandVersionUpgrades/upgradeV1ToV2/upgradeV1ToV2.ts
+++ b/packages/lib-engine/src/core/commandVersionUpgrades/upgradeV1ToV2/upgradeV1ToV2.ts
@@ -11,7 +11,7 @@ import type {
PartialTargetDescriptorV2,
PartialTargetV0V1,
SimpleScopeTypeTypeV2,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import { upgradeStrictHere } from "./upgradeStrictHere";
export function upgradeV1ToV2(command: CommandV1): CommandV2 {
diff --git a/packages/lib-engine/src/core/commandVersionUpgrades/upgradeV2ToV3/upgradeV2ToV3.ts b/packages/lib-engine/src/core/commandVersionUpgrades/upgradeV2ToV3/upgradeV2ToV3.ts
index 89faffc619..ab809edfb7 100644
--- a/packages/lib-engine/src/core/commandVersionUpgrades/upgradeV2ToV3/upgradeV2ToV3.ts
+++ b/packages/lib-engine/src/core/commandVersionUpgrades/upgradeV2ToV3/upgradeV2ToV3.ts
@@ -18,7 +18,7 @@ import type {
RangeMarkV3,
RangeModifierV3,
ScopeTypeV2,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import { isEqual } from "lodash-es";
export function upgradeV2ToV3(command: CommandV2): CommandV3 {
diff --git a/packages/lib-engine/src/core/commandVersionUpgrades/upgradeV3ToV4/upgradeV3ToV4.ts b/packages/lib-engine/src/core/commandVersionUpgrades/upgradeV3ToV4/upgradeV3ToV4.ts
index d3b444fae1..0b646d2d02 100644
--- a/packages/lib-engine/src/core/commandVersionUpgrades/upgradeV3ToV4/upgradeV3ToV4.ts
+++ b/packages/lib-engine/src/core/commandVersionUpgrades/upgradeV3ToV4/upgradeV3ToV4.ts
@@ -7,7 +7,7 @@ import type {
PartialRangeTargetDescriptorV4,
PartialTargetDescriptorV3,
PartialTargetDescriptorV4,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
export function upgradeV3ToV4(command: CommandV3): CommandV4 {
return {
diff --git a/packages/lib-engine/src/core/commandVersionUpgrades/upgradeV4ToV5/upgradeV4ToV5.ts b/packages/lib-engine/src/core/commandVersionUpgrades/upgradeV4ToV5/upgradeV4ToV5.ts
index 98116d74d0..e766716bd2 100644
--- a/packages/lib-engine/src/core/commandVersionUpgrades/upgradeV4ToV5/upgradeV4ToV5.ts
+++ b/packages/lib-engine/src/core/commandVersionUpgrades/upgradeV4ToV5/upgradeV4ToV5.ts
@@ -10,7 +10,7 @@ import type {
PartialPrimitiveTargetDescriptorV5,
PartialTargetDescriptorV4,
PartialTargetDescriptorV5,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
export function upgradeV4ToV5(command: CommandV4): CommandV5 {
return {
diff --git a/packages/lib-engine/src/core/commandVersionUpgrades/upgradeV5ToV6/canonicalizeActionName.ts b/packages/lib-engine/src/core/commandVersionUpgrades/upgradeV5ToV6/canonicalizeActionName.ts
index 4b71f6d857..7210e948ad 100644
--- a/packages/lib-engine/src/core/commandVersionUpgrades/upgradeV5ToV6/canonicalizeActionName.ts
+++ b/packages/lib-engine/src/core/commandVersionUpgrades/upgradeV5ToV6/canonicalizeActionName.ts
@@ -1,5 +1,5 @@
-import type { ActionType } from "@cursorless/common";
-import { actionNames } from "@cursorless/common";
+import type { ActionType } from "@cursorless/lib-common";
+import { actionNames } from "@cursorless/lib-common";
const actionAliasToCanonicalName: Record = {
bring: "replaceWithTarget",
diff --git a/packages/lib-engine/src/core/commandVersionUpgrades/upgradeV5ToV6/upgradeV5ToV6.ts b/packages/lib-engine/src/core/commandVersionUpgrades/upgradeV5ToV6/upgradeV5ToV6.ts
index f12b6c0656..705821e495 100644
--- a/packages/lib-engine/src/core/commandVersionUpgrades/upgradeV5ToV6/upgradeV5ToV6.ts
+++ b/packages/lib-engine/src/core/commandVersionUpgrades/upgradeV5ToV6/upgradeV5ToV6.ts
@@ -28,7 +28,7 @@ import type {
PrimitiveDestinationDescriptor,
ReplaceWith,
WrapWithSnippetArg,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import canonicalizeActionName from "./canonicalizeActionName";
export function upgradeV5ToV6(command: CommandV5): EnforceUndefined {
diff --git a/packages/lib-engine/src/core/commandVersionUpgrades/upgradeV6ToV7.ts b/packages/lib-engine/src/core/commandVersionUpgrades/upgradeV6ToV7.ts
index 5af1045689..544c027c46 100644
--- a/packages/lib-engine/src/core/commandVersionUpgrades/upgradeV6ToV7.ts
+++ b/packages/lib-engine/src/core/commandVersionUpgrades/upgradeV6ToV7.ts
@@ -1,4 +1,4 @@
-import type { CommandV6, CommandV7 } from "@cursorless/common";
+import type { CommandV6, CommandV7 } from "@cursorless/lib-common";
export function upgradeV6ToV7(command: CommandV6): CommandV7 {
return { ...command, version: 7 };
diff --git a/packages/lib-engine/src/core/getCommandFallback.ts b/packages/lib-engine/src/core/getCommandFallback.ts
index 720547428a..06ff527eb6 100644
--- a/packages/lib-engine/src/core/getCommandFallback.ts
+++ b/packages/lib-engine/src/core/getCommandFallback.ts
@@ -6,7 +6,7 @@ import type {
Fallback,
FallbackCommandModifier,
PartialTargetDescriptor,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import type { ActionReturnValue } from "../actions/actions.types";
export async function getCommandFallback(
diff --git a/packages/lib-engine/src/core/getPreferredSnippet.test.ts b/packages/lib-engine/src/core/getPreferredSnippet.test.ts
index 84bcc9eae6..0bdcaa629f 100644
--- a/packages/lib-engine/src/core/getPreferredSnippet.test.ts
+++ b/packages/lib-engine/src/core/getPreferredSnippet.test.ts
@@ -4,7 +4,7 @@ import type {
DeprecatedNamedSnippetArg,
ListInsertSnippetArg,
ListWrapWithSnippetArg,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import assert from "node:assert";
import { getPreferredSnippet } from "./getPreferredSnippet";
diff --git a/packages/lib-engine/src/core/getPreferredSnippet.ts b/packages/lib-engine/src/core/getPreferredSnippet.ts
index a3f518c90f..74d94d21da 100644
--- a/packages/lib-engine/src/core/getPreferredSnippet.ts
+++ b/packages/lib-engine/src/core/getPreferredSnippet.ts
@@ -1,10 +1,10 @@
-import { NamedSnippetsDeprecationError } from "@cursorless/common";
+import { NamedSnippetsDeprecationError } from "@cursorless/lib-common";
import type {
CustomInsertSnippetArg,
CustomWrapWithSnippetArg,
InsertSnippetArg,
WrapWithSnippetArg,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
export function getPreferredSnippet(
snippetDescription: InsertSnippetArg,
diff --git a/packages/lib-engine/src/core/handleHoistedModifiers.ts b/packages/lib-engine/src/core/handleHoistedModifiers.ts
index 89909b27de..c11aa0af4f 100644
--- a/packages/lib-engine/src/core/handleHoistedModifiers.ts
+++ b/packages/lib-engine/src/core/handleHoistedModifiers.ts
@@ -1,4 +1,4 @@
-import type { Modifier } from "@cursorless/common";
+import type { Modifier } from "@cursorless/lib-common";
import { findLastIndex } from "lodash-es";
import type {
PrimitiveTargetDescriptor,
diff --git a/packages/lib-engine/src/core/inferFullTargetDescriptor.ts b/packages/lib-engine/src/core/inferFullTargetDescriptor.ts
index 3f536401be..800cbcc983 100644
--- a/packages/lib-engine/src/core/inferFullTargetDescriptor.ts
+++ b/packages/lib-engine/src/core/inferFullTargetDescriptor.ts
@@ -5,7 +5,7 @@ import type {
PartialPrimitiveTargetDescriptor,
PartialRangeTargetDescriptor,
PartialTargetDescriptor,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import type {
ListTargetDescriptor,
Mark,
diff --git a/packages/lib-engine/src/core/updateSelections/RangeUpdater.ts b/packages/lib-engine/src/core/updateSelections/RangeUpdater.ts
index fe78cb4927..7efbf4cb9b 100644
--- a/packages/lib-engine/src/core/updateSelections/RangeUpdater.ts
+++ b/packages/lib-engine/src/core/updateSelections/RangeUpdater.ts
@@ -5,7 +5,7 @@ import type {
TextDocument,
TextDocumentChangeEvent,
TextDocumentContentChangeEvent,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import { pull } from "lodash-es";
import type {
ExtendedTextDocumentChangeEvent,
diff --git a/packages/lib-engine/src/core/updateSelections/getOffsetsForDeleteOrReplace.ts b/packages/lib-engine/src/core/updateSelections/getOffsetsForDeleteOrReplace.ts
index e52765dc73..042d5d1571 100644
--- a/packages/lib-engine/src/core/updateSelections/getOffsetsForDeleteOrReplace.ts
+++ b/packages/lib-engine/src/core/updateSelections/getOffsetsForDeleteOrReplace.ts
@@ -3,7 +3,7 @@ import type {
ChangeEventInfo,
FullRangeInfo,
} from "../../typings/updateSelections";
-import type { RangeOffsets } from "@cursorless/common";
+import type { RangeOffsets } from "@cursorless/lib-common";
/**
* Gets updated offsets for the range `rangeInfo` after the change described by
diff --git a/packages/lib-engine/src/core/updateSelections/getOffsetsForEmptyRangeInsert.ts b/packages/lib-engine/src/core/updateSelections/getOffsetsForEmptyRangeInsert.ts
index 6c70a488f4..3feaf54c7b 100644
--- a/packages/lib-engine/src/core/updateSelections/getOffsetsForEmptyRangeInsert.ts
+++ b/packages/lib-engine/src/core/updateSelections/getOffsetsForEmptyRangeInsert.ts
@@ -1,5 +1,5 @@
-import type { RangeOffsets } from "@cursorless/common";
-import { leftAnchored, rightAnchored } from "@cursorless/common";
+import type { RangeOffsets } from "@cursorless/lib-common";
+import { leftAnchored, rightAnchored } from "@cursorless/lib-common";
import { invariant } from "immutability-helper";
import type {
ChangeEventInfo,
diff --git a/packages/lib-engine/src/core/updateSelections/getOffsetsForNonEmptyRangeInsert.ts b/packages/lib-engine/src/core/updateSelections/getOffsetsForNonEmptyRangeInsert.ts
index acb0cbe389..a5ff3e32b8 100644
--- a/packages/lib-engine/src/core/updateSelections/getOffsetsForNonEmptyRangeInsert.ts
+++ b/packages/lib-engine/src/core/updateSelections/getOffsetsForNonEmptyRangeInsert.ts
@@ -1,5 +1,5 @@
-import type { RangeOffsets } from "@cursorless/common";
-import { leftAnchored, rightAnchored } from "@cursorless/common";
+import type { RangeOffsets } from "@cursorless/lib-common";
+import { leftAnchored, rightAnchored } from "@cursorless/lib-common";
import { invariant } from "immutability-helper";
import type {
ChangeEventInfo,
diff --git a/packages/lib-engine/src/core/updateSelections/getUpdatedText.ts b/packages/lib-engine/src/core/updateSelections/getUpdatedText.ts
index 6621f3d82f..1cd9fddee6 100644
--- a/packages/lib-engine/src/core/updateSelections/getUpdatedText.ts
+++ b/packages/lib-engine/src/core/updateSelections/getUpdatedText.ts
@@ -2,7 +2,7 @@ import type {
ChangeEventInfo,
FullRangeInfo,
} from "../../typings/updateSelections";
-import type { RangeOffsets } from "@cursorless/common";
+import type { RangeOffsets } from "@cursorless/lib-common";
/**
* Updates the text of the given rangeInfo to take into account the given change.
diff --git a/packages/lib-engine/src/core/updateSelections/updateRangeInfos.ts b/packages/lib-engine/src/core/updateSelections/updateRangeInfos.ts
index 0f3488aa86..d092e097b0 100644
--- a/packages/lib-engine/src/core/updateSelections/updateRangeInfos.ts
+++ b/packages/lib-engine/src/core/updateSelections/updateRangeInfos.ts
@@ -7,7 +7,7 @@ import type {
FullRangeInfo,
ChangeEventInfo,
} from "../../typings/updateSelections";
-import type { RangeOffsets } from "@cursorless/common";
+import type { RangeOffsets } from "@cursorless/lib-common";
import { getUpdatedText } from "./getUpdatedText";
/**
diff --git a/packages/lib-engine/src/core/updateSelections/updateSelections.ts b/packages/lib-engine/src/core/updateSelections/updateSelections.ts
index 97ff295dc0..9198d8c52b 100644
--- a/packages/lib-engine/src/core/updateSelections/updateSelections.ts
+++ b/packages/lib-engine/src/core/updateSelections/updateSelections.ts
@@ -3,12 +3,12 @@ import type {
EditableTextEditor,
Range,
TextDocument,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import {
RangeExpansionBehavior,
Selection,
unsafeKeys,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import { flatten } from "lodash-es";
import type {
FullSelectionInfo,
diff --git a/packages/lib-engine/src/cursorlessEngine.ts b/packages/lib-engine/src/cursorlessEngine.ts
index 84df58d156..2ac3a5ad69 100644
--- a/packages/lib-engine/src/cursorlessEngine.ts
+++ b/packages/lib-engine/src/cursorlessEngine.ts
@@ -7,8 +7,8 @@ import type {
ScopeProvider,
TalonSpokenForms,
TreeSitter,
-} from "@cursorless/common";
-import { ensureCommandShape, PassthroughIDE } from "@cursorless/common";
+} from "@cursorless/lib-common";
+import { ensureCommandShape, PassthroughIDE } from "@cursorless/lib-common";
import { KeyboardTargetUpdater } from "./KeyboardTargetUpdater";
import type {
CommandRunnerDecorator,
diff --git a/packages/lib-engine/src/customCommandGrammar/grammarAction.test.ts b/packages/lib-engine/src/customCommandGrammar/grammarAction.test.ts
index 42135292b2..4ab87830f9 100644
--- a/packages/lib-engine/src/customCommandGrammar/grammarAction.test.ts
+++ b/packages/lib-engine/src/customCommandGrammar/grammarAction.test.ts
@@ -1,4 +1,4 @@
-import { type ActionDescriptor } from "@cursorless/common";
+import { type ActionDescriptor } from "@cursorless/lib-common";
import assert from "assert";
import { parseAction } from "./parseCommand";
import type { WithPlaceholders } from "./WithPlaceholders";
diff --git a/packages/lib-engine/src/customCommandGrammar/grammarScopeType.test.ts b/packages/lib-engine/src/customCommandGrammar/grammarScopeType.test.ts
index 0eb6f4ada1..2d39bce833 100644
--- a/packages/lib-engine/src/customCommandGrammar/grammarScopeType.test.ts
+++ b/packages/lib-engine/src/customCommandGrammar/grammarScopeType.test.ts
@@ -1,5 +1,5 @@
import assert from "assert";
-import type { ScopeType } from "@cursorless/common";
+import type { ScopeType } from "@cursorless/lib-common";
import { parseScopeType } from "./parseCommand";
interface TestCase {
diff --git a/packages/lib-engine/src/customCommandGrammar/grammarUtil.ts b/packages/lib-engine/src/customCommandGrammar/grammarUtil.ts
index 1f1f4bbb44..3b62291c7b 100644
--- a/packages/lib-engine/src/customCommandGrammar/grammarUtil.ts
+++ b/packages/lib-engine/src/customCommandGrammar/grammarUtil.ts
@@ -21,7 +21,7 @@ import type {
SimpleScopeTypeType,
SurroundingPairName,
SurroundingPairScopeType,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import type { WithPlaceholders } from "./WithPlaceholders";
export function simpleActionDescriptor(
diff --git a/packages/lib-engine/src/customCommandGrammar/lexer.ts b/packages/lib-engine/src/customCommandGrammar/lexer.ts
index 43d3a3c8e5..bc85e2dbed 100644
--- a/packages/lib-engine/src/customCommandGrammar/lexer.ts
+++ b/packages/lib-engine/src/customCommandGrammar/lexer.ts
@@ -1,12 +1,12 @@
import type {
BringMoveActionDescriptor,
InsertionMode,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import {
simpleActionNames,
simpleScopeTypeTypes,
surroundingPairNames,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import { marks } from "../generateSpokenForm/defaultSpokenForms/marks";
import { defaultSpokenFormMap } from "../spokenForms/defaultSpokenFormMap";
import { connectives } from "../generateSpokenForm/defaultSpokenForms/connectives";
diff --git a/packages/lib-engine/src/customCommandGrammar/parseAndFillOutAction.ts b/packages/lib-engine/src/customCommandGrammar/parseAndFillOutAction.ts
index e141f5749e..14ec3ad85b 100644
--- a/packages/lib-engine/src/customCommandGrammar/parseAndFillOutAction.ts
+++ b/packages/lib-engine/src/customCommandGrammar/parseAndFillOutAction.ts
@@ -1,4 +1,4 @@
-import type { ActionDescriptor } from "@cursorless/common";
+import type { ActionDescriptor } from "@cursorless/lib-common";
import { fillPlaceholders } from "./fillPlaceholders";
import { parseAction } from "./parseCommand";
diff --git a/packages/lib-engine/src/customCommandGrammar/parseCommand.ts b/packages/lib-engine/src/customCommandGrammar/parseCommand.ts
index b7d495b14d..8a9582cb62 100644
--- a/packages/lib-engine/src/customCommandGrammar/parseCommand.ts
+++ b/packages/lib-engine/src/customCommandGrammar/parseCommand.ts
@@ -1,4 +1,4 @@
-import type { ActionDescriptor, ScopeType } from "@cursorless/common";
+import type { ActionDescriptor, ScopeType } from "@cursorless/lib-common";
import { Grammar, Parser } from "nearley";
import type { WithPlaceholders } from "./WithPlaceholders";
import grammar from "./generated/grammar";
diff --git a/packages/lib-engine/src/disabledComponents/DisabledCommandServerApi.ts b/packages/lib-engine/src/disabledComponents/DisabledCommandServerApi.ts
index 63c3bf9946..030ca0a7cd 100644
--- a/packages/lib-engine/src/disabledComponents/DisabledCommandServerApi.ts
+++ b/packages/lib-engine/src/disabledComponents/DisabledCommandServerApi.ts
@@ -1,4 +1,4 @@
-import type { CommandServerApi } from "@cursorless/common";
+import type { CommandServerApi } from "@cursorless/lib-common";
export class DisabledCommandServerApi implements CommandServerApi {
getFocusedElementType() {
diff --git a/packages/lib-engine/src/disabledComponents/DisabledHatTokenMap.ts b/packages/lib-engine/src/disabledComponents/DisabledHatTokenMap.ts
index 3e9ef947a0..f0eb195ec9 100644
--- a/packages/lib-engine/src/disabledComponents/DisabledHatTokenMap.ts
+++ b/packages/lib-engine/src/disabledComponents/DisabledHatTokenMap.ts
@@ -1,4 +1,4 @@
-import type { HatTokenMap } from "@cursorless/common";
+import type { HatTokenMap } from "@cursorless/lib-common";
export class DisabledHatTokenMap implements HatTokenMap {
async allocateHats() {
diff --git a/packages/lib-engine/src/disabledComponents/DisabledLanguageDefinitions.ts b/packages/lib-engine/src/disabledComponents/DisabledLanguageDefinitions.ts
index 8712704168..113ebbf2ed 100644
--- a/packages/lib-engine/src/disabledComponents/DisabledLanguageDefinitions.ts
+++ b/packages/lib-engine/src/disabledComponents/DisabledLanguageDefinitions.ts
@@ -1,4 +1,4 @@
-import type { Listener } from "@cursorless/common";
+import type { Listener } from "@cursorless/lib-common";
import type { LanguageDefinition } from "../languages/LanguageDefinition";
import type { LanguageDefinitions } from "../languages/LanguageDefinitions";
diff --git a/packages/lib-engine/src/disabledComponents/DisabledSnippets.ts b/packages/lib-engine/src/disabledComponents/DisabledSnippets.ts
index cf40f8f75f..d3684472ad 100644
--- a/packages/lib-engine/src/disabledComponents/DisabledSnippets.ts
+++ b/packages/lib-engine/src/disabledComponents/DisabledSnippets.ts
@@ -1,4 +1,4 @@
-import type { TextEditor } from "@cursorless/common";
+import type { TextEditor } from "@cursorless/lib-common";
import type { Snippets } from "../core/Snippets";
export class DisabledSnippets implements Snippets {
diff --git a/packages/lib-engine/src/disabledComponents/DisabledTalonSpokenForms.ts b/packages/lib-engine/src/disabledComponents/DisabledTalonSpokenForms.ts
index 35f3400bd4..a6657f07e5 100644
--- a/packages/lib-engine/src/disabledComponents/DisabledTalonSpokenForms.ts
+++ b/packages/lib-engine/src/disabledComponents/DisabledTalonSpokenForms.ts
@@ -1,5 +1,5 @@
-import type { SpokenFormEntry, TalonSpokenForms } from "@cursorless/common";
-import { DisabledCustomSpokenFormsError } from "@cursorless/common";
+import type { SpokenFormEntry, TalonSpokenForms } from "@cursorless/lib-common";
+import { DisabledCustomSpokenFormsError } from "@cursorless/lib-common";
export class DisabledTalonSpokenForms implements TalonSpokenForms {
getSpokenFormEntries(): Promise {
diff --git a/packages/lib-engine/src/disabledComponents/DisabledTreeSitter.ts b/packages/lib-engine/src/disabledComponents/DisabledTreeSitter.ts
index afc2f24221..2b6d027d0d 100644
--- a/packages/lib-engine/src/disabledComponents/DisabledTreeSitter.ts
+++ b/packages/lib-engine/src/disabledComponents/DisabledTreeSitter.ts
@@ -1,4 +1,4 @@
-import type { TextDocument, TreeSitter } from "@cursorless/common";
+import type { TextDocument, TreeSitter } from "@cursorless/lib-common";
import type { Query, Tree } from "web-tree-sitter";
export class DisabledTreeSitter implements TreeSitter {
diff --git a/packages/lib-engine/src/generateSpokenForm/CustomSpokenFormGeneratorImpl.test.ts b/packages/lib-engine/src/generateSpokenForm/CustomSpokenFormGeneratorImpl.test.ts
index b2baf21344..34a96167e4 100644
--- a/packages/lib-engine/src/generateSpokenForm/CustomSpokenFormGeneratorImpl.test.ts
+++ b/packages/lib-engine/src/generateSpokenForm/CustomSpokenFormGeneratorImpl.test.ts
@@ -1,6 +1,6 @@
import assert from "node:assert";
import { CustomSpokenFormGeneratorImpl } from "./CustomSpokenFormGeneratorImpl";
-import { FakeIDE, LATEST_VERSION, asyncSafety } from "@cursorless/common";
+import { FakeIDE, LATEST_VERSION, asyncSafety } from "@cursorless/lib-common";
suite("CustomSpokenFormGeneratorImpl", async function () {
test(
diff --git a/packages/lib-engine/src/generateSpokenForm/CustomSpokenFormGeneratorImpl.ts b/packages/lib-engine/src/generateSpokenForm/CustomSpokenFormGeneratorImpl.ts
index a3ddaea5cd..00f411c956 100644
--- a/packages/lib-engine/src/generateSpokenForm/CustomSpokenFormGeneratorImpl.ts
+++ b/packages/lib-engine/src/generateSpokenForm/CustomSpokenFormGeneratorImpl.ts
@@ -6,7 +6,7 @@ import type {
Listener,
ScopeType,
TalonSpokenForms,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import type { CustomSpokenFormGenerator } from "../api/CursorlessEngineApi";
import { CustomSpokenForms } from "../spokenForms/CustomSpokenForms";
import { SpokenFormGenerator } from "./generateSpokenForm";
diff --git a/packages/lib-engine/src/generateSpokenForm/SpokenFormComponent.ts b/packages/lib-engine/src/generateSpokenForm/SpokenFormComponent.ts
index 40b64f719f..1517484d8e 100644
--- a/packages/lib-engine/src/generateSpokenForm/SpokenFormComponent.ts
+++ b/packages/lib-engine/src/generateSpokenForm/SpokenFormComponent.ts
@@ -1,5 +1,8 @@
import type { SpokenFormMapEntry } from "../spokenForms/SpokenFormMap";
-import type { SpokenFormMapKeyTypes, SpokenFormType } from "@cursorless/common";
+import type {
+ SpokenFormMapKeyTypes,
+ SpokenFormType,
+} from "@cursorless/lib-common";
/**
* A component of a spoken form used internally during spoken form generation.
diff --git a/packages/lib-engine/src/generateSpokenForm/defaultSpokenForms/marks.ts b/packages/lib-engine/src/generateSpokenForm/defaultSpokenForms/marks.ts
index a0750e1b51..060d4686af 100644
--- a/packages/lib-engine/src/generateSpokenForm/defaultSpokenForms/marks.ts
+++ b/packages/lib-engine/src/generateSpokenForm/defaultSpokenForms/marks.ts
@@ -1,4 +1,4 @@
-import type { PartialMark } from "@cursorless/common";
+import type { PartialMark } from "@cursorless/lib-common";
const hatColors: Record = {
blue: "blue",
diff --git a/packages/lib-engine/src/generateSpokenForm/defaultSpokenForms/modifiers.ts b/packages/lib-engine/src/generateSpokenForm/defaultSpokenForms/modifiers.ts
index 868c6607df..a6bf4d0f42 100644
--- a/packages/lib-engine/src/generateSpokenForm/defaultSpokenForms/modifiers.ts
+++ b/packages/lib-engine/src/generateSpokenForm/defaultSpokenForms/modifiers.ts
@@ -1,5 +1,5 @@
-import { CompositeKeyMap } from "@cursorless/common";
-import type { SpeakableSurroundingPairName } from "@cursorless/common";
+import { CompositeKeyMap } from "@cursorless/lib-common";
+import type { SpeakableSurroundingPairName } from "@cursorless/lib-common";
import type { SpokenFormComponentMap } from "../getSpokenFormComponentMap";
import type { CustomizableSpokenFormComponentForType } from "../SpokenFormComponent";
import { surroundingPairsDelimiters } from "./surroundingPairsDelimiters";
diff --git a/packages/lib-engine/src/generateSpokenForm/defaultSpokenForms/snippets.ts b/packages/lib-engine/src/generateSpokenForm/defaultSpokenForms/snippets.ts
index ab16d35e7c..fd7885221a 100644
--- a/packages/lib-engine/src/generateSpokenForm/defaultSpokenForms/snippets.ts
+++ b/packages/lib-engine/src/generateSpokenForm/defaultSpokenForms/snippets.ts
@@ -1,4 +1,7 @@
-import type { InsertSnippetArg, WrapWithSnippetArg } from "@cursorless/common";
+import type {
+ InsertSnippetArg,
+ WrapWithSnippetArg,
+} from "@cursorless/lib-common";
import { NoSpokenFormError } from "../NoSpokenFormError";
export function insertionSnippetToSpokenForm(
diff --git a/packages/lib-engine/src/generateSpokenForm/defaultSpokenForms/surroundingPairsDelimiters.ts b/packages/lib-engine/src/generateSpokenForm/defaultSpokenForms/surroundingPairsDelimiters.ts
index 51d7fe7c66..d9e967575c 100644
--- a/packages/lib-engine/src/generateSpokenForm/defaultSpokenForms/surroundingPairsDelimiters.ts
+++ b/packages/lib-engine/src/generateSpokenForm/defaultSpokenForms/surroundingPairsDelimiters.ts
@@ -1,4 +1,4 @@
-import type { SpeakableSurroundingPairName } from "@cursorless/common";
+import type { SpeakableSurroundingPairName } from "@cursorless/lib-common";
export const surroundingPairsDelimiters: Record<
SpeakableSurroundingPairName,
diff --git a/packages/lib-engine/src/generateSpokenForm/generateSpokenForm.test.ts b/packages/lib-engine/src/generateSpokenForm/generateSpokenForm.test.ts
index ee702a71cb..07d4703f16 100644
--- a/packages/lib-engine/src/generateSpokenForm/generateSpokenForm.test.ts
+++ b/packages/lib-engine/src/generateSpokenForm/generateSpokenForm.test.ts
@@ -1,5 +1,8 @@
-import type { TestCaseFixtureLegacy } from "@cursorless/common";
-import { serializeTestFixture, shouldUpdateFixtures } from "@cursorless/common";
+import type { TestCaseFixtureLegacy } from "@cursorless/lib-common";
+import {
+ serializeTestFixture,
+ shouldUpdateFixtures,
+} from "@cursorless/lib-common";
import { getRecordedTestPaths } from "@cursorless/node-common";
import * as yaml from "js-yaml";
import assert from "node:assert";
diff --git a/packages/lib-engine/src/generateSpokenForm/generateSpokenForm.ts b/packages/lib-engine/src/generateSpokenForm/generateSpokenForm.ts
index 001b2480b9..b1a8e9526c 100644
--- a/packages/lib-engine/src/generateSpokenForm/generateSpokenForm.ts
+++ b/packages/lib-engine/src/generateSpokenForm/generateSpokenForm.ts
@@ -8,8 +8,8 @@ import type {
SpokenForm,
SpokenFormMapKeyTypes,
SpokenFormType,
-} from "@cursorless/common";
-import { camelCaseToAllDown, DOCS_URL } from "@cursorless/common";
+} from "@cursorless/lib-common";
+import { camelCaseToAllDown, DOCS_URL } from "@cursorless/lib-common";
import type { SpokenFormMap } from "../spokenForms/SpokenFormMap";
import { NoSpokenFormError } from "./NoSpokenFormError";
import type { SpokenFormComponent } from "./SpokenFormComponent";
diff --git a/packages/lib-engine/src/generateSpokenForm/getHatMapCommand.ts b/packages/lib-engine/src/generateSpokenForm/getHatMapCommand.ts
index 527cba6e6e..57bfaade0a 100644
--- a/packages/lib-engine/src/generateSpokenForm/getHatMapCommand.ts
+++ b/packages/lib-engine/src/generateSpokenForm/getHatMapCommand.ts
@@ -1,8 +1,8 @@
import type {
CommandLatest,
PartialPrimitiveTargetDescriptor,
-} from "@cursorless/common";
-import { LATEST_VERSION, splitKey } from "@cursorless/common";
+} from "@cursorless/lib-common";
+import { LATEST_VERSION, splitKey } from "@cursorless/lib-common";
/**
* Constructs the command that would have been used as the second command when
diff --git a/packages/lib-engine/src/generateSpokenForm/getRangeConnective.ts b/packages/lib-engine/src/generateSpokenForm/getRangeConnective.ts
index 17bfd6be39..1b3764261b 100644
--- a/packages/lib-engine/src/generateSpokenForm/getRangeConnective.ts
+++ b/packages/lib-engine/src/generateSpokenForm/getRangeConnective.ts
@@ -1,4 +1,4 @@
-import type { PartialRangeType } from "@cursorless/common";
+import type { PartialRangeType } from "@cursorless/lib-common";
import { NoSpokenFormError } from "./NoSpokenFormError";
import { connectives } from "./defaultSpokenForms/connectives";
diff --git a/packages/lib-engine/src/generateSpokenForm/getSpokenFormComponentMap.ts b/packages/lib-engine/src/generateSpokenForm/getSpokenFormComponentMap.ts
index 735ecb8ed2..d13658264a 100644
--- a/packages/lib-engine/src/generateSpokenForm/getSpokenFormComponentMap.ts
+++ b/packages/lib-engine/src/generateSpokenForm/getSpokenFormComponentMap.ts
@@ -3,7 +3,7 @@ import type {
PartialSpokenFormTypes,
SpokenFormMapKeyTypes,
SpokenFormType,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import type { CustomizableSpokenFormComponentForType } from "./SpokenFormComponent";
/**
diff --git a/packages/lib-engine/src/generateSpokenForm/primitiveTargetToSpokenForm.ts b/packages/lib-engine/src/generateSpokenForm/primitiveTargetToSpokenForm.ts
index c27ba60061..6a9ab25a29 100644
--- a/packages/lib-engine/src/generateSpokenForm/primitiveTargetToSpokenForm.ts
+++ b/packages/lib-engine/src/generateSpokenForm/primitiveTargetToSpokenForm.ts
@@ -5,7 +5,7 @@ import type {
PartialPrimitiveTargetDescriptor,
RelativeScopeModifier,
ScopeType,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import { NoSpokenFormError } from "./NoSpokenFormError";
import { connectives } from "./defaultSpokenForms/connectives";
import {
diff --git a/packages/lib-engine/src/languages/LanguageDefinition.ts b/packages/lib-engine/src/languages/LanguageDefinition.ts
index 09949b8202..4cae8f01ac 100644
--- a/packages/lib-engine/src/languages/LanguageDefinition.ts
+++ b/packages/lib-engine/src/languages/LanguageDefinition.ts
@@ -5,8 +5,8 @@ import type {
SimpleScopeType,
TextDocument,
TreeSitter,
-} from "@cursorless/common";
-import { matchAll, showError } from "@cursorless/common";
+} from "@cursorless/lib-common";
+import { matchAll, showError } from "@cursorless/lib-common";
import { TreeSitterScopeHandler } from "../processTargets/modifiers/scopeHandlers";
import { TreeSitterQuery } from "./TreeSitterQuery";
import type { ScopeCaptureName } from "./TreeSitterQuery/captureNames";
diff --git a/packages/lib-engine/src/languages/LanguageDefinitions.ts b/packages/lib-engine/src/languages/LanguageDefinitions.ts
index 97af8664f0..8d64bb196c 100644
--- a/packages/lib-engine/src/languages/LanguageDefinitions.ts
+++ b/packages/lib-engine/src/languages/LanguageDefinitions.ts
@@ -4,8 +4,8 @@ import type {
Listener,
RawTreeSitterQueryProvider,
TreeSitter,
-} from "@cursorless/common";
-import { getErrorMessage, Notifier, showError } from "@cursorless/common";
+} from "@cursorless/lib-common";
+import { getErrorMessage, Notifier, showError } from "@cursorless/lib-common";
import { LanguageDefinition } from "./LanguageDefinition";
import { treeSitterQueryCache } from "./TreeSitterQuery/TreeSitterQueryCache";
diff --git a/packages/lib-engine/src/languages/TreeSitterQuery/QueryCapture.ts b/packages/lib-engine/src/languages/TreeSitterQuery/QueryCapture.ts
index 5d82a13cc4..f300792221 100644
--- a/packages/lib-engine/src/languages/TreeSitterQuery/QueryCapture.ts
+++ b/packages/lib-engine/src/languages/TreeSitterQuery/QueryCapture.ts
@@ -1,4 +1,4 @@
-import type { Range, TextDocument } from "@cursorless/common";
+import type { Range, TextDocument } from "@cursorless/lib-common";
import type { Node } from "web-tree-sitter";
/**
diff --git a/packages/lib-engine/src/languages/TreeSitterQuery/TreeSitterQuery.ts b/packages/lib-engine/src/languages/TreeSitterQuery/TreeSitterQuery.ts
index 8cffcfad0a..57318bc938 100644
--- a/packages/lib-engine/src/languages/TreeSitterQuery/TreeSitterQuery.ts
+++ b/packages/lib-engine/src/languages/TreeSitterQuery/TreeSitterQuery.ts
@@ -4,7 +4,7 @@ import type {
Position,
TextDocument,
TreeSitter,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import type * as treeSitter from "web-tree-sitter";
import type { ScopeCaptureName } from "./captureNames";
import {
diff --git a/packages/lib-engine/src/languages/TreeSitterQuery/TreeSitterQueryCache.ts b/packages/lib-engine/src/languages/TreeSitterQuery/TreeSitterQueryCache.ts
index 64732be00b..2e6a3023c1 100644
--- a/packages/lib-engine/src/languages/TreeSitterQuery/TreeSitterQueryCache.ts
+++ b/packages/lib-engine/src/languages/TreeSitterQuery/TreeSitterQueryCache.ts
@@ -1,4 +1,4 @@
-import type { Position, TextDocument } from "@cursorless/common";
+import type { Position, TextDocument } from "@cursorless/lib-common";
import type { QueryMatch } from "./QueryCapture";
import { setIsEqual } from "../../util/setIsEqual";
diff --git a/packages/lib-engine/src/languages/TreeSitterQuery/captureNames.ts b/packages/lib-engine/src/languages/TreeSitterQuery/captureNames.ts
index c388fb318e..990601f3ba 100644
--- a/packages/lib-engine/src/languages/TreeSitterQuery/captureNames.ts
+++ b/packages/lib-engine/src/languages/TreeSitterQuery/captureNames.ts
@@ -1,4 +1,4 @@
-import { pseudoScopes, simpleScopeTypeTypes } from "@cursorless/common";
+import { pseudoScopes, simpleScopeTypeTypes } from "@cursorless/lib-common";
const scopeCaptureNames = [
...simpleScopeTypeTypes.filter((s) => !pseudoScopes.has(s)),
diff --git a/packages/lib-engine/src/languages/TreeSitterQuery/checkCaptureStartEnd.test.ts b/packages/lib-engine/src/languages/TreeSitterQuery/checkCaptureStartEnd.test.ts
index f046096745..5f5f24d152 100644
--- a/packages/lib-engine/src/languages/TreeSitterQuery/checkCaptureStartEnd.test.ts
+++ b/packages/lib-engine/src/languages/TreeSitterQuery/checkCaptureStartEnd.test.ts
@@ -1,5 +1,5 @@
-import type { Messages } from "@cursorless/common";
-import { Range } from "@cursorless/common";
+import type { Messages } from "@cursorless/lib-common";
+import { Range } from "@cursorless/lib-common";
import type { QueryCapture } from "./QueryCapture";
import { checkCaptureStartEnd } from "./checkCaptureStartEnd";
import assert from "assert";
diff --git a/packages/lib-engine/src/languages/TreeSitterQuery/checkCaptureStartEnd.ts b/packages/lib-engine/src/languages/TreeSitterQuery/checkCaptureStartEnd.ts
index 540e936975..9e9626d9c2 100644
--- a/packages/lib-engine/src/languages/TreeSitterQuery/checkCaptureStartEnd.ts
+++ b/packages/lib-engine/src/languages/TreeSitterQuery/checkCaptureStartEnd.ts
@@ -1,5 +1,5 @@
-import type { Messages } from "@cursorless/common";
-import { showError } from "@cursorless/common";
+import type { Messages } from "@cursorless/lib-common";
+import { showError } from "@cursorless/lib-common";
import type { QueryCapture } from "./QueryCapture";
/**
diff --git a/packages/lib-engine/src/languages/TreeSitterQuery/getNodeRange.ts b/packages/lib-engine/src/languages/TreeSitterQuery/getNodeRange.ts
index 4b60532b0a..3e5d94ee56 100644
--- a/packages/lib-engine/src/languages/TreeSitterQuery/getNodeRange.ts
+++ b/packages/lib-engine/src/languages/TreeSitterQuery/getNodeRange.ts
@@ -1,4 +1,4 @@
-import { Range } from "@cursorless/common";
+import { Range } from "@cursorless/lib-common";
import type { Node } from "web-tree-sitter";
export function getNodeRange(node: Node) {
diff --git a/packages/lib-engine/src/languages/TreeSitterQuery/makeRangeFromPositions.ts b/packages/lib-engine/src/languages/TreeSitterQuery/makeRangeFromPositions.ts
index 461cdd0e62..1aae976ce5 100644
--- a/packages/lib-engine/src/languages/TreeSitterQuery/makeRangeFromPositions.ts
+++ b/packages/lib-engine/src/languages/TreeSitterQuery/makeRangeFromPositions.ts
@@ -1,4 +1,4 @@
-import { Range } from "@cursorless/common";
+import { Range } from "@cursorless/lib-common";
import type { Point } from "web-tree-sitter";
export function makeRangeFromPositions(
diff --git a/packages/lib-engine/src/languages/TreeSitterQuery/operatorArgumentSchemaTypes.ts b/packages/lib-engine/src/languages/TreeSitterQuery/operatorArgumentSchemaTypes.ts
index ee15b97b77..b0e1aea700 100644
--- a/packages/lib-engine/src/languages/TreeSitterQuery/operatorArgumentSchemaTypes.ts
+++ b/packages/lib-engine/src/languages/TreeSitterQuery/operatorArgumentSchemaTypes.ts
@@ -1,7 +1,7 @@
import { z } from "zod";
import { assertTypesEqual } from "./assertTypesEqual";
import type { PredicateStep } from "web-tree-sitter";
-import { stringToInteger } from "@cursorless/common";
+import { stringToInteger } from "@cursorless/lib-common";
const string = z.object({ type: z.literal("string"), value: z.string() });
diff --git a/packages/lib-engine/src/languages/TreeSitterQuery/parsePredicatesWithErrorHandling.ts b/packages/lib-engine/src/languages/TreeSitterQuery/parsePredicatesWithErrorHandling.ts
index a390154896..a5282f0e28 100644
--- a/packages/lib-engine/src/languages/TreeSitterQuery/parsePredicatesWithErrorHandling.ts
+++ b/packages/lib-engine/src/languages/TreeSitterQuery/parsePredicatesWithErrorHandling.ts
@@ -1,5 +1,5 @@
-import type { IDE } from "@cursorless/common";
-import { showError } from "@cursorless/common";
+import type { IDE } from "@cursorless/lib-common";
+import { showError } from "@cursorless/lib-common";
import type { Query } from "web-tree-sitter";
import { parsePredicates } from "./parsePredicates";
import { predicateToString } from "./predicateToString";
diff --git a/packages/lib-engine/src/languages/TreeSitterQuery/positionToPoint.ts b/packages/lib-engine/src/languages/TreeSitterQuery/positionToPoint.ts
index af5650a309..4d7c9975f0 100644
--- a/packages/lib-engine/src/languages/TreeSitterQuery/positionToPoint.ts
+++ b/packages/lib-engine/src/languages/TreeSitterQuery/positionToPoint.ts
@@ -1,4 +1,4 @@
-import type { Position } from "@cursorless/common";
+import type { Position } from "@cursorless/lib-common";
import type { Point } from "web-tree-sitter";
export function positionToPoint(start: Position): Point {
diff --git a/packages/lib-engine/src/languages/TreeSitterQuery/queryPredicateOperators.ts b/packages/lib-engine/src/languages/TreeSitterQuery/queryPredicateOperators.ts
index d2d54ffe3e..6d9023a8e3 100644
--- a/packages/lib-engine/src/languages/TreeSitterQuery/queryPredicateOperators.ts
+++ b/packages/lib-engine/src/languages/TreeSitterQuery/queryPredicateOperators.ts
@@ -1,4 +1,4 @@
-import { Position, Range, adjustPosition } from "@cursorless/common";
+import { Position, Range, adjustPosition } from "@cursorless/lib-common";
import type { Point } from "web-tree-sitter";
import { z } from "zod";
import { getNode } from "./getNode";
diff --git a/packages/lib-engine/src/languages/TreeSitterQuery/rewriteStartOfEndOf.test.ts b/packages/lib-engine/src/languages/TreeSitterQuery/rewriteStartOfEndOf.test.ts
index 12da3ccb6f..2b4897d9bb 100644
--- a/packages/lib-engine/src/languages/TreeSitterQuery/rewriteStartOfEndOf.test.ts
+++ b/packages/lib-engine/src/languages/TreeSitterQuery/rewriteStartOfEndOf.test.ts
@@ -1,4 +1,4 @@
-import { Range } from "@cursorless/common";
+import { Range } from "@cursorless/lib-common";
import assert from "assert";
import type { MutableQueryCapture, QueryCapture } from "./QueryCapture";
import {
diff --git a/packages/lib-engine/src/languages/TreeSitterQuery/rewriteStartOfEndOf.ts b/packages/lib-engine/src/languages/TreeSitterQuery/rewriteStartOfEndOf.ts
index d3b5a7a4af..8fc9aab47f 100644
--- a/packages/lib-engine/src/languages/TreeSitterQuery/rewriteStartOfEndOf.ts
+++ b/packages/lib-engine/src/languages/TreeSitterQuery/rewriteStartOfEndOf.ts
@@ -1,4 +1,4 @@
-import type { Range } from "@cursorless/common";
+import type { Range } from "@cursorless/lib-common";
import type { Node } from "web-tree-sitter";
import type { QueryCapture } from "./QueryCapture";
import {
diff --git a/packages/lib-engine/src/languages/TreeSitterQuery/setRange.ts b/packages/lib-engine/src/languages/TreeSitterQuery/setRange.ts
index d72d9bd5d9..7f4813186b 100644
--- a/packages/lib-engine/src/languages/TreeSitterQuery/setRange.ts
+++ b/packages/lib-engine/src/languages/TreeSitterQuery/setRange.ts
@@ -1,4 +1,4 @@
-import type { Range } from "@cursorless/common";
+import type { Range } from "@cursorless/lib-common";
import type { MutableQueryCapture } from "./QueryCapture";
export function setRange(capture: MutableQueryCapture, range: Range) {
diff --git a/packages/lib-engine/src/languages/TreeSitterQuery/validateQueryCaptures.test.ts b/packages/lib-engine/src/languages/TreeSitterQuery/validateQueryCaptures.test.ts
index c48b1054e2..b69626066f 100644
--- a/packages/lib-engine/src/languages/TreeSitterQuery/validateQueryCaptures.test.ts
+++ b/packages/lib-engine/src/languages/TreeSitterQuery/validateQueryCaptures.test.ts
@@ -1,4 +1,4 @@
-import { FakeIDE } from "@cursorless/common";
+import { FakeIDE } from "@cursorless/lib-common";
import assert from "assert";
import { validateQueryCaptures } from "./validateQueryCaptures";
diff --git a/packages/lib-engine/src/languages/TreeSitterQuery/validateQueryCaptures.ts b/packages/lib-engine/src/languages/TreeSitterQuery/validateQueryCaptures.ts
index 97f6e742f1..0ae2d75c4e 100644
--- a/packages/lib-engine/src/languages/TreeSitterQuery/validateQueryCaptures.ts
+++ b/packages/lib-engine/src/languages/TreeSitterQuery/validateQueryCaptures.ts
@@ -1,4 +1,4 @@
-import { showError, type IDE } from "@cursorless/common";
+import { showError, type IDE } from "@cursorless/lib-common";
import { isCaptureAllowed } from "./captureNames";
// Not a comment. ie line is not starting with `;;`
diff --git a/packages/lib-engine/src/processTargets/MarkStageFactoryImpl.ts b/packages/lib-engine/src/processTargets/MarkStageFactoryImpl.ts
index 321cda8bfc..83bc0fca78 100644
--- a/packages/lib-engine/src/processTargets/MarkStageFactoryImpl.ts
+++ b/packages/lib-engine/src/processTargets/MarkStageFactoryImpl.ts
@@ -1,4 +1,4 @@
-import type { IDE, ReadOnlyHatMap } from "@cursorless/common";
+import type { IDE, ReadOnlyHatMap } from "@cursorless/lib-common";
import type { TargetPipelineRunner } from ".";
import type { StoredTargetMap } from "..";
import type { Mark } from "../typings/TargetDescriptor";
diff --git a/packages/lib-engine/src/processTargets/ModifierStageFactory.ts b/packages/lib-engine/src/processTargets/ModifierStageFactory.ts
index 07184af532..e0ea848494 100644
--- a/packages/lib-engine/src/processTargets/ModifierStageFactory.ts
+++ b/packages/lib-engine/src/processTargets/ModifierStageFactory.ts
@@ -1,4 +1,4 @@
-import type { Modifier } from "@cursorless/common";
+import type { Modifier } from "@cursorless/lib-common";
import type { ModifierStage } from "./PipelineStages.types";
export interface ModifierStageFactory {
diff --git a/packages/lib-engine/src/processTargets/ModifierStageFactoryImpl.ts b/packages/lib-engine/src/processTargets/ModifierStageFactoryImpl.ts
index 12a9558133..ab6ade2553 100644
--- a/packages/lib-engine/src/processTargets/ModifierStageFactoryImpl.ts
+++ b/packages/lib-engine/src/processTargets/ModifierStageFactoryImpl.ts
@@ -1,4 +1,4 @@
-import type { Modifier } from "@cursorless/common";
+import type { Modifier } from "@cursorless/lib-common";
import type { StoredTargetMap } from "../core/StoredTargets";
import type { LanguageDefinitions } from "../languages/LanguageDefinitions";
import type { ModifierStageFactory } from "./ModifierStageFactory";
diff --git a/packages/lib-engine/src/processTargets/TargetPipelineRunner.ts b/packages/lib-engine/src/processTargets/TargetPipelineRunner.ts
index 8cc3a76433..3c8898fca0 100644
--- a/packages/lib-engine/src/processTargets/TargetPipelineRunner.ts
+++ b/packages/lib-engine/src/processTargets/TargetPipelineRunner.ts
@@ -4,8 +4,8 @@ import type {
ImplicitTargetDescriptor,
Modifier,
ScopeType,
-} from "@cursorless/common";
-import { Range, uniqWithHash } from "@cursorless/common";
+} from "@cursorless/lib-common";
+import { Range, uniqWithHash } from "@cursorless/lib-common";
import { zip } from "lodash-es";
import type {
PrimitiveTargetDescriptor,
diff --git a/packages/lib-engine/src/processTargets/marks/CursorStage.ts b/packages/lib-engine/src/processTargets/marks/CursorStage.ts
index d1517f5705..3ea594651c 100644
--- a/packages/lib-engine/src/processTargets/marks/CursorStage.ts
+++ b/packages/lib-engine/src/processTargets/marks/CursorStage.ts
@@ -1,4 +1,4 @@
-import type { IDE } from "@cursorless/common";
+import type { IDE } from "@cursorless/lib-common";
import type { Target } from "../../typings/target.types";
import type { MarkStage } from "../PipelineStages.types";
import { UntypedTarget } from "../targets";
diff --git a/packages/lib-engine/src/processTargets/marks/DecoratedSymbolStage.ts b/packages/lib-engine/src/processTargets/marks/DecoratedSymbolStage.ts
index 313dadb8af..2f5c18cc68 100644
--- a/packages/lib-engine/src/processTargets/marks/DecoratedSymbolStage.ts
+++ b/packages/lib-engine/src/processTargets/marks/DecoratedSymbolStage.ts
@@ -1,4 +1,7 @@
-import type { DecoratedSymbolMark, ReadOnlyHatMap } from "@cursorless/common";
+import type {
+ DecoratedSymbolMark,
+ ReadOnlyHatMap,
+} from "@cursorless/lib-common";
import type { Target } from "../../typings/target.types";
import type { MarkStage } from "../PipelineStages.types";
import { UntypedTarget } from "../targets";
diff --git a/packages/lib-engine/src/processTargets/marks/ExplicitMarkStage.ts b/packages/lib-engine/src/processTargets/marks/ExplicitMarkStage.ts
index 4dffc7b492..f13e2687b9 100644
--- a/packages/lib-engine/src/processTargets/marks/ExplicitMarkStage.ts
+++ b/packages/lib-engine/src/processTargets/marks/ExplicitMarkStage.ts
@@ -1,5 +1,5 @@
-import type { ExplicitMark, IDE } from "@cursorless/common";
-import { Range } from "@cursorless/common";
+import type { ExplicitMark, IDE } from "@cursorless/lib-common";
+import { Range } from "@cursorless/lib-common";
import type { Target } from "../../typings/target.types";
import type { MarkStage } from "../PipelineStages.types";
import { UntypedTarget } from "../targets";
diff --git a/packages/lib-engine/src/processTargets/marks/ImplicitStage.ts b/packages/lib-engine/src/processTargets/marks/ImplicitStage.ts
index 1a2175aab4..46b33cdac8 100644
--- a/packages/lib-engine/src/processTargets/marks/ImplicitStage.ts
+++ b/packages/lib-engine/src/processTargets/marks/ImplicitStage.ts
@@ -1,4 +1,4 @@
-import type { IDE } from "@cursorless/common";
+import type { IDE } from "@cursorless/lib-common";
import type { Target } from "../../typings/target.types";
import type { MarkStage } from "../PipelineStages.types";
import { ImplicitTarget } from "../targets";
diff --git a/packages/lib-engine/src/processTargets/marks/LineNumberStage.ts b/packages/lib-engine/src/processTargets/marks/LineNumberStage.ts
index 3b7a3b92d6..817f72ad58 100644
--- a/packages/lib-engine/src/processTargets/marks/LineNumberStage.ts
+++ b/packages/lib-engine/src/processTargets/marks/LineNumberStage.ts
@@ -3,7 +3,7 @@ import type {
LineNumberMark,
LineNumberType,
TextEditor,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import type { MarkStage } from "../PipelineStages.types";
import type { LineTarget } from "../targets";
import { createLineTarget } from "../targets";
diff --git a/packages/lib-engine/src/processTargets/marks/NothingStage.ts b/packages/lib-engine/src/processTargets/marks/NothingStage.ts
index 69f8d841f2..1bd9b46d1d 100644
--- a/packages/lib-engine/src/processTargets/marks/NothingStage.ts
+++ b/packages/lib-engine/src/processTargets/marks/NothingStage.ts
@@ -1,5 +1,5 @@
import type { Target } from "../../typings/target.types";
-import type { NothingMark } from "@cursorless/common";
+import type { NothingMark } from "@cursorless/lib-common";
import type { MarkStage } from "../PipelineStages.types";
export class NothingStage implements MarkStage {
diff --git a/packages/lib-engine/src/processTargets/marks/StoredTargetStage.ts b/packages/lib-engine/src/processTargets/marks/StoredTargetStage.ts
index 1675ed5ad3..048c9269f1 100644
--- a/packages/lib-engine/src/processTargets/marks/StoredTargetStage.ts
+++ b/packages/lib-engine/src/processTargets/marks/StoredTargetStage.ts
@@ -1,4 +1,4 @@
-import type { StoredTargetKey } from "@cursorless/common";
+import type { StoredTargetKey } from "@cursorless/lib-common";
import type { StoredTargetMap } from "../../core/StoredTargets";
import type { Target } from "../../typings/target.types";
import type { MarkStage } from "../PipelineStages.types";
diff --git a/packages/lib-engine/src/processTargets/marks/getActiveSelections.ts b/packages/lib-engine/src/processTargets/marks/getActiveSelections.ts
index a15b959214..2ff2d936cc 100644
--- a/packages/lib-engine/src/processTargets/marks/getActiveSelections.ts
+++ b/packages/lib-engine/src/processTargets/marks/getActiveSelections.ts
@@ -1,4 +1,4 @@
-import type { IDE } from "@cursorless/common";
+import type { IDE } from "@cursorless/lib-common";
export function getActiveSelections(ide: IDE) {
return (
diff --git a/packages/lib-engine/src/processTargets/modifiers/BoundaryStage.ts b/packages/lib-engine/src/processTargets/modifiers/BoundaryStage.ts
index e29bb975b5..06a7e2464b 100644
--- a/packages/lib-engine/src/processTargets/modifiers/BoundaryStage.ts
+++ b/packages/lib-engine/src/processTargets/modifiers/BoundaryStage.ts
@@ -1,4 +1,4 @@
-import { type ExcludeInteriorModifier } from "@cursorless/common";
+import { type ExcludeInteriorModifier } from "@cursorless/lib-common";
import type { Target } from "../../typings/target.types";
import type { ModifierStageFactory } from "../ModifierStageFactory";
import type {
diff --git a/packages/lib-engine/src/processTargets/modifiers/ClassFunctionNameStage.ts b/packages/lib-engine/src/processTargets/modifiers/ClassFunctionNameStage.ts
index 28e62dc282..54841b149e 100644
--- a/packages/lib-engine/src/processTargets/modifiers/ClassFunctionNameStage.ts
+++ b/packages/lib-engine/src/processTargets/modifiers/ClassFunctionNameStage.ts
@@ -5,7 +5,7 @@ import type {
PreferredScopeModifier,
RelativeScopeModifier,
ScopeType,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import type { Target } from "../../typings/target.types";
import type { ModifierStageFactory } from "../ModifierStageFactory";
import type {
diff --git a/packages/lib-engine/src/processTargets/modifiers/ConditionalModifierStages.ts b/packages/lib-engine/src/processTargets/modifiers/ConditionalModifierStages.ts
index a3bdc7e205..dc602799ed 100644
--- a/packages/lib-engine/src/processTargets/modifiers/ConditionalModifierStages.ts
+++ b/packages/lib-engine/src/processTargets/modifiers/ConditionalModifierStages.ts
@@ -1,4 +1,4 @@
-import type { Modifier, ModifyIfUntypedModifier } from "@cursorless/common";
+import type { Modifier, ModifyIfUntypedModifier } from "@cursorless/lib-common";
import type { Target } from "../../typings/target.types";
import type { ModifierStageFactory } from "../ModifierStageFactory";
import type {
diff --git a/packages/lib-engine/src/processTargets/modifiers/ContainingScopeStage.ts b/packages/lib-engine/src/processTargets/modifiers/ContainingScopeStage.ts
index 23c23bf2f0..fd3b7a3f46 100644
--- a/packages/lib-engine/src/processTargets/modifiers/ContainingScopeStage.ts
+++ b/packages/lib-engine/src/processTargets/modifiers/ContainingScopeStage.ts
@@ -1,5 +1,5 @@
-import type { ContainingScopeModifier } from "@cursorless/common";
-import { NoContainingScopeError } from "@cursorless/common";
+import type { ContainingScopeModifier } from "@cursorless/lib-common";
+import { NoContainingScopeError } from "@cursorless/lib-common";
import type { Target } from "../../typings/target.types";
import type { ModifierStageFactory } from "../ModifierStageFactory";
import type { ModifierStage } from "../PipelineStages.types";
diff --git a/packages/lib-engine/src/processTargets/modifiers/EveryScopeStage.ts b/packages/lib-engine/src/processTargets/modifiers/EveryScopeStage.ts
index 6033a39001..05cd3277b4 100644
--- a/packages/lib-engine/src/processTargets/modifiers/EveryScopeStage.ts
+++ b/packages/lib-engine/src/processTargets/modifiers/EveryScopeStage.ts
@@ -1,5 +1,9 @@
-import type { EveryScopeModifier, Range, TextEditor } from "@cursorless/common";
-import { NoContainingScopeError } from "@cursorless/common";
+import type {
+ EveryScopeModifier,
+ Range,
+ TextEditor,
+} from "@cursorless/lib-common";
+import { NoContainingScopeError } from "@cursorless/lib-common";
import type { Target } from "../../typings/target.types";
import type { ModifierStageFactory } from "../ModifierStageFactory";
import type {
diff --git a/packages/lib-engine/src/processTargets/modifiers/FallbackStage.ts b/packages/lib-engine/src/processTargets/modifiers/FallbackStage.ts
index aae9266d6b..d61aa86429 100644
--- a/packages/lib-engine/src/processTargets/modifiers/FallbackStage.ts
+++ b/packages/lib-engine/src/processTargets/modifiers/FallbackStage.ts
@@ -1,4 +1,4 @@
-import type { FallbackModifier } from "@cursorless/common";
+import type { FallbackModifier } from "@cursorless/lib-common";
import type { Target } from "../../typings/target.types";
import type { ModifierStageFactory } from "../ModifierStageFactory";
import type {
diff --git a/packages/lib-engine/src/processTargets/modifiers/FilterStages.ts b/packages/lib-engine/src/processTargets/modifiers/FilterStages.ts
index 9d4e175c40..eceae4f433 100644
--- a/packages/lib-engine/src/processTargets/modifiers/FilterStages.ts
+++ b/packages/lib-engine/src/processTargets/modifiers/FilterStages.ts
@@ -2,7 +2,7 @@ import type { Target } from "../../typings/target.types";
import type {
KeepContentFilterModifier,
KeepEmptyFilterModifier,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import type { ModifierStage } from "../PipelineStages.types";
export class KeepContentFilterStage implements ModifierStage {
diff --git a/packages/lib-engine/src/processTargets/modifiers/HeadTailStage.ts b/packages/lib-engine/src/processTargets/modifiers/HeadTailStage.ts
index 8d41f1b9bf..f1a0b72308 100644
--- a/packages/lib-engine/src/processTargets/modifiers/HeadTailStage.ts
+++ b/packages/lib-engine/src/processTargets/modifiers/HeadTailStage.ts
@@ -3,7 +3,7 @@ import {
type HeadModifier,
type Modifier,
type TailModifier,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import type { Target } from "../../typings/target.types";
import type { ModifierStageFactory } from "../ModifierStageFactory";
import type {
diff --git a/packages/lib-engine/src/processTargets/modifiers/InstanceStage.ts b/packages/lib-engine/src/processTargets/modifiers/InstanceStage.ts
index 14956c1360..b00ea4a0b0 100644
--- a/packages/lib-engine/src/processTargets/modifiers/InstanceStage.ts
+++ b/packages/lib-engine/src/processTargets/modifiers/InstanceStage.ts
@@ -5,8 +5,8 @@ import type {
RelativeScopeModifier,
ScopeType,
TextEditor,
-} from "@cursorless/common";
-import { Range } from "@cursorless/common";
+} from "@cursorless/lib-common";
+import { Range } from "@cursorless/lib-common";
import { flatmap, ifilter, imap, itake } from "itertools";
import { escapeRegExp } from "lodash-es";
import type { StoredTargetMap } from "../..";
diff --git a/packages/lib-engine/src/processTargets/modifiers/InteriorStage.ts b/packages/lib-engine/src/processTargets/modifiers/InteriorStage.ts
index 33bbc4d026..4fef6dcc48 100644
--- a/packages/lib-engine/src/processTargets/modifiers/InteriorStage.ts
+++ b/packages/lib-engine/src/processTargets/modifiers/InteriorStage.ts
@@ -1,8 +1,8 @@
-import type { InteriorOnlyModifier, ScopeType } from "@cursorless/common";
+import type { InteriorOnlyModifier, ScopeType } from "@cursorless/lib-common";
import {
NoContainingScopeError,
UnsupportedScopeError,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import type { Target } from "../../typings/target.types";
import type { ModifierStageFactory } from "../ModifierStageFactory";
import type {
diff --git a/packages/lib-engine/src/processTargets/modifiers/LeadingTrailingStages.ts b/packages/lib-engine/src/processTargets/modifiers/LeadingTrailingStages.ts
index f4578a1eb5..41ae1cd9ca 100644
--- a/packages/lib-engine/src/processTargets/modifiers/LeadingTrailingStages.ts
+++ b/packages/lib-engine/src/processTargets/modifiers/LeadingTrailingStages.ts
@@ -1,4 +1,4 @@
-import type { LeadingModifier, TrailingModifier } from "@cursorless/common";
+import type { LeadingModifier, TrailingModifier } from "@cursorless/lib-common";
import type { Target } from "../../typings/target.types";
import type { ModifierStageFactory } from "../ModifierStageFactory";
import type {
diff --git a/packages/lib-engine/src/processTargets/modifiers/OrdinalScopeStage.ts b/packages/lib-engine/src/processTargets/modifiers/OrdinalScopeStage.ts
index f1ddc58d36..ca9c5f00a2 100644
--- a/packages/lib-engine/src/processTargets/modifiers/OrdinalScopeStage.ts
+++ b/packages/lib-engine/src/processTargets/modifiers/OrdinalScopeStage.ts
@@ -1,4 +1,4 @@
-import type { OrdinalScopeModifier } from "@cursorless/common";
+import type { OrdinalScopeModifier } from "@cursorless/lib-common";
import type { Target } from "../../typings/target.types";
import type { ModifierStageFactory } from "../ModifierStageFactory";
import type {
diff --git a/packages/lib-engine/src/processTargets/modifiers/PositionStage.ts b/packages/lib-engine/src/processTargets/modifiers/PositionStage.ts
index 07bd43c0bd..f17b41337d 100644
--- a/packages/lib-engine/src/processTargets/modifiers/PositionStage.ts
+++ b/packages/lib-engine/src/processTargets/modifiers/PositionStage.ts
@@ -1,4 +1,4 @@
-import type { Range } from "@cursorless/common";
+import type { Range } from "@cursorless/lib-common";
import type { Target } from "../../typings/target.types";
import type { ModifierStage } from "../PipelineStages.types";
import type { CommonTargetParameters } from "../targets";
diff --git a/packages/lib-engine/src/processTargets/modifiers/PreferredScopeStage.ts b/packages/lib-engine/src/processTargets/modifiers/PreferredScopeStage.ts
index 488c87c471..9e1296e8db 100644
--- a/packages/lib-engine/src/processTargets/modifiers/PreferredScopeStage.ts
+++ b/packages/lib-engine/src/processTargets/modifiers/PreferredScopeStage.ts
@@ -1,5 +1,5 @@
-import type { Position, PreferredScopeModifier } from "@cursorless/common";
-import { NoContainingScopeError } from "@cursorless/common";
+import type { Position, PreferredScopeModifier } from "@cursorless/lib-common";
+import { NoContainingScopeError } from "@cursorless/lib-common";
import type { Target } from "../../typings/target.types";
import type { ModifierStageFactory } from "../ModifierStageFactory";
import type { ModifierStage } from "../PipelineStages.types";
diff --git a/packages/lib-engine/src/processTargets/modifiers/RangeModifierStage.ts b/packages/lib-engine/src/processTargets/modifiers/RangeModifierStage.ts
index ebfdfaedab..5678505729 100644
--- a/packages/lib-engine/src/processTargets/modifiers/RangeModifierStage.ts
+++ b/packages/lib-engine/src/processTargets/modifiers/RangeModifierStage.ts
@@ -1,4 +1,4 @@
-import type { RangeModifier } from "@cursorless/common";
+import type { RangeModifier } from "@cursorless/lib-common";
import type { Target } from "../../typings/target.types";
import type { ModifierStageFactory } from "../ModifierStageFactory";
import type {
diff --git a/packages/lib-engine/src/processTargets/modifiers/RawSelectionStage.ts b/packages/lib-engine/src/processTargets/modifiers/RawSelectionStage.ts
index 8e81a3ca88..3b4984c61c 100644
--- a/packages/lib-engine/src/processTargets/modifiers/RawSelectionStage.ts
+++ b/packages/lib-engine/src/processTargets/modifiers/RawSelectionStage.ts
@@ -1,5 +1,5 @@
import type { Target } from "../../typings/target.types";
-import type { RawSelectionModifier } from "@cursorless/common";
+import type { RawSelectionModifier } from "@cursorless/lib-common";
import type { ModifierStage } from "../PipelineStages.types";
import { RawSelectionTarget } from "../targets";
diff --git a/packages/lib-engine/src/processTargets/modifiers/RelativeScopeStage.ts b/packages/lib-engine/src/processTargets/modifiers/RelativeScopeStage.ts
index 27f09074e3..1b5aa90fe2 100644
--- a/packages/lib-engine/src/processTargets/modifiers/RelativeScopeStage.ts
+++ b/packages/lib-engine/src/processTargets/modifiers/RelativeScopeStage.ts
@@ -4,8 +4,8 @@ import type {
Range,
RelativeScopeModifier,
TextEditor,
-} from "@cursorless/common";
-import { NoContainingScopeError } from "@cursorless/common";
+} from "@cursorless/lib-common";
+import { NoContainingScopeError } from "@cursorless/lib-common";
import { find, ifilter, islice, itake } from "itertools";
import type { Target } from "../../typings/target.types";
import type { ModifierStage } from "../PipelineStages.types";
diff --git a/packages/lib-engine/src/processTargets/modifiers/VisibleStage.ts b/packages/lib-engine/src/processTargets/modifiers/VisibleStage.ts
index da226fde94..7b811c4afc 100644
--- a/packages/lib-engine/src/processTargets/modifiers/VisibleStage.ts
+++ b/packages/lib-engine/src/processTargets/modifiers/VisibleStage.ts
@@ -1,4 +1,4 @@
-import type { VisibleModifier } from "@cursorless/common";
+import type { VisibleModifier } from "@cursorless/lib-common";
import type { Target } from "../../typings/target.types";
import type { ModifierStage } from "../PipelineStages.types";
import { PlainTarget } from "../targets";
diff --git a/packages/lib-engine/src/processTargets/modifiers/commonContainingScopeIfUntypedModifiers.ts b/packages/lib-engine/src/processTargets/modifiers/commonContainingScopeIfUntypedModifiers.ts
index f54f7f99ba..d0ef3f63c2 100644
--- a/packages/lib-engine/src/processTargets/modifiers/commonContainingScopeIfUntypedModifiers.ts
+++ b/packages/lib-engine/src/processTargets/modifiers/commonContainingScopeIfUntypedModifiers.ts
@@ -1,4 +1,4 @@
-import type { Modifier } from "@cursorless/common";
+import type { Modifier } from "@cursorless/lib-common";
// NB: We import `Target` below just so that @link below resolves. Once one of
// the following issues are fixed, we can either remove the above line or
// switch to `{import("foo")}` syntax in the `{@link}` tag.
diff --git a/packages/lib-engine/src/processTargets/modifiers/getContainingScopeTarget.ts b/packages/lib-engine/src/processTargets/modifiers/getContainingScopeTarget.ts
index ffa852105b..81fa068018 100644
--- a/packages/lib-engine/src/processTargets/modifiers/getContainingScopeTarget.ts
+++ b/packages/lib-engine/src/processTargets/modifiers/getContainingScopeTarget.ts
@@ -1,4 +1,4 @@
-import type { Direction, Position, TextEditor } from "@cursorless/common";
+import type { Direction, Position, TextEditor } from "@cursorless/lib-common";
import type { Target } from "../../typings/target.types";
import { constructScopeRangeTarget } from "./constructScopeRangeTarget";
import type { TargetScope } from "./scopeHandlers/scope.types";
diff --git a/packages/lib-engine/src/processTargets/modifiers/getPreferredScopeTouchingPosition.ts b/packages/lib-engine/src/processTargets/modifiers/getPreferredScopeTouchingPosition.ts
index 40871e41ca..9636dff2b9 100644
--- a/packages/lib-engine/src/processTargets/modifiers/getPreferredScopeTouchingPosition.ts
+++ b/packages/lib-engine/src/processTargets/modifiers/getPreferredScopeTouchingPosition.ts
@@ -1,4 +1,4 @@
-import type { Direction, Position, TextEditor } from "@cursorless/common";
+import type { Direction, Position, TextEditor } from "@cursorless/lib-common";
import type { TargetScope } from "./scopeHandlers/scope.types";
import type { ScopeHandler } from "./scopeHandlers/scopeHandler.types";
diff --git a/packages/lib-engine/src/processTargets/modifiers/listUtils.ts b/packages/lib-engine/src/processTargets/modifiers/listUtils.ts
index 8a243f652f..da2b0aabab 100644
--- a/packages/lib-engine/src/processTargets/modifiers/listUtils.ts
+++ b/packages/lib-engine/src/processTargets/modifiers/listUtils.ts
@@ -1,4 +1,4 @@
-import type { ScopeType } from "@cursorless/common";
+import type { ScopeType } from "@cursorless/lib-common";
export class OutOfRangeError extends Error {
constructor(scopeType: ScopeType, index?: number) {
diff --git a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/BaseScopeHandler.test.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/BaseScopeHandler.test.ts
index 113d063f96..7b6ffdd4dc 100644
--- a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/BaseScopeHandler.test.ts
+++ b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/BaseScopeHandler.test.ts
@@ -1,5 +1,5 @@
-import type { TextEditor, Direction } from "@cursorless/common";
-import { Position, Range } from "@cursorless/common";
+import type { TextEditor, Direction } from "@cursorless/lib-common";
+import { Position, Range } from "@cursorless/lib-common";
import { BaseScopeHandler } from "./BaseScopeHandler";
import type { TargetScope } from "./scope.types";
import type {
diff --git a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/BaseScopeHandler.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/BaseScopeHandler.ts
index b6f51782ac..138b75e615 100644
--- a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/BaseScopeHandler.ts
+++ b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/BaseScopeHandler.ts
@@ -3,7 +3,7 @@ import type {
Position,
ScopeType,
TextEditor,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import type { TargetScope } from "./scope.types";
import type {
ComplexScopeType,
diff --git a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/BoundedScopeHandler.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/BoundedScopeHandler.ts
index f11d2e8849..3e3ed5d407 100644
--- a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/BoundedScopeHandler.ts
+++ b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/BoundedScopeHandler.ts
@@ -3,7 +3,7 @@ import type {
Position,
ScopeType,
TextEditor,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import type { Target } from "../../../typings/target.types";
import type { InteriorTarget } from "../../targets";
import {
diff --git a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/CharacterScopeHandler.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/CharacterScopeHandler.ts
index 23a9fbda8d..3c3b1d9a81 100644
--- a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/CharacterScopeHandler.ts
+++ b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/CharacterScopeHandler.ts
@@ -1,4 +1,4 @@
-import type { Direction, IDE, ScopeType } from "@cursorless/common";
+import type { Direction, IDE, ScopeType } from "@cursorless/lib-common";
import { imap } from "itertools";
import { getMatcher } from "../../../tokenizer";
import { generateMatchesInRange } from "../../../util/getMatchesInRange";
diff --git a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/CollectionItemScopeHandler/CollectionItemScopeHandler.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/CollectionItemScopeHandler/CollectionItemScopeHandler.ts
index f8595beea6..b3bfa3bc2f 100644
--- a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/CollectionItemScopeHandler/CollectionItemScopeHandler.ts
+++ b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/CollectionItemScopeHandler/CollectionItemScopeHandler.ts
@@ -3,7 +3,7 @@ import type {
Position,
ScopeType,
TextEditor,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import type { LanguageDefinitions } from "../../../../languages/LanguageDefinitions";
import { BaseScopeHandler } from "../BaseScopeHandler";
import { SortedScopeHandler } from "../SortedScopeHandler";
diff --git a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/CollectionItemScopeHandler/CollectionItemTextualScopeHandler.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/CollectionItemScopeHandler/CollectionItemTextualScopeHandler.ts
index 5bb3625dac..f5162ecbba 100644
--- a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/CollectionItemScopeHandler/CollectionItemTextualScopeHandler.ts
+++ b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/CollectionItemScopeHandler/CollectionItemTextualScopeHandler.ts
@@ -3,8 +3,8 @@ import type {
Position,
ScopeType,
TextEditor,
-} from "@cursorless/common";
-import { Range } from "@cursorless/common";
+} from "@cursorless/lib-common";
+import { Range } from "@cursorless/lib-common";
import { shrinkRangeToFitContent } from "../../../../util/selectionUtils";
import { BaseScopeHandler } from "../BaseScopeHandler";
import { compareTargetScopes } from "../compareTargetScopes";
diff --git a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/CollectionItemScopeHandler/collectionItemTextualIterationScopeHandler.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/CollectionItemScopeHandler/collectionItemTextualIterationScopeHandler.ts
index d570a7c7ae..555a629de3 100644
--- a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/CollectionItemScopeHandler/collectionItemTextualIterationScopeHandler.ts
+++ b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/CollectionItemScopeHandler/collectionItemTextualIterationScopeHandler.ts
@@ -1,4 +1,4 @@
-import { testRegex } from "@cursorless/common";
+import { testRegex } from "@cursorless/lib-common";
import type { ComplexScopeType } from "../scopeHandler.types";
import { separatorRegex } from "./getSeparatorOccurrences";
diff --git a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/CollectionItemScopeHandler/createTargetScope.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/CollectionItemScopeHandler/createTargetScope.ts
index f6e4a550c8..085a3b5a11 100644
--- a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/CollectionItemScopeHandler/createTargetScope.ts
+++ b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/CollectionItemScopeHandler/createTargetScope.ts
@@ -1,5 +1,5 @@
-import type { TextEditor } from "@cursorless/common";
-import { Range } from "@cursorless/common";
+import type { TextEditor } from "@cursorless/lib-common";
+import { Range } from "@cursorless/lib-common";
import { ScopeTypeTarget } from "../../../targets";
import type { TargetScope } from "../scope.types";
import { getCollectionItemRemovalRange } from "../util/getCollectionItemRemovalRange";
diff --git a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/CollectionItemScopeHandler/getInteriorRanges.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/CollectionItemScopeHandler/getInteriorRanges.ts
index fbd7a76324..e4d7944f1e 100644
--- a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/CollectionItemScopeHandler/getInteriorRanges.ts
+++ b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/CollectionItemScopeHandler/getInteriorRanges.ts
@@ -3,7 +3,7 @@ import {
type SurroundingPairName,
type TextEditor,
Position,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import type { ScopeHandlerFactory } from "../ScopeHandlerFactory";
export function getInteriorRanges(
diff --git a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/CollectionItemScopeHandler/getSeparatorOccurrences.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/CollectionItemScopeHandler/getSeparatorOccurrences.ts
index 7ce907aeff..246583816c 100644
--- a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/CollectionItemScopeHandler/getSeparatorOccurrences.ts
+++ b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/CollectionItemScopeHandler/getSeparatorOccurrences.ts
@@ -1,5 +1,5 @@
-import type { TextDocument } from "@cursorless/common";
-import { matchAll, Range } from "@cursorless/common";
+import type { TextDocument } from "@cursorless/lib-common";
+import { matchAll, Range } from "@cursorless/lib-common";
const separator = ",";
diff --git a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/ConditionalScopeHandler.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/ConditionalScopeHandler.ts
index 139f749626..d50b0312f5 100644
--- a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/ConditionalScopeHandler.ts
+++ b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/ConditionalScopeHandler.ts
@@ -4,7 +4,7 @@ import {
type Position,
type ScopeType,
type TextEditor,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import { ifilter } from "itertools";
import { BaseScopeHandler } from "./BaseScopeHandler";
import type { TargetScope } from "./scope.types";
diff --git a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/DocumentScopeHandler.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/DocumentScopeHandler.ts
index 37ff1906a5..f7450f073a 100644
--- a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/DocumentScopeHandler.ts
+++ b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/DocumentScopeHandler.ts
@@ -3,7 +3,7 @@ import type {
Position,
ScopeType,
TextEditor,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import { DocumentTarget } from "../../targets";
import { BaseScopeHandler } from "./BaseScopeHandler";
import type { TargetScope } from "./scope.types";
diff --git a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/FallbackScopeHandler.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/FallbackScopeHandler.ts
index daabcd8dc0..d9bc38fa4f 100644
--- a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/FallbackScopeHandler.ts
+++ b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/FallbackScopeHandler.ts
@@ -4,7 +4,7 @@ import {
type Position,
type ScopeType,
type TextEditor,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import { BaseScopeHandler } from "./BaseScopeHandler";
import type { ScopeHandlerFactory } from "./ScopeHandlerFactory";
import type { TargetScope } from "./scope.types";
diff --git a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/IdentifierScopeHandler.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/IdentifierScopeHandler.ts
index 6152984a0e..c941888b50 100644
--- a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/IdentifierScopeHandler.ts
+++ b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/IdentifierScopeHandler.ts
@@ -1,4 +1,4 @@
-import type { Direction, IDE, ScopeType } from "@cursorless/common";
+import type { Direction, IDE, ScopeType } from "@cursorless/lib-common";
import { imap } from "itertools";
import { getMatcher } from "../../../tokenizer";
import { generateMatchesInRange } from "../../../util/getMatchesInRange";
diff --git a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/LineScopeHandler.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/LineScopeHandler.ts
index eae2fd0536..6deb574d82 100644
--- a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/LineScopeHandler.ts
+++ b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/LineScopeHandler.ts
@@ -3,7 +3,7 @@ import type {
Position,
ScopeType,
TextEditor,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import { createLineTarget } from "../../targets";
import { BaseScopeHandler } from "./BaseScopeHandler";
import type { TargetScope } from "./scope.types";
diff --git a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/NestedScopeHandler.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/NestedScopeHandler.ts
index 90e6ac1fa9..4f47cc574a 100644
--- a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/NestedScopeHandler.ts
+++ b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/NestedScopeHandler.ts
@@ -3,7 +3,7 @@ import type {
Position,
ScopeType,
TextEditor,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import { flatmap } from "itertools";
import { BaseScopeHandler } from "./BaseScopeHandler";
import type { ScopeHandlerFactory } from "./ScopeHandlerFactory";
diff --git a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/NotHierarchicalScopeError.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/NotHierarchicalScopeError.ts
index c3858b16ef..677883d958 100644
--- a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/NotHierarchicalScopeError.ts
+++ b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/NotHierarchicalScopeError.ts
@@ -1,4 +1,4 @@
-import type { ScopeType } from "@cursorless/common";
+import type { ScopeType } from "@cursorless/lib-common";
import { scopeTypeToString } from "./scopeTypeUtil";
/**
diff --git a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/NotebookCellApiScopeHandler.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/NotebookCellApiScopeHandler.ts
index f6be678b23..0b2e2347a9 100644
--- a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/NotebookCellApiScopeHandler.ts
+++ b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/NotebookCellApiScopeHandler.ts
@@ -4,8 +4,8 @@ import type {
NotebookCell,
Position,
TextEditor,
-} from "@cursorless/common";
-import { Range } from "@cursorless/common";
+} from "@cursorless/lib-common";
+import { Range } from "@cursorless/lib-common";
import { NotebookCellTarget } from "../../targets";
import { BaseScopeHandler } from "./BaseScopeHandler";
import type { TargetScope } from "./scope.types";
diff --git a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/NotebookCellScopeHandler.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/NotebookCellScopeHandler.ts
index b8b3b75aa4..ce13253aa3 100644
--- a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/NotebookCellScopeHandler.ts
+++ b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/NotebookCellScopeHandler.ts
@@ -4,7 +4,7 @@ import {
type Position,
type ScopeType,
type TextEditor,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import type { LanguageDefinitions } from "../../../languages/LanguageDefinitions";
import { BaseScopeHandler } from "./BaseScopeHandler";
import { NotebookCellApiScopeHandler } from "./NotebookCellApiScopeHandler";
diff --git a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/ParagraphScopeHandler.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/ParagraphScopeHandler.ts
index 6da0f0a55f..c7481a80d3 100644
--- a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/ParagraphScopeHandler.ts
+++ b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/ParagraphScopeHandler.ts
@@ -5,8 +5,8 @@ import type {
TextDocument,
TextEditor,
TextLine,
-} from "@cursorless/common";
-import { Range } from "@cursorless/common";
+} from "@cursorless/lib-common";
+import { Range } from "@cursorless/lib-common";
import { ParagraphTarget } from "../../targets";
import { BaseScopeHandler } from "./BaseScopeHandler";
import type { TargetScope } from "./scope.types";
diff --git a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/RegexScopeHandler.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/RegexScopeHandler.ts
index a5f3cd07de..818e25860d 100644
--- a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/RegexScopeHandler.ts
+++ b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/RegexScopeHandler.ts
@@ -3,7 +3,7 @@ import type {
Direction,
GlyphScopeType,
ScopeType,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import { imap } from "itertools";
import { escapeRegExp } from "lodash-es";
import { NestedScopeHandler } from "./NestedScopeHandler";
diff --git a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/ScopeHandlerCache.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/ScopeHandlerCache.ts
index c6a1f98b43..6b4b886e8f 100644
--- a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/ScopeHandlerCache.ts
+++ b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/ScopeHandlerCache.ts
@@ -1,4 +1,4 @@
-import type { TextDocument } from "@cursorless/common";
+import type { TextDocument } from "@cursorless/lib-common";
export class ScopeHandlerCache {
private key: string = "";
diff --git a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/ScopeHandlerFactory.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/ScopeHandlerFactory.ts
index 0ae0823266..5fc7d1779b 100644
--- a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/ScopeHandlerFactory.ts
+++ b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/ScopeHandlerFactory.ts
@@ -1,4 +1,4 @@
-import type { ScopeType } from "@cursorless/common";
+import type { ScopeType } from "@cursorless/lib-common";
import type { ComplexScopeType, ScopeHandler } from "./scopeHandler.types";
export interface ScopeHandlerFactory {
diff --git a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/ScopeHandlerFactoryImpl.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/ScopeHandlerFactoryImpl.ts
index 38e07c09e0..dd1a20ee29 100644
--- a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/ScopeHandlerFactoryImpl.ts
+++ b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/ScopeHandlerFactoryImpl.ts
@@ -3,7 +3,7 @@ import {
UnsupportedScopeError,
type IDE,
type ScopeType,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import type { LanguageDefinitions } from "../../../languages/LanguageDefinitions";
import {
BoundedNonWhitespaceSequenceScopeHandler,
diff --git a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/SentenceScopeHandler/SentenceScopeHandler.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/SentenceScopeHandler/SentenceScopeHandler.ts
index 70ca27d27c..b71bac0929 100644
--- a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/SentenceScopeHandler/SentenceScopeHandler.ts
+++ b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/SentenceScopeHandler/SentenceScopeHandler.ts
@@ -1,5 +1,5 @@
-import type { Direction, MatchedText } from "@cursorless/common";
-import { Range } from "@cursorless/common";
+import type { Direction, MatchedText } from "@cursorless/lib-common";
+import { Range } from "@cursorless/lib-common";
import { imap } from "itertools";
import { TokenTarget } from "../../../targets";
import { NestedScopeHandler } from "../NestedScopeHandler";
diff --git a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/SentenceScopeHandler/SentenceSegmenter.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/SentenceScopeHandler/SentenceSegmenter.ts
index 3fc6497ac2..4a07f03a98 100644
--- a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/SentenceScopeHandler/SentenceSegmenter.ts
+++ b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/SentenceScopeHandler/SentenceSegmenter.ts
@@ -1,5 +1,5 @@
-import type { MatchedText } from "@cursorless/common";
-import { matchRegex, testRegex } from "@cursorless/common";
+import type { MatchedText } from "@cursorless/lib-common";
+import { matchRegex, testRegex } from "@cursorless/lib-common";
import type { SentenceParserOptions } from "@cursorless/sentence-parser";
import { getSentences } from "@cursorless/sentence-parser";
diff --git a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/SortedScopeHandler.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/SortedScopeHandler.ts
index 87252e93de..e798279326 100644
--- a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/SortedScopeHandler.ts
+++ b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/SortedScopeHandler.ts
@@ -3,7 +3,7 @@ import type {
OneOfScopeType,
Position,
TextEditor,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import { BaseScopeHandler } from "./BaseScopeHandler";
import { advanceIteratorsUntil, getInitialIteratorInfos } from "./IteratorInfo";
import type { ScopeHandlerFactory } from "./ScopeHandlerFactory";
diff --git a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/InteriorScopeHandler.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/InteriorScopeHandler.ts
index 7d0bba3a5e..e8b4878043 100644
--- a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/InteriorScopeHandler.ts
+++ b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/InteriorScopeHandler.ts
@@ -3,8 +3,8 @@ import type {
Position,
ScopeType,
TextEditor,
-} from "@cursorless/common";
-import { NoContainingScopeError } from "@cursorless/common";
+} from "@cursorless/lib-common";
+import { NoContainingScopeError } from "@cursorless/lib-common";
import type { LanguageDefinitions } from "../../../../languages/LanguageDefinitions";
import type { Target } from "../../../../typings/target.types";
import { InteriorTarget } from "../../../targets";
diff --git a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/SurroundingPairInteriorScopeHandler.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/SurroundingPairInteriorScopeHandler.ts
index 202f8aa7d5..5062cd2ddf 100644
--- a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/SurroundingPairInteriorScopeHandler.ts
+++ b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/SurroundingPairInteriorScopeHandler.ts
@@ -3,7 +3,7 @@ import type {
Position,
SurroundingPairInteriorScopeType,
TextEditor,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import { BaseScopeHandler } from "../BaseScopeHandler";
import type { TargetScope } from "../scope.types";
import type {
diff --git a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/SurroundingPairScopeHandler.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/SurroundingPairScopeHandler.ts
index b767988ae0..48a7821d05 100644
--- a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/SurroundingPairScopeHandler.ts
+++ b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/SurroundingPairScopeHandler.ts
@@ -3,7 +3,7 @@ import type {
Position,
SurroundingPairScopeType,
TextEditor,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import type { LanguageDefinitions } from "../../../../languages/LanguageDefinitions";
import { BaseScopeHandler } from "../BaseScopeHandler";
import { compareTargetScopes } from "../compareTargetScopes";
diff --git a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/createTargetScope.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/createTargetScope.ts
index e9bba9d1bb..45416e5da9 100644
--- a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/createTargetScope.ts
+++ b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/createTargetScope.ts
@@ -1,5 +1,5 @@
-import type { TextEditor } from "@cursorless/common";
-import { Range } from "@cursorless/common";
+import type { TextEditor } from "@cursorless/lib-common";
+import { Range } from "@cursorless/lib-common";
import { SurroundingPairTarget } from "../../../targets";
import type { TargetScope } from "../scope.types";
import type { SurroundingPairOccurrence } from "./types";
diff --git a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/delimiterMaps.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/delimiterMaps.ts
index f6fb40546b..b51ff7c8a9 100644
--- a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/delimiterMaps.ts
+++ b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/delimiterMaps.ts
@@ -1,8 +1,8 @@
import type {
ComplexSurroundingPairName,
SimpleSurroundingPairName,
-} from "@cursorless/common";
-import { unsafeKeys } from "@cursorless/common";
+} from "@cursorless/lib-common";
+import { unsafeKeys } from "@cursorless/lib-common";
type IndividualDelimiterText = string | string[];
diff --git a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/getDelimiterOccurrences.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/getDelimiterOccurrences.ts
index 1f8c3ef30c..47a18602c1 100644
--- a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/getDelimiterOccurrences.ts
+++ b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/getDelimiterOccurrences.ts
@@ -1,5 +1,5 @@
-import type { TextDocument } from "@cursorless/common";
-import { matchAllIterator, Range } from "@cursorless/common";
+import type { TextDocument } from "@cursorless/lib-common";
+import { matchAllIterator, Range } from "@cursorless/lib-common";
import type { LanguageDefinition } from "../../../../languages/LanguageDefinition";
import type { QueryCapture } from "../../../../languages/TreeSitterQuery/QueryCapture";
import { OneWayNestedRangeFinder } from "../util/OneWayNestedRangeFinder";
diff --git a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/getIndividualDelimiters.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/getIndividualDelimiters.ts
index 3d08fc890e..8302211f7a 100644
--- a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/getIndividualDelimiters.ts
+++ b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/getIndividualDelimiters.ts
@@ -2,8 +2,8 @@ import type {
ComplexSurroundingPairName,
SimpleSurroundingPairName,
SurroundingPairName,
-} from "@cursorless/common";
-import { isString } from "@cursorless/common";
+} from "@cursorless/lib-common";
+import { isString } from "@cursorless/lib-common";
import { concat, uniq } from "lodash-es";
import { complexDelimiterMap, getSimpleDelimiterMap } from "./delimiterMaps";
import type { IndividualDelimiter } from "./types";
diff --git a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/getSurroundingPairOccurrences.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/getSurroundingPairOccurrences.ts
index da5f70944a..973647a6b5 100644
--- a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/getSurroundingPairOccurrences.ts
+++ b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/getSurroundingPairOccurrences.ts
@@ -1,4 +1,4 @@
-import type { Range } from "@cursorless/common";
+import type { Range } from "@cursorless/lib-common";
import findLastIndex from "lodash-es/findLastIndex";
import { DelimiterSide } from "./types";
import type {
diff --git a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/types.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/types.ts
index 963d959ecd..001ce5490a 100644
--- a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/types.ts
+++ b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler/types.ts
@@ -1,4 +1,4 @@
-import type { Range, SimpleSurroundingPairName } from "@cursorless/common";
+import type { Range, SimpleSurroundingPairName } from "@cursorless/lib-common";
/**
* Used to indicate whether a particular side of the delimiter is left or right
diff --git a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/TokenScopeHandler.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/TokenScopeHandler.ts
index b9b2ef2ee1..b9a78c3cf4 100644
--- a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/TokenScopeHandler.ts
+++ b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/TokenScopeHandler.ts
@@ -1,4 +1,4 @@
-import type { Direction, IDE, ScopeType } from "@cursorless/common";
+import type { Direction, IDE, ScopeType } from "@cursorless/lib-common";
import { imap } from "itertools";
import { getMatcher } from "../../../tokenizer";
import { generateMatchesInRange } from "../../../util/getMatchesInRange";
diff --git a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/TreeSitterScopeHandler/BaseTreeSitterScopeHandler.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/TreeSitterScopeHandler/BaseTreeSitterScopeHandler.ts
index c3339f6716..0cc6ead93d 100644
--- a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/TreeSitterScopeHandler/BaseTreeSitterScopeHandler.ts
+++ b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/TreeSitterScopeHandler/BaseTreeSitterScopeHandler.ts
@@ -1,5 +1,10 @@
-import type { Direction, IDE, Position, TextEditor } from "@cursorless/common";
-import { showError } from "@cursorless/common";
+import type {
+ Direction,
+ IDE,
+ Position,
+ TextEditor,
+} from "@cursorless/lib-common";
+import { showError } from "@cursorless/lib-common";
import { uniqWith } from "lodash-es";
import type { TreeSitterQuery } from "../../../../languages/TreeSitterQuery";
import type { QueryMatch } from "../../../../languages/TreeSitterQuery/QueryCapture";
diff --git a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/TreeSitterScopeHandler/TreeSitterIterationScopeHandler.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/TreeSitterScopeHandler/TreeSitterIterationScopeHandler.ts
index 990fe99160..3ee20dcd57 100644
--- a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/TreeSitterScopeHandler/TreeSitterIterationScopeHandler.ts
+++ b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/TreeSitterScopeHandler/TreeSitterIterationScopeHandler.ts
@@ -3,7 +3,7 @@ import type {
ScopeType,
SimpleScopeType,
TextEditor,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import type { TreeSitterQuery } from "../../../../languages/TreeSitterQuery";
import type { QueryMatch } from "../../../../languages/TreeSitterQuery/QueryCapture";
import { PlainTarget } from "../../../targets";
diff --git a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/TreeSitterScopeHandler/TreeSitterScopeHandler.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/TreeSitterScopeHandler/TreeSitterScopeHandler.ts
index 6d7d157268..fe75a444bc 100644
--- a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/TreeSitterScopeHandler/TreeSitterScopeHandler.ts
+++ b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/TreeSitterScopeHandler/TreeSitterScopeHandler.ts
@@ -1,4 +1,4 @@
-import type { IDE, SimpleScopeType, TextEditor } from "@cursorless/common";
+import type { IDE, SimpleScopeType, TextEditor } from "@cursorless/lib-common";
import type { TreeSitterQuery } from "../../../../languages/TreeSitterQuery";
import type { QueryMatch } from "../../../../languages/TreeSitterQuery/QueryCapture";
import { ScopeTypeTarget } from "../../../targets/ScopeTypeTarget";
diff --git a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/TreeSitterScopeHandler/captureUtils.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/TreeSitterScopeHandler/captureUtils.ts
index a387a6e55e..6deb1e683c 100644
--- a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/TreeSitterScopeHandler/captureUtils.ts
+++ b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/TreeSitterScopeHandler/captureUtils.ts
@@ -1,4 +1,4 @@
-import type { Range } from "@cursorless/common";
+import type { Range } from "@cursorless/lib-common";
import type { QueryMatch } from "../../../../languages/TreeSitterQuery/QueryCapture";
/**
diff --git a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/TreeSitterScopeHandler/getQuerySearchRange.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/TreeSitterScopeHandler/getQuerySearchRange.ts
index 60b64cc632..fe96c89daa 100644
--- a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/TreeSitterScopeHandler/getQuerySearchRange.ts
+++ b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/TreeSitterScopeHandler/getQuerySearchRange.ts
@@ -1,4 +1,4 @@
-import type { Direction, Position, TextDocument } from "@cursorless/common";
+import type { Direction, Position, TextDocument } from "@cursorless/lib-common";
import type {
ContainmentPolicy,
ScopeIteratorRequirements,
diff --git a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/WordScopeHandler/WordScopeHandler.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/WordScopeHandler/WordScopeHandler.ts
index 65a2ffbbb8..c9d0b112d1 100644
--- a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/WordScopeHandler/WordScopeHandler.ts
+++ b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/WordScopeHandler/WordScopeHandler.ts
@@ -1,5 +1,10 @@
-import type { Direction, IDE, ScopeType, TextEditor } from "@cursorless/common";
-import { Range } from "@cursorless/common";
+import type {
+ Direction,
+ IDE,
+ ScopeType,
+ TextEditor,
+} from "@cursorless/lib-common";
+import { Range } from "@cursorless/lib-common";
import { SubTokenWordTarget } from "../../../targets";
import { NestedScopeHandler } from "../NestedScopeHandler";
import type { TargetScope } from "../scope.types";
diff --git a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/WordScopeHandler/WordTokenizer.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/WordScopeHandler/WordTokenizer.ts
index 174da051ad..1a353cc4d8 100644
--- a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/WordScopeHandler/WordTokenizer.ts
+++ b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/WordScopeHandler/WordTokenizer.ts
@@ -1,5 +1,5 @@
-import type { IDE } from "@cursorless/common";
-import { matchText } from "@cursorless/common";
+import type { IDE } from "@cursorless/lib-common";
+import { matchText } from "@cursorless/lib-common";
import { getMatcher } from "../../../../tokenizer";
const CAMEL_REGEX = /\p{Lu}?\p{Ll}+|\p{Lu}+(?!\p{Ll})|\p{N}+/gu;
diff --git a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/compareTargetScopes.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/compareTargetScopes.ts
index f3b07f6357..504187e6d6 100644
--- a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/compareTargetScopes.ts
+++ b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/compareTargetScopes.ts
@@ -1,4 +1,4 @@
-import type { Direction, Position, Range } from "@cursorless/common";
+import type { Direction, Position, Range } from "@cursorless/lib-common";
import type { TargetScope } from "./scope.types";
/**
diff --git a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/isPreferredOverHelper.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/isPreferredOverHelper.ts
index 47278d07e7..551be15df4 100644
--- a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/isPreferredOverHelper.ts
+++ b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/isPreferredOverHelper.ts
@@ -1,4 +1,4 @@
-import { testRegex } from "@cursorless/common";
+import { testRegex } from "@cursorless/lib-common";
import type { TargetScope } from "./scope.types";
export function isPreferredOverHelper(
diff --git a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/scope.types.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/scope.types.ts
index e4f2bba0a9..eacc2a0e89 100644
--- a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/scope.types.ts
+++ b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/scope.types.ts
@@ -1,4 +1,4 @@
-import type { Range, TextEditor } from "@cursorless/common";
+import type { Range, TextEditor } from "@cursorless/lib-common";
import type { Target } from "../../../typings/target.types";
/**
diff --git a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/scopeHandler.types.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/scopeHandler.types.ts
index 0242b87780..fa975cabae 100644
--- a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/scopeHandler.types.ts
+++ b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/scopeHandler.types.ts
@@ -3,7 +3,7 @@ import type {
Position,
ScopeType,
TextEditor,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import type { TargetScope } from "./scope.types";
/**
diff --git a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/scopeTypeUtil.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/scopeTypeUtil.ts
index bdf7f8da42..b99b043621 100644
--- a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/scopeTypeUtil.ts
+++ b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/scopeTypeUtil.ts
@@ -1,4 +1,4 @@
-import type { ScopeType } from "@cursorless/common";
+import type { ScopeType } from "@cursorless/lib-common";
export function scopeTypeToString(scopeType: ScopeType) {
return scopeType.type;
diff --git a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/shouldYieldScope.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/shouldYieldScope.ts
index 283259baed..ade4afde8e 100644
--- a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/shouldYieldScope.ts
+++ b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/shouldYieldScope.ts
@@ -1,5 +1,5 @@
-import type { Direction, Position } from "@cursorless/common";
-import { Range } from "@cursorless/common";
+import type { Direction, Position } from "@cursorless/lib-common";
+import { Range } from "@cursorless/lib-common";
import { strictlyContains } from "../../../util/rangeUtils";
import { compareTargetScopes } from "./compareTargetScopes";
import type { TargetScope } from "./scope.types";
diff --git a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/util/OneWayNestedRangeFinder.test.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/util/OneWayNestedRangeFinder.test.ts
index 3c2c86d3b5..c2e0df3351 100644
--- a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/util/OneWayNestedRangeFinder.test.ts
+++ b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/util/OneWayNestedRangeFinder.test.ts
@@ -1,4 +1,4 @@
-import { Range } from "@cursorless/common";
+import { Range } from "@cursorless/lib-common";
import { OneWayNestedRangeFinder } from "./OneWayNestedRangeFinder";
import assert from "assert";
diff --git a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/util/OneWayNestedRangeFinder.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/util/OneWayNestedRangeFinder.ts
index d001dcf264..595c39ab73 100644
--- a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/util/OneWayNestedRangeFinder.ts
+++ b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/util/OneWayNestedRangeFinder.ts
@@ -1,4 +1,4 @@
-import type { Range } from "@cursorless/common";
+import type { Range } from "@cursorless/lib-common";
import { OneWayRangeFinder } from "./OneWayRangeFinder";
/**
diff --git a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/util/OneWayRangeFinder.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/util/OneWayRangeFinder.ts
index c0b9b6e188..8fd4d53668 100644
--- a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/util/OneWayRangeFinder.ts
+++ b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/util/OneWayRangeFinder.ts
@@ -1,4 +1,4 @@
-import type { Range } from "@cursorless/common";
+import type { Range } from "@cursorless/lib-common";
/**
* Given a list of ranges (the haystack), allows the client to search for a sequence of ranges (the needles).
diff --git a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/util/getCollectionItemRemovalRange.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/util/getCollectionItemRemovalRange.ts
index d06cee56ca..a8d093749c 100644
--- a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/util/getCollectionItemRemovalRange.ts
+++ b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/util/getCollectionItemRemovalRange.ts
@@ -1,4 +1,4 @@
-import type { Range, TextEditor } from "@cursorless/common";
+import type { Range, TextEditor } from "@cursorless/lib-common";
import { getRangeLength } from "../../../../util/rangeUtils";
/**
diff --git a/packages/lib-engine/src/processTargets/modifiers/targetSequenceUtils.ts b/packages/lib-engine/src/processTargets/modifiers/targetSequenceUtils.ts
index 373d647294..d4da9279f0 100644
--- a/packages/lib-engine/src/processTargets/modifiers/targetSequenceUtils.ts
+++ b/packages/lib-engine/src/processTargets/modifiers/targetSequenceUtils.ts
@@ -1,4 +1,4 @@
-import type { ScopeType } from "@cursorless/common";
+import type { ScopeType } from "@cursorless/lib-common";
import type { Target } from "../../typings/target.types";
import type { ModifierStageFactory } from "../ModifierStageFactory";
import { createContinuousRangeTarget } from "../createContinuousRangeTarget";
diff --git a/packages/lib-engine/src/processTargets/targets/BaseTarget.ts b/packages/lib-engine/src/processTargets/targets/BaseTarget.ts
index 8bd6b2e464..926e084f4e 100644
--- a/packages/lib-engine/src/processTargets/targets/BaseTarget.ts
+++ b/packages/lib-engine/src/processTargets/targets/BaseTarget.ts
@@ -5,8 +5,8 @@ import type {
Range,
TargetPlainObject,
TextEditor,
-} from "@cursorless/common";
-import { rangeToPlainObject, Selection } from "@cursorless/common";
+} from "@cursorless/lib-common";
+import { rangeToPlainObject, Selection } from "@cursorless/lib-common";
import { isEqual } from "lodash-es";
import type { EditWithRangeUpdater } from "../../typings/Types";
import type {
diff --git a/packages/lib-engine/src/processTargets/targets/BoundedParagraphTarget.ts b/packages/lib-engine/src/processTargets/targets/BoundedParagraphTarget.ts
index 291249c197..d0903f9f72 100644
--- a/packages/lib-engine/src/processTargets/targets/BoundedParagraphTarget.ts
+++ b/packages/lib-engine/src/processTargets/targets/BoundedParagraphTarget.ts
@@ -1,4 +1,4 @@
-import { toLineRange, type Range } from "@cursorless/common";
+import { toLineRange, type Range } from "@cursorless/lib-common";
import type { InteriorTarget, ParagraphTarget } from ".";
import type { TextualType } from "../../typings/target.types";
import { expandToFullLine } from "../../util/rangeUtils";
diff --git a/packages/lib-engine/src/processTargets/targets/DestinationImpl.ts b/packages/lib-engine/src/processTargets/targets/DestinationImpl.ts
index 37d95de65b..84040a75bc 100644
--- a/packages/lib-engine/src/processTargets/targets/DestinationImpl.ts
+++ b/packages/lib-engine/src/processTargets/targets/DestinationImpl.ts
@@ -1,5 +1,5 @@
-import type { InsertionMode, TextEditor } from "@cursorless/common";
-import { Range, Selection } from "@cursorless/common";
+import type { InsertionMode, TextEditor } from "@cursorless/lib-common";
+import { Range, Selection } from "@cursorless/lib-common";
import type { EditWithRangeUpdater } from "../../typings/Types";
import type {
Destination,
diff --git a/packages/lib-engine/src/processTargets/targets/DocumentTarget.ts b/packages/lib-engine/src/processTargets/targets/DocumentTarget.ts
index ad26edea9e..09a1f39e85 100644
--- a/packages/lib-engine/src/processTargets/targets/DocumentTarget.ts
+++ b/packages/lib-engine/src/processTargets/targets/DocumentTarget.ts
@@ -1,4 +1,4 @@
-import type { Range } from "@cursorless/common";
+import type { Range } from "@cursorless/lib-common";
import type { TextualType } from "../../typings/target.types";
import { shrinkRangeToFitContent } from "../../util/selectionUtils";
import { BaseTarget, type CommonTargetParameters } from "./BaseTarget";
diff --git a/packages/lib-engine/src/processTargets/targets/HeadTailTarget.ts b/packages/lib-engine/src/processTargets/targets/HeadTailTarget.ts
index 540cbb5a8b..0d63d17ac1 100644
--- a/packages/lib-engine/src/processTargets/targets/HeadTailTarget.ts
+++ b/packages/lib-engine/src/processTargets/targets/HeadTailTarget.ts
@@ -1,4 +1,4 @@
-import { Range } from "@cursorless/common";
+import { Range } from "@cursorless/lib-common";
import type { MinimumTargetParameters } from "./BaseTarget";
import { BaseTarget } from "./BaseTarget";
import type { Target } from "../../typings/target.types";
diff --git a/packages/lib-engine/src/processTargets/targets/ImplicitTarget.ts b/packages/lib-engine/src/processTargets/targets/ImplicitTarget.ts
index 7b7589ea81..f3b821f09a 100644
--- a/packages/lib-engine/src/processTargets/targets/ImplicitTarget.ts
+++ b/packages/lib-engine/src/processTargets/targets/ImplicitTarget.ts
@@ -1,4 +1,4 @@
-import type { EnforceUndefined } from "@cursorless/common";
+import type { EnforceUndefined } from "@cursorless/lib-common";
import type { TextualType } from "../../typings/target.types";
import type { CommonTargetParameters } from "./BaseTarget";
import { BaseTarget } from "./BaseTarget";
diff --git a/packages/lib-engine/src/processTargets/targets/InteriorTarget.ts b/packages/lib-engine/src/processTargets/targets/InteriorTarget.ts
index afdcc3f9b3..10b0dc207b 100644
--- a/packages/lib-engine/src/processTargets/targets/InteriorTarget.ts
+++ b/packages/lib-engine/src/processTargets/targets/InteriorTarget.ts
@@ -1,4 +1,4 @@
-import type { Range } from "@cursorless/common";
+import type { Range } from "@cursorless/lib-common";
import { shrinkRangeToFitContent } from "../../util/selectionUtils";
import type { MinimumTargetParameters } from "./BaseTarget";
import { BaseTarget } from "./BaseTarget";
diff --git a/packages/lib-engine/src/processTargets/targets/LineTarget.ts b/packages/lib-engine/src/processTargets/targets/LineTarget.ts
index 7905c887db..f2fdea8c08 100644
--- a/packages/lib-engine/src/processTargets/targets/LineTarget.ts
+++ b/packages/lib-engine/src/processTargets/targets/LineTarget.ts
@@ -1,5 +1,5 @@
-import type { TextEditor, TextLine } from "@cursorless/common";
-import { Position, Range, toLineRange } from "@cursorless/common";
+import type { TextEditor, TextLine } from "@cursorless/lib-common";
+import { Position, Range, toLineRange } from "@cursorless/lib-common";
import type { TextualType } from "../../typings/target.types";
import { expandToFullLine } from "../../util/rangeUtils";
import { tryConstructTarget } from "../../util/tryConstructTarget";
diff --git a/packages/lib-engine/src/processTargets/targets/NotebookCellDestination.ts b/packages/lib-engine/src/processTargets/targets/NotebookCellDestination.ts
index 6bfa97cce8..60a2c9ee24 100644
--- a/packages/lib-engine/src/processTargets/targets/NotebookCellDestination.ts
+++ b/packages/lib-engine/src/processTargets/targets/NotebookCellDestination.ts
@@ -3,7 +3,7 @@ import type {
Range,
Selection,
TextEditor,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import type { EditWithRangeUpdater } from "../../typings/Types";
import type {
Destination,
diff --git a/packages/lib-engine/src/processTargets/targets/NotebookCellTarget.ts b/packages/lib-engine/src/processTargets/targets/NotebookCellTarget.ts
index bed9662123..b9a6b8caa4 100644
--- a/packages/lib-engine/src/processTargets/targets/NotebookCellTarget.ts
+++ b/packages/lib-engine/src/processTargets/targets/NotebookCellTarget.ts
@@ -1,4 +1,4 @@
-import type { InsertionMode } from "@cursorless/common";
+import type { InsertionMode } from "@cursorless/lib-common";
import type { CommonTargetParameters } from "./BaseTarget";
import { BaseTarget } from "./BaseTarget";
import type { Destination } from "../../typings/target.types";
diff --git a/packages/lib-engine/src/processTargets/targets/ParagraphTarget.ts b/packages/lib-engine/src/processTargets/targets/ParagraphTarget.ts
index affb0a87a6..44d95ec22d 100644
--- a/packages/lib-engine/src/processTargets/targets/ParagraphTarget.ts
+++ b/packages/lib-engine/src/processTargets/targets/ParagraphTarget.ts
@@ -3,8 +3,8 @@ import type {
TextDocument,
TextEditor,
TextLine,
-} from "@cursorless/common";
-import { Position, Range, toLineRange } from "@cursorless/common";
+} from "@cursorless/lib-common";
+import { Position, Range, toLineRange } from "@cursorless/lib-common";
import type { TextualType } from "../../typings/target.types";
import { expandToFullLine } from "../../util/rangeUtils";
import type { CommonTargetParameters } from "./BaseTarget";
diff --git a/packages/lib-engine/src/processTargets/targets/PlainTarget.ts b/packages/lib-engine/src/processTargets/targets/PlainTarget.ts
index 4ecc394ee1..ed2d2c8367 100644
--- a/packages/lib-engine/src/processTargets/targets/PlainTarget.ts
+++ b/packages/lib-engine/src/processTargets/targets/PlainTarget.ts
@@ -1,4 +1,4 @@
-import type { Range, TextEditor } from "@cursorless/common";
+import type { Range, TextEditor } from "@cursorless/lib-common";
import type { TextualType } from "../../typings/target.types";
import { tryConstructTarget } from "../../util/tryConstructTarget";
import type { CommonTargetParameters } from "./BaseTarget";
diff --git a/packages/lib-engine/src/processTargets/targets/RawSelectionTarget.ts b/packages/lib-engine/src/processTargets/targets/RawSelectionTarget.ts
index 3fd3b593a7..51b260d6a0 100644
--- a/packages/lib-engine/src/processTargets/targets/RawSelectionTarget.ts
+++ b/packages/lib-engine/src/processTargets/targets/RawSelectionTarget.ts
@@ -1,4 +1,4 @@
-import type { EnforceUndefined } from "@cursorless/common";
+import type { EnforceUndefined } from "@cursorless/lib-common";
import type { TextualType } from "../../typings/target.types";
import type { CommonTargetParameters } from "./BaseTarget";
import { BaseTarget } from "./BaseTarget";
diff --git a/packages/lib-engine/src/processTargets/targets/ScopeTypeTarget.ts b/packages/lib-engine/src/processTargets/targets/ScopeTypeTarget.ts
index cf74c9854d..821bed54f2 100644
--- a/packages/lib-engine/src/processTargets/targets/ScopeTypeTarget.ts
+++ b/packages/lib-engine/src/processTargets/targets/ScopeTypeTarget.ts
@@ -2,7 +2,7 @@ import type {
GeneralizedRange,
Range,
SimpleScopeTypeType,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import type { Target } from "../../typings/target.types";
import { toGeneralizedRange } from "../../util/targetUtils";
import type { CommonTargetParameters } from "./BaseTarget";
diff --git a/packages/lib-engine/src/processTargets/targets/SubTokenWordTarget.ts b/packages/lib-engine/src/processTargets/targets/SubTokenWordTarget.ts
index 24023d97e7..3797f19607 100644
--- a/packages/lib-engine/src/processTargets/targets/SubTokenWordTarget.ts
+++ b/packages/lib-engine/src/processTargets/targets/SubTokenWordTarget.ts
@@ -1,4 +1,4 @@
-import type { Range } from "@cursorless/common";
+import type { Range } from "@cursorless/lib-common";
import type { TextualType } from "../../typings/target.types";
import type { CommonTargetParameters } from "./BaseTarget";
import { BaseTarget } from "./BaseTarget";
diff --git a/packages/lib-engine/src/processTargets/targets/SurroundingPairTarget.ts b/packages/lib-engine/src/processTargets/targets/SurroundingPairTarget.ts
index a1f24e658b..793cce378b 100644
--- a/packages/lib-engine/src/processTargets/targets/SurroundingPairTarget.ts
+++ b/packages/lib-engine/src/processTargets/targets/SurroundingPairTarget.ts
@@ -1,4 +1,4 @@
-import type { Range } from "@cursorless/common";
+import type { Range } from "@cursorless/lib-common";
import type { CommonTargetParameters } from "./BaseTarget";
import { BaseTarget } from "./BaseTarget";
import { InteriorTarget } from "./InteriorTarget";
diff --git a/packages/lib-engine/src/processTargets/targets/TokenTarget.ts b/packages/lib-engine/src/processTargets/targets/TokenTarget.ts
index 3784597a96..385fd152d7 100644
--- a/packages/lib-engine/src/processTargets/targets/TokenTarget.ts
+++ b/packages/lib-engine/src/processTargets/targets/TokenTarget.ts
@@ -1,4 +1,4 @@
-import type { Range } from "@cursorless/common";
+import type { Range } from "@cursorless/lib-common";
import type { Target, TextualType } from "../../typings/target.types";
import type { CommonTargetParameters } from "./BaseTarget";
import { BaseTarget } from "./BaseTarget";
diff --git a/packages/lib-engine/src/processTargets/targets/UntypedTarget.ts b/packages/lib-engine/src/processTargets/targets/UntypedTarget.ts
index 32130e3da1..3dd9a6ea1e 100644
--- a/packages/lib-engine/src/processTargets/targets/UntypedTarget.ts
+++ b/packages/lib-engine/src/processTargets/targets/UntypedTarget.ts
@@ -1,4 +1,4 @@
-import type { Range } from "@cursorless/common";
+import type { Range } from "@cursorless/lib-common";
import type { Target, TextualType } from "../../typings/target.types";
import type { CommonTargetParameters } from "./BaseTarget";
import { BaseTarget } from "./BaseTarget";
diff --git a/packages/lib-engine/src/processTargets/targets/util/createContinuousRange.ts b/packages/lib-engine/src/processTargets/targets/util/createContinuousRange.ts
index f9a904bf32..9b537e37db 100644
--- a/packages/lib-engine/src/processTargets/targets/util/createContinuousRange.ts
+++ b/packages/lib-engine/src/processTargets/targets/util/createContinuousRange.ts
@@ -1,4 +1,4 @@
-import { Position, Range } from "@cursorless/common";
+import { Position, Range } from "@cursorless/lib-common";
import type { Target } from "../../../typings/target.types";
export function createContinuousRange(
diff --git a/packages/lib-engine/src/processTargets/targets/util/insertionRemovalBehaviors/DelimitedSequenceInsertionRemovalBehavior.ts b/packages/lib-engine/src/processTargets/targets/util/insertionRemovalBehaviors/DelimitedSequenceInsertionRemovalBehavior.ts
index a518aa2192..4603dba124 100644
--- a/packages/lib-engine/src/processTargets/targets/util/insertionRemovalBehaviors/DelimitedSequenceInsertionRemovalBehavior.ts
+++ b/packages/lib-engine/src/processTargets/targets/util/insertionRemovalBehaviors/DelimitedSequenceInsertionRemovalBehavior.ts
@@ -1,4 +1,4 @@
-import type { Range } from "@cursorless/common";
+import type { Range } from "@cursorless/lib-common";
import type { Target } from "../../../../typings/target.types";
import { union } from "../../../../util/rangeUtils";
diff --git a/packages/lib-engine/src/processTargets/targets/util/insertionRemovalBehaviors/TokenInsertionRemovalBehavior.ts b/packages/lib-engine/src/processTargets/targets/util/insertionRemovalBehaviors/TokenInsertionRemovalBehavior.ts
index 29a6f15047..7f02e3bf18 100644
--- a/packages/lib-engine/src/processTargets/targets/util/insertionRemovalBehaviors/TokenInsertionRemovalBehavior.ts
+++ b/packages/lib-engine/src/processTargets/targets/util/insertionRemovalBehaviors/TokenInsertionRemovalBehavior.ts
@@ -1,5 +1,5 @@
-import type { TextEditor } from "@cursorless/common";
-import { Range } from "@cursorless/common";
+import type { TextEditor } from "@cursorless/lib-common";
+import { Range } from "@cursorless/lib-common";
import type { Target } from "../../../../typings/target.types";
import { expandToFullLine, union } from "../../../../util/rangeUtils";
import { PlainTarget } from "../../PlainTarget";
diff --git a/packages/lib-engine/src/processTargets/targets/util/insertionRemovalBehaviors/getSmartRemovalTarget.ts b/packages/lib-engine/src/processTargets/targets/util/insertionRemovalBehaviors/getSmartRemovalTarget.ts
index da7b91bdd3..acb69bd36a 100644
--- a/packages/lib-engine/src/processTargets/targets/util/insertionRemovalBehaviors/getSmartRemovalTarget.ts
+++ b/packages/lib-engine/src/processTargets/targets/util/insertionRemovalBehaviors/getSmartRemovalTarget.ts
@@ -1,4 +1,4 @@
-import type { Range, TextDocument } from "@cursorless/common";
+import type { Range, TextDocument } from "@cursorless/lib-common";
import type { Target } from "../../../../typings/target.types";
import { union } from "../../../../util/rangeUtils";
import { LineTarget } from "../../LineTarget";
diff --git a/packages/lib-engine/src/processTargets/targets/util/insertionRemovalBehaviors/insertionRemovalBehavior.types.ts b/packages/lib-engine/src/processTargets/targets/util/insertionRemovalBehaviors/insertionRemovalBehavior.types.ts
index 4690c3235a..45c1e75cd6 100644
--- a/packages/lib-engine/src/processTargets/targets/util/insertionRemovalBehaviors/insertionRemovalBehavior.types.ts
+++ b/packages/lib-engine/src/processTargets/targets/util/insertionRemovalBehaviors/insertionRemovalBehavior.types.ts
@@ -1,4 +1,4 @@
-import type { Range } from "@cursorless/common";
+import type { Range } from "@cursorless/lib-common";
import type { Target } from "../../../../typings/target.types";
export interface InsertionRemovalBehavior {
diff --git a/packages/lib-engine/src/runCommand.ts b/packages/lib-engine/src/runCommand.ts
index 8f3660e18d..ffc46fdf29 100644
--- a/packages/lib-engine/src/runCommand.ts
+++ b/packages/lib-engine/src/runCommand.ts
@@ -6,8 +6,8 @@ import type {
IDE,
ReadOnlyHatMap,
TreeSitter,
-} from "@cursorless/common";
-import { clientSupportsFallback } from "@cursorless/common";
+} from "@cursorless/lib-common";
+import { clientSupportsFallback } from "@cursorless/lib-common";
import type { CommandRunner } from "./CommandRunner";
import { Actions } from "./actions/Actions";
import type { CommandRunnerDecorator } from "./api/CursorlessEngineApi";
diff --git a/packages/lib-engine/src/scopeProviders/ScopeInfoProvider.ts b/packages/lib-engine/src/scopeProviders/ScopeInfoProvider.ts
index bc2ede5094..78b815140a 100644
--- a/packages/lib-engine/src/scopeProviders/ScopeInfoProvider.ts
+++ b/packages/lib-engine/src/scopeProviders/ScopeInfoProvider.ts
@@ -4,12 +4,12 @@ import type {
ScopeTypeInfo,
ScopeTypeInfoEventCallback,
SurroundingPairScopeType,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import {
pseudoScopes,
simpleScopeTypeTypes,
surroundingPairNames,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import { pull } from "lodash-es";
import type { CustomSpokenFormGeneratorImpl } from "../generateSpokenForm/CustomSpokenFormGeneratorImpl";
diff --git a/packages/lib-engine/src/scopeProviders/ScopeRangeProvider.ts b/packages/lib-engine/src/scopeProviders/ScopeRangeProvider.ts
index 971e234af8..c48127aae2 100644
--- a/packages/lib-engine/src/scopeProviders/ScopeRangeProvider.ts
+++ b/packages/lib-engine/src/scopeProviders/ScopeRangeProvider.ts
@@ -5,8 +5,8 @@ import type {
ScopeRanges,
ScopeType,
TextEditor,
-} from "@cursorless/common";
-import { Range } from "@cursorless/common";
+} from "@cursorless/lib-common";
+import { Range } from "@cursorless/lib-common";
import type { ModifierStageFactory } from "../processTargets/ModifierStageFactory";
import type { ScopeHandlerFactory } from "../processTargets/modifiers/scopeHandlers/ScopeHandlerFactory";
import { getIterationRange } from "./getIterationRange";
diff --git a/packages/lib-engine/src/scopeProviders/ScopeRangeWatcher.ts b/packages/lib-engine/src/scopeProviders/ScopeRangeWatcher.ts
index 530f6e2408..534281c872 100644
--- a/packages/lib-engine/src/scopeProviders/ScopeRangeWatcher.ts
+++ b/packages/lib-engine/src/scopeProviders/ScopeRangeWatcher.ts
@@ -6,8 +6,8 @@ import type {
ScopeChangeEventCallback,
ScopeRangeConfig,
ScopeRanges,
-} from "@cursorless/common";
-import { showError } from "@cursorless/common";
+} from "@cursorless/lib-common";
+import { showError } from "@cursorless/lib-common";
import { pull } from "lodash-es";
import type { LanguageDefinitions } from "../languages/LanguageDefinitions";
diff --git a/packages/lib-engine/src/scopeProviders/ScopeSupportChecker.ts b/packages/lib-engine/src/scopeProviders/ScopeSupportChecker.ts
index 3ae308c04d..75d3fee8e0 100644
--- a/packages/lib-engine/src/scopeProviders/ScopeSupportChecker.ts
+++ b/packages/lib-engine/src/scopeProviders/ScopeSupportChecker.ts
@@ -1,5 +1,9 @@
-import type { ScopeType, TextEditor } from "@cursorless/common";
-import { Position, ScopeSupport, isEmptyIterable } from "@cursorless/common";
+import type { ScopeType, TextEditor } from "@cursorless/lib-common";
+import {
+ Position,
+ ScopeSupport,
+ isEmptyIterable,
+} from "@cursorless/lib-common";
import type { ScopeHandlerFactory } from "../processTargets/modifiers/scopeHandlers/ScopeHandlerFactory";
import type { ScopeHandler } from "../processTargets/modifiers/scopeHandlers/scopeHandler.types";
diff --git a/packages/lib-engine/src/scopeProviders/ScopeSupportWatcher.ts b/packages/lib-engine/src/scopeProviders/ScopeSupportWatcher.ts
index f094ade0cb..b3e6a10bcf 100644
--- a/packages/lib-engine/src/scopeProviders/ScopeSupportWatcher.ts
+++ b/packages/lib-engine/src/scopeProviders/ScopeSupportWatcher.ts
@@ -4,8 +4,8 @@ import type {
ScopeSupportEventCallback,
ScopeSupportInfo,
ScopeType,
-} from "@cursorless/common";
-import { ScopeSupport, disposableFrom } from "@cursorless/common";
+} from "@cursorless/lib-common";
+import { ScopeSupport, disposableFrom } from "@cursorless/lib-common";
import { pull } from "lodash-es";
import type { LanguageDefinitions } from "../languages/LanguageDefinitions";
import { DecorationDebouncer } from "../util/DecorationDebouncer";
diff --git a/packages/lib-engine/src/scopeProviders/getIterationRange.ts b/packages/lib-engine/src/scopeProviders/getIterationRange.ts
index 0fc797fc84..f5f769e092 100644
--- a/packages/lib-engine/src/scopeProviders/getIterationRange.ts
+++ b/packages/lib-engine/src/scopeProviders/getIterationRange.ts
@@ -1,4 +1,4 @@
-import type { Range, TextEditor } from "@cursorless/common";
+import type { Range, TextEditor } from "@cursorless/lib-common";
import { last } from "lodash-es";
import type { ScopeHandler } from "../processTargets/modifiers/scopeHandlers/scopeHandler.types";
diff --git a/packages/lib-engine/src/scopeProviders/getIterationScopeRanges.ts b/packages/lib-engine/src/scopeProviders/getIterationScopeRanges.ts
index d4c9de3bb4..678f84f25e 100644
--- a/packages/lib-engine/src/scopeProviders/getIterationScopeRanges.ts
+++ b/packages/lib-engine/src/scopeProviders/getIterationScopeRanges.ts
@@ -2,7 +2,7 @@ import type {
IterationScopeRanges,
Range,
TextEditor,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import { map } from "itertools";
import type {
ModifierStage,
diff --git a/packages/lib-engine/src/scopeProviders/getScopeRanges.ts b/packages/lib-engine/src/scopeProviders/getScopeRanges.ts
index be37a3ff23..a18f199116 100644
--- a/packages/lib-engine/src/scopeProviders/getScopeRanges.ts
+++ b/packages/lib-engine/src/scopeProviders/getScopeRanges.ts
@@ -1,4 +1,4 @@
-import type { Range, ScopeRanges, TextEditor } from "@cursorless/common";
+import type { Range, ScopeRanges, TextEditor } from "@cursorless/lib-common";
import { map } from "itertools";
import type { ScopeHandler } from "../processTargets/modifiers/scopeHandlers/scopeHandler.types";
diff --git a/packages/lib-engine/src/scopeProviders/getTargetRanges.ts b/packages/lib-engine/src/scopeProviders/getTargetRanges.ts
index 092f79b600..b89e0317c8 100644
--- a/packages/lib-engine/src/scopeProviders/getTargetRanges.ts
+++ b/packages/lib-engine/src/scopeProviders/getTargetRanges.ts
@@ -1,4 +1,4 @@
-import type { TargetRanges } from "@cursorless/common";
+import type { TargetRanges } from "@cursorless/lib-common";
import type { Target } from "../typings/target.types";
export function getTargetRanges(target: Target): TargetRanges {
diff --git a/packages/lib-engine/src/scopeProviders/scopeTypeToString.ts b/packages/lib-engine/src/scopeProviders/scopeTypeToString.ts
index 6181b0ca3c..cdc3320c6c 100644
--- a/packages/lib-engine/src/scopeProviders/scopeTypeToString.ts
+++ b/packages/lib-engine/src/scopeProviders/scopeTypeToString.ts
@@ -1,5 +1,5 @@
-import type { ScopeType } from "@cursorless/common";
-import { camelCaseToAllDown, isSimpleScopeType } from "@cursorless/common";
+import type { ScopeType } from "@cursorless/lib-common";
+import { camelCaseToAllDown, isSimpleScopeType } from "@cursorless/lib-common";
export function scopeTypeToString(scopeType: ScopeType): string {
if (isSimpleScopeType(scopeType)) {
diff --git a/packages/lib-engine/src/scripts/transformRecordedTests/checkMarks.ts b/packages/lib-engine/src/scripts/transformRecordedTests/checkMarks.ts
index a04594f963..5238aa4f09 100644
--- a/packages/lib-engine/src/scripts/transformRecordedTests/checkMarks.ts
+++ b/packages/lib-engine/src/scripts/transformRecordedTests/checkMarks.ts
@@ -1,5 +1,5 @@
-import type { TestCaseFixtureLegacy } from "@cursorless/common";
-import { FakeIDE } from "@cursorless/common";
+import type { TestCaseFixtureLegacy } from "@cursorless/lib-common";
+import { FakeIDE } from "@cursorless/lib-common";
import assert from "assert";
import { uniq } from "lodash-es";
import { extractTargetKeys } from "../../testUtil/extractTargetKeys";
diff --git a/packages/lib-engine/src/scripts/transformRecordedTests/index.ts b/packages/lib-engine/src/scripts/transformRecordedTests/index.ts
index 2994ecee14..7635713a4c 100644
--- a/packages/lib-engine/src/scripts/transformRecordedTests/index.ts
+++ b/packages/lib-engine/src/scripts/transformRecordedTests/index.ts
@@ -1,5 +1,8 @@
-import type { CommandVersion, TestCaseFixtureLegacy } from "@cursorless/common";
-import { LATEST_VERSION } from "@cursorless/common";
+import type {
+ CommandVersion,
+ TestCaseFixtureLegacy,
+} from "@cursorless/lib-common";
+import { LATEST_VERSION } from "@cursorless/lib-common";
import { getRecordedTestPaths } from "@cursorless/node-common";
import { checkMarks } from "./checkMarks";
import { transformFile } from "./transformFile";
diff --git a/packages/lib-engine/src/scripts/transformRecordedTests/moveFile.ts b/packages/lib-engine/src/scripts/transformRecordedTests/moveFile.ts
index d54c18aa04..614a2a0a9a 100644
--- a/packages/lib-engine/src/scripts/transformRecordedTests/moveFile.ts
+++ b/packages/lib-engine/src/scripts/transformRecordedTests/moveFile.ts
@@ -2,7 +2,7 @@ import { promises as fsp } from "node:fs";
import * as path from "node:path";
import * as yaml from "js-yaml";
import { mkdir, rename } from "node:fs/promises";
-import type { TestCaseFixture } from "@cursorless/common";
+import type { TestCaseFixture } from "@cursorless/lib-common";
/**
* Can be used to organize files into directories based on eg language id
diff --git a/packages/lib-engine/src/scripts/transformRecordedTests/transformFile.ts b/packages/lib-engine/src/scripts/transformRecordedTests/transformFile.ts
index 56eb23f04d..7d3cbbd196 100644
--- a/packages/lib-engine/src/scripts/transformRecordedTests/transformFile.ts
+++ b/packages/lib-engine/src/scripts/transformRecordedTests/transformFile.ts
@@ -1,7 +1,7 @@
import { promises as fsp } from "fs";
import * as yaml from "js-yaml";
-import type { TestCaseFixture } from "@cursorless/common";
-import { serializeTestFixture } from "@cursorless/common";
+import type { TestCaseFixture } from "@cursorless/lib-common";
+import { serializeTestFixture } from "@cursorless/lib-common";
import type { FixtureTransformation } from "./types";
export async function transformFile(
diff --git a/packages/lib-engine/src/scripts/transformRecordedTests/transformations/canonicalize.ts b/packages/lib-engine/src/scripts/transformRecordedTests/transformations/canonicalize.ts
index 2f0f4d809d..a5bc189104 100644
--- a/packages/lib-engine/src/scripts/transformRecordedTests/transformations/canonicalize.ts
+++ b/packages/lib-engine/src/scripts/transformRecordedTests/transformations/canonicalize.ts
@@ -1,7 +1,7 @@
import type {
TestCaseFixture,
TestCaseFixtureLegacy,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import { canonicalizeAndValidateCommand } from "../../../core/commandVersionUpgrades/canonicalizeAndValidateCommand";
export function canonicalize(fixture: TestCaseFixtureLegacy): TestCaseFixture {
diff --git a/packages/lib-engine/src/scripts/transformRecordedTests/transformations/identity.ts b/packages/lib-engine/src/scripts/transformRecordedTests/transformations/identity.ts
index ac777c5b23..14ffc7d4cf 100644
--- a/packages/lib-engine/src/scripts/transformRecordedTests/transformations/identity.ts
+++ b/packages/lib-engine/src/scripts/transformRecordedTests/transformations/identity.ts
@@ -1,4 +1,4 @@
-import type { TestCaseFixtureLegacy } from "@cursorless/common";
+import type { TestCaseFixtureLegacy } from "@cursorless/lib-common";
export function identity(fixture: TestCaseFixtureLegacy) {
return fixture;
diff --git a/packages/lib-engine/src/scripts/transformRecordedTests/transformations/upgrade.ts b/packages/lib-engine/src/scripts/transformRecordedTests/transformations/upgrade.ts
index 1495cff64d..4487e43f82 100644
--- a/packages/lib-engine/src/scripts/transformRecordedTests/transformations/upgrade.ts
+++ b/packages/lib-engine/src/scripts/transformRecordedTests/transformations/upgrade.ts
@@ -1,5 +1,8 @@
-import type { CommandVersion, TestCaseFixtureLegacy } from "@cursorless/common";
-import { LATEST_VERSION } from "@cursorless/common";
+import type {
+ CommandVersion,
+ TestCaseFixtureLegacy,
+} from "@cursorless/lib-common";
+import { LATEST_VERSION } from "@cursorless/lib-common";
import { upgradeCommand } from "../../../core/commandVersionUpgrades/canonicalizeAndValidateCommand";
export function upgrade(
diff --git a/packages/lib-engine/src/scripts/transformRecordedTests/transformations/upgradeFromVersion0.ts b/packages/lib-engine/src/scripts/transformRecordedTests/transformations/upgradeFromVersion0.ts
index 3d1e537994..37c5735010 100644
--- a/packages/lib-engine/src/scripts/transformRecordedTests/transformations/upgradeFromVersion0.ts
+++ b/packages/lib-engine/src/scripts/transformRecordedTests/transformations/upgradeFromVersion0.ts
@@ -1,7 +1,7 @@
import type {
PartialPrimitiveTargetDescriptor,
TestCaseFixture,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import { transformPartialPrimitiveTargets } from "../../../util/getPrimitiveTargets";
export function upgradeFromVersion0(fixture: TestCaseFixture) {
diff --git a/packages/lib-engine/src/scripts/transformRecordedTests/types.ts b/packages/lib-engine/src/scripts/transformRecordedTests/types.ts
index a3f35478c9..87e21d122a 100644
--- a/packages/lib-engine/src/scripts/transformRecordedTests/types.ts
+++ b/packages/lib-engine/src/scripts/transformRecordedTests/types.ts
@@ -1,4 +1,4 @@
-import type { TestCaseFixtureLegacy } from "@cursorless/common";
+import type { TestCaseFixtureLegacy } from "@cursorless/lib-common";
export type FixtureTransformation = (
originalFixture: TestCaseFixtureLegacy,
diff --git a/packages/lib-engine/src/scripts/transformRecordedTests/upgradeDecorations.ts b/packages/lib-engine/src/scripts/transformRecordedTests/upgradeDecorations.ts
index 6a4cec696e..80aed64c06 100644
--- a/packages/lib-engine/src/scripts/transformRecordedTests/upgradeDecorations.ts
+++ b/packages/lib-engine/src/scripts/transformRecordedTests/upgradeDecorations.ts
@@ -3,7 +3,7 @@ import type {
GeneralizedRangePlainObject,
PositionPlainObject,
TestCaseFixtureLegacy,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import { groupBy, partition } from "lodash-es";
import type { FixtureTransformation } from "./types";
diff --git a/packages/lib-engine/src/spokenForms/CustomSpokenForms.ts b/packages/lib-engine/src/spokenForms/CustomSpokenForms.ts
index 56d57d0d77..55c96d0763 100644
--- a/packages/lib-engine/src/spokenForms/CustomSpokenForms.ts
+++ b/packages/lib-engine/src/spokenForms/CustomSpokenForms.ts
@@ -6,14 +6,14 @@ import type {
SpokenFormMapKeyTypes,
SpokenFormType,
TalonSpokenForms,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import {
DisabledCustomSpokenFormsError,
NeedsInitialTalonUpdateError,
Notifier,
SUPPORTED_ENTRY_TYPES,
showError,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import { isEqual } from "lodash-es";
import type { SpokenFormMap, SpokenFormMapEntry } from "./SpokenFormMap";
import {
diff --git a/packages/lib-engine/src/spokenForms/SpokenFormMap.ts b/packages/lib-engine/src/spokenForms/SpokenFormMap.ts
index 2b4ed02763..9bb8c78ca3 100644
--- a/packages/lib-engine/src/spokenForms/SpokenFormMap.ts
+++ b/packages/lib-engine/src/spokenForms/SpokenFormMap.ts
@@ -2,7 +2,7 @@ import type {
SpokenFormType,
PartialSpokenFormTypes,
SpokenFormMapKeyTypes,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
export interface SpokenFormMapEntry {
/**
diff --git a/packages/lib-engine/src/spokenForms/defaultSpokenFormMap.types.ts b/packages/lib-engine/src/spokenForms/defaultSpokenFormMap.types.ts
index fe0da2bac5..4672c96571 100644
--- a/packages/lib-engine/src/spokenForms/defaultSpokenFormMap.types.ts
+++ b/packages/lib-engine/src/spokenForms/defaultSpokenFormMap.types.ts
@@ -1,5 +1,5 @@
import type { SpokenFormMappingType } from "./SpokenFormMap";
-import type { SpokenFormMapKeyTypes } from "@cursorless/common";
+import type { SpokenFormMapKeyTypes } from "@cursorless/lib-common";
export type DefaultSpokenFormMapDefinition = {
readonly [K in keyof SpokenFormMapKeyTypes]: Readonly<
diff --git a/packages/lib-engine/src/test/fixtures/communitySnippets.fixture.ts b/packages/lib-engine/src/test/fixtures/communitySnippets.fixture.ts
index e1995c1106..9e00d55945 100644
--- a/packages/lib-engine/src/test/fixtures/communitySnippets.fixture.ts
+++ b/packages/lib-engine/src/test/fixtures/communitySnippets.fixture.ts
@@ -1,4 +1,4 @@
-import type { ActionDescriptor } from "@cursorless/common";
+import type { ActionDescriptor } from "@cursorless/lib-common";
import { spokenFormTest } from "./spokenFormTest";
const snippetAfterAction: ActionDescriptor = {
diff --git a/packages/lib-engine/src/test/fixtures/multiAction.fixture.ts b/packages/lib-engine/src/test/fixtures/multiAction.fixture.ts
index fb6471214f..ae01b29210 100644
--- a/packages/lib-engine/src/test/fixtures/multiAction.fixture.ts
+++ b/packages/lib-engine/src/test/fixtures/multiAction.fixture.ts
@@ -1,4 +1,4 @@
-import type { ActionDescriptor } from "@cursorless/common";
+import type { ActionDescriptor } from "@cursorless/lib-common";
import { multiActionSpokenFormTest } from "./spokenFormTest";
const getTextAction: ActionDescriptor = {
diff --git a/packages/lib-engine/src/test/fixtures/spokenFormTest.ts b/packages/lib-engine/src/test/fixtures/spokenFormTest.ts
index d66ae96eb3..84626dbd76 100644
--- a/packages/lib-engine/src/test/fixtures/spokenFormTest.ts
+++ b/packages/lib-engine/src/test/fixtures/spokenFormTest.ts
@@ -3,7 +3,7 @@ import {
type ActionDescriptor,
type CommandLatest,
type CommandResponse,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
export interface SpokenFormTest {
/**
diff --git a/packages/lib-engine/src/test/fixtures/synonymousSpokenForms.fixture.ts b/packages/lib-engine/src/test/fixtures/synonymousSpokenForms.fixture.ts
index 130efaed8a..7594da5cd8 100644
--- a/packages/lib-engine/src/test/fixtures/synonymousSpokenForms.fixture.ts
+++ b/packages/lib-engine/src/test/fixtures/synonymousSpokenForms.fixture.ts
@@ -1,4 +1,4 @@
-import type { ActionDescriptor } from "@cursorless/common";
+import type { ActionDescriptor } from "@cursorless/lib-common";
import { spokenFormTest } from "./spokenFormTest";
const verticalRangeAction: ActionDescriptor = {
diff --git a/packages/lib-engine/src/test/fixtures/talonApi.fixture.ts b/packages/lib-engine/src/test/fixtures/talonApi.fixture.ts
index 640eb90e85..1623b96623 100644
--- a/packages/lib-engine/src/test/fixtures/talonApi.fixture.ts
+++ b/packages/lib-engine/src/test/fixtures/talonApi.fixture.ts
@@ -2,7 +2,7 @@ import type {
ActionDescriptor,
GetTextActionOptions,
PartialPrimitiveTargetDescriptor,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import { spokenFormTest } from "./spokenFormTest";
// See cursorless-talon-dev/src/cursorless_test.talon
diff --git a/packages/lib-engine/src/test/scopes.test.ts b/packages/lib-engine/src/test/scopes.test.ts
index b6dbc72eaa..cfb7865bac 100644
--- a/packages/lib-engine/src/test/scopes.test.ts
+++ b/packages/lib-engine/src/test/scopes.test.ts
@@ -3,7 +3,7 @@ import type {
ScopeRangeConfig,
ScopeSupportFacet,
ScopeType,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import {
asyncSafety,
languageScopeSupport,
@@ -11,7 +11,7 @@ import {
scopeSupportFacetInfos,
ScopeSupportFacetLevel,
shouldUpdateFixtures,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import { getScopeTestPathsRecursively } from "@cursorless/node-common";
import { assert } from "chai";
import { groupBy, uniq } from "lodash-es";
diff --git a/packages/lib-engine/src/test/spokenForms.talon.test.ts b/packages/lib-engine/src/test/spokenForms.talon.test.ts
index 23b2829832..a74a8e88a9 100644
--- a/packages/lib-engine/src/test/spokenForms.talon.test.ts
+++ b/packages/lib-engine/src/test/spokenForms.talon.test.ts
@@ -2,8 +2,8 @@ import type {
Command,
CommandLatest,
TestCaseFixtureLegacy,
-} from "@cursorless/common";
-import { asyncSafety } from "@cursorless/common";
+} from "@cursorless/lib-common";
+import { asyncSafety } from "@cursorless/lib-common";
import { getRecordedTestPaths } from "@cursorless/node-common";
import assert from "assert";
import * as yaml from "js-yaml";
diff --git a/packages/lib-engine/src/test/subtoken.test.ts b/packages/lib-engine/src/test/subtoken.test.ts
index 8cf7035bca..c60a19aa78 100644
--- a/packages/lib-engine/src/test/subtoken.test.ts
+++ b/packages/lib-engine/src/test/subtoken.test.ts
@@ -1,4 +1,4 @@
-import { FakeIDE } from "@cursorless/common";
+import { FakeIDE } from "@cursorless/lib-common";
import * as assert from "assert";
import { WordTokenizer } from "../processTargets/modifiers/scopeHandlers/WordScopeHandler/WordTokenizer";
import { subtokenFixture } from "./fixtures/subtoken.fixture";
diff --git a/packages/lib-engine/src/testUtil/TestFileSystem.ts b/packages/lib-engine/src/testUtil/TestFileSystem.ts
index bd26e44940..1e1cc865b3 100644
--- a/packages/lib-engine/src/testUtil/TestFileSystem.ts
+++ b/packages/lib-engine/src/testUtil/TestFileSystem.ts
@@ -3,7 +3,7 @@ import type {
FileSystem,
PathChangeListener,
RunMode,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import { getCursorlessRepoRoot } from "@cursorless/node-common";
import { join } from "node:path";
import fs from "node:fs/promises";
diff --git a/packages/lib-engine/src/testUtil/TestTextEditor.ts b/packages/lib-engine/src/testUtil/TestTextEditor.ts
index 5fe91765c6..ff9a96d69e 100644
--- a/packages/lib-engine/src/testUtil/TestTextEditor.ts
+++ b/packages/lib-engine/src/testUtil/TestTextEditor.ts
@@ -10,7 +10,7 @@ import type {
SetSelectionsOpts,
TextEditor,
TextEditorOptions,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
export class TestTextEditor implements EditableTextEditor {
options: TextEditorOptions = {
diff --git a/packages/lib-engine/src/testUtil/TestTreeSitter.ts b/packages/lib-engine/src/testUtil/TestTreeSitter.ts
index bc810ecb55..3aacb04b0d 100644
--- a/packages/lib-engine/src/testUtil/TestTreeSitter.ts
+++ b/packages/lib-engine/src/testUtil/TestTreeSitter.ts
@@ -1,4 +1,4 @@
-import type { TextDocument, TreeSitter } from "@cursorless/common";
+import type { TextDocument, TreeSitter } from "@cursorless/lib-common";
import { createRequire } from "node:module";
import * as path from "node:path";
import type {
diff --git a/packages/lib-engine/src/testUtil/createTestEnvironment.ts b/packages/lib-engine/src/testUtil/createTestEnvironment.ts
index f43cc2934f..af638d0805 100644
--- a/packages/lib-engine/src/testUtil/createTestEnvironment.ts
+++ b/packages/lib-engine/src/testUtil/createTestEnvironment.ts
@@ -4,8 +4,8 @@ import type {
Messages,
MessageType,
ScopeProvider,
-} from "@cursorless/common";
-import { FakeIDE, InMemoryTextEditor } from "@cursorless/common";
+} from "@cursorless/lib-common";
+import { FakeIDE, InMemoryTextEditor } from "@cursorless/lib-common";
import { FileSystemRawTreeSitterQueryProvider } from "@cursorless/node-common";
import { createCursorlessEngine } from "..";
import { TestFileSystem } from "./TestFileSystem";
diff --git a/packages/lib-engine/src/testUtil/extractTargetKeys.ts b/packages/lib-engine/src/testUtil/extractTargetKeys.ts
index a4fca71c47..fd418094ad 100644
--- a/packages/lib-engine/src/testUtil/extractTargetKeys.ts
+++ b/packages/lib-engine/src/testUtil/extractTargetKeys.ts
@@ -2,8 +2,8 @@ import type {
PartialMark,
PartialPrimitiveTargetDescriptor,
PartialTargetDescriptor,
-} from "@cursorless/common";
-import { getKey } from "@cursorless/common";
+} from "@cursorless/lib-common";
+import { getKey } from "@cursorless/lib-common";
import type {
Mark,
PrimitiveTargetDescriptor,
diff --git a/packages/lib-engine/src/testUtil/plainObjectToTarget.ts b/packages/lib-engine/src/testUtil/plainObjectToTarget.ts
index 7cc5ae3165..d94cf40847 100644
--- a/packages/lib-engine/src/testUtil/plainObjectToTarget.ts
+++ b/packages/lib-engine/src/testUtil/plainObjectToTarget.ts
@@ -1,5 +1,5 @@
-import type { TargetPlainObject, TextEditor } from "@cursorless/common";
-import { plainObjectToRange } from "@cursorless/common";
+import type { TargetPlainObject, TextEditor } from "@cursorless/lib-common";
+import { plainObjectToRange } from "@cursorless/lib-common";
import { LineTarget, UntypedTarget } from "../processTargets/targets";
import type { Target } from "../typings/target.types";
diff --git a/packages/lib-engine/src/testUtil/serializeHeader.ts b/packages/lib-engine/src/testUtil/serializeHeader.ts
index 64065c3417..0d69a5e2a1 100644
--- a/packages/lib-engine/src/testUtil/serializeHeader.ts
+++ b/packages/lib-engine/src/testUtil/serializeHeader.ts
@@ -1,4 +1,4 @@
-import type { Range } from "@cursorless/common";
+import type { Range } from "@cursorless/lib-common";
interface SerializeHeaderArg {
prefix?: string;
diff --git a/packages/lib-engine/src/testUtil/serializeScopeFixture.ts b/packages/lib-engine/src/testUtil/serializeScopeFixture.ts
index 86b9a7b83d..1fd7e67347 100644
--- a/packages/lib-engine/src/testUtil/serializeScopeFixture.ts
+++ b/packages/lib-engine/src/testUtil/serializeScopeFixture.ts
@@ -3,7 +3,7 @@ import type {
Range,
ScopeRanges,
TargetRanges,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import { serializeHeader } from "./serializeHeader";
import { serializeTargetRange } from "./serializeTargetRange";
diff --git a/packages/lib-engine/src/testUtil/serializeTargetRange.ts b/packages/lib-engine/src/testUtil/serializeTargetRange.ts
index c80b45242f..b3298eaf3a 100644
--- a/packages/lib-engine/src/testUtil/serializeTargetRange.ts
+++ b/packages/lib-engine/src/testUtil/serializeTargetRange.ts
@@ -1,4 +1,4 @@
-import type { Range } from "@cursorless/common";
+import type { Range } from "@cursorless/lib-common";
/**
* Given the code of a fixture and a range, return a string that annotates the
diff --git a/packages/lib-engine/src/tokenGraphemeSplitter/tokenGraphemeSplitter.test.ts b/packages/lib-engine/src/tokenGraphemeSplitter/tokenGraphemeSplitter.test.ts
index f8cee2de30..88ce925e4a 100644
--- a/packages/lib-engine/src/tokenGraphemeSplitter/tokenGraphemeSplitter.test.ts
+++ b/packages/lib-engine/src/tokenGraphemeSplitter/tokenGraphemeSplitter.test.ts
@@ -1,5 +1,5 @@
-import type { TokenHatSplittingMode } from "@cursorless/common";
-import { FakeIDE } from "@cursorless/common";
+import type { TokenHatSplittingMode } from "@cursorless/lib-common";
+import { FakeIDE } from "@cursorless/lib-common";
import * as assert from "assert";
import { TokenGraphemeSplitter, UNKNOWN } from "./tokenGraphemeSplitter";
diff --git a/packages/lib-engine/src/tokenGraphemeSplitter/tokenGraphemeSplitter.ts b/packages/lib-engine/src/tokenGraphemeSplitter/tokenGraphemeSplitter.ts
index 9f92a52e49..bf0711bd8a 100644
--- a/packages/lib-engine/src/tokenGraphemeSplitter/tokenGraphemeSplitter.ts
+++ b/packages/lib-engine/src/tokenGraphemeSplitter/tokenGraphemeSplitter.ts
@@ -2,8 +2,8 @@ import type {
Disposable,
IDE,
TokenHatSplittingMode,
-} from "@cursorless/common";
-import { Notifier, matchAll } from "@cursorless/common";
+} from "@cursorless/lib-common";
+import { Notifier, matchAll } from "@cursorless/lib-common";
import { deburr, escapeRegExp } from "lodash-es";
/**
diff --git a/packages/lib-engine/src/tokenizer/tokenizer.test.ts b/packages/lib-engine/src/tokenizer/tokenizer.test.ts
index 2dd07022b5..54c6914400 100644
--- a/packages/lib-engine/src/tokenizer/tokenizer.test.ts
+++ b/packages/lib-engine/src/tokenizer/tokenizer.test.ts
@@ -1,7 +1,7 @@
import * as assert from "assert";
import { flatten, range } from "lodash-es";
import { tokenize } from ".";
-import { FakeIDE } from "@cursorless/common";
+import { FakeIDE } from "@cursorless/lib-common";
type TestCase = [string, string[]];
/**
diff --git a/packages/lib-engine/src/tokenizer/tokenizer.ts b/packages/lib-engine/src/tokenizer/tokenizer.ts
index 6800f27b46..f4b5ff44ff 100644
--- a/packages/lib-engine/src/tokenizer/tokenizer.ts
+++ b/packages/lib-engine/src/tokenizer/tokenizer.ts
@@ -1,4 +1,4 @@
-import { matchAll, type IDE } from "@cursorless/common";
+import { matchAll, type IDE } from "@cursorless/lib-common";
import { escapeRegExp } from "lodash-es";
import type { LanguageTokenizerComponents } from "./tokenizer.types";
diff --git a/packages/lib-engine/src/typings/TargetDescriptor.ts b/packages/lib-engine/src/typings/TargetDescriptor.ts
index fb2728cea9..8f02c4f08d 100644
--- a/packages/lib-engine/src/typings/TargetDescriptor.ts
+++ b/packages/lib-engine/src/typings/TargetDescriptor.ts
@@ -7,7 +7,7 @@ import type {
PartialTargetMark,
RangeMarkFor,
ScopeType,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
export type Mark =
| Exclude
diff --git a/packages/lib-engine/src/typings/Types.ts b/packages/lib-engine/src/typings/Types.ts
index 778862b91c..010ecc3b67 100644
--- a/packages/lib-engine/src/typings/Types.ts
+++ b/packages/lib-engine/src/typings/Types.ts
@@ -1,4 +1,9 @@
-import type { Edit, Range, Selection, TextEditor } from "@cursorless/common";
+import type {
+ Edit,
+ Range,
+ Selection,
+ TextEditor,
+} from "@cursorless/lib-common";
import type { Node } from "web-tree-sitter";
export interface SelectionWithEditor {
diff --git a/packages/lib-engine/src/typings/target.types.ts b/packages/lib-engine/src/typings/target.types.ts
index ffdceb4b0e..7e2c776bd4 100644
--- a/packages/lib-engine/src/typings/target.types.ts
+++ b/packages/lib-engine/src/typings/target.types.ts
@@ -16,7 +16,7 @@ import type {
CustomWrapWithSnippetArg,
TargetPlainObject,
TextEditor,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import type {
// eslint-disable-next-line @typescript-eslint/no-unused-vars
ScopeTypeTarget,
diff --git a/packages/lib-engine/src/typings/updateSelections.ts b/packages/lib-engine/src/typings/updateSelections.ts
index c1597ed5f9..54f4ebd4a2 100644
--- a/packages/lib-engine/src/typings/updateSelections.ts
+++ b/packages/lib-engine/src/typings/updateSelections.ts
@@ -3,7 +3,7 @@ import type {
RangeOffsets,
TextDocumentChangeEvent,
TextDocumentContentChangeEvent,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
type SingleEdgeExpansionBehavior =
| SimpleExpansionBehavior
diff --git a/packages/lib-engine/src/util/DecorationDebouncer.ts b/packages/lib-engine/src/util/DecorationDebouncer.ts
index cb4ab8ef81..df174e9405 100644
--- a/packages/lib-engine/src/util/DecorationDebouncer.ts
+++ b/packages/lib-engine/src/util/DecorationDebouncer.ts
@@ -1,5 +1,5 @@
-import type { Configuration } from "@cursorless/common";
-import { Debouncer } from "@cursorless/common";
+import type { Configuration } from "@cursorless/lib-common";
+import { Debouncer } from "@cursorless/lib-common";
export class DecorationDebouncer {
private debouncer: Debouncer;
diff --git a/packages/lib-engine/src/util/allocateHats/HatMetrics.ts b/packages/lib-engine/src/util/allocateHats/HatMetrics.ts
index e43851fd69..c17f7c19b6 100644
--- a/packages/lib-engine/src/util/allocateHats/HatMetrics.ts
+++ b/packages/lib-engine/src/util/allocateHats/HatMetrics.ts
@@ -1,5 +1,5 @@
-import type { CompositeKeyMap, TokenHat } from "@cursorless/common";
-import { HatStability } from "@cursorless/common";
+import type { CompositeKeyMap, TokenHat } from "@cursorless/lib-common";
+import { HatStability } from "@cursorless/lib-common";
import { memoize, min } from "lodash-es";
import type { HatCandidate } from "./allocateHats";
diff --git a/packages/lib-engine/src/util/allocateHats/allocateHats.ts b/packages/lib-engine/src/util/allocateHats/allocateHats.ts
index 364b913c29..5aea0dcf50 100644
--- a/packages/lib-engine/src/util/allocateHats/allocateHats.ts
+++ b/packages/lib-engine/src/util/allocateHats/allocateHats.ts
@@ -6,8 +6,8 @@ import type {
TextEditor,
Token,
TokenHat,
-} from "@cursorless/common";
-import { CompositeKeyMap, DefaultMap, Range } from "@cursorless/common";
+} from "@cursorless/lib-common";
+import { CompositeKeyMap, DefaultMap, Range } from "@cursorless/lib-common";
import { WordTokenizer } from "../../processTargets/modifiers/scopeHandlers/WordScopeHandler/WordTokenizer";
import type {
Grapheme,
diff --git a/packages/lib-engine/src/util/allocateHats/chooseTokenHat.ts b/packages/lib-engine/src/util/allocateHats/chooseTokenHat.ts
index e2a9c32131..222af605d6 100644
--- a/packages/lib-engine/src/util/allocateHats/chooseTokenHat.ts
+++ b/packages/lib-engine/src/util/allocateHats/chooseTokenHat.ts
@@ -1,4 +1,4 @@
-import type { HatStability, TokenHat } from "@cursorless/common";
+import type { HatStability, TokenHat } from "@cursorless/lib-common";
import type { HatCandidate } from "./allocateHats";
import type { RankingContext } from "./getHatRankingContext";
import {
diff --git a/packages/lib-engine/src/util/allocateHats/getDisplayLineMap.ts b/packages/lib-engine/src/util/allocateHats/getDisplayLineMap.ts
index bf55100370..f8678374db 100644
--- a/packages/lib-engine/src/util/allocateHats/getDisplayLineMap.ts
+++ b/packages/lib-engine/src/util/allocateHats/getDisplayLineMap.ts
@@ -1,4 +1,4 @@
-import type { TextEditor } from "@cursorless/common";
+import type { TextEditor } from "@cursorless/lib-common";
import { range, uniq } from "lodash-es";
/**
diff --git a/packages/lib-engine/src/util/allocateHats/getHatRankingContext.ts b/packages/lib-engine/src/util/allocateHats/getHatRankingContext.ts
index 2e9f9b5308..40884ece70 100644
--- a/packages/lib-engine/src/util/allocateHats/getHatRankingContext.ts
+++ b/packages/lib-engine/src/util/allocateHats/getHatRankingContext.ts
@@ -1,5 +1,5 @@
-import type { HatStyleName, Token, TokenHat } from "@cursorless/common";
-import { CompositeKeyMap } from "@cursorless/common";
+import type { HatStyleName, Token, TokenHat } from "@cursorless/lib-common";
+import { CompositeKeyMap } from "@cursorless/lib-common";
import type { TokenGraphemeSplitter } from "../../tokenGraphemeSplitter";
import type { RankedToken } from "./getRankedTokens";
diff --git a/packages/lib-engine/src/util/allocateHats/getRankedTokens.ts b/packages/lib-engine/src/util/allocateHats/getRankedTokens.ts
index ff59ef5a5c..ba06f8ec5c 100644
--- a/packages/lib-engine/src/util/allocateHats/getRankedTokens.ts
+++ b/packages/lib-engine/src/util/allocateHats/getRankedTokens.ts
@@ -4,7 +4,7 @@ import type {
TextEditor,
Token,
TokenHat,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import { flatten } from "lodash-es";
import { getDisplayLineMap } from "./getDisplayLineMap";
import { getTokenComparator } from "./getTokenComparator";
diff --git a/packages/lib-engine/src/util/allocateHats/getTokenComparator.ts b/packages/lib-engine/src/util/allocateHats/getTokenComparator.ts
index 0ffe1be63c..5ebd4736a5 100644
--- a/packages/lib-engine/src/util/allocateHats/getTokenComparator.ts
+++ b/packages/lib-engine/src/util/allocateHats/getTokenComparator.ts
@@ -1,4 +1,4 @@
-import type { Token } from "@cursorless/common";
+import type { Token } from "@cursorless/lib-common";
interface TokenWithDisplayLine extends Token {
displayLine: number;
diff --git a/packages/lib-engine/src/util/allocateHats/getTokensInRange.ts b/packages/lib-engine/src/util/allocateHats/getTokensInRange.ts
index cb7fbba729..49b324708b 100644
--- a/packages/lib-engine/src/util/allocateHats/getTokensInRange.ts
+++ b/packages/lib-engine/src/util/allocateHats/getTokensInRange.ts
@@ -1,5 +1,5 @@
-import type { IDE, TextEditor, Token } from "@cursorless/common";
-import { Range } from "@cursorless/common";
+import type { IDE, TextEditor, Token } from "@cursorless/lib-common";
+import { Range } from "@cursorless/lib-common";
import { tokenize } from "../../tokenizer";
export function getTokensInRange(
diff --git a/packages/lib-engine/src/util/getMatchesInRange.ts b/packages/lib-engine/src/util/getMatchesInRange.ts
index 7a2a41e09e..1428908e4e 100644
--- a/packages/lib-engine/src/util/getMatchesInRange.ts
+++ b/packages/lib-engine/src/util/getMatchesInRange.ts
@@ -1,5 +1,5 @@
-import type { Direction, TextEditor } from "@cursorless/common";
-import { matchAll, Range } from "@cursorless/common";
+import type { Direction, TextEditor } from "@cursorless/lib-common";
+import { matchAll, Range } from "@cursorless/lib-common";
import { imap } from "itertools";
export function getMatchesInRange(
diff --git a/packages/lib-engine/src/util/getPartialTargetDescriptors.ts b/packages/lib-engine/src/util/getPartialTargetDescriptors.ts
index ca9aa87ae8..8fe16f9467 100644
--- a/packages/lib-engine/src/util/getPartialTargetDescriptors.ts
+++ b/packages/lib-engine/src/util/getPartialTargetDescriptors.ts
@@ -2,7 +2,7 @@ import type {
ActionDescriptor,
DestinationDescriptor,
PartialTargetDescriptor,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import { parseAndFillOutAction } from "../customCommandGrammar/parseAndFillOutAction";
export function getPartialTargetDescriptors(
diff --git a/packages/lib-engine/src/util/getPrimitiveTargets.ts b/packages/lib-engine/src/util/getPrimitiveTargets.ts
index 61ff3ff1f1..dbc341215f 100644
--- a/packages/lib-engine/src/util/getPrimitiveTargets.ts
+++ b/packages/lib-engine/src/util/getPrimitiveTargets.ts
@@ -3,7 +3,7 @@ import type {
PartialPrimitiveTargetDescriptor,
PartialRangeTargetDescriptor,
PartialTargetDescriptor,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
/**
* Given a list of targets, recursively descends all targets and returns every
diff --git a/packages/lib-engine/src/util/getScopeType.ts b/packages/lib-engine/src/util/getScopeType.ts
index 1d6ad3b7cb..604037d89e 100644
--- a/packages/lib-engine/src/util/getScopeType.ts
+++ b/packages/lib-engine/src/util/getScopeType.ts
@@ -1,4 +1,4 @@
-import type { Modifier, ScopeType } from "@cursorless/common";
+import type { Modifier, ScopeType } from "@cursorless/lib-common";
export function getScopeType(modifier: Modifier): ScopeType | undefined {
switch (modifier.type) {
diff --git a/packages/lib-engine/src/util/performDocumentEdits.ts b/packages/lib-engine/src/util/performDocumentEdits.ts
index c970a0dacb..bfa72738f3 100644
--- a/packages/lib-engine/src/util/performDocumentEdits.ts
+++ b/packages/lib-engine/src/util/performDocumentEdits.ts
@@ -1,4 +1,4 @@
-import type { Edit, EditableTextEditor } from "@cursorless/common";
+import type { Edit, EditableTextEditor } from "@cursorless/lib-common";
import type { RangeUpdater } from "../core/updateSelections/RangeUpdater";
export async function performDocumentEdits(
diff --git a/packages/lib-engine/src/util/rangeUtils.ts b/packages/lib-engine/src/util/rangeUtils.ts
index 5edcb8a170..71b82f2eb1 100644
--- a/packages/lib-engine/src/util/rangeUtils.ts
+++ b/packages/lib-engine/src/util/rangeUtils.ts
@@ -1,5 +1,5 @@
-import type { TextEditor } from "@cursorless/common";
-import { Position, Range } from "@cursorless/common";
+import type { TextEditor } from "@cursorless/lib-common";
+import { Position, Range } from "@cursorless/lib-common";
export function isAtEndOfLine(editor: TextEditor, position: Position) {
const endLine = editor.document.lineAt(position);
diff --git a/packages/lib-engine/src/util/selectionUtils.ts b/packages/lib-engine/src/util/selectionUtils.ts
index 207bc9781d..b879a49e38 100644
--- a/packages/lib-engine/src/util/selectionUtils.ts
+++ b/packages/lib-engine/src/util/selectionUtils.ts
@@ -1,5 +1,5 @@
-import type { Position, TextEditor } from "@cursorless/common";
-import { Range, Selection } from "@cursorless/common";
+import type { Position, TextEditor } from "@cursorless/lib-common";
+import { Range, Selection } from "@cursorless/lib-common";
import type { SelectionWithEditor } from "../typings/Types";
export function selectionWithEditorFromRange(
diff --git a/packages/lib-engine/src/util/targetUtils.ts b/packages/lib-engine/src/util/targetUtils.ts
index eeccb188a5..859288c2eb 100644
--- a/packages/lib-engine/src/util/targetUtils.ts
+++ b/packages/lib-engine/src/util/targetUtils.ts
@@ -4,13 +4,13 @@ import type {
IDE,
Range,
TextEditor,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import {
groupBy,
Selection,
toCharacterRange,
toLineRange,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import { zip } from "lodash-es";
import type { Destination, Target } from "../typings/target.types";
import type { SelectionWithEditor } from "../typings/Types";
diff --git a/packages/lib-engine/src/util/tryConstructTarget.ts b/packages/lib-engine/src/util/tryConstructTarget.ts
index c68ff3a040..4422df7b9b 100644
--- a/packages/lib-engine/src/util/tryConstructTarget.ts
+++ b/packages/lib-engine/src/util/tryConstructTarget.ts
@@ -1,4 +1,4 @@
-import type { Range, TextEditor } from "@cursorless/common";
+import type { Range, TextEditor } from "@cursorless/lib-common";
import type { CommonTargetParameters } from "../processTargets/targets";
import type { Target } from "../typings/target.types";
diff --git a/packages/lib-neovim-common/package.json b/packages/lib-neovim-common/package.json
index bf041e35ae..1f40521cb7 100644
--- a/packages/lib-neovim-common/package.json
+++ b/packages/lib-neovim-common/package.json
@@ -12,7 +12,7 @@
"clean": "rm -rf ./out tsconfig.tsbuildinfo ./dist ./build"
},
"dependencies": {
- "@cursorless/common": "workspace:*",
+ "@cursorless/lib-common": "workspace:*",
"@cursorless/neovim-registry": "workspace:*",
"@cursorless/node-common": "workspace:*",
"lodash": "^4.17.23",
diff --git a/packages/lib-neovim-common/src/TestHelpers.ts b/packages/lib-neovim-common/src/TestHelpers.ts
index 4d893ec07c..53402cbb11 100644
--- a/packages/lib-neovim-common/src/TestHelpers.ts
+++ b/packages/lib-neovim-common/src/TestHelpers.ts
@@ -3,7 +3,7 @@ import type {
NormalizedIDE,
ScopeProvider,
TestHelpers,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import type { NeovimIDE } from "./ide/neovim/NeovimIDE";
export interface NeovimTestHelpers extends TestHelpers {
diff --git a/packages/lib-neovim-common/src/ide/neovim/NeovimCapabilities.ts b/packages/lib-neovim-common/src/ide/neovim/NeovimCapabilities.ts
index 0b5a98e27f..307b0ceedb 100644
--- a/packages/lib-neovim-common/src/ide/neovim/NeovimCapabilities.ts
+++ b/packages/lib-neovim-common/src/ide/neovim/NeovimCapabilities.ts
@@ -1,4 +1,7 @@
-import type { Capabilities, CommandCapabilityMap } from "@cursorless/common";
+import type {
+ Capabilities,
+ CommandCapabilityMap,
+} from "@cursorless/lib-common";
const COMMAND_CAPABILITIES: CommandCapabilityMap = {
clipboardCopy: { acceptsLocation: false },
diff --git a/packages/lib-neovim-common/src/ide/neovim/NeovimClipboard.ts b/packages/lib-neovim-common/src/ide/neovim/NeovimClipboard.ts
index 5aa6080829..1156cfc780 100644
--- a/packages/lib-neovim-common/src/ide/neovim/NeovimClipboard.ts
+++ b/packages/lib-neovim-common/src/ide/neovim/NeovimClipboard.ts
@@ -1,4 +1,4 @@
-import type { Clipboard } from "@cursorless/common";
+import type { Clipboard } from "@cursorless/lib-common";
import { getClipboard, setClipboard } from "../../neovimApi";
import type { NeovimClient } from "neovim";
diff --git a/packages/lib-neovim-common/src/ide/neovim/NeovimConfiguration.ts b/packages/lib-neovim-common/src/ide/neovim/NeovimConfiguration.ts
index 0c957c570e..a9076b1845 100644
--- a/packages/lib-neovim-common/src/ide/neovim/NeovimConfiguration.ts
+++ b/packages/lib-neovim-common/src/ide/neovim/NeovimConfiguration.ts
@@ -5,8 +5,8 @@ import type {
CursorlessConfiguration,
GetFieldType,
Paths,
-} from "@cursorless/common";
-import { CONFIGURATION_DEFAULTS, Notifier } from "@cursorless/common";
+} from "@cursorless/lib-common";
+import { CONFIGURATION_DEFAULTS, Notifier } from "@cursorless/lib-common";
import { get } from "lodash";
interface ConfigurationScopeValues {
diff --git a/packages/lib-neovim-common/src/ide/neovim/NeovimEdit.ts b/packages/lib-neovim-common/src/ide/neovim/NeovimEdit.ts
index babf00838a..239881c6c4 100644
--- a/packages/lib-neovim-common/src/ide/neovim/NeovimEdit.ts
+++ b/packages/lib-neovim-common/src/ide/neovim/NeovimEdit.ts
@@ -4,7 +4,7 @@ import type {
Range,
TextDocument,
TextDocumentContentChangeEvent,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import type { NeovimClient, Window } from "neovim";
import type { NeovimIDE } from "./NeovimIDE";
import { getNeovimRegistry } from "@cursorless/neovim-registry";
diff --git a/packages/lib-neovim-common/src/ide/neovim/NeovimEvents.ts b/packages/lib-neovim-common/src/ide/neovim/NeovimEvents.ts
index baa07ba011..2a19f0e2c1 100644
--- a/packages/lib-neovim-common/src/ide/neovim/NeovimEvents.ts
+++ b/packages/lib-neovim-common/src/ide/neovim/NeovimEvents.ts
@@ -3,8 +3,8 @@ import type {
TextDocument,
TextDocumentChangeEvent,
TextDocumentContentChangeEvent,
-} from "@cursorless/common";
-import { Position, Range } from "@cursorless/common";
+} from "@cursorless/lib-common";
+import { Position, Range } from "@cursorless/lib-common";
import { getNeovimRegistry } from "@cursorless/neovim-registry";
import type { Buffer } from "neovim";
diff --git a/packages/lib-neovim-common/src/ide/neovim/NeovimIDE.ts b/packages/lib-neovim-common/src/ide/neovim/NeovimIDE.ts
index 0916c44472..1808eeb80b 100644
--- a/packages/lib-neovim-common/src/ide/neovim/NeovimIDE.ts
+++ b/packages/lib-neovim-common/src/ide/neovim/NeovimIDE.ts
@@ -17,7 +17,7 @@ import type {
TextEditorSelectionChangeEvent,
TextEditorVisibleRangesChangeEvent,
WorkspaceFolder,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import { nodeGetRunMode } from "@cursorless/node-common";
import { pull } from "lodash";
import type { Buffer, NeovimClient, Window } from "neovim";
diff --git a/packages/lib-neovim-common/src/ide/neovim/NeovimKeyValueStore.ts b/packages/lib-neovim-common/src/ide/neovim/NeovimKeyValueStore.ts
index 3a10c2e8c4..4e0ca45fef 100644
--- a/packages/lib-neovim-common/src/ide/neovim/NeovimKeyValueStore.ts
+++ b/packages/lib-neovim-common/src/ide/neovim/NeovimKeyValueStore.ts
@@ -2,8 +2,8 @@ import type {
KeyValueStore,
KeyValueStoreData,
KeyValueStoreKey,
-} from "@cursorless/common";
-import { KEY_VALUE_STORE_DEFAULTS } from "@cursorless/common";
+} from "@cursorless/lib-common";
+import { KEY_VALUE_STORE_DEFAULTS } from "@cursorless/lib-common";
export default class NeovimKeyValueStore implements KeyValueStore {
private readonly data: KeyValueStoreData = { ...KEY_VALUE_STORE_DEFAULTS };
diff --git a/packages/lib-neovim-common/src/ide/neovim/NeovimMessages.ts b/packages/lib-neovim-common/src/ide/neovim/NeovimMessages.ts
index ee71484c44..81af7cd2b9 100644
--- a/packages/lib-neovim-common/src/ide/neovim/NeovimMessages.ts
+++ b/packages/lib-neovim-common/src/ide/neovim/NeovimMessages.ts
@@ -1,4 +1,4 @@
-import type { MessageId, Messages, MessageType } from "@cursorless/common";
+import type { MessageId, Messages, MessageType } from "@cursorless/lib-common";
export default class NeovimMessages implements Messages {
async showMessage(
diff --git a/packages/lib-neovim-common/src/ide/neovim/NeovimTextDocument.ts b/packages/lib-neovim-common/src/ide/neovim/NeovimTextDocument.ts
index 441a561176..694391f6eb 100644
--- a/packages/lib-neovim-common/src/ide/neovim/NeovimTextDocument.ts
+++ b/packages/lib-neovim-common/src/ide/neovim/NeovimTextDocument.ts
@@ -1,5 +1,5 @@
-import type { EndOfLine, TextDocument, TextLine } from "@cursorless/common";
-import { Position, Range } from "@cursorless/common";
+import type { EndOfLine, TextDocument, TextLine } from "@cursorless/lib-common";
+import { Position, Range } from "@cursorless/lib-common";
import type { URI } from "vscode-uri";
import NeovimTextLine from "./NeovimTextLine";
import path from "node:path";
diff --git a/packages/lib-neovim-common/src/ide/neovim/NeovimTextEditor.ts b/packages/lib-neovim-common/src/ide/neovim/NeovimTextEditor.ts
index 4b510ff8e0..6e6d3342b8 100644
--- a/packages/lib-neovim-common/src/ide/neovim/NeovimTextEditor.ts
+++ b/packages/lib-neovim-common/src/ide/neovim/NeovimTextEditor.ts
@@ -8,7 +8,7 @@ import type {
Selection,
TextEditor,
TextEditorOptions,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import type { NeovimClient, Window } from "neovim";
import { bufferSetSelections } from "../../neovimApi";
import { neovimClipboardCopy, neovimClipboardPaste } from "../../neovimHelpers";
diff --git a/packages/lib-neovim-common/src/ide/neovim/NeovimTextLine.ts b/packages/lib-neovim-common/src/ide/neovim/NeovimTextLine.ts
index d6b8e7c542..823125061c 100644
--- a/packages/lib-neovim-common/src/ide/neovim/NeovimTextLine.ts
+++ b/packages/lib-neovim-common/src/ide/neovim/NeovimTextLine.ts
@@ -1,5 +1,5 @@
-import type { TextLine } from "@cursorless/common";
-import { Range } from "@cursorless/common";
+import type { TextLine } from "@cursorless/lib-common";
+import { Range } from "@cursorless/lib-common";
export default class NeovimTextLine implements TextLine {
private readonly _lineNumber: number;
diff --git a/packages/lib-neovim-common/src/neovimApi.ts b/packages/lib-neovim-common/src/neovimApi.ts
index 4aed768eb2..c017da4387 100644
--- a/packages/lib-neovim-common/src/neovimApi.ts
+++ b/packages/lib-neovim-common/src/neovimApi.ts
@@ -1,5 +1,5 @@
// Helper directly calling into Neovim apis, generally lua, exported by cursorless.nvim
-import { Position, Range, Selection } from "@cursorless/common";
+import { Position, Range, Selection } from "@cursorless/lib-common";
import type { NeovimClient } from "neovim/lib/api/client";
import type { Window } from "neovim/lib/api/Window";
diff --git a/packages/lib-neovim-common/src/neovimHelpers.ts b/packages/lib-neovim-common/src/neovimHelpers.ts
index 2dc11c8687..1aaa786062 100644
--- a/packages/lib-neovim-common/src/neovimHelpers.ts
+++ b/packages/lib-neovim-common/src/neovimHelpers.ts
@@ -7,7 +7,7 @@ import {
} from "@cursorless/neovim-common";
import type { NeovimTextEditor } from "./ide/neovim/NeovimTextEditor";
import type { NeovimClient } from "neovim";
-import type { IDE } from "@cursorless/common";
+import type { IDE } from "@cursorless/lib-common";
export async function neovimClipboardCopy(
client: NeovimClient,
diff --git a/packages/lib-neovim-common/src/runCommand.ts b/packages/lib-neovim-common/src/runCommand.ts
index 03a78a42fd..0fe7cd3281 100644
--- a/packages/lib-neovim-common/src/runCommand.ts
+++ b/packages/lib-neovim-common/src/runCommand.ts
@@ -1,5 +1,5 @@
-import type { Command, CommandResponse } from "@cursorless/common";
-import { CURSORLESS_COMMAND_ID } from "@cursorless/common";
+import type { Command, CommandResponse } from "@cursorless/lib-common";
+import { CURSORLESS_COMMAND_ID } from "@cursorless/lib-common";
import { getNeovimRegistry } from "@cursorless/neovim-registry";
export async function runCursorlessCommand(
diff --git a/packages/lib-node-common/package.json b/packages/lib-node-common/package.json
index b66ad6d6e6..e4347278a4 100644
--- a/packages/lib-node-common/package.json
+++ b/packages/lib-node-common/package.json
@@ -12,7 +12,7 @@
"clean": "rm -rf ./out tsconfig.tsbuildinfo ./dist ./build"
},
"dependencies": {
- "@cursorless/common": "workspace:*",
+ "@cursorless/lib-common": "workspace:*",
"glob": "^13.0.6",
"immer": "^11.1.4",
"lodash-es": "^4.17.23",
diff --git a/packages/lib-node-common/src/Cheatsheet.ts b/packages/lib-node-common/src/Cheatsheet.ts
index cc14e9c9c4..e3f60d11ff 100644
--- a/packages/lib-node-common/src/Cheatsheet.ts
+++ b/packages/lib-node-common/src/Cheatsheet.ts
@@ -1,4 +1,4 @@
-import { type IDE } from "@cursorless/common";
+import { type IDE } from "@cursorless/lib-common";
import { getCursorlessRepoRoot } from "@cursorless/node-common";
import { readFile, writeFile } from "node:fs/promises";
import { produce } from "immer";
diff --git a/packages/lib-node-common/src/FileSystemCommandHistoryStorage.ts b/packages/lib-node-common/src/FileSystemCommandHistoryStorage.ts
index 4fde5b171b..a7d4ded78d 100644
--- a/packages/lib-node-common/src/FileSystemCommandHistoryStorage.ts
+++ b/packages/lib-node-common/src/FileSystemCommandHistoryStorage.ts
@@ -1,7 +1,7 @@
import type {
CommandHistoryEntry,
CommandHistoryStorage,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import { glob } from "glob";
import * as fs from "node:fs/promises";
import * as path from "node:path";
diff --git a/packages/lib-node-common/src/FileSystemRawTreeSitterQueryProvider.ts b/packages/lib-node-common/src/FileSystemRawTreeSitterQueryProvider.ts
index 5c65f4ace7..2b41b010d4 100644
--- a/packages/lib-node-common/src/FileSystemRawTreeSitterQueryProvider.ts
+++ b/packages/lib-node-common/src/FileSystemRawTreeSitterQueryProvider.ts
@@ -4,7 +4,7 @@ import {
type FileSystem,
type IDE,
type RawTreeSitterQueryProvider,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import * as path from "node:path";
import { getCursorlessRepoRoot } from "./getCursorlessRepoRoot";
diff --git a/packages/lib-node-common/src/FileSystemTalonSpokenForms.ts b/packages/lib-node-common/src/FileSystemTalonSpokenForms.ts
index 028f41ba83..51531ae8d5 100644
--- a/packages/lib-node-common/src/FileSystemTalonSpokenForms.ts
+++ b/packages/lib-node-common/src/FileSystemTalonSpokenForms.ts
@@ -4,8 +4,8 @@ import type {
Listener,
SpokenFormEntry,
TalonSpokenForms,
-} from "@cursorless/common";
-import { NeedsInitialTalonUpdateError, Notifier } from "@cursorless/common";
+} from "@cursorless/lib-common";
+import { NeedsInitialTalonUpdateError, Notifier } from "@cursorless/lib-common";
import { readFile } from "node:fs/promises";
import * as path from "node:path";
diff --git a/packages/lib-node-common/src/FileSystemTutorialContentProvider.ts b/packages/lib-node-common/src/FileSystemTutorialContentProvider.ts
index d62eb39c77..e5fd76eac4 100644
--- a/packages/lib-node-common/src/FileSystemTutorialContentProvider.ts
+++ b/packages/lib-node-common/src/FileSystemTutorialContentProvider.ts
@@ -2,7 +2,7 @@ import type {
RawTutorialContent,
TutorialContentProvider,
TutorialId,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import { readFile, readdir } from "node:fs/promises";
import path from "path";
import { loadFixture } from "./loadFixture";
diff --git a/packages/lib-node-common/src/getFixturePaths.ts b/packages/lib-node-common/src/getFixturePaths.ts
index b88327b5fe..2ae68a60b4 100644
--- a/packages/lib-node-common/src/getFixturePaths.ts
+++ b/packages/lib-node-common/src/getFixturePaths.ts
@@ -1,7 +1,7 @@
import type {
PlaintextScopeSupportFacet,
ScopeSupportFacet,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import { getCursorlessRepoRoot } from "@cursorless/node-common";
import * as path from "path";
import { walkFilesSync } from "./walkSync";
diff --git a/packages/lib-node-common/src/loadFixture.ts b/packages/lib-node-common/src/loadFixture.ts
index 6f9af8adcd..e51ac44d65 100644
--- a/packages/lib-node-common/src/loadFixture.ts
+++ b/packages/lib-node-common/src/loadFixture.ts
@@ -1,6 +1,6 @@
import * as yaml from "js-yaml";
import { readFile } from "node:fs/promises";
-import type { TestCaseFixtureLegacy } from "@cursorless/common";
+import type { TestCaseFixtureLegacy } from "@cursorless/lib-common";
export async function loadFixture(
path: string,
diff --git a/packages/lib-node-common/src/nodeGetRunMode.ts b/packages/lib-node-common/src/nodeGetRunMode.ts
index a97e6bc44a..145f309f36 100644
--- a/packages/lib-node-common/src/nodeGetRunMode.ts
+++ b/packages/lib-node-common/src/nodeGetRunMode.ts
@@ -1,4 +1,4 @@
-import type { RunMode } from "@cursorless/common";
+import type { RunMode } from "@cursorless/lib-common";
/**
* Get the current run mode of the application as defined by the CURSORLESS_MODE
diff --git a/packages/lib-node-common/src/runRecordedTest.ts b/packages/lib-node-common/src/runRecordedTest.ts
index cea16543cc..2123056ff0 100644
--- a/packages/lib-node-common/src/runRecordedTest.ts
+++ b/packages/lib-node-common/src/runRecordedTest.ts
@@ -10,7 +10,7 @@ import type {
TestCaseFixtureLegacy,
TestHelpers,
TextEditor,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import {
clientSupportsFallback,
getSnapshotForComparison,
@@ -24,7 +24,7 @@ import {
splitKey,
spyIDERecordedValuesToPlainObject,
storedTargetKeys,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import { assert } from "chai";
import { isUndefined } from "lodash-es";
import { promises as fsp } from "node:fs";
diff --git a/packages/lib-talon-core/package.json b/packages/lib-talon-core/package.json
index dae5e8701a..24e47f394e 100644
--- a/packages/lib-talon-core/package.json
+++ b/packages/lib-talon-core/package.json
@@ -12,7 +12,7 @@
"clean": "rm -rf ./out tsconfig.tsbuildinfo ./dist ./build"
},
"dependencies": {
- "@cursorless/common": "workspace:*",
+ "@cursorless/lib-common": "workspace:*",
"@cursorless/cursorless-engine": "workspace:*",
"lodash-es": "^4.17.23",
"vscode-uri": "^3.1.0"
diff --git a/packages/lib-talon-core/src/constructTestHelpers.ts b/packages/lib-talon-core/src/constructTestHelpers.ts
index f6399600e6..26a00c7052 100644
--- a/packages/lib-talon-core/src/constructTestHelpers.ts
+++ b/packages/lib-talon-core/src/constructTestHelpers.ts
@@ -8,7 +8,7 @@ import type {
StoredTargetKey,
TargetPlainObject,
TextEditor,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import type {
CommandApi,
StoredTargetMap,
diff --git a/packages/lib-talon-core/src/extension.ts b/packages/lib-talon-core/src/extension.ts
index 6f25e17119..f90eb3a34e 100644
--- a/packages/lib-talon-core/src/extension.ts
+++ b/packages/lib-talon-core/src/extension.ts
@@ -1,11 +1,11 @@
import "./polyfill";
-import type { RunMode } from "@cursorless/common";
+import type { RunMode } from "@cursorless/lib-common";
import {
FakeCommandServerApi,
FakeIDE,
NormalizedIDE,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import { createCursorlessEngine } from "@cursorless/cursorless-engine";
import { constructTestHelpers } from "./constructTestHelpers";
import { TalonJsIDE } from "./ide/TalonJsIDE";
diff --git a/packages/lib-talon-core/src/ide/TalonJsCapabilities.ts b/packages/lib-talon-core/src/ide/TalonJsCapabilities.ts
index b68eb0c739..5fa72250e8 100644
--- a/packages/lib-talon-core/src/ide/TalonJsCapabilities.ts
+++ b/packages/lib-talon-core/src/ide/TalonJsCapabilities.ts
@@ -1,4 +1,7 @@
-import type { Capabilities, CommandCapabilityMap } from "@cursorless/common";
+import type {
+ Capabilities,
+ CommandCapabilityMap,
+} from "@cursorless/lib-common";
const COMMAND_CAPABILITIES: CommandCapabilityMap = {
clipboardCopy: undefined,
diff --git a/packages/lib-talon-core/src/ide/TalonJsClipboard.ts b/packages/lib-talon-core/src/ide/TalonJsClipboard.ts
index 35ad874172..18308433ba 100644
--- a/packages/lib-talon-core/src/ide/TalonJsClipboard.ts
+++ b/packages/lib-talon-core/src/ide/TalonJsClipboard.ts
@@ -1,4 +1,4 @@
-import type { Clipboard } from "@cursorless/common";
+import type { Clipboard } from "@cursorless/lib-common";
import type { Talon } from "../types/talon";
export class TalonJsClipboard implements Clipboard {
diff --git a/packages/lib-talon-core/src/ide/TalonJsConfiguration.ts b/packages/lib-talon-core/src/ide/TalonJsConfiguration.ts
index 949528c907..659f30ec55 100644
--- a/packages/lib-talon-core/src/ide/TalonJsConfiguration.ts
+++ b/packages/lib-talon-core/src/ide/TalonJsConfiguration.ts
@@ -7,8 +7,8 @@ import type {
GetFieldType,
Listener,
Paths,
-} from "@cursorless/common";
-import { HatStability } from "@cursorless/common";
+} from "@cursorless/lib-common";
+import { HatStability } from "@cursorless/lib-common";
const CONFIGURATION_DEFAULTS: CursorlessConfiguration = {
tokenHatSplittingMode: {
diff --git a/packages/lib-talon-core/src/ide/TalonJsIDE.ts b/packages/lib-talon-core/src/ide/TalonJsIDE.ts
index eac659d459..36e6c6b3d0 100644
--- a/packages/lib-talon-core/src/ide/TalonJsIDE.ts
+++ b/packages/lib-talon-core/src/ide/TalonJsIDE.ts
@@ -21,8 +21,8 @@ import type {
TextEditorSelectionChangeEvent,
TextEditorVisibleRangesChangeEvent,
WorkspaceFolder,
-} from "@cursorless/common";
-import { InMemoryTextEditor, Notifier } from "@cursorless/common";
+} from "@cursorless/lib-common";
+import { InMemoryTextEditor, Notifier } from "@cursorless/lib-common";
import { pull } from "lodash-es";
import type { Talon } from "../types/talon";
import type { EditorEdit, EditorState } from "../types/types";
diff --git a/packages/lib-talon-core/src/ide/TalonJsKeyValueStore.ts b/packages/lib-talon-core/src/ide/TalonJsKeyValueStore.ts
index 2df7c41577..5f916e5662 100644
--- a/packages/lib-talon-core/src/ide/TalonJsKeyValueStore.ts
+++ b/packages/lib-talon-core/src/ide/TalonJsKeyValueStore.ts
@@ -2,7 +2,7 @@ import type {
KeyValueStore,
KeyValueStoreData,
KeyValueStoreKey,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
export class TalonJsKeyValueStore implements KeyValueStore {
get(_key: K): KeyValueStoreData[K] {
diff --git a/packages/lib-talon-core/src/ide/TalonJsMessages.ts b/packages/lib-talon-core/src/ide/TalonJsMessages.ts
index 5f555edd88..c6ff43688a 100644
--- a/packages/lib-talon-core/src/ide/TalonJsMessages.ts
+++ b/packages/lib-talon-core/src/ide/TalonJsMessages.ts
@@ -1,5 +1,5 @@
-import type { Messages } from "@cursorless/common";
-import { MessageType } from "@cursorless/common";
+import type { Messages } from "@cursorless/lib-common";
+import { MessageType } from "@cursorless/lib-common";
import type { Talon } from "../types/talon";
export class TalonJsMessages implements Messages {
diff --git a/packages/lib-talon-core/src/ide/TalonJsTestHats.ts b/packages/lib-talon-core/src/ide/TalonJsTestHats.ts
index d124579e39..e92a9af2d2 100644
--- a/packages/lib-talon-core/src/ide/TalonJsTestHats.ts
+++ b/packages/lib-talon-core/src/ide/TalonJsTestHats.ts
@@ -4,7 +4,7 @@ import type {
Hats,
HatStyleMap,
Listener,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
const HAT_COLORS = [
"default",
diff --git a/packages/lib-talon-core/src/ide/flashRanges.ts b/packages/lib-talon-core/src/ide/flashRanges.ts
index 81f10574d8..228914b109 100644
--- a/packages/lib-talon-core/src/ide/flashRanges.ts
+++ b/packages/lib-talon-core/src/ide/flashRanges.ts
@@ -1,4 +1,4 @@
-import type { FlashDescriptor, RangeOffsets } from "@cursorless/common";
+import type { FlashDescriptor, RangeOffsets } from "@cursorless/lib-common";
import type { Talon } from "../types/talon";
import { toCharacterRangeOffsets } from "./toCharacterRangeOffsets";
diff --git a/packages/lib-talon-core/src/ide/toCharacterRangeOffsets.ts b/packages/lib-talon-core/src/ide/toCharacterRangeOffsets.ts
index 3b32fac3af..fd93d0984a 100644
--- a/packages/lib-talon-core/src/ide/toCharacterRangeOffsets.ts
+++ b/packages/lib-talon-core/src/ide/toCharacterRangeOffsets.ts
@@ -2,7 +2,7 @@ import type {
GeneralizedRange,
RangeOffsets,
TextEditor,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
export function toCharacterRangeOffsets(
editor: TextEditor,
diff --git a/packages/lib-talon-core/src/registerCommands.ts b/packages/lib-talon-core/src/registerCommands.ts
index 0824002e43..fd2632ff1c 100644
--- a/packages/lib-talon-core/src/registerCommands.ts
+++ b/packages/lib-talon-core/src/registerCommands.ts
@@ -1,4 +1,4 @@
-import { CURSORLESS_COMMAND_ID } from "@cursorless/common";
+import { CURSORLESS_COMMAND_ID } from "@cursorless/lib-common";
import type { CommandApi } from "@cursorless/cursorless-engine";
import type { TalonJsIDE } from "./ide/TalonJsIDE";
import type { Talon } from "./types/talon";
diff --git a/packages/lib-talon-core/src/types/talon.ts b/packages/lib-talon-core/src/types/talon.ts
index eceb2278f8..778c77a1ff 100644
--- a/packages/lib-talon-core/src/types/talon.ts
+++ b/packages/lib-talon-core/src/types/talon.ts
@@ -1,4 +1,4 @@
-import type { RangeOffsets, SelectionOffsets } from "@cursorless/common";
+import type { RangeOffsets, SelectionOffsets } from "@cursorless/lib-common";
import type { EditorEdit, EditorState } from "./types";
export type TalonNamespace = "user";
diff --git a/packages/lib-talon-core/src/types/types.ts b/packages/lib-talon-core/src/types/types.ts
index 65c1b83387..c8dcf84720 100644
--- a/packages/lib-talon-core/src/types/types.ts
+++ b/packages/lib-talon-core/src/types/types.ts
@@ -5,7 +5,7 @@ import type {
NormalizedIDE,
SelectionOffsets,
TestHelpers,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import type { StoredTargetMap } from "@cursorless/cursorless-engine";
import type { TalonJsIDE } from "../ide/TalonJsIDE";
diff --git a/packages/lib-test-case-recorder/package.json b/packages/lib-test-case-recorder/package.json
index ce8264a7e5..03c67ccef6 100644
--- a/packages/lib-test-case-recorder/package.json
+++ b/packages/lib-test-case-recorder/package.json
@@ -12,7 +12,7 @@
"clean": "rm -rf ./out tsconfig.tsbuildinfo ./dist ./build"
},
"dependencies": {
- "@cursorless/common": "workspace:*",
+ "@cursorless/lib-common": "workspace:*",
"@cursorless/cursorless-engine": "workspace:*",
"@cursorless/node-common": "workspace:*",
"glob": "^13.0.6",
diff --git a/packages/lib-test-case-recorder/src/RecordTestCaseCommandOptions.ts b/packages/lib-test-case-recorder/src/RecordTestCaseCommandOptions.ts
index f93079fae0..48b0c66485 100644
--- a/packages/lib-test-case-recorder/src/RecordTestCaseCommandOptions.ts
+++ b/packages/lib-test-case-recorder/src/RecordTestCaseCommandOptions.ts
@@ -1,4 +1,4 @@
-import type { ExtraSnapshotField } from "@cursorless/common";
+import type { ExtraSnapshotField } from "@cursorless/lib-common";
/**
* This is the type of the `recordTestCase` command's argument. It is used to
diff --git a/packages/lib-test-case-recorder/src/ScopeTestRecorder.ts b/packages/lib-test-case-recorder/src/ScopeTestRecorder.ts
index bb086370dc..33532d181e 100644
--- a/packages/lib-test-case-recorder/src/ScopeTestRecorder.ts
+++ b/packages/lib-test-case-recorder/src/ScopeTestRecorder.ts
@@ -6,7 +6,7 @@ import {
showInfo,
type IDE,
type ScopeSupportFacet,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import {
getScopeTestPathsRecursively,
getScopeTestsDirPath,
diff --git a/packages/lib-test-case-recorder/src/TestCase.ts b/packages/lib-test-case-recorder/src/TestCase.ts
index e88171e678..9a8fb325f9 100644
--- a/packages/lib-test-case-recorder/src/TestCase.ts
+++ b/packages/lib-test-case-recorder/src/TestCase.ts
@@ -15,14 +15,14 @@ import type {
TestCaseSnapshot,
ThrownError,
Token,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import {
extractTargetedMarks,
marksToPlainObject,
serializeTestFixture,
spyIDERecordedValuesToPlainObject,
unsafeKeys,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import {
extractTargetKeys,
getPartialTargetDescriptors,
diff --git a/packages/lib-test-case-recorder/src/TestCaseRecorder.ts b/packages/lib-test-case-recorder/src/TestCaseRecorder.ts
index dc9a17a1e0..d004a4c16f 100644
--- a/packages/lib-test-case-recorder/src/TestCaseRecorder.ts
+++ b/packages/lib-test-case-recorder/src/TestCaseRecorder.ts
@@ -10,7 +10,7 @@ import type {
ReadOnlyHatMap,
SerializedMarks,
TextEditorOptions,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import {
capitalize,
DEFAULT_TEXT_EDITOR_OPTIONS_FOR_TEST,
@@ -23,7 +23,7 @@ import {
sleep,
SpyIDE,
toLineRange,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import type {
CommandRunner,
StoredTargetMap,
diff --git a/packages/lib-test-case-recorder/src/takeSnapshot.ts b/packages/lib-test-case-recorder/src/takeSnapshot.ts
index 571db9956f..205e131c5b 100644
--- a/packages/lib-test-case-recorder/src/takeSnapshot.ts
+++ b/packages/lib-test-case-recorder/src/takeSnapshot.ts
@@ -6,12 +6,12 @@ import type {
SerializedMarks,
TestCaseSnapshot,
TextEditor,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import {
rangeToPlainObject,
selectionToPlainObject,
storedTargetKeys,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import type { StoredTargetMap } from "@cursorless/cursorless-engine";
import { hrtimeBigintToSeconds } from "./timeUtils";
diff --git a/packages/lib-tutorial/package.json b/packages/lib-tutorial/package.json
index 946fc11b27..79d9852a8e 100644
--- a/packages/lib-tutorial/package.json
+++ b/packages/lib-tutorial/package.json
@@ -12,7 +12,7 @@
"clean": "rm -rf ./out tsconfig.tsbuildinfo ./dist ./build"
},
"dependencies": {
- "@cursorless/common": "workspace:*",
+ "@cursorless/lib-common": "workspace:*",
"@cursorless/cursorless-engine": "workspace:*",
"immer": "^11.1.4",
"lodash-es": "^4.17.23"
diff --git a/packages/lib-tutorial/src/Tutorial.ts b/packages/lib-tutorial/src/Tutorial.ts
index 577d926072..36771e0f3a 100644
--- a/packages/lib-tutorial/src/Tutorial.ts
+++ b/packages/lib-tutorial/src/Tutorial.ts
@@ -3,7 +3,7 @@ import type {
ScopeType,
TutorialId,
TutorialState,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
/**
* Interface for controlling the Cursorless tutorial
diff --git a/packages/lib-tutorial/src/TutorialImpl.ts b/packages/lib-tutorial/src/TutorialImpl.ts
index 55c67a600e..a5cb33199a 100644
--- a/packages/lib-tutorial/src/TutorialImpl.ts
+++ b/packages/lib-tutorial/src/TutorialImpl.ts
@@ -11,8 +11,8 @@ import type {
TutorialContentProvider,
TutorialId,
TutorialState,
-} from "@cursorless/common";
-import { Debouncer, Notifier } from "@cursorless/common";
+} from "@cursorless/lib-common";
+import { Debouncer, Notifier } from "@cursorless/lib-common";
import type {
CommandRunner,
CommandRunnerDecorator,
diff --git a/packages/lib-tutorial/src/TutorialStepParser.ts b/packages/lib-tutorial/src/TutorialStepParser.ts
index 05fbb1ee25..110134441a 100644
--- a/packages/lib-tutorial/src/TutorialStepParser.ts
+++ b/packages/lib-tutorial/src/TutorialStepParser.ts
@@ -3,7 +3,7 @@ import type {
TutorialContentProvider,
TutorialId,
TutorialStepFragment,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import type { CustomSpokenFormGenerator } from "@cursorless/cursorless-engine";
import { parseScopeType } from "@cursorless/cursorless-engine";
import { getScopeTypeSpokenFormStrict } from "./getScopeTypeSpokenFormStrict";
diff --git a/packages/lib-tutorial/src/arePreconditionsMet.ts b/packages/lib-tutorial/src/arePreconditionsMet.ts
index 9c30d6bfef..e63cd7b592 100644
--- a/packages/lib-tutorial/src/arePreconditionsMet.ts
+++ b/packages/lib-tutorial/src/arePreconditionsMet.ts
@@ -1,8 +1,8 @@
-import type { HatTokenMap, TextEditor } from "@cursorless/common";
+import type { HatTokenMap, TextEditor } from "@cursorless/lib-common";
import {
plainObjectToSelection,
serializedMarksToTokenHats,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import { isEqual } from "lodash-es";
import type { TutorialStep } from "./types/tutorial.types";
diff --git a/packages/lib-tutorial/src/getScopeTypeSpokenFormStrict.ts b/packages/lib-tutorial/src/getScopeTypeSpokenFormStrict.ts
index c5d213fd35..d88021df89 100644
--- a/packages/lib-tutorial/src/getScopeTypeSpokenFormStrict.ts
+++ b/packages/lib-tutorial/src/getScopeTypeSpokenFormStrict.ts
@@ -1,4 +1,4 @@
-import type { ScopeType } from "@cursorless/common";
+import type { ScopeType } from "@cursorless/lib-common";
import type { CustomSpokenFormGenerator } from "@cursorless/cursorless-engine";
import { getSpokenFormStrict } from "./getSpokenFormStrict";
diff --git a/packages/lib-tutorial/src/getSpokenFormStrict.ts b/packages/lib-tutorial/src/getSpokenFormStrict.ts
index a6f95fa6d0..a1d8f2691c 100644
--- a/packages/lib-tutorial/src/getSpokenFormStrict.ts
+++ b/packages/lib-tutorial/src/getSpokenFormStrict.ts
@@ -1,4 +1,4 @@
-import type { SpokenForm } from "@cursorless/common";
+import type { SpokenForm } from "@cursorless/lib-common";
import { TutorialError } from "./TutorialError";
export function getSpokenFormStrict(spokenForm: SpokenForm) {
diff --git a/packages/lib-tutorial/src/loadTutorial.ts b/packages/lib-tutorial/src/loadTutorial.ts
index 9d7a2c212f..5e56a6f355 100644
--- a/packages/lib-tutorial/src/loadTutorial.ts
+++ b/packages/lib-tutorial/src/loadTutorial.ts
@@ -5,7 +5,7 @@ import type {
TutorialContentProvider,
TutorialId,
TutorialState,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import type { CustomSpokenFormGenerator } from "@cursorless/cursorless-engine";
import { TutorialError } from "./TutorialError";
import { TutorialStepParser } from "./TutorialStepParser";
diff --git a/packages/lib-tutorial/src/setupStep.ts b/packages/lib-tutorial/src/setupStep.ts
index 5737650946..104487020a 100644
--- a/packages/lib-tutorial/src/setupStep.ts
+++ b/packages/lib-tutorial/src/setupStep.ts
@@ -5,13 +5,13 @@ import type {
TestCaseSnapshot,
TextEditor,
TutorialState,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import {
plainObjectToRange,
plainObjectToSelection,
serializedMarksToTokenHats,
toCharacterRange,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import type { TutorialContent } from "./types/tutorial.types";
interface HighlightedEditor {
diff --git a/packages/lib-tutorial/src/stepComponentParsers/ActionComponentParser.ts b/packages/lib-tutorial/src/stepComponentParsers/ActionComponentParser.ts
index 7f17ff9aa9..06a81435fc 100644
--- a/packages/lib-tutorial/src/stepComponentParsers/ActionComponentParser.ts
+++ b/packages/lib-tutorial/src/stepComponentParsers/ActionComponentParser.ts
@@ -1,5 +1,5 @@
-import type { ActionType } from "@cursorless/common";
-import { actionNames } from "@cursorless/common";
+import type { ActionType } from "@cursorless/lib-common";
+import { actionNames } from "@cursorless/lib-common";
import type { CustomSpokenFormGenerator } from "@cursorless/cursorless-engine";
import { defaultSpokenFormMap } from "@cursorless/cursorless-engine";
import { getSpokenFormStrict } from "../getSpokenFormStrict";
diff --git a/packages/lib-tutorial/src/stepComponentParsers/CursorlessCommandComponentParser.ts b/packages/lib-tutorial/src/stepComponentParsers/CursorlessCommandComponentParser.ts
index d4fc10599a..3122906d31 100644
--- a/packages/lib-tutorial/src/stepComponentParsers/CursorlessCommandComponentParser.ts
+++ b/packages/lib-tutorial/src/stepComponentParsers/CursorlessCommandComponentParser.ts
@@ -6,8 +6,8 @@ import type {
TestCaseSnapshot,
TutorialContentProvider,
TutorialId,
-} from "@cursorless/common";
-import { getKey, splitKey } from "@cursorless/common";
+} from "@cursorless/lib-common";
+import { getKey, splitKey } from "@cursorless/lib-common";
import type { CustomSpokenFormGenerator } from "@cursorless/cursorless-engine";
import {
canonicalizeAndValidateCommand,
diff --git a/packages/lib-tutorial/src/tutorialWrapCommandRunner.ts b/packages/lib-tutorial/src/tutorialWrapCommandRunner.ts
index 4d6ba32e1c..f6e419af4c 100644
--- a/packages/lib-tutorial/src/tutorialWrapCommandRunner.ts
+++ b/packages/lib-tutorial/src/tutorialWrapCommandRunner.ts
@@ -1,4 +1,4 @@
-import type { CommandComplete } from "@cursorless/common";
+import type { CommandComplete } from "@cursorless/lib-common";
import type { CommandRunner } from "@cursorless/cursorless-engine";
import { isEqual } from "lodash-es";
import type { TutorialContent } from "./types/tutorial.types";
diff --git a/packages/lib-tutorial/src/types/StepComponent.ts b/packages/lib-tutorial/src/types/StepComponent.ts
index 3ec4222171..8bc5308c32 100644
--- a/packages/lib-tutorial/src/types/StepComponent.ts
+++ b/packages/lib-tutorial/src/types/StepComponent.ts
@@ -1,4 +1,4 @@
-import type { TutorialStepFragment } from "@cursorless/common";
+import type { TutorialStepFragment } from "@cursorless/lib-common";
import type { TutorialStep } from "./tutorial.types";
/**
diff --git a/packages/lib-tutorial/src/types/TutorialStepTrigger.ts b/packages/lib-tutorial/src/types/TutorialStepTrigger.ts
index 72ae804b9e..a4d9975aa5 100644
--- a/packages/lib-tutorial/src/types/TutorialStepTrigger.ts
+++ b/packages/lib-tutorial/src/types/TutorialStepTrigger.ts
@@ -1,4 +1,4 @@
-import type { CommandComplete, ScopeType } from "@cursorless/common";
+import type { CommandComplete, ScopeType } from "@cursorless/lib-common";
/**
* Advance to the next step when the user completes a command
diff --git a/packages/lib-tutorial/src/types/tutorial.types.ts b/packages/lib-tutorial/src/types/tutorial.types.ts
index 16143db6b3..1334737d5f 100644
--- a/packages/lib-tutorial/src/types/tutorial.types.ts
+++ b/packages/lib-tutorial/src/types/tutorial.types.ts
@@ -1,7 +1,7 @@
import type {
TestCaseSnapshot,
TutorialStepFragment,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import type { TutorialStepTrigger } from "./TutorialStepTrigger";
/**
diff --git a/packages/lib-vscode-common/package.json b/packages/lib-vscode-common/package.json
index 09b733c9f2..51a917905a 100644
--- a/packages/lib-vscode-common/package.json
+++ b/packages/lib-vscode-common/package.json
@@ -12,7 +12,7 @@
"clean": "rm -rf ./out tsconfig.tsbuildinfo ./dist ./build"
},
"dependencies": {
- "@cursorless/common": "workspace:*"
+ "@cursorless/lib-common": "workspace:*"
},
"devDependencies": {
"@types/vscode": "1.98.0"
diff --git a/packages/lib-vscode-common/src/TestHelpers.ts b/packages/lib-vscode-common/src/TestHelpers.ts
index d9a5484975..6bc6903ee1 100644
--- a/packages/lib-vscode-common/src/TestHelpers.ts
+++ b/packages/lib-vscode-common/src/TestHelpers.ts
@@ -4,7 +4,7 @@ import type {
ScopeProvider,
TestHelpers,
TextEditor,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import type * as vscode from "vscode";
import type { VscodeApi } from "./VscodeApi";
import type { SpyWebViewEvent } from "./SpyWebViewEvent";
diff --git a/packages/lib-vscode-common/src/getExtensionApi.ts b/packages/lib-vscode-common/src/getExtensionApi.ts
index 88fdf75756..ee47878f70 100644
--- a/packages/lib-vscode-common/src/getExtensionApi.ts
+++ b/packages/lib-vscode-common/src/getExtensionApi.ts
@@ -1,4 +1,4 @@
-import type { CommandServerApi } from "@cursorless/common";
+import type { CommandServerApi } from "@cursorless/lib-common";
import * as vscode from "vscode";
import type { Query, Tree } from "web-tree-sitter";
import type { VscodeTestHelpers } from "./TestHelpers";
diff --git a/packages/lib-vscode-common/src/runCommand.ts b/packages/lib-vscode-common/src/runCommand.ts
index 8f1e464558..5931b48e87 100644
--- a/packages/lib-vscode-common/src/runCommand.ts
+++ b/packages/lib-vscode-common/src/runCommand.ts
@@ -2,8 +2,8 @@ import type {
ActionDescriptor,
Command,
CommandResponse,
-} from "@cursorless/common";
-import { CURSORLESS_COMMAND_ID, LATEST_VERSION } from "@cursorless/common";
+} from "@cursorless/lib-common";
+import { CURSORLESS_COMMAND_ID, LATEST_VERSION } from "@cursorless/lib-common";
import * as vscode from "vscode";
export async function runCursorlessCommand(
diff --git a/packages/lib-vscode-common/src/vscodeUtil.ts b/packages/lib-vscode-common/src/vscodeUtil.ts
index 6152097f67..0b8a4e8ee2 100644
--- a/packages/lib-vscode-common/src/vscodeUtil.ts
+++ b/packages/lib-vscode-common/src/vscodeUtil.ts
@@ -1,5 +1,5 @@
-import type { EndOfLine } from "@cursorless/common";
-import { Position, Range, Selection } from "@cursorless/common";
+import type { EndOfLine } from "@cursorless/lib-common";
+import { Position, Range, Selection } from "@cursorless/lib-common";
import * as vscode from "vscode";
export function toVscodeRange(range: Range): vscode.Range {
diff --git a/packages/lib-vscode-tutorial-webview/package.json b/packages/lib-vscode-tutorial-webview/package.json
index 7d3fd6c69d..9c3e4c82f4 100644
--- a/packages/lib-vscode-tutorial-webview/package.json
+++ b/packages/lib-vscode-tutorial-webview/package.json
@@ -14,7 +14,7 @@
"bundle:watch": "env NODE_OPTIONS=--import=tsx vite build --mode development --watch"
},
"dependencies": {
- "@cursorless/common": "workspace:*",
+ "@cursorless/lib-common": "workspace:*",
"bootstrap": "^5.3.8",
"preact": "^10.29.0"
},
diff --git a/packages/lib-vscode-tutorial-webview/src/App.tsx b/packages/lib-vscode-tutorial-webview/src/App.tsx
index 976a80ddd5..5fb2e025da 100644
--- a/packages/lib-vscode-tutorial-webview/src/App.tsx
+++ b/packages/lib-vscode-tutorial-webview/src/App.tsx
@@ -1,4 +1,4 @@
-import type { TutorialState } from "@cursorless/common";
+import type { TutorialState } from "@cursorless/lib-common";
import { useEffect, useState } from "preact/hooks";
import type { WebviewApi } from "vscode-webview";
import { Command } from "./Command";
diff --git a/packages/lib-vscode-tutorial-webview/src/TutorialStep.tsx b/packages/lib-vscode-tutorial-webview/src/TutorialStep.tsx
index 18c34f20d3..01d7c0bc0e 100644
--- a/packages/lib-vscode-tutorial-webview/src/TutorialStep.tsx
+++ b/packages/lib-vscode-tutorial-webview/src/TutorialStep.tsx
@@ -1,4 +1,4 @@
-import type { ActiveTutorialNoErrorsState } from "@cursorless/common";
+import type { ActiveTutorialNoErrorsState } from "@cursorless/lib-common";
import type { WebviewApi } from "vscode-webview";
import { ArrowLeftIcon } from "./ArrowLeftIcon";
import { ArrowRightIcon } from "./ArrowRightIcon";
diff --git a/packages/lib-vscode-tutorial-webview/vite.config.ts b/packages/lib-vscode-tutorial-webview/vite.config.ts
index c5714580e0..0495d2eb31 100644
--- a/packages/lib-vscode-tutorial-webview/vite.config.ts
+++ b/packages/lib-vscode-tutorial-webview/vite.config.ts
@@ -1,4 +1,4 @@
-import { vitePreactAlias } from "@cursorless/common/vite";
+import { vitePreactAlias } from "@cursorless/lib-common/vite";
import { defineConfig, type UserConfig } from "vite";
import purgeCss from "vite-plugin-purgecss";
diff --git a/packages/test-neovim-e2e/package.json b/packages/test-neovim-e2e/package.json
index dc82a86b6a..e5eb777709 100644
--- a/packages/test-neovim-e2e/package.json
+++ b/packages/test-neovim-e2e/package.json
@@ -10,7 +10,7 @@
"clean": "rm -rf ./out tsconfig.tsbuildinfo ./dist ./build"
},
"dependencies": {
- "@cursorless/common": "workspace:*",
+ "@cursorless/lib-common": "workspace:*",
"@cursorless/neovim-common": "workspace:*",
"@cursorless/neovim-registry": "workspace:*",
"@cursorless/node-common": "workspace:*",
diff --git a/packages/test-neovim-e2e/src/endToEndTestSetup.ts b/packages/test-neovim-e2e/src/endToEndTestSetup.ts
index 378d661315..45461bb1a0 100644
--- a/packages/test-neovim-e2e/src/endToEndTestSetup.ts
+++ b/packages/test-neovim-e2e/src/endToEndTestSetup.ts
@@ -1,5 +1,5 @@
-import type { IDE } from "@cursorless/common";
-import { shouldUpdateFixtures, sleep, SpyIDE } from "@cursorless/common";
+import type { IDE } from "@cursorless/lib-common";
+import { shouldUpdateFixtures, sleep, SpyIDE } from "@cursorless/lib-common";
import type { NeovimIDE } from "@cursorless/neovim-common";
import { getCursorlessApi } from "@cursorless/neovim-common";
import type { Context } from "mocha";
diff --git a/packages/test-neovim-e2e/src/shouldRunTest.ts b/packages/test-neovim-e2e/src/shouldRunTest.ts
index 42f3417ed1..c70c2a2821 100644
--- a/packages/test-neovim-e2e/src/shouldRunTest.ts
+++ b/packages/test-neovim-e2e/src/shouldRunTest.ts
@@ -1,4 +1,4 @@
-import type { TestCaseFixtureLegacy } from "@cursorless/common";
+import type { TestCaseFixtureLegacy } from "@cursorless/lib-common";
const failingFixtures = [
// actual finalState.selections.anchor is -1 compared to expected (other fixture.command.action.name == "insertCopyBefore" tests pass fine)
diff --git a/packages/test-neovim-e2e/src/suite/recorded.neovim.test.ts b/packages/test-neovim-e2e/src/suite/recorded.neovim.test.ts
index 96bc4542c3..754a856873 100644
--- a/packages/test-neovim-e2e/src/suite/recorded.neovim.test.ts
+++ b/packages/test-neovim-e2e/src/suite/recorded.neovim.test.ts
@@ -1,5 +1,5 @@
-import type { TestCaseFixtureLegacy } from "@cursorless/common";
-import { asyncSafety } from "@cursorless/common";
+import type { TestCaseFixtureLegacy } from "@cursorless/lib-common";
+import { asyncSafety } from "@cursorless/lib-common";
import { getRecordedTestPaths, runRecordedTest } from "@cursorless/node-common";
import type {
NeovimIDE,
diff --git a/packages/test-runner/package.json b/packages/test-runner/package.json
index 938513020c..b7bd8d675e 100644
--- a/packages/test-runner/package.json
+++ b/packages/test-runner/package.json
@@ -22,7 +22,7 @@
"generate-test-subset-file-strict": "c-tsx ./src/scripts/generateTestSubsetFile.ts --fail-if-not-exists"
},
"dependencies": {
- "@cursorless/common": "workspace:*",
+ "@cursorless/lib-common": "workspace:*",
"@cursorless/neovim-common": "workspace:*",
"@cursorless/neovim-registry": "workspace:*",
"@cursorless/node-common": "workspace:*",
diff --git a/packages/test-runner/src/launchNeovimAndRunTests.ts b/packages/test-runner/src/launchNeovimAndRunTests.ts
index 90ac2fc75e..636401ba41 100644
--- a/packages/test-runner/src/launchNeovimAndRunTests.ts
+++ b/packages/test-runner/src/launchNeovimAndRunTests.ts
@@ -1,4 +1,4 @@
-import { getEnvironmentVariableStrict } from "@cursorless/common";
+import { getEnvironmentVariableStrict } from "@cursorless/lib-common";
import { getCursorlessRepoRoot, isWindows } from "@cursorless/node-common";
import * as cp from "child_process";
import { copyFile, mkdirSync, readdirSync } from "fs";
diff --git a/packages/test-runner/src/launchVscodeAndRunTests.ts b/packages/test-runner/src/launchVscodeAndRunTests.ts
index f9ae463856..440b5c1c14 100644
--- a/packages/test-runner/src/launchVscodeAndRunTests.ts
+++ b/packages/test-runner/src/launchVscodeAndRunTests.ts
@@ -1,7 +1,7 @@
import {
extensionDependencies,
getEnvironmentVariableStrict,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import { getCursorlessRepoRoot, isWindows } from "@cursorless/node-common";
import {
downloadAndUnzipVSCode,
diff --git a/packages/test-talon-e2e/package.json b/packages/test-talon-e2e/package.json
index cdde669831..21adba3e4c 100644
--- a/packages/test-talon-e2e/package.json
+++ b/packages/test-talon-e2e/package.json
@@ -11,7 +11,7 @@
"test:quickjs": "bash ./scripts/test-quickjs.sh"
},
"dependencies": {
- "@cursorless/common": "workspace:*",
+ "@cursorless/lib-common": "workspace:*",
"@cursorless/cursorless-everywhere-talon-core": "workspace:*",
"@cursorless/node-common": "workspace:*",
"@cursorless/test-case-recorder": "workspace:*"
diff --git a/packages/test-talon-e2e/src/constructTestHelpers.ts b/packages/test-talon-e2e/src/constructTestHelpers.ts
index 7ebdef668c..c92665fb10 100644
--- a/packages/test-talon-e2e/src/constructTestHelpers.ts
+++ b/packages/test-talon-e2e/src/constructTestHelpers.ts
@@ -6,7 +6,7 @@ import type {
TestCaseSnapshot,
TestHelpers,
TextEditor,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import type { TalonJsTestHelpers } from "@cursorless/cursorless-everywhere-talon-core";
import { takeSnapshot } from "@cursorless/test-case-recorder";
diff --git a/packages/test-talon-e2e/src/endToEndTestSetUp.ts b/packages/test-talon-e2e/src/endToEndTestSetUp.ts
index 25de5ef014..e78b29aa4c 100644
--- a/packages/test-talon-e2e/src/endToEndTestSetUp.ts
+++ b/packages/test-talon-e2e/src/endToEndTestSetUp.ts
@@ -1,4 +1,4 @@
-import { type IDE, SpyIDE } from "@cursorless/common";
+import { type IDE, SpyIDE } from "@cursorless/lib-common";
import type { TalonJsTestHelpers } from "@cursorless/cursorless-everywhere-talon-core";
import type { Context } from "mocha";
diff --git a/packages/test-talon-e2e/src/quickjsTest.ts b/packages/test-talon-e2e/src/quickjsTest.ts
index 1efc34276c..6fb713a118 100644
--- a/packages/test-talon-e2e/src/quickjsTest.ts
+++ b/packages/test-talon-e2e/src/quickjsTest.ts
@@ -2,7 +2,7 @@ import {
LATEST_VERSION,
type ActionDescriptor,
type CommandLatest,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import { activate } from "@cursorless/cursorless-everywhere-talon-core";
import * as std from "std";
import { talonMock } from "./talonMock";
diff --git a/packages/test-talon-e2e/src/recorded.talonjs.test.ts b/packages/test-talon-e2e/src/recorded.talonjs.test.ts
index e697bd97fb..dd01b0e2d2 100644
--- a/packages/test-talon-e2e/src/recorded.talonjs.test.ts
+++ b/packages/test-talon-e2e/src/recorded.talonjs.test.ts
@@ -2,7 +2,7 @@ import {
asyncSafety,
DEFAULT_TEXT_EDITOR_OPTIONS_FOR_TEST,
type TextEditor,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import {
activate,
type EditorState,
diff --git a/packages/test-talon-e2e/src/talonMock.ts b/packages/test-talon-e2e/src/talonMock.ts
index 5ac021dbef..de4cc79270 100644
--- a/packages/test-talon-e2e/src/talonMock.ts
+++ b/packages/test-talon-e2e/src/talonMock.ts
@@ -1,4 +1,4 @@
-import type { RangeOffsets, SelectionOffsets } from "@cursorless/common";
+import type { RangeOffsets, SelectionOffsets } from "@cursorless/lib-common";
import type {
EditorEdit,
EditorState,
diff --git a/packages/test-talon-e2e/src/types/cursorless.ts b/packages/test-talon-e2e/src/types/cursorless.ts
index 1ff89cd691..e256d2bd1c 100644
--- a/packages/test-talon-e2e/src/types/cursorless.ts
+++ b/packages/test-talon-e2e/src/types/cursorless.ts
@@ -1,4 +1,4 @@
-import type { RunMode } from "@cursorless/common";
+import type { RunMode } from "@cursorless/lib-common";
import type {
ActivateReturnValue,
Talon,
diff --git a/packages/test-vscode-e2e/package.json b/packages/test-vscode-e2e/package.json
index 1b9c9b1b98..1b3efe829c 100644
--- a/packages/test-vscode-e2e/package.json
+++ b/packages/test-vscode-e2e/package.json
@@ -10,7 +10,7 @@
"clean": "rm -rf ./out tsconfig.tsbuildinfo ./dist ./build"
},
"dependencies": {
- "@cursorless/common": "workspace:*",
+ "@cursorless/lib-common": "workspace:*",
"@cursorless/node-common": "workspace:*",
"@cursorless/vscode-common": "workspace:*",
"immer": "^11.1.4",
diff --git a/packages/test-vscode-e2e/src/endToEndTestSetup.ts b/packages/test-vscode-e2e/src/endToEndTestSetup.ts
index 4d13c122a8..657f5ef6f3 100644
--- a/packages/test-vscode-e2e/src/endToEndTestSetup.ts
+++ b/packages/test-vscode-e2e/src/endToEndTestSetup.ts
@@ -1,5 +1,5 @@
-import type { IDE, NormalizedIDE } from "@cursorless/common";
-import { shouldUpdateFixtures, sleep, SpyIDE } from "@cursorless/common";
+import type { IDE, NormalizedIDE } from "@cursorless/lib-common";
+import { shouldUpdateFixtures, sleep, SpyIDE } from "@cursorless/lib-common";
import {
getCursorlessApi,
resetReusableEditor,
diff --git a/packages/test-vscode-e2e/src/mockPrePhraseGetVersion.ts b/packages/test-vscode-e2e/src/mockPrePhraseGetVersion.ts
index 0b91c3f048..872f18a11d 100644
--- a/packages/test-vscode-e2e/src/mockPrePhraseGetVersion.ts
+++ b/packages/test-vscode-e2e/src/mockPrePhraseGetVersion.ts
@@ -1,4 +1,4 @@
-import type { CommandServerApi } from "@cursorless/common";
+import type { CommandServerApi } from "@cursorless/lib-common";
import * as sinon from "sinon";
export function mockPrePhraseGetVersion(
diff --git a/packages/test-vscode-e2e/src/suite/backwardCompatibility.vscode.test.ts b/packages/test-vscode-e2e/src/suite/backwardCompatibility.vscode.test.ts
index f42242e7b7..60bf3643e7 100644
--- a/packages/test-vscode-e2e/src/suite/backwardCompatibility.vscode.test.ts
+++ b/packages/test-vscode-e2e/src/suite/backwardCompatibility.vscode.test.ts
@@ -1,4 +1,4 @@
-import { CURSORLESS_COMMAND_ID } from "@cursorless/common";
+import { CURSORLESS_COMMAND_ID } from "@cursorless/lib-common";
import { getCursorlessApi, getReusableEditor } from "@cursorless/vscode-common";
import * as assert from "assert";
import * as vscode from "vscode";
diff --git a/packages/test-vscode-e2e/src/suite/breakpoints.vscode.test.ts b/packages/test-vscode-e2e/src/suite/breakpoints.vscode.test.ts
index dc2b319d74..e692ea865f 100644
--- a/packages/test-vscode-e2e/src/suite/breakpoints.vscode.test.ts
+++ b/packages/test-vscode-e2e/src/suite/breakpoints.vscode.test.ts
@@ -1,4 +1,4 @@
-import { LATEST_VERSION } from "@cursorless/common";
+import { LATEST_VERSION } from "@cursorless/lib-common";
import {
getCursorlessApi,
openNewEditor,
diff --git a/packages/test-vscode-e2e/src/suite/commandHistory.vscode.test.ts b/packages/test-vscode-e2e/src/suite/commandHistory.vscode.test.ts
index cf36dd2eae..d8cc723a22 100644
--- a/packages/test-vscode-e2e/src/suite/commandHistory.vscode.test.ts
+++ b/packages/test-vscode-e2e/src/suite/commandHistory.vscode.test.ts
@@ -2,8 +2,8 @@ import type {
CommandComplete,
CommandHistoryEntry,
ReplaceActionDescriptor,
-} from "@cursorless/common";
-import { LATEST_VERSION } from "@cursorless/common";
+} from "@cursorless/lib-common";
+import { LATEST_VERSION } from "@cursorless/lib-common";
import {
getCursorlessApi,
openNewEditor,
diff --git a/packages/test-vscode-e2e/src/suite/containingTokenTwice.vscode.test.ts b/packages/test-vscode-e2e/src/suite/containingTokenTwice.vscode.test.ts
index cca12c1b9a..3e5d34a669 100644
--- a/packages/test-vscode-e2e/src/suite/containingTokenTwice.vscode.test.ts
+++ b/packages/test-vscode-e2e/src/suite/containingTokenTwice.vscode.test.ts
@@ -1,4 +1,4 @@
-import { LATEST_VERSION } from "@cursorless/common";
+import { LATEST_VERSION } from "@cursorless/lib-common";
import {
getCursorlessApi,
getReusableEditor,
diff --git a/packages/test-vscode-e2e/src/suite/crossCellsSetSelection.vscode.test.ts b/packages/test-vscode-e2e/src/suite/crossCellsSetSelection.vscode.test.ts
index 9cd9b43aab..3b1c3d2325 100644
--- a/packages/test-vscode-e2e/src/suite/crossCellsSetSelection.vscode.test.ts
+++ b/packages/test-vscode-e2e/src/suite/crossCellsSetSelection.vscode.test.ts
@@ -1,4 +1,4 @@
-import { LATEST_VERSION } from "@cursorless/common";
+import { LATEST_VERSION } from "@cursorless/lib-common";
import { isLinux } from "@cursorless/node-common";
import {
getCursorlessApi,
diff --git a/packages/test-vscode-e2e/src/suite/editNewCell.vscode.test.ts b/packages/test-vscode-e2e/src/suite/editNewCell.vscode.test.ts
index d5752b5d66..d31c6c43ed 100644
--- a/packages/test-vscode-e2e/src/suite/editNewCell.vscode.test.ts
+++ b/packages/test-vscode-e2e/src/suite/editNewCell.vscode.test.ts
@@ -8,7 +8,7 @@ import * as assert from "assert";
import { window } from "vscode";
import { endToEndTestSetup, sleepWithBackoff } from "../endToEndTestSetup";
import { getPlainNotebookContents } from "../notebook";
-import { LATEST_VERSION } from "@cursorless/common";
+import { LATEST_VERSION } from "@cursorless/lib-common";
// Check that setSelection is able to focus the correct cell
suite("Edit new cell", async function () {
diff --git a/packages/test-vscode-e2e/src/suite/explicitMark.vscode.test.ts b/packages/test-vscode-e2e/src/suite/explicitMark.vscode.test.ts
index 96df5198f0..a5ddc393cd 100644
--- a/packages/test-vscode-e2e/src/suite/explicitMark.vscode.test.ts
+++ b/packages/test-vscode-e2e/src/suite/explicitMark.vscode.test.ts
@@ -1,4 +1,4 @@
-import { LATEST_VERSION } from "@cursorless/common";
+import { LATEST_VERSION } from "@cursorless/lib-common";
import {
getCursorlessApi,
getReusableEditor,
diff --git a/packages/test-vscode-e2e/src/suite/fold.vscode.test.ts b/packages/test-vscode-e2e/src/suite/fold.vscode.test.ts
index 46abe5fdc1..c49849622a 100644
--- a/packages/test-vscode-e2e/src/suite/fold.vscode.test.ts
+++ b/packages/test-vscode-e2e/src/suite/fold.vscode.test.ts
@@ -1,4 +1,4 @@
-import { LATEST_VERSION } from "@cursorless/common";
+import { LATEST_VERSION } from "@cursorless/lib-common";
import {
getReusableEditor,
runCursorlessCommand,
diff --git a/packages/test-vscode-e2e/src/suite/followLink.vscode.test.ts b/packages/test-vscode-e2e/src/suite/followLink.vscode.test.ts
index 1a1007f3d2..b506bfab8a 100644
--- a/packages/test-vscode-e2e/src/suite/followLink.vscode.test.ts
+++ b/packages/test-vscode-e2e/src/suite/followLink.vscode.test.ts
@@ -1,4 +1,4 @@
-import { LATEST_VERSION } from "@cursorless/common";
+import { LATEST_VERSION } from "@cursorless/lib-common";
import { getFixturePath, isWindows } from "@cursorless/node-common";
import {
getReusableEditor,
diff --git a/packages/test-vscode-e2e/src/suite/groupByDocument.vscode.test.ts b/packages/test-vscode-e2e/src/suite/groupByDocument.vscode.test.ts
index e7a87804ea..3c913bf4b1 100644
--- a/packages/test-vscode-e2e/src/suite/groupByDocument.vscode.test.ts
+++ b/packages/test-vscode-e2e/src/suite/groupByDocument.vscode.test.ts
@@ -1,4 +1,4 @@
-import { LATEST_VERSION, splitKey } from "@cursorless/common";
+import { LATEST_VERSION, splitKey } from "@cursorless/lib-common";
import {
getCursorlessApi,
runCursorlessCommand,
diff --git a/packages/test-vscode-e2e/src/suite/instanceAcrossSplit.vscode.test.ts b/packages/test-vscode-e2e/src/suite/instanceAcrossSplit.vscode.test.ts
index 2af9157b2f..d88b35d2b0 100644
--- a/packages/test-vscode-e2e/src/suite/instanceAcrossSplit.vscode.test.ts
+++ b/packages/test-vscode-e2e/src/suite/instanceAcrossSplit.vscode.test.ts
@@ -1,10 +1,10 @@
-import type { Modifier, SpyIDE } from "@cursorless/common";
+import type { Modifier, SpyIDE } from "@cursorless/lib-common";
import {
HatStability,
LATEST_VERSION,
Range,
asyncSafety,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import {
getCursorlessApi,
openNewEditor,
diff --git a/packages/test-vscode-e2e/src/suite/intraCellSetSelection.vscode.test.ts b/packages/test-vscode-e2e/src/suite/intraCellSetSelection.vscode.test.ts
index 09454b47bf..133eb56112 100644
--- a/packages/test-vscode-e2e/src/suite/intraCellSetSelection.vscode.test.ts
+++ b/packages/test-vscode-e2e/src/suite/intraCellSetSelection.vscode.test.ts
@@ -1,4 +1,4 @@
-import { LATEST_VERSION, splitKey } from "@cursorless/common";
+import { LATEST_VERSION, splitKey } from "@cursorless/lib-common";
import {
getCellIndex,
getCursorlessApi,
diff --git a/packages/test-vscode-e2e/src/suite/performance.vscode.test.ts b/packages/test-vscode-e2e/src/suite/performance.vscode.test.ts
index e073e4123e..cbf4f9b69d 100644
--- a/packages/test-vscode-e2e/src/suite/performance.vscode.test.ts
+++ b/packages/test-vscode-e2e/src/suite/performance.vscode.test.ts
@@ -3,8 +3,8 @@ import type {
Modifier,
ScopeType,
SimpleScopeTypeType,
-} from "@cursorless/common";
-import { asyncSafety } from "@cursorless/common";
+} from "@cursorless/lib-common";
+import { asyncSafety } from "@cursorless/lib-common";
import {
getReusableEditor,
runCursorlessAction,
diff --git a/packages/test-vscode-e2e/src/suite/pourAcrossSplit.vscode.test.ts b/packages/test-vscode-e2e/src/suite/pourAcrossSplit.vscode.test.ts
index d7543e5109..6eeeda1aaa 100644
--- a/packages/test-vscode-e2e/src/suite/pourAcrossSplit.vscode.test.ts
+++ b/packages/test-vscode-e2e/src/suite/pourAcrossSplit.vscode.test.ts
@@ -1,4 +1,4 @@
-import { LATEST_VERSION } from "@cursorless/common";
+import { LATEST_VERSION } from "@cursorless/lib-common";
import {
getCursorlessApi,
openNewEditor,
diff --git a/packages/test-vscode-e2e/src/suite/prePhraseSnapshot.vscode.test.ts b/packages/test-vscode-e2e/src/suite/prePhraseSnapshot.vscode.test.ts
index 3f39e58039..4ff2bab857 100644
--- a/packages/test-vscode-e2e/src/suite/prePhraseSnapshot.vscode.test.ts
+++ b/packages/test-vscode-e2e/src/suite/prePhraseSnapshot.vscode.test.ts
@@ -2,7 +2,7 @@ import {
HatStability,
LATEST_VERSION,
selectionToPlainObject,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import {
fromVscodeSelection,
getCursorlessApi,
diff --git a/packages/test-vscode-e2e/src/suite/recorded.vscode.test.ts b/packages/test-vscode-e2e/src/suite/recorded.vscode.test.ts
index 7bb2a45c31..a5ebf8c243 100644
--- a/packages/test-vscode-e2e/src/suite/recorded.vscode.test.ts
+++ b/packages/test-vscode-e2e/src/suite/recorded.vscode.test.ts
@@ -1,9 +1,9 @@
-import type { TextEditor } from "@cursorless/common";
+import type { TextEditor } from "@cursorless/lib-common";
import {
DEFAULT_TEXT_EDITOR_OPTIONS_FOR_TEST,
HatStability,
asyncSafety,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import { getRecordedTestPaths, runRecordedTest } from "@cursorless/node-common";
import {
getCursorlessApi,
diff --git a/packages/test-vscode-e2e/src/suite/revealRange.vscode.test.ts b/packages/test-vscode-e2e/src/suite/revealRange.vscode.test.ts
index 637ef4cbec..9226d236ee 100644
--- a/packages/test-vscode-e2e/src/suite/revealRange.vscode.test.ts
+++ b/packages/test-vscode-e2e/src/suite/revealRange.vscode.test.ts
@@ -1,4 +1,4 @@
-import { LATEST_VERSION } from "@cursorless/common";
+import { LATEST_VERSION } from "@cursorless/lib-common";
import {
getReusableEditor,
runCursorlessCommand,
diff --git a/packages/test-vscode-e2e/src/suite/scopeProvider/assertCalledWithScopeInfo.ts b/packages/test-vscode-e2e/src/suite/scopeProvider/assertCalledWithScopeInfo.ts
index 9466ff14d4..4aff73cc79 100644
--- a/packages/test-vscode-e2e/src/suite/scopeProvider/assertCalledWithScopeInfo.ts
+++ b/packages/test-vscode-e2e/src/suite/scopeProvider/assertCalledWithScopeInfo.ts
@@ -1,4 +1,4 @@
-import { type ScopeType, type ScopeTypeInfo } from "@cursorless/common";
+import { type ScopeType, type ScopeTypeInfo } from "@cursorless/lib-common";
import { assert } from "chai";
import { isEqual } from "lodash-es";
import type { SinonSpy } from "sinon";
diff --git a/packages/test-vscode-e2e/src/suite/scopeProvider/runBasicScopeInfoTest.ts b/packages/test-vscode-e2e/src/suite/scopeProvider/runBasicScopeInfoTest.ts
index 5989e25acd..8edccc6971 100644
--- a/packages/test-vscode-e2e/src/suite/scopeProvider/runBasicScopeInfoTest.ts
+++ b/packages/test-vscode-e2e/src/suite/scopeProvider/runBasicScopeInfoTest.ts
@@ -1,5 +1,5 @@
-import type { ScopeSupportInfo } from "@cursorless/common";
-import { ScopeSupport } from "@cursorless/common";
+import type { ScopeSupportInfo } from "@cursorless/lib-common";
+import { ScopeSupport } from "@cursorless/lib-common";
import { getCursorlessApi, getReusableEditor } from "@cursorless/vscode-common";
import * as sinon from "sinon";
import type { TextDocument } from "vscode";
diff --git a/packages/test-vscode-e2e/src/suite/scopeProvider/runCustomRegexScopeInfoTest.ts b/packages/test-vscode-e2e/src/suite/scopeProvider/runCustomRegexScopeInfoTest.ts
index 920d709cbf..17d123a3ed 100644
--- a/packages/test-vscode-e2e/src/suite/scopeProvider/runCustomRegexScopeInfoTest.ts
+++ b/packages/test-vscode-e2e/src/suite/scopeProvider/runCustomRegexScopeInfoTest.ts
@@ -1,5 +1,5 @@
-import type { ScopeSupportInfo, ScopeType } from "@cursorless/common";
-import { ScopeSupport, sleep } from "@cursorless/common";
+import type { ScopeSupportInfo, ScopeType } from "@cursorless/lib-common";
+import { ScopeSupport, sleep } from "@cursorless/lib-common";
import { getCursorlessApi, openNewEditor } from "@cursorless/vscode-common";
import { stat, unlink, writeFile } from "fs/promises";
import * as sinon from "sinon";
diff --git a/packages/test-vscode-e2e/src/suite/scopeProvider/runCustomSpokenFormScopeInfoTest.ts b/packages/test-vscode-e2e/src/suite/scopeProvider/runCustomSpokenFormScopeInfoTest.ts
index 4fe23cc454..c54a0df4f7 100644
--- a/packages/test-vscode-e2e/src/suite/scopeProvider/runCustomSpokenFormScopeInfoTest.ts
+++ b/packages/test-vscode-e2e/src/suite/scopeProvider/runCustomSpokenFormScopeInfoTest.ts
@@ -1,5 +1,5 @@
-import type { ScopeTypeInfo } from "@cursorless/common";
-import { DOCS_URL, sleep } from "@cursorless/common";
+import type { ScopeTypeInfo } from "@cursorless/lib-common";
+import { DOCS_URL, sleep } from "@cursorless/lib-common";
import { getCursorlessApi } from "@cursorless/vscode-common";
import { stat, unlink, writeFile } from "fs/promises";
import * as sinon from "sinon";
diff --git a/packages/test-vscode-e2e/src/suite/scopeProvider/runSurroundingPairScopeInfoTest.ts b/packages/test-vscode-e2e/src/suite/scopeProvider/runSurroundingPairScopeInfoTest.ts
index b0d054d984..5cbc49234f 100644
--- a/packages/test-vscode-e2e/src/suite/scopeProvider/runSurroundingPairScopeInfoTest.ts
+++ b/packages/test-vscode-e2e/src/suite/scopeProvider/runSurroundingPairScopeInfoTest.ts
@@ -1,5 +1,5 @@
-import type { ScopeSupportInfo } from "@cursorless/common";
-import { ScopeSupport } from "@cursorless/common";
+import type { ScopeSupportInfo } from "@cursorless/lib-common";
+import { ScopeSupport } from "@cursorless/lib-common";
import { getCursorlessApi, openNewEditor } from "@cursorless/vscode-common";
import * as sinon from "sinon";
import { Position, commands } from "vscode";
diff --git a/packages/test-vscode-e2e/src/suite/scopeProvider/scopeProvider.vscode.test.ts b/packages/test-vscode-e2e/src/suite/scopeProvider/scopeProvider.vscode.test.ts
index 992c087165..540d2d1e8f 100644
--- a/packages/test-vscode-e2e/src/suite/scopeProvider/scopeProvider.vscode.test.ts
+++ b/packages/test-vscode-e2e/src/suite/scopeProvider/scopeProvider.vscode.test.ts
@@ -1,4 +1,4 @@
-import { asyncSafety } from "@cursorless/common";
+import { asyncSafety } from "@cursorless/lib-common";
import { isLinux } from "@cursorless/node-common";
import { endToEndTestSetup } from "../../endToEndTestSetup";
import { isCI } from "../../isCI";
diff --git a/packages/test-vscode-e2e/src/suite/scopeVisualizer/scopeVisualizer.vscode.test.ts b/packages/test-vscode-e2e/src/suite/scopeVisualizer/scopeVisualizer.vscode.test.ts
index 4452ffba4e..2d6afdd017 100644
--- a/packages/test-vscode-e2e/src/suite/scopeVisualizer/scopeVisualizer.vscode.test.ts
+++ b/packages/test-vscode-e2e/src/suite/scopeVisualizer/scopeVisualizer.vscode.test.ts
@@ -1,4 +1,4 @@
-import { asyncSafety } from "@cursorless/common";
+import { asyncSafety } from "@cursorless/lib-common";
import { getCursorlessApi } from "@cursorless/vscode-common";
import { commands } from "vscode";
import { endToEndTestSetup } from "../../endToEndTestSetup";
diff --git a/packages/test-vscode-e2e/src/suite/scopeVisualizer/scopeVisualizerTest.types.ts b/packages/test-vscode-e2e/src/suite/scopeVisualizer/scopeVisualizerTest.types.ts
index a77d9b426f..0c59ae050c 100644
--- a/packages/test-vscode-e2e/src/suite/scopeVisualizer/scopeVisualizerTest.types.ts
+++ b/packages/test-vscode-e2e/src/suite/scopeVisualizer/scopeVisualizerTest.types.ts
@@ -1,4 +1,4 @@
-import type { RangePlainObject } from "@cursorless/common";
+import type { RangePlainObject } from "@cursorless/lib-common";
import type { VscodeApi } from "@cursorless/vscode-common";
import type * as sinon from "sinon";
import type * as vscode from "vscode";
diff --git a/packages/test-vscode-e2e/src/suite/scopeVisualizer/spyCallsToPlainObject.ts b/packages/test-vscode-e2e/src/suite/scopeVisualizer/spyCallsToPlainObject.ts
index c77dc8a1b6..2cb5479cfe 100644
--- a/packages/test-vscode-e2e/src/suite/scopeVisualizer/spyCallsToPlainObject.ts
+++ b/packages/test-vscode-e2e/src/suite/scopeVisualizer/spyCallsToPlainObject.ts
@@ -1,4 +1,4 @@
-import { rangeToPlainObject } from "@cursorless/common";
+import { rangeToPlainObject } from "@cursorless/lib-common";
import type { DecorationRenderOptions } from "vscode";
import type {
SetDecorationsParameters,
diff --git a/packages/test-vscode-e2e/src/suite/scroll.vscode.test.ts b/packages/test-vscode-e2e/src/suite/scroll.vscode.test.ts
index 00a89a27c8..c576bdaf12 100644
--- a/packages/test-vscode-e2e/src/suite/scroll.vscode.test.ts
+++ b/packages/test-vscode-e2e/src/suite/scroll.vscode.test.ts
@@ -1,4 +1,4 @@
-import { LATEST_VERSION } from "@cursorless/common";
+import { LATEST_VERSION } from "@cursorless/lib-common";
import {
getReusableEditor,
runCursorlessCommand,
diff --git a/packages/test-vscode-e2e/src/suite/setupFake.ts b/packages/test-vscode-e2e/src/suite/setupFake.ts
index e1f1617004..e844e4a65f 100644
--- a/packages/test-vscode-e2e/src/suite/setupFake.ts
+++ b/packages/test-vscode-e2e/src/suite/setupFake.ts
@@ -1,4 +1,4 @@
-import type { HatStability, NormalizedIDE } from "@cursorless/common";
+import type { HatStability, NormalizedIDE } from "@cursorless/lib-common";
export function setupFake(ide: NormalizedIDE, hatStability: HatStability) {
ide.configuration.mockConfiguration("experimental", {
diff --git a/packages/test-vscode-e2e/src/suite/testCaseRecorder.vscode.test.ts b/packages/test-vscode-e2e/src/suite/testCaseRecorder.vscode.test.ts
index 9418ef0a30..783cef8681 100644
--- a/packages/test-vscode-e2e/src/suite/testCaseRecorder.vscode.test.ts
+++ b/packages/test-vscode-e2e/src/suite/testCaseRecorder.vscode.test.ts
@@ -1,5 +1,5 @@
-import type { HatTokenMap, SimpleActionName } from "@cursorless/common";
-import { LATEST_VERSION } from "@cursorless/common";
+import type { HatTokenMap, SimpleActionName } from "@cursorless/lib-common";
+import { LATEST_VERSION } from "@cursorless/lib-common";
import {
getFixturePath,
getRecordedTestsDirPath,
diff --git a/packages/test-vscode-e2e/src/suite/tutorial/tutorial.vscode.test.ts b/packages/test-vscode-e2e/src/suite/tutorial/tutorial.vscode.test.ts
index 71d07b7e34..3ed6ced379 100644
--- a/packages/test-vscode-e2e/src/suite/tutorial/tutorial.vscode.test.ts
+++ b/packages/test-vscode-e2e/src/suite/tutorial/tutorial.vscode.test.ts
@@ -1,9 +1,9 @@
-import type { SpyIDE, TestCaseFixtureLegacy } from "@cursorless/common";
+import type { SpyIDE, TestCaseFixtureLegacy } from "@cursorless/lib-common";
import {
LATEST_VERSION,
asyncSafety,
getSnapshotForComparison,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import { getRecordedTestsDirPath, loadFixture } from "@cursorless/node-common";
import {
getCursorlessApi,
diff --git a/packages/test-vscode-e2e/src/suite/visible.vscode.test.ts b/packages/test-vscode-e2e/src/suite/visible.vscode.test.ts
index 62849e74db..576c85a81f 100644
--- a/packages/test-vscode-e2e/src/suite/visible.vscode.test.ts
+++ b/packages/test-vscode-e2e/src/suite/visible.vscode.test.ts
@@ -1,4 +1,4 @@
-import { LATEST_VERSION } from "@cursorless/common";
+import { LATEST_VERSION } from "@cursorless/lib-common";
import {
getReusableEditor,
runCursorlessCommand,
diff --git a/packages/test-vscode-e2e/src/suite/wrapWithSnippetAcrossSplit.vscode.test.ts b/packages/test-vscode-e2e/src/suite/wrapWithSnippetAcrossSplit.vscode.test.ts
index b14215c45f..a60fd50842 100644
--- a/packages/test-vscode-e2e/src/suite/wrapWithSnippetAcrossSplit.vscode.test.ts
+++ b/packages/test-vscode-e2e/src/suite/wrapWithSnippetAcrossSplit.vscode.test.ts
@@ -1,4 +1,4 @@
-import { HatStability, LATEST_VERSION } from "@cursorless/common";
+import { HatStability, LATEST_VERSION } from "@cursorless/lib-common";
import {
getCursorlessApi,
openNewEditor,
diff --git a/packages/tool-meta-updater/package.json b/packages/tool-meta-updater/package.json
index 397a76c708..510d55a251 100644
--- a/packages/tool-meta-updater/package.json
+++ b/packages/tool-meta-updater/package.json
@@ -10,7 +10,7 @@
"clean": "rm -rf ./out tsconfig.tsbuildinfo ./dist ./build"
},
"devDependencies": {
- "@cursorless/common": "workspace:*",
+ "@cursorless/lib-common": "workspace:*",
"@pnpm/lockfile-file": "^9.1.3",
"@pnpm/types": "^1001.3.0",
"@types/js-yaml": "^4.0.9",
diff --git a/packages/tool-meta-updater/src/getCursorlessVscodeFields.ts b/packages/tool-meta-updater/src/getCursorlessVscodeFields.ts
index fd707bac67..fbf673cc17 100644
--- a/packages/tool-meta-updater/src/getCursorlessVscodeFields.ts
+++ b/packages/tool-meta-updater/src/getCursorlessVscodeFields.ts
@@ -1,4 +1,4 @@
-import { cursorlessCommandDescriptions } from "@cursorless/common";
+import { cursorlessCommandDescriptions } from "@cursorless/lib-common";
import type { PackageJson } from "type-fest";
export function getCursorlessVscodeFields(input: PackageJson) {
diff --git a/packages/tool-meta-updater/src/metaUpdater.ts b/packages/tool-meta-updater/src/metaUpdater.ts
index 6a60c1664a..24700f7f34 100644
--- a/packages/tool-meta-updater/src/metaUpdater.ts
+++ b/packages/tool-meta-updater/src/metaUpdater.ts
@@ -2,7 +2,7 @@
// https://github.com/pnpm/pnpm/tree/d583fbb2ad7e6b986d133a4eaf60824713f13c06/.meta-updater/src/index.ts
// License was
// https://github.com/pnpm/pnpm/blob/d583fbb2ad7e6b986d133a4eaf60824713f13c06/LICENSE
-import { languageScopeSupport } from "@cursorless/common";
+import { languageScopeSupport } from "@cursorless/lib-common";
import { readWantedLockfile } from "@pnpm/lockfile-file";
import { createUpdateOptions } from "@pnpm/meta-updater";
import type { Context } from "./Context";
diff --git a/packages/tool-meta-updater/src/updateLanguageMdx.ts b/packages/tool-meta-updater/src/updateLanguageMdx.ts
index c2f7969646..1005022194 100644
--- a/packages/tool-meta-updater/src/updateLanguageMdx.ts
+++ b/packages/tool-meta-updater/src/updateLanguageMdx.ts
@@ -1,4 +1,4 @@
-import { prettifyLanguageName } from "@cursorless/common";
+import { prettifyLanguageName } from "@cursorless/lib-common";
import type { FormatPluginFnOptions } from "@pnpm/meta-updater";
export function updateLanguageMdx(
diff --git a/packages/tool-meta-updater/src/updatePackageJson.ts b/packages/tool-meta-updater/src/updatePackageJson.ts
index 75788e3aa7..13d85d1eb6 100644
--- a/packages/tool-meta-updater/src/updatePackageJson.ts
+++ b/packages/tool-meta-updater/src/updatePackageJson.ts
@@ -1,4 +1,4 @@
-import { omitByDeep } from "@cursorless/common";
+import { omitByDeep } from "@cursorless/lib-common";
import type { FormatPluginFnOptions } from "@pnpm/meta-updater";
import { isUndefined } from "lodash-es";
import type { PackageJson } from "type-fest";
diff --git a/packages/tool-meta-updater/src/updateScopeMdx.ts b/packages/tool-meta-updater/src/updateScopeMdx.ts
index edae78b493..f10a06b45b 100644
--- a/packages/tool-meta-updater/src/updateScopeMdx.ts
+++ b/packages/tool-meta-updater/src/updateScopeMdx.ts
@@ -1,10 +1,10 @@
-import type { ScopeTypeType } from "@cursorless/common";
+import type { ScopeTypeType } from "@cursorless/lib-common";
import {
plaintextScopeSupportFacetInfos,
prettifyScopeType,
scopeSupportFacetInfos,
serializeScopeType,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import type { FormatPluginFnOptions } from "@pnpm/meta-updater";
export function updateScopeMdx(
diff --git a/packages/tool-meta-updater/src/updatesScopeSupportFacetInfos.ts b/packages/tool-meta-updater/src/updatesScopeSupportFacetInfos.ts
index 262008776b..ed75c9177f 100644
--- a/packages/tool-meta-updater/src/updatesScopeSupportFacetInfos.ts
+++ b/packages/tool-meta-updater/src/updatesScopeSupportFacetInfos.ts
@@ -1,12 +1,12 @@
import type {
ScopeSupportFacet,
PlaintextScopeSupportFacet,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import {
scopeSupportFacetInfos,
serializeScopeType,
plaintextScopeSupportFacetInfos,
-} from "@cursorless/common";
+} from "@cursorless/lib-common";
import type { FormatPluginFnOptions } from "@pnpm/meta-updater";
export function updatesScopeSupportFacetInfos(
From 23f7e1326a5dfa13cbe6bc12521f8cab29109399 Mon Sep 17 00:00:00 2001
From: Andreas Arvidsson
Date: Thu, 19 Mar 2026 11:11:42 +0100
Subject: [PATCH 04/24] @cursorless/cursorless-engine
---
packages/app-neovim/package.json | 2 +-
packages/app-neovim/src/constructTestHelpers.ts | 4 ++--
packages/app-neovim/src/extension.ts | 2 +-
packages/app-neovim/src/registerCommands.ts | 2 +-
packages/app-vscode/package.json | 2 +-
packages/app-vscode/src/ScopeTreeProvider.ts | 2 +-
packages/app-vscode/src/VscodeSnippets.ts | 2 +-
packages/app-vscode/src/constructTestHelpers.ts | 4 ++--
packages/app-vscode/src/createTutorial.ts | 2 +-
packages/app-vscode/src/extension.ts | 7 ++-----
packages/app-vscode/src/keyboard/KeyboardCommandHandler.ts | 2 +-
packages/app-vscode/src/keyboard/grammar/command.ts | 7 ++-----
.../app-vscode/src/keyboard/grammar/generated/grammar.ts | 6 +-----
packages/app-vscode/src/keyboard/grammar/grammar.ne | 2 +-
packages/app-vscode/src/registerCommands.ts | 7 ++-----
packages/app-vscode/src/storedTargetHighlighter.ts | 2 +-
packages/lib-engine/package.json | 2 +-
packages/lib-talon-core/package.json | 2 +-
packages/lib-talon-core/src/constructTestHelpers.ts | 7 ++-----
packages/lib-talon-core/src/extension.ts | 2 +-
packages/lib-talon-core/src/registerCommands.ts | 2 +-
packages/lib-talon-core/src/types/types.ts | 2 +-
packages/lib-test-case-recorder/package.json | 2 +-
packages/lib-test-case-recorder/src/TestCase.ts | 2 +-
packages/lib-test-case-recorder/src/TestCaseRecorder.ts | 7 ++-----
packages/lib-test-case-recorder/src/takeSnapshot.ts | 2 +-
packages/lib-tutorial/package.json | 2 +-
packages/lib-tutorial/src/TutorialImpl.ts | 2 +-
packages/lib-tutorial/src/TutorialStepParser.ts | 4 ++--
packages/lib-tutorial/src/getScopeTypeSpokenFormStrict.ts | 2 +-
packages/lib-tutorial/src/loadTutorial.ts | 2 +-
.../src/stepComponentParsers/ActionComponentParser.ts | 4 ++--
.../CursorlessCommandComponentParser.ts | 4 ++--
.../src/stepComponentParsers/GraphemeComponentParser.ts | 2 +-
.../src/stepComponentParsers/parseVisualizeComponent.ts | 4 ++--
packages/lib-tutorial/src/tutorialWrapCommandRunner.ts | 2 +-
36 files changed, 47 insertions(+), 66 deletions(-)
diff --git a/packages/app-neovim/package.json b/packages/app-neovim/package.json
index b4b4aac2de..d26cb2ecb6 100644
--- a/packages/app-neovim/package.json
+++ b/packages/app-neovim/package.json
@@ -18,7 +18,7 @@
},
"dependencies": {
"@cursorless/lib-common": "workspace:*",
- "@cursorless/cursorless-engine": "workspace:*",
+ "@cursorless/lib-engine": "workspace:*",
"@cursorless/neovim-common": "workspace:*",
"@cursorless/neovim-registry": "workspace:*",
"@cursorless/node-common": "workspace:*",
diff --git a/packages/app-neovim/src/constructTestHelpers.ts b/packages/app-neovim/src/constructTestHelpers.ts
index 72b306f419..72931ec210 100644
--- a/packages/app-neovim/src/constructTestHelpers.ts
+++ b/packages/app-neovim/src/constructTestHelpers.ts
@@ -12,8 +12,8 @@ import type {
TestCaseSnapshot,
TextEditor,
} from "@cursorless/lib-common";
-import type { StoredTargetMap } from "@cursorless/cursorless-engine";
-import { plainObjectToTarget } from "@cursorless/cursorless-engine";
+import type { StoredTargetMap } from "@cursorless/lib-engine";
+import { plainObjectToTarget } from "@cursorless/lib-engine";
import type { NeovimIDE, NeovimTestHelpers } from "@cursorless/neovim-common";
import { takeSnapshot } from "@cursorless/test-case-recorder";
diff --git a/packages/app-neovim/src/extension.ts b/packages/app-neovim/src/extension.ts
index e8e8bcdc30..16f94c0aeb 100644
--- a/packages/app-neovim/src/extension.ts
+++ b/packages/app-neovim/src/extension.ts
@@ -3,7 +3,7 @@ import {
FakeIDE,
NormalizedIDE,
} from "@cursorless/lib-common";
-import { createCursorlessEngine } from "@cursorless/cursorless-engine";
+import { createCursorlessEngine } from "@cursorless/lib-engine";
import { EXTENSION_ID, NeovimIDE } from "@cursorless/neovim-common";
import { getNeovimRegistry } from "@cursorless/neovim-registry";
import type { NeovimClient } from "neovim/lib/api/client";
diff --git a/packages/app-neovim/src/registerCommands.ts b/packages/app-neovim/src/registerCommands.ts
index 6998bf1f2a..ef05c09aea 100644
--- a/packages/app-neovim/src/registerCommands.ts
+++ b/packages/app-neovim/src/registerCommands.ts
@@ -9,7 +9,7 @@ import {
ensureCommandShape,
} from "@cursorless/lib-common";
-import type { CommandApi } from "@cursorless/cursorless-engine";
+import type { CommandApi } from "@cursorless/lib-engine";
import type { NeovimIDE } from "@cursorless/neovim-common";
import {
modeSwitchNormalTerminal,
diff --git a/packages/app-vscode/package.json b/packages/app-vscode/package.json
index 0e6e605e44..780b52c486 100644
--- a/packages/app-vscode/package.json
+++ b/packages/app-vscode/package.json
@@ -1310,7 +1310,7 @@
],
"dependencies": {
"@cursorless/lib-common": "workspace:*",
- "@cursorless/cursorless-engine": "workspace:*",
+ "@cursorless/lib-engine": "workspace:*",
"@cursorless/cursorless-tutorial": "workspace:*",
"@cursorless/node-common": "workspace:*",
"@cursorless/test-case-recorder": "workspace:*",
diff --git a/packages/app-vscode/src/ScopeTreeProvider.ts b/packages/app-vscode/src/ScopeTreeProvider.ts
index 38afbc6a6d..71de87cddf 100644
--- a/packages/app-vscode/src/ScopeTreeProvider.ts
+++ b/packages/app-vscode/src/ScopeTreeProvider.ts
@@ -16,7 +16,7 @@ import {
serializeScopeType,
uriEncodeHashId,
} from "@cursorless/lib-common";
-import { type CustomSpokenFormGenerator } from "@cursorless/cursorless-engine";
+import { type CustomSpokenFormGenerator } from "@cursorless/lib-engine";
import { type VscodeApi } from "@cursorless/vscode-common";
import { isEqual } from "lodash-es";
import type {
diff --git a/packages/app-vscode/src/VscodeSnippets.ts b/packages/app-vscode/src/VscodeSnippets.ts
index 55b0591178..f5def8a385 100644
--- a/packages/app-vscode/src/VscodeSnippets.ts
+++ b/packages/app-vscode/src/VscodeSnippets.ts
@@ -1,5 +1,5 @@
import type { IDE, TextEditor } from "@cursorless/lib-common";
-import { type Snippets } from "@cursorless/cursorless-engine";
+import { type Snippets } from "@cursorless/lib-engine";
import { open } from "node:fs/promises";
import { join } from "node:path";
diff --git a/packages/app-vscode/src/constructTestHelpers.ts b/packages/app-vscode/src/constructTestHelpers.ts
index 033e42aadf..c075059193 100644
--- a/packages/app-vscode/src/constructTestHelpers.ts
+++ b/packages/app-vscode/src/constructTestHelpers.ts
@@ -12,12 +12,12 @@ import type {
TestCaseSnapshot,
TextEditor,
} from "@cursorless/lib-common";
-import type { StoredTargetMap } from "@cursorless/cursorless-engine";
+import type { StoredTargetMap } from "@cursorless/lib-engine";
import {
plainObjectToTarget,
scopeHandlerCache,
treeSitterQueryCache,
-} from "@cursorless/cursorless-engine";
+} from "@cursorless/lib-engine";
import { takeSnapshot } from "@cursorless/test-case-recorder";
import type { VscodeTestHelpers } from "@cursorless/vscode-common";
import type * as vscode from "vscode";
diff --git a/packages/app-vscode/src/createTutorial.ts b/packages/app-vscode/src/createTutorial.ts
index b78a0cdfdf..0237f32fe8 100644
--- a/packages/app-vscode/src/createTutorial.ts
+++ b/packages/app-vscode/src/createTutorial.ts
@@ -2,7 +2,7 @@ import type { Hats, HatTokenMap, IDE } from "@cursorless/lib-common";
import type {
CommandRunnerDecorator,
CustomSpokenFormGenerator,
-} from "@cursorless/cursorless-engine";
+} from "@cursorless/lib-engine";
import { TutorialImpl } from "@cursorless/cursorless-tutorial";
import { FileSystemTutorialContentProvider } from "@cursorless/node-common";
import type * as vscode from "vscode";
diff --git a/packages/app-vscode/src/extension.ts b/packages/app-vscode/src/extension.ts
index ea680d7442..de4812de9f 100644
--- a/packages/app-vscode/src/extension.ts
+++ b/packages/app-vscode/src/extension.ts
@@ -4,11 +4,8 @@ import {
FakeIDE,
NormalizedIDE,
} from "@cursorless/lib-common";
-import type { EngineProps } from "@cursorless/cursorless-engine";
-import {
- CommandHistory,
- createCursorlessEngine,
-} from "@cursorless/cursorless-engine";
+import type { EngineProps } from "@cursorless/lib-engine";
+import { CommandHistory, createCursorlessEngine } from "@cursorless/lib-engine";
import {
FileSystemCommandHistoryStorage,
FileSystemRawTreeSitterQueryProvider,
diff --git a/packages/app-vscode/src/keyboard/KeyboardCommandHandler.ts b/packages/app-vscode/src/keyboard/KeyboardCommandHandler.ts
index 67aff5077a..d29ca5780a 100644
--- a/packages/app-vscode/src/keyboard/KeyboardCommandHandler.ts
+++ b/packages/app-vscode/src/keyboard/KeyboardCommandHandler.ts
@@ -3,7 +3,7 @@ import type {
PartialMark,
SurroundingPairName,
} from "@cursorless/lib-common";
-import { surroundingPairsDelimiters } from "@cursorless/cursorless-engine";
+import { surroundingPairsDelimiters } from "@cursorless/lib-engine";
import { isString } from "lodash-es";
import * as vscode from "vscode";
import type { HatColor, HatShape } from "../ide/vscode/hatStyles.types";
diff --git a/packages/app-vscode/src/keyboard/grammar/command.ts b/packages/app-vscode/src/keyboard/grammar/command.ts
index 475f1e9b10..0e355d4d5c 100644
--- a/packages/app-vscode/src/keyboard/grammar/command.ts
+++ b/packages/app-vscode/src/keyboard/grammar/command.ts
@@ -1,10 +1,7 @@
import type { KeyboardCommandArgTypes } from "../KeyboardCommandTypeHelpers";
import type { CommandRulePostProcessor } from "./CommandRulePostProcessor";
-import type { ArgExtractor, Unused } from "@cursorless/cursorless-engine";
-import {
- getArgExtractors,
- constructPayload,
-} from "@cursorless/cursorless-engine";
+import type { ArgExtractor, Unused } from "@cursorless/lib-engine";
+import { getArgExtractors, constructPayload } from "@cursorless/lib-engine";
/**
* Creates a postprocess function for a top-level rule of our grammar. This is a
diff --git a/packages/app-vscode/src/keyboard/grammar/generated/grammar.ts b/packages/app-vscode/src/keyboard/grammar/generated/grammar.ts
index 44492bddf2..cc30f0df0e 100644
--- a/packages/app-vscode/src/keyboard/grammar/generated/grammar.ts
+++ b/packages/app-vscode/src/keyboard/grammar/generated/grammar.ts
@@ -22,11 +22,7 @@ declare var combineColorAndShape: any;
declare var direction: any;
declare var digit: any;
-import {
- capture,
- UNUSED as _,
- argPositions,
-} from "@cursorless/cursorless-engine";
+import { capture, UNUSED as _, argPositions } from "@cursorless/lib-engine";
import { command } from "../command";
import { keyboardLexer } from "../keyboardLexer";
import { RelativeScopeModifier } from "@cursorless/lib-common";
diff --git a/packages/app-vscode/src/keyboard/grammar/grammar.ne b/packages/app-vscode/src/keyboard/grammar/grammar.ne
index 5954ffeb16..757fb93fe1 100644
--- a/packages/app-vscode/src/keyboard/grammar/grammar.ne
+++ b/packages/app-vscode/src/keyboard/grammar/grammar.ne
@@ -1,6 +1,6 @@
@preprocessor typescript
@{%
-import { capture, UNUSED as _, argPositions } from "@cursorless/cursorless-engine"
+import { capture, UNUSED as _, argPositions } from "@cursorless/lib-engine"
import { command } from "../command"
import { keyboardLexer } from "../keyboardLexer";
import { RelativeScopeModifier } from "@cursorless/lib-common";
diff --git a/packages/app-vscode/src/registerCommands.ts b/packages/app-vscode/src/registerCommands.ts
index c5d50aff81..0a6d0d42e0 100644
--- a/packages/app-vscode/src/registerCommands.ts
+++ b/packages/app-vscode/src/registerCommands.ts
@@ -4,11 +4,8 @@ import type {
ScopeType,
} from "@cursorless/lib-common";
import { CURSORLESS_COMMAND_ID } from "@cursorless/lib-common";
-import type {
- CommandApi,
- StoredTargetMap,
-} from "@cursorless/cursorless-engine";
-import { analyzeCommandHistory } from "@cursorless/cursorless-engine";
+import type { CommandApi, StoredTargetMap } from "@cursorless/lib-engine";
+import { analyzeCommandHistory } from "@cursorless/lib-engine";
import { showCheatsheet, updateDefaults } from "@cursorless/node-common";
import type {
ScopeTestRecorder,
diff --git a/packages/app-vscode/src/storedTargetHighlighter.ts b/packages/app-vscode/src/storedTargetHighlighter.ts
index 3ebc969695..f34d0678c1 100644
--- a/packages/app-vscode/src/storedTargetHighlighter.ts
+++ b/packages/app-vscode/src/storedTargetHighlighter.ts
@@ -1,6 +1,6 @@
import type { StoredTargetKey } from "@cursorless/lib-common";
import { groupBy, toCharacterRange } from "@cursorless/lib-common";
-import type { StoredTargetMap } from "@cursorless/cursorless-engine";
+import type { StoredTargetMap } from "@cursorless/lib-engine";
import type {
ScopeRangeType,
ScopeVisualizerColorConfig,
diff --git a/packages/lib-engine/package.json b/packages/lib-engine/package.json
index a9cb9e9d41..08b337c9a5 100644
--- a/packages/lib-engine/package.json
+++ b/packages/lib-engine/package.json
@@ -1,5 +1,5 @@
{
- "name": "@cursorless/cursorless-engine",
+ "name": "@cursorless/lib-engine",
"version": "0.1.0",
"description": "The core Cursorless engine, which is responsible for parsing and executing commands, allocating hats, etc",
"license": "MIT",
diff --git a/packages/lib-talon-core/package.json b/packages/lib-talon-core/package.json
index 24e47f394e..1d7002a95e 100644
--- a/packages/lib-talon-core/package.json
+++ b/packages/lib-talon-core/package.json
@@ -13,7 +13,7 @@
},
"dependencies": {
"@cursorless/lib-common": "workspace:*",
- "@cursorless/cursorless-engine": "workspace:*",
+ "@cursorless/lib-engine": "workspace:*",
"lodash-es": "^4.17.23",
"vscode-uri": "^3.1.0"
},
diff --git a/packages/lib-talon-core/src/constructTestHelpers.ts b/packages/lib-talon-core/src/constructTestHelpers.ts
index 26a00c7052..5ac03676d5 100644
--- a/packages/lib-talon-core/src/constructTestHelpers.ts
+++ b/packages/lib-talon-core/src/constructTestHelpers.ts
@@ -9,11 +9,8 @@ import type {
TargetPlainObject,
TextEditor,
} from "@cursorless/lib-common";
-import type {
- CommandApi,
- StoredTargetMap,
-} from "@cursorless/cursorless-engine";
-import { plainObjectToTarget } from "@cursorless/cursorless-engine";
+import type { CommandApi, StoredTargetMap } from "@cursorless/lib-engine";
+import { plainObjectToTarget } from "@cursorless/lib-engine";
import type { TalonJsIDE } from "./ide/TalonJsIDE";
import type { TalonJsTestHelpers } from "./types/types";
diff --git a/packages/lib-talon-core/src/extension.ts b/packages/lib-talon-core/src/extension.ts
index f90eb3a34e..7f30b46a95 100644
--- a/packages/lib-talon-core/src/extension.ts
+++ b/packages/lib-talon-core/src/extension.ts
@@ -6,7 +6,7 @@ import {
FakeIDE,
NormalizedIDE,
} from "@cursorless/lib-common";
-import { createCursorlessEngine } from "@cursorless/cursorless-engine";
+import { createCursorlessEngine } from "@cursorless/lib-engine";
import { constructTestHelpers } from "./constructTestHelpers";
import { TalonJsIDE } from "./ide/TalonJsIDE";
import { TalonJsTestHats } from "./ide/TalonJsTestHats";
diff --git a/packages/lib-talon-core/src/registerCommands.ts b/packages/lib-talon-core/src/registerCommands.ts
index fd2632ff1c..e6f811b1aa 100644
--- a/packages/lib-talon-core/src/registerCommands.ts
+++ b/packages/lib-talon-core/src/registerCommands.ts
@@ -1,5 +1,5 @@
import { CURSORLESS_COMMAND_ID } from "@cursorless/lib-common";
-import type { CommandApi } from "@cursorless/cursorless-engine";
+import type { CommandApi } from "@cursorless/lib-engine";
import type { TalonJsIDE } from "./ide/TalonJsIDE";
import type { Talon } from "./types/talon";
diff --git a/packages/lib-talon-core/src/types/types.ts b/packages/lib-talon-core/src/types/types.ts
index c8dcf84720..3cf0553d85 100644
--- a/packages/lib-talon-core/src/types/types.ts
+++ b/packages/lib-talon-core/src/types/types.ts
@@ -6,7 +6,7 @@ import type {
SelectionOffsets,
TestHelpers,
} from "@cursorless/lib-common";
-import type { StoredTargetMap } from "@cursorless/cursorless-engine";
+import type { StoredTargetMap } from "@cursorless/lib-engine";
import type { TalonJsIDE } from "../ide/TalonJsIDE";
export interface EditorState {
diff --git a/packages/lib-test-case-recorder/package.json b/packages/lib-test-case-recorder/package.json
index 03c67ccef6..9ddc4dae0c 100644
--- a/packages/lib-test-case-recorder/package.json
+++ b/packages/lib-test-case-recorder/package.json
@@ -13,7 +13,7 @@
},
"dependencies": {
"@cursorless/lib-common": "workspace:*",
- "@cursorless/cursorless-engine": "workspace:*",
+ "@cursorless/lib-engine": "workspace:*",
"@cursorless/node-common": "workspace:*",
"glob": "^13.0.6",
"immutability-helper": "^3.1.1",
diff --git a/packages/lib-test-case-recorder/src/TestCase.ts b/packages/lib-test-case-recorder/src/TestCase.ts
index 9a8fb325f9..225d245d98 100644
--- a/packages/lib-test-case-recorder/src/TestCase.ts
+++ b/packages/lib-test-case-recorder/src/TestCase.ts
@@ -27,7 +27,7 @@ import {
extractTargetKeys,
getPartialTargetDescriptors,
type StoredTargetMap,
-} from "@cursorless/cursorless-engine";
+} from "@cursorless/lib-engine";
import { pick } from "lodash-es";
import { takeSnapshot } from "./takeSnapshot";
diff --git a/packages/lib-test-case-recorder/src/TestCaseRecorder.ts b/packages/lib-test-case-recorder/src/TestCaseRecorder.ts
index d004a4c16f..27168a907e 100644
--- a/packages/lib-test-case-recorder/src/TestCaseRecorder.ts
+++ b/packages/lib-test-case-recorder/src/TestCaseRecorder.ts
@@ -24,14 +24,11 @@ import {
SpyIDE,
toLineRange,
} from "@cursorless/lib-common";
-import type {
- CommandRunner,
- StoredTargetMap,
-} from "@cursorless/cursorless-engine";
+import type { CommandRunner, StoredTargetMap } from "@cursorless/lib-engine";
import {
defaultSpokenFormMap,
SpokenFormGenerator,
-} from "@cursorless/cursorless-engine";
+} from "@cursorless/lib-engine";
import { getRecordedTestsDirPath, walkDirsSync } from "@cursorless/node-common";
import { invariant } from "immutability-helper";
import { merge } from "lodash-es";
diff --git a/packages/lib-test-case-recorder/src/takeSnapshot.ts b/packages/lib-test-case-recorder/src/takeSnapshot.ts
index 205e131c5b..729ff634b3 100644
--- a/packages/lib-test-case-recorder/src/takeSnapshot.ts
+++ b/packages/lib-test-case-recorder/src/takeSnapshot.ts
@@ -12,7 +12,7 @@ import {
selectionToPlainObject,
storedTargetKeys,
} from "@cursorless/lib-common";
-import type { StoredTargetMap } from "@cursorless/cursorless-engine";
+import type { StoredTargetMap } from "@cursorless/lib-engine";
import { hrtimeBigintToSeconds } from "./timeUtils";
export async function takeSnapshot(
diff --git a/packages/lib-tutorial/package.json b/packages/lib-tutorial/package.json
index 79d9852a8e..40c8624060 100644
--- a/packages/lib-tutorial/package.json
+++ b/packages/lib-tutorial/package.json
@@ -13,7 +13,7 @@
},
"dependencies": {
"@cursorless/lib-common": "workspace:*",
- "@cursorless/cursorless-engine": "workspace:*",
+ "@cursorless/lib-engine": "workspace:*",
"immer": "^11.1.4",
"lodash-es": "^4.17.23"
},
diff --git a/packages/lib-tutorial/src/TutorialImpl.ts b/packages/lib-tutorial/src/TutorialImpl.ts
index a5cb33199a..97df1978e1 100644
--- a/packages/lib-tutorial/src/TutorialImpl.ts
+++ b/packages/lib-tutorial/src/TutorialImpl.ts
@@ -17,7 +17,7 @@ import type {
CommandRunner,
CommandRunnerDecorator,
CustomSpokenFormGenerator,
-} from "@cursorless/cursorless-engine";
+} from "@cursorless/lib-engine";
import { produce } from "immer";
import { isEqual } from "lodash-es";
import { arePreconditionsMet } from "./arePreconditionsMet";
diff --git a/packages/lib-tutorial/src/TutorialStepParser.ts b/packages/lib-tutorial/src/TutorialStepParser.ts
index 110134441a..bd0e745567 100644
--- a/packages/lib-tutorial/src/TutorialStepParser.ts
+++ b/packages/lib-tutorial/src/TutorialStepParser.ts
@@ -4,8 +4,8 @@ import type {
TutorialId,
TutorialStepFragment,
} from "@cursorless/lib-common";
-import type { CustomSpokenFormGenerator } from "@cursorless/cursorless-engine";
-import { parseScopeType } from "@cursorless/cursorless-engine";
+import type { CustomSpokenFormGenerator } from "@cursorless/lib-engine";
+import { parseScopeType } from "@cursorless/lib-engine";
import { getScopeTypeSpokenFormStrict } from "./getScopeTypeSpokenFormStrict";
import { specialTerms } from "./specialTerms";
import { ActionComponentParser } from "./stepComponentParsers/ActionComponentParser";
diff --git a/packages/lib-tutorial/src/getScopeTypeSpokenFormStrict.ts b/packages/lib-tutorial/src/getScopeTypeSpokenFormStrict.ts
index d88021df89..e3f707722e 100644
--- a/packages/lib-tutorial/src/getScopeTypeSpokenFormStrict.ts
+++ b/packages/lib-tutorial/src/getScopeTypeSpokenFormStrict.ts
@@ -1,5 +1,5 @@
import type { ScopeType } from "@cursorless/lib-common";
-import type { CustomSpokenFormGenerator } from "@cursorless/cursorless-engine";
+import type { CustomSpokenFormGenerator } from "@cursorless/lib-engine";
import { getSpokenFormStrict } from "./getSpokenFormStrict";
export function getScopeTypeSpokenFormStrict(
diff --git a/packages/lib-tutorial/src/loadTutorial.ts b/packages/lib-tutorial/src/loadTutorial.ts
index 5e56a6f355..ff3445218b 100644
--- a/packages/lib-tutorial/src/loadTutorial.ts
+++ b/packages/lib-tutorial/src/loadTutorial.ts
@@ -6,7 +6,7 @@ import type {
TutorialId,
TutorialState,
} from "@cursorless/lib-common";
-import type { CustomSpokenFormGenerator } from "@cursorless/cursorless-engine";
+import type { CustomSpokenFormGenerator } from "@cursorless/lib-engine";
import { TutorialError } from "./TutorialError";
import { TutorialStepParser } from "./TutorialStepParser";
import type { TutorialContent } from "./types/tutorial.types";
diff --git a/packages/lib-tutorial/src/stepComponentParsers/ActionComponentParser.ts b/packages/lib-tutorial/src/stepComponentParsers/ActionComponentParser.ts
index 06a81435fc..b7048703ab 100644
--- a/packages/lib-tutorial/src/stepComponentParsers/ActionComponentParser.ts
+++ b/packages/lib-tutorial/src/stepComponentParsers/ActionComponentParser.ts
@@ -1,7 +1,7 @@
import type { ActionType } from "@cursorless/lib-common";
import { actionNames } from "@cursorless/lib-common";
-import type { CustomSpokenFormGenerator } from "@cursorless/cursorless-engine";
-import { defaultSpokenFormMap } from "@cursorless/cursorless-engine";
+import type { CustomSpokenFormGenerator } from "@cursorless/lib-engine";
+import { defaultSpokenFormMap } from "@cursorless/lib-engine";
import { getSpokenFormStrict } from "../getSpokenFormStrict";
import type {
StepComponent,
diff --git a/packages/lib-tutorial/src/stepComponentParsers/CursorlessCommandComponentParser.ts b/packages/lib-tutorial/src/stepComponentParsers/CursorlessCommandComponentParser.ts
index 3122906d31..c882cf730a 100644
--- a/packages/lib-tutorial/src/stepComponentParsers/CursorlessCommandComponentParser.ts
+++ b/packages/lib-tutorial/src/stepComponentParsers/CursorlessCommandComponentParser.ts
@@ -8,12 +8,12 @@ import type {
TutorialId,
} from "@cursorless/lib-common";
import { getKey, splitKey } from "@cursorless/lib-common";
-import type { CustomSpokenFormGenerator } from "@cursorless/cursorless-engine";
+import type { CustomSpokenFormGenerator } from "@cursorless/lib-engine";
import {
canonicalizeAndValidateCommand,
getPartialTargetDescriptors,
transformPartialPrimitiveTargets,
-} from "@cursorless/cursorless-engine";
+} from "@cursorless/lib-engine";
import { TutorialError } from "../TutorialError";
import type {
StepComponent,
diff --git a/packages/lib-tutorial/src/stepComponentParsers/GraphemeComponentParser.ts b/packages/lib-tutorial/src/stepComponentParsers/GraphemeComponentParser.ts
index 4ad06029d4..191762c83a 100644
--- a/packages/lib-tutorial/src/stepComponentParsers/GraphemeComponentParser.ts
+++ b/packages/lib-tutorial/src/stepComponentParsers/GraphemeComponentParser.ts
@@ -1,4 +1,4 @@
-import type { CustomSpokenFormGenerator } from "@cursorless/cursorless-engine";
+import type { CustomSpokenFormGenerator } from "@cursorless/lib-engine";
import { getSpokenFormStrict } from "../getSpokenFormStrict";
import type {
StepComponent,
diff --git a/packages/lib-tutorial/src/stepComponentParsers/parseVisualizeComponent.ts b/packages/lib-tutorial/src/stepComponentParsers/parseVisualizeComponent.ts
index a03cdfe06e..647ad1172a 100644
--- a/packages/lib-tutorial/src/stepComponentParsers/parseVisualizeComponent.ts
+++ b/packages/lib-tutorial/src/stepComponentParsers/parseVisualizeComponent.ts
@@ -1,5 +1,5 @@
-import type { CustomSpokenFormGenerator } from "@cursorless/cursorless-engine";
-import { parseScopeType } from "@cursorless/cursorless-engine";
+import type { CustomSpokenFormGenerator } from "@cursorless/lib-engine";
+import { parseScopeType } from "@cursorless/lib-engine";
import { getScopeTypeSpokenFormStrict } from "../getScopeTypeSpokenFormStrict";
import { specialTerms } from "../specialTerms";
import type { StepComponent } from "../types/StepComponent";
diff --git a/packages/lib-tutorial/src/tutorialWrapCommandRunner.ts b/packages/lib-tutorial/src/tutorialWrapCommandRunner.ts
index f6e419af4c..b927e14eb0 100644
--- a/packages/lib-tutorial/src/tutorialWrapCommandRunner.ts
+++ b/packages/lib-tutorial/src/tutorialWrapCommandRunner.ts
@@ -1,5 +1,5 @@
import type { CommandComplete } from "@cursorless/lib-common";
-import type { CommandRunner } from "@cursorless/cursorless-engine";
+import type { CommandRunner } from "@cursorless/lib-engine";
import { isEqual } from "lodash-es";
import type { TutorialContent } from "./types/tutorial.types";
import type { Tutorial } from "./Tutorial";
From 5e0c485d4a141dc59f51b0339218e9d3a251fc49 Mon Sep 17 00:00:00 2001
From: Andreas Arvidsson
Date: Thu, 19 Mar 2026 11:13:24 +0100
Subject: [PATCH 05/24] @cursorless/cursorless-everywhere-talon-core
---
.github/workflows/test.yml | 4 ++--
packages/app-talon/package.json | 4 ++--
packages/app-talon/src/extension.ts | 2 +-
packages/app-talon/src/types/talon.d.ts | 2 +-
.../src/docs/contributing/architecture/package-scripts.md | 2 +-
packages/lib-talon-core/package.json | 2 +-
packages/test-talon-e2e/package.json | 4 ++--
packages/test-talon-e2e/src/constructTestHelpers.ts | 2 +-
packages/test-talon-e2e/src/endToEndTestSetUp.ts | 2 +-
packages/test-talon-e2e/src/quickjsTest.ts | 2 +-
packages/test-talon-e2e/src/recorded.talonjs.test.ts | 2 +-
packages/test-talon-e2e/src/talonMock.ts | 2 +-
packages/test-talon-e2e/src/types/cursorless.ts | 5 +----
packages/test-talon-e2e/src/types/talon.ts | 2 +-
14 files changed, 17 insertions(+), 20 deletions(-)
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index b10656fd73..276550a57c 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -103,11 +103,11 @@ jobs:
if: runner.os != 'Linux'
- name: Run QuickJS tests (Linux)
- run: xvfb-run -a pnpm -F @cursorless/cursorless-everywhere-talon-e2e test:quickjs
+ run: xvfb-run -a pnpm -F @cursorless/lib-talon-e2e test:quickjs
if: runner.os == 'Linux' && matrix.app_version == 'stable'
- name: Run QuickJS tests (Win,Mac)
- run: pnpm -F @cursorless/cursorless-everywhere-talon-e2e test:quickjs
+ run: pnpm -F @cursorless/lib-talon-e2e test:quickjs
if: runner.os != 'Linux'
- name: Create VSCode dist that can be installed locally
diff --git a/packages/app-talon/package.json b/packages/app-talon/package.json
index 00c92dfc3b..2abdd88897 100644
--- a/packages/app-talon/package.json
+++ b/packages/app-talon/package.json
@@ -1,5 +1,5 @@
{
- "name": "@cursorless/cursorless-everywhere-talon",
+ "name": "@cursorless/app-talon",
"version": "1.0.0",
"description": "cursorless in talon js",
"license": "MIT",
@@ -18,6 +18,6 @@
},
"dependencies": {
"@cursorless/lib-common": "workspace:*",
- "@cursorless/cursorless-everywhere-talon-core": "workspace:*"
+ "@cursorless/lib-talon-core": "workspace:*"
}
}
diff --git a/packages/app-talon/src/extension.ts b/packages/app-talon/src/extension.ts
index 79b46e8f55..ecccd83e26 100644
--- a/packages/app-talon/src/extension.ts
+++ b/packages/app-talon/src/extension.ts
@@ -1,5 +1,5 @@
import type { RunMode } from "@cursorless/lib-common";
-import { activate as activateCore } from "@cursorless/cursorless-everywhere-talon-core";
+import { activate as activateCore } from "@cursorless/lib-talon-core";
import * as talon from "talon";
export async function activate(runMode: RunMode): Promise {
diff --git a/packages/app-talon/src/types/talon.d.ts b/packages/app-talon/src/types/talon.d.ts
index adfbfd34ad..2b53448f87 100644
--- a/packages/app-talon/src/types/talon.d.ts
+++ b/packages/app-talon/src/types/talon.d.ts
@@ -3,7 +3,7 @@ declare module "talon" {
TalonActions,
TalonContextConstructor,
TalonSettings,
- } from "@cursorless/cursorless-everywhere-talon-core";
+ } from "@cursorless/lib-talon-core";
export const actions: TalonActions;
export const settings: TalonSettings;
diff --git a/packages/app-web-docs/src/docs/contributing/architecture/package-scripts.md b/packages/app-web-docs/src/docs/contributing/architecture/package-scripts.md
index 4f6efbcce4..fd140d009a 100644
--- a/packages/app-web-docs/src/docs/contributing/architecture/package-scripts.md
+++ b/packages/app-web-docs/src/docs/contributing/architecture/package-scripts.md
@@ -63,7 +63,7 @@ Examples include:
- `@cursorless/cursorless-neovim`
- `@cursorless/cursorless-org`
- `@cursorless/cursorless-org-docs`
-- `@cursorless/cursorless-everywhere-talon`
+- `@cursorless/app-talon`
## Script meanings
diff --git a/packages/lib-talon-core/package.json b/packages/lib-talon-core/package.json
index 1d7002a95e..36a5826225 100644
--- a/packages/lib-talon-core/package.json
+++ b/packages/lib-talon-core/package.json
@@ -1,5 +1,5 @@
{
- "name": "@cursorless/cursorless-everywhere-talon-core",
+ "name": "@cursorless/lib-talon-core",
"version": "1.0.0",
"description": "cursorless in talon js core packagee",
"license": "MIT",
diff --git a/packages/test-talon-e2e/package.json b/packages/test-talon-e2e/package.json
index 21adba3e4c..cd7aac4817 100644
--- a/packages/test-talon-e2e/package.json
+++ b/packages/test-talon-e2e/package.json
@@ -1,5 +1,5 @@
{
- "name": "@cursorless/cursorless-everywhere-talon-e2e",
+ "name": "@cursorless/lib-talon-e2e",
"version": "1.0.0",
"description": "Our Talon everywhere/JS end-to-end tests",
"license": "MIT",
@@ -12,7 +12,7 @@
},
"dependencies": {
"@cursorless/lib-common": "workspace:*",
- "@cursorless/cursorless-everywhere-talon-core": "workspace:*",
+ "@cursorless/lib-talon-core": "workspace:*",
"@cursorless/node-common": "workspace:*",
"@cursorless/test-case-recorder": "workspace:*"
},
diff --git a/packages/test-talon-e2e/src/constructTestHelpers.ts b/packages/test-talon-e2e/src/constructTestHelpers.ts
index c92665fb10..421231d2b8 100644
--- a/packages/test-talon-e2e/src/constructTestHelpers.ts
+++ b/packages/test-talon-e2e/src/constructTestHelpers.ts
@@ -7,7 +7,7 @@ import type {
TestHelpers,
TextEditor,
} from "@cursorless/lib-common";
-import type { TalonJsTestHelpers } from "@cursorless/cursorless-everywhere-talon-core";
+import type { TalonJsTestHelpers } from "@cursorless/lib-talon-core";
import { takeSnapshot } from "@cursorless/test-case-recorder";
export function constructTestHelpers(
diff --git a/packages/test-talon-e2e/src/endToEndTestSetUp.ts b/packages/test-talon-e2e/src/endToEndTestSetUp.ts
index e78b29aa4c..4258063931 100644
--- a/packages/test-talon-e2e/src/endToEndTestSetUp.ts
+++ b/packages/test-talon-e2e/src/endToEndTestSetUp.ts
@@ -1,5 +1,5 @@
import { type IDE, SpyIDE } from "@cursorless/lib-common";
-import type { TalonJsTestHelpers } from "@cursorless/cursorless-everywhere-talon-core";
+import type { TalonJsTestHelpers } from "@cursorless/lib-talon-core";
import type { Context } from "mocha";
interface EndToEndTestSetupOpts {
diff --git a/packages/test-talon-e2e/src/quickjsTest.ts b/packages/test-talon-e2e/src/quickjsTest.ts
index 6fb713a118..98e2d6c3d7 100644
--- a/packages/test-talon-e2e/src/quickjsTest.ts
+++ b/packages/test-talon-e2e/src/quickjsTest.ts
@@ -3,7 +3,7 @@ import {
type ActionDescriptor,
type CommandLatest,
} from "@cursorless/lib-common";
-import { activate } from "@cursorless/cursorless-everywhere-talon-core";
+import { activate } from "@cursorless/lib-talon-core";
import * as std from "std";
import { talonMock } from "./talonMock";
diff --git a/packages/test-talon-e2e/src/recorded.talonjs.test.ts b/packages/test-talon-e2e/src/recorded.talonjs.test.ts
index dd01b0e2d2..1143ff97f6 100644
--- a/packages/test-talon-e2e/src/recorded.talonjs.test.ts
+++ b/packages/test-talon-e2e/src/recorded.talonjs.test.ts
@@ -7,7 +7,7 @@ import {
activate,
type EditorState,
type TalonJsIDE,
-} from "@cursorless/cursorless-everywhere-talon-core";
+} from "@cursorless/lib-talon-core";
import {
getRecordedTestPaths,
loadFixture,
diff --git a/packages/test-talon-e2e/src/talonMock.ts b/packages/test-talon-e2e/src/talonMock.ts
index de4cc79270..6d4f60ca97 100644
--- a/packages/test-talon-e2e/src/talonMock.ts
+++ b/packages/test-talon-e2e/src/talonMock.ts
@@ -7,7 +7,7 @@ import type {
TalonContext,
TalonContextActions,
TalonSettings,
-} from "@cursorless/cursorless-everywhere-talon-core";
+} from "@cursorless/lib-talon-core";
import type { TalonTestHelpers } from "./types/talon";
let _contextActions: TalonContextActions | undefined;
diff --git a/packages/test-talon-e2e/src/types/cursorless.ts b/packages/test-talon-e2e/src/types/cursorless.ts
index e256d2bd1c..14a979880d 100644
--- a/packages/test-talon-e2e/src/types/cursorless.ts
+++ b/packages/test-talon-e2e/src/types/cursorless.ts
@@ -1,8 +1,5 @@
import type { RunMode } from "@cursorless/lib-common";
-import type {
- ActivateReturnValue,
- Talon,
-} from "@cursorless/cursorless-everywhere-talon-core";
+import type { ActivateReturnValue, Talon } from "@cursorless/lib-talon-core";
export interface Extension {
activate(talon: Talon, runMode: RunMode): Promise;
diff --git a/packages/test-talon-e2e/src/types/talon.ts b/packages/test-talon-e2e/src/types/talon.ts
index 1edc6ea67d..0ced2475f4 100644
--- a/packages/test-talon-e2e/src/types/talon.ts
+++ b/packages/test-talon-e2e/src/types/talon.ts
@@ -1,7 +1,7 @@
import type {
EditorState,
TalonContextActions,
-} from "@cursorless/cursorless-everywhere-talon-core";
+} from "@cursorless/lib-talon-core";
export interface TalonTestHelpers {
contextActions: TalonContextActions;
From fd854d7b163257318b5234f3444c89dcf27f9450 Mon Sep 17 00:00:00 2001
From: Andreas Arvidsson
Date: Thu, 19 Mar 2026 11:14:22 +0100
Subject: [PATCH 06/24] @cursorless/cursorless-neovim
---
packages/app-neovim/package.json | 2 +-
.../src/docs/contributing/architecture/package-scripts.md | 2 +-
packages/test-neovim-e2e/package.json | 2 +-
packages/tool-meta-updater/src/updatePackageJson.ts | 2 +-
4 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/packages/app-neovim/package.json b/packages/app-neovim/package.json
index d26cb2ecb6..3fc0041f8a 100644
--- a/packages/app-neovim/package.json
+++ b/packages/app-neovim/package.json
@@ -1,5 +1,5 @@
{
- "name": "@cursorless/cursorless-neovim",
+ "name": "@cursorless/app-neovim",
"version": "1.0.0",
"description": "cursorless in neovim",
"license": "MIT",
diff --git a/packages/app-web-docs/src/docs/contributing/architecture/package-scripts.md b/packages/app-web-docs/src/docs/contributing/architecture/package-scripts.md
index fd140d009a..a613cc615b 100644
--- a/packages/app-web-docs/src/docs/contributing/architecture/package-scripts.md
+++ b/packages/app-web-docs/src/docs/contributing/architecture/package-scripts.md
@@ -60,7 +60,7 @@ These packages generally expose:
Examples include:
- `@cursorless/cursorless-vscode`
-- `@cursorless/cursorless-neovim`
+- `@cursorless/app-neovim`
- `@cursorless/cursorless-org`
- `@cursorless/cursorless-org-docs`
- `@cursorless/app-talon`
diff --git a/packages/test-neovim-e2e/package.json b/packages/test-neovim-e2e/package.json
index e5eb777709..fa8d0f56df 100644
--- a/packages/test-neovim-e2e/package.json
+++ b/packages/test-neovim-e2e/package.json
@@ -1,5 +1,5 @@
{
- "name": "@cursorless/cursorless-neovim-e2e",
+ "name": "@cursorless/lib-neovim-e2e",
"version": "1.0.0",
"description": "Our neovim end-to-end tests",
"license": "MIT",
diff --git a/packages/tool-meta-updater/src/updatePackageJson.ts b/packages/tool-meta-updater/src/updatePackageJson.ts
index 13d85d1eb6..ff5387100a 100644
--- a/packages/tool-meta-updater/src/updatePackageJson.ts
+++ b/packages/tool-meta-updater/src/updatePackageJson.ts
@@ -31,7 +31,7 @@ export async function updatePackageJson(
const isLib = !isRoot && !input.private;
const isCursorlessVscode = input.name === "@cursorless/cursorless-vscode";
- const isCursorlessNeovim = input.name === "@cursorless/cursorless-neovim";
+ const isCursorlessNeovim = input.name === "@cursorless/app-neovim";
const isCursorlessOrgDocs = input.name === "@cursorless/cursorless-org-docs";
const isCursorlessTestHarness = input.name === "@cursorless/test-harness";
From 0f23d16b06f3dd149963843b715d90a84f3e0c75 Mon Sep 17 00:00:00 2001
From: Andreas Arvidsson
Date: Thu, 19 Mar 2026 11:15:07 +0100
Subject: [PATCH 07/24] @cursorless/cursorless-org
---
packages/app-web-docs/package.json | 2 +-
.../src/docs/contributing/architecture/package-scripts.md | 4 ++--
packages/app-web/package.json | 2 +-
packages/tool-meta-updater/src/updateLanguageMdx.ts | 2 +-
packages/tool-meta-updater/src/updatePackageJson.ts | 6 ++----
packages/tool-meta-updater/src/updateScopeMdx.ts | 2 +-
6 files changed, 8 insertions(+), 10 deletions(-)
diff --git a/packages/app-web-docs/package.json b/packages/app-web-docs/package.json
index c5533cd195..9029d574b6 100644
--- a/packages/app-web-docs/package.json
+++ b/packages/app-web-docs/package.json
@@ -1,5 +1,5 @@
{
- "name": "@cursorless/cursorless-org-docs",
+ "name": "@cursorless/app-web-docs",
"version": "0.0.0",
"description": "Cursorless documentation website",
"license": "MIT",
diff --git a/packages/app-web-docs/src/docs/contributing/architecture/package-scripts.md b/packages/app-web-docs/src/docs/contributing/architecture/package-scripts.md
index a613cc615b..b2fb341f62 100644
--- a/packages/app-web-docs/src/docs/contributing/architecture/package-scripts.md
+++ b/packages/app-web-docs/src/docs/contributing/architecture/package-scripts.md
@@ -61,8 +61,8 @@ Examples include:
- `@cursorless/cursorless-vscode`
- `@cursorless/app-neovim`
-- `@cursorless/cursorless-org`
-- `@cursorless/cursorless-org-docs`
+- `@cursorless/app-web`
+- `@cursorless/app-web-docs`
- `@cursorless/app-talon`
## Script meanings
diff --git a/packages/app-web/package.json b/packages/app-web/package.json
index 058701c22d..9c78d6f44a 100644
--- a/packages/app-web/package.json
+++ b/packages/app-web/package.json
@@ -1,5 +1,5 @@
{
- "name": "@cursorless/cursorless-org",
+ "name": "@cursorless/app-web",
"version": "0.1.0",
"description": "The cursorless.org website",
"license": "MIT",
diff --git a/packages/tool-meta-updater/src/updateLanguageMdx.ts b/packages/tool-meta-updater/src/updateLanguageMdx.ts
index 1005022194..5e396348ec 100644
--- a/packages/tool-meta-updater/src/updateLanguageMdx.ts
+++ b/packages/tool-meta-updater/src/updateLanguageMdx.ts
@@ -6,7 +6,7 @@ export function updateLanguageMdx(
actual: string | null,
options: FormatPluginFnOptions,
): string | null {
- if (options.manifest.name !== "@cursorless/cursorless-org-docs") {
+ if (options.manifest.name !== "@cursorless/app-web-docs") {
return null;
}
diff --git a/packages/tool-meta-updater/src/updatePackageJson.ts b/packages/tool-meta-updater/src/updatePackageJson.ts
index ff5387100a..342b116295 100644
--- a/packages/tool-meta-updater/src/updatePackageJson.ts
+++ b/packages/tool-meta-updater/src/updatePackageJson.ts
@@ -32,7 +32,7 @@ export async function updatePackageJson(
const isLib = !isRoot && !input.private;
const isCursorlessVscode = input.name === "@cursorless/cursorless-vscode";
const isCursorlessNeovim = input.name === "@cursorless/app-neovim";
- const isCursorlessOrgDocs = input.name === "@cursorless/cursorless-org-docs";
+ const isCursorlessOrgDocs = input.name === "@cursorless/app-web-docs";
const isCursorlessTestHarness = input.name === "@cursorless/test-harness";
if (input.description == null || input.description === "") {
@@ -106,9 +106,7 @@ async function getScripts(
const cleanDirs = ["./out", "tsconfig.tsbuildinfo", "./dist", "./build"];
const clean = `rm -rf ${cleanDirs.join(" ")}`;
const cleanScripts =
- name === "@cursorless/cursorless-org-docs"
- ? ["docusaurus clear", clean]
- : [clean];
+ name === "@cursorless/app-web-docs" ? ["docusaurus clear", clean] : [clean];
scripts.clean = cleanScripts.join(" && ");
diff --git a/packages/tool-meta-updater/src/updateScopeMdx.ts b/packages/tool-meta-updater/src/updateScopeMdx.ts
index f10a06b45b..63a4da2b62 100644
--- a/packages/tool-meta-updater/src/updateScopeMdx.ts
+++ b/packages/tool-meta-updater/src/updateScopeMdx.ts
@@ -13,7 +13,7 @@ export function updateScopeMdx(
actual: string | null,
options: FormatPluginFnOptions,
): string | null {
- if (options.manifest.name !== "@cursorless/cursorless-org-docs") {
+ if (options.manifest.name !== "@cursorless/app-web-docs") {
return null;
}
From b69dfda338b1eab0483924ba4e7e04f2deb15662 Mon Sep 17 00:00:00 2001
From: Andreas Arvidsson
Date: Thu, 19 Mar 2026 11:16:22 +0100
Subject: [PATCH 08/24] @cursorless/cursorless-vscode
---
.github/workflows/test.yml | 2 +-
package.json | 2 +-
packages/app-vscode/package.json | 8 ++++----
packages/app-vscode/scripts/install-local.sh | 2 +-
packages/app-vscode/src/VscodeTutorial.ts | 2 +-
packages/app-vscode/src/createTutorial.ts | 2 +-
.../app-web-docs/src/docs/contributing/CONTRIBUTING.mdx | 6 +++---
.../src/docs/contributing/architecture/package-scripts.md | 2 +-
packages/lib-tutorial/package.json | 2 +-
packages/lib-vscode-tutorial-webview/package.json | 2 +-
packages/test-vscode-e2e/package.json | 2 +-
packages/tool-meta-updater/src/updatePackageJson.ts | 2 +-
12 files changed, 17 insertions(+), 17 deletions(-)
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index 276550a57c..3c2d9d6557 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -111,7 +111,7 @@ jobs:
if: runner.os != 'Linux'
- name: Create VSCode dist that can be installed locally
- run: pnpm -F @cursorless/cursorless-vscode populate-dist --local-install
+ run: pnpm -F @cursorless/app-vscode populate-dist --local-install
if: runner.os == 'Linux' && matrix.app_version == 'stable'
- name: Test create vsix
diff --git a/package.json b/package.json
index 772a9edffd..d773db5da0 100644
--- a/package.json
+++ b/package.json
@@ -23,7 +23,7 @@
"lint:prettier": "prettier --check .",
"lint:style": "stylelint '**/*.{css,scss}' --ignore-path .gitignore",
"lint": "pnpm run typecheck && pnpm run lint:meta && pnpm run lint:syncpack && pnpm run lint:ts && pnpm run lint:style",
- "init-vscode-sandbox": "pnpm -F @cursorless/cursorless-vscode init-launch-sandbox",
+ "init-vscode-sandbox": "pnpm -F @cursorless/app-vscode init-launch-sandbox",
"meta-updater": "env NODE_OPTIONS=--import=tsx meta-updater",
"preinstall": "npx only-allow pnpm",
"test": "pnpm -r test",
diff --git a/packages/app-vscode/package.json b/packages/app-vscode/package.json
index 780b52c486..1764a4f6fc 100644
--- a/packages/app-vscode/package.json
+++ b/packages/app-vscode/package.json
@@ -1,5 +1,5 @@
{
- "name": "@cursorless/cursorless-vscode",
+ "name": "@cursorless/app-vscode",
"displayName": "Cursorless",
"version": "1.1.0",
"description": "Structural voice coding at the speed of thought",
@@ -1286,8 +1286,8 @@
"test": "pnpm ensure-grammar-up-to-date",
"dev": "pnpm generate-grammar && pnpm run compile:dev && pnpm run bundle:dev && pnpm run populate-dist",
"build": "pnpm generate-grammar && pnpm run compile:prod && pnpm run bundle:prod && pnpm run populate-dist",
- "bundle:dev": "pnpm -F @cursorless/cursorless-vscode-tutorial-webview -F @cursorless/lib-cheatsheet-local run bundle:dev",
- "bundle:prod": "pnpm -F @cursorless/cursorless-vscode-tutorial-webview -F @cursorless/lib-cheatsheet-local run bundle:prod",
+ "bundle:dev": "pnpm -F @cursorless/app-vscode-tutorial-webview -F @cursorless/lib-cheatsheet-local run bundle:dev",
+ "bundle:prod": "pnpm -F @cursorless/app-vscode-tutorial-webview -F @cursorless/lib-cheatsheet-local run bundle:prod",
"compile:prod": "pnpm run compile:base --minify",
"compile:dev": "pnpm run compile:base --sourcemap",
"compile:watch": "pnpm run compile:base --sourcemap --watch",
@@ -1311,7 +1311,7 @@
"dependencies": {
"@cursorless/lib-common": "workspace:*",
"@cursorless/lib-engine": "workspace:*",
- "@cursorless/cursorless-tutorial": "workspace:*",
+ "@cursorless/lib-tutorial": "workspace:*",
"@cursorless/node-common": "workspace:*",
"@cursorless/test-case-recorder": "workspace:*",
"@cursorless/vscode-common": "workspace:*",
diff --git a/packages/app-vscode/scripts/install-local.sh b/packages/app-vscode/scripts/install-local.sh
index 14bbb96764..033f4a9db3 100644
--- a/packages/app-vscode/scripts/install-local.sh
+++ b/packages/app-vscode/scripts/install-local.sh
@@ -17,7 +17,7 @@ fi
# 1. Build local cursorless, using special extension id to break update chain
pnpm -F @cursorless/lib-cheatsheet-local bundle:prod
-pnpm -F @cursorless/cursorless-vscode-tutorial-webview bundle:prod
+pnpm -F @cursorless/app-vscode-tutorial-webview bundle:prod
pnpm build --local-install
# 2. Bundle the extension
diff --git a/packages/app-vscode/src/VscodeTutorial.ts b/packages/app-vscode/src/VscodeTutorial.ts
index 1f1d94fe5e..356ddf16da 100644
--- a/packages/app-vscode/src/VscodeTutorial.ts
+++ b/packages/app-vscode/src/VscodeTutorial.ts
@@ -16,7 +16,7 @@ import type {
import { ExtensionMode, Uri } from "vscode";
import type { ScopeVisualizer } from "./ScopeVisualizerCommandApi";
import { SpyWebviewView } from "./SpyWebviewView";
-import type { Tutorial } from "@cursorless/cursorless-tutorial";
+import type { Tutorial } from "@cursorless/lib-tutorial";
const VSCODE_TUTORIAL_WEBVIEW_ID = "cursorless.tutorial";
diff --git a/packages/app-vscode/src/createTutorial.ts b/packages/app-vscode/src/createTutorial.ts
index 0237f32fe8..cd5256682c 100644
--- a/packages/app-vscode/src/createTutorial.ts
+++ b/packages/app-vscode/src/createTutorial.ts
@@ -3,7 +3,7 @@ import type {
CommandRunnerDecorator,
CustomSpokenFormGenerator,
} from "@cursorless/lib-engine";
-import { TutorialImpl } from "@cursorless/cursorless-tutorial";
+import { TutorialImpl } from "@cursorless/lib-tutorial";
import { FileSystemTutorialContentProvider } from "@cursorless/node-common";
import type * as vscode from "vscode";
import type { ScopeVisualizer } from "./ScopeVisualizerCommandApi";
diff --git a/packages/app-web-docs/src/docs/contributing/CONTRIBUTING.mdx b/packages/app-web-docs/src/docs/contributing/CONTRIBUTING.mdx
index ffa02b00a9..a3d2b126a7 100644
--- a/packages/app-web-docs/src/docs/contributing/CONTRIBUTING.mdx
+++ b/packages/app-web-docs/src/docs/contributing/CONTRIBUTING.mdx
@@ -232,7 +232,7 @@ This should be done every time we do something that will change the custom cheat
You'll probably want to run the following to make sure the SVGs have everything they need:
```sh
-pnpm -F @cursorless/cursorless-vscode preprocess-svg-hats
+pnpm -F @cursorless/app-vscode preprocess-svg-hats
```
This script will add dummy width, height and fill attributes as necessary to appease the regex in `Decorations.ts`
@@ -246,11 +246,11 @@ can paste the settings into `packages/cursorless-vscode/src/scripts/hatAdjustmen
your updates:
```sh
-pnpm -F @cursorless/cursorless-vscode hat-adjustments-add
+pnpm -F @cursorless/app-vscode hat-adjustments-add
```
If instead, you want to average your adjustments with those in main and see the differences to get to yours and main, you can paste the settings into `packages/cursorless-vscode/src/scripts/hatAdjustments/average.ts` and run:
```sh
-pnpm -F @cursorless/cursorless-vscode hat-adjustments-average
+pnpm -F @cursorless/app-vscode hat-adjustments-average
```
diff --git a/packages/app-web-docs/src/docs/contributing/architecture/package-scripts.md b/packages/app-web-docs/src/docs/contributing/architecture/package-scripts.md
index b2fb341f62..a35316eccf 100644
--- a/packages/app-web-docs/src/docs/contributing/architecture/package-scripts.md
+++ b/packages/app-web-docs/src/docs/contributing/architecture/package-scripts.md
@@ -59,7 +59,7 @@ These packages generally expose:
Examples include:
-- `@cursorless/cursorless-vscode`
+- `@cursorless/app-vscode`
- `@cursorless/app-neovim`
- `@cursorless/app-web`
- `@cursorless/app-web-docs`
diff --git a/packages/lib-tutorial/package.json b/packages/lib-tutorial/package.json
index 40c8624060..9a60aa8015 100644
--- a/packages/lib-tutorial/package.json
+++ b/packages/lib-tutorial/package.json
@@ -1,5 +1,5 @@
{
- "name": "@cursorless/cursorless-tutorial",
+ "name": "@cursorless/lib-tutorial",
"version": "1.0.0",
"description": "Cursorless tutorial driver code",
"license": "MIT",
diff --git a/packages/lib-vscode-tutorial-webview/package.json b/packages/lib-vscode-tutorial-webview/package.json
index 9c3e4c82f4..dd37ced5e7 100644
--- a/packages/lib-vscode-tutorial-webview/package.json
+++ b/packages/lib-vscode-tutorial-webview/package.json
@@ -1,5 +1,5 @@
{
- "name": "@cursorless/cursorless-vscode-tutorial-webview",
+ "name": "@cursorless/app-vscode-tutorial-webview",
"version": "1.0.0",
"description": "Contains the VSCode webview frontend for the Cursorless tutorial",
"license": "MIT",
diff --git a/packages/test-vscode-e2e/package.json b/packages/test-vscode-e2e/package.json
index 1b3efe829c..c0374ac70c 100644
--- a/packages/test-vscode-e2e/package.json
+++ b/packages/test-vscode-e2e/package.json
@@ -1,5 +1,5 @@
{
- "name": "@cursorless/cursorless-vscode-e2e",
+ "name": "@cursorless/test-vscode-e2e",
"version": "0.1.0",
"description": "Our VSCode end-to-end tests",
"license": "MIT",
diff --git a/packages/tool-meta-updater/src/updatePackageJson.ts b/packages/tool-meta-updater/src/updatePackageJson.ts
index 342b116295..9dbbd2b231 100644
--- a/packages/tool-meta-updater/src/updatePackageJson.ts
+++ b/packages/tool-meta-updater/src/updatePackageJson.ts
@@ -30,7 +30,7 @@ export async function updatePackageJson(
const isRoot = packageDir === workspaceDir;
const isLib = !isRoot && !input.private;
- const isCursorlessVscode = input.name === "@cursorless/cursorless-vscode";
+ const isCursorlessVscode = input.name === "@cursorless/app-vscode";
const isCursorlessNeovim = input.name === "@cursorless/app-neovim";
const isCursorlessOrgDocs = input.name === "@cursorless/app-web-docs";
const isCursorlessTestHarness = input.name === "@cursorless/test-harness";
From d54d31baf3eeb6c567cac129be0d999d16a67790 Mon Sep 17 00:00:00 2001
From: Andreas Arvidsson
Date: Thu, 19 Mar 2026 11:18:40 +0100
Subject: [PATCH 09/24] @cursorless/neovim-common
---
packages/app-neovim/package.json | 2 +-
packages/app-neovim/src/constructTestHelpers.ts | 5 ++++-
packages/app-neovim/src/extension.ts | 2 +-
packages/app-neovim/src/registerCommands.ts | 4 ++--
packages/lib-neovim-common/package.json | 2 +-
packages/lib-neovim-common/src/neovimHelpers.ts | 2 +-
packages/test-neovim-e2e/package.json | 4 ++--
packages/test-neovim-e2e/src/endToEndTestSetup.ts | 4 ++--
packages/test-neovim-e2e/src/suite/recorded.neovim.test.ts | 4 ++--
packages/test-runner/package.json | 2 +-
packages/tool-meta-updater/package.json | 2 +-
11 files changed, 18 insertions(+), 15 deletions(-)
diff --git a/packages/app-neovim/package.json b/packages/app-neovim/package.json
index 3fc0041f8a..bdbc662471 100644
--- a/packages/app-neovim/package.json
+++ b/packages/app-neovim/package.json
@@ -19,7 +19,7 @@
"dependencies": {
"@cursorless/lib-common": "workspace:*",
"@cursorless/lib-engine": "workspace:*",
- "@cursorless/neovim-common": "workspace:*",
+ "@cursorless/lib-neovim-common": "workspace:*",
"@cursorless/neovim-registry": "workspace:*",
"@cursorless/node-common": "workspace:*",
"@cursorless/test-case-recorder": "workspace:*"
diff --git a/packages/app-neovim/src/constructTestHelpers.ts b/packages/app-neovim/src/constructTestHelpers.ts
index 72931ec210..81e304f4f8 100644
--- a/packages/app-neovim/src/constructTestHelpers.ts
+++ b/packages/app-neovim/src/constructTestHelpers.ts
@@ -14,7 +14,10 @@ import type {
} from "@cursorless/lib-common";
import type { StoredTargetMap } from "@cursorless/lib-engine";
import { plainObjectToTarget } from "@cursorless/lib-engine";
-import type { NeovimIDE, NeovimTestHelpers } from "@cursorless/neovim-common";
+import type {
+ NeovimIDE,
+ NeovimTestHelpers,
+} from "@cursorless/lib-neovim-common";
import { takeSnapshot } from "@cursorless/test-case-recorder";
export function constructTestHelpers(
diff --git a/packages/app-neovim/src/extension.ts b/packages/app-neovim/src/extension.ts
index 16f94c0aeb..6339c6626a 100644
--- a/packages/app-neovim/src/extension.ts
+++ b/packages/app-neovim/src/extension.ts
@@ -4,7 +4,7 @@ import {
NormalizedIDE,
} from "@cursorless/lib-common";
import { createCursorlessEngine } from "@cursorless/lib-engine";
-import { EXTENSION_ID, NeovimIDE } from "@cursorless/neovim-common";
+import { EXTENSION_ID, NeovimIDE } from "@cursorless/lib-neovim-common";
import { getNeovimRegistry } from "@cursorless/neovim-registry";
import type { NeovimClient } from "neovim/lib/api/client";
import type { NvimPlugin } from "neovim/lib/host/NvimPlugin";
diff --git a/packages/app-neovim/src/registerCommands.ts b/packages/app-neovim/src/registerCommands.ts
index ef05c09aea..d966c32643 100644
--- a/packages/app-neovim/src/registerCommands.ts
+++ b/packages/app-neovim/src/registerCommands.ts
@@ -10,11 +10,11 @@ import {
} from "@cursorless/lib-common";
import type { CommandApi } from "@cursorless/lib-engine";
-import type { NeovimIDE } from "@cursorless/neovim-common";
+import type { NeovimIDE } from "@cursorless/lib-neovim-common";
import {
modeSwitchNormalTerminal,
modeSwitchTerminal,
-} from "@cursorless/neovim-common";
+} from "@cursorless/lib-neovim-common";
import { getNeovimRegistry } from "@cursorless/neovim-registry";
import type { NeovimClient } from "neovim";
diff --git a/packages/lib-neovim-common/package.json b/packages/lib-neovim-common/package.json
index 1f40521cb7..33a6036ec2 100644
--- a/packages/lib-neovim-common/package.json
+++ b/packages/lib-neovim-common/package.json
@@ -1,5 +1,5 @@
{
- "name": "@cursorless/neovim-common",
+ "name": "@cursorless/lib-neovim-common",
"version": "1.0.0",
"description": "Common utility functions usable anywhere that neovim api is available",
"license": "MIT",
diff --git a/packages/lib-neovim-common/src/neovimHelpers.ts b/packages/lib-neovim-common/src/neovimHelpers.ts
index 1aaa786062..b477aa9687 100644
--- a/packages/lib-neovim-common/src/neovimHelpers.ts
+++ b/packages/lib-neovim-common/src/neovimHelpers.ts
@@ -4,7 +4,7 @@ import {
bufferGetSelections,
pasteFromClipboard,
setClipboard,
-} from "@cursorless/neovim-common";
+} from "@cursorless/lib-neovim-common";
import type { NeovimTextEditor } from "./ide/neovim/NeovimTextEditor";
import type { NeovimClient } from "neovim";
import type { IDE } from "@cursorless/lib-common";
diff --git a/packages/test-neovim-e2e/package.json b/packages/test-neovim-e2e/package.json
index fa8d0f56df..b4427a6731 100644
--- a/packages/test-neovim-e2e/package.json
+++ b/packages/test-neovim-e2e/package.json
@@ -1,5 +1,5 @@
{
- "name": "@cursorless/lib-neovim-e2e",
+ "name": "@cursorless/test-neovim-e2e",
"version": "1.0.0",
"description": "Our neovim end-to-end tests",
"license": "MIT",
@@ -11,7 +11,7 @@
},
"dependencies": {
"@cursorless/lib-common": "workspace:*",
- "@cursorless/neovim-common": "workspace:*",
+ "@cursorless/lib-neovim-common": "workspace:*",
"@cursorless/neovim-registry": "workspace:*",
"@cursorless/node-common": "workspace:*",
"@cursorless/test-case-recorder": "workspace:*"
diff --git a/packages/test-neovim-e2e/src/endToEndTestSetup.ts b/packages/test-neovim-e2e/src/endToEndTestSetup.ts
index 45461bb1a0..1894d02ae6 100644
--- a/packages/test-neovim-e2e/src/endToEndTestSetup.ts
+++ b/packages/test-neovim-e2e/src/endToEndTestSetup.ts
@@ -1,7 +1,7 @@
import type { IDE } from "@cursorless/lib-common";
import { shouldUpdateFixtures, sleep, SpyIDE } from "@cursorless/lib-common";
-import type { NeovimIDE } from "@cursorless/neovim-common";
-import { getCursorlessApi } from "@cursorless/neovim-common";
+import type { NeovimIDE } from "@cursorless/lib-neovim-common";
+import { getCursorlessApi } from "@cursorless/lib-neovim-common";
import type { Context } from "mocha";
import * as sinon from "sinon";
diff --git a/packages/test-neovim-e2e/src/suite/recorded.neovim.test.ts b/packages/test-neovim-e2e/src/suite/recorded.neovim.test.ts
index 754a856873..0c5334bede 100644
--- a/packages/test-neovim-e2e/src/suite/recorded.neovim.test.ts
+++ b/packages/test-neovim-e2e/src/suite/recorded.neovim.test.ts
@@ -5,11 +5,11 @@ import type {
NeovimIDE,
NeovimTextEditor,
NewEditorOptions,
-} from "@cursorless/neovim-common";
+} from "@cursorless/lib-neovim-common";
import {
getCursorlessApi,
runCursorlessCommand,
-} from "@cursorless/neovim-common";
+} from "@cursorless/lib-neovim-common";
import * as yaml from "js-yaml";
import type { NeovimClient } from "neovim";
import { promises as fsp } from "node:fs";
diff --git a/packages/test-runner/package.json b/packages/test-runner/package.json
index b7bd8d675e..10e393f304 100644
--- a/packages/test-runner/package.json
+++ b/packages/test-runner/package.json
@@ -23,7 +23,7 @@
},
"dependencies": {
"@cursorless/lib-common": "workspace:*",
- "@cursorless/neovim-common": "workspace:*",
+ "@cursorless/lib-neovim-common": "workspace:*",
"@cursorless/neovim-registry": "workspace:*",
"@cursorless/node-common": "workspace:*",
"glob": "^13.0.6",
diff --git a/packages/tool-meta-updater/package.json b/packages/tool-meta-updater/package.json
index 510d55a251..a60c970880 100644
--- a/packages/tool-meta-updater/package.json
+++ b/packages/tool-meta-updater/package.json
@@ -1,5 +1,5 @@
{
- "name": "@cursorless/meta-updater",
+ "name": "@cursorless/tool-meta-updater",
"version": "0.1.0",
"description": "Cursorless configuration for meta-updater",
"license": "MIT",
From ef2b94d73314406ac2952d204422b91b16b0455f Mon Sep 17 00:00:00 2001
From: Andreas Arvidsson
Date: Thu, 19 Mar 2026 11:19:46 +0100
Subject: [PATCH 10/24] @cursorless/neovim-registry
---
packages/app-neovim/package.json | 2 +-
packages/app-neovim/src/extension.ts | 2 +-
packages/app-neovim/src/registerCommands.ts | 2 +-
packages/lib-neovim-common/package.json | 2 +-
packages/lib-neovim-common/src/getExtensionApi.ts | 2 +-
packages/lib-neovim-common/src/ide/neovim/NeovimEdit.ts | 2 +-
packages/lib-neovim-common/src/ide/neovim/NeovimEvents.ts | 2 +-
packages/lib-neovim-common/src/ide/neovim/NeovimIDE.ts | 2 +-
packages/lib-neovim-common/src/runCommand.ts | 2 +-
packages/lib-neovim-registry/package.json | 2 +-
packages/test-neovim-e2e/package.json | 2 +-
packages/test-runner/package.json | 2 +-
12 files changed, 12 insertions(+), 12 deletions(-)
diff --git a/packages/app-neovim/package.json b/packages/app-neovim/package.json
index bdbc662471..0fa8ab8bd8 100644
--- a/packages/app-neovim/package.json
+++ b/packages/app-neovim/package.json
@@ -20,7 +20,7 @@
"@cursorless/lib-common": "workspace:*",
"@cursorless/lib-engine": "workspace:*",
"@cursorless/lib-neovim-common": "workspace:*",
- "@cursorless/neovim-registry": "workspace:*",
+ "@cursorless/lib-neovim-registry": "workspace:*",
"@cursorless/node-common": "workspace:*",
"@cursorless/test-case-recorder": "workspace:*"
},
diff --git a/packages/app-neovim/src/extension.ts b/packages/app-neovim/src/extension.ts
index 6339c6626a..ba1d273859 100644
--- a/packages/app-neovim/src/extension.ts
+++ b/packages/app-neovim/src/extension.ts
@@ -5,7 +5,7 @@ import {
} from "@cursorless/lib-common";
import { createCursorlessEngine } from "@cursorless/lib-engine";
import { EXTENSION_ID, NeovimIDE } from "@cursorless/lib-neovim-common";
-import { getNeovimRegistry } from "@cursorless/neovim-registry";
+import { getNeovimRegistry } from "@cursorless/lib-neovim-registry";
import type { NeovimClient } from "neovim/lib/api/client";
import type { NvimPlugin } from "neovim/lib/host/NvimPlugin";
import { NeovimCommandServerApi } from "./NeovimCommandServerApi";
diff --git a/packages/app-neovim/src/registerCommands.ts b/packages/app-neovim/src/registerCommands.ts
index d966c32643..419c9bf7ae 100644
--- a/packages/app-neovim/src/registerCommands.ts
+++ b/packages/app-neovim/src/registerCommands.ts
@@ -15,7 +15,7 @@ import {
modeSwitchNormalTerminal,
modeSwitchTerminal,
} from "@cursorless/lib-neovim-common";
-import { getNeovimRegistry } from "@cursorless/neovim-registry";
+import { getNeovimRegistry } from "@cursorless/lib-neovim-registry";
import type { NeovimClient } from "neovim";
export async function registerCommands(
diff --git a/packages/lib-neovim-common/package.json b/packages/lib-neovim-common/package.json
index 33a6036ec2..e31463235b 100644
--- a/packages/lib-neovim-common/package.json
+++ b/packages/lib-neovim-common/package.json
@@ -13,7 +13,7 @@
},
"dependencies": {
"@cursorless/lib-common": "workspace:*",
- "@cursorless/neovim-registry": "workspace:*",
+ "@cursorless/lib-neovim-registry": "workspace:*",
"@cursorless/node-common": "workspace:*",
"lodash": "^4.17.23",
"neovim": "^5.4.0",
diff --git a/packages/lib-neovim-common/src/getExtensionApi.ts b/packages/lib-neovim-common/src/getExtensionApi.ts
index b75a84e9d7..e293b2f927 100644
--- a/packages/lib-neovim-common/src/getExtensionApi.ts
+++ b/packages/lib-neovim-common/src/getExtensionApi.ts
@@ -1,4 +1,4 @@
-import { getNeovimRegistry } from "@cursorless/neovim-registry";
+import { getNeovimRegistry } from "@cursorless/lib-neovim-registry";
import type { NeovimTestHelpers } from "./TestHelpers";
export interface CursorlessApi {
diff --git a/packages/lib-neovim-common/src/ide/neovim/NeovimEdit.ts b/packages/lib-neovim-common/src/ide/neovim/NeovimEdit.ts
index 239881c6c4..cfcc84751a 100644
--- a/packages/lib-neovim-common/src/ide/neovim/NeovimEdit.ts
+++ b/packages/lib-neovim-common/src/ide/neovim/NeovimEdit.ts
@@ -7,7 +7,7 @@ import type {
} from "@cursorless/lib-common";
import type { NeovimClient, Window } from "neovim";
import type { NeovimIDE } from "./NeovimIDE";
-import { getNeovimRegistry } from "@cursorless/neovim-registry";
+import { getNeovimRegistry } from "@cursorless/lib-neovim-registry";
export default async function neovimEdit(
client: NeovimClient,
diff --git a/packages/lib-neovim-common/src/ide/neovim/NeovimEvents.ts b/packages/lib-neovim-common/src/ide/neovim/NeovimEvents.ts
index 2a19f0e2c1..4cc84f4ddd 100644
--- a/packages/lib-neovim-common/src/ide/neovim/NeovimEvents.ts
+++ b/packages/lib-neovim-common/src/ide/neovim/NeovimEvents.ts
@@ -5,7 +5,7 @@ import type {
TextDocumentContentChangeEvent,
} from "@cursorless/lib-common";
import { Position, Range } from "@cursorless/lib-common";
-import { getNeovimRegistry } from "@cursorless/neovim-registry";
+import { getNeovimRegistry } from "@cursorless/lib-neovim-registry";
import type { Buffer } from "neovim";
diff --git a/packages/lib-neovim-common/src/ide/neovim/NeovimIDE.ts b/packages/lib-neovim-common/src/ide/neovim/NeovimIDE.ts
index 1808eeb80b..b8084a84eb 100644
--- a/packages/lib-neovim-common/src/ide/neovim/NeovimIDE.ts
+++ b/packages/lib-neovim-common/src/ide/neovim/NeovimIDE.ts
@@ -31,7 +31,7 @@ import NeovimKeyValueStore from "./NeovimKeyValueStore";
import NeovimMessages from "./NeovimMessages";
import { NeovimTextEditor } from "./NeovimTextEditor";
-import { getNeovimRegistry } from "@cursorless/neovim-registry";
+import { getNeovimRegistry } from "@cursorless/lib-neovim-registry";
import {
bufferGetSelections,
getCursorlessNvimPath,
diff --git a/packages/lib-neovim-common/src/runCommand.ts b/packages/lib-neovim-common/src/runCommand.ts
index 0fe7cd3281..67b41e6a73 100644
--- a/packages/lib-neovim-common/src/runCommand.ts
+++ b/packages/lib-neovim-common/src/runCommand.ts
@@ -1,6 +1,6 @@
import type { Command, CommandResponse } from "@cursorless/lib-common";
import { CURSORLESS_COMMAND_ID } from "@cursorless/lib-common";
-import { getNeovimRegistry } from "@cursorless/neovim-registry";
+import { getNeovimRegistry } from "@cursorless/lib-neovim-registry";
export async function runCursorlessCommand(
command: Command,
diff --git a/packages/lib-neovim-registry/package.json b/packages/lib-neovim-registry/package.json
index 2f23211194..8176b99818 100644
--- a/packages/lib-neovim-registry/package.json
+++ b/packages/lib-neovim-registry/package.json
@@ -1,5 +1,5 @@
{
- "name": "@cursorless/neovim-registry",
+ "name": "@cursorless/lib-neovim-registry",
"version": "1.0.0",
"description": "Registry to share apis and commands between packages for neovim",
"license": "MIT",
diff --git a/packages/test-neovim-e2e/package.json b/packages/test-neovim-e2e/package.json
index b4427a6731..cdd83f19f0 100644
--- a/packages/test-neovim-e2e/package.json
+++ b/packages/test-neovim-e2e/package.json
@@ -12,7 +12,7 @@
"dependencies": {
"@cursorless/lib-common": "workspace:*",
"@cursorless/lib-neovim-common": "workspace:*",
- "@cursorless/neovim-registry": "workspace:*",
+ "@cursorless/lib-neovim-registry": "workspace:*",
"@cursorless/node-common": "workspace:*",
"@cursorless/test-case-recorder": "workspace:*"
},
diff --git a/packages/test-runner/package.json b/packages/test-runner/package.json
index 10e393f304..994c08c5c8 100644
--- a/packages/test-runner/package.json
+++ b/packages/test-runner/package.json
@@ -24,7 +24,7 @@
"dependencies": {
"@cursorless/lib-common": "workspace:*",
"@cursorless/lib-neovim-common": "workspace:*",
- "@cursorless/neovim-registry": "workspace:*",
+ "@cursorless/lib-neovim-registry": "workspace:*",
"@cursorless/node-common": "workspace:*",
"glob": "^13.0.6",
"neovim": "^5.4.0",
From 24512876fcf29021b029c692e685be932182caa8 Mon Sep 17 00:00:00 2001
From: Andreas Arvidsson
Date: Thu, 19 Mar 2026 11:20:13 +0100
Subject: [PATCH 11/24] @cursorless/node-common
---
packages/app-neovim/package.json | 2 +-
packages/app-vscode/package.json | 2 +-
packages/app-vscode/src/InstallationDependencies.ts | 2 +-
packages/app-vscode/src/VscodeTutorial.ts | 2 +-
packages/app-vscode/src/createTutorial.ts | 2 +-
packages/app-vscode/src/extension.ts | 2 +-
packages/app-vscode/src/ide/vscode/VscodeCapabilities.ts | 2 +-
packages/app-vscode/src/ide/vscode/VscodeRunMode.ts | 2 +-
packages/app-vscode/src/ide/vscode/hats/VscodeHatRenderer.ts | 2 +-
packages/app-vscode/src/registerCommands.ts | 2 +-
packages/app-vscode/src/scripts/preprocessSvgHats.ts | 2 +-
packages/app-web-docs/package.json | 2 +-
packages/app-web-docs/src/plugins/scope-tests-plugin.ts | 4 ++--
packages/lib-engine/package.json | 2 +-
.../src/generateSpokenForm/generateSpokenForm.test.ts | 2 +-
.../lib-engine/src/scripts/transformRecordedTests/index.ts | 2 +-
packages/lib-engine/src/test/scopes.test.ts | 2 +-
packages/lib-engine/src/test/spokenForms.talon.test.ts | 2 +-
packages/lib-engine/src/testUtil/TalonRepl.ts | 2 +-
packages/lib-engine/src/testUtil/TestFileSystem.ts | 2 +-
packages/lib-engine/src/testUtil/createTestEnvironment.ts | 2 +-
packages/lib-neovim-common/package.json | 2 +-
packages/lib-neovim-common/src/ide/neovim/NeovimIDE.ts | 2 +-
packages/lib-node-common/package.json | 2 +-
packages/lib-node-common/src/Cheatsheet.ts | 2 +-
packages/lib-node-common/src/getFixturePaths.ts | 2 +-
packages/lib-test-case-recorder/package.json | 2 +-
packages/lib-test-case-recorder/src/ScopeTestRecorder.ts | 2 +-
packages/lib-test-case-recorder/src/TestCaseRecorder.ts | 5 ++++-
packages/test-neovim-e2e/package.json | 2 +-
packages/test-neovim-e2e/src/suite/recorded.neovim.test.ts | 5 ++++-
packages/test-runner/package.json | 2 +-
packages/test-runner/src/launchNeovimAndRunTests.ts | 2 +-
packages/test-runner/src/launchVscodeAndRunTests.ts | 2 +-
packages/test-runner/src/runAllTests.ts | 2 +-
packages/test-runner/src/scripts/runVscodeTestsCI.ts | 2 +-
packages/test-runner/src/testSubset.ts | 2 +-
packages/test-talon-e2e/package.json | 2 +-
packages/test-talon-e2e/src/recorded.talonjs.test.ts | 2 +-
packages/test-vscode-e2e/package.json | 2 +-
.../src/suite/crossCellsSetSelection.vscode.test.ts | 2 +-
packages/test-vscode-e2e/src/suite/followLink.vscode.test.ts | 2 +-
.../test-vscode-e2e/src/suite/keyboard/basic.vscode.test.ts | 2 +-
.../test-vscode-e2e/src/suite/performance.vscode.test.ts | 2 +-
packages/test-vscode-e2e/src/suite/recorded.vscode.test.ts | 5 ++++-
.../src/suite/scopeProvider/scopeProvider.vscode.test.ts | 2 +-
.../src/suite/testCaseRecorder.vscode.test.ts | 2 +-
.../src/suite/tutorial/tutorial.vscode.test.ts | 5 ++++-
48 files changed, 61 insertions(+), 49 deletions(-)
diff --git a/packages/app-neovim/package.json b/packages/app-neovim/package.json
index 0fa8ab8bd8..9ae24729fd 100644
--- a/packages/app-neovim/package.json
+++ b/packages/app-neovim/package.json
@@ -21,7 +21,7 @@
"@cursorless/lib-engine": "workspace:*",
"@cursorless/lib-neovim-common": "workspace:*",
"@cursorless/lib-neovim-registry": "workspace:*",
- "@cursorless/node-common": "workspace:*",
+ "@cursorless/lib-node-common": "workspace:*",
"@cursorless/test-case-recorder": "workspace:*"
},
"devDependencies": {
diff --git a/packages/app-vscode/package.json b/packages/app-vscode/package.json
index 1764a4f6fc..5daac8efc3 100644
--- a/packages/app-vscode/package.json
+++ b/packages/app-vscode/package.json
@@ -1312,7 +1312,7 @@
"@cursorless/lib-common": "workspace:*",
"@cursorless/lib-engine": "workspace:*",
"@cursorless/lib-tutorial": "workspace:*",
- "@cursorless/node-common": "workspace:*",
+ "@cursorless/lib-node-common": "workspace:*",
"@cursorless/test-case-recorder": "workspace:*",
"@cursorless/vscode-common": "workspace:*",
"glob": "^13.0.6",
diff --git a/packages/app-vscode/src/InstallationDependencies.ts b/packages/app-vscode/src/InstallationDependencies.ts
index 8dd798332a..657fd3d6e3 100644
--- a/packages/app-vscode/src/InstallationDependencies.ts
+++ b/packages/app-vscode/src/InstallationDependencies.ts
@@ -1,4 +1,4 @@
-import { isWindows } from "@cursorless/node-common";
+import { isWindows } from "@cursorless/lib-node-common";
import { COMMAND_SERVER_EXTENSION_ID } from "@cursorless/vscode-common";
import { globSync } from "glob";
import * as fs from "node:fs";
diff --git a/packages/app-vscode/src/VscodeTutorial.ts b/packages/app-vscode/src/VscodeTutorial.ts
index 356ddf16da..1fbe3e1dd9 100644
--- a/packages/app-vscode/src/VscodeTutorial.ts
+++ b/packages/app-vscode/src/VscodeTutorial.ts
@@ -3,7 +3,7 @@ import type {
TutorialId,
TutorialState,
} from "@cursorless/lib-common";
-import { getCursorlessRepoRoot } from "@cursorless/node-common";
+import { getCursorlessRepoRoot } from "@cursorless/lib-node-common";
import type { SpyWebViewEvent, VscodeApi } from "@cursorless/vscode-common";
import path from "node:path";
import type {
diff --git a/packages/app-vscode/src/createTutorial.ts b/packages/app-vscode/src/createTutorial.ts
index cd5256682c..fa1e7cee67 100644
--- a/packages/app-vscode/src/createTutorial.ts
+++ b/packages/app-vscode/src/createTutorial.ts
@@ -4,7 +4,7 @@ import type {
CustomSpokenFormGenerator,
} from "@cursorless/lib-engine";
import { TutorialImpl } from "@cursorless/lib-tutorial";
-import { FileSystemTutorialContentProvider } from "@cursorless/node-common";
+import { FileSystemTutorialContentProvider } from "@cursorless/lib-node-common";
import type * as vscode from "vscode";
import type { ScopeVisualizer } from "./ScopeVisualizerCommandApi";
import { VscodeTutorial } from "./VscodeTutorial";
diff --git a/packages/app-vscode/src/extension.ts b/packages/app-vscode/src/extension.ts
index de4812de9f..b3e3937d46 100644
--- a/packages/app-vscode/src/extension.ts
+++ b/packages/app-vscode/src/extension.ts
@@ -10,7 +10,7 @@ import {
FileSystemCommandHistoryStorage,
FileSystemRawTreeSitterQueryProvider,
FileSystemTalonSpokenForms,
-} from "@cursorless/node-common";
+} from "@cursorless/lib-node-common";
import {
ScopeTestRecorder,
TestCaseRecorder,
diff --git a/packages/app-vscode/src/ide/vscode/VscodeCapabilities.ts b/packages/app-vscode/src/ide/vscode/VscodeCapabilities.ts
index 5f037a1353..f75b194cff 100644
--- a/packages/app-vscode/src/ide/vscode/VscodeCapabilities.ts
+++ b/packages/app-vscode/src/ide/vscode/VscodeCapabilities.ts
@@ -2,7 +2,7 @@ import type {
Capabilities,
CommandCapabilityMap,
} from "@cursorless/lib-common";
-import { nodeGetRunMode } from "@cursorless/node-common";
+import { nodeGetRunMode } from "@cursorless/lib-node-common";
import * as semver from "semver";
import * as vscode from "vscode";
diff --git a/packages/app-vscode/src/ide/vscode/VscodeRunMode.ts b/packages/app-vscode/src/ide/vscode/VscodeRunMode.ts
index 3aa890ea24..129bdf8cc0 100644
--- a/packages/app-vscode/src/ide/vscode/VscodeRunMode.ts
+++ b/packages/app-vscode/src/ide/vscode/VscodeRunMode.ts
@@ -1,7 +1,7 @@
import type { ExtensionContext } from "vscode";
import { ExtensionMode } from "vscode";
import type { RunMode } from "@cursorless/lib-common";
-import { nodeGetRunMode } from "@cursorless/node-common";
+import { nodeGetRunMode } from "@cursorless/lib-node-common";
const EXTENSION_MODE_MAP: Record = {
[ExtensionMode.Development]: "development",
diff --git a/packages/app-vscode/src/ide/vscode/hats/VscodeHatRenderer.ts b/packages/app-vscode/src/ide/vscode/hats/VscodeHatRenderer.ts
index bf48e135c2..ed653a3584 100644
--- a/packages/app-vscode/src/ide/vscode/hats/VscodeHatRenderer.ts
+++ b/packages/app-vscode/src/ide/vscode/hats/VscodeHatRenderer.ts
@@ -4,7 +4,7 @@ import type {
PathChangeListener,
} from "@cursorless/lib-common";
import { Notifier } from "@cursorless/lib-common";
-import { walkFiles } from "@cursorless/node-common";
+import { walkFiles } from "@cursorless/lib-node-common";
import type { VscodeApi } from "@cursorless/vscode-common";
import * as fs from "node:fs/promises";
import { cloneDeep, isEqual } from "lodash-es";
diff --git a/packages/app-vscode/src/registerCommands.ts b/packages/app-vscode/src/registerCommands.ts
index 0a6d0d42e0..fd78b69570 100644
--- a/packages/app-vscode/src/registerCommands.ts
+++ b/packages/app-vscode/src/registerCommands.ts
@@ -6,7 +6,7 @@ import type {
import { CURSORLESS_COMMAND_ID } from "@cursorless/lib-common";
import type { CommandApi, StoredTargetMap } from "@cursorless/lib-engine";
import { analyzeCommandHistory } from "@cursorless/lib-engine";
-import { showCheatsheet, updateDefaults } from "@cursorless/node-common";
+import { showCheatsheet, updateDefaults } from "@cursorless/lib-node-common";
import type {
ScopeTestRecorder,
TestCaseRecorder,
diff --git a/packages/app-vscode/src/scripts/preprocessSvgHats.ts b/packages/app-vscode/src/scripts/preprocessSvgHats.ts
index d924a5704a..1b2cd10e94 100644
--- a/packages/app-vscode/src/scripts/preprocessSvgHats.ts
+++ b/packages/app-vscode/src/scripts/preprocessSvgHats.ts
@@ -1,4 +1,4 @@
-import { getCursorlessRepoRoot } from "@cursorless/node-common";
+import { getCursorlessRepoRoot } from "@cursorless/lib-node-common";
import * as parser from "fast-xml-parser";
import { promises as fsp, readdirSync } from "node:fs";
import * as path from "node:path";
diff --git a/packages/app-web-docs/package.json b/packages/app-web-docs/package.json
index 9029d574b6..19b675489b 100644
--- a/packages/app-web-docs/package.json
+++ b/packages/app-web-docs/package.json
@@ -44,7 +44,7 @@
"unist-util-visit": "^5.1.0"
},
"devDependencies": {
- "@cursorless/node-common": "workspace:*",
+ "@cursorless/lib-node-common": "workspace:*",
"@docusaurus/module-type-aliases": "^3.9.2",
"@docusaurus/types": "^3.9.2",
"@tsconfig/docusaurus": "^2.0.9",
diff --git a/packages/app-web-docs/src/plugins/scope-tests-plugin.ts b/packages/app-web-docs/src/plugins/scope-tests-plugin.ts
index f331713bcf..4641c1e3de 100644
--- a/packages/app-web-docs/src/plugins/scope-tests-plugin.ts
+++ b/packages/app-web-docs/src/plugins/scope-tests-plugin.ts
@@ -1,8 +1,8 @@
-import type { ScopeTestPath } from "@cursorless/node-common";
+import type { ScopeTestPath } from "@cursorless/lib-node-common";
import {
getScopeTestLanguagesRecursively,
getScopeTestPaths,
-} from "@cursorless/node-common";
+} from "@cursorless/lib-node-common";
import type { LoadContext, Plugin, PluginOptions } from "@docusaurus/types";
import * as fs from "node:fs";
import * as path from "node:path";
diff --git a/packages/lib-engine/package.json b/packages/lib-engine/package.json
index 08b337c9a5..edd9def7b7 100644
--- a/packages/lib-engine/package.json
+++ b/packages/lib-engine/package.json
@@ -18,7 +18,7 @@
},
"dependencies": {
"@cursorless/lib-common": "workspace:*",
- "@cursorless/node-common": "workspace:*",
+ "@cursorless/lib-node-common": "workspace:*",
"@cursorless/sentence-parser": "workspace:*",
"@cursorless/talon-tools": "^0.8.0",
"immer": "^11.1.4",
diff --git a/packages/lib-engine/src/generateSpokenForm/generateSpokenForm.test.ts b/packages/lib-engine/src/generateSpokenForm/generateSpokenForm.test.ts
index 07d4703f16..7b656790b6 100644
--- a/packages/lib-engine/src/generateSpokenForm/generateSpokenForm.test.ts
+++ b/packages/lib-engine/src/generateSpokenForm/generateSpokenForm.test.ts
@@ -3,7 +3,7 @@ import {
serializeTestFixture,
shouldUpdateFixtures,
} from "@cursorless/lib-common";
-import { getRecordedTestPaths } from "@cursorless/node-common";
+import { getRecordedTestPaths } from "@cursorless/lib-node-common";
import * as yaml from "js-yaml";
import assert from "node:assert";
import { promises as fsp } from "node:fs";
diff --git a/packages/lib-engine/src/scripts/transformRecordedTests/index.ts b/packages/lib-engine/src/scripts/transformRecordedTests/index.ts
index 7635713a4c..d19fdb2f71 100644
--- a/packages/lib-engine/src/scripts/transformRecordedTests/index.ts
+++ b/packages/lib-engine/src/scripts/transformRecordedTests/index.ts
@@ -3,7 +3,7 @@ import type {
TestCaseFixtureLegacy,
} from "@cursorless/lib-common";
import { LATEST_VERSION } from "@cursorless/lib-common";
-import { getRecordedTestPaths } from "@cursorless/node-common";
+import { getRecordedTestPaths } from "@cursorless/lib-node-common";
import { checkMarks } from "./checkMarks";
import { transformFile } from "./transformFile";
import { canonicalize } from "./transformations/canonicalize";
diff --git a/packages/lib-engine/src/test/scopes.test.ts b/packages/lib-engine/src/test/scopes.test.ts
index cfb7865bac..ca5bf04e57 100644
--- a/packages/lib-engine/src/test/scopes.test.ts
+++ b/packages/lib-engine/src/test/scopes.test.ts
@@ -12,7 +12,7 @@ import {
ScopeSupportFacetLevel,
shouldUpdateFixtures,
} from "@cursorless/lib-common";
-import { getScopeTestPathsRecursively } from "@cursorless/node-common";
+import { getScopeTestPathsRecursively } from "@cursorless/lib-node-common";
import { assert } from "chai";
import { groupBy, uniq } from "lodash-es";
import { promises as fsp } from "node:fs";
diff --git a/packages/lib-engine/src/test/spokenForms.talon.test.ts b/packages/lib-engine/src/test/spokenForms.talon.test.ts
index a74a8e88a9..e7cc5178b4 100644
--- a/packages/lib-engine/src/test/spokenForms.talon.test.ts
+++ b/packages/lib-engine/src/test/spokenForms.talon.test.ts
@@ -4,7 +4,7 @@ import type {
TestCaseFixtureLegacy,
} from "@cursorless/lib-common";
import { asyncSafety } from "@cursorless/lib-common";
-import { getRecordedTestPaths } from "@cursorless/node-common";
+import { getRecordedTestPaths } from "@cursorless/lib-node-common";
import assert from "assert";
import * as yaml from "js-yaml";
import { promises as fsp } from "node:fs";
diff --git a/packages/lib-engine/src/testUtil/TalonRepl.ts b/packages/lib-engine/src/testUtil/TalonRepl.ts
index 2a1e69e111..670dd17b7a 100644
--- a/packages/lib-engine/src/testUtil/TalonRepl.ts
+++ b/packages/lib-engine/src/testUtil/TalonRepl.ts
@@ -1,4 +1,4 @@
-import { isWindows } from "@cursorless/node-common";
+import { isWindows } from "@cursorless/lib-node-common";
import * as childProcess from "node:child_process";
import * as os from "node:os";
diff --git a/packages/lib-engine/src/testUtil/TestFileSystem.ts b/packages/lib-engine/src/testUtil/TestFileSystem.ts
index 1e1cc865b3..caf4ecf45b 100644
--- a/packages/lib-engine/src/testUtil/TestFileSystem.ts
+++ b/packages/lib-engine/src/testUtil/TestFileSystem.ts
@@ -4,7 +4,7 @@ import type {
PathChangeListener,
RunMode,
} from "@cursorless/lib-common";
-import { getCursorlessRepoRoot } from "@cursorless/node-common";
+import { getCursorlessRepoRoot } from "@cursorless/lib-node-common";
import { join } from "node:path";
import fs from "node:fs/promises";
diff --git a/packages/lib-engine/src/testUtil/createTestEnvironment.ts b/packages/lib-engine/src/testUtil/createTestEnvironment.ts
index af638d0805..dd11f801ba 100644
--- a/packages/lib-engine/src/testUtil/createTestEnvironment.ts
+++ b/packages/lib-engine/src/testUtil/createTestEnvironment.ts
@@ -6,7 +6,7 @@ import type {
ScopeProvider,
} from "@cursorless/lib-common";
import { FakeIDE, InMemoryTextEditor } from "@cursorless/lib-common";
-import { FileSystemRawTreeSitterQueryProvider } from "@cursorless/node-common";
+import { FileSystemRawTreeSitterQueryProvider } from "@cursorless/lib-node-common";
import { createCursorlessEngine } from "..";
import { TestFileSystem } from "./TestFileSystem";
import { TestTreeSitter } from "./TestTreeSitter";
diff --git a/packages/lib-neovim-common/package.json b/packages/lib-neovim-common/package.json
index e31463235b..063c89f121 100644
--- a/packages/lib-neovim-common/package.json
+++ b/packages/lib-neovim-common/package.json
@@ -14,7 +14,7 @@
"dependencies": {
"@cursorless/lib-common": "workspace:*",
"@cursorless/lib-neovim-registry": "workspace:*",
- "@cursorless/node-common": "workspace:*",
+ "@cursorless/lib-node-common": "workspace:*",
"lodash": "^4.17.23",
"neovim": "^5.4.0",
"uuid": "^13.0.0",
diff --git a/packages/lib-neovim-common/src/ide/neovim/NeovimIDE.ts b/packages/lib-neovim-common/src/ide/neovim/NeovimIDE.ts
index b8084a84eb..8771727030 100644
--- a/packages/lib-neovim-common/src/ide/neovim/NeovimIDE.ts
+++ b/packages/lib-neovim-common/src/ide/neovim/NeovimIDE.ts
@@ -18,7 +18,7 @@ import type {
TextEditorVisibleRangesChangeEvent,
WorkspaceFolder,
} from "@cursorless/lib-common";
-import { nodeGetRunMode } from "@cursorless/node-common";
+import { nodeGetRunMode } from "@cursorless/lib-node-common";
import { pull } from "lodash";
import type { Buffer, NeovimClient, Window } from "neovim";
import path from "path";
diff --git a/packages/lib-node-common/package.json b/packages/lib-node-common/package.json
index e4347278a4..84e0168d9b 100644
--- a/packages/lib-node-common/package.json
+++ b/packages/lib-node-common/package.json
@@ -1,5 +1,5 @@
{
- "name": "@cursorless/node-common",
+ "name": "@cursorless/lib-node-common",
"version": "1.0.0",
"description": "Package containing node utilities",
"license": "MIT",
diff --git a/packages/lib-node-common/src/Cheatsheet.ts b/packages/lib-node-common/src/Cheatsheet.ts
index e3f60d11ff..253a18aef8 100644
--- a/packages/lib-node-common/src/Cheatsheet.ts
+++ b/packages/lib-node-common/src/Cheatsheet.ts
@@ -1,5 +1,5 @@
import { type IDE } from "@cursorless/lib-common";
-import { getCursorlessRepoRoot } from "@cursorless/node-common";
+import { getCursorlessRepoRoot } from "@cursorless/lib-node-common";
import { readFile, writeFile } from "node:fs/promises";
import { produce } from "immer";
import { sortBy } from "lodash-es";
diff --git a/packages/lib-node-common/src/getFixturePaths.ts b/packages/lib-node-common/src/getFixturePaths.ts
index 2ae68a60b4..72c28f5614 100644
--- a/packages/lib-node-common/src/getFixturePaths.ts
+++ b/packages/lib-node-common/src/getFixturePaths.ts
@@ -2,7 +2,7 @@ import type {
PlaintextScopeSupportFacet,
ScopeSupportFacet,
} from "@cursorless/lib-common";
-import { getCursorlessRepoRoot } from "@cursorless/node-common";
+import { getCursorlessRepoRoot } from "@cursorless/lib-node-common";
import * as path from "path";
import { walkFilesSync } from "./walkSync";
diff --git a/packages/lib-test-case-recorder/package.json b/packages/lib-test-case-recorder/package.json
index 9ddc4dae0c..bbc0ca89cb 100644
--- a/packages/lib-test-case-recorder/package.json
+++ b/packages/lib-test-case-recorder/package.json
@@ -14,7 +14,7 @@
"dependencies": {
"@cursorless/lib-common": "workspace:*",
"@cursorless/lib-engine": "workspace:*",
- "@cursorless/node-common": "workspace:*",
+ "@cursorless/lib-node-common": "workspace:*",
"glob": "^13.0.6",
"immutability-helper": "^3.1.1",
"lodash-es": "^4.17.23"
diff --git a/packages/lib-test-case-recorder/src/ScopeTestRecorder.ts b/packages/lib-test-case-recorder/src/ScopeTestRecorder.ts
index 33532d181e..299943ae80 100644
--- a/packages/lib-test-case-recorder/src/ScopeTestRecorder.ts
+++ b/packages/lib-test-case-recorder/src/ScopeTestRecorder.ts
@@ -10,7 +10,7 @@ import {
import {
getScopeTestPathsRecursively,
getScopeTestsDirPath,
-} from "@cursorless/node-common";
+} from "@cursorless/lib-node-common";
import * as fs from "node:fs";
import * as fsPromises from "node:fs/promises";
import * as path from "node:path";
diff --git a/packages/lib-test-case-recorder/src/TestCaseRecorder.ts b/packages/lib-test-case-recorder/src/TestCaseRecorder.ts
index 27168a907e..6e311f385b 100644
--- a/packages/lib-test-case-recorder/src/TestCaseRecorder.ts
+++ b/packages/lib-test-case-recorder/src/TestCaseRecorder.ts
@@ -29,7 +29,10 @@ import {
defaultSpokenFormMap,
SpokenFormGenerator,
} from "@cursorless/lib-engine";
-import { getRecordedTestsDirPath, walkDirsSync } from "@cursorless/node-common";
+import {
+ getRecordedTestsDirPath,
+ walkDirsSync,
+} from "@cursorless/lib-node-common";
import { invariant } from "immutability-helper";
import { merge } from "lodash-es";
import * as fs from "node:fs";
diff --git a/packages/test-neovim-e2e/package.json b/packages/test-neovim-e2e/package.json
index cdd83f19f0..c2c5330db9 100644
--- a/packages/test-neovim-e2e/package.json
+++ b/packages/test-neovim-e2e/package.json
@@ -13,7 +13,7 @@
"@cursorless/lib-common": "workspace:*",
"@cursorless/lib-neovim-common": "workspace:*",
"@cursorless/lib-neovim-registry": "workspace:*",
- "@cursorless/node-common": "workspace:*",
+ "@cursorless/lib-node-common": "workspace:*",
"@cursorless/test-case-recorder": "workspace:*"
},
"devDependencies": {
diff --git a/packages/test-neovim-e2e/src/suite/recorded.neovim.test.ts b/packages/test-neovim-e2e/src/suite/recorded.neovim.test.ts
index 0c5334bede..064fe0c620 100644
--- a/packages/test-neovim-e2e/src/suite/recorded.neovim.test.ts
+++ b/packages/test-neovim-e2e/src/suite/recorded.neovim.test.ts
@@ -1,6 +1,9 @@
import type { TestCaseFixtureLegacy } from "@cursorless/lib-common";
import { asyncSafety } from "@cursorless/lib-common";
-import { getRecordedTestPaths, runRecordedTest } from "@cursorless/node-common";
+import {
+ getRecordedTestPaths,
+ runRecordedTest,
+} from "@cursorless/lib-node-common";
import type {
NeovimIDE,
NeovimTextEditor,
diff --git a/packages/test-runner/package.json b/packages/test-runner/package.json
index 994c08c5c8..6a8a500a9f 100644
--- a/packages/test-runner/package.json
+++ b/packages/test-runner/package.json
@@ -25,7 +25,7 @@
"@cursorless/lib-common": "workspace:*",
"@cursorless/lib-neovim-common": "workspace:*",
"@cursorless/lib-neovim-registry": "workspace:*",
- "@cursorless/node-common": "workspace:*",
+ "@cursorless/lib-node-common": "workspace:*",
"glob": "^13.0.6",
"neovim": "^5.4.0",
"tail": "^2.2.6"
diff --git a/packages/test-runner/src/launchNeovimAndRunTests.ts b/packages/test-runner/src/launchNeovimAndRunTests.ts
index 636401ba41..3d3655664b 100644
--- a/packages/test-runner/src/launchNeovimAndRunTests.ts
+++ b/packages/test-runner/src/launchNeovimAndRunTests.ts
@@ -1,5 +1,5 @@
import { getEnvironmentVariableStrict } from "@cursorless/lib-common";
-import { getCursorlessRepoRoot, isWindows } from "@cursorless/node-common";
+import { getCursorlessRepoRoot, isWindows } from "@cursorless/lib-node-common";
import * as cp from "child_process";
import { copyFile, mkdirSync, readdirSync } from "fs";
import process from "node:process";
diff --git a/packages/test-runner/src/launchVscodeAndRunTests.ts b/packages/test-runner/src/launchVscodeAndRunTests.ts
index 440b5c1c14..46d87e5982 100644
--- a/packages/test-runner/src/launchVscodeAndRunTests.ts
+++ b/packages/test-runner/src/launchVscodeAndRunTests.ts
@@ -2,7 +2,7 @@ import {
extensionDependencies,
getEnvironmentVariableStrict,
} from "@cursorless/lib-common";
-import { getCursorlessRepoRoot, isWindows } from "@cursorless/node-common";
+import { getCursorlessRepoRoot, isWindows } from "@cursorless/lib-node-common";
import {
downloadAndUnzipVSCode,
resolveCliArgsFromVSCodeExecutablePath,
diff --git a/packages/test-runner/src/runAllTests.ts b/packages/test-runner/src/runAllTests.ts
index 867fe2b4c8..4225119ee5 100644
--- a/packages/test-runner/src/runAllTests.ts
+++ b/packages/test-runner/src/runAllTests.ts
@@ -1,4 +1,4 @@
-import { getCursorlessRepoRoot } from "@cursorless/node-common";
+import { getCursorlessRepoRoot } from "@cursorless/lib-node-common";
import { glob } from "glob";
import Mocha from "mocha";
import * as path from "node:path";
diff --git a/packages/test-runner/src/scripts/runVscodeTestsCI.ts b/packages/test-runner/src/scripts/runVscodeTestsCI.ts
index 4cde3f5837..209158db91 100644
--- a/packages/test-runner/src/scripts/runVscodeTestsCI.ts
+++ b/packages/test-runner/src/scripts/runVscodeTestsCI.ts
@@ -2,7 +2,7 @@
* This file can be run from node to run vscode tests in CI
*/
-import { getCursorlessRepoRoot } from "@cursorless/node-common";
+import { getCursorlessRepoRoot } from "@cursorless/lib-node-common";
import * as path from "node:path";
import { launchVscodeAndRunTests } from "../launchVscodeAndRunTests";
diff --git a/packages/test-runner/src/testSubset.ts b/packages/test-runner/src/testSubset.ts
index e3d106c446..06da265cc5 100644
--- a/packages/test-runner/src/testSubset.ts
+++ b/packages/test-runner/src/testSubset.ts
@@ -1,6 +1,6 @@
import * as fs from "node:fs";
import * as path from "node:path";
-import { getCursorlessRepoRoot } from "@cursorless/node-common";
+import { getCursorlessRepoRoot } from "@cursorless/lib-node-common";
/**
* Returns the grep string to pass to Mocha when running a subset of tests.
diff --git a/packages/test-talon-e2e/package.json b/packages/test-talon-e2e/package.json
index cd7aac4817..d0309c7c7b 100644
--- a/packages/test-talon-e2e/package.json
+++ b/packages/test-talon-e2e/package.json
@@ -13,7 +13,7 @@
"dependencies": {
"@cursorless/lib-common": "workspace:*",
"@cursorless/lib-talon-core": "workspace:*",
- "@cursorless/node-common": "workspace:*",
+ "@cursorless/lib-node-common": "workspace:*",
"@cursorless/test-case-recorder": "workspace:*"
},
"devDependencies": {
diff --git a/packages/test-talon-e2e/src/recorded.talonjs.test.ts b/packages/test-talon-e2e/src/recorded.talonjs.test.ts
index 1143ff97f6..857b9568d3 100644
--- a/packages/test-talon-e2e/src/recorded.talonjs.test.ts
+++ b/packages/test-talon-e2e/src/recorded.talonjs.test.ts
@@ -12,7 +12,7 @@ import {
getRecordedTestPaths,
loadFixture,
runRecordedTest,
-} from "@cursorless/node-common";
+} from "@cursorless/lib-node-common";
import { constructTestHelpers } from "./constructTestHelpers";
import { endToEndTestSetup } from "./endToEndTestSetUp";
import { talonMock } from "./talonMock";
diff --git a/packages/test-vscode-e2e/package.json b/packages/test-vscode-e2e/package.json
index c0374ac70c..f3a4fc336a 100644
--- a/packages/test-vscode-e2e/package.json
+++ b/packages/test-vscode-e2e/package.json
@@ -11,7 +11,7 @@
},
"dependencies": {
"@cursorless/lib-common": "workspace:*",
- "@cursorless/node-common": "workspace:*",
+ "@cursorless/lib-node-common": "workspace:*",
"@cursorless/vscode-common": "workspace:*",
"immer": "^11.1.4",
"lodash-es": "^4.17.23"
diff --git a/packages/test-vscode-e2e/src/suite/crossCellsSetSelection.vscode.test.ts b/packages/test-vscode-e2e/src/suite/crossCellsSetSelection.vscode.test.ts
index 3b1c3d2325..47f1332b62 100644
--- a/packages/test-vscode-e2e/src/suite/crossCellsSetSelection.vscode.test.ts
+++ b/packages/test-vscode-e2e/src/suite/crossCellsSetSelection.vscode.test.ts
@@ -1,5 +1,5 @@
import { LATEST_VERSION } from "@cursorless/lib-common";
-import { isLinux } from "@cursorless/node-common";
+import { isLinux } from "@cursorless/lib-node-common";
import {
getCursorlessApi,
openNewNotebookEditor,
diff --git a/packages/test-vscode-e2e/src/suite/followLink.vscode.test.ts b/packages/test-vscode-e2e/src/suite/followLink.vscode.test.ts
index b506bfab8a..6b4f895f8c 100644
--- a/packages/test-vscode-e2e/src/suite/followLink.vscode.test.ts
+++ b/packages/test-vscode-e2e/src/suite/followLink.vscode.test.ts
@@ -1,5 +1,5 @@
import { LATEST_VERSION } from "@cursorless/lib-common";
-import { getFixturePath, isWindows } from "@cursorless/node-common";
+import { getFixturePath, isWindows } from "@cursorless/lib-node-common";
import {
getReusableEditor,
runCursorlessCommand,
diff --git a/packages/test-vscode-e2e/src/suite/keyboard/basic.vscode.test.ts b/packages/test-vscode-e2e/src/suite/keyboard/basic.vscode.test.ts
index 531bf4ce1a..7704647ebb 100644
--- a/packages/test-vscode-e2e/src/suite/keyboard/basic.vscode.test.ts
+++ b/packages/test-vscode-e2e/src/suite/keyboard/basic.vscode.test.ts
@@ -8,7 +8,7 @@ import * as vscode from "vscode";
import { endToEndTestSetup, sleepWithBackoff } from "../../endToEndTestSetup";
import sinon from "sinon";
import * as path from "node:path";
-import { getCursorlessRepoRoot } from "@cursorless/node-common";
+import { getCursorlessRepoRoot } from "@cursorless/lib-node-common";
import { readFile } from "node:fs/promises";
interface TestCase {
diff --git a/packages/test-vscode-e2e/src/suite/performance.vscode.test.ts b/packages/test-vscode-e2e/src/suite/performance.vscode.test.ts
index cbf4f9b69d..cbee583644 100644
--- a/packages/test-vscode-e2e/src/suite/performance.vscode.test.ts
+++ b/packages/test-vscode-e2e/src/suite/performance.vscode.test.ts
@@ -13,7 +13,7 @@ import assert from "assert";
import * as vscode from "vscode";
import { endToEndTestSetup } from "../endToEndTestSetup";
import { isCI } from "../isCI";
-import { isMac } from "@cursorless/node-common";
+import { isMac } from "@cursorless/lib-node-common";
const testData = generateTestData(100);
const multiplier = calculateMultiplier();
diff --git a/packages/test-vscode-e2e/src/suite/recorded.vscode.test.ts b/packages/test-vscode-e2e/src/suite/recorded.vscode.test.ts
index a5ebf8c243..d91af27138 100644
--- a/packages/test-vscode-e2e/src/suite/recorded.vscode.test.ts
+++ b/packages/test-vscode-e2e/src/suite/recorded.vscode.test.ts
@@ -4,7 +4,10 @@ import {
HatStability,
asyncSafety,
} from "@cursorless/lib-common";
-import { getRecordedTestPaths, runRecordedTest } from "@cursorless/node-common";
+import {
+ getRecordedTestPaths,
+ runRecordedTest,
+} from "@cursorless/lib-node-common";
import {
getCursorlessApi,
getReusableEditor,
diff --git a/packages/test-vscode-e2e/src/suite/scopeProvider/scopeProvider.vscode.test.ts b/packages/test-vscode-e2e/src/suite/scopeProvider/scopeProvider.vscode.test.ts
index 540d2d1e8f..50d9c1f06f 100644
--- a/packages/test-vscode-e2e/src/suite/scopeProvider/scopeProvider.vscode.test.ts
+++ b/packages/test-vscode-e2e/src/suite/scopeProvider/scopeProvider.vscode.test.ts
@@ -1,5 +1,5 @@
import { asyncSafety } from "@cursorless/lib-common";
-import { isLinux } from "@cursorless/node-common";
+import { isLinux } from "@cursorless/lib-node-common";
import { endToEndTestSetup } from "../../endToEndTestSetup";
import { isCI } from "../../isCI";
import { runBasicScopeInfoTest } from "./runBasicScopeInfoTest";
diff --git a/packages/test-vscode-e2e/src/suite/testCaseRecorder.vscode.test.ts b/packages/test-vscode-e2e/src/suite/testCaseRecorder.vscode.test.ts
index 783cef8681..fd5fcc832c 100644
--- a/packages/test-vscode-e2e/src/suite/testCaseRecorder.vscode.test.ts
+++ b/packages/test-vscode-e2e/src/suite/testCaseRecorder.vscode.test.ts
@@ -3,7 +3,7 @@ import { LATEST_VERSION } from "@cursorless/lib-common";
import {
getFixturePath,
getRecordedTestsDirPath,
-} from "@cursorless/node-common";
+} from "@cursorless/lib-node-common";
import {
getCursorlessApi,
getReusableEditor,
diff --git a/packages/test-vscode-e2e/src/suite/tutorial/tutorial.vscode.test.ts b/packages/test-vscode-e2e/src/suite/tutorial/tutorial.vscode.test.ts
index 3ed6ced379..0b35f87488 100644
--- a/packages/test-vscode-e2e/src/suite/tutorial/tutorial.vscode.test.ts
+++ b/packages/test-vscode-e2e/src/suite/tutorial/tutorial.vscode.test.ts
@@ -4,7 +4,10 @@ import {
asyncSafety,
getSnapshotForComparison,
} from "@cursorless/lib-common";
-import { getRecordedTestsDirPath, loadFixture } from "@cursorless/node-common";
+import {
+ getRecordedTestsDirPath,
+ loadFixture,
+} from "@cursorless/lib-node-common";
import {
getCursorlessApi,
runCursorlessCommand,
From aa814c8b975085c4484fab5fa09df6f8833c8d43 Mon Sep 17 00:00:00 2001
From: Andreas Arvidsson
Date: Thu, 19 Mar 2026 11:20:36 +0100
Subject: [PATCH 12/24] @cursorless/sentence-parser
---
packages/lib-engine/package.json | 2 +-
.../scopeHandlers/SentenceScopeHandler/SentenceSegmenter.ts | 4 ++--
packages/lib-sentence-parser/package.json | 2 +-
3 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/packages/lib-engine/package.json b/packages/lib-engine/package.json
index edd9def7b7..e7dbb0e22e 100644
--- a/packages/lib-engine/package.json
+++ b/packages/lib-engine/package.json
@@ -19,7 +19,7 @@
"dependencies": {
"@cursorless/lib-common": "workspace:*",
"@cursorless/lib-node-common": "workspace:*",
- "@cursorless/sentence-parser": "workspace:*",
+ "@cursorless/lib-sentence-parser": "workspace:*",
"@cursorless/talon-tools": "^0.8.0",
"immer": "^11.1.4",
"immutability-helper": "^3.1.1",
diff --git a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/SentenceScopeHandler/SentenceSegmenter.ts b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/SentenceScopeHandler/SentenceSegmenter.ts
index 4a07f03a98..57191dd546 100644
--- a/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/SentenceScopeHandler/SentenceSegmenter.ts
+++ b/packages/lib-engine/src/processTargets/modifiers/scopeHandlers/SentenceScopeHandler/SentenceSegmenter.ts
@@ -1,7 +1,7 @@
import type { MatchedText } from "@cursorless/lib-common";
import { matchRegex, testRegex } from "@cursorless/lib-common";
-import type { SentenceParserOptions } from "@cursorless/sentence-parser";
-import { getSentences } from "@cursorless/sentence-parser";
+import type { SentenceParserOptions } from "@cursorless/lib-sentence-parser";
+import { getSentences } from "@cursorless/lib-sentence-parser";
// A sentence starts with a letter with adjacent leading symbols. Whitespace excluded.
const leadingOffsetRegex = /\S*\p{L}/u;
diff --git a/packages/lib-sentence-parser/package.json b/packages/lib-sentence-parser/package.json
index 5641631e5f..1a94c7396b 100644
--- a/packages/lib-sentence-parser/package.json
+++ b/packages/lib-sentence-parser/package.json
@@ -1,5 +1,5 @@
{
- "name": "@cursorless/sentence-parser",
+ "name": "@cursorless/lib-sentence-parser",
"version": "1.0.0",
"description": "Parse text for sentence boundary detection",
"license": "MIT",
From edbe5d33d301067b482333a36f321385a44621bf Mon Sep 17 00:00:00 2001
From: Andreas Arvidsson
Date: Thu, 19 Mar 2026 11:21:00 +0100
Subject: [PATCH 13/24] @cursorless/test-case-recorder
---
packages/app-neovim/package.json | 2 +-
packages/app-neovim/src/constructTestHelpers.ts | 2 +-
packages/app-vscode/package.json | 2 +-
packages/app-vscode/src/constructTestHelpers.ts | 2 +-
packages/app-vscode/src/extension.ts | 2 +-
packages/app-vscode/src/registerCommands.ts | 2 +-
packages/lib-test-case-recorder/package.json | 2 +-
packages/test-neovim-e2e/package.json | 2 +-
packages/test-talon-e2e/package.json | 2 +-
packages/test-talon-e2e/src/constructTestHelpers.ts | 2 +-
10 files changed, 10 insertions(+), 10 deletions(-)
diff --git a/packages/app-neovim/package.json b/packages/app-neovim/package.json
index 9ae24729fd..c2307e0cb4 100644
--- a/packages/app-neovim/package.json
+++ b/packages/app-neovim/package.json
@@ -22,7 +22,7 @@
"@cursorless/lib-neovim-common": "workspace:*",
"@cursorless/lib-neovim-registry": "workspace:*",
"@cursorless/lib-node-common": "workspace:*",
- "@cursorless/test-case-recorder": "workspace:*"
+ "@cursorless/lib-test-case-recorder": "workspace:*"
},
"devDependencies": {
"@types/chai": "^5.2.3",
diff --git a/packages/app-neovim/src/constructTestHelpers.ts b/packages/app-neovim/src/constructTestHelpers.ts
index 81e304f4f8..662d47d9e5 100644
--- a/packages/app-neovim/src/constructTestHelpers.ts
+++ b/packages/app-neovim/src/constructTestHelpers.ts
@@ -18,7 +18,7 @@ import type {
NeovimIDE,
NeovimTestHelpers,
} from "@cursorless/lib-neovim-common";
-import { takeSnapshot } from "@cursorless/test-case-recorder";
+import { takeSnapshot } from "@cursorless/lib-test-case-recorder";
export function constructTestHelpers(
commandServerApi: FakeCommandServerApi,
diff --git a/packages/app-vscode/package.json b/packages/app-vscode/package.json
index 5daac8efc3..82cc5120c9 100644
--- a/packages/app-vscode/package.json
+++ b/packages/app-vscode/package.json
@@ -1313,7 +1313,7 @@
"@cursorless/lib-engine": "workspace:*",
"@cursorless/lib-tutorial": "workspace:*",
"@cursorless/lib-node-common": "workspace:*",
- "@cursorless/test-case-recorder": "workspace:*",
+ "@cursorless/lib-test-case-recorder": "workspace:*",
"@cursorless/vscode-common": "workspace:*",
"glob": "^13.0.6",
"itertools": "^2.6.0",
diff --git a/packages/app-vscode/src/constructTestHelpers.ts b/packages/app-vscode/src/constructTestHelpers.ts
index c075059193..8f3fe24c8a 100644
--- a/packages/app-vscode/src/constructTestHelpers.ts
+++ b/packages/app-vscode/src/constructTestHelpers.ts
@@ -18,7 +18,7 @@ import {
scopeHandlerCache,
treeSitterQueryCache,
} from "@cursorless/lib-engine";
-import { takeSnapshot } from "@cursorless/test-case-recorder";
+import { takeSnapshot } from "@cursorless/lib-test-case-recorder";
import type { VscodeTestHelpers } from "@cursorless/vscode-common";
import type * as vscode from "vscode";
import { toVscodeEditor } from "./ide/vscode/toVscodeEditor";
diff --git a/packages/app-vscode/src/extension.ts b/packages/app-vscode/src/extension.ts
index b3e3937d46..ab5f0d016c 100644
--- a/packages/app-vscode/src/extension.ts
+++ b/packages/app-vscode/src/extension.ts
@@ -14,7 +14,7 @@ import {
import {
ScopeTestRecorder,
TestCaseRecorder,
-} from "@cursorless/test-case-recorder";
+} from "@cursorless/lib-test-case-recorder";
import type { CursorlessApi } from "@cursorless/vscode-common";
import {
getCommandServerApi,
diff --git a/packages/app-vscode/src/registerCommands.ts b/packages/app-vscode/src/registerCommands.ts
index fd78b69570..e4436e0de2 100644
--- a/packages/app-vscode/src/registerCommands.ts
+++ b/packages/app-vscode/src/registerCommands.ts
@@ -10,7 +10,7 @@ import { showCheatsheet, updateDefaults } from "@cursorless/lib-node-common";
import type {
ScopeTestRecorder,
TestCaseRecorder,
-} from "@cursorless/test-case-recorder";
+} from "@cursorless/lib-test-case-recorder";
import * as vscode from "vscode";
import type { InstallationDependencies } from "./InstallationDependencies";
import type {
diff --git a/packages/lib-test-case-recorder/package.json b/packages/lib-test-case-recorder/package.json
index bbc0ca89cb..1885de9ed7 100644
--- a/packages/lib-test-case-recorder/package.json
+++ b/packages/lib-test-case-recorder/package.json
@@ -1,5 +1,5 @@
{
- "name": "@cursorless/test-case-recorder",
+ "name": "@cursorless/lib-test-case-recorder",
"version": "1.0.0",
"description": "Package containing the test case recorder",
"license": "MIT",
diff --git a/packages/test-neovim-e2e/package.json b/packages/test-neovim-e2e/package.json
index c2c5330db9..e6d1cc91bf 100644
--- a/packages/test-neovim-e2e/package.json
+++ b/packages/test-neovim-e2e/package.json
@@ -14,7 +14,7 @@
"@cursorless/lib-neovim-common": "workspace:*",
"@cursorless/lib-neovim-registry": "workspace:*",
"@cursorless/lib-node-common": "workspace:*",
- "@cursorless/test-case-recorder": "workspace:*"
+ "@cursorless/lib-test-case-recorder": "workspace:*"
},
"devDependencies": {
"@types/chai": "^5.2.3",
diff --git a/packages/test-talon-e2e/package.json b/packages/test-talon-e2e/package.json
index d0309c7c7b..c60f32aec7 100644
--- a/packages/test-talon-e2e/package.json
+++ b/packages/test-talon-e2e/package.json
@@ -14,7 +14,7 @@
"@cursorless/lib-common": "workspace:*",
"@cursorless/lib-talon-core": "workspace:*",
"@cursorless/lib-node-common": "workspace:*",
- "@cursorless/test-case-recorder": "workspace:*"
+ "@cursorless/lib-test-case-recorder": "workspace:*"
},
"devDependencies": {
"@types/mocha": "^10.0.10",
diff --git a/packages/test-talon-e2e/src/constructTestHelpers.ts b/packages/test-talon-e2e/src/constructTestHelpers.ts
index 421231d2b8..fc86ab343f 100644
--- a/packages/test-talon-e2e/src/constructTestHelpers.ts
+++ b/packages/test-talon-e2e/src/constructTestHelpers.ts
@@ -8,7 +8,7 @@ import type {
TextEditor,
} from "@cursorless/lib-common";
import type { TalonJsTestHelpers } from "@cursorless/lib-talon-core";
-import { takeSnapshot } from "@cursorless/test-case-recorder";
+import { takeSnapshot } from "@cursorless/lib-test-case-recorder";
export function constructTestHelpers(
testHelpers: TalonJsTestHelpers,
From 35571839bc42f9b696cf9730e4f8514908f4eed4 Mon Sep 17 00:00:00 2001
From: Andreas Arvidsson
Date: Thu, 19 Mar 2026 11:21:19 +0100
Subject: [PATCH 14/24] @cursorless/test-harness
---
.github/workflows/test.yml | 10 +++++-----
.../architecture/neovim-test-infrastructure.md | 2 +-
packages/app-web-docs/src/docs/contributing/tests.md | 6 +++---
packages/test-runner/package.json | 2 +-
packages/tool-meta-updater/src/updatePackageJson.ts | 2 +-
5 files changed, 11 insertions(+), 11 deletions(-)
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index 3c2d9d6557..83ff79578b 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -87,19 +87,19 @@ jobs:
if: runner.os != 'Linux'
- name: Run VSCode tests (Linux)
- run: xvfb-run -a pnpm -F @cursorless/test-harness test:vscode
+ run: xvfb-run -a pnpm -F @cursorless/test-runner test:vscode
if: runner.os == 'Linux'
- name: Run VSCode tests (Win,Mac)
- run: pnpm -F @cursorless/test-harness test:vscode
+ run: pnpm -F @cursorless/test-runner test:vscode
if: runner.os != 'Linux'
- name: Run Talon-JS tests (Linux)
- run: xvfb-run -a pnpm -F @cursorless/test-harness test:talonJs
+ run: xvfb-run -a pnpm -F @cursorless/test-runner test:talonJs
if: runner.os == 'Linux' && matrix.app_version == 'stable'
- name: Run Talon-JS tests (Win,Mac)
- run: pnpm -F @cursorless/test-harness test:talonJs
+ run: pnpm -F @cursorless/test-runner test:talonJs
if: runner.os != 'Linux'
- name: Run QuickJS tests (Linux)
@@ -173,7 +173,7 @@ jobs:
neovim: true
- name: Run neovim tests
- run: xvfb-run -a pnpm -F @cursorless/test-harness test:neovim
+ run: xvfb-run -a pnpm -F @cursorless/test-runner test:neovim
env:
NEOVIM_PATH: ${{ steps.vim.outputs.executable }}
diff --git a/packages/app-web-docs/src/docs/contributing/architecture/neovim-test-infrastructure.md b/packages/app-web-docs/src/docs/contributing/architecture/neovim-test-infrastructure.md
index f60b9b2958..5106ba4f45 100644
--- a/packages/app-web-docs/src/docs/contributing/architecture/neovim-test-infrastructure.md
+++ b/packages/app-web-docs/src/docs/contributing/architecture/neovim-test-infrastructure.md
@@ -208,7 +208,7 @@ This is supported on Linux only.
It starts from `.github/workflows/test.yml` which currently only tests the latest stable neovim version on Linux:
```yml
-run: xvfb-run -a pnpm -F @cursorless/test-harness test:neovim
+run: xvfb-run -a pnpm -F @cursorless/test-runner test:neovim
if: runner.os == 'Linux' && matrix.app_version == 'stable'
```
diff --git a/packages/app-web-docs/src/docs/contributing/tests.md b/packages/app-web-docs/src/docs/contributing/tests.md
index 24989512ec..b02e44d3af 100644
--- a/packages/app-web-docs/src/docs/contributing/tests.md
+++ b/packages/app-web-docs/src/docs/contributing/tests.md
@@ -22,6 +22,6 @@ You can get an overview of the various test contexts that exist locally by looki
- `pnpm test` runs the default `test` script for each workspace package. In practice, this is the fast unit-oriented test pass.
- `pnpm test:update` runs the test suite in fixture-update mode across the workspace.
- `pnpm test:update:subset` runs fixture updates only for the tests selected in `packages/test-harness/testSubsetGrep.properties`.
-- `pnpm -F @cursorless/test-harness test:vscode` runs the VSCode test harness.
-- `pnpm -F @cursorless/test-harness test:neovim` runs the Neovim test harness.
-- `pnpm -F @cursorless/test-harness test:talonJs` runs the Talon-JS test harness.
+- `pnpm -F @cursorless/test-runner test:vscode` runs the VSCode test harness.
+- `pnpm -F @cursorless/test-runner test:neovim` runs the Neovim test harness.
+- `pnpm -F @cursorless/test-runner test:talonJs` runs the Talon-JS test harness.
diff --git a/packages/test-runner/package.json b/packages/test-runner/package.json
index 6a8a500a9f..5860aa7a48 100644
--- a/packages/test-runner/package.json
+++ b/packages/test-runner/package.json
@@ -1,5 +1,5 @@
{
- "name": "@cursorless/test-harness",
+ "name": "@cursorless/test-runner",
"version": "0.1.0",
"description": "Contains scripts and runners for testing Cursorless",
"license": "MIT",
diff --git a/packages/tool-meta-updater/src/updatePackageJson.ts b/packages/tool-meta-updater/src/updatePackageJson.ts
index 9dbbd2b231..1be2f4c6f9 100644
--- a/packages/tool-meta-updater/src/updatePackageJson.ts
+++ b/packages/tool-meta-updater/src/updatePackageJson.ts
@@ -33,7 +33,7 @@ export async function updatePackageJson(
const isCursorlessVscode = input.name === "@cursorless/app-vscode";
const isCursorlessNeovim = input.name === "@cursorless/app-neovim";
const isCursorlessOrgDocs = input.name === "@cursorless/app-web-docs";
- const isCursorlessTestHarness = input.name === "@cursorless/test-harness";
+ const isCursorlessTestHarness = input.name === "@cursorless/test-runner";
if (input.description == null || input.description === "") {
throw new Error(`No description found in ${packageDir}/package.json`);
From 959803e5a61595b6f39f03ba564924cf67a67afb Mon Sep 17 00:00:00 2001
From: Andreas Arvidsson
Date: Thu, 19 Mar 2026 11:21:43 +0100
Subject: [PATCH 15/24] @cursorless/vscode-common
---
packages/app-vscode/package.json | 2 +-
packages/app-vscode/src/InstallationDependencies.ts | 2 +-
packages/app-vscode/src/ReleaseNotes.test.ts | 2 +-
packages/app-vscode/src/ReleaseNotes.ts | 2 +-
packages/app-vscode/src/ScopeTreeProvider.ts | 2 +-
packages/app-vscode/src/SpyWebviewView.ts | 2 +-
packages/app-vscode/src/VscodeTutorial.ts | 2 +-
packages/app-vscode/src/constructTestHelpers.ts | 2 +-
packages/app-vscode/src/createTreeSitter.ts | 2 +-
packages/app-vscode/src/extension.ts | 4 ++--
.../VscodeFancyRangeHighlighterRenderer.ts | 2 +-
.../vscode/VSCodeScopeVisualizer/VscodeScopeVisualizer.ts | 2 +-
.../ide/vscode/VSCodeScopeVisualizer/getColorsFromConfig.ts | 2 +-
packages/app-vscode/src/ide/vscode/VscodeEdit.ts | 2 +-
packages/app-vscode/src/ide/vscode/VscodeEvents.ts | 2 +-
packages/app-vscode/src/ide/vscode/VscodeFocusEditor.ts | 2 +-
packages/app-vscode/src/ide/vscode/VscodeIDE.ts | 2 +-
packages/app-vscode/src/ide/vscode/VscodeOpenLink.ts | 2 +-
packages/app-vscode/src/ide/vscode/VscodeTextDocument.ts | 2 +-
packages/app-vscode/src/ide/vscode/VscodeTextEditor.ts | 2 +-
packages/app-vscode/src/ide/vscode/VscodeTextLine.ts | 2 +-
packages/app-vscode/src/ide/vscode/VscodeToggleBreakpoint.ts | 2 +-
packages/app-vscode/src/ide/vscode/hats/VscodeHatRenderer.ts | 2 +-
packages/app-vscode/src/ide/vscode/hats/VscodeHats.ts | 4 ++--
.../src/ide/vscode/hats/performPr1868ShapeUpdateInit.ts | 2 +-
packages/app-vscode/src/ide/vscode/textLine.vscode.test.ts | 2 +-
packages/app-vscode/src/keyboard/KeyboardCommands.ts | 2 +-
packages/app-vscode/src/keyboard/KeyboardCommandsModal.ts | 2 +-
packages/app-vscode/src/keyboard/KeyboardCommandsTargeted.ts | 2 +-
packages/app-vscode/src/keyboard/KeyboardConfig.ts | 2 +-
packages/app-vscode/src/storedTargetHighlighter.ts | 2 +-
packages/app-vscode/src/vscodeApi.ts | 2 +-
packages/lib-vscode-common/package.json | 2 +-
packages/test-vscode-e2e/package.json | 2 +-
packages/test-vscode-e2e/src/endToEndTestSetup.ts | 2 +-
.../src/suite/backwardCompatibility.vscode.test.ts | 5 ++++-
.../test-vscode-e2e/src/suite/breakpoints.vscode.test.ts | 2 +-
.../test-vscode-e2e/src/suite/commandHistory.vscode.test.ts | 2 +-
.../src/suite/containingTokenTwice.vscode.test.ts | 2 +-
.../src/suite/crossCellsSetSelection.vscode.test.ts | 2 +-
.../test-vscode-e2e/src/suite/editNewCell.vscode.test.ts | 2 +-
.../test-vscode-e2e/src/suite/explicitMark.vscode.test.ts | 2 +-
packages/test-vscode-e2e/src/suite/fold.vscode.test.ts | 2 +-
packages/test-vscode-e2e/src/suite/followLink.vscode.test.ts | 2 +-
.../test-vscode-e2e/src/suite/groupByDocument.vscode.test.ts | 2 +-
.../src/suite/instanceAcrossSplit.vscode.test.ts | 2 +-
.../src/suite/intraCellSetSelection.vscode.test.ts | 2 +-
.../test-vscode-e2e/src/suite/keyboard/basic.vscode.test.ts | 2 +-
.../test-vscode-e2e/src/suite/performance.vscode.test.ts | 2 +-
.../test-vscode-e2e/src/suite/pourAcrossSplit.vscode.test.ts | 2 +-
.../src/suite/prePhraseSnapshot.vscode.test.ts | 2 +-
packages/test-vscode-e2e/src/suite/recorded.vscode.test.ts | 2 +-
.../test-vscode-e2e/src/suite/revealRange.vscode.test.ts | 2 +-
.../src/suite/scopeProvider/runBasicScopeInfoTest.ts | 5 ++++-
.../src/suite/scopeProvider/runCustomRegexScopeInfoTest.ts | 2 +-
.../suite/scopeProvider/runCustomSpokenFormScopeInfoTest.ts | 2 +-
.../suite/scopeProvider/runSurroundingPairScopeInfoTest.ts | 2 +-
.../test-vscode-e2e/src/suite/scopeVisualizer/colorConfig.ts | 2 +-
.../test-vscode-e2e/src/suite/scopeVisualizer/injectFakes.ts | 4 ++--
.../suite/scopeVisualizer/runBasicMultilineContentTest.ts | 2 +-
.../src/suite/scopeVisualizer/runBasicRemovalTest.ts | 2 +-
.../suite/scopeVisualizer/runNestedMultilineContentTest.ts | 2 +-
.../src/suite/scopeVisualizer/runUpdateTest.ts | 2 +-
.../src/suite/scopeVisualizer/scopeVisualizer.vscode.test.ts | 2 +-
.../src/suite/scopeVisualizer/scopeVisualizerTest.types.ts | 2 +-
packages/test-vscode-e2e/src/suite/scroll.vscode.test.ts | 2 +-
.../src/suite/testCaseRecorder.vscode.test.ts | 2 +-
.../src/suite/toggleDecorations.vscode.test.ts | 5 ++++-
.../src/suite/tutorial/tutorial.vscode.test.ts | 2 +-
packages/test-vscode-e2e/src/suite/visible.vscode.test.ts | 2 +-
.../src/suite/wrapWithSnippetAcrossSplit.vscode.test.ts | 2 +-
71 files changed, 83 insertions(+), 74 deletions(-)
diff --git a/packages/app-vscode/package.json b/packages/app-vscode/package.json
index 82cc5120c9..cc1ed54581 100644
--- a/packages/app-vscode/package.json
+++ b/packages/app-vscode/package.json
@@ -1314,7 +1314,7 @@
"@cursorless/lib-tutorial": "workspace:*",
"@cursorless/lib-node-common": "workspace:*",
"@cursorless/lib-test-case-recorder": "workspace:*",
- "@cursorless/vscode-common": "workspace:*",
+ "@cursorless/lib-vscode-common": "workspace:*",
"glob": "^13.0.6",
"itertools": "^2.6.0",
"lodash-es": "^4.17.23",
diff --git a/packages/app-vscode/src/InstallationDependencies.ts b/packages/app-vscode/src/InstallationDependencies.ts
index 657fd3d6e3..35c4475c22 100644
--- a/packages/app-vscode/src/InstallationDependencies.ts
+++ b/packages/app-vscode/src/InstallationDependencies.ts
@@ -1,5 +1,5 @@
import { isWindows } from "@cursorless/lib-node-common";
-import { COMMAND_SERVER_EXTENSION_ID } from "@cursorless/vscode-common";
+import { COMMAND_SERVER_EXTENSION_ID } from "@cursorless/lib-vscode-common";
import { globSync } from "glob";
import * as fs from "node:fs";
import * as os from "node:os";
diff --git a/packages/app-vscode/src/ReleaseNotes.test.ts b/packages/app-vscode/src/ReleaseNotes.test.ts
index 3b16f9e011..c832f7ac4c 100644
--- a/packages/app-vscode/src/ReleaseNotes.test.ts
+++ b/packages/app-vscode/src/ReleaseNotes.test.ts
@@ -3,7 +3,7 @@ import type { MessageType, Messages } from "@cursorless/lib-common";
import { asyncSafety } from "@cursorless/lib-common";
import type { ExtensionContext, Uri } from "vscode";
import { ReleaseNotes, VERSION_KEY, WHATS_NEW } from "./ReleaseNotes";
-import type { VscodeApi } from "@cursorless/vscode-common";
+import type { VscodeApi } from "@cursorless/lib-vscode-common";
interface Input {
/** Whether the VSCode window is focused */
diff --git a/packages/app-vscode/src/ReleaseNotes.ts b/packages/app-vscode/src/ReleaseNotes.ts
index c12d8f812d..1fa709db43 100644
--- a/packages/app-vscode/src/ReleaseNotes.ts
+++ b/packages/app-vscode/src/ReleaseNotes.ts
@@ -2,7 +2,7 @@ import type { ExtensionContext } from "vscode";
import type { Messages } from "@cursorless/lib-common";
import { showInfo } from "@cursorless/lib-common";
import * as semver from "semver";
-import type { VscodeApi } from "@cursorless/vscode-common";
+import type { VscodeApi } from "@cursorless/lib-vscode-common";
import { URI } from "vscode-uri";
/**
diff --git a/packages/app-vscode/src/ScopeTreeProvider.ts b/packages/app-vscode/src/ScopeTreeProvider.ts
index 71de87cddf..25b82eb1a8 100644
--- a/packages/app-vscode/src/ScopeTreeProvider.ts
+++ b/packages/app-vscode/src/ScopeTreeProvider.ts
@@ -17,7 +17,7 @@ import {
uriEncodeHashId,
} from "@cursorless/lib-common";
import { type CustomSpokenFormGenerator } from "@cursorless/lib-engine";
-import { type VscodeApi } from "@cursorless/vscode-common";
+import { type VscodeApi } from "@cursorless/lib-vscode-common";
import { isEqual } from "lodash-es";
import type {
Disposable,
diff --git a/packages/app-vscode/src/SpyWebviewView.ts b/packages/app-vscode/src/SpyWebviewView.ts
index df991b1564..add944feea 100644
--- a/packages/app-vscode/src/SpyWebviewView.ts
+++ b/packages/app-vscode/src/SpyWebviewView.ts
@@ -1,7 +1,7 @@
import type { Disposable } from "@cursorless/lib-common";
import { cloneDeep } from "lodash-es";
import type { Uri, Webview, WebviewView } from "vscode";
-import type { SpyWebViewEvent } from "@cursorless/vscode-common";
+import type { SpyWebViewEvent } from "@cursorless/lib-vscode-common";
/**
* Wraps a {@link WebviewView} and provides a way to spy on its events for
diff --git a/packages/app-vscode/src/VscodeTutorial.ts b/packages/app-vscode/src/VscodeTutorial.ts
index 1fbe3e1dd9..960b34cb92 100644
--- a/packages/app-vscode/src/VscodeTutorial.ts
+++ b/packages/app-vscode/src/VscodeTutorial.ts
@@ -4,7 +4,7 @@ import type {
TutorialState,
} from "@cursorless/lib-common";
import { getCursorlessRepoRoot } from "@cursorless/lib-node-common";
-import type { SpyWebViewEvent, VscodeApi } from "@cursorless/vscode-common";
+import type { SpyWebViewEvent, VscodeApi } from "@cursorless/lib-vscode-common";
import path from "node:path";
import type {
CancellationToken,
diff --git a/packages/app-vscode/src/constructTestHelpers.ts b/packages/app-vscode/src/constructTestHelpers.ts
index 8f3fe24c8a..a35f454a25 100644
--- a/packages/app-vscode/src/constructTestHelpers.ts
+++ b/packages/app-vscode/src/constructTestHelpers.ts
@@ -19,7 +19,7 @@ import {
treeSitterQueryCache,
} from "@cursorless/lib-engine";
import { takeSnapshot } from "@cursorless/lib-test-case-recorder";
-import type { VscodeTestHelpers } from "@cursorless/vscode-common";
+import type { VscodeTestHelpers } from "@cursorless/lib-vscode-common";
import type * as vscode from "vscode";
import { toVscodeEditor } from "./ide/vscode/toVscodeEditor";
import type { VscodeFileSystem } from "./ide/vscode/VscodeFileSystem";
diff --git a/packages/app-vscode/src/createTreeSitter.ts b/packages/app-vscode/src/createTreeSitter.ts
index e748f7c379..aefc228b04 100644
--- a/packages/app-vscode/src/createTreeSitter.ts
+++ b/packages/app-vscode/src/createTreeSitter.ts
@@ -1,5 +1,5 @@
import type { TreeSitter } from "@cursorless/lib-common";
-import type { ParseTreeApi } from "@cursorless/vscode-common";
+import type { ParseTreeApi } from "@cursorless/lib-vscode-common";
export function createTreeSitter(parseTreeApi: ParseTreeApi): TreeSitter {
return {
diff --git a/packages/app-vscode/src/extension.ts b/packages/app-vscode/src/extension.ts
index ab5f0d016c..8746aa7820 100644
--- a/packages/app-vscode/src/extension.ts
+++ b/packages/app-vscode/src/extension.ts
@@ -15,11 +15,11 @@ import {
ScopeTestRecorder,
TestCaseRecorder,
} from "@cursorless/lib-test-case-recorder";
-import type { CursorlessApi } from "@cursorless/vscode-common";
+import type { CursorlessApi } from "@cursorless/lib-vscode-common";
import {
getCommandServerApi,
getParseTreeApi,
-} from "@cursorless/vscode-common";
+} from "@cursorless/lib-vscode-common";
import type { ExtensionContext } from "vscode";
import { InstallationDependencies } from "./InstallationDependencies";
import { ReleaseNotes } from "./ReleaseNotes";
diff --git a/packages/app-vscode/src/ide/vscode/VSCodeScopeVisualizer/VscodeFancyRangeHighlighter/VscodeFancyRangeHighlighterRenderer.ts b/packages/app-vscode/src/ide/vscode/VSCodeScopeVisualizer/VscodeFancyRangeHighlighter/VscodeFancyRangeHighlighterRenderer.ts
index 9682c4bb51..4b2ca570ba 100644
--- a/packages/app-vscode/src/ide/vscode/VSCodeScopeVisualizer/VscodeFancyRangeHighlighter/VscodeFancyRangeHighlighterRenderer.ts
+++ b/packages/app-vscode/src/ide/vscode/VSCodeScopeVisualizer/VscodeFancyRangeHighlighter/VscodeFancyRangeHighlighterRenderer.ts
@@ -6,7 +6,7 @@ import {
getBorderRadius,
getBorderStyle,
} from "@cursorless/lib-common";
-import { toVscodeRange } from "@cursorless/vscode-common";
+import { toVscodeRange } from "@cursorless/lib-vscode-common";
import type { DecorationRenderOptions, TextEditorDecorationType } from "vscode";
import { DecorationRangeBehavior } from "vscode";
import { vscodeApi } from "../../../../vscodeApi";
diff --git a/packages/app-vscode/src/ide/vscode/VSCodeScopeVisualizer/VscodeScopeVisualizer.ts b/packages/app-vscode/src/ide/vscode/VSCodeScopeVisualizer/VscodeScopeVisualizer.ts
index 8ff73951d3..e00974e6eb 100644
--- a/packages/app-vscode/src/ide/vscode/VSCodeScopeVisualizer/VscodeScopeVisualizer.ts
+++ b/packages/app-vscode/src/ide/vscode/VSCodeScopeVisualizer/VscodeScopeVisualizer.ts
@@ -9,7 +9,7 @@ import { DOCS_URL, ScopeSupport, showError } from "@cursorless/lib-common";
import type {
ScopeRangeType,
ScopeVisualizerColorConfig,
-} from "@cursorless/vscode-common";
+} from "@cursorless/lib-vscode-common";
import { vscodeApi } from "../../../vscodeApi";
import { VscodeScopeRenderer } from "./VscodeScopeRenderer";
import { getColorsFromConfig } from "./getColorsFromConfig";
diff --git a/packages/app-vscode/src/ide/vscode/VSCodeScopeVisualizer/getColorsFromConfig.ts b/packages/app-vscode/src/ide/vscode/VSCodeScopeVisualizer/getColorsFromConfig.ts
index 8c6d48fbfa..f2d30e5810 100644
--- a/packages/app-vscode/src/ide/vscode/VSCodeScopeVisualizer/getColorsFromConfig.ts
+++ b/packages/app-vscode/src/ide/vscode/VSCodeScopeVisualizer/getColorsFromConfig.ts
@@ -1,7 +1,7 @@
import type {
ScopeRangeType,
ScopeVisualizerColorConfig,
-} from "@cursorless/vscode-common";
+} from "@cursorless/lib-vscode-common";
import type { RangeTypeColors } from "./RangeTypeColors";
export function getColorsFromConfig(
diff --git a/packages/app-vscode/src/ide/vscode/VscodeEdit.ts b/packages/app-vscode/src/ide/vscode/VscodeEdit.ts
index 88addbab2f..03c0000127 100644
--- a/packages/app-vscode/src/ide/vscode/VscodeEdit.ts
+++ b/packages/app-vscode/src/ide/vscode/VscodeEdit.ts
@@ -1,5 +1,5 @@
import type { Edit } from "@cursorless/lib-common";
-import { toVscodePosition, toVscodeRange } from "@cursorless/vscode-common";
+import { toVscodePosition, toVscodeRange } from "@cursorless/lib-vscode-common";
import type * as vscode from "vscode";
export default async function vscodeEdit(
diff --git a/packages/app-vscode/src/ide/vscode/VscodeEvents.ts b/packages/app-vscode/src/ide/vscode/VscodeEvents.ts
index 247e22f672..da020f3bab 100644
--- a/packages/app-vscode/src/ide/vscode/VscodeEvents.ts
+++ b/packages/app-vscode/src/ide/vscode/VscodeEvents.ts
@@ -5,7 +5,7 @@ import type {
TextDocumentChangeReason,
TextDocumentContentChangeEvent,
} from "@cursorless/lib-common";
-import { fromVscodeRange } from "@cursorless/vscode-common";
+import { fromVscodeRange } from "@cursorless/lib-vscode-common";
import * as vscode from "vscode";
import { VscodeTextDocument } from "./VscodeTextDocument";
diff --git a/packages/app-vscode/src/ide/vscode/VscodeFocusEditor.ts b/packages/app-vscode/src/ide/vscode/VscodeFocusEditor.ts
index 69c816a011..0d990895a8 100644
--- a/packages/app-vscode/src/ide/vscode/VscodeFocusEditor.ts
+++ b/packages/app-vscode/src/ide/vscode/VscodeFocusEditor.ts
@@ -1,4 +1,4 @@
-import { getCellIndex } from "@cursorless/vscode-common";
+import { getCellIndex } from "@cursorless/lib-vscode-common";
import type { NotebookDocument, TextEditor } from "vscode";
import { commands, TabInputTextDiff, ViewColumn, window } from "vscode";
import { getNotebookFromCellDocument } from "./notebook/notebook";
diff --git a/packages/app-vscode/src/ide/vscode/VscodeIDE.ts b/packages/app-vscode/src/ide/vscode/VscodeIDE.ts
index c7aabdf678..62bdb8d775 100644
--- a/packages/app-vscode/src/ide/vscode/VscodeIDE.ts
+++ b/packages/app-vscode/src/ide/vscode/VscodeIDE.ts
@@ -17,7 +17,7 @@ import { OutdatedExtensionError } from "@cursorless/lib-common";
import {
fromVscodeRange,
fromVscodeSelection,
-} from "@cursorless/vscode-common";
+} from "@cursorless/lib-vscode-common";
import { pull } from "lodash-es";
import { v4 as uuid } from "uuid";
import type { ExtensionContext, WorkspaceFolder } from "vscode";
diff --git a/packages/app-vscode/src/ide/vscode/VscodeOpenLink.ts b/packages/app-vscode/src/ide/vscode/VscodeOpenLink.ts
index fc7a7eb309..73aadb635f 100644
--- a/packages/app-vscode/src/ide/vscode/VscodeOpenLink.ts
+++ b/packages/app-vscode/src/ide/vscode/VscodeOpenLink.ts
@@ -2,7 +2,7 @@ import * as vscode from "vscode";
import type { VscodeTextEditor } from "./VscodeTextEditor";
import type { OpenLinkOptions, Range } from "@cursorless/lib-common";
import { Selection } from "@cursorless/lib-common";
-import { toVscodePositionOrRange } from "@cursorless/vscode-common";
+import { toVscodePositionOrRange } from "@cursorless/lib-vscode-common";
export default async function vscodeOpenLink(
editor: VscodeTextEditor,
diff --git a/packages/app-vscode/src/ide/vscode/VscodeTextDocument.ts b/packages/app-vscode/src/ide/vscode/VscodeTextDocument.ts
index 26920eafa2..baa9809c5a 100644
--- a/packages/app-vscode/src/ide/vscode/VscodeTextDocument.ts
+++ b/packages/app-vscode/src/ide/vscode/VscodeTextDocument.ts
@@ -10,7 +10,7 @@ import {
fromVscodePosition,
toVscodePosition,
toVscodeRange,
-} from "@cursorless/vscode-common";
+} from "@cursorless/lib-vscode-common";
import * as path from "node:path";
import type * as vscode from "vscode";
import type { URI } from "vscode-uri";
diff --git a/packages/app-vscode/src/ide/vscode/VscodeTextEditor.ts b/packages/app-vscode/src/ide/vscode/VscodeTextEditor.ts
index 147702813c..74f591c9f9 100644
--- a/packages/app-vscode/src/ide/vscode/VscodeTextEditor.ts
+++ b/packages/app-vscode/src/ide/vscode/VscodeTextEditor.ts
@@ -17,7 +17,7 @@ import {
fromVscodeSelection,
toVscodeRange,
toVscodeSelection,
-} from "@cursorless/vscode-common";
+} from "@cursorless/lib-vscode-common";
import * as vscode from "vscode";
import vscodeEdit from "./VscodeEdit";
import vscodeFocusEditor from "./VscodeFocusEditor";
diff --git a/packages/app-vscode/src/ide/vscode/VscodeTextLine.ts b/packages/app-vscode/src/ide/vscode/VscodeTextLine.ts
index 01abf2da2d..8a9eba4f92 100644
--- a/packages/app-vscode/src/ide/vscode/VscodeTextLine.ts
+++ b/packages/app-vscode/src/ide/vscode/VscodeTextLine.ts
@@ -1,6 +1,6 @@
import type { TextLine } from "@cursorless/lib-common";
import { Position, Range } from "@cursorless/lib-common";
-import { fromVscodeRange } from "@cursorless/vscode-common";
+import { fromVscodeRange } from "@cursorless/lib-vscode-common";
import type * as vscode from "vscode";
export default class VscodeTextLine implements TextLine {
diff --git a/packages/app-vscode/src/ide/vscode/VscodeToggleBreakpoint.ts b/packages/app-vscode/src/ide/vscode/VscodeToggleBreakpoint.ts
index 589554bba5..c2059e1377 100644
--- a/packages/app-vscode/src/ide/vscode/VscodeToggleBreakpoint.ts
+++ b/packages/app-vscode/src/ide/vscode/VscodeToggleBreakpoint.ts
@@ -1,5 +1,5 @@
import type { GeneralizedRange, Position } from "@cursorless/lib-common";
-import { toVscodePosition } from "@cursorless/vscode-common";
+import { toVscodePosition } from "@cursorless/lib-vscode-common";
import * as vscode from "vscode";
import type { VscodeTextEditor } from "./VscodeTextEditor";
diff --git a/packages/app-vscode/src/ide/vscode/hats/VscodeHatRenderer.ts b/packages/app-vscode/src/ide/vscode/hats/VscodeHatRenderer.ts
index ed653a3584..2dde547a4f 100644
--- a/packages/app-vscode/src/ide/vscode/hats/VscodeHatRenderer.ts
+++ b/packages/app-vscode/src/ide/vscode/hats/VscodeHatRenderer.ts
@@ -5,7 +5,7 @@ import type {
} from "@cursorless/lib-common";
import { Notifier } from "@cursorless/lib-common";
import { walkFiles } from "@cursorless/lib-node-common";
-import type { VscodeApi } from "@cursorless/vscode-common";
+import type { VscodeApi } from "@cursorless/lib-vscode-common";
import * as fs from "node:fs/promises";
import { cloneDeep, isEqual } from "lodash-es";
import * as path from "node:path";
diff --git a/packages/app-vscode/src/ide/vscode/hats/VscodeHats.ts b/packages/app-vscode/src/ide/vscode/hats/VscodeHats.ts
index af8f5467b0..2d8ba0ecc9 100644
--- a/packages/app-vscode/src/ide/vscode/hats/VscodeHats.ts
+++ b/packages/app-vscode/src/ide/vscode/hats/VscodeHats.ts
@@ -8,8 +8,8 @@ import type {
TextEditor,
} from "@cursorless/lib-common";
import { Notifier } from "@cursorless/lib-common";
-import type { VscodeApi } from "@cursorless/vscode-common";
-import { toVscodeRange } from "@cursorless/vscode-common";
+import type { VscodeApi } from "@cursorless/lib-vscode-common";
+import { toVscodeRange } from "@cursorless/lib-vscode-common";
import * as vscode from "vscode";
import type { Disposable } from "vscode";
import type { VscodeHatStyleName } from "../hatStyles.types";
diff --git a/packages/app-vscode/src/ide/vscode/hats/performPr1868ShapeUpdateInit.ts b/packages/app-vscode/src/ide/vscode/hats/performPr1868ShapeUpdateInit.ts
index 5d9bf32a4c..b62f0005f7 100644
--- a/packages/app-vscode/src/ide/vscode/hats/performPr1868ShapeUpdateInit.ts
+++ b/packages/app-vscode/src/ide/vscode/hats/performPr1868ShapeUpdateInit.ts
@@ -1,6 +1,6 @@
import type { Messages } from "@cursorless/lib-common";
import { showInfo } from "@cursorless/lib-common";
-import type { VscodeApi } from "@cursorless/vscode-common";
+import type { VscodeApi } from "@cursorless/lib-vscode-common";
import * as vscode from "vscode";
import type { ExtendedHatStyleMap } from "../VscodeEnabledHatStyleManager";
import type { IndividualHatAdjustmentMap } from "./shapeAdjustments";
diff --git a/packages/app-vscode/src/ide/vscode/textLine.vscode.test.ts b/packages/app-vscode/src/ide/vscode/textLine.vscode.test.ts
index d1075879a1..fbd11bff0d 100644
--- a/packages/app-vscode/src/ide/vscode/textLine.vscode.test.ts
+++ b/packages/app-vscode/src/ide/vscode/textLine.vscode.test.ts
@@ -1,5 +1,5 @@
import * as assert from "assert";
-import { getReusableEditor } from "@cursorless/vscode-common";
+import { getReusableEditor } from "@cursorless/lib-vscode-common";
import VscodeTextLine from "./VscodeTextLine";
/**
diff --git a/packages/app-vscode/src/keyboard/KeyboardCommands.ts b/packages/app-vscode/src/keyboard/KeyboardCommands.ts
index 5eac4e4e15..80423013b4 100644
--- a/packages/app-vscode/src/keyboard/KeyboardCommands.ts
+++ b/packages/app-vscode/src/keyboard/KeyboardCommands.ts
@@ -3,7 +3,7 @@ import KeyboardCommandsModal from "./KeyboardCommandsModal";
import KeyboardCommandsTargeted from "./KeyboardCommandsTargeted";
import KeyboardHandler from "./KeyboardHandler";
import type { StatusBarItem } from "../StatusBarItem";
-import type { VscodeApi } from "@cursorless/vscode-common";
+import type { VscodeApi } from "@cursorless/lib-vscode-common";
export class KeyboardCommands {
targeted: KeyboardCommandsTargeted;
diff --git a/packages/app-vscode/src/keyboard/KeyboardCommandsModal.ts b/packages/app-vscode/src/keyboard/KeyboardCommandsModal.ts
index 5e3e64fec7..abfdb2c843 100644
--- a/packages/app-vscode/src/keyboard/KeyboardCommandsModal.ts
+++ b/packages/app-vscode/src/keyboard/KeyboardCommandsModal.ts
@@ -1,5 +1,5 @@
import { CompositeKeyMap } from "@cursorless/lib-common";
-import type { VscodeApi } from "@cursorless/vscode-common";
+import type { VscodeApi } from "@cursorless/lib-vscode-common";
import { pick, sortedUniq, toPairs } from "lodash-es";
import { Grammar, Parser } from "nearley";
import * as vscode from "vscode";
diff --git a/packages/app-vscode/src/keyboard/KeyboardCommandsTargeted.ts b/packages/app-vscode/src/keyboard/KeyboardCommandsTargeted.ts
index 88a7ffe17e..053d193010 100644
--- a/packages/app-vscode/src/keyboard/KeyboardCommandsTargeted.ts
+++ b/packages/app-vscode/src/keyboard/KeyboardCommandsTargeted.ts
@@ -7,7 +7,7 @@ import type {
ScopeType,
} from "@cursorless/lib-common";
import { LATEST_VERSION } from "@cursorless/lib-common";
-import { runCursorlessCommand } from "@cursorless/vscode-common";
+import { runCursorlessCommand } from "@cursorless/lib-vscode-common";
import * as vscode from "vscode";
import type { HatColor, HatShape } from "../ide/vscode/hatStyles.types";
import { getStyleName } from "../ide/vscode/hats/getStyleName";
diff --git a/packages/app-vscode/src/keyboard/KeyboardConfig.ts b/packages/app-vscode/src/keyboard/KeyboardConfig.ts
index 6e5fba3908..29ccf05022 100644
--- a/packages/app-vscode/src/keyboard/KeyboardConfig.ts
+++ b/packages/app-vscode/src/keyboard/KeyboardConfig.ts
@@ -1,7 +1,7 @@
import { mapValues, pickBy } from "lodash-es";
import type { KeyMap, SectionName, TokenType } from "./TokenTypeHelpers";
import type { SectionTypes, TokenTypeValueMap } from "./TokenTypes";
-import type { VscodeApi } from "@cursorless/vscode-common";
+import type { VscodeApi } from "@cursorless/lib-vscode-common";
import { TextEditorCursorStyle } from "vscode";
const LEGACY_PLURAL_SECTION_NAMES: Record = {
diff --git a/packages/app-vscode/src/storedTargetHighlighter.ts b/packages/app-vscode/src/storedTargetHighlighter.ts
index f34d0678c1..787db5f7cd 100644
--- a/packages/app-vscode/src/storedTargetHighlighter.ts
+++ b/packages/app-vscode/src/storedTargetHighlighter.ts
@@ -4,7 +4,7 @@ import type { StoredTargetMap } from "@cursorless/lib-engine";
import type {
ScopeRangeType,
ScopeVisualizerColorConfig,
-} from "@cursorless/vscode-common";
+} from "@cursorless/lib-vscode-common";
import type { VscodeIDE } from "./ide/vscode/VscodeIDE";
import { VscodeFancyRangeHighlighter } from "./ide/vscode/VSCodeScopeVisualizer/VscodeFancyRangeHighlighter";
import { getColorsFromConfig } from "./ide/vscode/VSCodeScopeVisualizer/getColorsFromConfig";
diff --git a/packages/app-vscode/src/vscodeApi.ts b/packages/app-vscode/src/vscodeApi.ts
index 96a8abfbe4..17163dfa77 100644
--- a/packages/app-vscode/src/vscodeApi.ts
+++ b/packages/app-vscode/src/vscodeApi.ts
@@ -1,4 +1,4 @@
-import type { VscodeApi } from "@cursorless/vscode-common";
+import type { VscodeApi } from "@cursorless/lib-vscode-common";
import { commands, env, window, workspace } from "vscode";
/**
diff --git a/packages/lib-vscode-common/package.json b/packages/lib-vscode-common/package.json
index 51a917905a..90ff2000e2 100644
--- a/packages/lib-vscode-common/package.json
+++ b/packages/lib-vscode-common/package.json
@@ -1,5 +1,5 @@
{
- "name": "@cursorless/vscode-common",
+ "name": "@cursorless/lib-vscode-common",
"version": "0.1.0",
"description": "Common utility functions usable anywhere that VSCode api is available",
"license": "MIT",
diff --git a/packages/test-vscode-e2e/package.json b/packages/test-vscode-e2e/package.json
index f3a4fc336a..9060aefd12 100644
--- a/packages/test-vscode-e2e/package.json
+++ b/packages/test-vscode-e2e/package.json
@@ -12,7 +12,7 @@
"dependencies": {
"@cursorless/lib-common": "workspace:*",
"@cursorless/lib-node-common": "workspace:*",
- "@cursorless/vscode-common": "workspace:*",
+ "@cursorless/lib-vscode-common": "workspace:*",
"immer": "^11.1.4",
"lodash-es": "^4.17.23"
},
diff --git a/packages/test-vscode-e2e/src/endToEndTestSetup.ts b/packages/test-vscode-e2e/src/endToEndTestSetup.ts
index 657f5ef6f3..5d2ffcadde 100644
--- a/packages/test-vscode-e2e/src/endToEndTestSetup.ts
+++ b/packages/test-vscode-e2e/src/endToEndTestSetup.ts
@@ -3,7 +3,7 @@ import { shouldUpdateFixtures, sleep, SpyIDE } from "@cursorless/lib-common";
import {
getCursorlessApi,
resetReusableEditor,
-} from "@cursorless/vscode-common";
+} from "@cursorless/lib-vscode-common";
import type { Context } from "mocha";
import * as sinon from "sinon";
diff --git a/packages/test-vscode-e2e/src/suite/backwardCompatibility.vscode.test.ts b/packages/test-vscode-e2e/src/suite/backwardCompatibility.vscode.test.ts
index 60bf3643e7..cf1b38d915 100644
--- a/packages/test-vscode-e2e/src/suite/backwardCompatibility.vscode.test.ts
+++ b/packages/test-vscode-e2e/src/suite/backwardCompatibility.vscode.test.ts
@@ -1,5 +1,8 @@
import { CURSORLESS_COMMAND_ID } from "@cursorless/lib-common";
-import { getCursorlessApi, getReusableEditor } from "@cursorless/vscode-common";
+import {
+ getCursorlessApi,
+ getReusableEditor,
+} from "@cursorless/lib-vscode-common";
import * as assert from "assert";
import * as vscode from "vscode";
import { endToEndTestSetup } from "../endToEndTestSetup";
diff --git a/packages/test-vscode-e2e/src/suite/breakpoints.vscode.test.ts b/packages/test-vscode-e2e/src/suite/breakpoints.vscode.test.ts
index e692ea865f..012325f70b 100644
--- a/packages/test-vscode-e2e/src/suite/breakpoints.vscode.test.ts
+++ b/packages/test-vscode-e2e/src/suite/breakpoints.vscode.test.ts
@@ -3,7 +3,7 @@ import {
getCursorlessApi,
openNewEditor,
runCursorlessCommand,
-} from "@cursorless/vscode-common";
+} from "@cursorless/lib-vscode-common";
import * as assert from "assert";
import * as vscode from "vscode";
import { endToEndTestSetup } from "../endToEndTestSetup";
diff --git a/packages/test-vscode-e2e/src/suite/commandHistory.vscode.test.ts b/packages/test-vscode-e2e/src/suite/commandHistory.vscode.test.ts
index d8cc723a22..7b8411175c 100644
--- a/packages/test-vscode-e2e/src/suite/commandHistory.vscode.test.ts
+++ b/packages/test-vscode-e2e/src/suite/commandHistory.vscode.test.ts
@@ -8,7 +8,7 @@ import {
getCursorlessApi,
openNewEditor,
runCursorlessCommand,
-} from "@cursorless/vscode-common";
+} from "@cursorless/lib-vscode-common";
import { assert } from "chai";
import { existsSync } from "node:fs";
import { readFile, readdir, rm } from "node:fs/promises";
diff --git a/packages/test-vscode-e2e/src/suite/containingTokenTwice.vscode.test.ts b/packages/test-vscode-e2e/src/suite/containingTokenTwice.vscode.test.ts
index 3e5d34a669..1a77e820c9 100644
--- a/packages/test-vscode-e2e/src/suite/containingTokenTwice.vscode.test.ts
+++ b/packages/test-vscode-e2e/src/suite/containingTokenTwice.vscode.test.ts
@@ -3,7 +3,7 @@ import {
getCursorlessApi,
getReusableEditor,
runCursorlessCommand,
-} from "@cursorless/vscode-common";
+} from "@cursorless/lib-vscode-common";
import { assert } from "chai";
import * as vscode from "vscode";
import { endToEndTestSetup } from "../endToEndTestSetup";
diff --git a/packages/test-vscode-e2e/src/suite/crossCellsSetSelection.vscode.test.ts b/packages/test-vscode-e2e/src/suite/crossCellsSetSelection.vscode.test.ts
index 47f1332b62..32e9e5a175 100644
--- a/packages/test-vscode-e2e/src/suite/crossCellsSetSelection.vscode.test.ts
+++ b/packages/test-vscode-e2e/src/suite/crossCellsSetSelection.vscode.test.ts
@@ -4,7 +4,7 @@ import {
getCursorlessApi,
openNewNotebookEditor,
runCursorlessCommand,
-} from "@cursorless/vscode-common";
+} from "@cursorless/lib-vscode-common";
import assert from "assert";
import { window } from "vscode";
import { endToEndTestSetup } from "../endToEndTestSetup";
diff --git a/packages/test-vscode-e2e/src/suite/editNewCell.vscode.test.ts b/packages/test-vscode-e2e/src/suite/editNewCell.vscode.test.ts
index d31c6c43ed..43ae7834b3 100644
--- a/packages/test-vscode-e2e/src/suite/editNewCell.vscode.test.ts
+++ b/packages/test-vscode-e2e/src/suite/editNewCell.vscode.test.ts
@@ -3,7 +3,7 @@ import {
getCursorlessApi,
openNewNotebookEditor,
runCursorlessCommand,
-} from "@cursorless/vscode-common";
+} from "@cursorless/lib-vscode-common";
import * as assert from "assert";
import { window } from "vscode";
import { endToEndTestSetup, sleepWithBackoff } from "../endToEndTestSetup";
diff --git a/packages/test-vscode-e2e/src/suite/explicitMark.vscode.test.ts b/packages/test-vscode-e2e/src/suite/explicitMark.vscode.test.ts
index a5ddc393cd..5298aa3396 100644
--- a/packages/test-vscode-e2e/src/suite/explicitMark.vscode.test.ts
+++ b/packages/test-vscode-e2e/src/suite/explicitMark.vscode.test.ts
@@ -3,7 +3,7 @@ import {
getCursorlessApi,
getReusableEditor,
runCursorlessCommand,
-} from "@cursorless/vscode-common";
+} from "@cursorless/lib-vscode-common";
import * as assert from "assert";
import { Selection } from "vscode";
import { endToEndTestSetup } from "../endToEndTestSetup";
diff --git a/packages/test-vscode-e2e/src/suite/fold.vscode.test.ts b/packages/test-vscode-e2e/src/suite/fold.vscode.test.ts
index c49849622a..c14a52c639 100644
--- a/packages/test-vscode-e2e/src/suite/fold.vscode.test.ts
+++ b/packages/test-vscode-e2e/src/suite/fold.vscode.test.ts
@@ -2,7 +2,7 @@ import { LATEST_VERSION } from "@cursorless/lib-common";
import {
getReusableEditor,
runCursorlessCommand,
-} from "@cursorless/vscode-common";
+} from "@cursorless/lib-vscode-common";
import * as assert from "node:assert";
import * as vscode from "vscode";
import { endToEndTestSetup } from "../endToEndTestSetup";
diff --git a/packages/test-vscode-e2e/src/suite/followLink.vscode.test.ts b/packages/test-vscode-e2e/src/suite/followLink.vscode.test.ts
index 6b4f895f8c..76dc9022ed 100644
--- a/packages/test-vscode-e2e/src/suite/followLink.vscode.test.ts
+++ b/packages/test-vscode-e2e/src/suite/followLink.vscode.test.ts
@@ -3,7 +3,7 @@ import { getFixturePath, isWindows } from "@cursorless/lib-node-common";
import {
getReusableEditor,
runCursorlessCommand,
-} from "@cursorless/vscode-common";
+} from "@cursorless/lib-vscode-common";
import * as assert from "assert";
import * as vscode from "vscode";
import { endToEndTestSetup } from "../endToEndTestSetup";
diff --git a/packages/test-vscode-e2e/src/suite/groupByDocument.vscode.test.ts b/packages/test-vscode-e2e/src/suite/groupByDocument.vscode.test.ts
index 3c913bf4b1..8c08e3600a 100644
--- a/packages/test-vscode-e2e/src/suite/groupByDocument.vscode.test.ts
+++ b/packages/test-vscode-e2e/src/suite/groupByDocument.vscode.test.ts
@@ -2,7 +2,7 @@ import { LATEST_VERSION, splitKey } from "@cursorless/lib-common";
import {
getCursorlessApi,
runCursorlessCommand,
-} from "@cursorless/vscode-common";
+} from "@cursorless/lib-vscode-common";
import * as assert from "node:assert";
import * as vscode from "vscode";
import { endToEndTestSetup } from "../endToEndTestSetup";
diff --git a/packages/test-vscode-e2e/src/suite/instanceAcrossSplit.vscode.test.ts b/packages/test-vscode-e2e/src/suite/instanceAcrossSplit.vscode.test.ts
index d88b35d2b0..839e42f102 100644
--- a/packages/test-vscode-e2e/src/suite/instanceAcrossSplit.vscode.test.ts
+++ b/packages/test-vscode-e2e/src/suite/instanceAcrossSplit.vscode.test.ts
@@ -9,7 +9,7 @@ import {
getCursorlessApi,
openNewEditor,
runCursorlessCommand,
-} from "@cursorless/vscode-common";
+} from "@cursorless/lib-vscode-common";
import * as assert from "assert";
import { Selection } from "vscode";
import { endToEndTestSetup } from "../endToEndTestSetup";
diff --git a/packages/test-vscode-e2e/src/suite/intraCellSetSelection.vscode.test.ts b/packages/test-vscode-e2e/src/suite/intraCellSetSelection.vscode.test.ts
index 133eb56112..e9f662c93a 100644
--- a/packages/test-vscode-e2e/src/suite/intraCellSetSelection.vscode.test.ts
+++ b/packages/test-vscode-e2e/src/suite/intraCellSetSelection.vscode.test.ts
@@ -4,7 +4,7 @@ import {
getCursorlessApi,
openNewNotebookEditor,
runCursorlessCommand,
-} from "@cursorless/vscode-common";
+} from "@cursorless/lib-vscode-common";
import assert from "assert";
import { window } from "vscode";
import { endToEndTestSetup } from "../endToEndTestSetup";
diff --git a/packages/test-vscode-e2e/src/suite/keyboard/basic.vscode.test.ts b/packages/test-vscode-e2e/src/suite/keyboard/basic.vscode.test.ts
index 7704647ebb..730d293e6f 100644
--- a/packages/test-vscode-e2e/src/suite/keyboard/basic.vscode.test.ts
+++ b/packages/test-vscode-e2e/src/suite/keyboard/basic.vscode.test.ts
@@ -2,7 +2,7 @@ import {
getCursorlessApi,
getReusableEditor,
openNewEditor,
-} from "@cursorless/vscode-common";
+} from "@cursorless/lib-vscode-common";
import { assert } from "chai";
import * as vscode from "vscode";
import { endToEndTestSetup, sleepWithBackoff } from "../../endToEndTestSetup";
diff --git a/packages/test-vscode-e2e/src/suite/performance.vscode.test.ts b/packages/test-vscode-e2e/src/suite/performance.vscode.test.ts
index cbee583644..0d60cfe0b0 100644
--- a/packages/test-vscode-e2e/src/suite/performance.vscode.test.ts
+++ b/packages/test-vscode-e2e/src/suite/performance.vscode.test.ts
@@ -8,7 +8,7 @@ import { asyncSafety } from "@cursorless/lib-common";
import {
getReusableEditor,
runCursorlessAction,
-} from "@cursorless/vscode-common";
+} from "@cursorless/lib-vscode-common";
import assert from "assert";
import * as vscode from "vscode";
import { endToEndTestSetup } from "../endToEndTestSetup";
diff --git a/packages/test-vscode-e2e/src/suite/pourAcrossSplit.vscode.test.ts b/packages/test-vscode-e2e/src/suite/pourAcrossSplit.vscode.test.ts
index 6eeeda1aaa..cf7fada7ea 100644
--- a/packages/test-vscode-e2e/src/suite/pourAcrossSplit.vscode.test.ts
+++ b/packages/test-vscode-e2e/src/suite/pourAcrossSplit.vscode.test.ts
@@ -3,7 +3,7 @@ import {
getCursorlessApi,
openNewEditor,
runCursorlessCommand,
-} from "@cursorless/vscode-common";
+} from "@cursorless/lib-vscode-common";
import * as assert from "node:assert";
import { endToEndTestSetup } from "../endToEndTestSetup";
diff --git a/packages/test-vscode-e2e/src/suite/prePhraseSnapshot.vscode.test.ts b/packages/test-vscode-e2e/src/suite/prePhraseSnapshot.vscode.test.ts
index 4ff2bab857..9f1aeea660 100644
--- a/packages/test-vscode-e2e/src/suite/prePhraseSnapshot.vscode.test.ts
+++ b/packages/test-vscode-e2e/src/suite/prePhraseSnapshot.vscode.test.ts
@@ -8,7 +8,7 @@ import {
getCursorlessApi,
getReusableEditor,
runCursorlessCommand,
-} from "@cursorless/vscode-common";
+} from "@cursorless/lib-vscode-common";
import * as assert from "assert";
import * as vscode from "vscode";
import { endToEndTestSetup } from "../endToEndTestSetup";
diff --git a/packages/test-vscode-e2e/src/suite/recorded.vscode.test.ts b/packages/test-vscode-e2e/src/suite/recorded.vscode.test.ts
index d91af27138..b8692c435d 100644
--- a/packages/test-vscode-e2e/src/suite/recorded.vscode.test.ts
+++ b/packages/test-vscode-e2e/src/suite/recorded.vscode.test.ts
@@ -12,7 +12,7 @@ import {
getCursorlessApi,
getReusableEditor,
runCursorlessCommand,
-} from "@cursorless/vscode-common";
+} from "@cursorless/lib-vscode-common";
import * as vscode from "vscode";
import { endToEndTestSetup, sleepWithBackoff } from "../endToEndTestSetup";
import { setupFake } from "./setupFake";
diff --git a/packages/test-vscode-e2e/src/suite/revealRange.vscode.test.ts b/packages/test-vscode-e2e/src/suite/revealRange.vscode.test.ts
index 9226d236ee..42e38b5e53 100644
--- a/packages/test-vscode-e2e/src/suite/revealRange.vscode.test.ts
+++ b/packages/test-vscode-e2e/src/suite/revealRange.vscode.test.ts
@@ -2,7 +2,7 @@ import { LATEST_VERSION } from "@cursorless/lib-common";
import {
getReusableEditor,
runCursorlessCommand,
-} from "@cursorless/vscode-common";
+} from "@cursorless/lib-vscode-common";
import assert from "node:assert";
import * as vscode from "vscode";
import { endToEndTestSetup } from "../endToEndTestSetup";
diff --git a/packages/test-vscode-e2e/src/suite/scopeProvider/runBasicScopeInfoTest.ts b/packages/test-vscode-e2e/src/suite/scopeProvider/runBasicScopeInfoTest.ts
index 8edccc6971..24d38af7b7 100644
--- a/packages/test-vscode-e2e/src/suite/scopeProvider/runBasicScopeInfoTest.ts
+++ b/packages/test-vscode-e2e/src/suite/scopeProvider/runBasicScopeInfoTest.ts
@@ -1,6 +1,9 @@
import type { ScopeSupportInfo } from "@cursorless/lib-common";
import { ScopeSupport } from "@cursorless/lib-common";
-import { getCursorlessApi, getReusableEditor } from "@cursorless/vscode-common";
+import {
+ getCursorlessApi,
+ getReusableEditor,
+} from "@cursorless/lib-vscode-common";
import * as sinon from "sinon";
import type { TextDocument } from "vscode";
import { Position, Range, commands } from "vscode";
diff --git a/packages/test-vscode-e2e/src/suite/scopeProvider/runCustomRegexScopeInfoTest.ts b/packages/test-vscode-e2e/src/suite/scopeProvider/runCustomRegexScopeInfoTest.ts
index 17d123a3ed..5a0ec8d87d 100644
--- a/packages/test-vscode-e2e/src/suite/scopeProvider/runCustomRegexScopeInfoTest.ts
+++ b/packages/test-vscode-e2e/src/suite/scopeProvider/runCustomRegexScopeInfoTest.ts
@@ -1,6 +1,6 @@
import type { ScopeSupportInfo, ScopeType } from "@cursorless/lib-common";
import { ScopeSupport, sleep } from "@cursorless/lib-common";
-import { getCursorlessApi, openNewEditor } from "@cursorless/vscode-common";
+import { getCursorlessApi, openNewEditor } from "@cursorless/lib-vscode-common";
import { stat, unlink, writeFile } from "fs/promises";
import * as sinon from "sinon";
import { commands } from "vscode";
diff --git a/packages/test-vscode-e2e/src/suite/scopeProvider/runCustomSpokenFormScopeInfoTest.ts b/packages/test-vscode-e2e/src/suite/scopeProvider/runCustomSpokenFormScopeInfoTest.ts
index c54a0df4f7..58275e59bf 100644
--- a/packages/test-vscode-e2e/src/suite/scopeProvider/runCustomSpokenFormScopeInfoTest.ts
+++ b/packages/test-vscode-e2e/src/suite/scopeProvider/runCustomSpokenFormScopeInfoTest.ts
@@ -1,6 +1,6 @@
import type { ScopeTypeInfo } from "@cursorless/lib-common";
import { DOCS_URL, sleep } from "@cursorless/lib-common";
-import { getCursorlessApi } from "@cursorless/vscode-common";
+import { getCursorlessApi } from "@cursorless/lib-vscode-common";
import { stat, unlink, writeFile } from "fs/promises";
import * as sinon from "sinon";
import { assertCalledWithScopeInfo } from "./assertCalledWithScopeInfo";
diff --git a/packages/test-vscode-e2e/src/suite/scopeProvider/runSurroundingPairScopeInfoTest.ts b/packages/test-vscode-e2e/src/suite/scopeProvider/runSurroundingPairScopeInfoTest.ts
index 5cbc49234f..6312ae1c73 100644
--- a/packages/test-vscode-e2e/src/suite/scopeProvider/runSurroundingPairScopeInfoTest.ts
+++ b/packages/test-vscode-e2e/src/suite/scopeProvider/runSurroundingPairScopeInfoTest.ts
@@ -1,6 +1,6 @@
import type { ScopeSupportInfo } from "@cursorless/lib-common";
import { ScopeSupport } from "@cursorless/lib-common";
-import { getCursorlessApi, openNewEditor } from "@cursorless/vscode-common";
+import { getCursorlessApi, openNewEditor } from "@cursorless/lib-vscode-common";
import * as sinon from "sinon";
import { Position, commands } from "vscode";
import { assertCalledWithScopeInfo } from "./assertCalledWithScopeInfo";
diff --git a/packages/test-vscode-e2e/src/suite/scopeVisualizer/colorConfig.ts b/packages/test-vscode-e2e/src/suite/scopeVisualizer/colorConfig.ts
index cb504f729d..ad5b24fe53 100644
--- a/packages/test-vscode-e2e/src/suite/scopeVisualizer/colorConfig.ts
+++ b/packages/test-vscode-e2e/src/suite/scopeVisualizer/colorConfig.ts
@@ -1,4 +1,4 @@
-import type { ScopeVisualizerColorConfig } from "@cursorless/vscode-common";
+import type { ScopeVisualizerColorConfig } from "@cursorless/lib-vscode-common";
/**
* Fake color config to use for testing. We use an alpha of 50% and try to use
diff --git a/packages/test-vscode-e2e/src/suite/scopeVisualizer/injectFakes.ts b/packages/test-vscode-e2e/src/suite/scopeVisualizer/injectFakes.ts
index eb7386bf2f..a8f686e8d5 100644
--- a/packages/test-vscode-e2e/src/suite/scopeVisualizer/injectFakes.ts
+++ b/packages/test-vscode-e2e/src/suite/scopeVisualizer/injectFakes.ts
@@ -1,5 +1,5 @@
-import type { VscodeApi } from "@cursorless/vscode-common";
-import { getCursorlessApi } from "@cursorless/vscode-common";
+import type { VscodeApi } from "@cursorless/lib-vscode-common";
+import { getCursorlessApi } from "@cursorless/lib-vscode-common";
import * as sinon from "sinon";
import type { DecorationRenderOptions, WorkspaceConfiguration } from "vscode";
import { COLOR_CONFIG } from "./colorConfig";
diff --git a/packages/test-vscode-e2e/src/suite/scopeVisualizer/runBasicMultilineContentTest.ts b/packages/test-vscode-e2e/src/suite/scopeVisualizer/runBasicMultilineContentTest.ts
index bf87cda415..f03743ae13 100644
--- a/packages/test-vscode-e2e/src/suite/scopeVisualizer/runBasicMultilineContentTest.ts
+++ b/packages/test-vscode-e2e/src/suite/scopeVisualizer/runBasicMultilineContentTest.ts
@@ -1,4 +1,4 @@
-import { openNewEditor } from "@cursorless/vscode-common";
+import { openNewEditor } from "@cursorless/lib-vscode-common";
import * as vscode from "vscode";
import { checkAndResetFakes } from "./checkAndResetFakes";
import { injectFakes } from "./injectFakes";
diff --git a/packages/test-vscode-e2e/src/suite/scopeVisualizer/runBasicRemovalTest.ts b/packages/test-vscode-e2e/src/suite/scopeVisualizer/runBasicRemovalTest.ts
index 1c0350ff3f..4d75b9f37e 100644
--- a/packages/test-vscode-e2e/src/suite/scopeVisualizer/runBasicRemovalTest.ts
+++ b/packages/test-vscode-e2e/src/suite/scopeVisualizer/runBasicRemovalTest.ts
@@ -1,4 +1,4 @@
-import { openNewEditor } from "@cursorless/vscode-common";
+import { openNewEditor } from "@cursorless/lib-vscode-common";
import * as vscode from "vscode";
import { checkAndResetFakes } from "./checkAndResetFakes";
import { injectFakes } from "./injectFakes";
diff --git a/packages/test-vscode-e2e/src/suite/scopeVisualizer/runNestedMultilineContentTest.ts b/packages/test-vscode-e2e/src/suite/scopeVisualizer/runNestedMultilineContentTest.ts
index 6d6c249d0e..dbfd3aab2d 100644
--- a/packages/test-vscode-e2e/src/suite/scopeVisualizer/runNestedMultilineContentTest.ts
+++ b/packages/test-vscode-e2e/src/suite/scopeVisualizer/runNestedMultilineContentTest.ts
@@ -1,4 +1,4 @@
-import { openNewEditor } from "@cursorless/vscode-common";
+import { openNewEditor } from "@cursorless/lib-vscode-common";
import * as vscode from "vscode";
import { injectFakes } from "./injectFakes";
import { checkAndResetFakes } from "./checkAndResetFakes";
diff --git a/packages/test-vscode-e2e/src/suite/scopeVisualizer/runUpdateTest.ts b/packages/test-vscode-e2e/src/suite/scopeVisualizer/runUpdateTest.ts
index f39cdc2206..9770a82370 100644
--- a/packages/test-vscode-e2e/src/suite/scopeVisualizer/runUpdateTest.ts
+++ b/packages/test-vscode-e2e/src/suite/scopeVisualizer/runUpdateTest.ts
@@ -1,4 +1,4 @@
-import { getReusableEditor } from "@cursorless/vscode-common";
+import { getReusableEditor } from "@cursorless/lib-vscode-common";
import * as vscode from "vscode";
import { sleepWithBackoff } from "../../endToEndTestSetup";
import { injectFakes } from "./injectFakes";
diff --git a/packages/test-vscode-e2e/src/suite/scopeVisualizer/scopeVisualizer.vscode.test.ts b/packages/test-vscode-e2e/src/suite/scopeVisualizer/scopeVisualizer.vscode.test.ts
index 2d6afdd017..603b8cd82f 100644
--- a/packages/test-vscode-e2e/src/suite/scopeVisualizer/scopeVisualizer.vscode.test.ts
+++ b/packages/test-vscode-e2e/src/suite/scopeVisualizer/scopeVisualizer.vscode.test.ts
@@ -1,5 +1,5 @@
import { asyncSafety } from "@cursorless/lib-common";
-import { getCursorlessApi } from "@cursorless/vscode-common";
+import { getCursorlessApi } from "@cursorless/lib-vscode-common";
import { commands } from "vscode";
import { endToEndTestSetup } from "../../endToEndTestSetup";
import { runBasicMultilineContentTest } from "./runBasicMultilineContentTest";
diff --git a/packages/test-vscode-e2e/src/suite/scopeVisualizer/scopeVisualizerTest.types.ts b/packages/test-vscode-e2e/src/suite/scopeVisualizer/scopeVisualizerTest.types.ts
index 0c59ae050c..55bfc9693f 100644
--- a/packages/test-vscode-e2e/src/suite/scopeVisualizer/scopeVisualizerTest.types.ts
+++ b/packages/test-vscode-e2e/src/suite/scopeVisualizer/scopeVisualizerTest.types.ts
@@ -1,5 +1,5 @@
import type { RangePlainObject } from "@cursorless/lib-common";
-import type { VscodeApi } from "@cursorless/vscode-common";
+import type { VscodeApi } from "@cursorless/lib-vscode-common";
import type * as sinon from "sinon";
import type * as vscode from "vscode";
diff --git a/packages/test-vscode-e2e/src/suite/scroll.vscode.test.ts b/packages/test-vscode-e2e/src/suite/scroll.vscode.test.ts
index c576bdaf12..e2196a1466 100644
--- a/packages/test-vscode-e2e/src/suite/scroll.vscode.test.ts
+++ b/packages/test-vscode-e2e/src/suite/scroll.vscode.test.ts
@@ -2,7 +2,7 @@ import { LATEST_VERSION } from "@cursorless/lib-common";
import {
getReusableEditor,
runCursorlessCommand,
-} from "@cursorless/vscode-common";
+} from "@cursorless/lib-vscode-common";
import * as vscode from "vscode";
import { endToEndTestSetup } from "../endToEndTestSetup";
diff --git a/packages/test-vscode-e2e/src/suite/testCaseRecorder.vscode.test.ts b/packages/test-vscode-e2e/src/suite/testCaseRecorder.vscode.test.ts
index fd5fcc832c..cadf12d1cb 100644
--- a/packages/test-vscode-e2e/src/suite/testCaseRecorder.vscode.test.ts
+++ b/packages/test-vscode-e2e/src/suite/testCaseRecorder.vscode.test.ts
@@ -8,7 +8,7 @@ import {
getCursorlessApi,
getReusableEditor,
runCursorlessCommand,
-} from "@cursorless/vscode-common";
+} from "@cursorless/lib-vscode-common";
import { assert } from "chai";
import * as crypto from "crypto";
import { mkdir, readFile, readdir, rm } from "node:fs/promises";
diff --git a/packages/test-vscode-e2e/src/suite/toggleDecorations.vscode.test.ts b/packages/test-vscode-e2e/src/suite/toggleDecorations.vscode.test.ts
index eb9f5fe147..c93326e93f 100644
--- a/packages/test-vscode-e2e/src/suite/toggleDecorations.vscode.test.ts
+++ b/packages/test-vscode-e2e/src/suite/toggleDecorations.vscode.test.ts
@@ -1,4 +1,7 @@
-import { getCursorlessApi, getReusableEditor } from "@cursorless/vscode-common";
+import {
+ getCursorlessApi,
+ getReusableEditor,
+} from "@cursorless/lib-vscode-common";
import assert from "assert";
import * as vscode from "vscode";
import { endToEndTestSetup } from "../endToEndTestSetup";
diff --git a/packages/test-vscode-e2e/src/suite/tutorial/tutorial.vscode.test.ts b/packages/test-vscode-e2e/src/suite/tutorial/tutorial.vscode.test.ts
index 0b35f87488..9880a68199 100644
--- a/packages/test-vscode-e2e/src/suite/tutorial/tutorial.vscode.test.ts
+++ b/packages/test-vscode-e2e/src/suite/tutorial/tutorial.vscode.test.ts
@@ -12,7 +12,7 @@ import {
getCursorlessApi,
runCursorlessCommand,
type SpyWebViewEvent,
-} from "@cursorless/vscode-common";
+} from "@cursorless/lib-vscode-common";
import { isEqual } from "lodash-es";
import assert from "node:assert";
import path from "path";
diff --git a/packages/test-vscode-e2e/src/suite/visible.vscode.test.ts b/packages/test-vscode-e2e/src/suite/visible.vscode.test.ts
index 576c85a81f..38a0ff752b 100644
--- a/packages/test-vscode-e2e/src/suite/visible.vscode.test.ts
+++ b/packages/test-vscode-e2e/src/suite/visible.vscode.test.ts
@@ -2,7 +2,7 @@ import { LATEST_VERSION } from "@cursorless/lib-common";
import {
getReusableEditor,
runCursorlessCommand,
-} from "@cursorless/vscode-common";
+} from "@cursorless/lib-vscode-common";
import * as assert from "node:assert";
import * as vscode from "vscode";
import { endToEndTestSetup } from "../endToEndTestSetup";
diff --git a/packages/test-vscode-e2e/src/suite/wrapWithSnippetAcrossSplit.vscode.test.ts b/packages/test-vscode-e2e/src/suite/wrapWithSnippetAcrossSplit.vscode.test.ts
index a60fd50842..7adddf7f40 100644
--- a/packages/test-vscode-e2e/src/suite/wrapWithSnippetAcrossSplit.vscode.test.ts
+++ b/packages/test-vscode-e2e/src/suite/wrapWithSnippetAcrossSplit.vscode.test.ts
@@ -3,7 +3,7 @@ import {
getCursorlessApi,
openNewEditor,
runCursorlessCommand,
-} from "@cursorless/vscode-common";
+} from "@cursorless/lib-vscode-common";
import * as assert from "node:assert";
import { endToEndTestSetup } from "../endToEndTestSetup";
import { setupFake } from "./setupFake";
From c8c96ec36084cb3270d6946dc8d25a93922660ba Mon Sep 17 00:00:00 2001
From: Andreas Arvidsson
Date: Thu, 19 Mar 2026 11:25:55 +0100
Subject: [PATCH 16/24] more updates
---
.meta-updater/main.mjs | 2 +-
package.json | 10 +-
packages/app-vscode/package.json | 2 +-
packages/test-talon-e2e/package.json | 2 +-
pnpm-lock.yaml | 1010 +++++++++++++-------------
tsconfig.json | 46 +-
6 files changed, 536 insertions(+), 536 deletions(-)
diff --git a/.meta-updater/main.mjs b/.meta-updater/main.mjs
index 42816e61cd..b2571f30bb 100644
--- a/.meta-updater/main.mjs
+++ b/.meta-updater/main.mjs
@@ -1,4 +1,4 @@
// eslint-disable-next-line import/no-relative-packages
-import { updater } from "../packages/meta-updater/src/index.ts";
+import { updater } from "../packages/tool-meta-updater/src/index.ts";
export default updater;
diff --git a/package.json b/package.json
index d773db5da0..41c60998ab 100644
--- a/package.json
+++ b/package.json
@@ -12,10 +12,6 @@
"build": "pnpm -r build",
"clean": "pnpm -r clean",
"typecheck": "pnpm -r typecheck",
- "fix:meta": "pnpm run meta-updater && pnpm -r exec prettier --write tsconfig.json package.json",
- "fix:syncpack": "syncpack fix",
- "fix:eslint": "pnpm lint:ts --fix",
- "fix:style": "stylelint '**/*.{css,scss}' --ignore-path .gitignore --fix",
"fix:prettier": "prettier --write --list-different .",
"lint:meta": "pnpm run meta-updater --test",
"lint:syncpack": "syncpack lint",
@@ -23,6 +19,10 @@
"lint:prettier": "prettier --check .",
"lint:style": "stylelint '**/*.{css,scss}' --ignore-path .gitignore",
"lint": "pnpm run typecheck && pnpm run lint:meta && pnpm run lint:syncpack && pnpm run lint:ts && pnpm run lint:style",
+ "fix:meta": "pnpm run meta-updater && pnpm -r exec prettier --write tsconfig.json package.json",
+ "fix:syncpack": "syncpack fix",
+ "fix:eslint": "pnpm lint:ts --fix",
+ "fix:style": "stylelint '**/*.{css,scss}' --ignore-path .gitignore --fix",
"init-vscode-sandbox": "pnpm -F @cursorless/app-vscode init-launch-sandbox",
"meta-updater": "env NODE_OPTIONS=--import=tsx meta-updater",
"preinstall": "npx only-allow pnpm",
@@ -31,7 +31,7 @@
"test:update": "pnpm -r test:update",
"test:update:subset": "pnpm -r test:update:subset",
"generate-grammar": "pnpm -r generate-grammar",
- "transform-recorded-tests": "pnpm exec ./packages/common/scripts/c-tsx.js ./packages/cursorless-engine/src/scripts/transformRecordedTests/index.ts"
+ "transform-recorded-tests": "pnpm exec ./packages/common/scripts/c-tsx.js ./packages/lib-engine/src/scripts/transformRecordedTests/index.ts"
},
"devDependencies": {
"@eslint/config-helpers": "^0.5.3",
diff --git a/packages/app-vscode/package.json b/packages/app-vscode/package.json
index cc1ed54581..6977dbb735 100644
--- a/packages/app-vscode/package.json
+++ b/packages/app-vscode/package.json
@@ -1311,9 +1311,9 @@
"dependencies": {
"@cursorless/lib-common": "workspace:*",
"@cursorless/lib-engine": "workspace:*",
- "@cursorless/lib-tutorial": "workspace:*",
"@cursorless/lib-node-common": "workspace:*",
"@cursorless/lib-test-case-recorder": "workspace:*",
+ "@cursorless/lib-tutorial": "workspace:*",
"@cursorless/lib-vscode-common": "workspace:*",
"glob": "^13.0.6",
"itertools": "^2.6.0",
diff --git a/packages/test-talon-e2e/package.json b/packages/test-talon-e2e/package.json
index c60f32aec7..7808c79e99 100644
--- a/packages/test-talon-e2e/package.json
+++ b/packages/test-talon-e2e/package.json
@@ -12,8 +12,8 @@
},
"dependencies": {
"@cursorless/lib-common": "workspace:*",
- "@cursorless/lib-talon-core": "workspace:*",
"@cursorless/lib-node-common": "workspace:*",
+ "@cursorless/lib-talon-core": "workspace:*",
"@cursorless/lib-test-case-recorder": "workspace:*"
},
"devDependencies": {
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 59df4409a4..54498ae9e2 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -84,11 +84,276 @@ importers:
specifier: ^8.57.1
version: 8.57.1(eslint@10.0.3(jiti@2.6.1))(typescript@5.9.3)
- packages/cheatsheet:
+ packages/app-neovim:
dependencies:
- '@cursorless/common':
+ '@cursorless/lib-common':
specifier: workspace:*
- version: link:../common
+ version: link:../lib-common
+ '@cursorless/lib-engine':
+ specifier: workspace:*
+ version: link:../lib-engine
+ '@cursorless/lib-neovim-common':
+ specifier: workspace:*
+ version: link:../lib-neovim-common
+ '@cursorless/lib-neovim-registry':
+ specifier: workspace:*
+ version: link:../lib-neovim-registry
+ '@cursorless/lib-node-common':
+ specifier: workspace:*
+ version: link:../lib-node-common
+ '@cursorless/lib-test-case-recorder':
+ specifier: workspace:*
+ version: link:../lib-test-case-recorder
+ devDependencies:
+ '@types/chai':
+ specifier: ^5.2.3
+ version: 5.2.3
+ '@types/js-yaml':
+ specifier: ^4.0.9
+ version: 4.0.9
+ '@types/lodash':
+ specifier: ^4.17.24
+ version: 4.17.24
+ lodash:
+ specifier: ^4.17.23
+ version: 4.17.23
+ neovim:
+ specifier: ^5.4.0
+ version: 5.4.0
+ vscode-uri:
+ specifier: ^3.1.0
+ version: 3.1.0
+
+ packages/app-talon:
+ dependencies:
+ '@cursorless/lib-common':
+ specifier: workspace:*
+ version: link:../lib-common
+ '@cursorless/lib-talon-core':
+ specifier: workspace:*
+ version: link:../lib-talon-core
+
+ packages/app-vscode:
+ dependencies:
+ '@cursorless/lib-common':
+ specifier: workspace:*
+ version: link:../lib-common
+ '@cursorless/lib-engine':
+ specifier: workspace:*
+ version: link:../lib-engine
+ '@cursorless/lib-node-common':
+ specifier: workspace:*
+ version: link:../lib-node-common
+ '@cursorless/lib-test-case-recorder':
+ specifier: workspace:*
+ version: link:../lib-test-case-recorder
+ '@cursorless/lib-tutorial':
+ specifier: workspace:*
+ version: link:../lib-tutorial
+ '@cursorless/lib-vscode-common':
+ specifier: workspace:*
+ version: link:../lib-vscode-common
+ glob:
+ specifier: ^13.0.6
+ version: 13.0.6
+ itertools:
+ specifier: ^2.6.0
+ version: 2.6.0
+ lodash-es:
+ specifier: ^4.17.23
+ version: 4.17.23
+ nearley:
+ specifier: ^2.20.1
+ version: 2.20.1(patch_hash=0db19a2c501b16f37fbd86a94190d4a790184cea1061bf2e07f24eb076d4f2cf)
+ semver:
+ specifier: ^7.7.4
+ version: 7.7.4
+ trie-search:
+ specifier: ^2.2.1
+ version: 2.2.1
+ uuid:
+ specifier: ^13.0.0
+ version: 13.0.0
+ vscode-uri:
+ specifier: ^3.1.0
+ version: 3.1.0
+ devDependencies:
+ '@types/fs-extra':
+ specifier: ^11.0.4
+ version: 11.0.4
+ '@types/js-yaml':
+ specifier: ^4.0.9
+ version: 4.0.9
+ '@types/lodash-es':
+ specifier: ^4.17.12
+ version: 4.17.12
+ '@types/nearley':
+ specifier: ^2.11.5
+ version: 2.11.5(patch_hash=72ccc6b9fd704c6d457027e12d6e1d005695ab3508558a08c6aaf73fb608ef69)
+ '@types/node':
+ specifier: ^24.12.0
+ version: 24.12.0
+ '@types/semver':
+ specifier: ^7.7.1
+ version: 7.7.1
+ '@types/sinon':
+ specifier: ^21.0.0
+ version: 21.0.0
+ '@types/vscode':
+ specifier: 1.98.0
+ version: 1.98.0
+ esbuild:
+ specifier: ^0.27.4
+ version: 0.27.4
+ fast-xml-parser:
+ specifier: ^5.5.6
+ version: 5.5.6
+ fs-extra:
+ specifier: ^11.3.4
+ version: 11.3.4
+ sinon:
+ specifier: ^21.0.3
+ version: 21.0.3
+ tsx:
+ specifier: ^4.21.0
+ version: 4.21.0
+
+ packages/app-web:
+ dependencies:
+ '@cursorless/lib-cheatsheet':
+ specifier: workspace:*
+ version: link:../lib-cheatsheet
+ '@cursorless/lib-common':
+ specifier: workspace:*
+ version: link:../lib-common
+ bootstrap:
+ specifier: ^5.3.8
+ version: 5.3.8(@popperjs/core@2.11.8)
+ preact:
+ specifier: ^10.29.0
+ version: 10.29.0
+ react-player:
+ specifier: ^3.4.0
+ version: 3.4.0(@svta/cml-cta@1.0.1(@svta/cml-structured-field-values@1.0.1(@svta/cml-utils@1.0.1))(@svta/cml-utils@1.0.1))(@svta/cml-structured-field-values@1.0.1(@svta/cml-utils@1.0.1))(@svta/cml-utils@1.0.1)(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
+ wouter-preact:
+ specifier: ^3.9.0
+ version: 3.9.0(preact@10.29.0)
+ devDependencies:
+ '@types/node':
+ specifier: ^24.12.0
+ version: 24.12.0
+ eslint:
+ specifier: ^10.0.3
+ version: 10.0.3(jiti@2.6.1)
+ http-server:
+ specifier: ^14.1.1
+ version: 14.1.1
+ typescript:
+ specifier: ^5.9.3
+ version: 5.9.3
+ vite:
+ specifier: ^8.0.0
+ version: 8.0.0(@types/node@24.12.0)(esbuild@0.27.4)(jiti@2.6.1)(sass@1.98.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.2)
+ vite-plugin-purgecss:
+ specifier: ^0.2.13
+ version: 0.2.13(@swc/core@1.15.18)(@types/node@24.12.0)(jiti@2.6.1)(lightningcss@1.32.0)(postcss@8.5.8)(sass@1.98.0)(terser@5.46.1)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2)
+ vite-plugin-svgr:
+ specifier: ^4.5.0
+ version: 4.5.0(rollup@4.59.0)(typescript@5.9.3)(vite@8.0.0(@types/node@24.12.0)(esbuild@0.27.4)(jiti@2.6.1)(sass@1.98.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.2))
+
+ packages/app-web-docs:
+ dependencies:
+ '@algolia/client-search':
+ specifier: ^5.49.2
+ version: 5.49.2
+ '@cursorless/lib-common':
+ specifier: workspace:*
+ version: link:../lib-common
+ '@docsearch/react':
+ specifier: ^4.6.0
+ version: 4.6.0(@algolia/client-search@5.49.2)(@types/react@19.2.14)(algoliasearch@5.49.2)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(search-insights@2.17.3)
+ '@docusaurus/core':
+ specifier: ^3.9.2
+ version: 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.18)(esbuild@0.27.4)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(esbuild@0.27.4))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.4))(@rspack/core@1.7.9)(@swc/core@1.15.18)(esbuild@0.27.4)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)
+ '@docusaurus/faster':
+ specifier: ^3.9.2
+ version: 3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.18)(esbuild@0.27.4)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(esbuild@0.27.4)
+ '@docusaurus/preset-classic':
+ specifier: ^3.9.2
+ version: 3.9.2(@algolia/client-search@5.49.2)(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.18)(esbuild@0.27.4)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(esbuild@0.27.4))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.4))(@rspack/core@1.7.9)(@swc/core@1.15.18)(@types/react@19.2.14)(esbuild@0.27.4)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(search-insights@2.17.3)(typescript@5.9.3)
+ '@docusaurus/theme-classic':
+ specifier: ^3.9.2
+ version: 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.18)(esbuild@0.27.4)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(esbuild@0.27.4))(@rspack/core@1.7.9)(@swc/core@1.15.18)(@types/react@19.2.14)(esbuild@0.27.4)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)
+ '@docusaurus/theme-common':
+ specifier: ^3.9.2
+ version: 3.9.2(@docusaurus/plugin-content-docs@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.18)(esbuild@0.27.4)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(esbuild@0.27.4))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.4))(@rspack/core@1.7.9)(@swc/core@1.15.18)(esbuild@0.27.4)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3))(@swc/core@1.15.18)(esbuild@0.27.4)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
+ '@docusaurus/theme-search-algolia':
+ specifier: ^3.9.2
+ version: 3.9.2(@algolia/client-search@5.49.2)(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.18)(esbuild@0.27.4)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(esbuild@0.27.4))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.4))(@rspack/core@1.7.9)(@swc/core@1.15.18)(@types/react@19.2.14)(esbuild@0.27.4)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(search-insights@2.17.3)(typescript@5.9.3)
+ '@mdx-js/react':
+ specifier: ^3.1.1
+ version: 3.1.1(@types/react@19.2.14)(react@19.2.4)
+ bootstrap:
+ specifier: ^5.3.8
+ version: 5.3.8(@popperjs/core@2.11.8)
+ clsx:
+ specifier: ^2.1.1
+ version: 2.1.1
+ docusaurus-plugin-sass:
+ specifier: ^0.2.6
+ version: 0.2.6(@docusaurus/core@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.18)(esbuild@0.27.4)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(esbuild@0.27.4))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.4))(@rspack/core@1.7.9)(@swc/core@1.15.18)(esbuild@0.27.4)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3))(@rspack/core@1.7.9)(sass@1.98.0)(webpack@5.105.4(@swc/core@1.15.18)(esbuild@0.27.4))
+ mdast-util-find-and-replace:
+ specifier: ^3.0.2
+ version: 3.0.2
+ prism-react-renderer:
+ specifier: ^2.4.1
+ version: 2.4.1(react@19.2.4)
+ react:
+ specifier: ^19.2.4
+ version: 19.2.4
+ react-dom:
+ specifier: ^19.2.4
+ version: 19.2.4(react@19.2.4)
+ shiki:
+ specifier: ^4.0.2
+ version: 4.0.2
+ unist-util-visit:
+ specifier: ^5.1.0
+ version: 5.1.0
+ devDependencies:
+ '@cursorless/lib-node-common':
+ specifier: workspace:*
+ version: link:../lib-node-common
+ '@docusaurus/module-type-aliases':
+ specifier: ^3.9.2
+ version: 3.9.2(@swc/core@1.15.18)(esbuild@0.27.4)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
+ '@docusaurus/types':
+ specifier: ^3.9.2
+ version: 3.9.2(@swc/core@1.15.18)(esbuild@0.27.4)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
+ '@tsconfig/docusaurus':
+ specifier: ^2.0.9
+ version: 2.0.9
+ '@types/mdast':
+ specifier: ^4.0.4
+ version: 4.0.4
+ '@types/react':
+ specifier: ^19.2.14
+ version: 19.2.14
+ sass:
+ specifier: ^1.98.0
+ version: 1.98.0
+ typescript:
+ specifier: ^5.9.3
+ version: 5.9.3
+ unified:
+ specifier: ^11.0.5
+ version: 11.0.5
+
+ packages/lib-cheatsheet:
+ dependencies:
+ '@cursorless/lib-common':
+ specifier: workspace:*
+ version: link:../lib-common
preact:
specifier: ^10.29.0
version: 10.29.0
@@ -112,14 +377,14 @@ importers:
specifier: ^5.9.3
version: 5.9.3
- packages/cheatsheet-local:
+ packages/lib-cheatsheet-local:
dependencies:
- '@cursorless/cheatsheet':
+ '@cursorless/lib-cheatsheet':
specifier: workspace:*
- version: link:../cheatsheet
- '@cursorless/common':
+ version: link:../lib-cheatsheet
+ '@cursorless/lib-common':
specifier: workspace:*
- version: link:../common
+ version: link:../lib-common
bootstrap:
specifier: ^5.3.8
version: 5.3.8(@popperjs/core@2.11.8)
@@ -149,7 +414,7 @@ importers:
specifier: ^2.3.2
version: 2.3.2(rollup@4.59.0)(vite@8.0.0(@types/node@24.12.0)(esbuild@0.27.4)(jiti@2.6.1)(sass@1.98.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.2))
- packages/common:
+ packages/lib-common:
dependencies:
itertools:
specifier: ^2.6.0
@@ -192,17 +457,17 @@ importers:
specifier: ^0.26.7
version: 0.26.7
- packages/cursorless-engine:
+ packages/lib-engine:
dependencies:
- '@cursorless/common':
+ '@cursorless/lib-common':
specifier: workspace:*
- version: link:../common
- '@cursorless/node-common':
+ version: link:../lib-common
+ '@cursorless/lib-node-common':
specifier: workspace:*
- version: link:../node-common
- '@cursorless/sentence-parser':
+ version: link:../lib-node-common
+ '@cursorless/lib-sentence-parser':
specifier: workspace:*
- version: link:../sentence-parser
+ version: link:../lib-sentence-parser
'@cursorless/talon-tools':
specifier: ^0.8.0
version: 0.8.0
@@ -271,116 +536,60 @@ importers:
specifier: ^0.26.7
version: 0.26.7
- packages/cursorless-everywhere-talon:
+ packages/lib-neovim-common:
dependencies:
- '@cursorless/common':
+ '@cursorless/lib-common':
specifier: workspace:*
- version: link:../common
- '@cursorless/cursorless-everywhere-talon-core':
+ version: link:../lib-common
+ '@cursorless/lib-neovim-registry':
specifier: workspace:*
- version: link:../cursorless-everywhere-talon-core
-
- packages/cursorless-everywhere-talon-core:
- dependencies:
- '@cursorless/common':
+ version: link:../lib-neovim-registry
+ '@cursorless/lib-node-common':
specifier: workspace:*
- version: link:../common
- '@cursorless/cursorless-engine':
- specifier: workspace:*
- version: link:../cursorless-engine
- lodash-es:
+ version: link:../lib-node-common
+ lodash:
specifier: ^4.17.23
version: 4.17.23
+ neovim:
+ specifier: ^5.4.0
+ version: 5.4.0
+ uuid:
+ specifier: ^13.0.0
+ version: 13.0.0
vscode-uri:
specifier: ^3.1.0
version: 3.1.0
devDependencies:
- '@types/lodash-es':
- specifier: ^4.17.12
- version: 4.17.12
+ '@types/lodash':
+ specifier: ^4.17.24
+ version: 4.17.24
+ '@types/vscode':
+ specifier: 1.98.0
+ version: 1.98.0
+
+ packages/lib-neovim-registry:
+ devDependencies:
+ neovim:
+ specifier: ^5.4.0
+ version: 5.4.0
- packages/cursorless-everywhere-talon-e2e:
+ packages/lib-node-common:
dependencies:
- '@cursorless/common':
- specifier: workspace:*
- version: link:../common
- '@cursorless/cursorless-everywhere-talon-core':
- specifier: workspace:*
- version: link:../cursorless-everywhere-talon-core
- '@cursorless/node-common':
- specifier: workspace:*
- version: link:../node-common
- '@cursorless/test-case-recorder':
+ '@cursorless/lib-common':
specifier: workspace:*
- version: link:../test-case-recorder
- devDependencies:
- '@types/mocha':
- specifier: ^10.0.10
- version: 10.0.10
- esbuild:
- specifier: ^0.27.4
- version: 0.27.4
- mocha:
- specifier: ^11.7.5
- version: 11.7.5
-
- packages/cursorless-neovim:
- dependencies:
- '@cursorless/common':
- specifier: workspace:*
- version: link:../common
- '@cursorless/cursorless-engine':
- specifier: workspace:*
- version: link:../cursorless-engine
- '@cursorless/neovim-common':
- specifier: workspace:*
- version: link:../neovim-common
- '@cursorless/neovim-registry':
- specifier: workspace:*
- version: link:../neovim-registry
- '@cursorless/node-common':
- specifier: workspace:*
- version: link:../node-common
- '@cursorless/test-case-recorder':
- specifier: workspace:*
- version: link:../test-case-recorder
- devDependencies:
- '@types/chai':
- specifier: ^5.2.3
- version: 5.2.3
- '@types/js-yaml':
- specifier: ^4.0.9
- version: 4.0.9
- '@types/lodash':
- specifier: ^4.17.24
- version: 4.17.24
- lodash:
+ version: link:../lib-common
+ glob:
+ specifier: ^13.0.6
+ version: 13.0.6
+ immer:
+ specifier: ^11.1.4
+ version: 11.1.4
+ lodash-es:
specifier: ^4.17.23
version: 4.17.23
- neovim:
- specifier: ^5.4.0
- version: 5.4.0
- vscode-uri:
- specifier: ^3.1.0
- version: 3.1.0
-
- packages/cursorless-neovim-e2e:
- dependencies:
- '@cursorless/common':
- specifier: workspace:*
- version: link:../common
- '@cursorless/neovim-common':
- specifier: workspace:*
- version: link:../neovim-common
- '@cursorless/neovim-registry':
- specifier: workspace:*
- version: link:../neovim-registry
- '@cursorless/node-common':
- specifier: workspace:*
- version: link:../node-common
- '@cursorless/test-case-recorder':
- specifier: workspace:*
- version: link:../test-case-recorder
+ node-html-parser:
+ specifier: ^7.1.0
+ version: 7.1.0
devDependencies:
'@types/chai':
specifier: ^5.2.3
@@ -388,268 +597,77 @@ importers:
'@types/js-yaml':
specifier: ^4.0.9
version: 4.0.9
- '@types/lodash':
- specifier: ^4.17.24
- version: 4.17.24
- '@types/sinon':
- specifier: ^21.0.0
- version: 21.0.0
+ '@types/lodash-es':
+ specifier: ^4.17.12
+ version: 4.17.12
+ chai:
+ specifier: ^6.2.2
+ version: 6.2.2
js-yaml:
specifier: ^4.1.1
version: 4.1.1
- neovim:
- specifier: ^5.4.0
- version: 5.4.0
- sinon:
- specifier: ^21.0.3
- version: 21.0.3
- packages/cursorless-org:
- dependencies:
- '@cursorless/cheatsheet':
- specifier: workspace:*
- version: link:../cheatsheet
- '@cursorless/common':
- specifier: workspace:*
- version: link:../common
- bootstrap:
- specifier: ^5.3.8
- version: 5.3.8(@popperjs/core@2.11.8)
- preact:
- specifier: ^10.29.0
- version: 10.29.0
- react-player:
- specifier: ^3.4.0
- version: 3.4.0(@svta/cml-cta@1.0.1(@svta/cml-structured-field-values@1.0.1(@svta/cml-utils@1.0.1))(@svta/cml-utils@1.0.1))(@svta/cml-structured-field-values@1.0.1(@svta/cml-utils@1.0.1))(@svta/cml-utils@1.0.1)(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
- wouter-preact:
- specifier: ^3.9.0
- version: 3.9.0(preact@10.29.0)
- devDependencies:
- '@types/node':
- specifier: ^24.12.0
- version: 24.12.0
- eslint:
- specifier: ^10.0.3
- version: 10.0.3(jiti@2.6.1)
- http-server:
- specifier: ^14.1.1
- version: 14.1.1
- typescript:
- specifier: ^5.9.3
- version: 5.9.3
- vite:
- specifier: ^8.0.0
- version: 8.0.0(@types/node@24.12.0)(esbuild@0.27.4)(jiti@2.6.1)(sass@1.98.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.2)
- vite-plugin-purgecss:
- specifier: ^0.2.13
- version: 0.2.13(@swc/core@1.15.18)(@types/node@24.12.0)(jiti@2.6.1)(lightningcss@1.32.0)(postcss@8.5.8)(sass@1.98.0)(terser@5.46.1)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2)
- vite-plugin-svgr:
- specifier: ^4.5.0
- version: 4.5.0(rollup@4.59.0)(typescript@5.9.3)(vite@8.0.0(@types/node@24.12.0)(esbuild@0.27.4)(jiti@2.6.1)(sass@1.98.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.8.2))
-
- packages/cursorless-org-docs:
- dependencies:
- '@algolia/client-search':
- specifier: ^5.49.2
- version: 5.49.2
- '@cursorless/common':
- specifier: workspace:*
- version: link:../common
- '@docsearch/react':
- specifier: ^4.6.0
- version: 4.6.0(@algolia/client-search@5.49.2)(@types/react@19.2.14)(algoliasearch@5.49.2)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(search-insights@2.17.3)
- '@docusaurus/core':
- specifier: ^3.9.2
- version: 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.18)(esbuild@0.27.4)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(esbuild@0.27.4))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.4))(@rspack/core@1.7.9)(@swc/core@1.15.18)(esbuild@0.27.4)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)
- '@docusaurus/faster':
- specifier: ^3.9.2
- version: 3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.18)(esbuild@0.27.4)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(esbuild@0.27.4)
- '@docusaurus/preset-classic':
- specifier: ^3.9.2
- version: 3.9.2(@algolia/client-search@5.49.2)(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.18)(esbuild@0.27.4)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(esbuild@0.27.4))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.4))(@rspack/core@1.7.9)(@swc/core@1.15.18)(@types/react@19.2.14)(esbuild@0.27.4)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(search-insights@2.17.3)(typescript@5.9.3)
- '@docusaurus/theme-classic':
- specifier: ^3.9.2
- version: 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.18)(esbuild@0.27.4)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(esbuild@0.27.4))(@rspack/core@1.7.9)(@swc/core@1.15.18)(@types/react@19.2.14)(esbuild@0.27.4)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)
- '@docusaurus/theme-common':
- specifier: ^3.9.2
- version: 3.9.2(@docusaurus/plugin-content-docs@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.18)(esbuild@0.27.4)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(esbuild@0.27.4))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.4))(@rspack/core@1.7.9)(@swc/core@1.15.18)(esbuild@0.27.4)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3))(@swc/core@1.15.18)(esbuild@0.27.4)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
- '@docusaurus/theme-search-algolia':
- specifier: ^3.9.2
- version: 3.9.2(@algolia/client-search@5.49.2)(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.18)(esbuild@0.27.4)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(esbuild@0.27.4))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.4))(@rspack/core@1.7.9)(@swc/core@1.15.18)(@types/react@19.2.14)(esbuild@0.27.4)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(search-insights@2.17.3)(typescript@5.9.3)
- '@mdx-js/react':
- specifier: ^3.1.1
- version: 3.1.1(@types/react@19.2.14)(react@19.2.4)
- bootstrap:
- specifier: ^5.3.8
- version: 5.3.8(@popperjs/core@2.11.8)
- clsx:
- specifier: ^2.1.1
- version: 2.1.1
- docusaurus-plugin-sass:
- specifier: ^0.2.6
- version: 0.2.6(@docusaurus/core@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.18)(esbuild@0.27.4)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(esbuild@0.27.4))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.4))(@rspack/core@1.7.9)(@swc/core@1.15.18)(esbuild@0.27.4)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3))(@rspack/core@1.7.9)(sass@1.98.0)(webpack@5.105.4(@swc/core@1.15.18)(esbuild@0.27.4))
- mdast-util-find-and-replace:
- specifier: ^3.0.2
- version: 3.0.2
- prism-react-renderer:
- specifier: ^2.4.1
- version: 2.4.1(react@19.2.4)
- react:
- specifier: ^19.2.4
- version: 19.2.4
- react-dom:
- specifier: ^19.2.4
- version: 19.2.4(react@19.2.4)
- shiki:
- specifier: ^4.0.2
- version: 4.0.2
- unist-util-visit:
- specifier: ^5.1.0
- version: 5.1.0
+ packages/lib-sentence-parser:
devDependencies:
- '@cursorless/node-common':
- specifier: workspace:*
- version: link:../node-common
- '@docusaurus/module-type-aliases':
- specifier: ^3.9.2
- version: 3.9.2(@swc/core@1.15.18)(esbuild@0.27.4)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
- '@docusaurus/types':
- specifier: ^3.9.2
- version: 3.9.2(@swc/core@1.15.18)(esbuild@0.27.4)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
- '@tsconfig/docusaurus':
- specifier: ^2.0.9
- version: 2.0.9
- '@types/mdast':
- specifier: ^4.0.4
- version: 4.0.4
- '@types/react':
- specifier: ^19.2.14
- version: 19.2.14
- sass:
- specifier: ^1.98.0
- version: 1.98.0
- typescript:
- specifier: ^5.9.3
- version: 5.9.3
- unified:
- specifier: ^11.0.5
- version: 11.0.5
+ '@types/mocha':
+ specifier: ^10.0.10
+ version: 10.0.10
+ mocha:
+ specifier: ^11.7.5
+ version: 11.7.5
- packages/cursorless-tutorial:
+ packages/lib-talon-core:
dependencies:
- '@cursorless/common':
+ '@cursorless/lib-common':
specifier: workspace:*
- version: link:../common
- '@cursorless/cursorless-engine':
+ version: link:../lib-common
+ '@cursorless/lib-engine':
specifier: workspace:*
- version: link:../cursorless-engine
- immer:
- specifier: ^11.1.4
- version: 11.1.4
+ version: link:../lib-engine
lodash-es:
specifier: ^4.17.23
version: 4.17.23
+ vscode-uri:
+ specifier: ^3.1.0
+ version: 3.1.0
devDependencies:
'@types/lodash-es':
specifier: ^4.17.12
version: 4.17.12
- packages/cursorless-vscode:
+ packages/lib-test-case-recorder:
dependencies:
- '@cursorless/common':
+ '@cursorless/lib-common':
specifier: workspace:*
- version: link:../common
- '@cursorless/cursorless-engine':
+ version: link:../lib-common
+ '@cursorless/lib-engine':
specifier: workspace:*
- version: link:../cursorless-engine
- '@cursorless/cursorless-tutorial':
+ version: link:../lib-engine
+ '@cursorless/lib-node-common':
specifier: workspace:*
- version: link:../cursorless-tutorial
- '@cursorless/node-common':
- specifier: workspace:*
- version: link:../node-common
- '@cursorless/test-case-recorder':
- specifier: workspace:*
- version: link:../test-case-recorder
- '@cursorless/vscode-common':
- specifier: workspace:*
- version: link:../vscode-common
+ version: link:../lib-node-common
glob:
specifier: ^13.0.6
version: 13.0.6
- itertools:
- specifier: ^2.6.0
- version: 2.6.0
+ immutability-helper:
+ specifier: ^3.1.1
+ version: 3.1.1
lodash-es:
specifier: ^4.17.23
version: 4.17.23
- nearley:
- specifier: ^2.20.1
- version: 2.20.1(patch_hash=0db19a2c501b16f37fbd86a94190d4a790184cea1061bf2e07f24eb076d4f2cf)
- semver:
- specifier: ^7.7.4
- version: 7.7.4
- trie-search:
- specifier: ^2.2.1
- version: 2.2.1
- uuid:
- specifier: ^13.0.0
- version: 13.0.0
- vscode-uri:
- specifier: ^3.1.0
- version: 3.1.0
devDependencies:
- '@types/fs-extra':
- specifier: ^11.0.4
- version: 11.0.4
- '@types/js-yaml':
- specifier: ^4.0.9
- version: 4.0.9
'@types/lodash-es':
specifier: ^4.17.12
version: 4.17.12
- '@types/nearley':
- specifier: ^2.11.5
- version: 2.11.5(patch_hash=72ccc6b9fd704c6d457027e12d6e1d005695ab3508558a08c6aaf73fb608ef69)
- '@types/node':
- specifier: ^24.12.0
- version: 24.12.0
- '@types/semver':
- specifier: ^7.7.1
- version: 7.7.1
- '@types/sinon':
- specifier: ^21.0.0
- version: 21.0.0
- '@types/vscode':
- specifier: 1.98.0
- version: 1.98.0
- esbuild:
- specifier: ^0.27.4
- version: 0.27.4
- fast-xml-parser:
- specifier: ^5.5.6
- version: 5.5.6
- fs-extra:
- specifier: ^11.3.4
- version: 11.3.4
- sinon:
- specifier: ^21.0.3
- version: 21.0.3
- tsx:
- specifier: ^4.21.0
- version: 4.21.0
- packages/cursorless-vscode-e2e:
+ packages/lib-tutorial:
dependencies:
- '@cursorless/common':
- specifier: workspace:*
- version: link:../common
- '@cursorless/node-common':
+ '@cursorless/lib-common':
specifier: workspace:*
- version: link:../node-common
- '@cursorless/vscode-common':
+ version: link:../lib-common
+ '@cursorless/lib-engine':
specifier: workspace:*
- version: link:../vscode-common
+ version: link:../lib-engine
immer:
specifier: ^11.1.4
version: 11.1.4
@@ -657,48 +675,25 @@ importers:
specifier: ^4.17.23
version: 4.17.23
devDependencies:
- '@types/chai':
- specifier: ^5.2.3
- version: 5.2.3
- '@types/js-yaml':
- specifier: ^4.0.9
- version: 4.0.9
'@types/lodash-es':
specifier: ^4.17.12
version: 4.17.12
- '@types/mocha':
- specifier: ^10.0.10
- version: 10.0.10
- '@types/semver':
- specifier: ^7.7.1
- version: 7.7.1
- '@types/sinon':
- specifier: ^21.0.0
- version: 21.0.0
+
+ packages/lib-vscode-common:
+ dependencies:
+ '@cursorless/lib-common':
+ specifier: workspace:*
+ version: link:../lib-common
+ devDependencies:
'@types/vscode':
specifier: 1.98.0
version: 1.98.0
- chai:
- specifier: ^6.2.2
- version: 6.2.2
- js-yaml:
- specifier: ^4.1.1
- version: 4.1.1
- mocha:
- specifier: ^11.7.5
- version: 11.7.5
- semver:
- specifier: ^7.7.4
- version: 7.7.4
- sinon:
- specifier: ^21.0.3
- version: 21.0.3
- packages/cursorless-vscode-tutorial-webview:
+ packages/lib-vscode-tutorial-webview:
dependencies:
- '@cursorless/common':
+ '@cursorless/lib-common':
specifier: workspace:*
- version: link:../common
+ version: link:../lib-common
bootstrap:
specifier: ^5.3.8
version: 5.3.8(@popperjs/core@2.11.8)
@@ -716,93 +711,23 @@ importers:
specifier: ^0.2.13
version: 0.2.13(@swc/core@1.15.18)(@types/node@25.5.0)(jiti@2.6.1)(lightningcss@1.32.0)(postcss@8.5.8)(sass@1.98.0)(terser@5.46.1)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2)
- packages/meta-updater:
- devDependencies:
- '@cursorless/common':
- specifier: workspace:*
- version: link:../common
- '@pnpm/lockfile-file':
- specifier: ^9.1.3
- version: 9.1.3(@pnpm/logger@1001.0.1)
- '@pnpm/types':
- specifier: ^1001.3.0
- version: 1001.3.0
- '@types/js-yaml':
- specifier: ^4.0.9
- version: 4.0.9
- '@types/lodash-es':
- specifier: ^4.17.12
- version: 4.17.12
- '@types/normalize-path':
- specifier: ^3.0.2
- version: 3.0.2
- js-yaml:
- specifier: ^4.1.1
- version: 4.1.1
- lodash-es:
- specifier: ^4.17.23
- version: 4.17.23
- normalize-path:
- specifier: ^3.0.0
- version: 3.0.0
- type-fest:
- specifier: ^5.4.4
- version: 5.4.4
-
- packages/neovim-common:
+ packages/test-neovim-e2e:
dependencies:
- '@cursorless/common':
+ '@cursorless/lib-common':
specifier: workspace:*
- version: link:../common
- '@cursorless/neovim-registry':
+ version: link:../lib-common
+ '@cursorless/lib-neovim-common':
specifier: workspace:*
- version: link:../neovim-registry
- '@cursorless/node-common':
+ version: link:../lib-neovim-common
+ '@cursorless/lib-neovim-registry':
specifier: workspace:*
- version: link:../node-common
- lodash:
- specifier: ^4.17.23
- version: 4.17.23
- neovim:
- specifier: ^5.4.0
- version: 5.4.0
- uuid:
- specifier: ^13.0.0
- version: 13.0.0
- vscode-uri:
- specifier: ^3.1.0
- version: 3.1.0
- devDependencies:
- '@types/lodash':
- specifier: ^4.17.24
- version: 4.17.24
- '@types/vscode':
- specifier: 1.98.0
- version: 1.98.0
-
- packages/neovim-registry:
- devDependencies:
- neovim:
- specifier: ^5.4.0
- version: 5.4.0
-
- packages/node-common:
- dependencies:
- '@cursorless/common':
+ version: link:../lib-neovim-registry
+ '@cursorless/lib-node-common':
specifier: workspace:*
- version: link:../common
- glob:
- specifier: ^13.0.6
- version: 13.0.6
- immer:
- specifier: ^11.1.4
- version: 11.1.4
- lodash-es:
- specifier: ^4.17.23
- version: 4.17.23
- node-html-parser:
- specifier: ^7.1.0
- version: 7.1.0
+ version: link:../lib-node-common
+ '@cursorless/lib-test-case-recorder':
+ specifier: workspace:*
+ version: link:../lib-test-case-recorder
devDependencies:
'@types/chai':
specifier: ^5.2.3
@@ -810,64 +735,36 @@ importers:
'@types/js-yaml':
specifier: ^4.0.9
version: 4.0.9
- '@types/lodash-es':
- specifier: ^4.17.12
- version: 4.17.12
- chai:
- specifier: ^6.2.2
- version: 6.2.2
+ '@types/lodash':
+ specifier: ^4.17.24
+ version: 4.17.24
+ '@types/sinon':
+ specifier: ^21.0.0
+ version: 21.0.0
js-yaml:
specifier: ^4.1.1
version: 4.1.1
+ neovim:
+ specifier: ^5.4.0
+ version: 5.4.0
+ sinon:
+ specifier: ^21.0.3
+ version: 21.0.3
- packages/sentence-parser:
- devDependencies:
- '@types/mocha':
- specifier: ^10.0.10
- version: 10.0.10
- mocha:
- specifier: ^11.7.5
- version: 11.7.5
-
- packages/test-case-recorder:
- dependencies:
- '@cursorless/common':
- specifier: workspace:*
- version: link:../common
- '@cursorless/cursorless-engine':
- specifier: workspace:*
- version: link:../cursorless-engine
- '@cursorless/node-common':
- specifier: workspace:*
- version: link:../node-common
- glob:
- specifier: ^13.0.6
- version: 13.0.6
- immutability-helper:
- specifier: ^3.1.1
- version: 3.1.1
- lodash-es:
- specifier: ^4.17.23
- version: 4.17.23
- devDependencies:
- '@types/lodash-es':
- specifier: ^4.17.12
- version: 4.17.12
-
- packages/test-harness:
+ packages/test-runner:
dependencies:
- '@cursorless/common':
+ '@cursorless/lib-common':
specifier: workspace:*
- version: link:../common
- '@cursorless/neovim-common':
+ version: link:../lib-common
+ '@cursorless/lib-neovim-common':
specifier: workspace:*
- version: link:../neovim-common
- '@cursorless/neovim-registry':
+ version: link:../lib-neovim-common
+ '@cursorless/lib-neovim-registry':
specifier: workspace:*
- version: link:../neovim-registry
- '@cursorless/node-common':
+ version: link:../lib-neovim-registry
+ '@cursorless/lib-node-common':
specifier: workspace:*
- version: link:../node-common
+ version: link:../lib-node-common
glob:
specifier: ^13.0.6
version: 13.0.6
@@ -906,15 +803,118 @@ importers:
specifier: ^0.26.7
version: 0.26.7
- packages/vscode-common:
+ packages/test-talon-e2e:
dependencies:
- '@cursorless/common':
+ '@cursorless/lib-common':
+ specifier: workspace:*
+ version: link:../lib-common
+ '@cursorless/lib-node-common':
+ specifier: workspace:*
+ version: link:../lib-node-common
+ '@cursorless/lib-talon-core':
+ specifier: workspace:*
+ version: link:../lib-talon-core
+ '@cursorless/lib-test-case-recorder':
specifier: workspace:*
- version: link:../common
+ version: link:../lib-test-case-recorder
devDependencies:
+ '@types/mocha':
+ specifier: ^10.0.10
+ version: 10.0.10
+ esbuild:
+ specifier: ^0.27.4
+ version: 0.27.4
+ mocha:
+ specifier: ^11.7.5
+ version: 11.7.5
+
+ packages/test-vscode-e2e:
+ dependencies:
+ '@cursorless/lib-common':
+ specifier: workspace:*
+ version: link:../lib-common
+ '@cursorless/lib-node-common':
+ specifier: workspace:*
+ version: link:../lib-node-common
+ '@cursorless/lib-vscode-common':
+ specifier: workspace:*
+ version: link:../lib-vscode-common
+ immer:
+ specifier: ^11.1.4
+ version: 11.1.4
+ lodash-es:
+ specifier: ^4.17.23
+ version: 4.17.23
+ devDependencies:
+ '@types/chai':
+ specifier: ^5.2.3
+ version: 5.2.3
+ '@types/js-yaml':
+ specifier: ^4.0.9
+ version: 4.0.9
+ '@types/lodash-es':
+ specifier: ^4.17.12
+ version: 4.17.12
+ '@types/mocha':
+ specifier: ^10.0.10
+ version: 10.0.10
+ '@types/semver':
+ specifier: ^7.7.1
+ version: 7.7.1
+ '@types/sinon':
+ specifier: ^21.0.0
+ version: 21.0.0
'@types/vscode':
specifier: 1.98.0
version: 1.98.0
+ chai:
+ specifier: ^6.2.2
+ version: 6.2.2
+ js-yaml:
+ specifier: ^4.1.1
+ version: 4.1.1
+ mocha:
+ specifier: ^11.7.5
+ version: 11.7.5
+ semver:
+ specifier: ^7.7.4
+ version: 7.7.4
+ sinon:
+ specifier: ^21.0.3
+ version: 21.0.3
+
+ packages/tool-meta-updater:
+ devDependencies:
+ '@cursorless/lib-common':
+ specifier: workspace:*
+ version: link:../lib-common
+ '@pnpm/lockfile-file':
+ specifier: ^9.1.3
+ version: 9.1.3(@pnpm/logger@1001.0.1)
+ '@pnpm/types':
+ specifier: ^1001.3.0
+ version: 1001.3.0
+ '@types/js-yaml':
+ specifier: ^4.0.9
+ version: 4.0.9
+ '@types/lodash-es':
+ specifier: ^4.17.12
+ version: 4.17.12
+ '@types/normalize-path':
+ specifier: ^3.0.2
+ version: 3.0.2
+ js-yaml:
+ specifier: ^4.1.1
+ version: 4.1.1
+ lodash-es:
+ specifier: ^4.17.23
+ version: 4.17.23
+ normalize-path:
+ specifier: ^3.0.0
+ version: 3.0.0
+ type-fest:
+ specifier: ^5.4.4
+ version: 5.4.4
packages:
diff --git a/tsconfig.json b/tsconfig.json
index ccbfd0f96d..ba37720134 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -3,73 +3,73 @@
"include": [],
"references": [
{
- "path": "./packages/cheatsheet"
+ "path": "./packages/app-neovim"
},
{
- "path": "./packages/cheatsheet-local"
+ "path": "./packages/app-talon"
},
{
- "path": "./packages/common"
+ "path": "./packages/app-vscode"
},
{
- "path": "./packages/cursorless-engine"
+ "path": "./packages/app-web"
},
{
- "path": "./packages/cursorless-everywhere-talon"
+ "path": "./packages/app-web-docs"
},
{
- "path": "./packages/cursorless-everywhere-talon-core"
+ "path": "./packages/lib-cheatsheet"
},
{
- "path": "./packages/cursorless-everywhere-talon-e2e"
+ "path": "./packages/lib-cheatsheet-local"
},
{
- "path": "./packages/cursorless-neovim"
+ "path": "./packages/lib-common"
},
{
- "path": "./packages/cursorless-neovim-e2e"
+ "path": "./packages/lib-engine"
},
{
- "path": "./packages/cursorless-org"
+ "path": "./packages/lib-neovim-common"
},
{
- "path": "./packages/cursorless-org-docs"
+ "path": "./packages/lib-neovim-registry"
},
{
- "path": "./packages/cursorless-tutorial"
+ "path": "./packages/lib-node-common"
},
{
- "path": "./packages/cursorless-vscode"
+ "path": "./packages/lib-sentence-parser"
},
{
- "path": "./packages/cursorless-vscode-e2e"
+ "path": "./packages/lib-talon-core"
},
{
- "path": "./packages/cursorless-vscode-tutorial-webview"
+ "path": "./packages/lib-test-case-recorder"
},
{
- "path": "./packages/meta-updater"
+ "path": "./packages/lib-tutorial"
},
{
- "path": "./packages/neovim-common"
+ "path": "./packages/lib-vscode-common"
},
{
- "path": "./packages/neovim-registry"
+ "path": "./packages/lib-vscode-tutorial-webview"
},
{
- "path": "./packages/node-common"
+ "path": "./packages/test-neovim-e2e"
},
{
- "path": "./packages/sentence-parser"
+ "path": "./packages/test-runner"
},
{
- "path": "./packages/test-case-recorder"
+ "path": "./packages/test-talon-e2e"
},
{
- "path": "./packages/test-harness"
+ "path": "./packages/test-vscode-e2e"
},
{
- "path": "./packages/vscode-common"
+ "path": "./packages/tool-meta-updater"
}
]
}
From 9c6504c95c406c92b6a003e8ac7c7a5e289b0801 Mon Sep 17 00:00:00 2001
From: Andreas Arvidsson
Date: Thu, 19 Mar 2026 11:44:17 +0100
Subject: [PATCH 17/24] update scripts and docs
---
.github/workflows/deploy.yml | 2 +-
.github/workflows/test.yml | 6 ++--
.gitignore | 4 +--
.prettierignore | 6 ++--
.vscode/launch.json | 18 +++++------
.vscode/tasks.json | 8 ++---
AGENTS.md | 12 ++++----
.../src/cursorless_dev_vscode.talon | 2 +-
.../node/command-server/index/index.cjs | 4 +--
eslint.config.mts | 10 +++----
package.json | 2 +-
packages/app-neovim/scripts/debug-neovim.sh | 2 +-
packages/app-neovim/scripts/populate-dist.sh | 4 +--
packages/app-neovim/scripts/show-logs.sh | 2 +-
packages/app-vscode/eslintConfig.ts | 2 +-
packages/app-vscode/package.json | 4 +--
packages/app-vscode/scripts/install-local.sh | 2 +-
packages/app-web-docs/docusaurus.config.mts | 4 +--
.../src/docs/contributing/CONTRIBUTING.mdx | 4 +--
.../contributing/adding-a-new-language.md | 6 ++--
.../docs/contributing/adding-a-new-scope.md | 4 +--
.../neovim-test-infrastructure.md | 30 +++++++++----------
.../src/docs/contributing/cheatsheet.md | 2 +-
.../docs/contributing/documentation-search.md | 6 ++--
.../docs/contributing/test-case-recorder.md | 12 ++++----
.../src/docs/contributing/tests.md | 2 +-
.../contributing/tree-sitter-query-syntax.md | 2 +-
packages/app-web-docs/src/docs/user/README.md | 2 +-
packages/app-web/eslintConfig.ts | 2 +-
packages/lib-common/eslintConfig.ts | 4 +--
packages/lib-engine/eslintConfig.ts | 2 +-
packages/lib-node-common/src/Cheatsheet.ts | 2 +-
.../lib-vscode-tutorial-webview/package.json | 2 +-
.../src/launchNeovimAndRunTests.ts | 6 ++--
.../src/launchVscodeAndRunTests.ts | 2 +-
.../src/scripts/runVscodeTestsCI.ts | 2 +-
packages/test-runner/src/testSubset.ts | 2 +-
packages/test-talon-e2e/package.json | 2 +-
.../src/suite/keyboard/basic.vscode.test.ts | 2 +-
scripts/build-and-assemble-website.sh | 8 ++---
scripts/deploy-cursorless-nvim.sh | 4 +--
41 files changed, 102 insertions(+), 102 deletions(-)
diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml
index 8964f4c65e..dc4c0c34d4 100644
--- a/.github/workflows/deploy.yml
+++ b/.github/workflows/deploy.yml
@@ -37,7 +37,7 @@ jobs:
uses: HaaLeo/publish-vscode-extension@v2
with:
pat: ${{ secrets.OPEN_VSX_TOKEN }}
- packagePath: packages/cursorless-vscode/dist
+ packagePath: packages/app-vscode/dist
skipDuplicate: true
- name: Publish to Visual Studio Marketplace
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index 83ff79578b..45f1189de8 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -103,11 +103,11 @@ jobs:
if: runner.os != 'Linux'
- name: Run QuickJS tests (Linux)
- run: xvfb-run -a pnpm -F @cursorless/lib-talon-e2e test:quickjs
+ run: xvfb-run -a pnpm -F @cursorless/test-talon-e2e test:quickjs
if: runner.os == 'Linux' && matrix.app_version == 'stable'
- name: Run QuickJS tests (Win,Mac)
- run: pnpm -F @cursorless/lib-talon-e2e test:quickjs
+ run: pnpm -F @cursorless/test-talon-e2e test:quickjs
if: runner.os != 'Linux'
- name: Create VSCode dist that can be installed locally
@@ -119,7 +119,7 @@ jobs:
uses: HaaLeo/publish-vscode-extension@v2
with:
pat: none
- packagePath: packages/cursorless-vscode/dist
+ packagePath: packages/app-vscode/dist
dryRun: true
- name: Rename vsix (Linux)
diff --git a/.gitignore b/.gitignore
index 0376f14fe7..839dc8aef5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -11,8 +11,8 @@ tsconfig.tsbuildinfo
.luacheckcache
# test subset config
-packages/test-harness/testSubsetGrep.properties
-packages/test-harness/failedTests.properties
+packages/test-runner/testSubsetGrep.properties
+packages/test-runner/failedTests.properties
# cursorless-neovim
cursorless.nvim/node/cursorless-neovim
diff --git a/.prettierignore b/.prettierignore
index 78e8bdc564..731f07ddc3 100644
--- a/.prettierignore
+++ b/.prettierignore
@@ -5,9 +5,9 @@ packages/*/out
packages/*/dist
packages/*/build
packages/*/.docusaurus
-packages/cursorless-vscode/src/keyboard/grammar/generated
-packages/cursorless-engine/src/customCommandGrammar/generated
-packages/cursorless-engine/src/snippets/vendor
+packages/app-vscode/src/keyboard/grammar/generated
+packages/lib-engine/src/customCommandGrammar/generated
+packages/lib-engine/src/snippets/vendor
# We use our own format for our recorded yaml tests to keep them compact
/data/fixtures/recorded/**/*.yml
diff --git a/.vscode/launch.json b/.vscode/launch.json
index 5def5e1998..22cad0ffde 100644
--- a/.vscode/launch.json
+++ b/.vscode/launch.json
@@ -10,7 +10,7 @@
"CURSORLESS_REPO_ROOT": "${workspaceFolder}"
},
"args": [
- "--extensionDevelopmentPath=${workspaceFolder}/packages/cursorless-vscode/dist",
+ "--extensionDevelopmentPath=${workspaceFolder}/packages/app-vscode/dist",
"--profile=cursorlessDevelopment"
],
"outFiles": ["${workspaceFolder}/**/out/**/*.js"],
@@ -31,8 +31,8 @@
},
"args": [
"--profile=cursorlessDevelopment",
- "--extensionDevelopmentPath=${workspaceFolder}/packages/cursorless-vscode/dist",
- "--extensionTestsPath=${workspaceFolder}/packages/test-harness/out/extensionTestsVscode.cjs"
+ "--extensionDevelopmentPath=${workspaceFolder}/packages/app-vscode/dist",
+ "--extensionTestsPath=${workspaceFolder}/packages/test-runner/out/extensionTestsVscode.cjs"
],
"outFiles": ["${workspaceFolder}/**/out/**/*.js"],
"preLaunchTask": "Build extension and tests",
@@ -53,8 +53,8 @@
},
"args": [
"--profile=cursorlessDevelopment",
- "--extensionDevelopmentPath=${workspaceFolder}/packages/cursorless-vscode/dist",
- "--extensionTestsPath=${workspaceFolder}/packages/test-harness/out/extensionTestsVscode.cjs"
+ "--extensionDevelopmentPath=${workspaceFolder}/packages/app-vscode/dist",
+ "--extensionTestsPath=${workspaceFolder}/packages/test-runner/out/extensionTestsVscode.cjs"
],
"outFiles": ["${workspaceFolder}/**/out/**/*.js"],
"preLaunchTask": "Build extension and tests (subset)",
@@ -74,8 +74,8 @@
},
"args": [
"--profile=cursorlessDevelopment",
- "--extensionDevelopmentPath=${workspaceFolder}/packages/cursorless-vscode/dist",
- "--extensionTestsPath=${workspaceFolder}/packages/test-harness/out/extensionTestsVscode.cjs"
+ "--extensionDevelopmentPath=${workspaceFolder}/packages/app-vscode/dist",
+ "--extensionTestsPath=${workspaceFolder}/packages/test-runner/out/extensionTestsVscode.cjs"
],
"outFiles": ["${workspaceFolder}/**/out/**/*.js"],
"preLaunchTask": "Build extension and tests",
@@ -96,8 +96,8 @@
},
"args": [
"--profile=cursorlessDevelopment",
- "--extensionDevelopmentPath=${workspaceFolder}/packages/cursorless-vscode/dist",
- "--extensionTestsPath=${workspaceFolder}/packages/test-harness/out/extensionTestsVscode.cjs"
+ "--extensionDevelopmentPath=${workspaceFolder}/packages/app-vscode/dist",
+ "--extensionTestsPath=${workspaceFolder}/packages/test-runner/out/extensionTestsVscode.cjs"
],
"outFiles": ["${workspaceFolder}/**/out/**/*.js"],
"preLaunchTask": "Build extension and tests (subset)",
diff --git a/.vscode/tasks.json b/.vscode/tasks.json
index a05ce5abf7..faeccc0af8 100644
--- a/.vscode/tasks.json
+++ b/.vscode/tasks.json
@@ -6,7 +6,7 @@
"label": "Build extension",
"type": "npm",
"script": "dev",
- "path": "packages/cursorless-vscode",
+ "path": "packages/app-vscode",
"group": "build",
"presentation": {
"reveal": "silent"
@@ -32,7 +32,7 @@
"label": "Build test harness",
"type": "npm",
"script": "build",
- "path": "packages/test-harness",
+ "path": "packages/test-runner",
"presentation": {
"reveal": "silent"
},
@@ -42,7 +42,7 @@
"label": "Ensure test subset file exists",
"type": "npm",
"script": "generate-test-subset-file-strict",
- "path": "packages/test-harness",
+ "path": "packages/test-runner",
"group": "test",
"presentation": {
"reveal": "silent"
@@ -52,7 +52,7 @@
"label": "Generate test subset file",
"type": "npm",
"script": "generate-test-subset-file",
- "path": "packages/test-harness",
+ "path": "packages/test-runner",
"group": "none",
"presentation": {
"reveal": "silent"
diff --git a/AGENTS.md b/AGENTS.md
index 3762dfacdb..fb38f2cefd 100644
--- a/AGENTS.md
+++ b/AGENTS.md
@@ -2,14 +2,14 @@
## Documentation Structure
-- Main documentation is in `/packages/cursorless-org-docs/src/docs/user/README.md`
+- Main documentation is in `/packages/app-web-docs/src/docs/user/README.md`
- Spoken forms are defined in `/cursorless-talon/src/spoken_forms.json`
-- Contributing documentation is in `/packages/cursorless-org-docs/src/docs/contributing/`
+- Contributing documentation is in `/packages/app-web-docs/src/docs/contributing/`
## Project Organization
-- Main extension code is in `/packages/cursorless-vscode/`
-- Engine code is in `/packages/cursorless-engine/`
+- Main extension code is in `/packages/app-vscode/`
+- Engine code is in `/packages/lib-engine/`
- Tests are in `data/fixtures/recorded/`
- Language-specific parsing is defined in the `queries/*.scm` files
@@ -34,12 +34,12 @@ When documenting actions or modifiers:
- Many actions (`drop`, `float`, `puff`) work with both line and non-line targets
- Always check test fixtures in `/data/fixtures/recorded/` to understand behavior
-- Implementation for many actions is in `/packages/cursorless-engine/src/actions/`
+- Implementation for many actions is in `/packages/lib-engine/src/actions/`
- After running Python scripts or tests, delete any `__pycache__` directories and `.pyc` files created under the repository root.
## Scope test format
-When writing or updating `.scope` files please follow the guidelines in [scope-test-format.md](./packages/cursorless-org-docs/src/docs/contributing/scope-test-format.md)
+When writing or updating `.scope` files please follow the guidelines in [scope-test-format.md](./packages/app-web-docs/src/docs/contributing/scope-test-format.md)
## Pull Request Guidelines
diff --git a/cursorless-talon-dev/src/cursorless_dev_vscode.talon b/cursorless-talon-dev/src/cursorless_dev_vscode.talon
index e711034aac..cea4b1bb9a 100644
--- a/cursorless-talon-dev/src/cursorless_dev_vscode.talon
+++ b/cursorless-talon-dev/src/cursorless_dev_vscode.talon
@@ -18,7 +18,7 @@ win.title: /cursorless/
^debug generate subset$:
user.run_rpc_command("workbench.action.tasks.runTask", "Generate test subset file")
debug edit subset:
- user.run_rpc_command("commands.openFolder", "./packages/test-harness/testSubsetGrep.properties")
+ user.run_rpc_command("commands.openFolder", "./packages/test-runner/testSubsetGrep.properties")
debug {user.cursorless_launch_configuration}:
user.run_rpc_command("commands.startDebugging", cursorless_launch_configuration)
diff --git a/cursorless.nvim/node/command-server/index/index.cjs b/cursorless.nvim/node/command-server/index/index.cjs
index a6382b5152..fa97f443a0 100644
--- a/cursorless.nvim/node/command-server/index/index.cjs
+++ b/cursorless.nvim/node/command-server/index/index.cjs
@@ -164,7 +164,7 @@ var NativeIo = class {
}
};
-// ../cursorless_fork/packages/neovim-registry/src/NeovimRegistry.ts
+// ../cursorless_fork/packages/lib-neovim-registry/src/NeovimRegistry.ts
var import_node_events = require("node:events");
var NeovimRegistry = class {
constructor() {
@@ -192,7 +192,7 @@ var NeovimRegistry = class {
}
};
-// ../cursorless_fork/packages/neovim-registry/src/index.ts
+// ../cursorless_fork/packages/lib-neovim-registry/src/index.ts
function getNeovimRegistry() {
if (global._neovimRegistry == null) {
global._neovimRegistry = new NeovimRegistry();
diff --git a/eslint.config.mts b/eslint.config.mts
index 993bd066ce..d5421f077e 100644
--- a/eslint.config.mts
+++ b/eslint.config.mts
@@ -9,10 +9,10 @@ import unicornPlugin from "eslint-plugin-unicorn";
import unusedImportsPlugin from "eslint-plugin-unused-imports";
import { defineConfig } from "eslint/config";
import tsEslint from "typescript-eslint";
-import { commonConfig } from "./packages/common/eslintConfig";
-import { cursorlessEngineConfig } from "./packages/cursorless-engine/eslintConfig";
-import { cursorlessOrgConfig } from "./packages/cursorless-org/eslintConfig";
-import { cursorlessVscodeConfig } from "./packages/cursorless-vscode/eslintConfig";
+import { commonConfig } from "./packages/lib-common/eslintConfig";
+import { cursorlessEngineConfig } from "./packages/lib-engine/eslintConfig";
+import { cursorlessOrgConfig } from "./packages/app-web/eslintConfig";
+import { cursorlessVscodeConfig } from "./packages/app-vscode/eslintConfig";
const ignoresConfig: ConfigWithExtends = {
ignores: [
@@ -24,7 +24,7 @@ const ignoresConfig: ConfigWithExtends = {
"**/.next/**/*",
"**/.docusaurus/**/*",
"data/playground/**/*",
- "packages/cursorless-org/next-env.d.ts",
+ "packages/app-web/next-env.d.ts",
],
};
diff --git a/package.json b/package.json
index 41c60998ab..3e4b6b5881 100644
--- a/package.json
+++ b/package.json
@@ -31,7 +31,7 @@
"test:update": "pnpm -r test:update",
"test:update:subset": "pnpm -r test:update:subset",
"generate-grammar": "pnpm -r generate-grammar",
- "transform-recorded-tests": "pnpm exec ./packages/common/scripts/c-tsx.js ./packages/lib-engine/src/scripts/transformRecordedTests/index.ts"
+ "transform-recorded-tests": "pnpm exec ./packages/lib-common/scripts/c-tsx.js ./packages/lib-engine/src/scripts/transformRecordedTests/index.ts"
},
"devDependencies": {
"@eslint/config-helpers": "^0.5.3",
diff --git a/packages/app-neovim/scripts/debug-neovim.sh b/packages/app-neovim/scripts/debug-neovim.sh
index 58aae44dd6..c8aeef8e59 100644
--- a/packages/app-neovim/scripts/debug-neovim.sh
+++ b/packages/app-neovim/scripts/debug-neovim.sh
@@ -6,7 +6,7 @@ cursorless_mode="$2"
export CURSORLESS_REPO_ROOT="${workspaceFolder}"
export NVIM_NODE_HOST_DEBUG="1"
-export NVIM_NODE_LOG_FILE="${workspaceFolder}/packages/cursorless-neovim/out/nvim_node.log"
+export NVIM_NODE_LOG_FILE="${workspaceFolder}/packages/app-neovim/out/nvim_node.log"
export NVIM_NODE_LOG_LEVEL="info"
export CURSORLESS_MODE="${cursorless_mode}"
diff --git a/packages/app-neovim/scripts/populate-dist.sh b/packages/app-neovim/scripts/populate-dist.sh
index 971877f540..dbe7872190 100644
--- a/packages/app-neovim/scripts/populate-dist.sh
+++ b/packages/app-neovim/scripts/populate-dist.sh
@@ -7,8 +7,8 @@ if [ ! -e "${CURSORLESS_REPO_ROOT-nonexistent}" ]; then
fi
echo "CURSORLESS_REPO_ROOT: $CURSORLESS_REPO_ROOT"
cursorless_nvim_dir="$CURSORLESS_REPO_ROOT/cursorless.nvim"
-cursorless_neovim_node_in_dir="$CURSORLESS_REPO_ROOT/packages/cursorless-neovim"
-test_harness_node_in_dir="$CURSORLESS_REPO_ROOT/packages/test-harness"
+cursorless_neovim_node_in_dir="$CURSORLESS_REPO_ROOT/packages/app-neovim"
+test_harness_node_in_dir="$CURSORLESS_REPO_ROOT/packages/test-runner"
if [[ "${CI:-x}" == "true" ]]; then
# If running in CI, only copy the necessary files for testing and release
diff --git a/packages/app-neovim/scripts/show-logs.sh b/packages/app-neovim/scripts/show-logs.sh
index 7635219a01..43e9520802 100644
--- a/packages/app-neovim/scripts/show-logs.sh
+++ b/packages/app-neovim/scripts/show-logs.sh
@@ -1,7 +1,7 @@
#!/usr/bin/env bash
set -euo pipefail
-log_path="${CURSORLESS_REPO_ROOT}/packages/cursorless-neovim/out/nvim_node.log"
+log_path="${CURSORLESS_REPO_ROOT}/packages/app-neovim/out/nvim_node.log"
# Be robust to the log file not existing yet
touch "${log_path}"
diff --git a/packages/app-vscode/eslintConfig.ts b/packages/app-vscode/eslintConfig.ts
index 3e11327c1f..7760628f62 100644
--- a/packages/app-vscode/eslintConfig.ts
+++ b/packages/app-vscode/eslintConfig.ts
@@ -1,7 +1,7 @@
import type { ConfigWithExtends } from "@eslint/config-helpers";
export const cursorlessVscodeConfig: ConfigWithExtends = {
- files: ["packages/cursorless-vscode/src/scripts/**/*.ts"],
+ files: ["packages/app-vscode/src/scripts/**/*.ts"],
rules: {
"no-restricted-imports": [
diff --git a/packages/app-vscode/package.json b/packages/app-vscode/package.json
index 6977dbb735..eca67e44a1 100644
--- a/packages/app-vscode/package.json
+++ b/packages/app-vscode/package.json
@@ -1286,8 +1286,8 @@
"test": "pnpm ensure-grammar-up-to-date",
"dev": "pnpm generate-grammar && pnpm run compile:dev && pnpm run bundle:dev && pnpm run populate-dist",
"build": "pnpm generate-grammar && pnpm run compile:prod && pnpm run bundle:prod && pnpm run populate-dist",
- "bundle:dev": "pnpm -F @cursorless/app-vscode-tutorial-webview -F @cursorless/lib-cheatsheet-local run bundle:dev",
- "bundle:prod": "pnpm -F @cursorless/app-vscode-tutorial-webview -F @cursorless/lib-cheatsheet-local run bundle:prod",
+ "bundle:dev": "pnpm -F @cursorless/lib-vscode-tutorial-webview -F @cursorless/lib-cheatsheet-local run bundle:dev",
+ "bundle:prod": "pnpm -F @cursorless/lib-vscode-tutorial-webview -F @cursorless/lib-cheatsheet-local run bundle:prod",
"compile:prod": "pnpm run compile:base --minify",
"compile:dev": "pnpm run compile:base --sourcemap",
"compile:watch": "pnpm run compile:base --sourcemap --watch",
diff --git a/packages/app-vscode/scripts/install-local.sh b/packages/app-vscode/scripts/install-local.sh
index 033f4a9db3..a607d050d5 100644
--- a/packages/app-vscode/scripts/install-local.sh
+++ b/packages/app-vscode/scripts/install-local.sh
@@ -17,7 +17,7 @@ fi
# 1. Build local cursorless, using special extension id to break update chain
pnpm -F @cursorless/lib-cheatsheet-local bundle:prod
-pnpm -F @cursorless/app-vscode-tutorial-webview bundle:prod
+pnpm -F @cursorless/lib-vscode-tutorial-webview bundle:prod
pnpm build --local-install
# 2. Bundle the extension
diff --git a/packages/app-web-docs/docusaurus.config.mts b/packages/app-web-docs/docusaurus.config.mts
index cd867c661b..e27c15693f 100644
--- a/packages/app-web-docs/docusaurus.config.mts
+++ b/packages/app-web-docs/docusaurus.config.mts
@@ -9,7 +9,7 @@ import { visit } from "unist-util-visit";
const require = createRequire(import.meta.url);
-const docsRelative = "packages/cursorless-org-docs/src/docs/";
+const docsRelative = "packages/app-web-docs/src/docs/";
const userRelative = docsRelative + "user";
const contributingRelative = docsRelative + "contributing";
const repoLink = "https://github.com/cursorless-dev/cursorless/tree/main/";
@@ -147,7 +147,7 @@ const config: Config = {
// to serve a markdown document on homepage
routeBasePath: "/",
editUrl:
- "https://github.com/cursorless-dev/cursorless/edit/main/packages/cursorless-org-docs/",
+ "https://github.com/cursorless-dev/cursorless/edit/main/packages/app-web-docs/",
sidebarPath: require.resolve("./sidebar.js"),
beforeDefaultRemarkPlugins: [
remarkPluginFixLinksToRepositoryArtifacts,
diff --git a/packages/app-web-docs/src/docs/contributing/CONTRIBUTING.mdx b/packages/app-web-docs/src/docs/contributing/CONTRIBUTING.mdx
index a3d2b126a7..414591f6af 100644
--- a/packages/app-web-docs/src/docs/contributing/CONTRIBUTING.mdx
+++ b/packages/app-web-docs/src/docs/contributing/CONTRIBUTING.mdx
@@ -242,14 +242,14 @@ This script will add dummy width, height and fill attributes as necessary to app
While tweaking, the easiest approach is probably to use the
`cursorless.individualHatAdjustments` setting in your settings.json to change
size / alignment so you don't need to refresh every time. Once you're done, you
-can paste the settings into `packages/cursorless-vscode/src/scripts/hatAdjustments/add.ts` and run the following to get
+can paste the settings into `packages/app-vscode/src/scripts/hatAdjustments/add.ts` and run the following to get
your updates:
```sh
pnpm -F @cursorless/app-vscode hat-adjustments-add
```
-If instead, you want to average your adjustments with those in main and see the differences to get to yours and main, you can paste the settings into `packages/cursorless-vscode/src/scripts/hatAdjustments/average.ts` and run:
+If instead, you want to average your adjustments with those in main and see the differences to get to yours and main, you can paste the settings into `packages/app-vscode/src/scripts/hatAdjustments/average.ts` and run:
```sh
pnpm -F @cursorless/app-vscode hat-adjustments-average
diff --git a/packages/app-web-docs/src/docs/contributing/adding-a-new-language.md b/packages/app-web-docs/src/docs/contributing/adding-a-new-language.md
index e204c754a7..10968b905f 100644
--- a/packages/app-web-docs/src/docs/contributing/adding-a-new-language.md
+++ b/packages/app-web-docs/src/docs/contributing/adding-a-new-language.md
@@ -11,11 +11,11 @@ for how to add support for a new parser
## 2. Ensure file type is supported by VSCode
-If you are adding support for a new language that isn't natively detected by VSCode, you will need to add the appropriate extension to the list of dependencies. The list of languages officially supported by VSCode is listed [in the VSCode docs](https://code.visualstudio.com/docs/languages/identifiers#_known-language-identifiers). If your language is in that list, you can skip this step and proceed to step 3. If your language is not in that list, you need to find a VSCode extension that adds support for your language, and add the id of the given extension to [`packages/common/src/extensionDependencies.ts`](../../../../../packages/common/src/extensionDependencies.ts) and then re-run `pnpm init-vscode-sandbox` to ensure it is installed. If you do not do this you will encounter errors when attempting to execute cursorless commands in the next step. See [#1895](https://github.com/cursorless-dev/cursorless/issues/1895) for more info.
+If you are adding support for a new language that isn't natively detected by VSCode, you will need to add the appropriate extension to the list of dependencies. The list of languages officially supported by VSCode is listed [in the VSCode docs](https://code.visualstudio.com/docs/languages/identifiers#_known-language-identifiers). If your language is in that list, you can skip this step and proceed to step 3. If your language is not in that list, you need to find a VSCode extension that adds support for your language, and add the id of the given extension to [`packages/lib-common/src/extensionDependencies.ts`](../../../../../packages/lib-common/src/extensionDependencies.ts) and then re-run `pnpm init-vscode-sandbox` to ensure it is installed. If you do not do this you will encounter errors when attempting to execute cursorless commands in the next step. See [#1895](https://github.com/cursorless-dev/cursorless/issues/1895) for more info.
## 3. Register your language with Cursorless
-1. Create a file with your scope support map to indicate which scopes you support. See eg [`markdown.ts`](../../../../../packages/common/src/scopeSupportFacets/markdown.ts). At the start, you can leave the actual scope support table empty, so it will look something like the following (keeping in mind it's best to look at [`markdown.ts`](../../../../../packages/common/src/scopeSupportFacets/markdown.ts) or another support file in case the following snippet rots):
+1. Create a file with your scope support map to indicate which scopes you support. See eg [`markdown.ts`](../../../../../packages/lib-common/src/scopeSupportFacets/markdown.ts). At the start, you can leave the actual scope support table empty, so it will look something like the following (keeping in mind it's best to look at [`markdown.ts`](../../../../../packages/lib-common/src/scopeSupportFacets/markdown.ts) or another support file in case the following snippet rots):
```ts
import {
@@ -29,7 +29,7 @@ If you are adding support for a new language that isn't natively detected by VSC
export const markdownScopeSupport: LanguageScopeSupportFacetMap = {};
```
-2. Add an entry pointing to your support table to [the global scope support table](../../../../../packages/common/src/scopeSupportFacets/languageScopeSupport.ts)
+2. Add an entry pointing to your support table to [the global scope support table](../../../../../packages/lib-common/src/scopeSupportFacets/languageScopeSupport.ts)
3. Create an empty `.scm` file in [`queries/`](../../../../../queries) to hold your parse tree patterns. It should be named after your language, eg `java.scm`.
diff --git a/packages/app-web-docs/src/docs/contributing/adding-a-new-scope.md b/packages/app-web-docs/src/docs/contributing/adding-a-new-scope.md
index eb38fb861a..cd26e80d16 100644
--- a/packages/app-web-docs/src/docs/contributing/adding-a-new-scope.md
+++ b/packages/app-web-docs/src/docs/contributing/adding-a-new-scope.md
@@ -16,7 +16,7 @@ For example, `"funk"` (`namedFunction`) has the following facets:
- `namedfunction.method`, corresponding to a class method declaration, and
- `namedfunction.constructor`, corresponding to a class constructor declaration.
-Have a look in [`scopeSupportFacetInfos`](../../../../../packages/common/src/scopeSupportFacets/scopeSupportFacetInfos.ts) to see which facets the given scope has. The key is the id of the facet, and the value has information about the facet, including a description and a `scopeType` field indicating which scope type the facet corresponds to.
+Have a look in [`scopeSupportFacetInfos`](../../../../../packages/lib-common/src/scopeSupportFacets/scopeSupportFacetInfos.ts) to see which facets the given scope has. The key is the id of the facet, and the value has information about the facet, including a description and a `scopeType` field indicating which scope type the facet corresponds to.
These facet ids will be the keys in your language's scope support table below.
@@ -27,7 +27,7 @@ Note that in addition to the straightforward facet IDs that correspond to the sc
## 3. Add entries to your language's scope support table
-Add entries for each of the facet IDs of the given scope to the scope support table for your language in [the `scopeSupportFacets` directory](/../../packages/common/src/scopeSupportFacets).
+Add entries for each of the facet IDs of the given scope to the scope support table for your language in [the `scopeSupportFacets` directory](/../../packages/lib-common/src/scopeSupportFacets).
For example, if you'd like to add support for the `namedFunction` facet of the `funk` scope, you would add entries like the following to your language's scope support table:
diff --git a/packages/app-web-docs/src/docs/contributing/architecture/neovim-test-infrastructure.md b/packages/app-web-docs/src/docs/contributing/architecture/neovim-test-infrastructure.md
index 5106ba4f45..b72a033683 100644
--- a/packages/app-web-docs/src/docs/contributing/architecture/neovim-test-infrastructure.md
+++ b/packages/app-web-docs/src/docs/contributing/architecture/neovim-test-infrastructure.md
@@ -11,22 +11,22 @@ launch.json -> .vscode/tasks.json -> nvim -u init.lua
init.lua
-> CursorlessLoadExtension()
- -> TestHarnessRun() -> run() -> runAllTests() -> Mocha -> packages/cursorless-neovim-e2e/src/suite/recorded.neovim.test.ts
+ -> TestHarnessRun() -> run() -> runAllTests() -> Mocha -> packages/test-neovim-e2e/src/suite/recorded.neovim.test.ts
```
And here is the call path when running Neovim tests on CI:
```
-.github/workflows/test.yml -> packages/test-harness/package.json -> c-tsx src/scripts/runNeovimTestsCI.ts -> packages/test-harness/src/launchNeovimAndRunTests.ts
+.github/workflows/test.yml -> packages/test-runner/package.json -> c-tsx src/scripts/runNeovimTestsCI.ts -> packages/test-runner/src/launchNeovimAndRunTests.ts
launchNeovimAndRunTests.ts
- -> copies packages/test-harness/src/config/init.lua to default nvim config folder
+ -> copies packages/test-runner/src/config/init.lua to default nvim config folder
-> nvim --headless
-> read Cursorless logs to determine success or failure
-packages/test-harness/src/config/init.lua
+packages/test-runner/src/config/init.lua
-> CursorlessLoadExtension()
- -> TestHarnessRun() -> run() -> runAllTests() -> Mocha + packages/cursorless-neovim-e2e/src/suite/recorded.neovim.test.ts
+ -> TestHarnessRun() -> run() -> runAllTests() -> Mocha + packages/test-neovim-e2e/src/suite/recorded.neovim.test.ts
```
### Running Neovim tests locally
@@ -74,7 +74,7 @@ The `Neovim: Launch neovim (test)` task effectively starts `nvim` as a detached
"windows": {
"command": "powershell",
"args": [
- "(New-Object -ComObject WScript.Shell).Run(\"\"\"${workspaceFolder}/packages/cursorless-neovim/scripts/debug-neovim.bat\"\"\", 1, $false)"
+ "(New-Object -ComObject WScript.Shell).Run(\"\"\"${workspaceFolder}/packages/app-neovim/scripts/debug-neovim.bat\"\"\", 1, $false)"
]
},
...
@@ -82,7 +82,7 @@ The `Neovim: Launch neovim (test)` task effectively starts `nvim` as a detached
"env": {
"CURSORLESS_REPO_ROOT": "${workspaceFolder}",
"NVIM_NODE_HOST_DEBUG": "1",
- "NVIM_NODE_LOG_FILE": "${workspaceFolder}/packages/cursorless-neovim/out/nvim_node.log",
+ "NVIM_NODE_LOG_FILE": "${workspaceFolder}/packages/app-neovim/out/nvim_node.log",
"NVIM_NODE_LOG_LEVEL": "info",
"CURSORLESS_MODE": "test"
}
@@ -107,7 +107,7 @@ vim.opt.runtimepath:append(repo_root .. "/cursorless.nvim")
require("cursorless").setup()
```
-NOTE: this relies on having symlinks inside `cursorless.nvim/node/` to point to the development paths `packages/cursorless-neovim` and `packages/test-harness`. This is required in order to have all the symbols loaded for debugging.
+NOTE: this relies on having symlinks inside `cursorless.nvim/node/` to point to the development paths `packages/app-neovim` and `packages/test-runner`. This is required in order to have all the symbols loaded for debugging.
This ends up calling `setup()` from `cursorless.nvim/lua/cursorless/init.lua`:
@@ -163,7 +163,7 @@ This is handy because it allows VSCode to finish all the tasks required for buil
When VSCode attaches to the `node` process, `CursorlessLoadExtension()` is called to load the Cursorles neovim plugin and `TestHarnessRun()` is called to start the tests.
-This ends up calling `TestHarnessRun()` from `packages/test-harness/src/index.ts` which calls `run()`:
+This ends up calling `TestHarnessRun()` from `packages/test-runner/src/index.ts` which calls `run()`:
```ts
export default function entry(plugin: NvimPlugin) {
@@ -178,7 +178,7 @@ export async function run(plugin: NvimPlugin): Promise {
console.log(`==== TESTS FINISHED: code: ${code}`);
```
-This ends up calling `runAllTests()` which calls `runTestsInDir()` from `packages/test-harness/src/runAllTests.ts`.
+This ends up calling `runAllTests()` which calls `runTestsInDir()` from `packages/test-runner/src/runAllTests.ts`.
This ends up using the [Mocha API](https://mochajs.org/) to execute tests whose names end with `neovim.test.cjs`:
@@ -199,7 +199,7 @@ async function runTestsInDir(
...
```
-Consequently, the recorded tests from `data/fixtures/recorded/` are executed when `packages/cursorless-neovim-e2e/src/suite/recorded.neovim.test.ts` is invoked.
+Consequently, the recorded tests from `data/fixtures/recorded/` are executed when `packages/test-neovim-e2e/src/suite/recorded.neovim.test.ts` is invoked.
### Running Neovim tests on CI
@@ -212,13 +212,13 @@ run: xvfb-run -a pnpm -F @cursorless/test-runner test:neovim
if: runner.os == 'Linux' && matrix.app_version == 'stable'
```
-This triggers the script in `packages/test-harness/package.json`:
+This triggers the script in `packages/test-runner/package.json`:
```json
"test:neovim": "c-tsx src/scripts/runNeovimTestsCI.ts",
```
-This ends up calling the default function from `package/test-harness/src/scripts/runNeovimTestsCI.ts` which calls `launchNeovimAndRunTests()` from `packages/test-harness/src/launchNeovimAndRunTests.ts`:
+This ends up calling the default function from `package/test-runner/src/scripts/runNeovimTestsCI.ts` which calls `launchNeovimAndRunTests()` from `packages/test-runner/src/launchNeovimAndRunTests.ts`:
```ts
(async () => {
@@ -226,7 +226,7 @@ This ends up calling the default function from `package/test-harness/src/scripts
})();
```
-This ends up copying the `packages/test-harness/src/config/init.lua` file into the default nvim config folder `(A)`, starting neovim without a GUI (`--headless`) `(B)` and reading Cursorless logs in order to determine success or failure `(C)`:
+This ends up copying the `packages/test-runner/src/config/init.lua` file into the default nvim config folder `(A)`, starting neovim without a GUI (`--headless`) `(B)` and reading Cursorless logs in order to determine success or failure `(C)`:
```ts
export async function launchNeovimAndRunTests() {
@@ -257,7 +257,7 @@ export async function launchNeovimAndRunTests() {
console.log(`done: ${done}`);
```
-At this stage, we are in a similar situation to the "Cursorless tests for neovim locally" case where `nvim` is started with the `packages/test-harness/src/config/init.lua` config file. Similarly, this `init.lua` adds the local `cursorless.nvim` relative path to the runtime path and initializes Cursorless:
+At this stage, we are in a similar situation to the "Cursorless tests for neovim locally" case where `nvim` is started with the `packages/test-runner/src/config/init.lua` config file. Similarly, this `init.lua` adds the local `cursorless.nvim` relative path to the runtime path and initializes Cursorless:
```lua
local repo_root = os.getenv("CURSORLESS_REPO_ROOT")
diff --git a/packages/app-web-docs/src/docs/contributing/cheatsheet.md b/packages/app-web-docs/src/docs/contributing/cheatsheet.md
index 55ce30a1fc..c1db756117 100644
--- a/packages/app-web-docs/src/docs/contributing/cheatsheet.md
+++ b/packages/app-web-docs/src/docs/contributing/cheatsheet.md
@@ -8,7 +8,7 @@ The implementation of the local version of the cheatsheet is split between the T
When you add a new scope type, action, modifier, etc, you'll need to ensure that it shows up both locally and on the website. It will usually automatically show up in the local cheatsheet. You can verify this by saying `"cursorless cheatsheet"` with your development version of `cursorless-talon` active in your Talon user directory, and inspecting the cheatsheet that appears. If it does not, you'll need to make fixes to [the Talon side of the cheatsheet](../../../../../cursorless-talon/src/cheatsheet).
-In either case, to get your changes to appear on the website, you need to update the defaults in [`defaults.json`](../../../../../packages/cheatsheet/src/lib/sampleSpokenFormInfos/defaults.json). First make sure you have the `cursorless-talon-dev` user file set in your Talon home directory, as indicated in the [initial contributor setup instructions](CONTRIBUTING.mdx#initial-setup). Then you can say `"cursorless update cheatsheet"` to update the default spoken forms. Note that this will use your custom spoken forms, so you may need to do some manual cleanup.
+In either case, to get your changes to appear on the website, you need to update the defaults in [`defaults.json`](../../../../../packages/lib-cheatsheet/src/lib/sampleSpokenFormInfos/defaults.json). First make sure you have the `cursorless-talon-dev` user file set in your Talon home directory, as indicated in the [initial contributor setup instructions](CONTRIBUTING.mdx#initial-setup). Then you can say `"cursorless update cheatsheet"` to update the default spoken forms. Note that this will use your custom spoken forms, so you may need to do some manual cleanup.
## Running the cheatsheet in development mode
diff --git a/packages/app-web-docs/src/docs/contributing/documentation-search.md b/packages/app-web-docs/src/docs/contributing/documentation-search.md
index 4deb6b9fd4..001c53bf8f 100644
--- a/packages/app-web-docs/src/docs/contributing/documentation-search.md
+++ b/packages/app-web-docs/src/docs/contributing/documentation-search.md
@@ -4,9 +4,9 @@ The documentation search is powered by Algolia.
## Tweaking crawling / indexing / ranking
-Unfortunately, today, the source of truth for the Algolia search configuration lives in the Algolia web console. Whenever we update the configuration, we update the copies that we keep in [source control](../../../../../packages/cursorless-org-docs/config/algolia). In the future, we'd like to use the files in source control as the source of truth and deploy them to Algolia in CI. See #917.
+Unfortunately, today, the source of truth for the Algolia search configuration lives in the Algolia web console. Whenever we update the configuration, we update the copies that we keep in [source control](../../../../../packages/app-web-docs/config/algolia). In the future, we'd like to use the files in source control as the source of truth and deploy them to Algolia in CI. See #917.
-To see what changes we've made to the default configuration, compare the contents of [this directory](../../../../../packages/cursorless-org-docs/config/algolia) with https://github.com/cursorless-dev/cursorless/tree/e043ce4795ffcda5a3f5875d91887a09e0f9905b/website/config/algolia
+To see what changes we've made to the default configuration, compare the contents of [this directory](../../../../../packages/app-web-docs/config/algolia) with https://github.com/cursorless-dev/cursorless/tree/e043ce4795ffcda5a3f5875d91887a09e0f9905b/website/config/algolia
### Crawler config
@@ -20,5 +20,5 @@ To see what changes we've made to the default configuration, compare the content
### Index settings
1. Use the [Algolia console](https://www.algolia.com/apps/YTJQ4I3GBJ/explorer/configuration/cursorless/searchable-attributes) to tweak the settings until you're happy.
-2. Click on _Manage index > Export Configuration_ to export the configuration json, saving it to [`index-settings.json`](../../../../../packages/cursorless-org-docs/config/algolia/index-settings.json)
+2. Click on _Manage index > Export Configuration_ to export the configuration json, saving it to [`index-settings.json`](../../../../../packages/app-web-docs/config/algolia/index-settings.json)
3. File a PR to get feedback on the new config.
diff --git a/packages/app-web-docs/src/docs/contributing/test-case-recorder.md b/packages/app-web-docs/src/docs/contributing/test-case-recorder.md
index 5a690b9b3a..98f28061bf 100644
--- a/packages/app-web-docs/src/docs/contributing/test-case-recorder.md
+++ b/packages/app-web-docs/src/docs/contributing/test-case-recorder.md
@@ -30,7 +30,7 @@ command run, and the final state, all in the form of a yaml document. See
## Test case recorder options
-The test case recorder has several additional configuration options. The default configuration works for most tests, but you may find the following useful. For a full list of supported configuration options, see [`RecordTestCaseCommandOptions`](../../../../../packages/cursorless-engine/src/testCaseRecorder/RecordTestCaseCommandOptions.ts).
+The test case recorder has several additional configuration options. The default configuration works for most tests, but you may find the following useful. For a full list of supported configuration options, see [`RecordTestCaseCommandOptions`](../../../../../packages/lib-engine/src/testCaseRecorder/RecordTestCaseCommandOptions.ts).
### The options
@@ -50,7 +50,7 @@ By default, we don't capture the `that` mark returned by a command, unless the t
#### Testing the hat map
-We have a way to test that the hats in the hat map update correctly during the course of a single phrase. These tests are also how we usually test our [range updating code](../../../../../packages/cursorless-engine/src/core/updateSelections/updateSelections.ts).
+We have a way to test that the hats in the hat map update correctly during the course of a single phrase. These tests are also how we usually test our [range updating code](../../../../../packages/lib-engine/src/core/updateSelections/updateSelections.ts).
Any tests recorded in the `hatTokenMap` directory will automatically be treated as hat token map tests. To initiate a series of hat token map tests in another directory, say `"cursorless record navigation"`.
@@ -58,7 +58,7 @@ Then each time you record a test, you need to issue two commands. The second com
### Default config per test case directory
-Any test case directory that contains a `config.json` will set default configuration for all tests recorded in any descendant directory. For example, the file [`actions/config.json`](../../../../../data/fixtures/recorded/actions/config.json) makes it so that all our action tests will capture the final `that` mark. For a full list of keys supported in this json, see [`RecordTestCaseCommandOptions`](../../../../../packages/cursorless-engine/src/testCaseRecorder/RecordTestCaseCommandOptions.ts).
+Any test case directory that contains a `config.json` will set default configuration for all tests recorded in any descendant directory. For example, the file [`actions/config.json`](../../../../../data/fixtures/recorded/actions/config.json) makes it so that all our action tests will capture the final `that` mark. For a full list of keys supported in this json, see [`RecordTestCaseCommandOptions`](../../../../../packages/lib-engine/src/testCaseRecorder/RecordTestCaseCommandOptions.ts).
### Navigation map tests
@@ -82,7 +82,7 @@ To upgrade test fixtures to their canonical, latest form, run the command `pnpm
We periodically upgrade test case fixtures to use the version of our command payload from one year ago. To do so, proceed as follows:
-1. Look at the blame of the big switch statement in the `upgradeCommand` function in [`canonicalizeAndValidateCommand`](../../../../../packages/cursorless-engine/src/core/commandVersionUpgrades/canonicalizeAndValidateCommand.ts). You can do this on the web [here](https://github.com/cursorless-dev/cursorless/blame/main/packages/cursorless-engine/src/core/commandVersionUpgrades/canonicalizeAndValidateCommand.ts)
+1. Look at the blame of the big switch statement in the `upgradeCommand` function in [`canonicalizeAndValidateCommand`](../../../../../packages/lib-engine/src/core/commandVersionUpgrades/canonicalizeAndValidateCommand.ts). You can do this on the web [here](https://github.com/cursorless-dev/cursorless/blame/main/packages/lib-engine/src/core/commandVersionUpgrades/canonicalizeAndValidateCommand.ts)
1. Find the newest `case` branch that is at least one year old
1. Look at the version number that is the guard of that case branch; the minimum number should be that + 1
1. Run `pnpm transform-recorded-tests --upgrade --minimum-version 5`, where 5 is the minimum version number you found
@@ -90,9 +90,9 @@ We periodically upgrade test case fixtures to use the version of our command pay
### Custom transformation
-1. Add a new transformation to the [`transformRecordedTests` directory](../../../../../packages/cursorless-engine/src/scripts/transformRecordedTests). Look at the existing transformations in that directory for inspiration.
+1. Add a new transformation to the [`transformRecordedTests` directory](../../../../../packages/lib-engine/src/scripts/transformRecordedTests). Look at the existing transformations in that directory for inspiration.
1. Change the value at the `custom` key in `AVAILABLE_TRANSFORMATIONS` at the top of
- [`transformRecordedTests/index.ts`](../../../../../packages/cursorless-engine/src/scripts/transformRecordedTests/index.ts) to
+ [`transformRecordedTests/index.ts`](../../../../../packages/lib-engine/src/scripts/transformRecordedTests/index.ts) to
point to your new transformation
1. Run `pnpm transform-recorded-tests --custom`
diff --git a/packages/app-web-docs/src/docs/contributing/tests.md b/packages/app-web-docs/src/docs/contributing/tests.md
index b02e44d3af..d695dbbf52 100644
--- a/packages/app-web-docs/src/docs/contributing/tests.md
+++ b/packages/app-web-docs/src/docs/contributing/tests.md
@@ -21,7 +21,7 @@ You can get an overview of the various test contexts that exist locally by looki
- `pnpm test` runs the default `test` script for each workspace package. In practice, this is the fast unit-oriented test pass.
- `pnpm test:update` runs the test suite in fixture-update mode across the workspace.
-- `pnpm test:update:subset` runs fixture updates only for the tests selected in `packages/test-harness/testSubsetGrep.properties`.
+- `pnpm test:update:subset` runs fixture updates only for the tests selected in `packages/test-runner/testSubsetGrep.properties`.
- `pnpm -F @cursorless/test-runner test:vscode` runs the VSCode test harness.
- `pnpm -F @cursorless/test-runner test:neovim` runs the Neovim test harness.
- `pnpm -F @cursorless/test-runner test:talonJs` runs the Talon-JS test harness.
diff --git a/packages/app-web-docs/src/docs/contributing/tree-sitter-query-syntax.md b/packages/app-web-docs/src/docs/contributing/tree-sitter-query-syntax.md
index 8aff8437a2..dd18da0102 100644
--- a/packages/app-web-docs/src/docs/contributing/tree-sitter-query-syntax.md
+++ b/packages/app-web-docs/src/docs/contributing/tree-sitter-query-syntax.md
@@ -21,4 +21,4 @@ In addition to the above aspects, you can also use the following inline operator
## Query predicate operators
-We also support a number of query predicate operators for modifying the scope. See [`queryPredicateOperators.ts`](../../../../../packages/cursorless-engine/src/languages/TreeSitterQuery/queryPredicateOperators.ts) for a list of available operators.
+We also support a number of query predicate operators for modifying the scope. See [`queryPredicateOperators.ts`](../../../../../packages/lib-engine/src/languages/TreeSitterQuery/queryPredicateOperators.ts) for a list of available operators.
diff --git a/packages/app-web-docs/src/docs/user/README.md b/packages/app-web-docs/src/docs/user/README.md
index 340161fb40..5f9def669a 100644
--- a/packages/app-web-docs/src/docs/user/README.md
+++ b/packages/app-web-docs/src/docs/user/README.md
@@ -145,7 +145,7 @@ Note that if the mark is `"this"`, and you have multiple cursors, the modifiers
##### Syntactic scopes
-For programming languages where Cursorless has rich parse tree support, we support modifiers that expand to the nearest containing function, class, etc. See [the source code](../../../../../packages/common/src/scopeSupportFacets/languageScopeSupport.ts) for a list of supported languages. Below is a list of supported scope types, keeping in mind that this table can sometimes lag behind the actual list. Your cheatsheet (say `"cursorless cheatsheet"` with VSCode focused) will have the most up-to-date list. It can also be helpful to use the [scope visualizer](./scope-visualizer.md) to visualize the scope types on your own code, though keep in mind that the scope visualizer only works on language scopes that have been upgraded to our next-gen scope engine, so it may not work every time.
+For programming languages where Cursorless has rich parse tree support, we support modifiers that expand to the nearest containing function, class, etc. See [the source code](../../../../../packages/lib-common/src/scopeSupportFacets/languageScopeSupport.ts) for a list of supported languages. Below is a list of supported scope types, keeping in mind that this table can sometimes lag behind the actual list. Your cheatsheet (say `"cursorless cheatsheet"` with VSCode focused) will have the most up-to-date list. It can also be helpful to use the [scope visualizer](./scope-visualizer.md) to visualize the scope types on your own code, though keep in mind that the scope visualizer only works on language scopes that have been upgraded to our next-gen scope engine, so it may not work every time.
| Term | Syntactic element |
| -------------- | --------------------------------------------------- |
diff --git a/packages/app-web/eslintConfig.ts b/packages/app-web/eslintConfig.ts
index a4fbc0de15..e3c0d26482 100644
--- a/packages/app-web/eslintConfig.ts
+++ b/packages/app-web/eslintConfig.ts
@@ -2,7 +2,7 @@ import type { ConfigWithExtends } from "@eslint/config-helpers";
import tsEslint from "typescript-eslint";
export const cursorlessOrgConfig: ConfigWithExtends = {
- files: ["packages/cursorless-org/**/*"],
+ files: ["packages/app-web/**/*"],
languageOptions: {
parser: tsEslint.parser,
diff --git a/packages/lib-common/eslintConfig.ts b/packages/lib-common/eslintConfig.ts
index d44d50b4eb..9963779c28 100644
--- a/packages/lib-common/eslintConfig.ts
+++ b/packages/lib-common/eslintConfig.ts
@@ -2,7 +2,7 @@ import type { ConfigWithExtendsArray } from "@eslint/config-helpers";
export const commonConfig: ConfigWithExtendsArray = [
{
- files: ["packages/common/**/*.ts"],
+ files: ["packages/lib-common/**/*.ts"],
ignores: ["**/*.test.ts"],
@@ -12,7 +12,7 @@ export const commonConfig: ConfigWithExtendsArray = [
},
{
- files: ["packages/common/src/types/command/**/*.ts"],
+ files: ["packages/lib-common/src/types/command/**/*.ts"],
rules: {
"@typescript-eslint/no-restricted-imports": [
diff --git a/packages/lib-engine/eslintConfig.ts b/packages/lib-engine/eslintConfig.ts
index 74a2dae547..2aaecdd18f 100644
--- a/packages/lib-engine/eslintConfig.ts
+++ b/packages/lib-engine/eslintConfig.ts
@@ -1,7 +1,7 @@
import type { ConfigWithExtends } from "@eslint/config-helpers";
export const cursorlessEngineConfig: ConfigWithExtends = {
- files: ["packages/cursorless-engine/**/*.ts"],
+ files: ["packages/lib-engine/**/*.ts"],
ignores: ["**/src/scripts/**", "**/src/testUtil/**", "**/*test.ts"],
diff --git a/packages/lib-node-common/src/Cheatsheet.ts b/packages/lib-node-common/src/Cheatsheet.ts
index 253a18aef8..0faacf8653 100644
--- a/packages/lib-node-common/src/Cheatsheet.ts
+++ b/packages/lib-node-common/src/Cheatsheet.ts
@@ -55,7 +55,7 @@ export async function showCheatsheet(
export async function updateDefaults(spokenFormInfo: CheatsheetInfo) {
const defaultsPath = path.join(
getCursorlessRepoRoot(),
- "packages/cheatsheet/src/lib/sampleSpokenFormInfos/defaults.json",
+ "packages/lib-cheatsheet/src/lib/sampleSpokenFormInfos/defaults.json",
);
const outputObject = produce(spokenFormInfo, (draft) => {
diff --git a/packages/lib-vscode-tutorial-webview/package.json b/packages/lib-vscode-tutorial-webview/package.json
index dd37ced5e7..cea2f01f72 100644
--- a/packages/lib-vscode-tutorial-webview/package.json
+++ b/packages/lib-vscode-tutorial-webview/package.json
@@ -1,5 +1,5 @@
{
- "name": "@cursorless/app-vscode-tutorial-webview",
+ "name": "@cursorless/lib-vscode-tutorial-webview",
"version": "1.0.0",
"description": "Contains the VSCode webview frontend for the Cursorless tutorial",
"license": "MIT",
diff --git a/packages/test-runner/src/launchNeovimAndRunTests.ts b/packages/test-runner/src/launchNeovimAndRunTests.ts
index 3d3655664b..fe88b35fa8 100644
--- a/packages/test-runner/src/launchNeovimAndRunTests.ts
+++ b/packages/test-runner/src/launchNeovimAndRunTests.ts
@@ -22,7 +22,7 @@ export async function launchNeovimAndRunTests() {
const cli = getEnvironmentVariableStrict("NEOVIM_PATH");
let nvimFolder = "";
- const initLuaFile = `${getCursorlessRepoRoot()}/packages/test-harness/src/config/init.lua`;
+ const initLuaFile = `${getCursorlessRepoRoot()}/packages/test-runner/src/config/init.lua`;
if (process.platform === "win32") {
nvimFolder = "C:/Users/runneradmin/AppData/Local/nvim/";
} else if (process.platform === "linux") {
@@ -50,7 +50,7 @@ export async function launchNeovimAndRunTests() {
console.log(`\t${file}`);
});
- const logName = `${getCursorlessRepoRoot()}/packages/cursorless-neovim/out/nvim_node.log`;
+ const logName = `${getCursorlessRepoRoot()}/packages/app-neovim/out/nvim_node.log`;
// testing normal nvim startup
//https://stackoverflow.com/questions/3025615/is-there-a-vim-runtime-log
@@ -97,7 +97,7 @@ export async function launchNeovimAndRunTests() {
console.log("listing cursorless-neovim/out/:");
readdirSync(
- `${getCursorlessRepoRoot()}/packages/cursorless-neovim/out/`,
+ `${getCursorlessRepoRoot()}/packages/app-neovim/out/`,
).forEach((file) => {
console.log(`\t${file}`);
});
diff --git a/packages/test-runner/src/launchVscodeAndRunTests.ts b/packages/test-runner/src/launchVscodeAndRunTests.ts
index 46d87e5982..cf05e798b1 100644
--- a/packages/test-runner/src/launchVscodeAndRunTests.ts
+++ b/packages/test-runner/src/launchVscodeAndRunTests.ts
@@ -23,7 +23,7 @@ export async function launchVscodeAndRunTests(extensionTestsPath: string) {
// Passed to `--extensionDevelopmentPath`
const extensionDevelopmentPath = path.resolve(
getCursorlessRepoRoot(),
- "packages/cursorless-vscode/dist",
+ "packages/app-vscode/dist",
);
const crashDir = getEnvironmentVariableStrict("VSCODE_CRASH_DIR");
diff --git a/packages/test-runner/src/scripts/runVscodeTestsCI.ts b/packages/test-runner/src/scripts/runVscodeTestsCI.ts
index 209158db91..c82f155da0 100644
--- a/packages/test-runner/src/scripts/runVscodeTestsCI.ts
+++ b/packages/test-runner/src/scripts/runVscodeTestsCI.ts
@@ -8,7 +8,7 @@ import { launchVscodeAndRunTests } from "../launchVscodeAndRunTests";
const extensionTestsPath = path.resolve(
getCursorlessRepoRoot(),
- "packages/test-harness/out/extensionTestsVscode.cjs",
+ "packages/test-runner/out/extensionTestsVscode.cjs",
);
void launchVscodeAndRunTests(extensionTestsPath);
diff --git a/packages/test-runner/src/testSubset.ts b/packages/test-runner/src/testSubset.ts
index 06da265cc5..41e8cc0921 100644
--- a/packages/test-runner/src/testSubset.ts
+++ b/packages/test-runner/src/testSubset.ts
@@ -54,7 +54,7 @@ export function runTestSubset() {
/**
* Determine whether we should log the failed tests to a file. This makes it easier to put them in `testSubsetGrep.properties` for faster iterating.
- * @returns `true` if we should log failed tests to `packages/test-harness/failedTests.properties`
+ * @returns `true` if we should log failed tests to `packages/test-runner/failedTests.properties`
*/
export function shouldLogFailedTests() {
return process.env.CURSORLESS_LOG_FAILED === "true";
diff --git a/packages/test-talon-e2e/package.json b/packages/test-talon-e2e/package.json
index 7808c79e99..7bc4837340 100644
--- a/packages/test-talon-e2e/package.json
+++ b/packages/test-talon-e2e/package.json
@@ -1,5 +1,5 @@
{
- "name": "@cursorless/lib-talon-e2e",
+ "name": "@cursorless/test-talon-e2e",
"version": "1.0.0",
"description": "Our Talon everywhere/JS end-to-end tests",
"license": "MIT",
diff --git a/packages/test-vscode-e2e/src/suite/keyboard/basic.vscode.test.ts b/packages/test-vscode-e2e/src/suite/keyboard/basic.vscode.test.ts
index 730d293e6f..01988f7d52 100644
--- a/packages/test-vscode-e2e/src/suite/keyboard/basic.vscode.test.ts
+++ b/packages/test-vscode-e2e/src/suite/keyboard/basic.vscode.test.ts
@@ -320,7 +320,7 @@ async function injectFakes(): Promise {
const keyboardConfigPath = path.join(
getCursorlessRepoRoot(),
- "packages/cursorless-vscode/src/keyboard/keyboard-config.fixture.json",
+ "packages/app-vscode/src/keyboard/keyboard-config.fixture.json",
);
const keyboardConfig = JSON.parse(await readFile(keyboardConfigPath, "utf8"));
diff --git a/scripts/build-and-assemble-website.sh b/scripts/build-and-assemble-website.sh
index c111d54099..107b76fa54 100755
--- a/scripts/build-and-assemble-website.sh
+++ b/scripts/build-and-assemble-website.sh
@@ -22,7 +22,7 @@ rm -rf "$root_dir"
mkdir -p "$root_dir"
mkdir -p "$docs_dir"
-cp -r packages/cursorless-org/out/* "$root_dir"
-cp -r packages/cursorless-org-docs/build/* "$docs_dir"
-cp packages/cursorless-vscode/out/railroad.html "$root_dir/keyboard-modal-railroad.html"
-cp packages/cursorless-engine/out/railroad.html "$root_dir/custom-command-railroad.html"
+cp -r packages/app-web/out/* "$root_dir"
+cp -r packages/app-web-docs/build/* "$docs_dir"
+cp packages/app-vscode/out/railroad.html "$root_dir/keyboard-modal-railroad.html"
+cp packages/lib-engine/out/railroad.html "$root_dir/custom-command-railroad.html"
diff --git a/scripts/deploy-cursorless-nvim.sh b/scripts/deploy-cursorless-nvim.sh
index 188f336218..48fd709089 100755
--- a/scripts/deploy-cursorless-nvim.sh
+++ b/scripts/deploy-cursorless-nvim.sh
@@ -27,8 +27,8 @@ rsync -avhW --no-compress --exclude test --exclude .busted cursorless.nvim/ "$st
# Copy the built .js file
mkdir -p "$staging_dir/node/cursorless-neovim/out"
-cp packages/cursorless-neovim/package.json "$staging_dir/node/cursorless-neovim/"
-cp packages/cursorless-neovim/out/index.cjs "$staging_dir/node/cursorless-neovim/out/"
+cp packages/app-neovim/package.json "$staging_dir/node/cursorless-neovim/"
+cp packages/app-neovim/out/index.cjs "$staging_dir/node/cursorless-neovim/out/"
# Extract commit message and body
commit_message="$(git log -1 --pretty=format:"%s" HEAD)"
From 29abaf56e4406e22877d19794347655e70a5258e Mon Sep 17 00:00:00 2001
From: Andreas Arvidsson
Date: Thu, 19 Mar 2026 11:51:27 +0100
Subject: [PATCH 18/24] neovim test runner
---
.gitignore | 2 +-
cursorless.nvim/lua/cursorless/init.lua | 2 +-
packages/app-neovim/scripts/populate-dist.sh | 6 +++---
.../contributing/architecture/neovim-test-infrastructure.md | 4 ++--
.../src/docs/contributing/cursorless-in-neovim.md | 2 +-
packages/test-neovim-e2e/src/suite/recorded.neovim.test.ts | 2 +-
packages/test-runner/src/testSubset.ts | 4 ++--
7 files changed, 11 insertions(+), 11 deletions(-)
diff --git a/.gitignore b/.gitignore
index 839dc8aef5..0d8154a6e7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -16,4 +16,4 @@ packages/test-runner/failedTests.properties
# cursorless-neovim
cursorless.nvim/node/cursorless-neovim
-cursorless.nvim/node/test-harness
+cursorless.nvim/node/test-runner
diff --git a/cursorless.nvim/lua/cursorless/init.lua b/cursorless.nvim/lua/cursorless/init.lua
index e86114113a..92b4faed28 100644
--- a/cursorless.nvim/lua/cursorless/init.lua
+++ b/cursorless.nvim/lua/cursorless/init.lua
@@ -36,7 +36,7 @@ local function register_functions()
},
}
)
- vim.fn["remote#host#RegisterPlugin"]("node", path .. "/node/test-harness/", {
+ vim.fn["remote#host#RegisterPlugin"]("node", path .. "/node/test-runner/", {
{
type = "function",
name = "TestHarnessRun",
diff --git a/packages/app-neovim/scripts/populate-dist.sh b/packages/app-neovim/scripts/populate-dist.sh
index dbe7872190..cfa534483c 100644
--- a/packages/app-neovim/scripts/populate-dist.sh
+++ b/packages/app-neovim/scripts/populate-dist.sh
@@ -24,8 +24,8 @@ if [[ "${CI:-x}" == "true" ]]; then
cp "$cursorless_neovim_node_in_dir/package.json" "$cursorless_neovim_node_out_dir"
cp "$cursorless_neovim_node_in_dir/out/index.cjs" "$cursorless_neovim_node_out_dir/out"
- # Populate test-harness
- test_harness_node_out_dir="$cursorless_nvim_dist_dir/node/test-harness"
+ # Populate test-runner
+ test_harness_node_out_dir="$cursorless_nvim_dist_dir/node/test-runner"
mkdir -p "$test_harness_node_out_dir/out"
cp "$test_harness_node_in_dir/package.json" "$test_harness_node_out_dir"
cp "$test_harness_node_in_dir/out/extensionTestsNeovim.cjs" "$test_harness_node_out_dir/out"
@@ -43,7 +43,7 @@ else
rm -rf "$cursorless_neovim_node_out_dir"
ln -s "$cursorless_neovim_node_in_dir" "$cursorless_neovim_node_out_dir"
- test_harness_node_out_dir="$cursorless_nvim_dir/node/test-harness"
+ test_harness_node_out_dir="$cursorless_nvim_dir/node/test-runner"
rm -rf "$test_harness_node_out_dir"
ln -s "$test_harness_node_in_dir" "$test_harness_node_out_dir"
fi
diff --git a/packages/app-web-docs/src/docs/contributing/architecture/neovim-test-infrastructure.md b/packages/app-web-docs/src/docs/contributing/architecture/neovim-test-infrastructure.md
index b72a033683..17e9c80661 100644
--- a/packages/app-web-docs/src/docs/contributing/architecture/neovim-test-infrastructure.md
+++ b/packages/app-web-docs/src/docs/contributing/architecture/neovim-test-infrastructure.md
@@ -135,7 +135,7 @@ local function register_functions()
},
}
)
- vim.fn["remote#host#RegisterPlugin"]("node", path .. "/node/test-harness/", {
+ vim.fn["remote#host#RegisterPlugin"]("node", path .. "/node/test-runner/", {
{
type = "function",
name = "TestHarnessRun",
@@ -159,7 +159,7 @@ local function load_extensions()
However, because `nvim` was started with `"NVIM_NODE_HOST_DEBUG": "1"`, when `node` is spawned, `node` will hang and wait for a debugger to attach (`--inspect-brk`). Consequently, `nvim` won't finish loading yet (i.e. it won't finish loading `init.lua`).
-This is handy because it allows VSCode to finish all the tasks required for building the Cursorless neovim plugin (`cursorless-neovim`) and the Tests neovim plugin (`test-harness`), which will finally trigger VSCode to attach to the `node` process.
+This is handy because it allows VSCode to finish all the tasks required for building the Cursorless neovim plugin (`cursorless-neovim`) and the Tests neovim plugin (`test-runner`), which will finally trigger VSCode to attach to the `node` process.
When VSCode attaches to the `node` process, `CursorlessLoadExtension()` is called to load the Cursorles neovim plugin and `TestHarnessRun()` is called to start the tests.
diff --git a/packages/app-web-docs/src/docs/contributing/cursorless-in-neovim.md b/packages/app-web-docs/src/docs/contributing/cursorless-in-neovim.md
index 6f59f4156d..84d694ffae 100644
--- a/packages/app-web-docs/src/docs/contributing/cursorless-in-neovim.md
+++ b/packages/app-web-docs/src/docs/contributing/cursorless-in-neovim.md
@@ -30,7 +30,7 @@ Open a `cmd.exe` with Administrator privileges and create the symbolic links bet
```bat
mklink /D C:\path\to\cursorless\cursorless.nvim\node\cursorless-neovim C:\path\to\cursorless\packages\cursorless-neovim
-mklink /D C:\path\to\cursorless\cursorless.nvim\node\test-harness C:\path\to\cursorless\packages\test-harness
+mklink /D C:\path\to\cursorless\cursorless.nvim\node\test-runner C:\path\to\cursorless\packages\test-runner
```
Note that the `C:\path\to\cursorless` path above should match your cloned cursorless repository.
diff --git a/packages/test-neovim-e2e/src/suite/recorded.neovim.test.ts b/packages/test-neovim-e2e/src/suite/recorded.neovim.test.ts
index 064fe0c620..d9a3a5192e 100644
--- a/packages/test-neovim-e2e/src/suite/recorded.neovim.test.ts
+++ b/packages/test-neovim-e2e/src/suite/recorded.neovim.test.ts
@@ -31,7 +31,7 @@ suite("recorded test cases", async function () {
name,
asyncSafety(async () => {
/**
- * The neovim client is set by the test runner in test-harness/src/index.ts into the global object.
+ * The neovim client is set by the test runner in test-runner/src/index.ts into the global object.
* This allows us to access it in the tests that are executed through mocha.
*/
const client = (global as any).additionalParameters.client;
diff --git a/packages/test-runner/src/testSubset.ts b/packages/test-runner/src/testSubset.ts
index 41e8cc0921..a7dad16e1e 100644
--- a/packages/test-runner/src/testSubset.ts
+++ b/packages/test-runner/src/testSubset.ts
@@ -24,7 +24,7 @@ export function testSubsetFilePath() {
return path.join(
getCursorlessRepoRoot(),
"packages",
- "test-harness",
+ "test-runner",
"testSubsetGrep.properties",
);
}
@@ -33,7 +33,7 @@ function testFailedFilePath() {
return path.join(
getCursorlessRepoRoot(),
"packages",
- "test-harness",
+ "test-runner",
"failedTests.properties",
);
}
From 87301f30f2c78745ee8e8889f1b722a59178733a Mon Sep 17 00:00:00 2001
From: Andreas Arvidsson
Date: Thu, 19 Mar 2026 12:21:21 +0100
Subject: [PATCH 19/24] More updates
---
.github/workflows/deploy.yml | 4 +-
.github/workflows/test.yml | 4 +-
README.md | 4 +-
cursorless-talon/README.md | 4 +-
cursorless.nvim/lua/cursorless/init.lua | 2 +-
netlify.toml | 2 +-
packages/app-neovim/src/extension.ts | 2 +-
packages/app-vscode/package.json | 2 +-
packages/app-vscode/src/VscodeTutorial.ts | 2 +-
.../src/keyboard/grammar/generated/grammar.ts | 345 +++++-------------
.../src/scripts/populateDist/assets.ts | 6 +-
packages/app-web-docs/README.md | 2 +-
.../src/docs/contributing/CONTRIBUTING.mdx | 6 +-
.../architecture/package-scripts.md | 8 +-
.../src/docs/contributing/cheatsheet.md | 2 +-
.../app-web/scripts/mac-serve-bind-external | 20 -
packages/lib-cheatsheet-local/README.md | 4 +-
.../src/launchNeovimAndRunTests.ts | 12 +-
scripts/build-and-assemble-website.sh | 6 +-
scripts/deploy-cursorless-talon.sh | 2 +-
20 files changed, 120 insertions(+), 319 deletions(-)
delete mode 100644 packages/app-web/scripts/mac-serve-bind-external
diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml
index dc4c0c34d4..ae159f8ed1 100644
--- a/.github/workflows/deploy.yml
+++ b/.github/workflows/deploy.yml
@@ -28,7 +28,7 @@ jobs:
uses: ./.github/actions/setup-node
- name: Build
- run: pnpm --color --filter '!cursorless-org' --filter '!cursorless-org-*' build
+ run: pnpm --color -F '!@cursorless/app-web' -F '!@cursorless/app-web-docs' build
env:
CURSORLESS_DEPLOY: true
@@ -67,7 +67,7 @@ jobs:
uses: ./.github/actions/setup-node
- name: Build
- run: pnpm --color --filter '!cursorless-org' --filter '!cursorless-org-*' build
+ run: pnpm --color -F '!@cursorless/app-web' -F '!@cursorless/app-web-docs' build
env:
CURSORLESS_DEPLOY: true
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index 45f1189de8..ee24f5bab0 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -76,7 +76,7 @@ jobs:
shell: bash
- name: Build
- run: pnpm --color --filter '!cursorless-org' --filter '!cursorless-org-*' build
+ run: pnpm --color -F '!@cursorless/app-web' -F '!@cursorless/app-web-docs' build
- name: Run unit tests (Linux)
run: xvfb-run -a pnpm --color test
@@ -161,7 +161,7 @@ jobs:
uses: ./.github/actions/setup-node
- name: Build
- run: pnpm --color --filter '!cursorless-org' --filter '!cursorless-org-*' build
+ run: pnpm --color -F '!@cursorless/app-web' -F '!@cursorless/app-web-docs' build
- name: Install neovim dependencies
run: bash -x scripts/install-neovim-dependencies.sh
diff --git a/README.md b/README.md
index d12a380091..6700039908 100644
--- a/README.md
+++ b/README.md
@@ -7,13 +7,13 @@
-
+
-
+
diff --git a/cursorless-talon/README.md b/cursorless-talon/README.md
index 244af37ac0..06186821c5 100644
--- a/cursorless-talon/README.md
+++ b/cursorless-talon/README.md
@@ -7,13 +7,13 @@
-
+
-
+
diff --git a/cursorless.nvim/lua/cursorless/init.lua b/cursorless.nvim/lua/cursorless/init.lua
index 92b4faed28..6226399ed9 100644
--- a/cursorless.nvim/lua/cursorless/init.lua
+++ b/cursorless.nvim/lua/cursorless/init.lua
@@ -47,7 +47,7 @@ local function register_functions()
end
-- this triggers loading the node process as well as calling one function
--- in the cursorless-neovim, command-server and neovim-registry extensions
+-- in the cursorless-neovim, command-server and lib-neovim-registry extensions
-- in order to initialize them
local function load_extensions()
vim.fn.CursorlessLoadExtension()
diff --git a/netlify.toml b/netlify.toml
index 5a2000d804..8545f90866 100644
--- a/netlify.toml
+++ b/netlify.toml
@@ -4,4 +4,4 @@
[build]
command = "./scripts/build-and-assemble-website.sh"
- publish = "dist/cursorless-org"
+ publish = "dist/app-web"
diff --git a/packages/app-neovim/src/extension.ts b/packages/app-neovim/src/extension.ts
index ba1d273859..b667e0581f 100644
--- a/packages/app-neovim/src/extension.ts
+++ b/packages/app-neovim/src/extension.ts
@@ -15,7 +15,7 @@ import { registerCommands } from "./registerCommands";
/**
* This function is called from cursorless.nvim to initialize the Cursorless engine.
* NOTE: this is not the cursorless-neovim extension entrypoint (which is called at Neovim startup)
- * We named it activate() in order to have the same structure as the extension entrypoint to match cursorless-vscode
+ * We named it activate() in order to have the same structure as the extension entrypoint to match app-vscode
*/
export async function activate(plugin: NvimPlugin) {
const client = plugin.nvim as NeovimClient;
diff --git a/packages/app-vscode/package.json b/packages/app-vscode/package.json
index eca67e44a1..3af5c95f96 100644
--- a/packages/app-vscode/package.json
+++ b/packages/app-vscode/package.json
@@ -45,7 +45,7 @@
"description": "Documentation"
},
{
- "url": "https://img.shields.io/github/workflow/status/cursorless-dev/cursorless-vscode/Run%20Tests?logo=github&label=tests",
+ "url": "https://img.shields.io/github/actions/workflow/status/cursorless-dev/cursorless/test.yml?branch=main&logo=github&label=tests",
"href": "https://github.com/cursorless-dev/cursorless/actions/workflows/test.yml?query=branch%3Amain",
"description": "Tests"
}
diff --git a/packages/app-vscode/src/VscodeTutorial.ts b/packages/app-vscode/src/VscodeTutorial.ts
index 960b34cb92..d6748f50fc 100644
--- a/packages/app-vscode/src/VscodeTutorial.ts
+++ b/packages/app-vscode/src/VscodeTutorial.ts
@@ -46,7 +46,7 @@ export class VscodeTutorial implements WebviewViewProvider {
path.join(
getCursorlessRepoRoot(),
"packages",
- "cursorless-vscode-tutorial-webview",
+ "lib-vscode-tutorial-webview",
"out",
),
)
diff --git a/packages/app-vscode/src/keyboard/grammar/generated/grammar.ts b/packages/app-vscode/src/keyboard/grammar/generated/grammar.ts
index cc30f0df0e..19cd2a77e3 100644
--- a/packages/app-vscode/src/keyboard/grammar/generated/grammar.ts
+++ b/packages/app-vscode/src/keyboard/grammar/generated/grammar.ts
@@ -2,9 +2,7 @@
// http://github.com/Hardmath123/nearley
// Bypasses TS6133. Allow declared but unused functions.
// @ts-ignore
-function id(d: any[]): any {
- return d[0];
-}
+function id(d: any[]): any { return d[0]; }
declare var targetingMode: any;
declare var simpleAction: any;
declare var wrap: any;
@@ -22,8 +20,8 @@ declare var combineColorAndShape: any;
declare var direction: any;
declare var digit: any;
-import { capture, UNUSED as _, argPositions } from "@cursorless/lib-engine";
-import { command } from "../command";
+import { capture, UNUSED as _, argPositions } from "@cursorless/lib-engine"
+import { command } from "../command"
import { keyboardLexer } from "../keyboardLexer";
import { RelativeScopeModifier } from "@cursorless/lib-common";
@@ -32,7 +30,7 @@ const { $0, $1, $2 } = argPositions;
interface NearleyToken {
value: any;
[key: string]: any;
-}
+};
interface NearleyLexer {
reset: (chunk: any, info: any) => void;
@@ -40,277 +38,100 @@ interface NearleyLexer {
save: () => any;
formatError: (token: any, message: string) => string;
has: (tokenType: any) => boolean;
-}
+};
interface NearleyRule {
name: string;
symbols: NearleySymbol[];
postprocess?: (d: any[], loc?: number, reject?: {}) => any;
-}
+};
-type NearleySymbol =
- | string
- | { literal: any }
- | { test: (token: any) => boolean };
+type NearleySymbol = string | { literal: any } | { test: (token: any) => boolean };
interface Grammar {
Lexer: NearleyLexer | undefined;
ParserRules: NearleyRule[];
ParserStart: string;
-}
+};
const grammar: Grammar = {
Lexer: keyboardLexer,
ParserRules: [
- {
- name: "main$ebnf$1",
- symbols: [
- keyboardLexer.has("targetingMode")
- ? { type: "targetingMode" }
- : targetingMode,
- ],
- postprocess: id,
- },
- { name: "main$ebnf$1", symbols: [], postprocess: () => null },
- {
- name: "main",
- symbols: ["main$ebnf$1", "decoratedMark"],
- postprocess: command(
- "targetDecoratedMark",
- ([targetingMode, decoratedMark]) => ({
- decoratedMark,
- mode: targetingMode ?? "replace",
- }),
- ),
- },
- {
- name: "main$ebnf$2",
- symbols: [
- keyboardLexer.has("targetingMode")
- ? { type: "targetingMode" }
- : targetingMode,
- ],
- postprocess: id,
- },
- { name: "main$ebnf$2", symbols: [], postprocess: () => null },
- {
- name: "main",
- symbols: ["main$ebnf$2", "mark"],
- postprocess: command("targetMark", ([targetingMode, mark]) => ({
- mark,
- mode: targetingMode ?? "replace",
- })),
- },
- {
- name: "main$ebnf$3",
- symbols: [
- keyboardLexer.has("targetingMode")
- ? { type: "targetingMode" }
- : targetingMode,
- ],
- postprocess: id,
- },
- { name: "main$ebnf$3", symbols: [], postprocess: () => null },
- {
- name: "main",
- symbols: ["main$ebnf$3", "modifier"],
- postprocess: command("modifyTarget", ([targetingMode, modifier]) => ({
- modifier,
- mode: targetingMode ?? "replace",
- })),
- },
- {
- name: "main",
- symbols: [
- keyboardLexer.has("simpleAction")
- ? { type: "simpleAction" }
- : simpleAction,
- ],
- postprocess: command("performSimpleActionOnTarget", ["actionDescriptor"]),
- },
- {
- name: "main",
- symbols: [
- keyboardLexer.has("wrap") ? { type: "wrap" } : wrap,
- keyboardLexer.has("pairedDelimiter")
- ? { type: "pairedDelimiter" }
- : pairedDelimiter,
- ],
- postprocess: command("performWrapActionOnTarget", [
- "actionDescriptor",
- "delimiter",
- ]),
- },
- {
- name: "main",
- symbols: [
- keyboardLexer.has("vscodeCommand")
- ? { type: "vscodeCommand" }
- : vscodeCommand,
- ],
- postprocess: command("vscodeCommand", ["command"]),
- },
- {
- name: "modifier",
- symbols: [
- keyboardLexer.has("simpleModifier")
- ? { type: "simpleModifier" }
- : simpleModifier,
- ],
- postprocess: capture({ type: $0 }),
- },
- {
- name: "modifier",
- symbols: [
- keyboardLexer.has("headTail") ? { type: "headTail" } : headTail,
- "modifier",
- ],
- postprocess: ([type, modifier]) => ({ type, modifiers: [modifier] }),
- },
- {
- name: "modifier",
- symbols: ["scopeType"],
- postprocess: capture({ type: "containingScope", scopeType: $0 }),
- },
- {
- name: "modifier",
- symbols: [
- keyboardLexer.has("every") ? { type: "every" } : every,
- "scopeType",
- ],
- postprocess: capture({ type: "everyScope", scopeType: $1 }),
- },
- { name: "modifier$ebnf$1", symbols: ["offset"], postprocess: id },
- { name: "modifier$ebnf$1", symbols: [], postprocess: () => null },
- { name: "modifier$ebnf$2", symbols: ["number"], postprocess: id },
- { name: "modifier$ebnf$2", symbols: [], postprocess: () => null },
- {
- name: "modifier",
- symbols: [
- "modifier$ebnf$1",
- keyboardLexer.has("nextPrev") ? { type: "nextPrev" } : nextPrev,
- "modifier$ebnf$2",
- "scopeType",
- ],
- postprocess: ([offset, _, length, scopeType]): RelativeScopeModifier => ({
- type: "relativeScope",
- offset: offset?.number ?? 1,
- direction: offset?.direction ?? "forward",
- length: length ?? 1,
- scopeType,
- }),
- },
- {
- name: "modifier",
- symbols: ["offset", "scopeType"],
- postprocess: ([offset, scopeType]): RelativeScopeModifier => ({
- type: "relativeScope",
- offset: 0,
- direction: offset?.direction ?? "forward",
- length: offset?.number ?? 1,
- scopeType,
- }),
- },
- {
- name: "scopeType",
- symbols: [
- keyboardLexer.has("simpleScopeTypeType")
- ? { type: "simpleScopeTypeType" }
- : simpleScopeTypeType,
- ],
- postprocess: capture("type"),
- },
- {
- name: "scopeType",
- symbols: [
- keyboardLexer.has("pairedDelimiter")
- ? { type: "pairedDelimiter" }
- : pairedDelimiter,
- ],
- postprocess: ([delimiter]) => ({ type: "surroundingPair", delimiter }),
- },
- {
- name: "mark",
- symbols: [
- keyboardLexer.has("simpleSpecialMark")
- ? { type: "simpleSpecialMark" }
- : simpleSpecialMark,
- ],
- postprocess: capture({ type: $0 }),
- },
- {
- name: "decoratedMark",
- symbols: [keyboardLexer.has("color") ? { type: "color" } : color],
- postprocess: capture("color"),
- },
- {
- name: "decoratedMark",
- symbols: [keyboardLexer.has("shape") ? { type: "shape" } : shape],
- postprocess: capture("shape"),
- },
- {
- name: "decoratedMark",
- symbols: [
- keyboardLexer.has("combineColorAndShape")
- ? { type: "combineColorAndShape" }
- : combineColorAndShape,
- keyboardLexer.has("color") ? { type: "color" } : color,
- keyboardLexer.has("shape") ? { type: "shape" } : shape,
- ],
- postprocess: capture(_, "color", "shape"),
- },
- {
- name: "decoratedMark",
- symbols: [
- keyboardLexer.has("combineColorAndShape")
- ? { type: "combineColorAndShape" }
- : combineColorAndShape,
- keyboardLexer.has("shape") ? { type: "shape" } : shape,
- keyboardLexer.has("color") ? { type: "color" } : color,
- ],
- postprocess: capture(_, "shape", "color"),
- },
- {
- name: "offset$ebnf$1",
- symbols: [
- keyboardLexer.has("direction") ? { type: "direction" } : direction,
- ],
- postprocess: id,
- },
- { name: "offset$ebnf$1", symbols: [], postprocess: () => null },
- {
- name: "offset",
- symbols: ["offset$ebnf$1", "number"],
- postprocess: capture("direction", "number"),
- },
- { name: "offset$ebnf$2", symbols: ["number"], postprocess: id },
- { name: "offset$ebnf$2", symbols: [], postprocess: () => null },
- {
- name: "offset",
- symbols: [
- "offset$ebnf$2",
- keyboardLexer.has("direction") ? { type: "direction" } : direction,
- ],
- postprocess: capture("number", "direction"),
- },
- {
- name: "number$ebnf$1",
- symbols: [keyboardLexer.has("digit") ? { type: "digit" } : digit],
- },
- {
- name: "number$ebnf$1",
- symbols: [
- "number$ebnf$1",
- keyboardLexer.has("digit") ? { type: "digit" } : digit,
- ],
- postprocess: (d) => d[0].concat([d[1]]),
- },
- {
- name: "number",
- symbols: ["number$ebnf$1"],
- postprocess: ([digits]) =>
- digits.reduce((total: number, digit: number) => total * 10 + digit, 0),
- },
+ {"name": "main$ebnf$1", "symbols": [(keyboardLexer.has("targetingMode") ? {type: "targetingMode"} : targetingMode)], "postprocess": id},
+ {"name": "main$ebnf$1", "symbols": [], "postprocess": () => null},
+ {"name": "main", "symbols": ["main$ebnf$1", "decoratedMark"], "postprocess":
+ command(
+ "targetDecoratedMark",
+ ([targetingMode, decoratedMark]) => ({ decoratedMark, mode: targetingMode ?? "replace" })
+ )
+ },
+ {"name": "main$ebnf$2", "symbols": [(keyboardLexer.has("targetingMode") ? {type: "targetingMode"} : targetingMode)], "postprocess": id},
+ {"name": "main$ebnf$2", "symbols": [], "postprocess": () => null},
+ {"name": "main", "symbols": ["main$ebnf$2", "mark"], "postprocess":
+ command("targetMark", ([targetingMode, mark]) => ({ mark, mode: targetingMode ?? "replace" }))
+ },
+ {"name": "main$ebnf$3", "symbols": [(keyboardLexer.has("targetingMode") ? {type: "targetingMode"} : targetingMode)], "postprocess": id},
+ {"name": "main$ebnf$3", "symbols": [], "postprocess": () => null},
+ {"name": "main", "symbols": ["main$ebnf$3", "modifier"], "postprocess":
+ command(
+ "modifyTarget",
+ ([targetingMode, modifier]) => ({ modifier, mode: targetingMode ?? "replace" })
+ )
+ },
+ {"name": "main", "symbols": [(keyboardLexer.has("simpleAction") ? {type: "simpleAction"} : simpleAction)], "postprocess": command("performSimpleActionOnTarget", ["actionDescriptor"])},
+ {"name": "main", "symbols": [(keyboardLexer.has("wrap") ? {type: "wrap"} : wrap), (keyboardLexer.has("pairedDelimiter") ? {type: "pairedDelimiter"} : pairedDelimiter)], "postprocess":
+ command("performWrapActionOnTarget", ["actionDescriptor", "delimiter"])
+ },
+ {"name": "main", "symbols": [(keyboardLexer.has("vscodeCommand") ? {type: "vscodeCommand"} : vscodeCommand)], "postprocess": command("vscodeCommand", ["command"])},
+ {"name": "modifier", "symbols": [(keyboardLexer.has("simpleModifier") ? {type: "simpleModifier"} : simpleModifier)], "postprocess": capture({ type: $0 })},
+ {"name": "modifier", "symbols": [(keyboardLexer.has("headTail") ? {type: "headTail"} : headTail), "modifier"], "postprocess":
+ ([type, modifier]) => ({ type, modifiers: [modifier] })
+ },
+ {"name": "modifier", "symbols": ["scopeType"], "postprocess": capture({ type: "containingScope", scopeType: $0 })},
+ {"name": "modifier", "symbols": [(keyboardLexer.has("every") ? {type: "every"} : every), "scopeType"], "postprocess": capture({ type: "everyScope", scopeType: $1 })},
+ {"name": "modifier$ebnf$1", "symbols": ["offset"], "postprocess": id},
+ {"name": "modifier$ebnf$1", "symbols": [], "postprocess": () => null},
+ {"name": "modifier$ebnf$2", "symbols": ["number"], "postprocess": id},
+ {"name": "modifier$ebnf$2", "symbols": [], "postprocess": () => null},
+ {"name": "modifier", "symbols": ["modifier$ebnf$1", (keyboardLexer.has("nextPrev") ? {type: "nextPrev"} : nextPrev), "modifier$ebnf$2", "scopeType"], "postprocess":
+ ([offset, _, length, scopeType]): RelativeScopeModifier => ({
+ type: "relativeScope",
+ offset: offset?.number ?? 1,
+ direction: offset?.direction ?? "forward",
+ length: length ?? 1,
+ scopeType,
+ })
+ },
+ {"name": "modifier", "symbols": ["offset", "scopeType"], "postprocess":
+ ([offset, scopeType]): RelativeScopeModifier => ({
+ type: "relativeScope",
+ offset: 0,
+ direction: offset?.direction ?? "forward",
+ length: offset?.number ?? 1,
+ scopeType,
+ })
+ },
+ {"name": "scopeType", "symbols": [(keyboardLexer.has("simpleScopeTypeType") ? {type: "simpleScopeTypeType"} : simpleScopeTypeType)], "postprocess": capture("type")},
+ {"name": "scopeType", "symbols": [(keyboardLexer.has("pairedDelimiter") ? {type: "pairedDelimiter"} : pairedDelimiter)], "postprocess":
+ ([delimiter]) => ({ type: "surroundingPair", delimiter })
+ },
+ {"name": "mark", "symbols": [(keyboardLexer.has("simpleSpecialMark") ? {type: "simpleSpecialMark"} : simpleSpecialMark)], "postprocess": capture({ type: $0 })},
+ {"name": "decoratedMark", "symbols": [(keyboardLexer.has("color") ? {type: "color"} : color)], "postprocess": capture("color")},
+ {"name": "decoratedMark", "symbols": [(keyboardLexer.has("shape") ? {type: "shape"} : shape)], "postprocess": capture("shape")},
+ {"name": "decoratedMark", "symbols": [(keyboardLexer.has("combineColorAndShape") ? {type: "combineColorAndShape"} : combineColorAndShape), (keyboardLexer.has("color") ? {type: "color"} : color), (keyboardLexer.has("shape") ? {type: "shape"} : shape)], "postprocess": capture(_, "color", "shape")},
+ {"name": "decoratedMark", "symbols": [(keyboardLexer.has("combineColorAndShape") ? {type: "combineColorAndShape"} : combineColorAndShape), (keyboardLexer.has("shape") ? {type: "shape"} : shape), (keyboardLexer.has("color") ? {type: "color"} : color)], "postprocess": capture(_, "shape", "color")},
+ {"name": "offset$ebnf$1", "symbols": [(keyboardLexer.has("direction") ? {type: "direction"} : direction)], "postprocess": id},
+ {"name": "offset$ebnf$1", "symbols": [], "postprocess": () => null},
+ {"name": "offset", "symbols": ["offset$ebnf$1", "number"], "postprocess": capture("direction", "number")},
+ {"name": "offset$ebnf$2", "symbols": ["number"], "postprocess": id},
+ {"name": "offset$ebnf$2", "symbols": [], "postprocess": () => null},
+ {"name": "offset", "symbols": ["offset$ebnf$2", (keyboardLexer.has("direction") ? {type: "direction"} : direction)], "postprocess": capture("number", "direction")},
+ {"name": "number$ebnf$1", "symbols": [(keyboardLexer.has("digit") ? {type: "digit"} : digit)]},
+ {"name": "number$ebnf$1", "symbols": ["number$ebnf$1", (keyboardLexer.has("digit") ? {type: "digit"} : digit)], "postprocess": (d) => d[0].concat([d[1]])},
+ {"name": "number", "symbols": ["number$ebnf$1"], "postprocess":
+ ([digits]) =>
+ digits.reduce((total: number, digit: number) => total * 10 + digit, 0)
+ }
],
ParserStart: "main",
};
diff --git a/packages/app-vscode/src/scripts/populateDist/assets.ts b/packages/app-vscode/src/scripts/populateDist/assets.ts
index 5cea6271a6..4f64935a62 100644
--- a/packages/app-vscode/src/scripts/populateDist/assets.ts
+++ b/packages/app-vscode/src/scripts/populateDist/assets.ts
@@ -8,7 +8,7 @@ export const assets: Asset[] = [
{ source: "../../NOTICE.md", destination: "NOTICE.md" },
{ source: "../../README.md", destination: "README.md" },
{
- source: "../cheatsheet-local/out/index.html",
+ source: "../lib-cheatsheet-local/out/index.html",
destination: "cheatsheet.html",
// We allow this to be optional in dev mode because it is expensive to
// build, and is only used when they say "cursorless cheatsheet".
@@ -28,11 +28,11 @@ export const assets: Asset[] = [
destination: "tutorial",
},
{
- source: "../cursorless-vscode-tutorial-webview/out/index.js",
+ source: "../lib-vscode-tutorial-webview/out/index.js",
destination: "media/tutorialWebview.js",
},
{
- source: "../cursorless-vscode-tutorial-webview/out/index.css",
+ source: "../lib-vscode-tutorial-webview/out/index.css",
destination: "media/tutorialWebview.css",
},
{ source: "./images/logo.png", destination: "images/logo.png" },
diff --git a/packages/app-web-docs/README.md b/packages/app-web-docs/README.md
index 48ab4531d7..3a1c61713c 100644
--- a/packages/app-web-docs/README.md
+++ b/packages/app-web-docs/README.md
@@ -1,6 +1,6 @@
# cursorless.org docs site
-This is the source code for the [cursorless.org/docs](https://cursorless.org/docs) portion of the Cursorless website. Note that it is built independently from the rest of the site (which uses Next.js, and can be found in the [`cursorless-org`](../cursorless-org) directory).
+This is the source code for the [cursorless.org/docs](https://cursorless.org/docs) portion of the Cursorless website. Note that it is built independently from the rest of the site (which uses Next.js, and can be found in the [`app-web`](../app-web) directory).
This website is built using [Docusaurus 2](https://docusaurus.io/), a modern static website generator.
diff --git a/packages/app-web-docs/src/docs/contributing/CONTRIBUTING.mdx b/packages/app-web-docs/src/docs/contributing/CONTRIBUTING.mdx
index 414591f6af..774b0d47a9 100644
--- a/packages/app-web-docs/src/docs/contributing/CONTRIBUTING.mdx
+++ b/packages/app-web-docs/src/docs/contributing/CONTRIBUTING.mdx
@@ -192,7 +192,7 @@ Once you have your package then you can install it into the sandbox using the fo
You can install a local build of the Cursorless extension by running the following command:
```bash
-pnpm -F cursorless-vscode install-local
+pnpm -F @cursorless/app-vscode install-local
```
This will bundle and install a local version of Cursorless, uninstalling production Cursorless first and using a special extension id to break the update chain.
@@ -203,13 +203,13 @@ download and install the artifact from the PR build. This requires the [`gh`
cli](https://cli.github.com/). For example:
```bash
-pnpm -F cursorless-vscode install-from-pr 1281
+pnpm -F @cursorless/app-vscode install-from-pr 1281
```
To uninstall the local build and revert to production cursorless, run the following command:
```bash
-pnpm -F cursorless-vscode uninstall-local
+pnpm -F @cursorless/app-vscode uninstall-local
```
## Regular manual maintenance tasks
diff --git a/packages/app-web-docs/src/docs/contributing/architecture/package-scripts.md b/packages/app-web-docs/src/docs/contributing/architecture/package-scripts.md
index a35316eccf..399b0c09b3 100644
--- a/packages/app-web-docs/src/docs/contributing/architecture/package-scripts.md
+++ b/packages/app-web-docs/src/docs/contributing/architecture/package-scripts.md
@@ -20,9 +20,9 @@ within this repository.
There are two important kinds of internal packages:
-- Source-only shared code packages, such as `common` or `cursorless-engine`
+- Source-only shared code packages, such as `lib-common` or `lib-engine`
- Internal asset packages, such as `cheatsheet-local` or
- `cursorless-vscode-tutorial-webview`
+ `lib-vscode-tutorial-webview`
### Source-only shared code packages
@@ -97,8 +97,8 @@ internal bundle-producing packages, its `build` script should invoke their
For example:
-- `cursorless-vscode build` is responsible for building the assets it embeds
-- `cursorless-neovim build` is responsible for building the support artifacts it
+- `app-vscode build` is responsible for building the assets it embeds
+- `app-neovim build` is responsible for building the support artifacts it
packages
### `dev`
diff --git a/packages/app-web-docs/src/docs/contributing/cheatsheet.md b/packages/app-web-docs/src/docs/contributing/cheatsheet.md
index c1db756117..e5355539a8 100644
--- a/packages/app-web-docs/src/docs/contributing/cheatsheet.md
+++ b/packages/app-web-docs/src/docs/contributing/cheatsheet.md
@@ -15,7 +15,7 @@ In either case, to get your changes to appear on the website, you need to update
To verify that your changes will work on the web cheatsheet, or if you need to make changes to the cheatsheet itself, such as updating the legend, you can run the cheatsheet locally using by running the following command:
```
-pnpm -F cursorless-org serve
+pnpm -F @cursorless/app-web serve
```
and then adding `/cheatsheet` to the preview URL. Changes should show up in realtime as you develop.
diff --git a/packages/app-web/scripts/mac-serve-bind-external b/packages/app-web/scripts/mac-serve-bind-external
deleted file mode 100644
index db7989eef2..0000000000
--- a/packages/app-web/scripts/mac-serve-bind-external
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/usr/bin/env bash
-# Runs the development server, binding to 0.0.0.0 so that it can be tested from
-# eg your mobile phone. Also copies the external URL. Only works on MacOS.
-set -euo pipefail
-
-if [[ $OSTYPE != 'darwin'* ]]; then
- echo "This script only works on MacOS"
- exit 1
-fi
-
-# From https://apple.stackexchange.com/a/147777
-ip_address=$(ifconfig | grep "inet " | grep -Fv 127.0.0.1 | awk '{print $2}')
-
-url="http://${ip_address}:4200/"
-
-echo -n "$url" | pbcopy
-echo "URL '${url}' copied to clipboard!"
-
-# From https://github.com/nrwl/nx/issues/2123#issuecomment-1048184095
-nx serve cursorless-org -- --hostname 0.0.0.0
diff --git a/packages/lib-cheatsheet-local/README.md b/packages/lib-cheatsheet-local/README.md
index 4a72cf7c4e..0e9663a771 100644
--- a/packages/lib-cheatsheet-local/README.md
+++ b/packages/lib-cheatsheet-local/README.md
@@ -1,8 +1,8 @@
# Local cheatsheet
-This app just bundles up the cheatsheet into a single file to be used when the user says `"cursorless cheatsheet"`. The file inlines all css and js so that it can be opened as a single file by the end user. During actual production use, Talon will send the user's custom spoken forms to the Cursorless engine, which will [inject them](../cursorless-engine/src/core/Cheatsheet.ts) into the cheatsheet using a global variable.
+This app just bundles up the cheatsheet into a single file to be used when the user says `"cursorless cheatsheet"`. The file inlines all css and js so that it can be opened as a single file by the end user. During actual production use, Talon will send the user's custom spoken forms to the Cursorless engine, which will [inject them](../lib-engine/src/core/Cheatsheet.ts) into the cheatsheet using a global variable.
-Note that there is no development server for this app. It is just a bundle step. If you want a live development environment for the cheatsheet, you should use the cheatsheet page in [the `cursorless-org` package](../cursorless-org).
+Note that there is no development server for this app. It is just a bundle step. If you want a live development environment for the cheatsheet, you should use the cheatsheet page in [the `app-web` package](../app-web).
## Tasks
diff --git a/packages/test-runner/src/launchNeovimAndRunTests.ts b/packages/test-runner/src/launchNeovimAndRunTests.ts
index fe88b35fa8..5f247a1641 100644
--- a/packages/test-runner/src/launchNeovimAndRunTests.ts
+++ b/packages/test-runner/src/launchNeovimAndRunTests.ts
@@ -96,11 +96,11 @@ export async function launchNeovimAndRunTests() {
await delay(5000);
console.log("listing cursorless-neovim/out/:");
- readdirSync(
- `${getCursorlessRepoRoot()}/packages/app-neovim/out/`,
- ).forEach((file) => {
- console.log(`\t${file}`);
- });
+ readdirSync(`${getCursorlessRepoRoot()}/packages/app-neovim/out/`).forEach(
+ (file) => {
+ console.log(`\t${file}`);
+ },
+ );
await delay(10000);
@@ -163,7 +163,7 @@ export async function launchNeovimAndRunTests() {
console.log(`killed: ${subprocess.killed}`);
// XXX - code to replace above code, needs more testing
- // code from packages\cursorless-vscode\src\scripts\initLaunchSandbox.ts
+ // code from packages/app-vscode/src/scripts/initLaunchSandbox.ts
// await new Promise((resolve, reject) => {
// subprocess.on("error", reject);
// subprocess.on("exit", (code) => {
diff --git a/scripts/build-and-assemble-website.sh b/scripts/build-and-assemble-website.sh
index 107b76fa54..f933fed30b 100755
--- a/scripts/build-and-assemble-website.sh
+++ b/scripts/build-and-assemble-website.sh
@@ -5,8 +5,8 @@ pnpm install
NODE_OPTIONS="--max-old-space-size=6144" \
pnpm \
- -F 'cursorless-org' \
- -F 'cursorless-org-docs' \
+ -F '@cursorless/app-web' \
+ -F '@cursorless/app-web-docs' \
build
pnpm -r generate-railroad
@@ -14,7 +14,7 @@ pnpm -r generate-railroad
# Merge the root site and the documentation site, placing the documentation site
# under docs/
-root_dir=dist/cursorless-org
+root_dir=dist/app-web
docs_dir="$root_dir/docs"
# Important to remove the root dir first! otherwise we might end up with old removed files from the root dir that are still present in the docs dir, which would be bad since we want to remove old files that are no longer present in the new build.
diff --git a/scripts/deploy-cursorless-talon.sh b/scripts/deploy-cursorless-talon.sh
index 4f0d443365..8e0dc94f75 100755
--- a/scripts/deploy-cursorless-talon.sh
+++ b/scripts/deploy-cursorless-talon.sh
@@ -37,7 +37,7 @@ git cherry-pick cursorless-talon-staging-previous..cursorless-talon-staging
[[ "$(git rev-parse 'cursorless-talon-main^{tree}')" == "$(git rev-parse 'cursorless-talon-staging^{tree}')" ]]
# Sanity check that cursorless-talon-main is identical to cursorless-talon
-# subdirectory of cursorless-vscode
+# subdirectory of app-vscode
[[ "$(git rev-parse 'cursorless-talon-main^{tree}')" == "$(git rev-parse "${DEPLOY_SHA}:cursorless-talon")" ]]
# Push to cursorless-talon
From a3156f9492ec859fdee0c2ae70842ed147bc51c4 Mon Sep 17 00:00:00 2001
From: Andreas Arvidsson
Date: Thu, 19 Mar 2026 12:28:55 +0100
Subject: [PATCH 20/24] More updates
---
.../contributing/architecture/neovim-test-infrastructure.md | 6 +++---
.../src/docs/contributing/architecture/package-scripts.md | 4 ++--
.../src/docs/contributing/cursorless-in-neovim.md | 2 +-
3 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/packages/app-web-docs/src/docs/contributing/architecture/neovim-test-infrastructure.md b/packages/app-web-docs/src/docs/contributing/architecture/neovim-test-infrastructure.md
index 17e9c80661..33f0f7a107 100644
--- a/packages/app-web-docs/src/docs/contributing/architecture/neovim-test-infrastructure.md
+++ b/packages/app-web-docs/src/docs/contributing/architecture/neovim-test-infrastructure.md
@@ -159,9 +159,9 @@ local function load_extensions()
However, because `nvim` was started with `"NVIM_NODE_HOST_DEBUG": "1"`, when `node` is spawned, `node` will hang and wait for a debugger to attach (`--inspect-brk`). Consequently, `nvim` won't finish loading yet (i.e. it won't finish loading `init.lua`).
-This is handy because it allows VSCode to finish all the tasks required for building the Cursorless neovim plugin (`cursorless-neovim`) and the Tests neovim plugin (`test-runner`), which will finally trigger VSCode to attach to the `node` process.
+This is handy because it allows VSCode to finish all the tasks required for building the Cursorless neovim package (`app-neovim`, exposed to Neovim under `node/cursorless-neovim`) and the test runner package (`test-runner`, exposed under `node/test-runner`), which will finally trigger VSCode to attach to the `node` process.
-When VSCode attaches to the `node` process, `CursorlessLoadExtension()` is called to load the Cursorles neovim plugin and `TestHarnessRun()` is called to start the tests.
+When VSCode attaches to the `node` process, `CursorlessLoadExtension()` is called to load the Cursorless neovim plugin and `TestHarnessRun()` is called to start the tests.
This ends up calling `TestHarnessRun()` from `packages/test-runner/src/index.ts` which calls `run()`:
@@ -218,7 +218,7 @@ This triggers the script in `packages/test-runner/package.json`:
"test:neovim": "c-tsx src/scripts/runNeovimTestsCI.ts",
```
-This ends up calling the default function from `package/test-runner/src/scripts/runNeovimTestsCI.ts` which calls `launchNeovimAndRunTests()` from `packages/test-runner/src/launchNeovimAndRunTests.ts`:
+This ends up calling the default function from `packages/test-runner/src/scripts/runNeovimTestsCI.ts` which calls `launchNeovimAndRunTests()` from `packages/test-runner/src/launchNeovimAndRunTests.ts`:
```ts
(async () => {
diff --git a/packages/app-web-docs/src/docs/contributing/architecture/package-scripts.md b/packages/app-web-docs/src/docs/contributing/architecture/package-scripts.md
index 399b0c09b3..d0d9dc1213 100644
--- a/packages/app-web-docs/src/docs/contributing/architecture/package-scripts.md
+++ b/packages/app-web-docs/src/docs/contributing/architecture/package-scripts.md
@@ -21,7 +21,7 @@ within this repository.
There are two important kinds of internal packages:
- Source-only shared code packages, such as `lib-common` or `lib-engine`
-- Internal asset packages, such as `cheatsheet-local` or
+- Internal asset packages, such as `lib-cheatsheet-local` or
`lib-vscode-tutorial-webview`
### Source-only shared code packages
@@ -85,7 +85,7 @@ Examples:
- the local cheatsheet single-file bundle
- the VS Code tutorial webview bundle
-- test harness runner bundles
+- test runner bundles
### `build`
diff --git a/packages/app-web-docs/src/docs/contributing/cursorless-in-neovim.md b/packages/app-web-docs/src/docs/contributing/cursorless-in-neovim.md
index 84d694ffae..8067fc571f 100644
--- a/packages/app-web-docs/src/docs/contributing/cursorless-in-neovim.md
+++ b/packages/app-web-docs/src/docs/contributing/cursorless-in-neovim.md
@@ -29,7 +29,7 @@ This step is only required on Windows if you don't run VSCode with Administrator
Open a `cmd.exe` with Administrator privileges and create the symbolic links between the source folders and the `cursorless.nvim` destination folder:
```bat
-mklink /D C:\path\to\cursorless\cursorless.nvim\node\cursorless-neovim C:\path\to\cursorless\packages\cursorless-neovim
+mklink /D C:\path\to\cursorless\cursorless.nvim\node\cursorless-neovim C:\path\to\cursorless\packages\app-neovim
mklink /D C:\path\to\cursorless\cursorless.nvim\node\test-runner C:\path\to\cursorless\packages\test-runner
```
From 21a5fab8357a2c1cc7ff42a459b1abb33134aee4 Mon Sep 17 00:00:00 2001
From: Andreas Arvidsson
Date: Thu, 19 Mar 2026 12:29:16 +0100
Subject: [PATCH 21/24] More updates
---
packages/app-web-docs/src/docs/components/highlightColors.ts | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/packages/app-web-docs/src/docs/components/highlightColors.ts b/packages/app-web-docs/src/docs/components/highlightColors.ts
index bb7870c79f..a78fa35a9c 100644
--- a/packages/app-web-docs/src/docs/components/highlightColors.ts
+++ b/packages/app-web-docs/src/docs/components/highlightColors.ts
@@ -1,4 +1,4 @@
-/* https://github.com/cursorless-dev/cursorless/blob/a9affbb83a0d81476760c5c4fdd5b67c8162ae25/packages/cursorless-vscode/package.json#L560-L581 */
+/* https://github.com/cursorless-dev/cursorless/blob/a3156f9492ec859fdee0c2ae70842ed147bc51c4/packages/app-vscode/package.json#L575-L596 */
export const highlightColors = {
domain: {
From 1091a7c54e4f7d41a1e29c509ce527ca8a837ef6 Mon Sep 17 00:00:00 2001
From: Andreas Arvidsson
Date: Thu, 19 Mar 2026 12:29:42 +0100
Subject: [PATCH 22/24] Makes scripts executables
---
packages/app-neovim/scripts/compile-esbuild.sh | 0
packages/app-neovim/scripts/debug-neovim.sh | 0
packages/app-neovim/scripts/linux-terminal.sh | 0
packages/app-neovim/scripts/populate-dist.sh | 0
packages/app-neovim/scripts/show-logs.sh | 0
packages/app-talon/scripts/esbuild.sh | 0
packages/app-vscode/scripts/compile-esbuild.sh | 0
packages/app-vscode/scripts/install-from-pr.sh | 0
packages/app-vscode/scripts/install-local.sh | 0
packages/app-vscode/scripts/uninstall-local.sh | 0
packages/lib-common/scripts/c-tsx.js | 0
packages/test-runner/scripts/compile-esbuild.sh | 0
packages/test-runner/scripts/run-esbuild.sh | 0
packages/test-talon-e2e/scripts/test-quickjs.sh | 0
14 files changed, 0 insertions(+), 0 deletions(-)
mode change 100644 => 100755 packages/app-neovim/scripts/compile-esbuild.sh
mode change 100644 => 100755 packages/app-neovim/scripts/debug-neovim.sh
mode change 100644 => 100755 packages/app-neovim/scripts/linux-terminal.sh
mode change 100644 => 100755 packages/app-neovim/scripts/populate-dist.sh
mode change 100644 => 100755 packages/app-neovim/scripts/show-logs.sh
mode change 100644 => 100755 packages/app-talon/scripts/esbuild.sh
mode change 100644 => 100755 packages/app-vscode/scripts/compile-esbuild.sh
mode change 100644 => 100755 packages/app-vscode/scripts/install-from-pr.sh
mode change 100644 => 100755 packages/app-vscode/scripts/install-local.sh
mode change 100644 => 100755 packages/app-vscode/scripts/uninstall-local.sh
mode change 100644 => 100755 packages/lib-common/scripts/c-tsx.js
mode change 100644 => 100755 packages/test-runner/scripts/compile-esbuild.sh
mode change 100644 => 100755 packages/test-runner/scripts/run-esbuild.sh
mode change 100644 => 100755 packages/test-talon-e2e/scripts/test-quickjs.sh
diff --git a/packages/app-neovim/scripts/compile-esbuild.sh b/packages/app-neovim/scripts/compile-esbuild.sh
old mode 100644
new mode 100755
diff --git a/packages/app-neovim/scripts/debug-neovim.sh b/packages/app-neovim/scripts/debug-neovim.sh
old mode 100644
new mode 100755
diff --git a/packages/app-neovim/scripts/linux-terminal.sh b/packages/app-neovim/scripts/linux-terminal.sh
old mode 100644
new mode 100755
diff --git a/packages/app-neovim/scripts/populate-dist.sh b/packages/app-neovim/scripts/populate-dist.sh
old mode 100644
new mode 100755
diff --git a/packages/app-neovim/scripts/show-logs.sh b/packages/app-neovim/scripts/show-logs.sh
old mode 100644
new mode 100755
diff --git a/packages/app-talon/scripts/esbuild.sh b/packages/app-talon/scripts/esbuild.sh
old mode 100644
new mode 100755
diff --git a/packages/app-vscode/scripts/compile-esbuild.sh b/packages/app-vscode/scripts/compile-esbuild.sh
old mode 100644
new mode 100755
diff --git a/packages/app-vscode/scripts/install-from-pr.sh b/packages/app-vscode/scripts/install-from-pr.sh
old mode 100644
new mode 100755
diff --git a/packages/app-vscode/scripts/install-local.sh b/packages/app-vscode/scripts/install-local.sh
old mode 100644
new mode 100755
diff --git a/packages/app-vscode/scripts/uninstall-local.sh b/packages/app-vscode/scripts/uninstall-local.sh
old mode 100644
new mode 100755
diff --git a/packages/lib-common/scripts/c-tsx.js b/packages/lib-common/scripts/c-tsx.js
old mode 100644
new mode 100755
diff --git a/packages/test-runner/scripts/compile-esbuild.sh b/packages/test-runner/scripts/compile-esbuild.sh
old mode 100644
new mode 100755
diff --git a/packages/test-runner/scripts/run-esbuild.sh b/packages/test-runner/scripts/run-esbuild.sh
old mode 100644
new mode 100755
diff --git a/packages/test-talon-e2e/scripts/test-quickjs.sh b/packages/test-talon-e2e/scripts/test-quickjs.sh
old mode 100644
new mode 100755
From 2c446e13342d1e8b8d68edeeb4d0f80e72e3766b Mon Sep 17 00:00:00 2001
From: Andreas Arvidsson
Date: Thu, 19 Mar 2026 12:43:30 +0100
Subject: [PATCH 23/24] Update readme
---
README.md | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/README.md b/README.md
index 6700039908..e7ae8fd93a 100644
--- a/README.md
+++ b/README.md
@@ -3,21 +3,22 @@
+
+
+
-
+
+
-
-
-
Cursorless is a spoken language for structural code editing, enabling developers to code by voice at speeds not possible with a keyboard. Cursorless decorates every token on the screen and defines a spoken language for rapid, high-level semantic manipulation of structured text.
From 99d5e4b761c3292e1ab9faf01d982af7d9341785 Mon Sep 17 00:00:00 2001
From: Andreas Arvidsson
Date: Thu, 19 Mar 2026 12:45:05 +0100
Subject: [PATCH 24/24] Up did Cursorless Talon readme
---
README.md | 5 +----
cursorless-talon/README.md | 3 ++-
2 files changed, 3 insertions(+), 5 deletions(-)
diff --git a/README.md b/README.md
index e7ae8fd93a..2dd2876b3b 100644
--- a/README.md
+++ b/README.md
@@ -1,21 +1,18 @@
Welcome to Cursorless!
+
-
-
-
-
diff --git a/cursorless-talon/README.md b/cursorless-talon/README.md
index 06186821c5..913dadee01 100644
--- a/cursorless-talon/README.md
+++ b/cursorless-talon/README.md
@@ -1,4 +1,5 @@
Welcome to Cursorless!
+
@@ -10,7 +11,7 @@
-
+