agentic-domain-document 0.6.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.
Files changed (106) hide show
  1. package/.tbls.yml +201 -0
  2. package/CHANGELOG.md +68 -0
  3. package/README.md +313 -0
  4. package/agent/agent.manifest.json +8 -0
  5. package/agent/capabilities/document-authoring.json +21 -0
  6. package/agent/capabilities/document-block.json +22 -0
  7. package/agent/capabilities/document-toc.json +21 -0
  8. package/agent/capabilities/document-validation.json +21 -0
  9. package/agent/examples/document-quality-examples.md +153 -0
  10. package/agent/examples/examples.md +172 -0
  11. package/agent/guides/10-document-authoring-guide.md +28 -0
  12. package/agent/guides/20-domain-boundary-guide.md +41 -0
  13. package/agent/guides/30-authoring-policy-guide.md +40 -0
  14. package/agent/guides/40-toc-authoring-guide.md +73 -0
  15. package/agent/guides/50-content-block-guide.md +57 -0
  16. package/agent/guides/51-paragraph-authoring-guide.md +68 -0
  17. package/agent/guides/52-table-authoring-guide.md +73 -0
  18. package/agent/guides/53-diagram-figure-authoring-guide.md +75 -0
  19. package/agent/guides/70-korean-writing-style-guide.md +65 -0
  20. package/agent/instructions/00-runtime-behavior.md +17 -0
  21. package/agent/instructions/10-scope-and-boundary.md +27 -0
  22. package/agent/instructions/20-task-procedures.md +69 -0
  23. package/agent/instructions/30-must-and-must-not.md +34 -0
  24. package/agent/resource-index.json +185 -0
  25. package/agent/resource-selection.json +205 -0
  26. package/agent/routing.json +34 -0
  27. package/agent/sources/reference-mapping.md +53 -0
  28. package/agent/validation/document-validation-rules.md +73 -0
  29. package/dist/agent/document-agent-contribution.d.ts +15 -0
  30. package/dist/agent/document-agent-contribution.d.ts.map +1 -0
  31. package/dist/agent/document-agent-contribution.js +39 -0
  32. package/dist/agent/document-agent-contribution.js.map +1 -0
  33. package/dist/agent/index.d.ts +2 -0
  34. package/dist/agent/index.d.ts.map +1 -0
  35. package/dist/agent/index.js +2 -0
  36. package/dist/agent/index.js.map +1 -0
  37. package/dist/database.d.ts +8 -0
  38. package/dist/database.d.ts.map +1 -0
  39. package/dist/database.js +76 -0
  40. package/dist/database.js.map +1 -0
  41. package/dist/index.d.ts +15 -0
  42. package/dist/index.d.ts.map +1 -0
  43. package/dist/index.js +14 -0
  44. package/dist/index.js.map +1 -0
  45. package/dist/markdown-importer.d.ts +14 -0
  46. package/dist/markdown-importer.d.ts.map +1 -0
  47. package/dist/markdown-importer.js +386 -0
  48. package/dist/markdown-importer.js.map +1 -0
  49. package/dist/reader.d.ts +17 -0
  50. package/dist/reader.d.ts.map +1 -0
  51. package/dist/reader.js +332 -0
  52. package/dist/reader.js.map +1 -0
  53. package/dist/repositories.d.ts +118 -0
  54. package/dist/repositories.d.ts.map +1 -0
  55. package/dist/repositories.js +388 -0
  56. package/dist/repositories.js.map +1 -0
  57. package/dist/service.d.ts +35 -0
  58. package/dist/service.d.ts.map +1 -0
  59. package/dist/service.js +327 -0
  60. package/dist/service.js.map +1 -0
  61. package/dist/types.d.ts +276 -0
  62. package/dist/types.d.ts.map +1 -0
  63. package/dist/types.js +2 -0
  64. package/dist/types.js.map +1 -0
  65. package/dist/validators.d.ts +4 -0
  66. package/dist/validators.d.ts.map +1 -0
  67. package/dist/validators.js +255 -0
  68. package/dist/validators.js.map +1 -0
  69. package/docs/build.md +55 -0
  70. package/docs/configuration.md +34 -0
  71. package/docs/delivery.md +50 -0
  72. package/docs/operations.md +50 -0
  73. package/docs/publishing.md +69 -0
  74. package/docs/schema/generated/README.md +30 -0
  75. package/docs/schema/generated/document_annotations.md +119 -0
  76. package/docs/schema/generated/document_annotations.svg +60 -0
  77. package/docs/schema/generated/document_blocks.md +97 -0
  78. package/docs/schema/generated/document_blocks.svg +60 -0
  79. package/docs/schema/generated/document_change_events.md +135 -0
  80. package/docs/schema/generated/document_change_events.svg +88 -0
  81. package/docs/schema/generated/document_code_groups.md +70 -0
  82. package/docs/schema/generated/document_code_groups.svg +52 -0
  83. package/docs/schema/generated/document_codes.md +88 -0
  84. package/docs/schema/generated/document_codes.svg +52 -0
  85. package/docs/schema/generated/document_contents.md +87 -0
  86. package/docs/schema/generated/document_contents.svg +116 -0
  87. package/docs/schema/generated/document_documents.md +126 -0
  88. package/docs/schema/generated/document_documents.svg +222 -0
  89. package/docs/schema/generated/document_node_taxonomies.md +84 -0
  90. package/docs/schema/generated/document_node_taxonomies.svg +80 -0
  91. package/docs/schema/generated/document_node_taxonomy_levels.md +91 -0
  92. package/docs/schema/generated/document_node_taxonomy_levels.svg +52 -0
  93. package/docs/schema/generated/document_nodes.md +120 -0
  94. package/docs/schema/generated/document_nodes.svg +98 -0
  95. package/docs/schema/generated/document_revisions.md +107 -0
  96. package/docs/schema/generated/document_revisions.svg +116 -0
  97. package/docs/schema/generated/document_versions.md +126 -0
  98. package/docs/schema/generated/document_versions.svg +88 -0
  99. package/docs/schema/generated/schema.json +2534 -0
  100. package/docs/schema/generated/schema.mmd +170 -0
  101. package/docs/schema/generated/schema.svg +331 -0
  102. package/docs/schema/migrations.md +40 -0
  103. package/docs/usage.md +332 -0
  104. package/docs/validation-rules.md +69 -0
  105. package/package.json +30 -0
  106. package/src/database/migrations/0001_document_base.sql +753 -0
