@metaneutrons/doc-tools-mcp 0.1.0 → 0.2.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.
@@ -0,0 +1,12 @@
1
+ export interface StyleVariables {
2
+ /** Variables used globally (outside any type-conditional) */
3
+ global: Set<string>;
4
+ /** Variables used inside `<if type="...">` / `<else-if type="...">` blocks */
5
+ byType: Map<string, Set<string>>;
6
+ /** All CSL types referenced in the style */
7
+ knownTypes: Set<string>;
8
+ }
9
+ /** Extract all CSL variables referenced in a .csl style file, grouped by type conditionals */
10
+ export declare function parseStyleVariables(stylePath: string): Promise<StyleVariables>;
11
+ /** Get required variables for a specific CSL type from parsed style data */
12
+ export declare function getRequiredVariables(style: StyleVariables, cslType: string): string[];
@@ -0,0 +1,81 @@
1
+ import { readFile } from 'fs/promises';
2
+ import { existsSync } from 'fs';
3
+ import { FileError } from '../../shared/errors.js';
4
+ import { rootLogger } from '../../shared/logger.js';
5
+ const logger = rootLogger.child({ module: 'csl-style' });
6
+ /** Extract all CSL variables referenced in a .csl style file, grouped by type conditionals */
7
+ export async function parseStyleVariables(stylePath) {
8
+ if (!existsSync(stylePath)) {
9
+ throw new FileError(`Style file not found: ${stylePath}`, stylePath);
10
+ }
11
+ const xml = await readFile(stylePath, 'utf-8');
12
+ const result = extractVariables(xml);
13
+ logger.info('Style parsed', {
14
+ path: stylePath,
15
+ globalVars: result.global.size,
16
+ types: result.byType.size,
17
+ });
18
+ return result;
19
+ }
20
+ /** Get required variables for a specific CSL type from parsed style data */
21
+ export function getRequiredVariables(style, cslType) {
22
+ const vars = new Set(style.global);
23
+ const typeVars = style.byType.get(cslType);
24
+ if (typeVars) {
25
+ for (const v of typeVars)
26
+ vars.add(v);
27
+ }
28
+ return [...vars];
29
+ }
30
+ // --- internal ---
31
+ const VARIABLE_RE = /\bvariable="([^"]+)"/g;
32
+ const TYPE_OPEN_RE = /<(?:if|else-if)\b[^>]*\btype="([^"]+)"[^>]*>/g;
33
+ const TYPE_CLOSE_RE = /<\/(?:if|choose)>/g;
34
+ function extractVariables(xml) {
35
+ const global = new Set();
36
+ const byType = new Map();
37
+ const knownTypes = new Set();
38
+ // Find all type-conditional blocks with their character ranges
39
+ const typeBlocks = [];
40
+ const openTags = [];
41
+ // Simple nesting tracker: find open/close tags in order
42
+ const events = [];
43
+ for (const m of xml.matchAll(TYPE_OPEN_RE)) {
44
+ const types = m[1].split(/\s+/);
45
+ types.forEach((t) => knownTypes.add(t));
46
+ events.push({ pos: m.index, kind: 'open', types });
47
+ }
48
+ for (const m of xml.matchAll(TYPE_CLOSE_RE)) {
49
+ events.push({ pos: m.index, kind: 'close' });
50
+ }
51
+ events.sort((a, b) => a.pos - b.pos);
52
+ for (const ev of events) {
53
+ if (ev.kind === 'open') {
54
+ openTags.push({ types: ev.types, start: ev.pos, depth: openTags.length });
55
+ }
56
+ else if (openTags.length > 0) {
57
+ const tag = openTags.pop();
58
+ typeBlocks.push({ types: tag.types, start: tag.start, end: ev.pos });
59
+ }
60
+ }
61
+ // Extract all variable references and classify them
62
+ for (const m of xml.matchAll(VARIABLE_RE)) {
63
+ const pos = m.index;
64
+ const vars = m[1].split(/\s+/);
65
+ const enclosingBlock = typeBlocks.find((b) => pos >= b.start && pos <= b.end);
66
+ if (enclosingBlock) {
67
+ for (const t of enclosingBlock.types) {
68
+ if (!byType.has(t))
69
+ byType.set(t, new Set());
70
+ for (const v of vars)
71
+ byType.get(t).add(v);
72
+ }
73
+ }
74
+ else {
75
+ for (const v of vars)
76
+ global.add(v);
77
+ }
78
+ }
79
+ return { global, byType, knownTypes };
80
+ }
81
+ //# sourceMappingURL=csl-style.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"csl-style.js","sourceRoot":"","sources":["../../../src/providers/bib/csl-style.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,10 @@
1
1
  import yaml from 'js-yaml';
