Skip to content

Commit 824db74

Browse files
committed
feat: update core application logic and integrations
1 parent 3347208 commit 824db74

File tree

71 files changed

+265
-409
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

71 files changed

+265
-409
lines changed

.github/ISSUE_TEMPLATE/add_template.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ labels: "add-template"
66
assignees: ""
77
---
88

9-
If you'd like to add a template to Dyad Hub, follow the [Add Template guide](https://dyad.sh/docs/templates/add-template).
9+
If you'd like to add a template to Dyad Hub, follow the [Add Template guide](https://alifullstack.com/docs/templates/add-template).
1010

1111
**Template name:**
1212

.github/workflows/ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ jobs:
6464
with:
6565
version: latest
6666
- name: Clone nextjs-template
67-
run: git clone --depth 1 https://github.com/dyad-sh/nextjs-template.git nextjs-template
67+
run: git clone --depth 1 https://github.com/SFARPak/nextjs-template.git nextjs-template
6868
- name: Get pnpm store directory
6969
id: pnpm-cache
7070
shell: bash

.github/workflows/release.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ jobs:
1919
matrix:
2020
os: [
2121
{ name: "windows", image: "windows-latest" },
22-
# See https://github.com/dyad-sh/dyad/issues/96
22+
# See https://github.com/SFARPak/dyad/issues/96
2323
{ name: "linux", image: "ubuntu-22.04" },
2424
{ name: "macos-intel", image: "macos-13" },
2525
{ name: "macos", image: "macos-latest" },

README.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
# Dyad
1+
# AliFullStack
22

3-
Dyad is a local, open-source AI app builder. It's fast, private, and fully under your control — like Lovable, v0, or Bolt, but running right on your machine.
3+
AliFullStack is a local, open-source AI app builder. It's fast, private, and fully under your control — like Lovable, v0, or Bolt, but running right on your machine.
44

5-
[![Image](https://github.com/user-attachments/assets/f6c83dfc-6ffd-4d32-93dd-4b9c46d17790)](http://dyad.sh/)
5+
[![Image](https://github.com/user-attachments/assets/f6c83dfc-6ffd-4d32-93dd-4b9c46d17790)](http://alifullstack.com/)
66

7-
More info at: [http://dyad.sh/](http://dyad.sh/)
7+
More info at: [http://alifullstack.com/](http://alifullstack.com/)
88

99
## 🚀 Features
1010

@@ -16,14 +16,14 @@ More info at: [http://dyad.sh/](http://dyad.sh/)
1616

1717
No sign-up required. Just download and go.
1818

19-
### [👉 Download for your platform](https://www.dyad.sh/#download)
19+
### [👉 Download for your platform](https://www.alifullstack.com/#download)
2020

2121
## 🤝 Community
2222

23-
Join our growing community of AI app builders on **Reddit**: [r/dyadbuilders](https://www.reddit.com/r/dyadbuilders/) - share your projects and get help from the community!
23+
Join our growing community of AI app builders on **Reddit**: [r/alifullstackbuilders](https://www.reddit.com/r/alifullstackbuilders/) - share your projects and get help from the community!
2424

2525
## 🛠️ Contributing
2626

27-
**Dyad** is open-source (Apache 2.0 licensed).
27+
**AliFullStack** is open-source (Apache 2.0 licensed).
2828

29-
If you're interested in contributing to dyad, please read our [contributing](./CONTRIBUTING.md) doc.
29+
If you're interested in contributing to alifullstack, please read our [contributing](./CONTRIBUTING.md) doc.

SECURITY.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,4 @@ We will provide security fixes for the latest version of Dyad and encourage Dyad
66

77
## Reporting a Vulnerability
88

9-
Please file security vulnerabilities by using [report a vulnerability](https://github.com/dyad-sh/dyad/security/advisories/new). Please do not file security vulnerabilities as a regular issue as the information could be used to exploit Dyad users.
9+
Please file security vulnerabilities by using [report a vulnerability](https://github.com/SFARPak/dyad/security/advisories/new). Please do not file security vulnerabilities as a regular issue as the information could be used to exploit Dyad users.

docs/architecture.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@ If you're not familiar with Electron apps, they are similar to a full-stack Java
1414

1515
The core workflow of Dyad is that a user sends a prompt to the AI which edits the code and is reflected in the preview. We'll break this down step-by-step.
1616

17-
1. **Constructing an LLM request** - the LLM request that Dyad sends consists of much more than the prompt (i.e. user input). It includes, by default, the entire codebase as well as a detailed [system prompt](https://github.com/dyad-sh/dyad/blob/main/src/prompts/system_prompt.ts) which gives the LLM instructions to respond in a specific XML-like format (e.g. `<dyad-write path="path/to/file.ts">console.log("hi")</dyad-write>`).
18-
2. **Stream the LLM response to the UI** - It's important to provide visual feedback to the user otherwise they're waiting for several minutes without knowing what's happening so we stream the LLM response and show the LLM response. We have a specialized [Markdown parser](https://github.com/dyad-sh/dyad/blob/main/src/components/chat/DyadMarkdownParser.tsx) which parses these `<dyad-*>` tags like the `<dyad-write>` tag shown earlier, so we can display the LLM output in a nice UI rather than just printing out raw XML-like text.
19-
3. **Process the LLM response** - Once the LLM response has finished, and the user has approved the changes, the [response processor](https://github.com/dyad-sh/dyad/blob/main/src/ipc/processors/response_processor.ts) in the main process applies these changes. Essentially each `<dyad-*>` tag described in the [system prompt](https://github.com/dyad-sh/dyad/blob/main/src/prompts/system_prompt.ts) maps to specific logic in the response processor, e.g. writing a file, deleting a file, adding a new NPM package, etc.
17+
1. **Constructing an LLM request** - the LLM request that Dyad sends consists of much more than the prompt (i.e. user input). It includes, by default, the entire codebase as well as a detailed [system prompt](https://github.com/SFARPak/dyad/blob/main/src/prompts/system_prompt.ts) which gives the LLM instructions to respond in a specific XML-like format (e.g. `<dyad-write path="path/to/file.ts">console.log("hi")</dyad-write>`).
18+
2. **Stream the LLM response to the UI** - It's important to provide visual feedback to the user otherwise they're waiting for several minutes without knowing what's happening so we stream the LLM response and show the LLM response. We have a specialized [Markdown parser](https://github.com/SFARPak/dyad/blob/main/src/components/chat/DyadMarkdownParser.tsx) which parses these `<dyad-*>` tags like the `<dyad-write>` tag shown earlier, so we can display the LLM output in a nice UI rather than just printing out raw XML-like text.
19+
3. **Process the LLM response** - Once the LLM response has finished, and the user has approved the changes, the [response processor](https://github.com/SFARPak/dyad/blob/main/src/ipc/processors/response_processor.ts) in the main process applies these changes. Essentially each `<dyad-*>` tag described in the [system prompt](https://github.com/SFARPak/dyad/blob/main/src/prompts/system_prompt.ts) maps to specific logic in the response processor, e.g. writing a file, deleting a file, adding a new NPM package, etc.
2020

2121
To recap, Dyad essentially tells the LLM about a bunch of tools like writing files using the `<dyad-*>` tags, the renderer process displays these Dyad tags in a nice UI and the main process executes these Dyad tags to apply the changes.
2222

@@ -45,8 +45,8 @@ The biggest issue with complex agentic workflows is that they can get very expen
4545

4646
Sending the right context to the AI has been rightfully emphasized as important, so much so that the term ["context engineering"](https://www.philschmid.de/context-engineering) is now in vogue.
4747

48-
Sending the entire codebase is the simplest approach and quite effective for small codebases. Another approach is for the user to explicitly select the part of the codebase to use as context. This can be done through the [select component](https://www.dyad.sh/docs/releases/0.8.0) feature or [manual context management](https://www.dyad.sh/docs/guides/large-apps#manual-context-management).
48+
Sending the entire codebase is the simplest approach and quite effective for small codebases. Another approach is for the user to explicitly select the part of the codebase to use as context. This can be done through the [select component](https://www.alifullstack.com/docs/releases/0.8.0) feature or [manual context management](https://www.alifullstack.com/docs/guides/large-apps#manual-context-management).
4949

50-
However, both of these approaches require users to manually select the right files which isn't always practical. Dyad's [Smart Context](https://www.dyad.sh/docs/guides/ai-models/pro-modes#smart-context) feature essentially uses smaller models to filter out the most important files in the given chat. That said, we are constantly experimenting with new approaches to context selection as it's quite a difficult problem.
50+
However, both of these approaches require users to manually select the right files which isn't always practical. Dyad's [Smart Context](https://www.alifullstack.com/docs/guides/ai-models/pro-modes#smart-context) feature essentially uses smaller models to filter out the most important files in the given chat. That said, we are constantly experimenting with new approaches to context selection as it's quite a difficult problem.
5151

5252
One approach that we don't use is a more agentic-style like what Claude Code and Cursor does where it iteratively searches and navigates through a codebase using tool calls. The main reason we don't do this is due to cost (see the above question: [Why isn't Dyad more agentic](#why-isnt-dyad-more-agentic)).

e2e-tests/fixtures/edit-made-with-dyad.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ export const MadeWithDyad = () => {
33
return (
44
<div className="p-4 text-center">
55
<a
6-
href="https://www.dyad.sh/"
6+
href="https://www.alifullstack.com/"
77
target="_blank"
88
rel="noopener noreferrer"
99
className="text-sm text-gray-500 hover:text-gray-700 dark:text-gray-400 dark:hover:text-gray-200"

e2e-tests/helpers/test_helper.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -669,7 +669,7 @@ export class PageObject {
669669

670670
getChatInput() {
671671
return this.page.locator(
672-
'[data-lexical-editor="true"][aria-placeholder="Ask Dyad to build..."]',
672+
'[data-lexical-editor="true"][aria-placeholder="Ask AliFullStack to build..."]',
673673
);
674674
}
675675

e2e-tests/snapshots/capacitor.spec.ts_upgraded-capacitor.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2143,7 +2143,7 @@ end
21432143
"zod": "^3.23.8"
21442144
},
21452145
"devDependencies": {
2146-
"@dyad-sh/react-vite-component-tagger": "^0.8.0",
2146+
"@SFARPak/react-vite-component-tagger": "^0.8.0",
21472147
"@eslint/js": "^9.9.0",
21482148
"@tailwindcss/typography": "^0.5.15",
21492149
"@types/node": "^22.5.5",
@@ -2280,7 +2280,7 @@ export const MadeWithDyad = () => {
22802280
return (
22812281
<div className="p-4 text-center">
22822282
<a
2283-
href="https://www.dyad.sh/"
2283+
href="https://www.alifullstack.com/"
22842284
target="_blank"
22852285
rel="noopener noreferrer"
22862286
className="text-sm text-gray-500 hover:text-gray-700 dark:text-gray-400 dark:hover:text-gray-200"
@@ -7815,7 +7815,7 @@ export default {
78157815

78167816
=== vite.config.ts ===
78177817
import { defineConfig } from "vite";
7818-
import dyadComponentTagger from "@dyad-sh/react-vite-component-tagger";
7818+
import dyadComponentTagger from "@SFARPak/react-vite-component-tagger";
78197819
import react from "@vitejs/plugin-react-swc";
78207820
import path from "path";
78217821

e2e-tests/snapshots/context_window.spec.ts_context-window-1.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -248,7 +248,7 @@ export const MadeWithDyad = () => {
248248
return (
249249
<div className="p-4 text-center">
250250
<a
251-
href="https://www.dyad.sh/"
251+
href="https://www.alifullstack.com/"
252252
target="_blank"
253253
rel="noopener noreferrer"
254254
className="text-sm text-gray-500 hover:text-gray-700 dark:text-gray-400 dark:hover:text-gray-200"
@@ -1005,7 +1005,7 @@ export default {
10051005

10061006
<dyad-file path="vite.config.ts">
10071007
import { defineConfig } from "vite";
1008-
import dyadComponentTagger from "@dyad-sh/react-vite-component-tagger";
1008+
import dyadComponentTagger from "@SFARPak/react-vite-component-tagger";
10091009
import react from "@vitejs/plugin-react-swc";
10101010
import path from "path";
10111011

0 commit comments

Comments
 (0)