@agenticc/core 1.0.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.
- package/LICENSE +21 -0
- package/README.md +370 -0
- package/README.zh-CN.md +372 -0
- package/dist/audit/index.d.ts +9 -0
- package/dist/audit/index.d.ts.map +1 -0
- package/dist/audit/index.js +9 -0
- package/dist/audit/index.js.map +1 -0
- package/dist/audit/logger.d.ts +211 -0
- package/dist/audit/logger.d.ts.map +1 -0
- package/dist/audit/logger.js +268 -0
- package/dist/audit/logger.js.map +1 -0
- package/dist/audit/query.d.ts +164 -0
- package/dist/audit/query.d.ts.map +1 -0
- package/dist/audit/query.js +250 -0
- package/dist/audit/query.js.map +1 -0
- package/dist/conversation/context-builder.d.ts +119 -0
- package/dist/conversation/context-builder.d.ts.map +1 -0
- package/dist/conversation/context-builder.js +252 -0
- package/dist/conversation/context-builder.js.map +1 -0
- package/dist/conversation/index.d.ts +10 -0
- package/dist/conversation/index.d.ts.map +1 -0
- package/dist/conversation/index.js +10 -0
- package/dist/conversation/index.js.map +1 -0
- package/dist/conversation/message-store.d.ts +231 -0
- package/dist/conversation/message-store.d.ts.map +1 -0
- package/dist/conversation/message-store.js +404 -0
- package/dist/conversation/message-store.js.map +1 -0
- package/dist/conversation/session.d.ts +201 -0
- package/dist/conversation/session.d.ts.map +1 -0
- package/dist/conversation/session.js +285 -0
- package/dist/conversation/session.js.map +1 -0
- package/dist/core/agent.d.ts +277 -0
- package/dist/core/agent.d.ts.map +1 -0
- package/dist/core/agent.js +674 -0
- package/dist/core/agent.js.map +1 -0
- package/dist/core/agentic-loop.d.ts +98 -0
- package/dist/core/agentic-loop.d.ts.map +1 -0
- package/dist/core/agentic-loop.js +496 -0
- package/dist/core/agentic-loop.js.map +1 -0
- package/dist/core/index.d.ts +14 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +14 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/intent-parser.d.ts +101 -0
- package/dist/core/intent-parser.d.ts.map +1 -0
- package/dist/core/intent-parser.js +221 -0
- package/dist/core/intent-parser.js.map +1 -0
- package/dist/core/plan-generator.d.ts +133 -0
- package/dist/core/plan-generator.d.ts.map +1 -0
- package/dist/core/plan-generator.js +294 -0
- package/dist/core/plan-generator.js.map +1 -0
- package/dist/core/plugin-manager.d.ts +120 -0
- package/dist/core/plugin-manager.d.ts.map +1 -0
- package/dist/core/plugin-manager.js +369 -0
- package/dist/core/plugin-manager.js.map +1 -0
- package/dist/core/response-handler.d.ts +141 -0
- package/dist/core/response-handler.d.ts.map +1 -0
- package/dist/core/response-handler.js +384 -0
- package/dist/core/response-handler.js.map +1 -0
- package/dist/core/tool-executor.d.ts +143 -0
- package/dist/core/tool-executor.d.ts.map +1 -0
- package/dist/core/tool-executor.js +354 -0
- package/dist/core/tool-executor.js.map +1 -0
- package/dist/core/tool-registry.d.ts +133 -0
- package/dist/core/tool-registry.d.ts.map +1 -0
- package/dist/core/tool-registry.js +252 -0
- package/dist/core/tool-registry.js.map +1 -0
- package/dist/index.d.ts +44 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +47 -0
- package/dist/index.js.map +1 -0
- package/dist/knowledge/chunker.d.ts +78 -0
- package/dist/knowledge/chunker.d.ts.map +1 -0
- package/dist/knowledge/chunker.js +233 -0
- package/dist/knowledge/chunker.js.map +1 -0
- package/dist/knowledge/embedder.d.ts +93 -0
- package/dist/knowledge/embedder.d.ts.map +1 -0
- package/dist/knowledge/embedder.js +205 -0
- package/dist/knowledge/embedder.js.map +1 -0
- package/dist/knowledge/index.d.ts +10 -0
- package/dist/knowledge/index.d.ts.map +1 -0
- package/dist/knowledge/index.js +11 -0
- package/dist/knowledge/index.js.map +1 -0
- package/dist/knowledge/loaders/index.d.ts +10 -0
- package/dist/knowledge/loaders/index.d.ts.map +1 -0
- package/dist/knowledge/loaders/index.js +10 -0
- package/dist/knowledge/loaders/index.js.map +1 -0
- package/dist/knowledge/loaders/markdown.d.ts +88 -0
- package/dist/knowledge/loaders/markdown.d.ts.map +1 -0
- package/dist/knowledge/loaders/markdown.js +205 -0
- package/dist/knowledge/loaders/markdown.js.map +1 -0
- package/dist/knowledge/loaders/yaml.d.ts +112 -0
- package/dist/knowledge/loaders/yaml.d.ts.map +1 -0
- package/dist/knowledge/loaders/yaml.js +368 -0
- package/dist/knowledge/loaders/yaml.js.map +1 -0
- package/dist/knowledge/retriever.d.ts +144 -0
- package/dist/knowledge/retriever.d.ts.map +1 -0
- package/dist/knowledge/retriever.js +399 -0
- package/dist/knowledge/retriever.js.map +1 -0
- package/dist/knowledge/store.d.ts +146 -0
- package/dist/knowledge/store.d.ts.map +1 -0
- package/dist/knowledge/store.js +420 -0
- package/dist/knowledge/store.js.map +1 -0
- package/dist/llm/adapter.d.ts +194 -0
- package/dist/llm/adapter.d.ts.map +1 -0
- package/dist/llm/adapter.js +42 -0
- package/dist/llm/adapter.js.map +1 -0
- package/dist/llm/adapters/anyrouter.d.ts +84 -0
- package/dist/llm/adapters/anyrouter.d.ts.map +1 -0
- package/dist/llm/adapters/anyrouter.js +372 -0
- package/dist/llm/adapters/anyrouter.js.map +1 -0
- package/dist/llm/adapters/claude.d.ts +66 -0
- package/dist/llm/adapters/claude.d.ts.map +1 -0
- package/dist/llm/adapters/claude.js +323 -0
- package/dist/llm/adapters/claude.js.map +1 -0
- package/dist/llm/adapters/index.d.ts +12 -0
- package/dist/llm/adapters/index.d.ts.map +1 -0
- package/dist/llm/adapters/index.js +12 -0
- package/dist/llm/adapters/index.js.map +1 -0
- package/dist/llm/adapters/mimo.d.ts +85 -0
- package/dist/llm/adapters/mimo.d.ts.map +1 -0
- package/dist/llm/adapters/mimo.js +316 -0
- package/dist/llm/adapters/mimo.js.map +1 -0
- package/dist/llm/adapters/openai.d.ts +53 -0
- package/dist/llm/adapters/openai.d.ts.map +1 -0
- package/dist/llm/adapters/openai.js +293 -0
- package/dist/llm/adapters/openai.js.map +1 -0
- package/dist/llm/adapters/qwen.d.ts +53 -0
- package/dist/llm/adapters/qwen.d.ts.map +1 -0
- package/dist/llm/adapters/qwen.js +299 -0
- package/dist/llm/adapters/qwen.js.map +1 -0
- package/dist/llm/adapters/siliconflow.d.ts +69 -0
- package/dist/llm/adapters/siliconflow.d.ts.map +1 -0
- package/dist/llm/adapters/siliconflow.js +331 -0
- package/dist/llm/adapters/siliconflow.js.map +1 -0
- package/dist/llm/index.d.ts +9 -0
- package/dist/llm/index.d.ts.map +1 -0
- package/dist/llm/index.js +12 -0
- package/dist/llm/index.js.map +1 -0
- package/dist/llm/manager.d.ts +97 -0
- package/dist/llm/manager.d.ts.map +1 -0
- package/dist/llm/manager.js +337 -0
- package/dist/llm/manager.js.map +1 -0
- package/dist/test-utils/arbitraries.d.ts +230 -0
- package/dist/test-utils/arbitraries.d.ts.map +1 -0
- package/dist/test-utils/arbitraries.js +280 -0
- package/dist/test-utils/arbitraries.js.map +1 -0
- package/dist/test-utils/cleanup.d.ts +184 -0
- package/dist/test-utils/cleanup.d.ts.map +1 -0
- package/dist/test-utils/cleanup.js +282 -0
- package/dist/test-utils/cleanup.js.map +1 -0
- package/dist/test-utils/config.d.ts +80 -0
- package/dist/test-utils/config.d.ts.map +1 -0
- package/dist/test-utils/config.js +94 -0
- package/dist/test-utils/config.js.map +1 -0
- package/dist/test-utils/index.d.ts +10 -0
- package/dist/test-utils/index.d.ts.map +1 -0
- package/dist/test-utils/index.js +36 -0
- package/dist/test-utils/index.js.map +1 -0
- package/dist/test-utils/mocks.d.ts +170 -0
- package/dist/test-utils/mocks.d.ts.map +1 -0
- package/dist/test-utils/mocks.js +281 -0
- package/dist/test-utils/mocks.js.map +1 -0
- package/dist/types/config.d.ts +170 -0
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/config.js +120 -0
- package/dist/types/config.js.map +1 -0
- package/dist/types/knowledge.d.ts +95 -0
- package/dist/types/knowledge.d.ts.map +1 -0
- package/dist/types/knowledge.js +7 -0
- package/dist/types/knowledge.js.map +1 -0
- package/dist/types/loop.d.ts +148 -0
- package/dist/types/loop.d.ts.map +1 -0
- package/dist/types/loop.js +16 -0
- package/dist/types/loop.js.map +1 -0
- package/dist/types/plugin.d.ts +137 -0
- package/dist/types/plugin.d.ts.map +1 -0
- package/dist/types/plugin.js +15 -0
- package/dist/types/plugin.js.map +1 -0
- package/dist/types/response.d.ts +186 -0
- package/dist/types/response.d.ts.map +1 -0
- package/dist/types/response.js +99 -0
- package/dist/types/response.js.map +1 -0
- package/dist/types/streaming.d.ts +478 -0
- package/dist/types/streaming.d.ts.map +1 -0
- package/dist/types/streaming.js +483 -0
- package/dist/types/streaming.js.map +1 -0
- package/dist/types/tool.d.ts +118 -0
- package/dist/types/tool.d.ts.map +1 -0
- package/dist/types/tool.js +42 -0
- package/dist/types/tool.js.map +1 -0
- package/dist/utils/error.d.ts +22 -0
- package/dist/utils/error.d.ts.map +1 -0
- package/dist/utils/error.js +36 -0
- package/dist/utils/error.js.map +1 -0
- package/package.json +102 -0
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Markdown Document Loader
|
|
3
|
+
*
|
|
4
|
+
* Parses Markdown files and extracts structured content for the knowledge base.
|
|
5
|
+
* Supports extracting titles, sections, and metadata from Markdown documents.
|
|
6
|
+
*
|
|
7
|
+
* _Requirements: 3.1_
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Parse YAML frontmatter from Markdown content
|
|
11
|
+
*/
|
|
12
|
+
function parseFrontmatter(content) {
|
|
13
|
+
const frontmatterRegex = /^---\r?\n([\s\S]*?)\r?\n---\r?\n/;
|
|
14
|
+
const match = content.match(frontmatterRegex);
|
|
15
|
+
if (!match) {
|
|
16
|
+
return { content };
|
|
17
|
+
}
|
|
18
|
+
const frontmatterStr = match[1];
|
|
19
|
+
const remainingContent = content.slice(match[0].length);
|
|
20
|
+
// Simple YAML parsing (key: value pairs)
|
|
21
|
+
const frontmatter = {};
|
|
22
|
+
const lines = frontmatterStr.split(/\r?\n/);
|
|
23
|
+
for (const line of lines) {
|
|
24
|
+
const colonIndex = line.indexOf(':');
|
|
25
|
+
if (colonIndex > 0) {
|
|
26
|
+
const key = line.slice(0, colonIndex).trim();
|
|
27
|
+
let value = line.slice(colonIndex + 1).trim();
|
|
28
|
+
// Try to parse as number or boolean
|
|
29
|
+
if (value === 'true')
|
|
30
|
+
value = true;
|
|
31
|
+
else if (value === 'false')
|
|
32
|
+
value = false;
|
|
33
|
+
else if (!isNaN(Number(value)) && value !== '')
|
|
34
|
+
value = Number(value);
|
|
35
|
+
// Remove quotes if present
|
|
36
|
+
else if (typeof value === 'string' && value.startsWith('"') && value.endsWith('"')) {
|
|
37
|
+
value = value.slice(1, -1);
|
|
38
|
+
}
|
|
39
|
+
frontmatter[key] = value;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
return { frontmatter, content: remainingContent };
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Extract sections from Markdown content
|
|
46
|
+
*/
|
|
47
|
+
function extractSections(content) {
|
|
48
|
+
const sections = [];
|
|
49
|
+
const lines = content.split(/\r?\n/);
|
|
50
|
+
const headingRegex = /^(#{1,6})\s+(.+)$/;
|
|
51
|
+
let currentSection = null;
|
|
52
|
+
let contentLines = [];
|
|
53
|
+
for (let i = 0; i < lines.length; i++) {
|
|
54
|
+
const line = lines[i];
|
|
55
|
+
const match = line.match(headingRegex);
|
|
56
|
+
if (match) {
|
|
57
|
+
// Save previous section
|
|
58
|
+
if (currentSection) {
|
|
59
|
+
currentSection.content = contentLines.join('\n').trim();
|
|
60
|
+
sections.push(currentSection);
|
|
61
|
+
}
|
|
62
|
+
// Start new section
|
|
63
|
+
currentSection = {
|
|
64
|
+
level: match[1].length,
|
|
65
|
+
title: match[2].trim(),
|
|
66
|
+
content: '',
|
|
67
|
+
startLine: i + 1,
|
|
68
|
+
};
|
|
69
|
+
contentLines = [];
|
|
70
|
+
}
|
|
71
|
+
else if (currentSection) {
|
|
72
|
+
contentLines.push(line);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
// Save last section
|
|
76
|
+
if (currentSection) {
|
|
77
|
+
currentSection.content = contentLines.join('\n').trim();
|
|
78
|
+
sections.push(currentSection);
|
|
79
|
+
}
|
|
80
|
+
return sections;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Extract the document title from Markdown content
|
|
84
|
+
*/
|
|
85
|
+
function extractTitle(content, sections) {
|
|
86
|
+
// Look for first H1 heading
|
|
87
|
+
const h1Section = sections.find((s) => s.level === 1);
|
|
88
|
+
if (h1Section) {
|
|
89
|
+
return h1Section.title;
|
|
90
|
+
}
|
|
91
|
+
// Look for first heading of any level
|
|
92
|
+
if (sections.length > 0) {
|
|
93
|
+
return sections[0].title;
|
|
94
|
+
}
|
|
95
|
+
// Use first line if it looks like a title
|
|
96
|
+
const firstLine = content.split(/\r?\n/)[0]?.trim();
|
|
97
|
+
if (firstLine && firstLine.length < 100 && !firstLine.includes('.')) {
|
|
98
|
+
return firstLine;
|
|
99
|
+
}
|
|
100
|
+
return 'Untitled Document';
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Parse a Markdown document
|
|
104
|
+
*/
|
|
105
|
+
export function parseMarkdown(content) {
|
|
106
|
+
// Extract frontmatter
|
|
107
|
+
const { frontmatter, content: mainContent } = parseFrontmatter(content);
|
|
108
|
+
// Extract sections
|
|
109
|
+
const sections = extractSections(mainContent);
|
|
110
|
+
// Extract title
|
|
111
|
+
const title = extractTitle(mainContent, sections);
|
|
112
|
+
return {
|
|
113
|
+
title,
|
|
114
|
+
content: mainContent.trim(),
|
|
115
|
+
sections,
|
|
116
|
+
frontmatter,
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Load a Markdown document as a single DocumentInput
|
|
121
|
+
*/
|
|
122
|
+
export function loadMarkdownDocument(content, options) {
|
|
123
|
+
const parsed = parseMarkdown(content);
|
|
124
|
+
return {
|
|
125
|
+
category: options.category,
|
|
126
|
+
title: options.title ?? parsed.title,
|
|
127
|
+
content: parsed.content,
|
|
128
|
+
metadata: {
|
|
129
|
+
...parsed.frontmatter,
|
|
130
|
+
...options.metadata,
|
|
131
|
+
sourceType: 'markdown',
|
|
132
|
+
sectionCount: parsed.sections.length,
|
|
133
|
+
},
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Load a Markdown document and split into multiple DocumentInputs by section
|
|
138
|
+
*/
|
|
139
|
+
export function loadMarkdownSections(content, options) {
|
|
140
|
+
const parsed = parseMarkdown(content);
|
|
141
|
+
const minLevel = options.minSplitLevel ?? 2;
|
|
142
|
+
const maxLevel = options.maxSplitLevel ?? 3;
|
|
143
|
+
// Filter sections by level
|
|
144
|
+
const sectionsToSplit = parsed.sections.filter((s) => s.level >= minLevel && s.level <= maxLevel && s.content.trim().length > 0);
|
|
145
|
+
// If no sections match criteria, return whole document
|
|
146
|
+
if (sectionsToSplit.length === 0) {
|
|
147
|
+
return [loadMarkdownDocument(content, options)];
|
|
148
|
+
}
|
|
149
|
+
// Create a document for each section
|
|
150
|
+
return sectionsToSplit.map((section, index) => ({
|
|
151
|
+
category: options.category,
|
|
152
|
+
title: `${options.title ?? parsed.title} - ${section.title}`,
|
|
153
|
+
content: section.content,
|
|
154
|
+
metadata: {
|
|
155
|
+
...parsed.frontmatter,
|
|
156
|
+
...options.metadata,
|
|
157
|
+
sourceType: 'markdown',
|
|
158
|
+
sectionTitle: section.title,
|
|
159
|
+
sectionLevel: section.level,
|
|
160
|
+
sectionIndex: index,
|
|
161
|
+
parentTitle: parsed.title,
|
|
162
|
+
},
|
|
163
|
+
}));
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Markdown Loader class for loading documents into the knowledge base
|
|
167
|
+
*/
|
|
168
|
+
export class MarkdownLoader {
|
|
169
|
+
defaultCategory;
|
|
170
|
+
defaultMetadata;
|
|
171
|
+
constructor(options) {
|
|
172
|
+
this.defaultCategory = options?.defaultCategory ?? 'general';
|
|
173
|
+
this.defaultMetadata = options?.defaultMetadata ?? {};
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Load a Markdown string as a document
|
|
177
|
+
*/
|
|
178
|
+
load(content, options) {
|
|
179
|
+
return loadMarkdownDocument(content, {
|
|
180
|
+
category: options?.category ?? this.defaultCategory,
|
|
181
|
+
title: options?.title,
|
|
182
|
+
metadata: { ...this.defaultMetadata, ...options?.metadata },
|
|
183
|
+
});
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Load a Markdown string and split into sections
|
|
187
|
+
*/
|
|
188
|
+
loadSections(content, options) {
|
|
189
|
+
return loadMarkdownSections(content, {
|
|
190
|
+
category: options?.category ?? this.defaultCategory,
|
|
191
|
+
splitSections: true,
|
|
192
|
+
minSplitLevel: options?.minSplitLevel,
|
|
193
|
+
maxSplitLevel: options?.maxSplitLevel,
|
|
194
|
+
title: options?.title,
|
|
195
|
+
metadata: { ...this.defaultMetadata, ...options?.metadata },
|
|
196
|
+
});
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Parse Markdown content without creating DocumentInput
|
|
200
|
+
*/
|
|
201
|
+
parse(content) {
|
|
202
|
+
return parseMarkdown(content);
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
//# sourceMappingURL=markdown.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markdown.js","sourceRoot":"","sources":["../../../src/knowledge/loaders/markdown.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* YAML Document Loader
|
|
3
|
+
*
|
|
4
|
+
* Parses YAML configuration files and converts them to searchable text
|
|
5
|
+
* for the knowledge base. Supports MythicMobs and other game configuration formats.
|
|
6
|
+
*
|
|
7
|
+
* _Requirements: 3.1_
|
|
8
|
+
*/
|
|
9
|
+
import type { DocumentInput } from '../../types/knowledge.js';
|
|
10
|
+
/**
|
|
11
|
+
* Parsed YAML node with path information
|
|
12
|
+
*/
|
|
13
|
+
export interface YamlNode {
|
|
14
|
+
/** Path to this node (e.g., "mobs.skeleton.health") */
|
|
15
|
+
path: string;
|
|
16
|
+
/** Key name */
|
|
17
|
+
key: string;
|
|
18
|
+
/** Value (can be primitive, array, or object) */
|
|
19
|
+
value: unknown;
|
|
20
|
+
/** Depth in the tree */
|
|
21
|
+
depth: number;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Result of parsing a YAML document
|
|
25
|
+
*/
|
|
26
|
+
export interface YamlParseResult {
|
|
27
|
+
/** Parsed data structure */
|
|
28
|
+
data: Record<string, unknown>;
|
|
29
|
+
/** Flattened nodes for searching */
|
|
30
|
+
nodes: YamlNode[];
|
|
31
|
+
/** Root keys in the document */
|
|
32
|
+
rootKeys: string[];
|
|
33
|
+
/** Human-readable text representation */
|
|
34
|
+
textContent: string;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Options for loading YAML documents
|
|
38
|
+
*/
|
|
39
|
+
export interface YamlLoaderOptions {
|
|
40
|
+
/** Category for the document */
|
|
41
|
+
category: string;
|
|
42
|
+
/** Document title */
|
|
43
|
+
title?: string;
|
|
44
|
+
/** Additional metadata to include */
|
|
45
|
+
metadata?: Record<string, unknown>;
|
|
46
|
+
/** Maximum depth to traverse (default: 10) */
|
|
47
|
+
maxDepth?: number;
|
|
48
|
+
/** Whether to include array indices in paths (default: true) */
|
|
49
|
+
includeArrayIndices?: boolean;
|
|
50
|
+
/** Custom text formatter */
|
|
51
|
+
textFormatter?: (data: Record<string, unknown>) => string;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Simple YAML parser for common configuration formats
|
|
55
|
+
* Handles basic YAML structures without external dependencies
|
|
56
|
+
*/
|
|
57
|
+
export declare function parseYaml(content: string): Record<string, unknown>;
|
|
58
|
+
/**
|
|
59
|
+
* Flatten a YAML object into nodes with paths
|
|
60
|
+
*/
|
|
61
|
+
export declare function flattenYaml(data: Record<string, unknown>, options?: {
|
|
62
|
+
maxDepth?: number;
|
|
63
|
+
includeArrayIndices?: boolean;
|
|
64
|
+
}): YamlNode[];
|
|
65
|
+
/**
|
|
66
|
+
* Convert YAML data to human-readable text
|
|
67
|
+
*/
|
|
68
|
+
export declare function yamlToText(data: Record<string, unknown>, indent?: number): string;
|
|
69
|
+
/**
|
|
70
|
+
* Parse a YAML document and extract structured information
|
|
71
|
+
*/
|
|
72
|
+
export declare function parseYamlDocument(content: string, options?: {
|
|
73
|
+
maxDepth?: number;
|
|
74
|
+
}): YamlParseResult;
|
|
75
|
+
/**
|
|
76
|
+
* Load a YAML document as a single DocumentInput
|
|
77
|
+
*/
|
|
78
|
+
export declare function loadYamlDocument(content: string, options: YamlLoaderOptions): DocumentInput;
|
|
79
|
+
/**
|
|
80
|
+
* Load a YAML document and split by root keys
|
|
81
|
+
*/
|
|
82
|
+
export declare function loadYamlByRootKeys(content: string, options: YamlLoaderOptions): DocumentInput[];
|
|
83
|
+
/**
|
|
84
|
+
* YAML Loader class for loading documents into the knowledge base
|
|
85
|
+
*/
|
|
86
|
+
export declare class YamlLoader {
|
|
87
|
+
private defaultCategory;
|
|
88
|
+
private defaultMetadata;
|
|
89
|
+
private maxDepth;
|
|
90
|
+
constructor(options?: {
|
|
91
|
+
defaultCategory?: string;
|
|
92
|
+
defaultMetadata?: Record<string, unknown>;
|
|
93
|
+
maxDepth?: number;
|
|
94
|
+
});
|
|
95
|
+
/**
|
|
96
|
+
* Load a YAML string as a document
|
|
97
|
+
*/
|
|
98
|
+
load(content: string, options?: Partial<YamlLoaderOptions>): DocumentInput;
|
|
99
|
+
/**
|
|
100
|
+
* Load a YAML string and split by root keys
|
|
101
|
+
*/
|
|
102
|
+
loadByRootKeys(content: string, options?: Partial<YamlLoaderOptions>): DocumentInput[];
|
|
103
|
+
/**
|
|
104
|
+
* Parse YAML content without creating DocumentInput
|
|
105
|
+
*/
|
|
106
|
+
parse(content: string): YamlParseResult;
|
|
107
|
+
/**
|
|
108
|
+
* Parse raw YAML to object
|
|
109
|
+
*/
|
|
110
|
+
parseRaw(content: string): Record<string, unknown>;
|
|
111
|
+
}
|
|
112
|
+
//# sourceMappingURL=yaml.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"yaml.d.ts","sourceRoot":"","sources":["../../../src/knowledge/loaders/yaml.ts"],"names":[],"mappings":"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"}
|