studiograph 1.3.48-next.145 → 1.3.48-next.147
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/core/graph.d.ts +5 -2
- package/dist/core/graph.js +42 -13
- package/dist/core/graph.js.map +1 -1
- package/dist/mcp/tools.js +198 -7
- package/dist/mcp/tools.js.map +1 -1
- package/dist/server/routes/graph-api.js +32 -22
- package/dist/server/routes/graph-api.js.map +1 -1
- package/dist/web/_app/immutable/chunks/{IhKFXTqv2.js → 1ow6NjVe2.js} +1 -1
- package/dist/web/_app/immutable/chunks/{CjevW2Qq2.js → B984tsZA2.js} +1 -1
- package/dist/web/_app/immutable/chunks/{BuBxqVY0.js → BBAkaKIs.js} +1 -1
- package/dist/web/_app/immutable/chunks/{CH_BEJSU.js → BhPT_DrW.js} +1 -1
- package/dist/web/_app/immutable/chunks/{-i3atkp1.js → BptrpK7M.js} +1 -1
- package/dist/web/_app/immutable/chunks/{DoUuLNEC2.js → Bs_EeCMu2.js} +1 -1
- package/dist/web/_app/immutable/chunks/{B4LMKXzG2.js → BzFgXoNQ2.js} +1 -1
- package/dist/web/_app/immutable/chunks/{BlKNC_CG.js → C3SYwzjm.js} +1 -1
- package/dist/web/_app/immutable/chunks/{BhhY2h8M2.js → C806FKJ_2.js} +2 -2
- package/dist/web/_app/immutable/chunks/{Czpc3pHR.js → CAtYAdlS.js} +1 -1
- package/dist/web/_app/immutable/chunks/{DPRbQVbX2.js → CEXp1e6I2.js} +1 -1
- package/dist/web/_app/immutable/chunks/{eVq8Dieq.js → CGqcAagH.js} +1 -1
- package/dist/web/_app/immutable/chunks/{BRP4IHXa.js → CMOZvBaO.js} +1 -1
- package/dist/web/_app/immutable/chunks/{BxRTHrWU2.js → CV_SCu7K2.js} +1 -1
- package/dist/web/_app/immutable/chunks/{C6uSb-OZ.js → CYzMXeJc.js} +1 -1
- package/dist/web/_app/immutable/chunks/{da3Uw2WQ2.js → CdtY2xy32.js} +1 -1
- package/dist/web/_app/immutable/chunks/CgzDINMO.js +1 -0
- package/dist/web/_app/immutable/chunks/{CF70cvY5.js → CqfRErQ_.js} +1 -1
- package/dist/web/_app/immutable/chunks/{PArpKIbY.js → D0vXdcjv.js} +1 -1
- package/dist/web/_app/immutable/chunks/{DhDmlwMu2.js → DFN9WeIZ2.js} +1 -1
- package/dist/web/_app/immutable/chunks/{CHQKe2_W.js → DLzU5KMz.js} +1 -1
- package/dist/web/_app/immutable/chunks/{BzkuzYKJ.js → DdxeoCqB.js} +1 -1
- package/dist/web/_app/immutable/chunks/{7hkZ9OE8.js → DgAGYkR7.js} +1 -1
- package/dist/web/_app/immutable/chunks/{DcoJMw4J.js → MyP-Fy8f.js} +1 -1
- package/dist/web/_app/immutable/chunks/{zKZ_AnTh2.js → mB1bI1zb2.js} +1 -1
- package/dist/web/_app/immutable/chunks/{CkVu4Lc0.js → rcgf8DL-.js} +3 -3
- package/dist/web/_app/immutable/entry/{app.OmY159L4.js → app.DRL2y_Yh.js} +2 -2
- package/dist/web/_app/immutable/entry/start.BgT9j-t_.js +1 -0
- package/dist/web/_app/immutable/nodes/{0.DJkEJS05.js → 0.zK2C0X4Z.js} +2 -2
- package/dist/web/_app/immutable/nodes/{1.CMTHIX32.js → 1.B7q4Spfr.js} +1 -1
- package/dist/web/_app/immutable/nodes/{10.CfVVupgW.js → 10.Gptf67mh.js} +1 -1
- package/dist/web/_app/immutable/nodes/{11.DtBtzKlE.js → 11.BPf9A3F9.js} +1 -1
- package/dist/web/_app/immutable/nodes/{12.D7wYv1Ft.js → 12.iT7bzfQ1.js} +1 -1
- package/dist/web/_app/immutable/nodes/{13.BdHxji06.js → 13.BUNp-JQT.js} +1 -1
- package/dist/web/_app/immutable/nodes/{2.CuavLx3e.js → 2.BZnfR8b3.js} +4 -4
- package/dist/web/_app/immutable/nodes/{3.XttmvSVo.js → 3.DmGM2lWv.js} +1 -1
- package/dist/web/_app/immutable/nodes/{4.BcZHPVn8.js → 4.lTVzMTvk.js} +2 -2
- package/dist/web/_app/immutable/nodes/{5.OZrFtaeI.js → 5.C-Sk3n2I.js} +1 -1
- package/dist/web/_app/immutable/nodes/{6.C1sDe_hb.js → 6.ezZ3uiT_.js} +1 -1
- package/dist/web/_app/immutable/nodes/{7.DxZvsXL3.js → 7.B1L9Uav_.js} +1 -1
- package/dist/web/_app/immutable/nodes/{8.giCNe9Sc.js → 8.DXMl8_5R.js} +1 -1
- package/dist/web/_app/immutable/nodes/{9.Dl9cHLds.js → 9.CuvOpBZ5.js} +1 -1
- package/dist/web/_app/version.json +1 -1
- package/dist/web/index.html +12 -12
- package/package.json +1 -1
- package/dist/web/_app/immutable/chunks/D22kxnns.js +0 -1
- package/dist/web/_app/immutable/entry/start.DznfUinL.js +0 -1
package/dist/mcp/tools.js
CHANGED
|
@@ -38,6 +38,87 @@ function shape(id, entityType, data, extra) {
|
|
|
38
38
|
const { id: _id, entity_type: _et, ...rest } = data;
|
|
39
39
|
return { id, type: entityType, ...rest, ...extra };
|
|
40
40
|
}
|
|
41
|
+
/**
|
|
42
|
+
* Default subfolders for entity types when the caller omits `folder_path`.
|
|
43
|
+
* Existing entries with no folder live at the repo root; new entries of these
|
|
44
|
+
* types route into a typed subfolder so the repo stays organised by default.
|
|
45
|
+
* An explicit `folder_path: ""` (or any explicit value) overrides this map.
|
|
46
|
+
*/
|
|
47
|
+
const DEFAULT_FOLDER_BY_TYPE = {
|
|
48
|
+
person: 'People',
|
|
49
|
+
organization: 'Organizations',
|
|
50
|
+
};
|
|
51
|
+
/** Convert an absolute entity path to a repo-relative POSIX path. */
|
|
52
|
+
function relPathOf(absPath, repoRoot) {
|
|
53
|
+
return absPath.startsWith(repoRoot + '/') ? absPath.slice(repoRoot.length + 1) : absPath;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Build the git-author / audit-trail identity for an MCP session. `handle`
|
|
57
|
+
* is the canonical id stamped into `created_by` / `updated_by` and used as
|
|
58
|
+
* the git author; falls back gracefully if a token from before the handle
|
|
59
|
+
* backfill is still in use.
|
|
60
|
+
*/
|
|
61
|
+
function buildActor(user) {
|
|
62
|
+
const handle = user.handle || `user-${user.id}`;
|
|
63
|
+
return {
|
|
64
|
+
id: handle,
|
|
65
|
+
name: user.displayName || handle,
|
|
66
|
+
email: `${handle}@studiograph.local`,
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* EntityBaseSchema requires entity_id, created_at, updated_at, created_by,
|
|
71
|
+
* and updated_by. External MCP clients (Claude Desktop, Cursor, etc.)
|
|
72
|
+
* typically pass only type-specific data plus the top-level entity_id arg,
|
|
73
|
+
* so the connector seeds the rest rather than forcing every caller to know
|
|
74
|
+
* the convention. Caller-supplied values for created_at / created_by / etc.
|
|
75
|
+
* win; entity_id is always overwritten to match the top-level arg (it's
|
|
76
|
+
* the lookup key and cannot diverge from the filename).
|
|
77
|
+
*/
|
|
78
|
+
function stampCreateBaseFields(data, entityId, actorHandle) {
|
|
79
|
+
const now = new Date().toISOString();
|
|
80
|
+
return {
|
|
81
|
+
created_at: now,
|
|
82
|
+
updated_at: now,
|
|
83
|
+
created_by: actorHandle,
|
|
84
|
+
updated_by: actorHandle,
|
|
85
|
+
...data,
|
|
86
|
+
entity_id: entityId,
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Person.status accepts only `current` | `former` per PersonSchema, but
|
|
91
|
+
* real-world payloads from external agents carry many synonyms. Map them
|
|
92
|
+
* to canonical before validation rejects the call. Unknown values fall
|
|
93
|
+
* through unchanged so validation surfaces them loudly.
|
|
94
|
+
*
|
|
95
|
+
* On create: defaults missing status to `current`.
|
|
96
|
+
* On update: only normalizes when status is supplied — don't fabricate a
|
|
97
|
+
* field the caller didn't ask to change.
|
|
98
|
+
*/
|
|
99
|
+
const PERSON_STATUS_ALIASES = {
|
|
100
|
+
current: 'current',
|
|
101
|
+
active: 'current',
|
|
102
|
+
prospective: 'current',
|
|
103
|
+
'prospective-contact': 'current',
|
|
104
|
+
'current-contact': 'current',
|
|
105
|
+
former: 'former',
|
|
106
|
+
'former-contact': 'former',
|
|
107
|
+
inactive: 'former',
|
|
108
|
+
past: 'former',
|
|
109
|
+
};
|
|
110
|
+
function normalizePersonStatus(data, isCreate) {
|
|
111
|
+
const raw = data.status;
|
|
112
|
+
if (raw === undefined || raw === null || raw === '') {
|
|
113
|
+
return isCreate ? { ...data, status: 'current' } : data;
|
|
114
|
+
}
|
|
115
|
+
if (typeof raw !== 'string')
|
|
116
|
+
return data;
|
|
117
|
+
const mapped = PERSON_STATUS_ALIASES[raw.toLowerCase()];
|
|
118
|
+
if (!mapped || mapped === raw)
|
|
119
|
+
return data;
|
|
120
|
+
return { ...data, status: mapped };
|
|
121
|
+
}
|
|
41
122
|
// ── tool registration ─────────────────────────────────────────────────────────
|
|
42
123
|
export function registerTools(server, wm, authService, ctx) {
|
|
43
124
|
const { user, wsHub, apiTokenName, commentService } = ctx;
|
|
@@ -235,11 +316,27 @@ export function registerTools(server, wm, authService, ctx) {
|
|
|
235
316
|
repo: z.string().describe('Folder name'),
|
|
236
317
|
entity_type: createEntityTypeSchema.describe(`Entity type. Allowed: ${mcpAllowedCreateTypes.join(', ')}.`),
|
|
237
318
|
entity_id: z.string().describe('Entity ID (kebab-case slug)'),
|
|
238
|
-
data: z.record(z.string(), z.unknown()).describe('
|
|
319
|
+
data: z.record(z.string(), z.unknown()).describe('Type-specific frontmatter fields (e.g. for person: name, email, organization, role). ' +
|
|
320
|
+
'Base fields (entity_id, entity_type, created_at, updated_at, created_by, updated_by) ' +
|
|
321
|
+
'are stamped automatically — do not include them.'),
|
|
239
322
|
content: z.string().optional().describe('Markdown body content'),
|
|
323
|
+
folder_path: z.string().optional().describe('Repo-relative subfolder to place the entry in (e.g. "People", "clients/acme"). ' +
|
|
324
|
+
'Omit to use the per-type default (person → People, organization → Organizations); ' +
|
|
325
|
+
'pass an empty string to force the repo root. Parent folders are auto-created.'),
|
|
240
326
|
});
|
|
241
|
-
server.registerTool('create_entity', {
|
|
242
|
-
|
|
327
|
+
server.registerTool('create_entity', {
|
|
328
|
+
description: 'Create a new entity in a folder. Commits to git automatically. ' +
|
|
329
|
+
'Base frontmatter (entity_id, created_at, updated_at, created_by, updated_by) is ' +
|
|
330
|
+
'stamped automatically — `data` should only carry type-specific fields. ' +
|
|
331
|
+
'For person entries, `status` accepts synonyms (active/prospective/inactive/past/etc.) ' +
|
|
332
|
+
'and normalizes to `current` | `former`; defaults to `current` when omitted. ' +
|
|
333
|
+
'Without `folder_path`, person entries route to People/ and organization entries to Organizations/; ' +
|
|
334
|
+
'other types land at the repo root. Pass `folder_path: ""` to force the repo root, ' +
|
|
335
|
+
'or any subfolder string (e.g. "Clients/Acme") to place it explicitly. ' +
|
|
336
|
+
'Response includes the final repo-relative `path`.',
|
|
337
|
+
inputSchema: createSchema,
|
|
338
|
+
}, async (args) => {
|
|
339
|
+
const { repo, entity_type, entity_id, data, content, folder_path } = createSchema.parse(args);
|
|
243
340
|
if (!hasRepoAccess(user, repo, wm, authService))
|
|
244
341
|
return notFound(repo);
|
|
245
342
|
if (!canWriteRepo(user, repo, wm, authService)) {
|
|
@@ -257,16 +354,40 @@ export function registerTools(server, wm, authService, ctx) {
|
|
|
257
354
|
: ` Allowed: ${mcpAllowedCreateTypes.join(', ')}.`;
|
|
258
355
|
return fail(new Error(`Entity type "${entity_type}" is not a known canonical or workspace custom type.${hint}`));
|
|
259
356
|
}
|
|
357
|
+
// Explicit folder_path (including "") wins; otherwise apply the per-type
|
|
358
|
+
// default so the agent doesn't have to know the workspace convention.
|
|
359
|
+
const effectiveFolder = folder_path !== undefined
|
|
360
|
+
? folder_path
|
|
361
|
+
: (DEFAULT_FOLDER_BY_TYPE[entity_type] ?? '');
|
|
362
|
+
const actor = buildActor(user);
|
|
363
|
+
// Stamp base fields (entity_id / created_at / updated_at / created_by /
|
|
364
|
+
// updated_by) so external MCP clients don't have to know the schema's
|
|
365
|
+
// required-frontmatter contract. Then normalize person status synonyms
|
|
366
|
+
// and default missing status to 'current' on create.
|
|
367
|
+
let payload = stampCreateBaseFields(data, entity_id, actor.id);
|
|
368
|
+
if (entity_type === 'person') {
|
|
369
|
+
payload = normalizePersonStatus(payload, true);
|
|
370
|
+
}
|
|
260
371
|
return withAgentActivity(repo, 'creating', async () => {
|
|
261
372
|
try {
|
|
262
|
-
const
|
|
373
|
+
const graph = wm.getGraph(repo);
|
|
374
|
+
const entity = await graph.create({
|
|
263
375
|
entityType: entity_type,
|
|
264
376
|
entityId: entity_id,
|
|
265
|
-
data:
|
|
377
|
+
data: payload,
|
|
266
378
|
content,
|
|
379
|
+
folderPath: effectiveFolder || undefined,
|
|
380
|
+
user: actor,
|
|
267
381
|
});
|
|
268
382
|
emitEntityChange('created', repo, entity.entityType, entity.id);
|
|
269
|
-
return ok({
|
|
383
|
+
return ok({
|
|
384
|
+
success: true,
|
|
385
|
+
id: entity.id,
|
|
386
|
+
type: entity.entityType,
|
|
387
|
+
repo,
|
|
388
|
+
path: relPathOf(entity.path, graph.getRepoPath()),
|
|
389
|
+
folder_path: entity.folder_path,
|
|
390
|
+
});
|
|
270
391
|
}
|
|
271
392
|
catch (err) {
|
|
272
393
|
return fail(err);
|
|
@@ -330,6 +451,9 @@ export function registerTools(server, wm, authService, ctx) {
|
|
|
330
451
|
}
|
|
331
452
|
server.registerTool('update_entity', {
|
|
332
453
|
description: 'Update an existing entity. Data fields are merged with existing frontmatter; content replaces the markdown body. ' +
|
|
454
|
+
'Callers do not need to resend immutable base fields (entity_id, created_at, created_by) — they are preserved from disk. ' +
|
|
455
|
+
'`updated_at` and `updated_by` are stamped automatically. ' +
|
|
456
|
+
'For person entries, `status` synonyms are normalized to `current` | `former` when supplied. ' +
|
|
333
457
|
'Returns the post-write entity snapshot plus diagnostic flags (frontmatter_changed, content_changed, noop, commit) ' +
|
|
334
458
|
'so the caller can verify the change landed without a separate get_entity call.',
|
|
335
459
|
inputSchema: updateSchema,
|
|
@@ -343,6 +467,19 @@ export function registerTools(server, wm, authService, ctx) {
|
|
|
343
467
|
if (data === undefined && content === undefined) {
|
|
344
468
|
return fail(new Error('update_entity requires at least one of `data` or `content`'));
|
|
345
469
|
}
|
|
470
|
+
const actor = buildActor(user);
|
|
471
|
+
// Defensive: if data is supplied, ensure entity_id matches the top-level
|
|
472
|
+
// arg (overwriting any caller-sent value that disagrees with the
|
|
473
|
+
// filename) and normalize person status synonyms when present. graph.update
|
|
474
|
+
// handles created_by / created_at preservation and updated_at / updated_by
|
|
475
|
+
// stamping itself via the merge with existing.data.
|
|
476
|
+
let mergedData;
|
|
477
|
+
if (data !== undefined) {
|
|
478
|
+
mergedData = { ...data, entity_id };
|
|
479
|
+
if (entity_type === 'person') {
|
|
480
|
+
mergedData = normalizePersonStatus(mergedData, false);
|
|
481
|
+
}
|
|
482
|
+
}
|
|
346
483
|
return withAgentActivity(repo, 'editing', async () => {
|
|
347
484
|
try {
|
|
348
485
|
const graph = wm.getGraph(repo);
|
|
@@ -367,12 +504,13 @@ export function registerTools(server, wm, authService, ctx) {
|
|
|
367
504
|
const entity = await graph.update({
|
|
368
505
|
entityType: entity_type,
|
|
369
506
|
entityId: entity_id,
|
|
370
|
-
data:
|
|
507
|
+
data: mergedData,
|
|
371
508
|
content,
|
|
372
509
|
source: content !== undefined
|
|
373
510
|
? (yjsAwareEnabled ? 'server-yjs-aware' : 'legacy-direct')
|
|
374
511
|
: undefined,
|
|
375
512
|
yjsAware: yjsAwareEnabled && content !== undefined,
|
|
513
|
+
user: actor,
|
|
376
514
|
});
|
|
377
515
|
const afterFrontmatter = semanticFrontmatter(entity.data);
|
|
378
516
|
const afterContent = entity.document.content;
|
|
@@ -437,6 +575,59 @@ export function registerTools(server, wm, authService, ctx) {
|
|
|
437
575
|
}
|
|
438
576
|
});
|
|
439
577
|
});
|
|
578
|
+
// ── move_entity ───────────────────────────────────────────────────────────
|
|
579
|
+
//
|
|
580
|
+
// Relocate an entity to a different folder within the same repo. Wraps
|
|
581
|
+
// graph.move() which renames the file on disk and commits the rename so
|
|
582
|
+
// git's similarity detection preserves history. The (type, id) identity
|
|
583
|
+
// is unchanged — get_entity, search, list, validate_wikilinks, and the
|
|
584
|
+
// history tools all walk the entire repo tree and continue to find the
|
|
585
|
+
// entry at its new path. For cross-repo transfers, the web UI's bulk-move
|
|
586
|
+
// dialog or POST /api/repos/:repo/transfer is the right surface.
|
|
587
|
+
const moveEntitySchema = z.object({
|
|
588
|
+
repo: z.string().describe('Folder name containing the entry'),
|
|
589
|
+
entity_type: z.string().describe('Entity type'),
|
|
590
|
+
entity_id: z.string().describe('Entity ID'),
|
|
591
|
+
folder_path: z.string().describe('Target repo-relative folder path (e.g. "People", "Clients/Acme"). ' +
|
|
592
|
+
'Empty string moves the entry to the repo root. Parent folders are auto-created.'),
|
|
593
|
+
overwrite: z.boolean().optional().describe('When true, replace an existing entry at the destination. The occupant ' +
|
|
594
|
+
'must itself be a parseable entity — README/.gitkeep/etc. are never ' +
|
|
595
|
+
'clobbered. Defaults to false; the call errors with "Path already ' +
|
|
596
|
+
'occupied" when the destination is taken.'),
|
|
597
|
+
});
|
|
598
|
+
server.registerTool('move_entity', {
|
|
599
|
+
description: 'Move an existing entry to a different folder within the same folder/repo. ' +
|
|
600
|
+
'Preserves frontmatter, markdown content, entity ID, and git history (file is renamed, not rewritten). ' +
|
|
601
|
+
'Use this to organise entries into subfolders after creation — e.g. moving a person into People/. ' +
|
|
602
|
+
'By default, errors if the destination already has an entry; pass `overwrite: true` to replace.',
|
|
603
|
+
inputSchema: moveEntitySchema,
|
|
604
|
+
}, async (args) => {
|
|
605
|
+
const { repo, entity_type, entity_id, folder_path, overwrite } = moveEntitySchema.parse(args);
|
|
606
|
+
if (!hasRepoAccess(user, repo, wm, authService))
|
|
607
|
+
return notFound(repo);
|
|
608
|
+
if (!canWriteRepo(user, repo, wm, authService)) {
|
|
609
|
+
return fail(new Error(`You do not have write access to folder "${repo}"`));
|
|
610
|
+
}
|
|
611
|
+
const actor = buildActor(user);
|
|
612
|
+
return withAgentActivity(repo, 'editing', async () => {
|
|
613
|
+
try {
|
|
614
|
+
const graph = wm.getGraph(repo);
|
|
615
|
+
const moved = await graph.move(entity_type, entity_id, folder_path, undefined, actor, overwrite);
|
|
616
|
+
emitEntityChange('updated', repo, moved.entityType, moved.id);
|
|
617
|
+
return ok({
|
|
618
|
+
success: true,
|
|
619
|
+
id: moved.id,
|
|
620
|
+
type: moved.entityType,
|
|
621
|
+
repo,
|
|
622
|
+
path: relPathOf(moved.path, graph.getRepoPath()),
|
|
623
|
+
folder_path: moved.folder_path,
|
|
624
|
+
});
|
|
625
|
+
}
|
|
626
|
+
catch (err) {
|
|
627
|
+
return fail(err);
|
|
628
|
+
}
|
|
629
|
+
});
|
|
630
|
+
});
|
|
440
631
|
// ── validate_wikilinks ────────────────────────────────────────────────────
|
|
441
632
|
const validateWikilinksSchema = z.object({
|
|
442
633
|
repo: z.string().describe('Folder name'),
|
package/dist/mcp/tools.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,8 +10,8 @@ import { WorkspaceAccessService } from '../../services/workspace-access.js';
|
|
|
10
10
|
import { Workspace } from '../../core/workspace.js';
|
|
11
11
|
import { createSharedFolder, FolderCreationError } from '../../services/folder-creation.js';
|
|
12
12
|
import { existsSync, mkdirSync, readFileSync, rmSync, writeFileSync } from 'fs';
|
|
13
|
-
import { createHash } from 'node:crypto';
|
|
14
13
|
import { dirname, join } from 'path';
|
|
14
|
+
import { StaleBaseRevisionError } from '../../core/graph.js';
|
|
15
15
|
import { checkEagerSkillPermission, filterWikilinks, getAccessibleEntityIds, getAccessibleRepos, graphForAdmin as resolveGraphForAdmin, graphForRead as resolveGraphForRead, graphForWrite as resolveGraphForWrite, isFolderAdminOrOwner, reqGitUser, reqUser, } from './graph-api-access.js';
|
|
16
16
|
import { BridgeError, assertCanChangeUserHandle, validateUserHandleInPayload } from '../../services/user-person-bridge.js';
|
|
17
17
|
import { log } from '../../utils/log.js';
|
|
@@ -584,29 +584,21 @@ export async function registerGraphApiRoutes(fastify, workspaceManager, authServ
|
|
|
584
584
|
if (eagerError)
|
|
585
585
|
return reply.status(403).send({ error: eagerError });
|
|
586
586
|
try {
|
|
587
|
-
// Optimistic concurrency.
|
|
588
|
-
//
|
|
589
|
-
// client last loaded
|
|
590
|
-
//
|
|
591
|
-
//
|
|
592
|
-
//
|
|
587
|
+
// Optimistic concurrency. Two preconditions:
|
|
588
|
+
// - `X-Studiograph-Base-Body-Hash` (Phase 3a): sha256 hex of the
|
|
589
|
+
// body the client last loaded. Enforced INSIDE the per-doc lock
|
|
590
|
+
// by graph.update via `baseRevision`, so it composes with
|
|
591
|
+
// serialization — two body-writing PUTs from the same baseline
|
|
592
|
+
// can't both pass and back-stomp each other.
|
|
593
|
+
// - `If-Unmodified-Since` (legacy): kept for non-web clients;
|
|
594
|
+
// RFC-7231 second-precision so aliases sub-millisecond writes,
|
|
595
|
+
// which is why the body-hash form is preferred.
|
|
596
|
+
// Body-hash header is IGNORED on metadata-only PUTs — a stale body
|
|
597
|
+
// baseline is irrelevant when the PUT doesn't touch the body, and
|
|
598
|
+
// enforcing it would cause spurious 412s after an agent body-write.
|
|
593
599
|
const baseBodyHash = req.headers['x-studiograph-base-body-hash'];
|
|
594
600
|
const ifUnmodifiedSince = req.headers['if-unmodified-since'];
|
|
595
|
-
if (baseBodyHash) {
|
|
596
|
-
const current = graph.get(type, id);
|
|
597
|
-
const currentBodyHash = createHash('sha256')
|
|
598
|
-
.update(current?.document?.content ?? '', 'utf-8')
|
|
599
|
-
.digest('hex');
|
|
600
|
-
if (currentBodyHash !== baseBodyHash) {
|
|
601
|
-
return reply.status(412).send({
|
|
602
|
-
error: 'Precondition Failed: body was modified',
|
|
603
|
-
code: 'STALE_BODY_HASH',
|
|
604
|
-
currentBodyHash,
|
|
605
|
-
entity: current,
|
|
606
|
-
});
|
|
607
|
-
}
|
|
608
|
-
}
|
|
609
|
-
else if (ifUnmodifiedSince) {
|
|
601
|
+
if (ifUnmodifiedSince && !baseBodyHash) {
|
|
610
602
|
const current = graph.get(type, id);
|
|
611
603
|
const entityUpdatedAt = current?.data?.updated_at;
|
|
612
604
|
if (entityUpdatedAt && new Date(entityUpdatedAt) > new Date(ifUnmodifiedSince)) {
|
|
@@ -654,6 +646,11 @@ export async function registerGraphApiRoutes(fastify, workspaceManager, authServ
|
|
|
654
646
|
// and the Y.Doc picks up their writes.
|
|
655
647
|
skipYjsSync: true,
|
|
656
648
|
source: 'autosave',
|
|
649
|
+
// Forward the body-hash precondition into graph.update so the
|
|
650
|
+
// check runs INSIDE the per-doc lock — see Phase 3 P1 fix.
|
|
651
|
+
// Only meaningful for body writes; ignored when content is
|
|
652
|
+
// undefined (graph.update gates on content !== undefined too).
|
|
653
|
+
baseRevision: req.body.content !== undefined ? baseBodyHash : undefined,
|
|
657
654
|
});
|
|
658
655
|
if (sessionManager && gitUser) {
|
|
659
656
|
sessionManager.markDirty(repo, gitUser, type, id, updated.path);
|
|
@@ -666,6 +663,19 @@ export async function registerGraphApiRoutes(fastify, workspaceManager, authServ
|
|
|
666
663
|
return reply.send(updated);
|
|
667
664
|
}
|
|
668
665
|
catch (err) {
|
|
666
|
+
// Translate the locked-section baseRevision mismatch into the
|
|
667
|
+
// same 412 shape the route used to emit pre-lock. Preserves the
|
|
668
|
+
// client-side contract (code: STALE_BODY_HASH + currentBodyHash
|
|
669
|
+
// + entity).
|
|
670
|
+
if (err instanceof StaleBaseRevisionError) {
|
|
671
|
+
const current = graph.get(type, id);
|
|
672
|
+
return reply.status(412).send({
|
|
673
|
+
error: 'Precondition Failed: body was modified',
|
|
674
|
+
code: 'STALE_BODY_HASH',
|
|
675
|
+
currentBodyHash: err.actual,
|
|
676
|
+
entity: current,
|
|
677
|
+
});
|
|
678
|
+
}
|
|
669
679
|
return reply.status(400).send({ error: err.message });
|
|
670
680
|
}
|
|
671
681
|
});
|