* Added open saas to starter templates and refactored template picking a bit.
* All now use new mechanism.
* Removed notion of GhStartersRepoTemplate.
* Templates are now versioned.
* Starting instructions are not adjustable per template.
* Instructions are now correct for each template.
* fix
* fix
* fix
* fix
* fix
* fix
* fix
* Improved Wasp AI CLI experience.
* fix
* Added CLI Usage, polished CLI commands.
* Added choice of temperature.
* Added styling.
* Added more sophisticated, terminal-only styling.
* fix
* Updated Mage to use new Wasp CLI + added some messaging to CLI.
* fix
* Created wasp-ai/README, updated waspc/README.
* Moved wasp-ai/ to mage/.
* Final polishing (docs, readmes, messaging).
* fix
* Added tests for LogMsg.
* Updated versions of test apps to 0.12.
* fix
* fix
* Update mage/README.md
* fix
* fix
* calculate project root via location of .wasp file
previously, waspls used workspace root, which was incorrect if you opened a
workspace larger than the wasp project.
this does not add support for multi-project workspaces.
* update changelog with waspls scaffolding info
* create directories when scaffolding, if needed
* refresh export cache after scaffolding
* better process for ensuring a blank line between old code and new scaffolded code
When an external import tries to import a symbol from a TypeScript/JavaScript file, waspls now offers quickfix code actions to scaffold a function in that file.
It uses the surrounding context of the external import to determine what code to write for the code action. See [`ScaffoldTsSymbol.hs`](457911d5e9/waspc/waspls/src/Wasp/LSP/Commands/ScaffoldTsSymbol.hs) for a detailed description of how it works. At a high level, there is a `templateForFile` function in `Wasp.LSP.Commands.ScaffoldTsSymbol` that selects the correct template from `data/lsp/templates/ts`. For example, `action.fn.ts` contains a template for scaffolding an `action` function in a TypeScript file and would be used when a code action is requested with the cursor at the location marked by `|`:
```wasp
action createTask {
fn: import { createTask } from "@server/actions.js"|
}
```
The scaffold action runs as a [LSP command](https://microsoft.github.io/language-server-protocol/specifications/specification-3-16/#workspace_executeCommand). To prepare for wanting to define more commands in waspls in the future, this PR also introduces the concept of `Commands` (`Wasp.LSP.Commands.Command`) that define some properties about each command waspls wants to handle.
* Wasp AI now retries requests to chat GPT.
* Improved retry.
* Got tests for retry working.
* one more test.
* Improved retry tests a bit.
* Finished tests.
* fix