ocean-brain 0.7.5 → 0.8.1
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/index.js +3 -3
- package/dist/mcp.js +180 -736
- package/package.json +6 -2
- package/server/client/dist/assets/ArrowRight.es-CbA8ey6a.js +1 -0
- package/server/client/dist/assets/{Calendar-Bc2zJueR.js → Calendar-CgWgr1BV.js} +2 -2
- package/server/client/dist/assets/Callout-DKruIT0f.js +1 -0
- package/server/client/dist/assets/Copy.es-DFbgpaNJ.js +1 -0
- package/server/client/dist/assets/Graph-kCltGRlY.js +1 -0
- package/server/client/dist/assets/{Image-DxWhlIDG.js → Image-7W0DZwMo.js} +1 -1
- package/server/client/dist/assets/Image.es-5pXLx9TU.js +1 -0
- package/server/client/dist/assets/Note-BW6Np_5g.js +20 -0
- package/server/client/dist/assets/Plus.es-B0sg64VJ.js +1 -0
- package/server/client/dist/assets/Reminders-C10fHQcl.js +1 -0
- package/server/client/dist/assets/Search-tf2nV4v0.js +1 -0
- package/server/client/dist/assets/{SurfaceCard-CkAVMLPs.js → SurfaceCard-pydtvHfu.js} +1 -1
- package/server/client/dist/assets/Tag-uCoYbISy.js +1 -0
- package/server/client/dist/assets/TagNotes-CqOcQiRw.js +1 -0
- package/server/client/dist/assets/Trash.es-w32Goxfa.js +1 -0
- package/server/client/dist/assets/ViewNotes-slPXXoOY.js +1 -0
- package/server/client/dist/assets/ViewSectionDialog-brTrsF6G.js +102 -0
- package/server/client/dist/assets/Views-B_wsb-XJ.js +1 -0
- package/server/client/dist/assets/{graph-vendor-CUxe67Lr.js → graph-vendor-BAF95C0g.js} +2 -2
- package/server/client/dist/assets/image.api-CYsjXiMr.js +17 -0
- package/server/client/dist/assets/index-BR05aSXr.js +342 -0
- package/server/client/dist/assets/{index-D3BfroIT.js → index-D83QbOcw.js} +1 -1
- package/server/client/dist/assets/{index-C5BGzDgt.css → index-DPI6YoDt.css} +1 -1
- package/server/client/dist/assets/manage-image-BYIhWu56.js +1 -0
- package/server/client/dist/assets/{manage-image-detail-C8Q7K7I3.js → manage-image-detail-6KgmQvbN.js} +1 -1
- package/server/client/dist/assets/mcp-Dd98N9Hq.js +4 -0
- package/server/client/dist/assets/mcp-admin-adapter-DOgBsYpl.js +1 -0
- package/server/client/dist/assets/note-core-CMGUaW1v.js +176 -0
- package/server/client/dist/assets/note-vendor-Hoz9Q4-4.js +54 -0
- package/server/client/dist/assets/{placeholder-Cr_nI8UI.js → placeholder-siHGg9aK.js} +4 -4
- package/server/client/dist/assets/{properties-CvYWJWUM.js → properties-CyVRKgcT.js} +1 -1
- package/server/client/dist/assets/tag.api-CwmC8crB.js +21 -0
- package/server/client/dist/assets/trash-wojQBK9Z.js +1 -0
- package/server/client/dist/assets/{useReminderMutate-CDmIEwsw.js → useReminderMutate-DuVKxpBh.js} +1 -1
- package/server/client/dist/index.html +5 -5
- package/server/dist/app.js +0 -1
- package/server/dist/features/auth/http/api.js +0 -1
- package/server/dist/features/auth/http/login-page.js +272 -5
- package/server/dist/features/auth/http/pages.js +20 -3
- package/server/dist/features/auth/service.js +3 -2
- package/server/dist/features/cache/graphql/cache.field.resolver.js +0 -1
- package/server/dist/features/cache/graphql/cache.mutation.resolver.js +0 -1
- package/server/dist/features/cache/graphql/cache.query.resolver.js +0 -1
- package/server/dist/features/cache/graphql/cache.resolver.js +0 -1
- package/server/dist/features/cache/graphql/cache.type-defs.js +0 -1
- package/server/dist/features/cache/graphql/index.js +0 -1
- package/server/dist/features/image/graphql/image.field.resolver.js +0 -1
- package/server/dist/features/image/graphql/image.mutation.resolver.js +0 -1
- package/server/dist/features/image/graphql/image.query.resolver.js +0 -1
- package/server/dist/features/image/graphql/image.resolver.js +0 -1
- package/server/dist/features/image/graphql/image.type-defs.js +0 -1
- package/server/dist/features/image/graphql/index.js +0 -1
- package/server/dist/features/image/http/upload.js +34 -24
- package/server/dist/features/image/services/delete.js +0 -1
- package/server/dist/features/image/services/upload.js +0 -1
- package/server/dist/features/image/services/validation.js +110 -0
- package/server/dist/features/mcp-admin/http/handlers.js +11 -4
- package/server/dist/features/mcp-admin/service.js +0 -1
- package/server/dist/features/note/graphql/index.js +0 -1
- package/server/dist/features/note/graphql/note.field.resolver.js +0 -1
- package/server/dist/features/note/graphql/note.mutation.resolver.js +0 -1
- package/server/dist/features/note/graphql/note.query.resolver.js +0 -1
- package/server/dist/features/note/graphql/note.resolver.js +0 -1
- package/server/dist/features/note/graphql/note.type-defs.js +0 -1
- package/server/dist/features/note/http/mcp.js +8 -44
- package/server/dist/features/note/services/authoring.js +0 -1
- package/server/dist/features/note/services/cleanup.js +2 -3
- package/server/dist/features/note/services/content-blocks.js +0 -1
- package/server/dist/features/note/services/markdown-intent-write.js +11 -44
- package/server/dist/features/note/services/markdown-patch.js +4 -124
- package/server/dist/features/note/services/properties.js +0 -1
- package/server/dist/features/note/services/search-backfill.js +0 -1
- package/server/dist/features/note/services/search.js +0 -1
- package/server/dist/features/note/services/snapshot.js +0 -1
- package/server/dist/features/note/services/tag-filter.js +0 -1
- package/server/dist/features/note/services/trash.js +0 -1
- package/server/dist/features/note/services/write-conflict.js +0 -1
- package/server/dist/features/note/services/write.js +13 -14
- package/server/dist/features/placeholder/graphql/index.js +0 -1
- package/server/dist/features/placeholder/graphql/placeholder.field.resolver.js +0 -1
- package/server/dist/features/placeholder/graphql/placeholder.mutation.resolver.js +0 -1
- package/server/dist/features/placeholder/graphql/placeholder.query.resolver.js +0 -1
- package/server/dist/features/placeholder/graphql/placeholder.resolver.js +0 -1
- package/server/dist/features/placeholder/graphql/placeholder.type-defs.js +0 -1
- package/server/dist/features/reminder/graphql/index.js +0 -1
- package/server/dist/features/reminder/graphql/reminder.field.resolver.js +0 -1
- package/server/dist/features/reminder/graphql/reminder.mutation.resolver.js +0 -1
- package/server/dist/features/reminder/graphql/reminder.query.resolver.js +0 -1
- package/server/dist/features/reminder/graphql/reminder.resolver.js +0 -1
- package/server/dist/features/reminder/graphql/reminder.type-defs.js +0 -1
- package/server/dist/features/tag/graphql/index.js +0 -1
- package/server/dist/features/tag/graphql/tag.field.resolver.js +0 -1
- package/server/dist/features/tag/graphql/tag.mutation.resolver.js +0 -1
- package/server/dist/features/tag/graphql/tag.query.resolver.js +16 -2
- package/server/dist/features/tag/graphql/tag.resolver.js +0 -1
- package/server/dist/features/tag/graphql/tag.type-defs.js +2 -1
- package/server/dist/features/tag/http/mcp.js +0 -1
- package/server/dist/features/tag/services/organization.js +0 -1
- package/server/dist/features/view/graphql/index.js +0 -1
- package/server/dist/features/view/graphql/view.mutation.resolver.js +0 -1
- package/server/dist/features/view/graphql/view.query.resolver.js +0 -1
- package/server/dist/features/view/graphql/view.resolver.js +0 -1
- package/server/dist/features/view/graphql/view.type-defs.js +0 -1
- package/server/dist/features/view/services/workspace.js +0 -1
- package/server/dist/main.js +0 -1
- package/server/dist/models.js +0 -1
- package/server/dist/modules/app-version.js +104 -0
- package/server/dist/modules/auth-guard.js +0 -1
- package/server/dist/modules/auth-mode.js +0 -1
- package/server/dist/modules/auth-redirect.js +0 -1
- package/server/dist/modules/blocknote-markdown-editor.js +53 -0
- package/server/dist/modules/blocknote-tree.js +0 -1
- package/server/dist/modules/blocknote.js +10 -4
- package/server/dist/modules/data-maintenance.js +0 -1
- package/server/dist/modules/error-handler.js +0 -1
- package/server/dist/modules/graphql.js +0 -1
- package/server/dist/modules/logger.js +0 -1
- package/server/dist/modules/mcp-auth.js +62 -2
- package/server/dist/modules/mcp-token.js +0 -1
- package/server/dist/modules/prisma-runtime.js +0 -1
- package/server/dist/modules/rate-limit.js +0 -1
- package/server/dist/modules/recovery-retention.js +0 -1
- package/server/dist/modules/server-events-handler.js +0 -1
- package/server/dist/modules/server-events.js +0 -1
- package/server/dist/modules/session-store.js +0 -1
- package/server/dist/modules/use-async.js +0 -1
- package/server/dist/paths.js +1 -1
- package/server/dist/routes/api.js +2 -9
- package/server/dist/routes/auth-pages.js +0 -1
- package/server/dist/routes/client.js +51 -2
- package/server/dist/routes/graphql.js +0 -1
- package/server/dist/routes/index.js +0 -1
- package/server/dist/routes/mcp.js +0 -1
- package/server/dist/schema/index.js +0 -1
- package/server/dist/start.js +0 -1
- package/server/dist/types/index.js +0 -1
- package/server/dist/types/input.js +0 -1
- package/server/client/dist/assets/Callout-B4kA_Cvr.js +0 -1
- package/server/client/dist/assets/Graph-uq5jfJgt.js +0 -1
- package/server/client/dist/assets/Image.es-BpAOJjJT.js +0 -1
- package/server/client/dist/assets/Note-Bo8ZYRP-.js +0 -22
- package/server/client/dist/assets/Plus.es-Dc_js8AC.js +0 -1
- package/server/client/dist/assets/Reminders-lj7Equld.js +0 -1
- package/server/client/dist/assets/Search-1wcRO5--.js +0 -1
- package/server/client/dist/assets/Tag-CeygwFfv.js +0 -1
- package/server/client/dist/assets/TagNotes-B8DqItxw.js +0 -1
- package/server/client/dist/assets/Trash.es-OuQVb_SX.js +0 -1
- package/server/client/dist/assets/ViewNotes-BH7PbdOD.js +0 -1
- package/server/client/dist/assets/ViewSectionTableRenderer-BJwhd5be.js +0 -102
- package/server/client/dist/assets/Views-eYFtsdFj.js +0 -1
- package/server/client/dist/assets/image.api-C0eYGCeH.js +0 -17
- package/server/client/dist/assets/index-jIfkRdY_.js +0 -361
- package/server/client/dist/assets/manage-image-C0YwkLIP.js +0 -1
- package/server/client/dist/assets/mcp-DHHhTLC8.js +0 -1
- package/server/client/dist/assets/note-core-Z6kqulGB.js +0 -180
- package/server/client/dist/assets/note-vendor-i1M2FSI2.js +0 -54
- package/server/client/dist/assets/trash-DA27aW7L.js +0 -1
- package/server/client/dist/fonts/Pretendard-Bold.woff +0 -0
- package/server/client/dist/fonts/Pretendard-Regular.woff +0 -0
- package/server/dist/app.js.map +0 -1
- package/server/dist/features/auth/http/api.js.map +0 -1
- package/server/dist/features/auth/http/login-page.js.map +0 -1
- package/server/dist/features/auth/http/pages.js.map +0 -1
- package/server/dist/features/auth/service.js.map +0 -1
- package/server/dist/features/cache/graphql/cache.field.resolver.js.map +0 -1
- package/server/dist/features/cache/graphql/cache.mutation.resolver.js.map +0 -1
- package/server/dist/features/cache/graphql/cache.query.resolver.js.map +0 -1
- package/server/dist/features/cache/graphql/cache.resolver.js.map +0 -1
- package/server/dist/features/cache/graphql/cache.type-defs.js.map +0 -1
- package/server/dist/features/cache/graphql/index.js.map +0 -1
- package/server/dist/features/image/graphql/image.field.resolver.js.map +0 -1
- package/server/dist/features/image/graphql/image.mutation.resolver.js.map +0 -1
- package/server/dist/features/image/graphql/image.query.resolver.js.map +0 -1
- package/server/dist/features/image/graphql/image.resolver.js.map +0 -1
- package/server/dist/features/image/graphql/image.type-defs.js.map +0 -1
- package/server/dist/features/image/graphql/index.js.map +0 -1
- package/server/dist/features/image/http/upload.js.map +0 -1
- package/server/dist/features/image/services/delete.js.map +0 -1
- package/server/dist/features/image/services/remote-fetch.js +0 -176
- package/server/dist/features/image/services/remote-fetch.js.map +0 -1
- package/server/dist/features/image/services/upload.js.map +0 -1
- package/server/dist/features/mcp-admin/http/handlers.js.map +0 -1
- package/server/dist/features/mcp-admin/service.js.map +0 -1
- package/server/dist/features/note/graphql/index.js.map +0 -1
- package/server/dist/features/note/graphql/note.field.resolver.js.map +0 -1
- package/server/dist/features/note/graphql/note.mutation.resolver.js.map +0 -1
- package/server/dist/features/note/graphql/note.query.resolver.js.map +0 -1
- package/server/dist/features/note/graphql/note.resolver.js.map +0 -1
- package/server/dist/features/note/graphql/note.type-defs.js.map +0 -1
- package/server/dist/features/note/http/mcp.js.map +0 -1
- package/server/dist/features/note/services/authoring.js.map +0 -1
- package/server/dist/features/note/services/cleanup.js.map +0 -1
- package/server/dist/features/note/services/content-blocks.js.map +0 -1
- package/server/dist/features/note/services/markdown-intent-write.js.map +0 -1
- package/server/dist/features/note/services/markdown-patch.js.map +0 -1
- package/server/dist/features/note/services/properties.js.map +0 -1
- package/server/dist/features/note/services/search-backfill.js.map +0 -1
- package/server/dist/features/note/services/search.js.map +0 -1
- package/server/dist/features/note/services/snapshot.js.map +0 -1
- package/server/dist/features/note/services/tag-filter.js.map +0 -1
- package/server/dist/features/note/services/trash.js.map +0 -1
- package/server/dist/features/note/services/write-conflict.js.map +0 -1
- package/server/dist/features/note/services/write.js.map +0 -1
- package/server/dist/features/placeholder/graphql/index.js.map +0 -1
- package/server/dist/features/placeholder/graphql/placeholder.field.resolver.js.map +0 -1
- package/server/dist/features/placeholder/graphql/placeholder.mutation.resolver.js.map +0 -1
- package/server/dist/features/placeholder/graphql/placeholder.query.resolver.js.map +0 -1
- package/server/dist/features/placeholder/graphql/placeholder.resolver.js.map +0 -1
- package/server/dist/features/placeholder/graphql/placeholder.type-defs.js.map +0 -1
- package/server/dist/features/reminder/graphql/index.js.map +0 -1
- package/server/dist/features/reminder/graphql/reminder.field.resolver.js.map +0 -1
- package/server/dist/features/reminder/graphql/reminder.mutation.resolver.js.map +0 -1
- package/server/dist/features/reminder/graphql/reminder.query.resolver.js.map +0 -1
- package/server/dist/features/reminder/graphql/reminder.resolver.js.map +0 -1
- package/server/dist/features/reminder/graphql/reminder.type-defs.js.map +0 -1
- package/server/dist/features/tag/graphql/index.js.map +0 -1
- package/server/dist/features/tag/graphql/tag.field.resolver.js.map +0 -1
- package/server/dist/features/tag/graphql/tag.mutation.resolver.js.map +0 -1
- package/server/dist/features/tag/graphql/tag.query.resolver.js.map +0 -1
- package/server/dist/features/tag/graphql/tag.resolver.js.map +0 -1
- package/server/dist/features/tag/graphql/tag.type-defs.js.map +0 -1
- package/server/dist/features/tag/http/mcp.js.map +0 -1
- package/server/dist/features/tag/services/organization.js.map +0 -1
- package/server/dist/features/view/graphql/index.js.map +0 -1
- package/server/dist/features/view/graphql/view.mutation.resolver.js.map +0 -1
- package/server/dist/features/view/graphql/view.query.resolver.js.map +0 -1
- package/server/dist/features/view/graphql/view.resolver.js.map +0 -1
- package/server/dist/features/view/graphql/view.type-defs.js.map +0 -1
- package/server/dist/features/view/services/workspace.js.map +0 -1
- package/server/dist/main.js.map +0 -1
- package/server/dist/models.js.map +0 -1
- package/server/dist/modules/auth-guard.js.map +0 -1
- package/server/dist/modules/auth-mode.js.map +0 -1
- package/server/dist/modules/auth-redirect.js.map +0 -1
- package/server/dist/modules/blocknote-tree.js.map +0 -1
- package/server/dist/modules/blocknote.js.map +0 -1
- package/server/dist/modules/data-maintenance.js.map +0 -1
- package/server/dist/modules/error-handler.js.map +0 -1
- package/server/dist/modules/graphql.js.map +0 -1
- package/server/dist/modules/logger.js.map +0 -1
- package/server/dist/modules/mcp-auth.js.map +0 -1
- package/server/dist/modules/mcp-token.js.map +0 -1
- package/server/dist/modules/prisma-runtime.js.map +0 -1
- package/server/dist/modules/rate-limit.js.map +0 -1
- package/server/dist/modules/recovery-retention.js.map +0 -1
- package/server/dist/modules/server-events-handler.js.map +0 -1
- package/server/dist/modules/server-events.js.map +0 -1
- package/server/dist/modules/session-store.js.map +0 -1
- package/server/dist/modules/use-async.js.map +0 -1
- package/server/dist/paths.js.map +0 -1
- package/server/dist/routes/api.js.map +0 -1
- package/server/dist/routes/auth-pages.js.map +0 -1
- package/server/dist/routes/client.js.map +0 -1
- package/server/dist/routes/graphql.js.map +0 -1
- package/server/dist/routes/index.js.map +0 -1
- package/server/dist/routes/mcp.js.map +0 -1
- package/server/dist/schema/index.js.map +0 -1
- package/server/dist/start.js.map +0 -1
- package/server/dist/types/index.js.map +0 -1
- package/server/dist/types/input.js.map +0 -1
|
@@ -50,14 +50,6 @@ const serializeSnapshot = (snapshot) => {
|
|
|
50
50
|
createdAt: isRecord(snapshot) && typeof snapshot.createdAt === "string" ? snapshot.createdAt : ""
|
|
51
51
|
};
|
|
52
52
|
};
|
|
53
|
-
const toDryRun = (plan) => ({
|
|
54
|
-
status: "dry_run",
|
|
55
|
-
note: plan.note,
|
|
56
|
-
...plan.match ? { match: plan.match } : {},
|
|
57
|
-
...plan.placement ? { placement: plan.placement } : {},
|
|
58
|
-
proposed: plan.proposed,
|
|
59
|
-
warnings: plan.warnings
|
|
60
|
-
});
|
|
61
53
|
const toTagIds = (tagIds) => {
|
|
62
54
|
return tagIds.map((tagId) => Number(tagId)).filter((tagId) => Number.isSafeInteger(tagId) && tagId > 0);
|
|
63
55
|
};
|
|
@@ -188,12 +180,9 @@ const applyMarkdownPlan = async (deps, input) => {
|
|
|
188
180
|
};
|
|
189
181
|
};
|
|
190
182
|
const mapPlanResult = async (deps, input) => {
|
|
191
|
-
if (input.plan.status !== "
|
|
183
|
+
if (input.plan.status !== "planned") {
|
|
192
184
|
return input.plan;
|
|
193
185
|
}
|
|
194
|
-
if (input.dryRun ?? true) {
|
|
195
|
-
return toDryRun(input.plan);
|
|
196
|
-
}
|
|
197
186
|
return applyMarkdownPlan(deps, {
|
|
198
187
|
noteId: input.noteId,
|
|
199
188
|
noteUpdatedAt: input.noteUpdatedAt,
|
|
@@ -234,7 +223,6 @@ const createMarkdownIntentWriteService = (deps) => ({
|
|
|
234
223
|
noteUpdatedAt: noteSnapshot.updatedAt,
|
|
235
224
|
beforeContentJson: note.content,
|
|
236
225
|
plan,
|
|
237
|
-
dryRun: input.dryRun,
|
|
238
226
|
expectedUpdatedAt: input.expectedUpdatedAt,
|
|
239
227
|
policy: input.policy,
|
|
240
228
|
summary: input.intent
|
|
@@ -269,7 +257,6 @@ const createMarkdownIntentWriteService = (deps) => ({
|
|
|
269
257
|
noteUpdatedAt: noteSnapshot.updatedAt,
|
|
270
258
|
beforeContentJson: note.content,
|
|
271
259
|
plan,
|
|
272
|
-
dryRun: input.dryRun,
|
|
273
260
|
expectedUpdatedAt: input.expectedUpdatedAt,
|
|
274
261
|
policy: input.policy,
|
|
275
262
|
summary: input.intent
|
|
@@ -302,7 +289,6 @@ const createMarkdownIntentWriteService = (deps) => ({
|
|
|
302
289
|
noteUpdatedAt: noteSnapshot.updatedAt,
|
|
303
290
|
beforeContentJson: note.content,
|
|
304
291
|
plan,
|
|
305
|
-
dryRun: input.dryRun,
|
|
306
292
|
expectedUpdatedAt: input.expectedUpdatedAt,
|
|
307
293
|
policy: input.policy,
|
|
308
294
|
summary: input.intent
|
|
@@ -343,26 +329,11 @@ const createMarkdownIntentWriteService = (deps) => ({
|
|
|
343
329
|
message: "The metadata update would not change the note."
|
|
344
330
|
};
|
|
345
331
|
}
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
title: note.title,
|
|
351
|
-
updatedAt: note.updatedAt.toISOString()
|
|
352
|
-
},
|
|
353
|
-
proposed: {
|
|
354
|
-
...nextTitle !== void 0 ? { title: nextTitle } : {},
|
|
355
|
-
...input.layout !== void 0 ? { layout: input.layout } : {},
|
|
356
|
-
...resolvedPropertyPatch ? { properties: resolvedPropertyPatch } : {}
|
|
357
|
-
},
|
|
358
|
-
warnings: []
|
|
332
|
+
const proposed = {
|
|
333
|
+
...nextTitle !== void 0 ? { title: nextTitle } : {},
|
|
334
|
+
...input.layout !== void 0 ? { layout: input.layout } : {},
|
|
335
|
+
...resolvedPropertyPatch ? { properties: resolvedPropertyPatch } : {}
|
|
359
336
|
};
|
|
360
|
-
},
|
|
361
|
-
applyNoteMetadata: async (input) => {
|
|
362
|
-
const preview = await createMarkdownIntentWriteService(deps).updateNoteMetadata(input);
|
|
363
|
-
if (preview.status !== "dry_run") {
|
|
364
|
-
return preview;
|
|
365
|
-
}
|
|
366
337
|
if (input.properties !== void 0) {
|
|
367
338
|
if (!deps.updateProperties) {
|
|
368
339
|
throw new Error("Metadata property write dependency is not configured.");
|
|
@@ -371,11 +342,11 @@ const createMarkdownIntentWriteService = (deps) => ({
|
|
|
371
342
|
try {
|
|
372
343
|
updateResult2 = await deps.updateProperties({
|
|
373
344
|
id: input.id,
|
|
374
|
-
patch:
|
|
345
|
+
patch: proposed.properties ?? { set: [], deleteKeys: [] },
|
|
375
346
|
expectedUpdatedAt: input.expectedUpdatedAt,
|
|
376
347
|
noteData: {
|
|
377
|
-
...
|
|
378
|
-
...
|
|
348
|
+
...proposed.title !== void 0 ? { title: proposed.title } : {},
|
|
349
|
+
...proposed.layout !== void 0 ? { layout: proposed.layout } : {}
|
|
379
350
|
},
|
|
380
351
|
snapshotMeta: MCP_SNAPSHOT_META
|
|
381
352
|
});
|
|
@@ -412,8 +383,8 @@ const createMarkdownIntentWriteService = (deps) => ({
|
|
|
412
383
|
updateResult = await deps.updateNote({
|
|
413
384
|
id: input.id,
|
|
414
385
|
data: {
|
|
415
|
-
...
|
|
416
|
-
...
|
|
386
|
+
...proposed.title !== void 0 ? { title: proposed.title } : {},
|
|
387
|
+
...proposed.layout !== void 0 ? { layout: proposed.layout } : {}
|
|
417
388
|
},
|
|
418
389
|
expectedUpdatedAt: input.expectedUpdatedAt,
|
|
419
390
|
snapshotMeta: MCP_SNAPSHOT_META
|
|
@@ -475,10 +446,7 @@ const replaceNoteMarkdown = async (input) => {
|
|
|
475
446
|
return defaultMarkdownIntentWriteService.replaceNoteMarkdown(input);
|
|
476
447
|
};
|
|
477
448
|
const updateNoteMetadata = async (input) => {
|
|
478
|
-
|
|
479
|
-
return defaultMarkdownIntentWriteService.updateNoteMetadata(input);
|
|
480
|
-
}
|
|
481
|
-
return defaultMarkdownIntentWriteService.applyNoteMetadata(input);
|
|
449
|
+
return defaultMarkdownIntentWriteService.updateNoteMetadata(input);
|
|
482
450
|
};
|
|
483
451
|
const calculateNoteMarkdownSha256 = (markdown) => {
|
|
484
452
|
return calculateMarkdownSha256(markdown);
|
|
@@ -492,4 +460,3 @@ export {
|
|
|
492
460
|
replaceNoteMarkdown,
|
|
493
461
|
updateNoteMetadata
|
|
494
462
|
};
|
|
495
|
-
//# sourceMappingURL=markdown-intent-write.js.map
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import crypto from "crypto";
|
|
2
2
|
const HASH_ALGORITHM = "sha256";
|
|
3
3
|
const EXCERPT_CONTEXT_CHARS = 80;
|
|
4
|
-
const DIFF_CONTEXT_LINES = 3;
|
|
5
4
|
const calculateMarkdownSha256 = (value) => {
|
|
6
5
|
return crypto.createHash(HASH_ALGORITHM).update(value, "utf8").digest("hex");
|
|
7
6
|
};
|
|
@@ -82,41 +81,6 @@ const findSharedLineEdges = (beforeLines, afterLines) => {
|
|
|
82
81
|
suffix
|
|
83
82
|
};
|
|
84
83
|
};
|
|
85
|
-
const formatDiffRange = (lineIndex, lineCount) => {
|
|
86
|
-
const lineNumber = lineIndex + 1;
|
|
87
|
-
return lineCount === 1 ? String(lineNumber) : `${lineNumber},${lineCount}`;
|
|
88
|
-
};
|
|
89
|
-
const createUnifiedMarkdownDiff = (beforeMarkdown, afterMarkdown, contextLines = DIFF_CONTEXT_LINES) => {
|
|
90
|
-
const beforeLines = splitLines(beforeMarkdown);
|
|
91
|
-
const afterLines = splitLines(afterMarkdown);
|
|
92
|
-
const { prefix, suffix } = findSharedLineEdges(beforeLines, afterLines);
|
|
93
|
-
const changedBeforeStart = prefix;
|
|
94
|
-
const changedBeforeEnd = beforeLines.length - suffix;
|
|
95
|
-
const changedAfterStart = prefix;
|
|
96
|
-
const changedAfterEnd = afterLines.length - suffix;
|
|
97
|
-
const displayBeforeStart = contextLines === null ? 0 : Math.max(0, changedBeforeStart - contextLines);
|
|
98
|
-
const displayBeforeEnd = contextLines === null ? beforeLines.length : Math.min(beforeLines.length, changedBeforeEnd + contextLines);
|
|
99
|
-
const displayAfterStart = contextLines === null ? 0 : Math.max(0, changedAfterStart - contextLines);
|
|
100
|
-
const displayAfterEnd = contextLines === null ? afterLines.length : Math.min(afterLines.length, changedAfterEnd + contextLines);
|
|
101
|
-
const diffLines = [
|
|
102
|
-
"--- before.md",
|
|
103
|
-
"+++ after.md",
|
|
104
|
-
`@@ -${formatDiffRange(displayBeforeStart, displayBeforeEnd - displayBeforeStart)} +${formatDiffRange(displayAfterStart, displayAfterEnd - displayAfterStart)} @@`
|
|
105
|
-
];
|
|
106
|
-
for (let index = displayBeforeStart; index < changedBeforeStart; index += 1) {
|
|
107
|
-
diffLines.push(` ${beforeLines[index]}`);
|
|
108
|
-
}
|
|
109
|
-
for (let index = changedBeforeStart; index < changedBeforeEnd; index += 1) {
|
|
110
|
-
diffLines.push(`-${beforeLines[index]}`);
|
|
111
|
-
}
|
|
112
|
-
for (let index = changedAfterStart; index < changedAfterEnd; index += 1) {
|
|
113
|
-
diffLines.push(`+${afterLines[index]}`);
|
|
114
|
-
}
|
|
115
|
-
for (let index = changedBeforeEnd; index < displayBeforeEnd; index += 1) {
|
|
116
|
-
diffLines.push(` ${beforeLines[index]}`);
|
|
117
|
-
}
|
|
118
|
-
return diffLines.join("\n");
|
|
119
|
-
};
|
|
120
84
|
const countChangedLines = (beforeMarkdown, afterMarkdown) => {
|
|
121
85
|
const beforeLines = splitLines(beforeMarkdown);
|
|
122
86
|
const afterLines = splitLines(afterMarkdown);
|
|
@@ -235,49 +199,11 @@ const validateBaseline = (note, expectedUpdatedAt, baseMarkdownSha256) => {
|
|
|
235
199
|
}
|
|
236
200
|
return null;
|
|
237
201
|
};
|
|
238
|
-
const validateChangeLimits = (beforeMarkdown, afterMarkdown, changedCharCount, policy) => {
|
|
239
|
-
const changedLineCount = countChangedLines(beforeMarkdown, afterMarkdown);
|
|
240
|
-
const exceededLines = policy?.maxChangedLines !== void 0 && changedLineCount > policy.maxChangedLines;
|
|
241
|
-
const exceededChars = policy?.maxChangedChars !== void 0 && changedCharCount > policy.maxChangedChars;
|
|
242
|
-
if (exceededLines || exceededChars) {
|
|
243
|
-
return {
|
|
244
|
-
status: "failed",
|
|
245
|
-
reason: "CHANGE_LIMIT_EXCEEDED",
|
|
246
|
-
message: "The markdown write exceeds the configured change limit. Increase maxChangedLines/maxChangedChars to at least the requiredMinimum values or omit them for this write.",
|
|
247
|
-
details: {
|
|
248
|
-
configured: {
|
|
249
|
-
...policy?.maxChangedLines !== void 0 ? { maxChangedLines: policy.maxChangedLines } : {},
|
|
250
|
-
...policy?.maxChangedChars !== void 0 ? { maxChangedChars: policy.maxChangedChars } : {}
|
|
251
|
-
},
|
|
252
|
-
requiredMinimum: {
|
|
253
|
-
maxChangedLines: changedLineCount,
|
|
254
|
-
maxChangedChars: changedCharCount
|
|
255
|
-
}
|
|
256
|
-
}
|
|
257
|
-
};
|
|
258
|
-
}
|
|
259
|
-
return null;
|
|
260
|
-
};
|
|
261
|
-
const buildDiffPreview = (diff, policy) => {
|
|
262
|
-
const maxChars = policy?.diffPreviewMaxChars;
|
|
263
|
-
if (maxChars === void 0 || diff.length <= maxChars) {
|
|
264
|
-
return {
|
|
265
|
-
diff,
|
|
266
|
-
...maxChars !== void 0 ? { diffCharCount: diff.length } : {}
|
|
267
|
-
};
|
|
268
|
-
}
|
|
269
|
-
return {
|
|
270
|
-
diff: diff.slice(0, maxChars),
|
|
271
|
-
diffTruncated: true,
|
|
272
|
-
diffCharCount: diff.length
|
|
273
|
-
};
|
|
274
|
-
};
|
|
275
202
|
const createChangePlan = ({
|
|
276
203
|
note,
|
|
277
204
|
afterMarkdown,
|
|
278
205
|
changedCharCount,
|
|
279
206
|
policy,
|
|
280
|
-
diffContextLines = DIFF_CONTEXT_LINES,
|
|
281
207
|
match,
|
|
282
208
|
placement
|
|
283
209
|
}) => {
|
|
@@ -292,16 +218,8 @@ const createChangePlan = ({
|
|
|
292
218
|
if (preservationFailure) {
|
|
293
219
|
return preservationFailure;
|
|
294
220
|
}
|
|
295
|
-
const limitFailure = validateChangeLimits(note.markdown, afterMarkdown, changedCharCount, policy);
|
|
296
|
-
if (limitFailure) {
|
|
297
|
-
return limitFailure;
|
|
298
|
-
}
|
|
299
|
-
const diffPreview = buildDiffPreview(
|
|
300
|
-
createUnifiedMarkdownDiff(note.markdown, afterMarkdown, diffContextLines),
|
|
301
|
-
policy
|
|
302
|
-
);
|
|
303
221
|
return {
|
|
304
|
-
status: "
|
|
222
|
+
status: "planned",
|
|
305
223
|
note: {
|
|
306
224
|
id: note.id,
|
|
307
225
|
title: note.title,
|
|
@@ -313,8 +231,7 @@ const createChangePlan = ({
|
|
|
313
231
|
changedLineCount: countChangedLines(note.markdown, afterMarkdown),
|
|
314
232
|
changedCharCount,
|
|
315
233
|
beforeMarkdownSha256: calculateMarkdownSha256(note.markdown),
|
|
316
|
-
afterMarkdownSha256: calculateMarkdownSha256(afterMarkdown)
|
|
317
|
-
...diffPreview
|
|
234
|
+
afterMarkdownSha256: calculateMarkdownSha256(afterMarkdown)
|
|
318
235
|
},
|
|
319
236
|
warnings: collectWarnings(note.markdown, afterMarkdown, policy),
|
|
320
237
|
afterMarkdown
|
|
@@ -581,51 +498,14 @@ const buildMarkdownReplacePlan = (input) => {
|
|
|
581
498
|
note: input.note,
|
|
582
499
|
afterMarkdown: input.replacement,
|
|
583
500
|
changedCharCount: input.note.markdown.length + input.replacement.length,
|
|
584
|
-
policy: input.policy
|
|
585
|
-
diffContextLines: null
|
|
501
|
+
policy: input.policy
|
|
586
502
|
});
|
|
587
503
|
};
|
|
588
|
-
const toPreviewResult = (plan) => {
|
|
589
|
-
return {
|
|
590
|
-
status: "dry_run",
|
|
591
|
-
note: plan.note,
|
|
592
|
-
...plan.match ? { match: plan.match } : {},
|
|
593
|
-
...plan.placement ? { placement: plan.placement } : {},
|
|
594
|
-
proposed: plan.proposed,
|
|
595
|
-
warnings: plan.warnings
|
|
596
|
-
};
|
|
597
|
-
};
|
|
598
|
-
const previewMarkdownPatch = (input) => {
|
|
599
|
-
const plan = buildMarkdownPatchPlan(input);
|
|
600
|
-
if (plan.status !== "dry_run") {
|
|
601
|
-
return plan;
|
|
602
|
-
}
|
|
603
|
-
return toPreviewResult(plan);
|
|
604
|
-
};
|
|
605
|
-
const previewMarkdownAppend = (input) => {
|
|
606
|
-
const plan = buildMarkdownAppendPlan(input);
|
|
607
|
-
if (plan.status !== "dry_run") {
|
|
608
|
-
return plan;
|
|
609
|
-
}
|
|
610
|
-
return toPreviewResult(plan);
|
|
611
|
-
};
|
|
612
|
-
const previewMarkdownReplace = (input) => {
|
|
613
|
-
const plan = buildMarkdownReplacePlan(input);
|
|
614
|
-
if (plan.status !== "dry_run") {
|
|
615
|
-
return plan;
|
|
616
|
-
}
|
|
617
|
-
return toPreviewResult(plan);
|
|
618
|
-
};
|
|
619
504
|
export {
|
|
620
505
|
buildMarkdownAppendPlan,
|
|
621
506
|
buildMarkdownPatchPlan,
|
|
622
507
|
buildMarkdownReplacePlan,
|
|
623
508
|
calculateMarkdownSha256,
|
|
624
509
|
countExplicitTagTokens,
|
|
625
|
-
countMarkdownReferenceTokens
|
|
626
|
-
createUnifiedMarkdownDiff,
|
|
627
|
-
previewMarkdownAppend,
|
|
628
|
-
previewMarkdownPatch,
|
|
629
|
-
previewMarkdownReplace
|
|
510
|
+
countMarkdownReferenceTokens
|
|
630
511
|
};
|
|
631
|
-
//# sourceMappingURL=markdown-patch.js.map
|
|
@@ -26,19 +26,6 @@ const createNoteWriteService = (deps) => {
|
|
|
26
26
|
const nextContent = data.content ?? existingNote.content;
|
|
27
27
|
const where = force ? { id } : { id, updatedAt: new Date(expectedTimestamp ?? existingNote.updatedAt.getTime()) };
|
|
28
28
|
try {
|
|
29
|
-
const updatedNote = await deps.updateNote({
|
|
30
|
-
where,
|
|
31
|
-
data: {
|
|
32
|
-
...data.title !== void 0 ? { title: data.title } : {},
|
|
33
|
-
...data.content !== void 0 ? { content: data.content } : {},
|
|
34
|
-
...data.layout !== void 0 ? { layout: data.layout } : {},
|
|
35
|
-
...buildNoteSearchProjection({
|
|
36
|
-
title: nextTitle,
|
|
37
|
-
content: nextContent
|
|
38
|
-
}),
|
|
39
|
-
...data.tagIds ? { tags: { set: data.tagIds.map((tagId) => ({ id: tagId })) } } : {}
|
|
40
|
-
}
|
|
41
|
-
});
|
|
42
29
|
const snapshot = await deps.captureBaseline({
|
|
43
30
|
noteId: id,
|
|
44
31
|
baseline: {
|
|
@@ -53,6 +40,19 @@ const createNoteWriteService = (deps) => {
|
|
|
53
40
|
...snapshotMeta ? { meta: snapshotMeta } : {},
|
|
54
41
|
...force ? { force: true } : {}
|
|
55
42
|
});
|
|
43
|
+
const updatedNote = await deps.updateNote({
|
|
44
|
+
where,
|
|
45
|
+
data: {
|
|
46
|
+
...data.title !== void 0 ? { title: data.title } : {},
|
|
47
|
+
...data.content !== void 0 ? { content: data.content } : {},
|
|
48
|
+
...data.layout !== void 0 ? { layout: data.layout } : {},
|
|
49
|
+
...buildNoteSearchProjection({
|
|
50
|
+
title: nextTitle,
|
|
51
|
+
content: nextContent
|
|
52
|
+
}),
|
|
53
|
+
...data.tagIds ? { tags: { set: data.tagIds.map((tagId) => ({ id: tagId })) } } : {}
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
56
|
return {
|
|
57
57
|
note: updatedNote,
|
|
58
58
|
snapshot
|
|
@@ -118,4 +118,3 @@ export {
|
|
|
118
118
|
updateNoteWithVersionGuard,
|
|
119
119
|
updateNoteWithVersionGuardAndSnapshot
|
|
120
120
|
};
|
|
121
|
-
//# sourceMappingURL=write.js.map
|
|
@@ -1,4 +1,17 @@
|
|
|
1
1
|
import models from "../../../models.js";
|
|
2
|
+
const TAG_SORT_FIELDS = /* @__PURE__ */ new Set(["referenceCount", "name"]);
|
|
3
|
+
const normalizeSortBy = (sortBy) => {
|
|
4
|
+
return TAG_SORT_FIELDS.has(sortBy) ? sortBy : "referenceCount";
|
|
5
|
+
};
|
|
6
|
+
const normalizeSortOrder = (sortOrder) => {
|
|
7
|
+
return sortOrder === "asc" ? "asc" : "desc";
|
|
8
|
+
};
|
|
9
|
+
const getTagOrderBy = (sortBy, sortOrder) => {
|
|
10
|
+
if (sortBy === "referenceCount") {
|
|
11
|
+
return { notes: { _count: sortOrder } };
|
|
12
|
+
}
|
|
13
|
+
return { [sortBy]: sortOrder };
|
|
14
|
+
};
|
|
2
15
|
const tagQueryResolvers = {
|
|
3
16
|
allTags: async (_, {
|
|
4
17
|
searchFilter,
|
|
@@ -8,11 +21,13 @@ const tagQueryResolvers = {
|
|
|
8
21
|
name: { contains: searchFilter.query },
|
|
9
22
|
NOT: { notes: { none: {} } }
|
|
10
23
|
};
|
|
24
|
+
const sortBy = normalizeSortBy(searchFilter.sortBy);
|
|
25
|
+
const sortOrder = normalizeSortOrder(searchFilter.sortOrder);
|
|
11
26
|
const tags = models.tag.findMany({
|
|
12
27
|
skip: pagination.offset,
|
|
13
28
|
take: pagination.limit,
|
|
14
29
|
where,
|
|
15
|
-
orderBy:
|
|
30
|
+
orderBy: getTagOrderBy(sortBy, sortOrder)
|
|
16
31
|
});
|
|
17
32
|
return {
|
|
18
33
|
totalCount: await models.tag.count({ where }),
|
|
@@ -23,4 +38,3 @@ const tagQueryResolvers = {
|
|
|
23
38
|
export {
|
|
24
39
|
tagQueryResolvers
|
|
25
40
|
};
|
|
26
|
-
//# sourceMappingURL=tag.query.resolver.js.map
|
package/server/dist/main.js
CHANGED
package/server/dist/models.js
CHANGED