@@ -0,0 +1,386 @@
1
+ import { openDocumentDatabase } from "./database.js";
2
+ import { createDocumentService } from "./service.js";
3
+ function isHeading(line) {
4
+ return line.match(/^(#{1,6})\s+(.+?)\s*$/);
5
+ }
6
+ function isImage(line) {
7
+ return line.match(/^!\[(.*?)\]\((.*?)\)\s*$/);
8
+ }
9
+ function isTableStart(lines, index) {
10
+ if (index + 1 >= lines.length) {
11
+ return false;
12
+ }
13
+ return lines[index].trim().startsWith("|") && /^\s*\|?\s*:?-{3,}:?\s*(\|\s*:?-{3,}:?\s*)+\|?\s*$/.test(lines[index + 1]);
14
+ }
15
+ function isListLine(line) {
16
+ return /^\s*([-*]|\d+\.)\s+/.test(line);
17
+ }
18
+ function nextNonEmptyIndex(lines, index) {
19
+ for (let current = index; current < lines.length; current += 1) {
20
+ if (lines[current].trim().length > 0) {
21
+ return current;
22
+ }
23
+ }
24
+ return undefined;
25
+ }
26
+ function cleanHeadingTitle(title) {
27
+ return title.replace(/^#+\s*/, "").trim();
28
+ }
29
+ function splitCaptionBody(body) {
30
+ const separator = " - ";
31
+ const separatorIndex = body.indexOf(separator);
32
+ if (separatorIndex === -1) {
33
+ return { caption: body.trim() };
34
+ }
35
+ const caption = body.slice(0, separatorIndex).trim();
36
+ const captionSummary = body.slice(separatorIndex + separator.length).trim();
37
+ return captionSummary.length === 0 ? { caption } : { caption, captionSummary };
38
+ }
39
+ function parseCaption(line) {
40
+ const trimmed = line.trim();
41
+ const match = trimmed.match(/^(표|Table|그림|Figure)\s+([0-9]+(?:[-.][0-9]+)*)(?:[.)])?\s*[.:]?\s+(.+)$/i);
42
+ if (match === null) {
43
+ return undefined;
44
+ }
45
+ const label = match[1];
46
+ const kind = label === "표" || label.toLocaleLowerCase() === "table" ? "table" : "figure";
47
+ const { caption, captionSummary } = splitCaptionBody(match[3]);
48
+ return {
49
+ kind,
50
+ label,
51
+ number: match[2],
52
+ caption,
53
+ captionSummary,
54
+ rawCaption: trimmed
55
+ };
56
+ }
57
+ function parseMarkdown(markdown) {
58
+ const lines = markdown.replace(/\r\n/g, "\n").split("\n");
59
+ const items = [];
60
+ let index = 0;
61
+ while (index < lines.length) {
62
+ const line = lines[index];
63
+ const trimmed = line.trim();
64
+ if (trimmed.length === 0 || trimmed === "---") {
65
+ index += 1;
66
+ continue;
67
+ }
68
+ const heading = isHeading(line);
69
+ if (heading !== null) {
70
+ items.push({
71
+ kind: "heading",
72
+ level: Math.min(heading[1].length, 3),
73
+ title: cleanHeadingTitle(heading[2]),
74
+ lineStart: index + 1,
75
+ lineEnd: index + 1
76
+ });
77
+ index += 1;
78
+ continue;
79
+ }
80
+ const caption = parseCaption(trimmed);
81
+ if (caption?.kind === "table") {
82
+ const captionStart = index;
83
+ const tableIndex = nextNonEmptyIndex(lines, index + 1);
84
+ if (tableIndex !== undefined && isTableStart(lines, tableIndex)) {
85
+ const tableLines = [];
86
+ index = tableIndex;
87
+ while (index < lines.length && lines[index].trim().startsWith("|")) {
88
+ tableLines.push(lines[index]);
89
+ index += 1;
90
+ }
91
+ items.push({
92
+ kind: "block",
93
+ blockTypeCode: "table",
94
+ contentJson: parseTable(tableLines, caption),
95
+ lineStart: captionStart + 1,
96
+ lineEnd: index
97
+ });
98
+ continue;
99
+ }
100
+ }
101
+ if (line.startsWith("```")) {
102
+ const language = line.slice(3).trim();
103
+ const start = index;
104
+ const codeLines = [];
105
+ index += 1;
106
+ while (index < lines.length && !lines[index].startsWith("```")) {
107
+ codeLines.push(lines[index]);
108
+ index += 1;
109
+ }
110
+ const end = index < lines.length ? index : Math.max(index - 1, start);
111
+ index += index < lines.length ? 1 : 0;
112
+ const notation = language === "mermaid" || language === "plantuml" ? language : undefined;
113
+ items.push(notation === undefined
114
+ ? {
115
+ kind: "block",
116
+ blockTypeCode: "code",
117
+ contentText: codeLines.join("\n"),
118
+ lineStart: start + 1,
119
+ lineEnd: end + 1
120
+ }
121
+ : {
122
+ kind: "block",
123
+ blockTypeCode: "diagram",
124
+ contentJson: {
125
+ notation,
126
+ sourceText: codeLines.join("\n")
127
+ },
128
+ lineStart: start + 1,
129
+ lineEnd: end + 1
130
+ });
131
+ continue;
132
+ }
133
+ if (isTableStart(lines, index)) {
134
+ const start = index;
135
+ const tableLines = [];
136
+ while (index < lines.length && lines[index].trim().startsWith("|")) {
137
+ tableLines.push(lines[index]);
138
+ index += 1;
139
+ }
140
+ items.push({
141
+ kind: "block",
142
+ blockTypeCode: "table",
143
+ contentJson: parseTable(tableLines),
144
+ lineStart: start + 1,
145
+ lineEnd: index
146
+ });
147
+ continue;
148
+ }
149
+ const image = isImage(trimmed);
150
+ if (image !== null) {
151
+ let captionInfo = parseCaption(image[1]);
152
+ let lineEnd = index + 1;
153
+ const visibleCaptionIndex = nextNonEmptyIndex(lines, index + 1);
154
+ if (visibleCaptionIndex !== undefined) {
155
+ const visibleCaption = parseCaption(lines[visibleCaptionIndex]);
156
+ if (visibleCaption?.kind === "figure" && (captionInfo === undefined || visibleCaption.rawCaption === captionInfo.rawCaption)) {
157
+ captionInfo = captionInfo ?? visibleCaption;
158
+ lineEnd = visibleCaptionIndex + 1;
159
+ }
160
+ }
161
+ items.push({
162
+ kind: "block",
163
+ blockTypeCode: "figure",
164
+ contentJson: {
165
+ altText: image[1],
166
+ sourcePath: image[2],
167
+ caption: captionInfo?.caption ?? image[1],
168
+ captionNumber: captionInfo?.number,
169
+ captionSummary: captionInfo?.captionSummary,
170
+ rawCaption: captionInfo?.rawCaption
171
+ },
172
+ lineStart: index + 1,
173
+ lineEnd
174
+ });
175
+ index = lineEnd;
176
+ continue;
177
+ }
178
+ if (trimmed.startsWith(">")) {
179
+ const start = index;
180
+ const quoteLines = [];
181
+ while (index < lines.length && lines[index].trim().startsWith(">")) {
182
+ quoteLines.push(lines[index].trim().replace(/^>\s?/, ""));
183
+ index += 1;
184
+ }
185
+ items.push({
186
+ kind: "block",
187
+ blockTypeCode: "quote",
188
+ contentText: quoteLines.join("\n").trim(),
189
+ lineStart: start + 1,
190
+ lineEnd: index
191
+ });
192
+ continue;
193
+ }
194
+ if (isListLine(line)) {
195
+ const start = index;
196
+ const listItems = [];
197
+ while (index < lines.length && isListLine(lines[index])) {
198
+ listItems.push({
199
+ text: lines[index].trim().replace(/^([-*]|\d+\.)\s+/, "")
200
+ });
201
+ index += 1;
202
+ }
203
+ items.push({
204
+ kind: "block",
205
+ blockTypeCode: "list",
206
+ contentJson: {
207
+ items: listItems
208
+ },
209
+ lineStart: start + 1,
210
+ lineEnd: index
211
+ });
212
+ continue;
213
+ }
214
+ const start = index;
215
+ const paragraphLines = [];
216
+ while (index < lines.length &&
217
+ lines[index].trim().length > 0 &&
218
+ isHeading(lines[index]) === null &&
219
+ !lines[index].startsWith("```") &&
220
+ !isTableStart(lines, index) &&
221
+ isImage(lines[index].trim()) === null &&
222
+ !lines[index].trim().startsWith(">") &&
223
+ !isListLine(lines[index])) {
224
+ paragraphLines.push(lines[index].trim());
225
+ index += 1;
226
+ }
227
+ items.push({
228
+ kind: "block",
229
+ blockTypeCode: "paragraph",
230
+ contentText: paragraphLines.join("\n").trim(),
231
+ lineStart: start + 1,
232
+ lineEnd: index
233
+ });
234
+ }
235
+ return items;
236
+ }
237
+ function parseTable(lines, caption) {
238
+ const rows = lines
239
+ .filter((line, index) => index !== 1)
240
+ .map((line) => line.trim().replace(/^\|/, "").replace(/\|$/, "").split("|").map((cell) => cell.trim()));
241
+ const headers = rows[0] ?? [];
242
+ const body = rows.slice(1);
243
+ const columns = headers.map((header, index) => ({
244
+ key: `column_${index + 1}`,
245
+ header,
246
+ valueType: "text"
247
+ }));
248
+ return {
249
+ caption: caption?.caption,
250
+ captionNumber: caption?.number,
251
+ captionSummary: caption?.captionSummary,
252
+ rawCaption: caption?.rawCaption,
253
+ columns,
254
+ rows: body.map((cells) => Object.fromEntries(columns.map((column, index) => [column.key, cells[index] ?? ""]))),
255
+ markdown: lines.join("\n")
256
+ };
257
+ }
258
+ function sourceMetadata(sourcePath, item) {
259
+ return {
260
+ importedBy: "agentic-domain-document.markdown-importer",
261
+ sourceType: "markdown",
262
+ sourcePath,
263
+ sourceLineStart: item.lineStart,
264
+ sourceLineEnd: item.lineEnd
265
+ };
266
+ }
267
+ export class DocumentMarkdownImporter {
268
+ ownsDatabase;
269
+ db;
270
+ constructor(options = {}) {
271
+ this.ownsDatabase = options.database === undefined;
272
+ this.db = options.database ?? openDocumentDatabase(options);
273
+ }
274
+ close() {
275
+ if (this.ownsDatabase) {
276
+ this.db.close();
277
+ }
278
+ }
279
+ importMarkdownDocument(input) {
280
+ const run = this.db.transaction(() => {
281
+ const service = createDocumentService({ database: this.db });
282
+ const document = service.createDocument({
283
+ title: input.title,
284
+ documentTypeCode: input.documentTypeCode,
285
+ taxonomyCode: input.taxonomyCode ?? input.documentTypeCode,
286
+ versionLabel: input.versionLabel,
287
+ author: input.author,
288
+ metadata: {
289
+ ...(typeof input.metadata === "object" && input.metadata !== null ? input.metadata : {}),
290
+ importedBy: "agentic-domain-document.markdown-importer",
291
+ sourceType: "markdown",
292
+ sourcePath: input.sourcePath
293
+ }
294
+ });
295
+ return this.importItems(document, parseMarkdown(input.markdown), input.sourcePath, input.policy);
296
+ });
297
+ return run();
298
+ }
299
+ importMarkdownChapter(input) {
300
+ const run = this.db.transaction(() => {
301
+ const service = createDocumentService({ database: this.db });
302
+ const document = service.getDocument(input.documentId);
303
+ const items = parseMarkdown(input.markdown);
304
+ if (!items.some((item) => item.kind === "heading")) {
305
+ items.unshift({
306
+ kind: "heading",
307
+ level: 1,
308
+ title: input.fallbackTitle ?? "Imported Chapter",
309
+ lineStart: 1,
310
+ lineEnd: 1
311
+ });
312
+ }
313
+ return this.importItems(document, items, input.sourcePath, input.policy);
314
+ });
315
+ return run();
316
+ }
317
+ importItems(document, items, sourcePath, policy) {
318
+ const service = createDocumentService({ database: this.db });
319
+ const state = {
320
+ documentId: document.documentId,
321
+ sourcePath,
322
+ createdNodes: [],
323
+ createdContents: [],
324
+ createdBlocks: [],
325
+ nodeStack: []
326
+ };
327
+ for (const item of items) {
328
+ if (item.kind === "heading") {
329
+ this.importHeading(service, state, item);
330
+ }
331
+ else {
332
+ this.importBlock(service, state, item);
333
+ }
334
+ }
335
+ const validation = policy?.validateAfterImport === false ? undefined : service.validateDocument(document.documentId);
336
+ return {
337
+ document,
338
+ nodes: state.createdNodes,
339
+ contents: state.createdContents,
340
+ blocks: state.createdBlocks,
341
+ validation
342
+ };
343
+ }
344
+ importHeading(service, state, heading) {
345
+ const parent = state.nodeStack[heading.level - 2];
346
+ const node = service.createNode({
347
+ documentId: state.documentId,
348
+ parentNodeId: parent?.nodeId,
349
+ nodeLevel: heading.level,
350
+ title: heading.title,
351
+ metadata: sourceMetadata(state.sourcePath, heading)
352
+ });
353
+ state.createdNodes.push(node);
354
+ state.nodeStack.length = heading.level - 1;
355
+ state.nodeStack[heading.level - 1] = node;
356
+ }
357
+ importBlock(service, state, block) {
358
+ let node = state.nodeStack[state.nodeStack.length - 1];
359
+ if (node === undefined) {
360
+ node = service.createNode({
361
+ documentId: state.documentId,
362
+ nodeLevel: 1,
363
+ title: "Imported Content",
364
+ metadata: sourceMetadata(state.sourcePath, block)
365
+ });
366
+ state.createdNodes.push(node);
367
+ state.nodeStack[0] = node;
368
+ }
369
+ const content = service.ensureContent(node.nodeId);
370
+ if (!state.createdContents.some((item) => item.contentId === content.contentId)) {
371
+ state.createdContents.push(content);
372
+ }
373
+ const createdBlock = service.addBlock({
374
+ contentId: content.contentId,
375
+ blockTypeCode: block.blockTypeCode,
376
+ contentText: block.contentText,
377
+ contentJson: block.contentJson,
378
+ metadata: sourceMetadata(state.sourcePath, block)
379
+ });
380
+ state.createdBlocks.push(createdBlock);
381
+ }
382
+ }
383
+ export function createDocumentMarkdownImporter(options = {}) {
384
+ return new DocumentMarkdownImporter(options);
385
+ }
386
+ //# sourceMappingURL=markdown-importer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"markdown-importer.js","sourceRoot":"","sources":["../src/markdown-importer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import type { DocumentAggregate, DocumentBlockSearchQuery, DocumentBlockSearchResult, DocumentMarkdownProjectionOptions, DocumentQuery, DocumentReaderOptions, DocumentRecord, DocumentTreeNode } from "./types.js";
2
+ export declare class DocumentReader {
3
+ private readonly ownsDatabase;
4
+ private readonly db;
5
+ private readonly repository;
6
+ constructor(options?: DocumentReaderOptions);
7
+ close(): void;
8
+ listDocuments(query?: DocumentQuery): DocumentRecord[];
9
+ getLatestDocument(query?: DocumentQuery): DocumentRecord | undefined;
10
+ getDocumentAggregate(documentId: string): DocumentAggregate;
11
+ getDocumentTree(documentId: string): DocumentTreeNode[];
12
+ findBlocks(documentId: string, query?: DocumentBlockSearchQuery): DocumentBlockSearchResult[];
13
+ toMarkdown(documentId: string, options?: DocumentMarkdownProjectionOptions): string;
14
+ private getNodePath;
15
+ }
16
+ export declare function createDocumentReader(options?: DocumentReaderOptions): DocumentReader;
17
+ //# sourceMappingURL=reader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reader.d.ts","sourceRoot":"","sources":["../src/reader.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,iBAAiB,EAEjB,wBAAwB,EACxB,yBAAyB,EAEzB,iCAAiC,EAEjC,aAAa,EACb,qBAAqB,EACrB,cAAc,EACd,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAwLpB,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAU;IACvC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAoB;IACvC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAqB;gBAEpC,OAAO,GAAE,qBAA0B;IAM/C,KAAK,IAAI,IAAI;IAMb,aAAa,CAAC,KAAK,GAAE,aAAkB,GAAG,cAAc,EAAE;IAI1D,iBAAiB,CAAC,KAAK,GAAE,aAAkB,GAAG,cAAc,GAAG,SAAS;IAIxE,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,iBAAiB;IAwB3D,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,gBAAgB,EAAE;IA6CvD,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,GAAE,wBAA6B,GAAG,yBAAyB,EAAE;IAwDjG,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,GAAE,iCAAsC,GAAG,MAAM;IAqDvF,OAAO,CAAC,WAAW;CAepB;AAED,wBAAgB,oBAAoB,CAAC,OAAO,GAAE,qBAA0B,GAAG,cAAc,CAExF"}