2
+ import { existsSync } from 'fs';
2
3
  import { rootLogger } from '../../shared/logger.js';
3
- import { NotFoundError, DuplicateError } from '../../shared/errors.js';
4
+ import { NotFoundError, DuplicateError, ValidationError } from '../../shared/errors.js';
4
5
  import { BibStore } from './store.js';
5
6
  import { validateRequiredFields, validateBibliography } from './schema.js';
7
+ import { parseStyleVariables, getRequiredVariables } from './csl-style.js';
6
8
  import { bibTools } from './tools/index.js';
7
9
  const logger = rootLogger.child({ module: 'bib' });
8
10
  /** Serialize a single entry to YAML for display */
@@ -28,8 +30,40 @@ function flattenEntry(entry) {
28
30
  class BibProvider {
29
31
  name = 'bib';
30
32
  store = new BibStore();
33
+ /** Resolve file path from args or env var */
34
+ resolveFile(args) {
35
+ const fromArgs = args.file;
36
+ const fromEnv = process.env.DT_BIB_YAML;
37
+ if (fromEnv && !existsSync(fromEnv)) {
38
+ logger.warn('DT_BIB_YAML file not found, ignoring', { path: fromEnv });
39
+ }
40
+ const file = fromArgs ?? (fromEnv && existsSync(fromEnv) ? fromEnv : undefined);
41
+ if (!file)
42
+ throw new ValidationError('No bibliography file specified. Set DT_BIB_YAML or pass "file" parameter.');
43
+ logger.debug('Resolved bibliography file', { path: file, source: fromArgs ? 'args' : 'env' });
44
+ return file;
45
+ }
46
+ /** Load style variables from args or env var, returns undefined if no style configured */
47
+ async resolveStyle(args) {
48
+ const fromArgs = args.style;
49
+ const fromEnv = process.env.DT_BIB_CSL;
50
+ if (fromEnv && !existsSync(fromEnv)) {
51
+ logger.warn('DT_BIB_CSL file not found, ignoring', { path: fromEnv });
52
+ }
53
+ const stylePath = fromArgs ?? (fromEnv && existsSync(fromEnv) ? fromEnv : undefined);
54
+ if (!stylePath)
55
+ return undefined;
56
+ logger.debug('Resolved CSL style', { path: stylePath, source: fromArgs ? 'args' : 'env' });
57
+ return parseStyleVariables(stylePath);
58
+ }
59
+ /** Build a styleFieldsFn callback from parsed style variables */
60
+ styleFieldsFn(style) {
61
+ if (!style)
62
+ return undefined;
63
+ return (type) => getRequiredVariables(style, type);
64
+ }
31
65
  getTools() {
32
- return bibTools;
66
+ return bibTools();
33
67
  }
34
68
  async handleToolCall(toolName, args) {
35
69
  try {
@@ -58,14 +92,16 @@ class BibProvider {
58
92
  }
59
93
  // --- Read tools ---
60
94
  async handleGet(args) {
61
- const { file, id } = args;
95
+ const file = this.resolveFile(args);
96
+ const { id } = args;
62
97
  const entry = await this.store.get(file, id);
63
98
  if (!entry)
64
99
  throw new NotFoundError(id);
65
100
  return { content: [{ type: 'text', text: entryToYaml(entry) }] };
66
101
  }
67
102
  async handleSearch(args) {
68
- const { file, query, limit = 20 } = args;
103
+ const file = this.resolveFile(args);
104
+ const { query, limit = 20 } = args;
69
105
  const entries = await this.store.read(file);
70
106
  const q = query.toLowerCase();
71
107
  const matches = entries.filter((e) => flattenEntry(e).includes(q)).slice(0, limit);
@@ -77,7 +113,8 @@ class BibProvider {
77
113
  return { content: [{ type: 'text', text }] };
78
114
  }
79
115
  async handleList(args) {
80
- const { file, type, limit = 50 } = args;
116
+ const file = this.resolveFile(args);
117
+ const { type, limit = 50 } = args;
81
118
  const entries = await this.store.read(file);
82
119
  const matches = entries.filter((e) => e.type === type).slice(0, limit);
83
120
  const total = entries.filter((e) => e.type === type).length;
@@ -90,12 +127,13 @@ class BibProvider {
90
127
  return { content: [{ type: 'text', text }] };
91
128
  }
92
129
  async handleExists(args) {
93
- const { file, id } = args;
130
+ const file = this.resolveFile(args);
131
+ const { id } = args;
94
132
  const exists = await this.store.exists(file, id);
95
133
  return { content: [{ type: 'text', text: exists ? `✅ "${id}" exists` : `❌ "${id}" not found` }] };
96
134
  }
97
135
  async handleStats(args) {
98
- const { file } = args;
136
+ const file = this.resolveFile(args);
99
137
  const entries = await this.store.read(file);
100
138
  const byType = {};
101
139
  for (const e of entries) {
@@ -108,13 +146,19 @@ class BibProvider {
108
146
  }
109
147
  // --- Write tools ---
110
148
  async handleAdd(args) {
111
- const { file, entry } = args;
149
+ const file = this.resolveFile(args);
150
+ const style = await this.resolveStyle(args);
151
+ const { entry } = args;
112
152
  // Duplicate check
113
153
  if (await this.store.exists(file, entry.id)) {
114
154
  throw new DuplicateError(entry.id);
115
155
  }
116
- // Required field validation
117
- const issues = validateRequiredFields(entry);
156
+ // Required field validation (style-aware if available)
157
+ const styleFields = style ? getRequiredVariables(style, entry.type) : undefined;
158
+ const issues = validateRequiredFields(entry, styleFields);
159
+ if (style?.knownTypes.size && !style.knownTypes.has(entry.type)) {
160
+ issues.push({ id: entry.id, field: 'type', message: `Type '${entry.type}' is not handled by the CSL style`, severity: 'warning' });
161
+ }
118
162
  if (issues.some((i) => i.severity === 'error')) {
119
163
  const text = 'Validation errors:\n' + issues.map((i) => `- ${i.message}`).join('\n');
120
164
  return { content: [{ type: 'text', text }], isError: true };
@@ -124,16 +168,28 @@ class BibProvider {
124
168
  return { content: [{ type: 'text', text }] };
125
169
  }
126
170
  async handleUpdate(args) {
127
- const { file, id, fields } = args;
171
+ const file = this.resolveFile(args);
172
+ const style = await this.resolveStyle(args);
173
+ const { id, fields } = args;
128
174
  if (!(await this.store.exists(file, id))) {
129
175
  throw new NotFoundError(id);
130
176
  }
131
177
  const updated = await this.store.update(file, id, fields);
132
- const text = `✅ Entry "${id}" updated.\n\n${entryToYaml(updated)}`;
178
+ // Validate updated entry against style if available
179
+ const styleFields = style ? getRequiredVariables(style, updated.type) : undefined;
180
+ const issues = validateRequiredFields(updated, styleFields);
181
+ if (style?.knownTypes.size && !style.knownTypes.has(updated.type)) {
182
+ issues.push({ id: updated.id, field: 'type', message: `Type '${updated.type}' is not handled by the CSL style`, severity: 'warning' });
183
+ }
184
+ const warnings = issues.length > 0
185
+ ? '\n\n⚠️ Warnings:\n' + issues.map((i) => `- ${i.message}`).join('\n')
186
+ : '';
187
+ const text = `✅ Entry "${id}" updated.\n\n${entryToYaml(updated)}${warnings}`;
133
188
  return { content: [{ type: 'text', text }] };
134
189
  }
135
190
  async handleDelete(args) {
136
- const { file, id } = args;
191
+ const file = this.resolveFile(args);
192
+ const { id } = args;
137
193
  if (!(await this.store.exists(file, id))) {
138
194
  throw new NotFoundError(id);
139
195
  }
@@ -141,9 +197,10 @@ class BibProvider {
141
197
  return { content: [{ type: 'text', text: `✅ Entry "${id}" deleted.` }] };
142
198
  }
143
199
  async handleValidate(args) {
144
- const { file } = args;
200
+ const file = this.resolveFile(args);
201
+ const style = await this.resolveStyle(args);
145
202
  const entries = await this.store.read(file);
146
- const issues = validateBibliography(entries);
203
+ const issues = validateBibliography(entries, this.styleFieldsFn(style), style?.knownTypes);
147
204
  if (issues.length === 0) {
148
205
  return { content: [{ type: 'text', text: `✅ Bibliography is valid. ${entries.length} entries, no issues found.` }] };
149
206
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/providers/bib/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/providers/bib/index.ts"],"names":[],"mappings":"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"}
@@ -39,6 +39,6 @@ export interface ValidationIssue {
39
39
  severity: 'error' | 'warning';
40
40
  }
41
41
  /** Validate required fields for a given CSL type */
42
- export declare function validateRequiredFields(entry: CslEntry): ValidationIssue[];
42
+ export declare function validateRequiredFields(entry: CslEntry, styleFields?: string[]): ValidationIssue[];
43
43
  /** Validate an entire bibliography */
44
- export declare function validateBibliography(entries: CslEntry[]): ValidationIssue[];
44
+ export declare function validateBibliography(entries: CslEntry[], styleFieldsFn?: (type: string) => string[] | undefined, knownTypes?: Set<string>): ValidationIssue[];
@@ -44,9 +44,9 @@ const REQUIRED_FIELDS = {
44
44
  'thesis': ['title', 'issued'],
45
45
  };
46
46
  /** Validate required fields for a given CSL type */
47
- export function validateRequiredFields(entry) {
47
+ export function validateRequiredFields(entry, styleFields) {
48
48
  const issues = [];
49
- const required = REQUIRED_FIELDS[entry.type];
49
+ const required = styleFields ?? REQUIRED_FIELDS[entry.type];
50
50
  if (!required)
51
51
  return issues;
52
52
  for (const field of required) {
@@ -63,7 +63,7 @@ export function validateRequiredFields(entry) {
63
63
  return issues;
64
64
  }
65
65
  /** Validate an entire bibliography */
66
- export function validateBibliography(entries) {
66
+ export function validateBibliography(entries, styleFieldsFn, knownTypes) {
67
67
  const issues = [];
68
68
  const seenIds = new Set();
69
69
  for (const entry of entries) {
@@ -73,7 +73,17 @@ export function validateBibliography(entries) {
73
73
  }
74
74
  seenIds.add(entry.id);
75
75
  // Required fields
76
- issues.push(...validateRequiredFields(entry));
76
+ const fields = styleFieldsFn?.(entry.type);
77
+ issues.push(...validateRequiredFields(entry, fields));
78
+ // Unknown type warning (when style is available)
79
+ if (knownTypes && knownTypes.size > 0 && !knownTypes.has(entry.type)) {
80
+ issues.push({
81
+ id: entry.id,
82
+ field: 'type',
83
+ message: `Type '${entry.type}' is not handled by the CSL style`,
84
+ severity: 'warning',
85
+ });
86
+ }
77
87
  // Missing issued warning
78
88
  if (!entry.issued) {
79
89
  issues.push({
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/providers/bib/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/providers/bib/schema.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
1
  import { ToolDefinition } from '../../../shared/types.js';
2
- export declare const bibTools: ToolDefinition[];
2
+ export declare function bibTools(): ToolDefinition[];
@@ -1,4 +1,6 @@
1
1
  import { readTools } from './read.js';
2
2
  import { writeTools } from './write.js';
3
- export const bibTools = [...readTools, ...writeTools];
3
+ export function bibTools() {
4
+ return [...readTools(), ...writeTools()];
5
+ }
4
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/providers/bib/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAGxC,MAAM,CAAC,MAAM,QAAQ,GAAqB,CAAC,GAAG,SAAS,EAAE,GAAG,UAAU,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/providers/bib/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAGxC,MAAM,UAAU,QAAQ;IACtB,OAAO,CAAC,GAAG,SAAS,EAAE,EAAE,GAAG,UAAU,EAAE,CAAC,CAAC;AAC3C,CAAC"}
@@ -1,5 +1,7 @@
1
1
  import { z } from 'zod';
2
2
  import { ToolDefinition } from '../../../shared/types.js';
3
- /** Shared file parameter — every bib tool needs this */
4
- export declare const fileParam: z.ZodString;
5
- export declare const readTools: ToolDefinition[];
3
+ /** File parameter — required unless DT_BIB_YAML is set and exists */
4
+ export declare function fileParam(): z.ZodString | z.ZodOptional<z.ZodString>;
5
+ /** Style parameter always optional, shows default if DT_BIB_CSL is set and exists */
6
+ export declare function styleParam(): z.ZodOptional<z.ZodString>;
7
+ export declare function readTools(): ToolDefinition[];
@@ -1,48 +1,65 @@
1
1
  import { z } from 'zod';
2
- /** Shared file parameter every bib tool needs this */
3
- export const fileParam = z.string().describe('Absolute path to the CSL-YAML bibliography file. ' +
4
- 'Look for "bibliography:" in pandoc.yaml or the YAML frontmatter of .md files to find the path.');
5
- export const readTools = [
6
- {
7
- name: 'bib:get',
8
- description: 'Retrieve a single bibliography entry by ID. Returns the full YAML block.',
9
- inputSchema: z.object({
10
- file: fileParam,
11
- id: z.string().describe('The citation ID (e.g., "BGH_I_ZR_73_79")'),
12
- }),
13
- },
14
- {
15
- name: 'bib:search',
16
- description: 'Search bibliography entries across all fields: author, title, type, year, editor, container-title. Returns matching entries.',
17
- inputSchema: z.object({
18
- file: fileParam,
19
- query: z.string().describe('Search term (case-insensitive, matches any field)'),
20
- limit: z.number().optional().default(20).describe('Maximum results to return (default: 20)'),
21
- }),
22
- },
23
- {
24
- name: 'bib:list',
25
- description: 'List all bibliography entries of a given CSL type (e.g., "legal_case", "book", "article-journal", "chapter").',
26
- inputSchema: z.object({
27
- file: fileParam,
28
- type: z.string().describe('CSL type to filter by (e.g., "legal_case", "book", "article-journal")'),
29
- limit: z.number().optional().default(50).describe('Maximum results to return (default: 50)'),
30
- }),
31
- },
32
- {
33
- name: 'bib:exists',
34
- description: 'Check if a citation ID exists in the bibliography. Fast boolean check before citing.',
35
- inputSchema: z.object({
36
- file: fileParam,
37
- id: z.string().describe('The citation ID to check'),
38
- }),
39
- },
40
- {
41
- name: 'bib:stats',
42
- description: 'Get bibliography statistics: total entry count and breakdown by CSL type.',
43
- inputSchema: z.object({
44
- file: fileParam,
45
- }),
46
- },
47
- ];
2
+ import { existsSync } from 'fs';
3
+ /** File parameter required unless DT_BIB_YAML is set and exists */
4
+ export function fileParam() {
5
+ const env = process.env.DT_BIB_YAML;
6
+ const valid = env && existsSync(env);
7
+ return valid
8
+ ? z.string().optional().describe(`Path to CSL-YAML bibliography file. Defaults to "${env}" (DT_BIB_YAML).`)
9
+ : z.string().describe('Absolute path to the CSL-YAML bibliography file (required). ' +
10
+ 'Look for "bibliography:" in pandoc.yaml or the YAML frontmatter of .md files.');
11
+ }
12
+ /** Style parameter — always optional, shows default if DT_BIB_CSL is set and exists */
13
+ export function styleParam() {
14
+ const env = process.env.DT_BIB_CSL;
15
+ const valid = env && existsSync(env);
16
+ return z.string().optional().describe(valid
17
+ ? `Path to CSL style file (.csl). Defaults to "${env}" (DT_BIB_CSL). Enables style-aware field validation.`
18
+ : 'Optional path to a CSL style file (.csl). Enables style-aware required-field validation.');
19
+ }
20
+ export function readTools() {
21
+ return [
22
+ {
23
+ name: 'bib:get',
24
+ description: 'Retrieve a single bibliography entry by ID. Returns the full YAML block.',
25
+ inputSchema: z.object({
26
+ file: fileParam(),
27
+ id: z.string().describe('The citation ID (e.g., "BGH_I_ZR_73_79")'),
28
+ }),
29
+ },
30
+ {
31
+ name: 'bib:search',
32
+ description: 'Search bibliography entries across all fields: author, title, type, year, editor, container-title. Returns matching entries.',
33
+ inputSchema: z.object({
34
+ file: fileParam(),
35
+ query: z.string().describe('Search term (case-insensitive, matches any field)'),
36
+ limit: z.number().optional().default(20).describe('Maximum results to return (default: 20)'),
37
+ }),
38
+ },
39
+ {
40
+ name: 'bib:list',
41
+ description: 'List all bibliography entries of a given CSL type (e.g., "legal_case", "book", "article-journal", "chapter").',
42
+ inputSchema: z.object({
43
+ file: fileParam(),
44
+ type: z.string().describe('CSL type to filter by (e.g., "legal_case", "book", "article-journal")'),
45
+ limit: z.number().optional().default(50).describe('Maximum results to return (default: 50)'),
46
+ }),
47
+ },
48
+ {
49
+ name: 'bib:exists',
50
+ description: 'Check if a citation ID exists in the bibliography. Fast boolean check before citing.',
51
+ inputSchema: z.object({
52
+ file: fileParam(),
53
+ id: z.string().describe('The citation ID to check'),
54
+ }),
55
+ },
56
+ {
57
+ name: 'bib:stats',
58
+ description: 'Get bibliography statistics: total entry count and breakdown by CSL type.',
59
+ inputSchema: z.object({
60
+ file: fileParam(),
61
+ }),
62
+ },
63
+ ];
64
+ }
48
65
  //# sourceMappingURL=read.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"read.js","sourceRoot":"","sources":["../../../../src/providers/bib/tools/read.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,wDAAwD;AACxD,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAC1C,mDAAmD;IACnD,gGAAgG,CACjG,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAqB;IACzC;QACE,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,0EAA0E;QACvF,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,IAAI,EAAE,SAAS;YACf,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC;SACpE,CAAC;KACH;IACD;QACE,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,8HAA8H;QAC3I,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mDAAmD,CAAC;YAC/E,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,yCAAyC,CAAC;SAC7F,CAAC;KACH;IACD;QACE,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,+GAA+G;QAC5H,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uEAAuE,CAAC;YAClG,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,yCAAyC,CAAC;SAC7F,CAAC;KACH;IACD;QACE,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,sFAAsF;QACnG,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,IAAI,EAAE,SAAS;YACf,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;SACpD,CAAC;KACH;IACD;QACE,IAAI,EAAE,WAAW;QACjB,WAAW,EAAE,2EAA2E;QACxF,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,IAAI,EAAE,SAAS;SAChB,CAAC;KACH;CACF,CAAC"}
1
+ {"version":3,"file":"read.js","sourceRoot":"","sources":["../../../../src/providers/bib/tools/read.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAGhC,qEAAqE;AACrE,MAAM,UAAU,SAAS;IACvB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;IACpC,MAAM,KAAK,GAAG,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;IACrC,OAAO,KAAK;QACV,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oDAAoD,GAAG,kBAAkB,CAAC;QAC3G,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CACjB,8DAA8D;YAC9D,+EAA+E,CAChF,CAAC;AACR,CAAC;AAED,uFAAuF;AACvF,MAAM,UAAU,UAAU;IACxB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;IACnC,MAAM,KAAK,GAAG,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;IACrC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CACnC,KAAK;QACH,CAAC,CAAC,+CAA+C,GAAG,uDAAuD;QAC3G,CAAC,CAAC,0FAA0F,CAC/F,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,SAAS;IACvB,OAAO;QACL;YACE,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,0EAA0E;YACvF,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;gBACpB,IAAI,EAAE,SAAS,EAAE;gBACjB,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC;aACpE,CAAC;SACH;QACD;YACE,IAAI,EAAE,YAAY;YAClB,WAAW,EAAE,8HAA8H;YAC3I,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;gBACpB,IAAI,EAAE,SAAS,EAAE;gBACjB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mDAAmD,CAAC;gBAC/E,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,yCAAyC,CAAC;aAC7F,CAAC;SACH;QACD;YACE,IAAI,EAAE,UAAU;YAChB,WAAW,EAAE,+GAA+G;YAC5H,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;gBACpB,IAAI,EAAE,SAAS,EAAE;gBACjB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uEAAuE,CAAC;gBAClG,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,yCAAyC,CAAC;aAC7F,CAAC;SACH;QACD;YACE,IAAI,EAAE,YAAY;YAClB,WAAW,EAAE,sFAAsF;YACnG,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;gBACpB,IAAI,EAAE,SAAS,EAAE;gBACjB,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;aACpD,CAAC;SACH;QACD;YACE,IAAI,EAAE,WAAW;YACjB,WAAW,EAAE,2EAA2E;YACxF,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;gBACpB,IAAI,EAAE,SAAS,EAAE;aAClB,CAAC;SACH;KACF,CAAC;AACJ,CAAC"}
@@ -1,2 +1,2 @@
1
1
  import { ToolDefinition } from '../../../shared/types.js';
2
- export declare const writeTools: ToolDefinition[];
2
+ export declare function writeTools(): ToolDefinition[];
@@ -1,66 +1,71 @@
1
1
  import { z } from 'zod';
2
- import { fileParam } from './read.js';
3
- export const writeTools = [
4
- {
5
- name: 'bib:add',
6
- description: 'Add a new bibliography entry. Validates required fields per CSL type, checks for duplicate IDs, ' +
7
- 'and creates a .bak backup before writing. Returns the created YAML block for confirmation.',
8
- inputSchema: z.object({
9
- file: fileParam,
10
- entry: z.object({
11
- id: z.string().describe('Unique citation ID (e.g., "BGH_I_ZR_42_22")'),
12
- type: z.string().describe('CSL type (e.g., "legal_case", "book", "article-journal", "chapter")'),
13
- title: z.string().optional().describe('Title of the work'),
14
- author: z.array(z.object({
15
- family: z.string(),
16
- given: z.string().optional(),
17
- })).optional().describe('Author(s)'),
18
- editor: z.array(z.object({
19
- family: z.string(),
20
- given: z.string().optional(),
21
- })).optional().describe('Editor(s)'),
22
- issued: z.object({
23
- 'date-parts': z.array(z.array(z.number())).optional(),
24
- }).optional().describe('Publication date, e.g., {"date-parts": [[2024]]}'),
25
- 'container-title': z.string().optional().describe('Journal, reporter, or book title'),
26
- volume: z.string().optional(),
27
- page: z.string().optional(),
28
- publisher: z.string().optional(),
29
- 'publisher-place': z.string().optional(),
30
- edition: z.string().optional(),
31
- authority: z.string().optional().describe('Court name (for legal_case)'),
32
- number: z.string().optional().describe('Case number or report number'),
33
- genre: z.string().optional().describe('e.g., "Urt.", "Beschl."'),
34
- url: z.string().optional(),
35
- note: z.string().optional(),
36
- }).passthrough().describe('The CSL-YAML entry to add'),
37
- }),
38
- },
39
- {
40
- name: 'bib:update',
41
- description: 'Update fields of an existing bibliography entry. Only the specified fields are changed; ' +
42
- 'all other fields remain untouched. Creates a .bak backup before writing.',
43
- inputSchema: z.object({
44
- file: fileParam,
45
- id: z.string().describe('The citation ID to update'),
46
- fields: z.record(z.string(), z.unknown()).describe('Fields to update (e.g., {"url": "https://...", "page": "123"})'),
47
- }),
48
- },
49
- {
50
- name: 'bib:delete',
51
- description: 'Remove a bibliography entry by ID. Creates a .bak backup before writing.',
52
- inputSchema: z.object({
53
- file: fileParam,
54
- id: z.string().describe('The citation ID to delete'),
55
- }),
56
- },
57
- {
58
- name: 'bib:validate',
59
- description: 'Validate the entire bibliography file: YAML syntax, required fields per CSL type, ' +
60
- 'duplicate IDs, and missing issued dates. Returns a list of errors and warnings.',
61
- inputSchema: z.object({
62
- file: fileParam,
63
- }),
64
- },
65
- ];
2
+ import { fileParam, styleParam } from './read.js';
3
+ export function writeTools() {
4
+ return [
5
+ {
6
+ name: 'bib:add',
7
+ description: 'Add a new bibliography entry. Validates required fields per CSL type, checks for duplicate IDs, ' +
8
+ 'and creates a .bak backup before writing. Returns the created YAML block for confirmation.',
9
+ inputSchema: z.object({
10
+ file: fileParam(),
11
+ style: styleParam(),
12
+ entry: z.object({
13
+ id: z.string().describe('Unique citation ID (e.g., "BGH_I_ZR_42_22")'),
14
+ type: z.string().describe('CSL type (e.g., "legal_case", "book", "article-journal", "chapter")'),
15
+ title: z.string().optional().describe('Title of the work'),
16
+ author: z.array(z.object({
17
+ family: z.string(),
18
+ given: z.string().optional(),
19
+ })).optional().describe('Author(s)'),
20
+ editor: z.array(z.object({
21
+ family: z.string(),
22
+ given: z.string().optional(),
23
+ })).optional().describe('Editor(s)'),
24
+ issued: z.object({
25
+ 'date-parts': z.array(z.array(z.number())).optional(),
26
+ }).optional().describe('Publication date, e.g., {"date-parts": [[2024]]}'),
27
+ 'container-title': z.string().optional().describe('Journal, reporter, or book title'),
28
+ volume: z.string().optional(),
29
+ page: z.string().optional(),
30
+ publisher: z.string().optional(),
31
+ 'publisher-place': z.string().optional(),
32
+ edition: z.string().optional(),
33
+ authority: z.string().optional().describe('Court name (for legal_case)'),
34
+ number: z.string().optional().describe('Case number or report number'),
35
+ genre: z.string().optional().describe('e.g., "Urt.", "Beschl."'),
36
+ url: z.string().optional(),
37
+ note: z.string().optional(),
38
+ }).passthrough().describe('The CSL-YAML entry to add'),
39
+ }),
40
+ },
41
+ {
42
+ name: 'bib:update',
43
+ description: 'Update fields of an existing bibliography entry. Only the specified fields are changed; ' +
44
+ 'all other fields remain untouched. Creates a .bak backup before writing.',
45
+ inputSchema: z.object({
46
+ file: fileParam(),
47
+ style: styleParam(),
48
+ id: z.string().describe('The citation ID to update'),
49
+ fields: z.record(z.string(), z.unknown()).describe('Fields to update (e.g., {"url": "https://...", "page": "123"})'),
50
+ }),
51
+ },
52
+ {
53
+ name: 'bib:delete',
54
+ description: 'Remove a bibliography entry by ID. Creates a .bak backup before writing.',
55
+ inputSchema: z.object({
56
+ file: fileParam(),
57
+ id: z.string().describe('The citation ID to delete'),
58
+ }),
59
+ },
60
+ {
61
+ name: 'bib:validate',
62
+ description: 'Validate the entire bibliography file: YAML syntax, required fields per CSL type, ' +
63
+ 'duplicate IDs, and missing issued dates. Returns a list of errors and warnings.',
64
+ inputSchema: z.object({
65
+ file: fileParam(),
66
+ style: styleParam(),
67
+ }),
68
+ },
69
+ ];
70
+ }
66
71
  //# sourceMappingURL=write.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"write.js","sourceRoot":"","sources":["../../../../src/providers/bib/tools/write.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,MAAM,CAAC,MAAM,UAAU,GAAqB;IAC1C;QACE,IAAI,EAAE,SAAS;QACf,WAAW,EACT,kGAAkG;YAClG,4FAA4F;QAC9F,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;gBACd,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6CAA6C,CAAC;gBACtE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qEAAqE,CAAC;gBAChG,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;gBAC1D,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;oBACvB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;oBAClB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;iBAC7B,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC;gBACpC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;oBACvB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;oBAClB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;iBAC7B,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC;gBACpC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;oBACf,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE;iBACtD,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kDAAkD,CAAC;gBAC1E,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;gBACrF,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;gBAC7B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;gBAC3B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;gBAChC,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;gBACxC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;gBAC9B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;gBACxE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC;gBACtE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;gBAChE,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;gBAC1B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;aAC5B,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;SACvD,CAAC;KACH;IACD;QACE,IAAI,EAAE,YAAY;QAClB,WAAW,EACT,0FAA0F;YAC1F,0EAA0E;QAC5E,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,IAAI,EAAE,SAAS;YACf,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;YACpD,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,gEAAgE,CAAC;SACrH,CAAC;KACH;IACD;QACE,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,0EAA0E;QACvF,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,IAAI,EAAE,SAAS;YACf,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;SACrD,CAAC;KACH;IACD;QACE,IAAI,EAAE,cAAc;QACpB,WAAW,EACT,oFAAoF;YACpF,iFAAiF;QACnF,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,IAAI,EAAE,SAAS;SAChB,CAAC;KACH;CACF,CAAC"}
1
+ {"version":3,"file":"write.js","sourceRoot":"","sources":["../../../../src/providers/bib/tools/write.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@metaneutrons/doc-tools-mcp",
3
- "version": "0.1.0",
3
+ "version": "0.2.0",
4
4
  "description": "MCP server for managing pandoc/CSL-YAML bibliographies",
5
5
  "main": "dist/index.js",
6
6
  "bin": {