Skip to content

Commit 951dbdf

Browse files
committed
feat: add models and knowledge management features, including commands for document handling and registry synchronization
1 parent 20c55f6 commit 951dbdf

File tree

9 files changed

+2807
-13
lines changed

9 files changed

+2807
-13
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,4 @@ node_modules
33
.vscode-test/
44
*.vsix
55
.DS_Store
6+
docs/

README.md

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,14 @@ Building AI apps with [Dify](https://dify.ai) is amazing, but managing them in a
4949
### 🔄 Bi-directional Sync
5050
Pull app configurations (DSL) from Dify to local files, edit with your favorite tools, then push changes back. Your local `app.yml` is the single source of truth.
5151

52+
### 📦 Full Resource Synchronization
53+
Not just apps — sync your entire Dify workspace:
54+
- **Studio Apps** — Workflows, Chatflows, Agents, Chat Assistants
55+
- **Models** — All configured LLM, Embedding, Rerank, TTS, STT models
56+
- **Knowledge Bases** — 🚧 *Coming soon*
57+
- **Tools** — Built-in and custom tool configurations
58+
- **Plugins** — Installed plugin details
59+
5260
### 🏢 Multi-Platform & Multi-Account
5361
Manage Dify Cloud, self-hosted instances, and multiple accounts — all from one sidebar. Switch between environments effortlessly.
5462

@@ -118,6 +126,7 @@ Modify `app.yml` with full IDE support → Right-click → **Push to Dify** →
118126
| **Add Account** | Add login credentials under a platform |
119127
| **Pull Updates** | Download latest app configurations |
120128
| **Push to Dify** | Upload local changes to cloud draft |
129+
| **New App** | Create a new Workflow or Chatflow app |
121130
| **Copy as New App** | Duplicate an app with new name |
122131
| **Open in Dify** | Jump to Dify editor in browser |
123132
| **View Sync Status** | Check sync state and timestamps |
@@ -141,9 +150,13 @@ your-workspace/
141150
│ │ │ └── .sync.yml # Sync metadata
142151
│ │ └── SalesWorkflow/
143152
│ │ └── ...
153+
│ ├── models/ # Model configurations
154+
│ │ └── models.yml # All LLM/Embedding/Rerank models
144155
│ ├── knowledge/ # Knowledge bases (coming soon)
145-
│ ├── tools/ # Custom tools (coming soon)
146-
│ └── plugins/ # Plugins (coming soon)
156+
│ ├── tools/ # Tool configurations
157+
│ │ └── tools.yml # Built-in and custom tools
158+
│ └── plugins/ # Plugin configurations
159+
│ └── plugins.yml # Installed plugins
147160
└── DifyCloud/
148161
└── ...
149162
```

package-lock.json

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,36 @@
143143
"title": "Refresh",
144144
"category": "Dify",
145145
"icon": "$(refresh)"
146+
},
147+
{
148+
"command": "dify.pullKnowledge",
149+
"title": "Pull Documents",
150+
"category": "Dify",
151+
"icon": "$(arrow-down)"
152+
},
153+
{
154+
"command": "dify.pushKnowledge",
155+
"title": "Push Documents",
156+
"category": "Dify",
157+
"icon": "$(arrow-up)"
158+
},
159+
{
160+
"command": "dify.unlinkKnowledge",
161+
"title": "Unlink (Stop Syncing)",
162+
"category": "Dify",
163+
"icon": "$(unlink)"
164+
},
165+
{
166+
"command": "dify.createKnowledgeDocument",
167+
"title": "New Document",
168+
"category": "Dify",
169+
"icon": "$(new-file)"
170+
},
171+
{
172+
"command": "dify.createApp",
173+
"title": "New App",
174+
"category": "Dify",
175+
"icon": "$(add)"
146176
}
147177
],
148178
"menus": {
@@ -204,6 +234,11 @@
204234
"when": "view == difyAsCode && viewItem == workspace",
205235
"group": "1_sync@1"
206236
},
237+
{
238+
"command": "dify.createApp",
239+
"when": "view == difyAsCode && viewItem == resource-folder-studio",
240+
"group": "1_create@1"
241+
},
207242
{
208243
"command": "dify.openAppConfig",
209244
"when": "view == difyAsCode && viewItem =~ /^app/",
@@ -233,6 +268,31 @@
233268
"command": "dify.viewSyncStatus",
234269
"when": "view == difyAsCode && viewItem =~ /^app/",
235270
"group": "3_copy@2"
271+
},
272+
{
273+
"command": "dify.pullKnowledge",
274+
"when": "view == difyAsCode && viewItem == knowledge",
275+
"group": "1_sync@1"
276+
},
277+
{
278+
"command": "dify.pullKnowledge",
279+
"when": "view == difyAsCode && viewItem == knowledge-synced",
280+
"group": "1_sync@1"
281+
},
282+
{
283+
"command": "dify.pushKnowledge",
284+
"when": "view == difyAsCode && viewItem == knowledge-synced",
285+
"group": "1_sync@2"
286+
},
287+
{
288+
"command": "dify.unlinkKnowledge",
289+
"when": "view == difyAsCode && viewItem == knowledge-synced",
290+
"group": "2_manage@1"
291+
},
292+
{
293+
"command": "dify.createKnowledgeDocument",
294+
"when": "view == difyAsCode && viewItem == knowledge-synced",
295+
"group": "0_create@1"
236296
}
237297
],
238298
"commandPalette": [
@@ -283,6 +343,21 @@
283343
},
284344
{
285345
"command": "dify.pullAll"
346+
},
347+
{
348+
"command": "dify.pullKnowledge"
349+
},
350+
{
351+
"command": "dify.pushKnowledge"
352+
},
353+
{
354+
"command": "dify.unlinkKnowledge"
355+
},
356+
{
357+
"command": "dify.createKnowledgeDocument"
358+
},
359+
{
360+
"command": "dify.createApp"
286361
}
287362
]
288363
}
@@ -312,6 +387,7 @@
312387
},
313388
"dependencies": {
314389
"axios": "^1.6.2",
390+
"form-data": "^4.0.5",
315391
"js-yaml": "^4.1.0"
316392
}
317393
}

0 commit comments

Comments
 (0)