@roam-research/roam-tools-core 0.6.8 → 0.7.0
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.
|
@@ -22,6 +22,19 @@ export declare const CreateBlockSchema: z.ZodObject<{
|
|
|
22
22
|
nestUnder?: string | undefined;
|
|
23
23
|
order?: number | "first" | "last" | undefined;
|
|
24
24
|
}>;
|
|
25
|
+
export declare const AppendToDailyNoteSchema: z.ZodObject<{
|
|
26
|
+
markdown: z.ZodString;
|
|
27
|
+
nestUnder: z.ZodOptional<z.ZodString>;
|
|
28
|
+
date: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
|
|
29
|
+
}, "strip", z.ZodTypeAny, {
|
|
30
|
+
markdown: string;
|
|
31
|
+
nestUnder?: string | undefined;
|
|
32
|
+
date?: string | undefined;
|
|
33
|
+
}, {
|
|
34
|
+
markdown: string;
|
|
35
|
+
nestUnder?: string | undefined;
|
|
36
|
+
date?: string | undefined;
|
|
37
|
+
}>;
|
|
25
38
|
export declare const GetBlockSchema: z.ZodObject<{
|
|
26
39
|
uid: z.ZodString;
|
|
27
40
|
maxDepth: z.ZodOptional<z.ZodNumber>;
|
|
@@ -106,6 +119,7 @@ export declare const GetBacklinksSchema: z.ZodObject<{
|
|
|
106
119
|
includePath?: boolean | undefined;
|
|
107
120
|
}>;
|
|
108
121
|
export type CreateBlockParams = z.infer<typeof CreateBlockSchema>;
|
|
122
|
+
export type AppendToDailyNoteParams = z.infer<typeof AppendToDailyNoteSchema>;
|
|
109
123
|
export type GetBlockParams = z.infer<typeof GetBlockSchema>;
|
|
110
124
|
export type UpdateBlockParams = z.infer<typeof UpdateBlockSchema>;
|
|
111
125
|
export type DeleteBlockParams = z.infer<typeof DeleteBlockSchema>;
|
|
@@ -127,6 +141,7 @@ export interface GetBacklinksResponse {
|
|
|
127
141
|
results: BacklinkResult[];
|
|
128
142
|
}
|
|
129
143
|
export declare function createBlock(client: RoamActionClient, params: CreateBlockParams): Promise<CallToolResult>;
|
|
144
|
+
export declare function appendToDailyNote(client: RoamActionClient, params: AppendToDailyNoteParams): Promise<CallToolResult>;
|
|
130
145
|
export declare function getBlock(client: RoamActionClient, params: GetBlockParams): Promise<CallToolResult>;
|
|
131
146
|
export declare function updateBlock(client: RoamActionClient, params: UpdateBlockParams): Promise<CallToolResult>;
|
|
132
147
|
export declare function deleteBlock(client: RoamActionClient, params: DeleteBlockParams): Promise<CallToolResult>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blocks.d.ts","sourceRoot":"","sources":["../../src/operations/blocks.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"blocks.d.ts","sourceRoot":"","sources":["../../src/operations/blocks.ts"],"names":[],"mappings":"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"}
|
|
@@ -28,6 +28,20 @@ export const CreateBlockSchema = z.object({
|
|
|
28
28
|
.optional()
|
|
29
29
|
.describe("Position (number, 'first', or 'last'). Defaults to 'last'"),
|
|
30
30
|
});
|
|
31
|
+
export const AppendToDailyNoteSchema = z.object({
|
|
32
|
+
markdown: z.string().describe("Markdown to append as one or more new blocks."),
|
|
33
|
+
nestUnder: z
|
|
34
|
+
.string()
|
|
35
|
+
.optional()
|
|
36
|
+
.describe("Optional: add beneath an existing top-level section block on the daily note (e.g. 'TODOs'), matched by exact text (including markup like [[links]]); created if absent. Omit to append at the page's top level."),
|
|
37
|
+
date: z
|
|
38
|
+
.string()
|
|
39
|
+
.refine((v) => MM_DD_YYYY.test(v) || isRelativeDateWord(v), {
|
|
40
|
+
message: "Must be MM-DD-YYYY format (e.g. '03-17-2026') or a relative day: 'today', 'yesterday', or 'tomorrow'",
|
|
41
|
+
})
|
|
42
|
+
.optional()
|
|
43
|
+
.describe("Which daily note to append to: a date in MM-DD-YYYY format, or a relative day 'today'/'yesterday'/'tomorrow' (case-insensitive; resolved to the user's local calendar date). Defaults to today."),
|
|
44
|
+
});
|
|
31
45
|
export const GetBlockSchema = z.object({
|
|
32
46
|
uid: z.string().describe("Block UID"),
|
|
33
47
|
maxDepth: z.coerce
|
|
@@ -119,6 +133,23 @@ export async function createBlock(client, params) {
|
|
|
119
133
|
]);
|
|
120
134
|
return textResult(response.result ?? { uids: [] });
|
|
121
135
|
}
|
|
136
|
+
export async function appendToDailyNote(client, params) {
|
|
137
|
+
// Capture wrapper over create_block's daily-note path: resolve the target day
|
|
138
|
+
// (relative words against the transport's "today"; defaults to today) and append
|
|
139
|
+
// via data.block.fromMarkdown — nestUnder finds-or-creates the section.
|
|
140
|
+
const resolvedDailyNote = resolveDailyNotePage(params.date ?? "today", client.getCurrentDate?.());
|
|
141
|
+
const location = {
|
|
142
|
+
order: "last",
|
|
143
|
+
"page-title": { "daily-note-page": resolvedDailyNote },
|
|
144
|
+
};
|
|
145
|
+
if (params.nestUnder !== undefined) {
|
|
146
|
+
location["nest-under-str"] = params.nestUnder;
|
|
147
|
+
}
|
|
148
|
+
const response = await client.call("data.block.fromMarkdown", [
|
|
149
|
+
{ location, "markdown-string": params.markdown },
|
|
150
|
+
]);
|
|
151
|
+
return textResult(response.result ?? { uids: [] });
|
|
152
|
+
}
|
|
122
153
|
export async function getBlock(client, params) {
|
|
123
154
|
const apiParams = { uid: params.uid };
|
|
124
155
|
if (params.maxDepth !== undefined)
|
package/dist/tools.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EACV,cAAc,EAEd,WAAW,EACX,gBAAgB,EAChB,SAAS,EAET,eAAe,EAChB,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
|
package/dist/tools.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { RoamError } from "./types.js";
|
|
3
3
|
import { CreatePageSchema, GetPageSchema, DeletePageSchema, UpdatePageSchema, GetGuidelinesSchema, createPage, getPage, deletePage, updatePage, getGuidelines, } from "./operations/pages.js";
|
|
4
|
-
import { CreateBlockSchema, GetBlockSchema, UpdateBlockSchema, DeleteBlockSchema, MoveBlockSchema, GetBacklinksSchema, AddCommentSchema, GetCommentsSchema, createBlock, getBlock, updateBlock, deleteBlock, moveBlock, getBacklinks, addComment, getComments, } from "./operations/blocks.js";
|
|
4
|
+
import { CreateBlockSchema, AppendToDailyNoteSchema, GetBlockSchema, UpdateBlockSchema, DeleteBlockSchema, MoveBlockSchema, GetBacklinksSchema, AddCommentSchema, GetCommentsSchema, createBlock, appendToDailyNote, getBlock, updateBlock, deleteBlock, moveBlock, getBacklinks, addComment, getComments, } from "./operations/blocks.js";
|
|
5
5
|
import { SearchSchema, SearchTemplatesSchema, search, searchTemplates, } from "./operations/search.js";
|
|
6
6
|
import { QuerySchema, query } from "./operations/query.js";
|
|
7
7
|
import { DatalogQuerySchema, datalogQuery } from "./operations/datalog.js";
|
|
@@ -104,7 +104,7 @@ const NAV = {
|
|
|
104
104
|
const UPLOAD = { ...APPEND, openWorldHint: true };
|
|
105
105
|
// ----------------------------------------------------------------------------
|
|
106
106
|
// Output schemas (MCP tools/list structured-result hints) — WRITE TOOLS ONLY.
|
|
107
|
-
// The
|
|
107
|
+
// The 9 write tools declare a schema (and emit structuredContent); the 9 read
|
|
108
108
|
// tools are content-only. Why write-only:
|
|
109
109
|
// - structuredContent duplicates the whole result into the text channel
|
|
110
110
|
// (textResult already JSON-stringifies it), so a schema on big reads
|
|
@@ -136,6 +136,8 @@ export const dataTools = [
|
|
|
136
136
|
defineTool("create_page", "Create a new page in Roam, optionally with markdown content." + GUIDELINES_NOTE, CreatePageSchema, createPage, { title: "Create page", annotations: APPEND, outputSchema: UidOutput }),
|
|
137
137
|
defineTool("create_block", "Create blocks from markdown content. Target by parentUid, pageTitle, or dailyNotePage (page created if needed). Use nestUnder to insert under a specific child block. Supports nested bulleted lists via markdown indentation." +
|
|
138
138
|
GUIDELINES_NOTE, CreateBlockSchema, createBlock, { title: "Create blocks", annotations: APPEND, outputSchema: UidsOutput }),
|
|
139
|
+
defineTool("append_to_daily_note", "Append (capture) markdown to a daily note — the tool for quick capture into Roam: todos, notes, meeting summaries, AI outputs. Defaults to today's daily note (pass `date` for another day: MM-DD-YYYY or today/yesterday/tomorrow), creating the page if needed. Optionally nestUnder an existing top-level section (e.g. 'TODOs'), matched by exact text and created if absent. Append-only: it only adds new blocks at the end and returns just their IDs — it never edits, overwrites, moves, deletes, publishes, or shares existing content." +
|
|
140
|
+
GUIDELINES_NOTE, AppendToDailyNoteSchema, appendToDailyNote, { title: "Append to daily note", annotations: APPEND, outputSchema: UidsOutput }),
|
|
139
141
|
defineTool("update_block", "Update a single existing block's text and display properties (heading, collapse, alignment, children view type). Affects only the block with `uid`: `string` sets that block's literal text — it is NOT expanded into child blocks (unlike create_block/create_page), and the block's existing children are left untouched. To add or restructure children, use create_block / move_block / delete_block." +
|
|
140
142
|
GUIDELINES_NOTE, UpdateBlockSchema, updateBlock, { title: "Update block", annotations: EDIT, outputSchema: SuccessOutput }),
|
|
141
143
|
defineTool("delete_block", 'Delete a block and all its descendants — irreversible. If the block is referenced elsewhere, deletion REPLACES those ((uid)) refs with its text (graph surgery, not string removal — on approval you can instead delete the referencing blocks). Inspect with get_block first: its markdown flags referenced blocks with `refs="N"` (and `hiddenChildren="N"` for subtrees beyond maxDepth), and comments count as refs. If anything shows `refs`, or the subtree is large (~20+ blocks / 500+ words), check get_backlinks and confirm with the user before deleting. For cleanup, only delete blocks created this task or named by the user.' +
|