@yeaft/webchat-agent 1.0.340 → 1.0.341
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/local-runtime/server/db/connection.js +3 -0
- package/local-runtime/server/db/yeaft-project-db.js +24 -0
- package/local-runtime/server/handlers/client-conversation.js +1 -0
- package/local-runtime/version.json +1 -1
- package/local-runtime/web/app.bundle.js +110 -101
- package/local-runtime/web/app.bundle.js.gz +0 -0
- package/local-runtime/web/index.html +2 -2
- package/local-runtime/web/style.bundle.css +1 -1
- package/local-runtime/web/style.bundle.css.gz +0 -0
- package/package.json +1 -1
- package/yeaft/projects/store.js +15 -0
- package/yeaft/web-bridge.js +2 -0
|
Binary file
|
package/package.json
CHANGED
package/yeaft/projects/store.js
CHANGED
|
@@ -135,6 +135,21 @@ export function deleteProject(yeaftDir, projectId) {
|
|
|
135
135
|
return { projectId };
|
|
136
136
|
}
|
|
137
137
|
|
|
138
|
+
export function reorderProjects(yeaftDir, projectIds) {
|
|
139
|
+
const projects = loadProjects(yeaftDir);
|
|
140
|
+
const ids = Array.isArray(projectIds)
|
|
141
|
+
? projectIds.map(value => typeof value === 'string' ? value.trim() : '')
|
|
142
|
+
: [];
|
|
143
|
+
const currentIds = new Set(projects.map(project => project.id));
|
|
144
|
+
if (ids.length !== projects.length
|
|
145
|
+
|| ids.some(id => !id || !currentIds.has(id))
|
|
146
|
+
|| new Set(ids).size !== ids.length) {
|
|
147
|
+
throw new ProjectStoreError('invalid_project_order', 'Complete Project order is required');
|
|
148
|
+
}
|
|
149
|
+
const projectsById = new Map(projects.map(project => [project.id, project]));
|
|
150
|
+
return saveProjects(yeaftDir, ids.map(id => projectsById.get(id)));
|
|
151
|
+
}
|
|
152
|
+
|
|
138
153
|
export function moveSessionToProject(yeaftDir, sessionId, projectId = null) {
|
|
139
154
|
const id = typeof sessionId === 'string' ? sessionId.trim() : '';
|
|
140
155
|
if (!id) throw new ProjectStoreError('invalid_session_id', 'Session id is required');
|
package/yeaft/web-bridge.js
CHANGED
|
@@ -77,6 +77,7 @@ import {
|
|
|
77
77
|
moveSessionToProject,
|
|
78
78
|
removeSessionFromProjects,
|
|
79
79
|
renameProject,
|
|
80
|
+
reorderProjects,
|
|
80
81
|
updateProjectInstruction,
|
|
81
82
|
} from './projects/store.js';
|
|
82
83
|
import { readSummary as readScopeSummary } from './memory/store.js';
|
|
@@ -3239,6 +3240,7 @@ export function handleYeaftProjectMutation(msg) {
|
|
|
3239
3240
|
else if (op === 'update_instruction') {
|
|
3240
3241
|
result = updateProjectInstruction(yeaftDir, msg.projectId, msg.instruction);
|
|
3241
3242
|
} else if (op === 'delete') result = deleteProject(yeaftDir, msg.projectId);
|
|
3243
|
+
else if (op === 'reorder') result = reorderProjects(yeaftDir, msg.projectIds);
|
|
3242
3244
|
else if (op === 'move_session') {
|
|
3243
3245
|
if (!snapshotSessions(yeaftDir).some(row => row.id === msg.sessionId)) {
|
|
3244
3246
|
throw new ProjectStoreError('session_not_found', 'Session not found');
|