studiograph 1.3.48-next.48 → 1.3.48-next.49
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/dist/agent/followups.d.ts +34 -0
- package/dist/agent/followups.js +52 -0
- package/dist/agent/followups.js.map +1 -0
- package/dist/agent/orchestrator.js +1 -1
- package/dist/agent/orchestrator.js.map +1 -1
- package/dist/agent/skill-loader.js +3 -1
- package/dist/agent/skill-loader.js.map +1 -1
- package/dist/agent/tools/graph-tools.js +35 -9
- package/dist/agent/tools/graph-tools.js.map +1 -1
- package/dist/agent/tools/message-tools.d.ts +2 -1
- package/dist/agent/tools/message-tools.js +8 -6
- package/dist/agent/tools/message-tools.js.map +1 -1
- package/dist/cli/commands/start.js +122 -45
- package/dist/cli/commands/start.js.map +1 -1
- package/dist/core/graph.js +14 -4
- package/dist/core/graph.js.map +1 -1
- package/dist/mcp/tools.js +11 -11
- package/dist/mcp/tools.js.map +1 -1
- package/dist/server/chrome/chrome.js +17 -1
- package/dist/server/index.js +2 -2
- package/dist/server/index.js.map +1 -1
- package/dist/server/routes/asset-api.js +46 -34
- package/dist/server/routes/asset-api.js.map +1 -1
- package/dist/server/routes/auth-api.js +91 -2
- package/dist/server/routes/auth-api.js.map +1 -1
- package/dist/server/routes/chat.js +4 -12
- package/dist/server/routes/chat.js.map +1 -1
- package/dist/server/routes/git-http.js +10 -16
- package/dist/server/routes/git-http.js.map +1 -1
- package/dist/server/routes/graph-api.js +80 -28
- package/dist/server/routes/graph-api.js.map +1 -1
- package/dist/server/routes/insights-api.js +6 -4
- package/dist/server/routes/insights-api.js.map +1 -1
- package/dist/server/routes/meeting-ingest-api.js +14 -1
- package/dist/server/routes/meeting-ingest-api.js.map +1 -1
- package/dist/server/routes/messages-api.js +15 -13
- package/dist/server/routes/messages-api.js.map +1 -1
- package/dist/server/routes/permissions-api.d.ts +5 -4
- package/dist/server/routes/permissions-api.js +14 -14
- package/dist/server/routes/permissions-api.js.map +1 -1
- package/dist/server/routes/workspace-api.d.ts +2 -1
- package/dist/server/routes/workspace-api.js +17 -1
- package/dist/server/routes/workspace-api.js.map +1 -1
- package/dist/server/routes/ws.d.ts +2 -1
- package/dist/server/routes/ws.js +52 -9
- package/dist/server/routes/ws.js.map +1 -1
- package/dist/server/yjs-manager.js +37 -0
- package/dist/server/yjs-manager.js.map +1 -1
- package/dist/services/access-control.d.ts +7 -3
- package/dist/services/access-control.js +30 -3
- package/dist/services/access-control.js.map +1 -1
- package/dist/services/auth-service.d.ts +16 -0
- package/dist/services/auth-service.js +45 -5
- package/dist/services/auth-service.js.map +1 -1
- package/dist/services/personal-folder.d.ts +25 -0
- package/dist/services/personal-folder.js +70 -0
- package/dist/services/personal-folder.js.map +1 -1
- package/dist/web/_app/immutable/assets/0.D03EHRDg.css +1 -0
- package/dist/web/_app/immutable/assets/11.VuZ0yuu4.css +1 -0
- package/dist/web/_app/immutable/assets/12.CBEP3aNg.css +1 -0
- package/dist/web/_app/immutable/assets/2.aJMJyx3M.css +1 -0
- package/dist/web/_app/immutable/assets/3.BbA-zR0F.css +1 -0
- package/dist/web/_app/immutable/assets/{4.Bw-eH9Xv.css → 4.BsFe8Ecx.css} +1 -1
- package/dist/web/_app/immutable/assets/ChevronLeft.DJHXltBB.css +1 -0
- package/dist/web/_app/immutable/assets/StopFilledAlt.kEJgOmBk.css +1 -0
- package/dist/web/_app/immutable/assets/ViewToolbar.CV6Us0fJ.css +1 -0
- package/dist/web/_app/immutable/assets/WorkspaceView.CFKNfZSY.css +1 -0
- package/dist/web/_app/immutable/chunks/{BJVJpWzz.js → 24nU6DRU.js} +1 -1
- package/dist/web/_app/immutable/chunks/B24A6jAy.js +6 -0
- package/dist/web/_app/immutable/chunks/B8CgkcYZ.js +1 -0
- package/dist/web/_app/immutable/chunks/{Bw_Pp-Pz.js → B9qwNmSf.js} +1 -1
- package/dist/web/_app/immutable/chunks/BXIcKgYy.js +1 -0
- package/dist/web/_app/immutable/chunks/{C7PgRgxX.js → BiMb3uU3.js} +1 -1
- package/dist/web/_app/immutable/chunks/C-KRPd1f.js +1 -0
- package/dist/web/_app/immutable/chunks/{Ckiai0LF.js → C3QX_pgn.js} +2 -2
- package/dist/web/_app/immutable/chunks/C3rmQoP5.js +4 -0
- package/dist/web/_app/immutable/chunks/C6NT3aAi.js +2 -0
- package/dist/web/_app/immutable/chunks/CBFBKav7.js +1 -0
- package/dist/web/_app/immutable/chunks/CH1XwVFs.js +5 -0
- package/dist/web/_app/immutable/chunks/{BCJtO6Up.js → CKD7VXBr.js} +1 -1
- package/dist/web/_app/immutable/chunks/CLJcKDW0.js +1 -0
- package/dist/web/_app/immutable/chunks/CS21N7mS.js +2 -0
- package/dist/web/_app/immutable/chunks/CawK5k-Y.js +13 -0
- package/dist/web/_app/immutable/chunks/CbhBH-Pr.js +1 -0
- package/dist/web/_app/immutable/chunks/CdRP-PQd.js +1 -0
- package/dist/web/_app/immutable/chunks/CgtGEUwG.js +1 -0
- package/dist/web/_app/immutable/chunks/{Bz0ZjVQE.js → ChqmDGF0.js} +1 -1
- package/dist/web/_app/immutable/chunks/CjyOT5ru.js +1 -0
- package/dist/web/_app/immutable/chunks/Cm3t5Lw_.js +1 -0
- package/dist/web/_app/immutable/chunks/Cq78Q8ao.js +1 -0
- package/dist/web/_app/immutable/chunks/CqJvlJ5e.js +1 -0
- package/dist/web/_app/immutable/chunks/D-eQH68P.js +1 -0
- package/dist/web/_app/immutable/chunks/D6uxAoMD.js +1 -0
- package/dist/web/_app/immutable/chunks/{UPEqhJHW.js → D78L3NHT.js} +1 -1
- package/dist/web/_app/immutable/chunks/D8l98jpc.js +1 -0
- package/dist/web/_app/immutable/chunks/D98nKNS8.js +5 -0
- package/dist/web/_app/immutable/chunks/{oIb8yPFh.js → DBrWPzSo.js} +4 -4
- package/dist/web/_app/immutable/chunks/DHBDhuM5.js +1 -0
- package/dist/web/_app/immutable/chunks/DHZ8iEPd.js +1 -0
- package/dist/web/_app/immutable/chunks/DODkJf9W.js +1 -0
- package/dist/web/_app/immutable/chunks/DZynkbIh.js +1 -0
- package/dist/web/_app/immutable/chunks/Dc-pYwK_.js +1 -0
- package/dist/web/_app/immutable/chunks/DiVMY2ie.js +1 -0
- package/dist/web/_app/immutable/chunks/DjYhk3V-.js +1 -0
- package/dist/web/_app/immutable/chunks/Dk4o-8uR.js +1 -0
- package/dist/web/_app/immutable/chunks/QvIJHVST.js +1 -0
- package/dist/web/_app/immutable/chunks/VHoDNwgF.js +1 -0
- package/dist/web/_app/immutable/chunks/{gZfO0DkI.js → _LqPzIoq.js} +1 -1
- package/dist/web/_app/immutable/chunks/{BDtxhI5r.js → _rGNAZ2T.js} +1 -1
- package/dist/web/_app/immutable/chunks/bBh4-vdc.js +1 -0
- package/dist/web/_app/immutable/chunks/iRhbt-db.js +2 -0
- package/dist/web/_app/immutable/chunks/ouoe_5n-.js +3 -0
- package/dist/web/_app/immutable/chunks/xUpz_Ego.js +1 -0
- package/dist/web/_app/immutable/entry/app.tgSpN2zy.js +2 -0
- package/dist/web/_app/immutable/entry/start.CYDu1-na.js +1 -0
- package/dist/web/_app/immutable/nodes/0.O_BpuEVv.js +2 -0
- package/dist/web/_app/immutable/nodes/1.BCH0rc1N.js +1 -0
- package/dist/web/_app/immutable/nodes/10.BdAZrtUP.js +1 -0
- package/dist/web/_app/immutable/nodes/11.Dh4nuff7.js +1 -0
- package/dist/web/_app/immutable/nodes/12.DRrTb8yT.js +1 -0
- package/dist/web/_app/immutable/nodes/2.DhSERXR4.js +268 -0
- package/dist/web/_app/immutable/nodes/3.CEgK5MQt.js +5 -0
- package/dist/web/_app/immutable/nodes/4.BKj4xQOT.js +11 -0
- package/dist/web/_app/immutable/nodes/5.Be1XlKLD.js +1 -0
- package/dist/web/_app/immutable/nodes/6.Cen-Be5t.js +1 -0
- package/dist/web/_app/immutable/nodes/7.BiEGRqIm.js +1 -0
- package/dist/web/_app/immutable/nodes/8.Be00K7Ga.js +1 -0
- package/dist/web/_app/immutable/nodes/9.CnZz8P2s.js +1 -0
- package/dist/web/_app/version.json +1 -1
- package/dist/web/favicon.png +0 -0
- package/dist/web/index.html +12 -12
- package/package.json +1 -1
- package/dist/web/_app/immutable/assets/0.C5UfMb0y.css +0 -1
- package/dist/web/_app/immutable/assets/11.BysgAqqA.css +0 -1
- package/dist/web/_app/immutable/assets/12.Cv7_3lm3.css +0 -1
- package/dist/web/_app/immutable/assets/2.DF2alPoJ.css +0 -1
- package/dist/web/_app/immutable/assets/3.K3A_7PML.css +0 -1
- package/dist/web/_app/immutable/assets/ChevronLeft.DkKx6zzU.css +0 -1
- package/dist/web/_app/immutable/assets/ViewToolbar.SyuJrtFp.css +0 -1
- package/dist/web/_app/immutable/assets/WorkspaceView.CFCGULVf.css +0 -1
- package/dist/web/_app/immutable/chunks/B-8WiidI.js +0 -1
- package/dist/web/_app/immutable/chunks/B0UhiMeL.js +0 -1
- package/dist/web/_app/immutable/chunks/B1f42VKu.js +0 -1
- package/dist/web/_app/immutable/chunks/B584Plw_.js +0 -2
- package/dist/web/_app/immutable/chunks/B9rnDSMy.js +0 -1
- package/dist/web/_app/immutable/chunks/BK42PcDI.js +0 -1
- package/dist/web/_app/immutable/chunks/BMB60CtO.js +0 -1
- package/dist/web/_app/immutable/chunks/BQiOMhgK.js +0 -1
- package/dist/web/_app/immutable/chunks/BT1EtT-T.js +0 -4
- package/dist/web/_app/immutable/chunks/BUzEKAuP.js +0 -1
- package/dist/web/_app/immutable/chunks/BVXp0xQD.js +0 -1
- package/dist/web/_app/immutable/chunks/BaMdMBD6.js +0 -1
- package/dist/web/_app/immutable/chunks/Bjbdko8J.js +0 -1
- package/dist/web/_app/immutable/chunks/BvVwTRB5.js +0 -1
- package/dist/web/_app/immutable/chunks/CBiBLuiK.js +0 -1
- package/dist/web/_app/immutable/chunks/CH2ArZqX.js +0 -18
- package/dist/web/_app/immutable/chunks/COSWCWJc.js +0 -1
- package/dist/web/_app/immutable/chunks/CTh3LGxI.js +0 -1
- package/dist/web/_app/immutable/chunks/CVWN0my4.js +0 -5
- package/dist/web/_app/immutable/chunks/CXKVCl01.js +0 -2
- package/dist/web/_app/immutable/chunks/Ca1DAtQh.js +0 -2
- package/dist/web/_app/immutable/chunks/CcmvIPLE.js +0 -1
- package/dist/web/_app/immutable/chunks/CdbeIqEu.js +0 -1
- package/dist/web/_app/immutable/chunks/ChL9MLYT.js +0 -1
- package/dist/web/_app/immutable/chunks/CmQUXR-Q.js +0 -1
- package/dist/web/_app/immutable/chunks/D3dgfs75.js +0 -1
- package/dist/web/_app/immutable/chunks/D4zk90z_.js +0 -1
- package/dist/web/_app/immutable/chunks/DFYOFE3o.js +0 -1
- package/dist/web/_app/immutable/chunks/DGvzULxd.js +0 -2
- package/dist/web/_app/immutable/chunks/DXlELvfC.js +0 -1
- package/dist/web/_app/immutable/chunks/DckX78C-.js +0 -1
- package/dist/web/_app/immutable/chunks/Derf2KR0.js +0 -1
- package/dist/web/_app/immutable/chunks/IWO0A1w9.js +0 -1
- package/dist/web/_app/immutable/chunks/PHw7Ht7D.js +0 -1
- package/dist/web/_app/immutable/chunks/QtcHHeRi.js +0 -1
- package/dist/web/_app/immutable/chunks/_FGjjD9P.js +0 -1
- package/dist/web/_app/immutable/chunks/hXfpX92g.js +0 -1
- package/dist/web/_app/immutable/chunks/xNAOqGHi.js +0 -3
- package/dist/web/_app/immutable/entry/app.DZZk9FhL.js +0 -2
- package/dist/web/_app/immutable/entry/start.7xpU_KlK.js +0 -1
- package/dist/web/_app/immutable/nodes/0.BoP7EznM.js +0 -2
- package/dist/web/_app/immutable/nodes/1.D88C7B3J.js +0 -1
- package/dist/web/_app/immutable/nodes/10.-ZvCdP8I.js +0 -1
- package/dist/web/_app/immutable/nodes/11.BykVkP_y.js +0 -1
- package/dist/web/_app/immutable/nodes/12.D3wEsz-7.js +0 -1
- package/dist/web/_app/immutable/nodes/2.CIsXawC1.js +0 -266
- package/dist/web/_app/immutable/nodes/3.gLLCp7pi.js +0 -5
- package/dist/web/_app/immutable/nodes/4.DBRtBuw0.js +0 -11
- package/dist/web/_app/immutable/nodes/5.Cl_maDlW.js +0 -1
- package/dist/web/_app/immutable/nodes/6.BcAq3XZ9.js +0 -1
- package/dist/web/_app/immutable/nodes/7.BkUvTb7i.js +0 -1
- package/dist/web/_app/immutable/nodes/8.C1Hsaxzw.js +0 -1
- package/dist/web/_app/immutable/nodes/9.SeWvoOCo.js +0 -1
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* POST /api/repos/:repo/entities/:type/:id/assets — multipart image upload
|
|
5
5
|
* GET /api/assets/* — serve local assets
|
|
6
6
|
*/
|
|
7
|
+
import * as access from '../../services/access-control.js';
|
|
7
8
|
import { SINGULAR_TO_PLURAL } from '../../core/validation.js';
|
|
8
9
|
import { existsSync, createReadStream, readFileSync, statSync } from 'fs';
|
|
9
10
|
import { join, extname } from 'path';
|
|
@@ -37,17 +38,15 @@ const MIME_TYPES = {
|
|
|
37
38
|
'.gif': 'image/gif', '.webp': 'image/webp', '.svg': 'image/svg+xml',
|
|
38
39
|
'.ico': 'image/x-icon', '.avif': 'image/avif',
|
|
39
40
|
};
|
|
40
|
-
function hasRepoAccess(req, repoName, authService) {
|
|
41
|
+
function hasRepoAccess(req, repoName, workspaceManager, authService) {
|
|
41
42
|
const user = req.user;
|
|
42
|
-
|
|
43
|
-
return true; // API key / open mode
|
|
44
|
-
return authService.getUserFolders(user.id).includes(repoName);
|
|
43
|
+
return access.hasRepoAccess(user, repoName, workspaceManager, authService);
|
|
45
44
|
}
|
|
46
45
|
export async function registerAssetApiRoutes(fastify, workspaceManager, authService) {
|
|
47
46
|
// POST /api/repos/:repo/entities/:type/:id/assets — upload an image
|
|
48
47
|
fastify.post('/api/repos/:repo/entities/:type/:id/assets', async (req, reply) => {
|
|
49
48
|
const { repo, type, id } = req.params;
|
|
50
|
-
if (!hasRepoAccess(req, repo, authService)) {
|
|
49
|
+
if (!hasRepoAccess(req, repo, workspaceManager, authService)) {
|
|
51
50
|
return reply.status(404).send({ error: `Folder "${repo}" not found` });
|
|
52
51
|
}
|
|
53
52
|
let graph;
|
|
@@ -96,35 +95,17 @@ export async function registerAssetApiRoutes(fastify, workspaceManager, authServ
|
|
|
96
95
|
reply.header('Cache-Control', 'public, max-age=31536000, immutable');
|
|
97
96
|
return reply.send(createReadStream(filePath));
|
|
98
97
|
});
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
// walk or single paginated S3 ListObjectsV2 request. No HEAD
|
|
104
|
-
// round-trips, no markdown parsing.
|
|
105
|
-
// 2. Build the set of (type, id) pairs that belong to *this* repo via
|
|
106
|
-
// a cheap directory scan — no frontmatter parse.
|
|
107
|
-
// 3. Filter the asset list by that set and look up display names by
|
|
108
|
-
// reading just the matching entities' frontmatter name line.
|
|
109
|
-
//
|
|
110
|
-
// For a repo like "analogous-experiences" with 800 assets this collapses
|
|
111
|
-
// hundreds of awaited round-trips into ~1 + a handful of small file reads.
|
|
112
|
-
fastify.get('/api/repos/:repo/assets', async (req, reply) => {
|
|
113
|
-
const { repo } = req.params;
|
|
114
|
-
if (!hasRepoAccess(req, repo, authService)) {
|
|
115
|
-
return reply.status(404).send({ error: `Folder "${repo}" not found` });
|
|
116
|
-
}
|
|
98
|
+
/** Build the asset list for a single repo. Extracted so the per-repo and
|
|
99
|
+
* bulk endpoints share identical output shape. Returns [] if the repo's
|
|
100
|
+
* graph can't be loaded. */
|
|
101
|
+
async function listAssetsForRepo(repo) {
|
|
117
102
|
let graph;
|
|
118
103
|
try {
|
|
119
104
|
graph = workspaceManager.getGraph(repo);
|
|
120
105
|
}
|
|
121
|
-
catch
|
|
122
|
-
return
|
|
106
|
+
catch {
|
|
107
|
+
return [];
|
|
123
108
|
}
|
|
124
|
-
// 1. Cheap repo membership set: `${type}/${id}` → md path. The
|
|
125
|
-
// listEntityIds() call above already walked the actual on-disk
|
|
126
|
-
// directories, so we can reconstruct the path via SINGULAR_TO_PLURAL
|
|
127
|
-
// without any extra filesystem checks.
|
|
128
109
|
const workspacePath = workspaceManager.workspacePath ?? process.cwd();
|
|
129
110
|
const repoPath = join(workspacePath, repo);
|
|
130
111
|
const entityIds = graph.listEntityIds();
|
|
@@ -134,15 +115,13 @@ export async function registerAssetApiRoutes(fastify, workspaceManager, authServ
|
|
|
134
115
|
const plural = SINGULAR_TO_PLURAL[entityType] ?? entityType;
|
|
135
116
|
idToMdPath.set(`${entityType}/${id}`, join(repoPath, plural, `${id}.md`));
|
|
136
117
|
}
|
|
137
|
-
// 2. One listAll() round-trip.
|
|
138
118
|
let allAssets;
|
|
139
119
|
try {
|
|
140
120
|
allAssets = await graph.listAllAssets();
|
|
141
121
|
}
|
|
142
122
|
catch {
|
|
143
|
-
return
|
|
123
|
+
return [];
|
|
144
124
|
}
|
|
145
|
-
// 3. Filter to this repo, look up display names on demand.
|
|
146
125
|
const result = [];
|
|
147
126
|
for (const asset of allAssets) {
|
|
148
127
|
const key = `${asset.entityType}/${asset.entityId}`;
|
|
@@ -168,12 +147,45 @@ export async function registerAssetApiRoutes(fastify, workspaceManager, authServ
|
|
|
168
147
|
mediaType: asset.mediaType,
|
|
169
148
|
});
|
|
170
149
|
}
|
|
171
|
-
return
|
|
150
|
+
return result;
|
|
151
|
+
}
|
|
152
|
+
fastify.get('/api/repos/:repo/assets', async (req, reply) => {
|
|
153
|
+
const { repo } = req.params;
|
|
154
|
+
if (!hasRepoAccess(req, repo, workspaceManager, authService)) {
|
|
155
|
+
return reply.status(404).send({ error: `Folder "${repo}" not found` });
|
|
156
|
+
}
|
|
157
|
+
// Verify the repo exists before delegating; listAssetsForRepo swallows
|
|
158
|
+
// missing-graph errors as [], which is right for the bulk endpoint but
|
|
159
|
+
// wrong for the single-repo one (we want a 404).
|
|
160
|
+
try {
|
|
161
|
+
workspaceManager.getGraph(repo);
|
|
162
|
+
}
|
|
163
|
+
catch (err) {
|
|
164
|
+
return reply.status(404).send({ error: err.message });
|
|
165
|
+
}
|
|
166
|
+
return { assets: await listAssetsForRepo(repo) };
|
|
167
|
+
});
|
|
168
|
+
// GET /api/workspace/assets — bulk asset lists for ALL accessible repos in
|
|
169
|
+
// one round-trip. Replaces 15+ parallel /api/repos/:repo/assets calls so
|
|
170
|
+
// GalleryView's thumbnail effect doesn't saturate the browser HTTP/1.1
|
|
171
|
+
// 6-slot queue and block other navigation fetches.
|
|
172
|
+
// Response shape: `{ [repoName]: FolderAssetResult[] }`.
|
|
173
|
+
fastify.get('/api/workspace/assets', async (req, reply) => {
|
|
174
|
+
const user = req.user;
|
|
175
|
+
// Use the shared access-control helper so personal-folder restrictions
|
|
176
|
+
// and workspace-owner-on-shared-folder semantics apply consistently.
|
|
177
|
+
const accessible = access.getAccessibleRepos(user, workspaceManager, authService).map(r => r.name);
|
|
178
|
+
const result = {};
|
|
179
|
+
// Run in parallel — each repo is an independent listAll() call.
|
|
180
|
+
await Promise.all(accessible.map(async (repo) => {
|
|
181
|
+
result[repo] = await listAssetsForRepo(repo);
|
|
182
|
+
}));
|
|
183
|
+
return reply.send(result);
|
|
172
184
|
});
|
|
173
185
|
// DELETE /api/repos/:repo/entities/:type/:id/assets/:filename — delete an asset
|
|
174
186
|
fastify.delete('/api/repos/:repo/entities/:type/:id/assets/:filename', async (req, reply) => {
|
|
175
187
|
const { repo, type, id, filename } = req.params;
|
|
176
|
-
if (!hasRepoAccess(req, repo, authService)) {
|
|
188
|
+
if (!hasRepoAccess(req, repo, workspaceManager, authService)) {
|
|
177
189
|
return reply.status(404).send({ error: `Folder "${repo}" not found` });
|
|
178
190
|
}
|
|
179
191
|
let graph;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"asset-api.js","sourceRoot":"","sources":["../../../src/server/routes/asset-api.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,EAAmB,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC/E,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AAC1E,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAErC;;;;;GAKG;AACH,SAAS,iBAAiB,CAAC,MAAc;IACvC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC1C,0DAA0D;QAC1D,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QAChC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QACzC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACrC,MAAM,KAAK,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACrD,6DAA6D;QAC7D,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC;QACzE,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QACxB,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC;IAC3D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,UAAU,GAA2B;IACzC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,YAAY;IAChE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,eAAe;IACnE,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,YAAY;CAC9C,CAAC;AAEF,SAAS,aAAa,CAAC,GAAmB,EAAE,QAAgB,EAAE,WAAwB;
|
|
1
|
+
{"version":3,"file":"asset-api.js","sourceRoot":"","sources":["../../../src/server/routes/asset-api.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { isWorkspaceOwner } from '../../services/auth-service.js';
|
|
7
7
|
import { Workspace } from '../../core/workspace.js';
|
|
8
|
-
import { ensurePersonalFolder } from '../../services/personal-folder.js';
|
|
8
|
+
import { ensurePersonalFolder, archivePersonalFolder } from '../../services/personal-folder.js';
|
|
9
9
|
// ── Login rate limiting ──
|
|
10
10
|
const MAX_ATTEMPTS = 5;
|
|
11
11
|
const LOCKOUT_MS = 15 * 60 * 1000; // 15 minutes
|
|
@@ -110,9 +110,98 @@ export async function registerAuthApiRoutes(fastify, authService, workspacePath,
|
|
|
110
110
|
// (the workspace owner performing this deletion) BEFORE the cascade
|
|
111
111
|
// delete — otherwise folder_access rows for those folders disappear
|
|
112
112
|
// and the folder is left with no admins.
|
|
113
|
+
//
|
|
114
|
+
// Personal folders (the target's "My Entries") are a sub-case: they
|
|
115
|
+
// transfer the same way, then get demoted to normal archive folders
|
|
116
|
+
// so the one-personal-folder-per-user invariant holds and the actor
|
|
117
|
+
// ends up with a plainly-named folder they own outright.
|
|
118
|
+
const workspace = new Workspace(workspacePath);
|
|
119
|
+
const preConfig = await workspace.loadConfig();
|
|
120
|
+
const targetPersonalFolders = preConfig.repos.filter(r => r.personal === true && r.owner_id === target.id);
|
|
121
|
+
const personalEntryCounts = new Map();
|
|
122
|
+
for (const p of targetPersonalFolders) {
|
|
123
|
+
try {
|
|
124
|
+
personalEntryCounts.set(p.name, workspaceManager.getGraph(p.name).listEntityIds().length);
|
|
125
|
+
}
|
|
126
|
+
catch {
|
|
127
|
+
personalEntryCounts.set(p.name, 0);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
113
130
|
const transferred = authService.transferFoldersOnDelete(target.id, admin.id);
|
|
131
|
+
// Capture the old name upfront: archivePersonalFolder mutates the
|
|
132
|
+
// RepoConfig in place (name/path change), so reading `p.name` after
|
|
133
|
+
// the await would return the new archive name.
|
|
134
|
+
const archived = [];
|
|
135
|
+
for (const p of targetPersonalFolders) {
|
|
136
|
+
const oldName = p.name;
|
|
137
|
+
if (!transferred.includes(oldName))
|
|
138
|
+
continue;
|
|
139
|
+
const { newName, newDisplayName } = await archivePersonalFolder(workspace, oldName, target.displayName, authService);
|
|
140
|
+
archived.push({
|
|
141
|
+
oldName,
|
|
142
|
+
newName,
|
|
143
|
+
newDisplayName,
|
|
144
|
+
entryCount: personalEntryCounts.get(oldName) ?? 0,
|
|
145
|
+
});
|
|
146
|
+
}
|
|
114
147
|
authService.deleteUser(target.email);
|
|
115
|
-
|
|
148
|
+
if (archived.length > 0)
|
|
149
|
+
workspaceManager.reloadConfig();
|
|
150
|
+
return reply.send({ ok: true, transferred, archived });
|
|
151
|
+
});
|
|
152
|
+
// GET /api/auth/users/:id/deletion-preview — show the actor what
|
|
153
|
+
// will transfer if they delete this user. Owner-gated. Returns entry
|
|
154
|
+
// counts and archive names so the confirmation UI can set expectations
|
|
155
|
+
// WITHOUT exposing the contents of the target's private folder. The
|
|
156
|
+
// preview is advisory; the DELETE endpoint is the source of truth.
|
|
157
|
+
fastify.get('/api/auth/users/:id/deletion-preview', async (req, reply) => {
|
|
158
|
+
const admin = requireOwner(req, authService);
|
|
159
|
+
if (!admin)
|
|
160
|
+
return reply.status(403).send({ error: 'Workspace owner access required' });
|
|
161
|
+
const userId = parseInt(req.params.id, 10);
|
|
162
|
+
if (isNaN(userId))
|
|
163
|
+
return reply.status(400).send({ error: 'Invalid user ID' });
|
|
164
|
+
if (admin.id === userId)
|
|
165
|
+
return reply.status(400).send({ error: 'Cannot preview deleting yourself' });
|
|
166
|
+
const target = authService.listUsers().find(u => u.id === userId);
|
|
167
|
+
if (!target)
|
|
168
|
+
return reply.status(404).send({ error: 'User not found' });
|
|
169
|
+
const workspace = new Workspace(workspacePath);
|
|
170
|
+
const config = await workspace.loadConfig();
|
|
171
|
+
// Mirror transferFoldersOnDelete's sole-admin rule so the preview
|
|
172
|
+
// matches the real delete. Personal folders are 1-member by nature,
|
|
173
|
+
// so they always qualify.
|
|
174
|
+
const targetAdminFolders = authService.getUserFolders(target.id)
|
|
175
|
+
.filter(f => authService.getFolderRole(target.id, f) === 'admin');
|
|
176
|
+
const soleAdminFolders = targetAdminFolders.filter(f => authService.getFolderAdmins(f).length === 1);
|
|
177
|
+
const date = new Date().toISOString().slice(0, 10);
|
|
178
|
+
const personalFolders = config.repos.filter(r => r.personal === true && r.owner_id === target.id && soleAdminFolders.includes(r.name));
|
|
179
|
+
const sharedSoleAdmin = soleAdminFolders.filter(f => !personalFolders.some(p => p.name === f));
|
|
180
|
+
const personal = personalFolders.map(p => {
|
|
181
|
+
let entryCount = 0;
|
|
182
|
+
try {
|
|
183
|
+
entryCount = workspaceManager.getGraph(p.name).listEntityIds().length;
|
|
184
|
+
}
|
|
185
|
+
catch { /* skip */ }
|
|
186
|
+
return {
|
|
187
|
+
entryCount,
|
|
188
|
+
newDisplayName: `Archive: ${target.displayName} (${date})`,
|
|
189
|
+
};
|
|
190
|
+
});
|
|
191
|
+
const shared = sharedSoleAdmin.map(f => {
|
|
192
|
+
const repo = config.repos.find(r => r.name === f);
|
|
193
|
+
let entryCount = 0;
|
|
194
|
+
try {
|
|
195
|
+
entryCount = workspaceManager.getGraph(f).listEntityIds().length;
|
|
196
|
+
}
|
|
197
|
+
catch { /* skip */ }
|
|
198
|
+
return {
|
|
199
|
+
name: f,
|
|
200
|
+
displayName: repo?.display_name ?? f,
|
|
201
|
+
entryCount,
|
|
202
|
+
};
|
|
203
|
+
});
|
|
204
|
+
return reply.send({ personal, shared });
|
|
116
205
|
});
|
|
117
206
|
// PATCH /api/auth/users/:id/password — reset a user's password (admin only)
|
|
118
207
|
fastify.patch('/api/auth/users/:id/password', async (req, reply) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-api.js","sourceRoot":"","sources":["../../../src/server/routes/auth-api.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"auth-api.js","sourceRoot":"","sources":["../../../src/server/routes/auth-api.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
*
|
|
7
7
|
* Single agent instance per server process (single-user v1).
|
|
8
8
|
*/
|
|
9
|
+
import { parseFollowups } from '../../agent/followups.js';
|
|
9
10
|
export async function registerChatRoutes(fastify, agent, memoryService) {
|
|
10
11
|
// POST /api/chat — send message, get full response
|
|
11
12
|
fastify.post('/api/chat', async (req, reply) => {
|
|
@@ -179,18 +180,9 @@ export async function registerChatRoutes(fastify, agent, memoryService) {
|
|
|
179
180
|
}
|
|
180
181
|
catch { /* non-fatal */ }
|
|
181
182
|
}
|
|
182
|
-
// Parse follow-up suggestions from response
|
|
183
|
-
const
|
|
184
|
-
|
|
185
|
-
let suggestions;
|
|
186
|
-
let cleanContent = response.content;
|
|
187
|
-
if (followupMatch) {
|
|
188
|
-
try {
|
|
189
|
-
suggestions = JSON.parse(followupMatch[1]);
|
|
190
|
-
cleanContent = response.content.slice(0, followupMatch.index).trimEnd();
|
|
191
|
-
}
|
|
192
|
-
catch { /* malformed — ignore */ }
|
|
193
|
-
}
|
|
183
|
+
// Parse follow-up suggestions from response (shared with CLI transport)
|
|
184
|
+
const { content: parsedContent, suggestions } = parseFollowups(response.content);
|
|
185
|
+
let cleanContent = parsedContent;
|
|
194
186
|
// If the agent finished with no text AND no tool call, surface that
|
|
195
187
|
// explicitly so the UI doesn't look frozen. Users reported "silent
|
|
196
188
|
// failures" that were actually legitimately-empty assistant turns.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat.js","sourceRoot":"","sources":["../../../src/server/routes/chat.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;
|
|
1
|
+
{"version":3,"file":"chat.js","sourceRoot":"","sources":["../../../src/server/routes/chat.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAS1D,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,OAAwB,EACxB,KAAwB,EACxB,aAA6B;IAE7B,mDAAmD;IACnD,OAAO,CAAC,IAAI,CACV,WAAW,EACX,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;QACnB,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC;QAE7B,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;YAC/D,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,qBAAqB,EAAE,CAAC,CAAC;QAClE,CAAC;QAED,IAAI,CAAC;YACH,MAAM,IAAI,GAAI,GAAW,CAAC,IAAI,IAAI,IAAI,CAAC;YACvC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,aAAa,CAAC,SAAS,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;YACzE,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9B,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC;YAC3C,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,IAAI,aAAa,EAAE,CAAC,CAAC;QACzE,CAAC;IACH,CAAC,CACF,CAAC;IAEF,qDAAqD;IACrD,OAAO,CAAC,IAAI,CACV,kBAAkB,EAClB,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;QACnB,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC;QAE1D,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;YAC/D,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,qBAAqB,EAAE,CAAC,CAAC;QAClE,CAAC;QAED,MAAM,IAAI,GAAI,GAAW,CAAC,IAAI,IAAI,IAAI,CAAC;QACvC,MAAM,iBAAiB,GAAG,SAAS;YACjC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,EAAE,IAAI,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;YACrD,CAAC,CAAC,SAAS,CAAC;QAEd,kBAAkB;QAClB,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,mBAAmB,CAAC,CAAC;QACzD,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;QACjD,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;QAChD,KAAK,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;QAEzB,IAAI,UAAU,GAAG,KAAK,CAAC;QAEvB,MAAM,SAAS,GAAG,CAAC,IAAY,EAAE,EAAE;YACjC,IAAI,UAAU,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;gBACtC,UAAU,GAAG,IAAI,CAAC;gBAClB,OAAO;YACT,CAAC;YACD,IAAI,CAAC;gBACH,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACvD,CAAC;YAAC,MAAM,CAAC;gBACP,UAAU,GAAG,IAAI,CAAC;YACpB,CAAC;QACH,CAAC,CAAC;QAEF,2BAA2B;QAC3B,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACpD,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAEpD,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC,SAAS,CAC9C,iBAAiB,EACjB;gBACE,IAAI;gBACJ,WAAW,EAAE,CAAC,GAAa,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC;gBAChF,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;aACnI,EACD,KAAK,EAAE,QAAQ,EAAE,EAAE;gBACjB,0CAA0C;gBAC1C,IAAI,UAAU,GAAG,KAAK,CAAC;gBACvB,IAAI,YAAY,GAAG,KAAK,CAAC;gBACzB,MAAM,WAAW,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,KAAU,EAAE,EAAE;oBACpD,IAAI,KAAK,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;wBACpC,MAAM,QAAQ,GAAG,KAAK,CAAC,qBAAqB,CAAC;wBAC7C,IAAI,QAAQ,EAAE,IAAI,KAAK,YAAY,EAAE,CAAC;4BACpC,IAAI,YAAY,IAAI,UAAU,EAAE,CAAC;gCAC/B,SAAS,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;4BAC7C,CAAC;4BACD,YAAY,GAAG,KAAK,CAAC;4BACrB,UAAU,GAAG,IAAI,CAAC;4BAClB,SAAS,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;wBACrD,CAAC;oBACH,CAAC;yBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;wBACxC,IAAI,KAAK,CAAC,OAAO,EAAE,IAAI,KAAK,WAAW,EAAE,CAAC;4BACxC,YAAY,GAAG,IAAI,CAAC;4BACpB,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC;gCAChD,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;oCAC5C,SAAS,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;gCACtD,CAAC;4BACH,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC,CAAC,CAAC;gBAEH,6DAA6D;gBAC7D,gEAAgE;gBAChE,+DAA+D;gBAC/D,+DAA+D;gBAC/D,IAAI,aAAa,GAAG,EAAE,CAAC;gBACvB,IAAI,OAAO,EAAE,CAAC;oBACZ,IAAI,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;wBAClC,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;wBAC7C,aAAa,GAAG,8BAA8B,IAAI,8HAA8H,IAAI,iCAAiC,CAAC;oBACxN,CAAC;yBAAM,CAAC;wBACN,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;wBACjC,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;4BACtB,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC;4BAC/B,IAAI,CAAC;gCACH,MAAM,KAAK,GAAG,KAAK,CAAC,mBAAmB,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gCACzD,IAAI,KAAK,EAAE,CAAC;oCACV,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,IAAW,EAAE,EAAE,CAAC,CAAC;oCAC1C,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;oCAC7B,MAAM,aAAa,GAAG,MAAM,CAAC,QAAQ,EAAE,OAAO,IAAI,EAAE,CAAC;oCACrD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;yCAC/B,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;yCAClH,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;yCACzE,IAAI,CAAC,IAAI,CAAC,CAAC;oCACd,aAAa,GAAG,6BAA6B,OAAO,6BAA6B,OAAO,wBAAwB,aAAa,wEAAwE,CAAC;gCACxM,CAAC;4BACH,CAAC;4BAAC,MAAM,CAAC;gCACP,aAAa,GAAG,6BAA6B,OAAO,OAAO,CAAC;4BAC9D,CAAC;wBACH,CAAC;6BAAM,CAAC;4BACN,aAAa,GAAG,uBAAuB,OAAO,OAAO,CAAC;wBACxD,CAAC;oBACH,CAAC;gBACH,CAAC;gBAED,MAAM,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,kBAAkB,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;gBACvG,MAAM,WAAW,GAAG,UAAU,GAAG,aAAa,GAAG,OAAO,CAAC;gBAEzD,kCAAkC;gBAClC,MAAM,MAAM,GAAG,MAAM,IAAI,OAAO,CAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;oBACxE,IAAI,OAAO,GAAG,EAAE,CAAC;oBACjB,IAAI,qBAAqB,GAAG,CAAC,CAAC;oBAC9B,IAAI,aAAa,GAAG,CAAC,CAAC;oBACtB,MAAM,eAAe,GAA2B,EAAE,CAAC;oBACnD,IAAI,cAAkC,CAAC;oBACvC,IAAI,gBAAoC,CAAC;oBACzC,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,KAAU,EAAE,EAAE;wBAC/C,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,IAAI,KAAK,CAAC,OAAO,EAAE,IAAI,KAAK,WAAW,EAAE,CAAC;4BACxE,qBAAqB,EAAE,CAAC;4BACxB,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;4BAC3C,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;gCACvB,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;4BAC/D,CAAC;4BACD,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;4BAChE,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;4BACpE,aAAa,IAAI,UAAU,CAAC,MAAM,CAAC;4BACnC,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU;gCAAE,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC;4BACxE,IAAI,KAAK,CAAC,OAAO,CAAC,YAAY;gCAAE,gBAAgB,GAAG,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC;4BAC9E,8DAA8D;4BAC9D,+DAA+D;4BAC/D,+CAA+C;4BAC/C,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;4BAC7D,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;gCAAE,OAAO,GAAG,QAAQ,CAAC;wBAC9C,CAAC;6BAAM,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;4BACtC,MAAM,EAAE,CAAC;4BACT,IAAI,CAAC,OAAO,EAAE,CAAC;gCACb,OAAO,CAAC,IAAI,CACV,uCAAuC;oCACvC,sBAAsB,qBAAqB,eAAe,aAAa,IAAI;oCAC3E,cAAc,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI;oCACjD,cAAc,cAAc,IAAI,KAAK,IAAI;oCACzC,gBAAgB,IAAI,CAAC,SAAS,CAAC,gBAAgB,IAAI,IAAI,CAAC,IAAI;oCAC5D,aAAa,iBAAiB,aAAa,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CACnE,CAAC;4BACJ,CAAC;4BACD,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;wBACvB,CAAC;oBACH,CAAC,CAAC,CAAC;oBACH,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC1E,CAAC,CAAC,CAAC;gBAEH,WAAW,EAAE,CAAC;gBACd,OAAO,MAAM,CAAC;YAChB,CAAC,EACD,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,eAAe,EAAE,OAAO,EAAE,CAC/C,CAAC;YAEF,4CAA4C;YAC5C,IAAI,aAAa,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;gBACtC,IAAI,CAAC;oBACH,MAAM,OAAO,GAAG,SAAS,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,YAAY,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;oBACxK,aAAa,CAAC,kBAAkB,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;gBACzF,CAAC;gBAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC;YAC7B,CAAC;YAED,wEAAwE;YACxE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,GAAG,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YACjF,IAAI,YAAY,GAAG,aAAa,CAAC;YAEjC,oEAAoE;YACpE,mEAAmE;YACnE,mEAAmE;YACnE,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;gBACxC,YAAY,GAAG,qEAAqE,CAAC;YACvF,CAAC;YACD,SAAS,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC,CAAC;QAClE,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,kEAAkE;YAClE,mEAAmE;YACnE,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,OAAO,IAAI,GAAG,CAAC,CAAC;YAC/E,SAAS,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,IAAI,aAAa,EAAE,CAAC,CAAC;QACtE,CAAC;QAED,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;IAClB,CAAC,CACF,CAAC;IAEF,qDAAqD;IACrD,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;QACpD,IAAI,CAAC;YACH,KAAK,CAAC,KAAK,EAAE,CAAC;YACd,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC3B,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QACxD,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
import { spawn } from 'child_process';
|
|
20
20
|
import { join } from 'path';
|
|
21
21
|
import { existsSync } from 'fs';
|
|
22
|
-
import
|
|
22
|
+
import * as access from '../../services/access-control.js';
|
|
23
23
|
import { checkRateLimit, recordFailedAttempt, clearAttempts } from './auth-api.js';
|
|
24
24
|
/**
|
|
25
25
|
* Resolve Basic Auth header to an AuthUser, or null if open mode.
|
|
@@ -81,14 +81,11 @@ function authenticateBasic(authHeader, authService) {
|
|
|
81
81
|
* Solo folders (memberCount === 1, i.e. de-facto private) remain gated: only the
|
|
82
82
|
* single member can access, even if the caller is the workspace owner.
|
|
83
83
|
*/
|
|
84
|
-
function canAccessFolder(user, repoName, authService,
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
if (isWorkspaceOwner(user.role) && authService.getFolderMembers(repoName).length > 1)
|
|
90
|
-
return true;
|
|
91
|
-
return false;
|
|
84
|
+
function canAccessFolder(user, repoName, authService, workspaceManager) {
|
|
85
|
+
// Delegate to the shared helper so personal-folder restrictions apply
|
|
86
|
+
// here too — a stale folder_access row must not let a non-owner clone
|
|
87
|
+
// someone else's personal repo via git transport.
|
|
88
|
+
return access.hasRepoAccess(user ?? undefined, repoName, workspaceManager, authService);
|
|
92
89
|
}
|
|
93
90
|
/** Returns true only if the path is an initialized git repo. */
|
|
94
91
|
function isGitRepo(repoPath) {
|
|
@@ -102,13 +99,10 @@ function resolveRepoPath(repoName, workspaceManager, workspacePath, user, authSe
|
|
|
102
99
|
const config = workspaceManager.getRepoConfig(repoName);
|
|
103
100
|
if (!config)
|
|
104
101
|
return null;
|
|
105
|
-
//
|
|
106
|
-
//
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
if (!(isWorkspaceOwner(user.role) && authService.getFolderMembers(repoName).length > 1)) {
|
|
110
|
-
return null;
|
|
111
|
-
}
|
|
102
|
+
// Delegate to the shared access-control helper — same rule as canAccessFolder
|
|
103
|
+
// and the rest of the API layer (personal-folder restriction enforced).
|
|
104
|
+
if (!access.hasRepoAccess(user ?? undefined, repoName, workspaceManager, authService)) {
|
|
105
|
+
return null;
|
|
112
106
|
}
|
|
113
107
|
return join(workspacePath, config.path);
|
|
114
108
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git-http.js","sourceRoot":"","sources":["../../../src/server/routes/git-http.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"git-http.js","sourceRoot":"","sources":["../../../src/server/routes/git-http.ts"],"names":[],"mappings":"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"}
|