Add batch character assignment for chapter outline beats

Lets a writer select several beats and add one character to all of them
at once, without disturbing each beat's existing characters. Surfaced
through the REST API, the embedded agent, and the MCP server per the
project's rule that all three share the same service methods.
This commit is contained in:
James Wampler
2026-08-15 20:36:25 -07:00
parent 6774a38684
commit df10b1f99b
9 changed files with 277 additions and 33 deletions
+11
View File
@@ -58,6 +58,17 @@ public static class BeatTools
CancellationToken ct) =>
api.DeleteAsync($"/api/beats/{beatId}", ct);
[McpServerTool(Name = "assign_character_to_beats")]
[Description("Add a character to several beats at once. Leaves each beat's existing characters "
+ "and other fields alone — this only adds, it never removes.")]
public static Task<CallToolResult> AssignCharacterToBeats(
NovelApiClient api,
[Description("The chapter's id.")] Guid chapterId,
[Description("Id of the character to add.")] Guid characterId,
[Description("Ids of the beats to add the character to.")] Guid[] beatIds,
CancellationToken ct) =>
api.PostAsync($"/api/chapters/{chapterId}/beats/assign-character", new { characterId, beatIds }, ct);
[McpServerTool(Name = "reorder_beats")]
[Description("Renumber a chapter's beats to match the order given. List every beat id in the "
+ "order wanted; any left out keep their relative position at the end.")]