@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.
Files changed (196) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +370 -0
  3. package/README.zh-CN.md +372 -0
  4. package/dist/audit/index.d.ts +9 -0
  5. package/dist/audit/index.d.ts.map +1 -0
  6. package/dist/audit/index.js +9 -0
  7. package/dist/audit/index.js.map +1 -0
  8. package/dist/audit/logger.d.ts +211 -0
  9. package/dist/audit/logger.d.ts.map +1 -0
  10. package/dist/audit/logger.js +268 -0
  11. package/dist/audit/logger.js.map +1 -0
  12. package/dist/audit/query.d.ts +164 -0
  13. package/dist/audit/query.d.ts.map +1 -0
  14. package/dist/audit/query.js +250 -0
  15. package/dist/audit/query.js.map +1 -0
  16. package/dist/conversation/context-builder.d.ts +119 -0
  17. package/dist/conversation/context-builder.d.ts.map +1 -0
  18. package/dist/conversation/context-builder.js +252 -0
  19. package/dist/conversation/context-builder.js.map +1 -0
  20. package/dist/conversation/index.d.ts +10 -0
  21. package/dist/conversation/index.d.ts.map +1 -0
  22. package/dist/conversation/index.js +10 -0
  23. package/dist/conversation/index.js.map +1 -0
  24. package/dist/conversation/message-store.d.ts +231 -0
  25. package/dist/conversation/message-store.d.ts.map +1 -0
  26. package/dist/conversation/message-store.js +404 -0
  27. package/dist/conversation/message-store.js.map +1 -0
  28. package/dist/conversation/session.d.ts +201 -0
  29. package/dist/conversation/session.d.ts.map +1 -0
  30. package/dist/conversation/session.js +285 -0
  31. package/dist/conversation/session.js.map +1 -0
  32. package/dist/core/agent.d.ts +277 -0
  33. package/dist/core/agent.d.ts.map +1 -0
  34. package/dist/core/agent.js +674 -0
  35. package/dist/core/agent.js.map +1 -0
  36. package/dist/core/agentic-loop.d.ts +98 -0
  37. package/dist/core/agentic-loop.d.ts.map +1 -0
  38. package/dist/core/agentic-loop.js +496 -0
  39. package/dist/core/agentic-loop.js.map +1 -0
  40. package/dist/core/index.d.ts +14 -0
  41. package/dist/core/index.d.ts.map +1 -0
  42. package/dist/core/index.js +14 -0
  43. package/dist/core/index.js.map +1 -0
  44. package/dist/core/intent-parser.d.ts +101 -0
  45. package/dist/core/intent-parser.d.ts.map +1 -0
  46. package/dist/core/intent-parser.js +221 -0
  47. package/dist/core/intent-parser.js.map +1 -0
  48. package/dist/core/plan-generator.d.ts +133 -0
  49. package/dist/core/plan-generator.d.ts.map +1 -0
  50. package/dist/core/plan-generator.js +294 -0
  51. package/dist/core/plan-generator.js.map +1 -0
  52. package/dist/core/plugin-manager.d.ts +120 -0
  53. package/dist/core/plugin-manager.d.ts.map +1 -0
  54. package/dist/core/plugin-manager.js +369 -0
  55. package/dist/core/plugin-manager.js.map +1 -0
  56. package/dist/core/response-handler.d.ts +141 -0
  57. package/dist/core/response-handler.d.ts.map +1 -0
  58. package/dist/core/response-handler.js +384 -0
  59. package/dist/core/response-handler.js.map +1 -0
  60. package/dist/core/tool-executor.d.ts +143 -0
  61. package/dist/core/tool-executor.d.ts.map +1 -0
  62. package/dist/core/tool-executor.js +354 -0
  63. package/dist/core/tool-executor.js.map +1 -0
  64. package/dist/core/tool-registry.d.ts +133 -0
  65. package/dist/core/tool-registry.d.ts.map +1 -0
  66. package/dist/core/tool-registry.js +252 -0
  67. package/dist/core/tool-registry.js.map +1 -0
  68. package/dist/index.d.ts +44 -0
  69. package/dist/index.d.ts.map +1 -0
  70. package/dist/index.js +47 -0
  71. package/dist/index.js.map +1 -0
  72. package/dist/knowledge/chunker.d.ts +78 -0
  73. package/dist/knowledge/chunker.d.ts.map +1 -0
  74. package/dist/knowledge/chunker.js +233 -0
  75. package/dist/knowledge/chunker.js.map +1 -0
  76. package/dist/knowledge/embedder.d.ts +93 -0
  77. package/dist/knowledge/embedder.d.ts.map +1 -0
  78. package/dist/knowledge/embedder.js +205 -0
  79. package/dist/knowledge/embedder.js.map +1 -0
  80. package/dist/knowledge/index.d.ts +10 -0
  81. package/dist/knowledge/index.d.ts.map +1 -0
  82. package/dist/knowledge/index.js +11 -0
  83. package/dist/knowledge/index.js.map +1 -0
  84. package/dist/knowledge/loaders/index.d.ts +10 -0
  85. package/dist/knowledge/loaders/index.d.ts.map +1 -0
  86. package/dist/knowledge/loaders/index.js +10 -0
  87. package/dist/knowledge/loaders/index.js.map +1 -0
  88. package/dist/knowledge/loaders/markdown.d.ts +88 -0
  89. package/dist/knowledge/loaders/markdown.d.ts.map +1 -0
  90. package/dist/knowledge/loaders/markdown.js +205 -0
  91. package/dist/knowledge/loaders/markdown.js.map +1 -0
  92. package/dist/knowledge/loaders/yaml.d.ts +112 -0
  93. package/dist/knowledge/loaders/yaml.d.ts.map +1 -0
  94. package/dist/knowledge/loaders/yaml.js +368 -0
  95. package/dist/knowledge/loaders/yaml.js.map +1 -0
  96. package/dist/knowledge/retriever.d.ts +144 -0
  97. package/dist/knowledge/retriever.d.ts.map +1 -0
  98. package/dist/knowledge/retriever.js +399 -0
  99. package/dist/knowledge/retriever.js.map +1 -0
  100. package/dist/knowledge/store.d.ts +146 -0
  101. package/dist/knowledge/store.d.ts.map +1 -0
  102. package/dist/knowledge/store.js +420 -0
  103. package/dist/knowledge/store.js.map +1 -0
  104. package/dist/llm/adapter.d.ts +194 -0
  105. package/dist/llm/adapter.d.ts.map +1 -0
  106. package/dist/llm/adapter.js +42 -0
  107. package/dist/llm/adapter.js.map +1 -0
  108. package/dist/llm/adapters/anyrouter.d.ts +84 -0
  109. package/dist/llm/adapters/anyrouter.d.ts.map +1 -0
  110. package/dist/llm/adapters/anyrouter.js +372 -0
  111. package/dist/llm/adapters/anyrouter.js.map +1 -0
  112. package/dist/llm/adapters/claude.d.ts +66 -0
  113. package/dist/llm/adapters/claude.d.ts.map +1 -0
  114. package/dist/llm/adapters/claude.js +323 -0
  115. package/dist/llm/adapters/claude.js.map +1 -0
  116. package/dist/llm/adapters/index.d.ts +12 -0
  117. package/dist/llm/adapters/index.d.ts.map +1 -0
  118. package/dist/llm/adapters/index.js +12 -0
  119. package/dist/llm/adapters/index.js.map +1 -0
  120. package/dist/llm/adapters/mimo.d.ts +85 -0
  121. package/dist/llm/adapters/mimo.d.ts.map +1 -0
  122. package/dist/llm/adapters/mimo.js +316 -0
  123. package/dist/llm/adapters/mimo.js.map +1 -0
  124. package/dist/llm/adapters/openai.d.ts +53 -0
  125. package/dist/llm/adapters/openai.d.ts.map +1 -0
  126. package/dist/llm/adapters/openai.js +293 -0
  127. package/dist/llm/adapters/openai.js.map +1 -0
  128. package/dist/llm/adapters/qwen.d.ts +53 -0
  129. package/dist/llm/adapters/qwen.d.ts.map +1 -0
  130. package/dist/llm/adapters/qwen.js +299 -0
  131. package/dist/llm/adapters/qwen.js.map +1 -0
  132. package/dist/llm/adapters/siliconflow.d.ts +69 -0
  133. package/dist/llm/adapters/siliconflow.d.ts.map +1 -0
  134. package/dist/llm/adapters/siliconflow.js +331 -0
  135. package/dist/llm/adapters/siliconflow.js.map +1 -0
  136. package/dist/llm/index.d.ts +9 -0
  137. package/dist/llm/index.d.ts.map +1 -0
  138. package/dist/llm/index.js +12 -0
  139. package/dist/llm/index.js.map +1 -0
  140. package/dist/llm/manager.d.ts +97 -0
  141. package/dist/llm/manager.d.ts.map +1 -0
  142. package/dist/llm/manager.js +337 -0
  143. package/dist/llm/manager.js.map +1 -0
  144. package/dist/test-utils/arbitraries.d.ts +230 -0
  145. package/dist/test-utils/arbitraries.d.ts.map +1 -0
  146. package/dist/test-utils/arbitraries.js +280 -0
  147. package/dist/test-utils/arbitraries.js.map +1 -0
  148. package/dist/test-utils/cleanup.d.ts +184 -0
  149. package/dist/test-utils/cleanup.d.ts.map +1 -0
  150. package/dist/test-utils/cleanup.js +282 -0
  151. package/dist/test-utils/cleanup.js.map +1 -0
  152. package/dist/test-utils/config.d.ts +80 -0
  153. package/dist/test-utils/config.d.ts.map +1 -0
  154. package/dist/test-utils/config.js +94 -0
  155. package/dist/test-utils/config.js.map +1 -0
  156. package/dist/test-utils/index.d.ts +10 -0
  157. package/dist/test-utils/index.d.ts.map +1 -0
  158. package/dist/test-utils/index.js +36 -0
  159. package/dist/test-utils/index.js.map +1 -0
  160. package/dist/test-utils/mocks.d.ts +170 -0
  161. package/dist/test-utils/mocks.d.ts.map +1 -0
  162. package/dist/test-utils/mocks.js +281 -0
  163. package/dist/test-utils/mocks.js.map +1 -0
  164. package/dist/types/config.d.ts +170 -0
  165. package/dist/types/config.d.ts.map +1 -0
  166. package/dist/types/config.js +120 -0
  167. package/dist/types/config.js.map +1 -0
  168. package/dist/types/knowledge.d.ts +95 -0
  169. package/dist/types/knowledge.d.ts.map +1 -0
  170. package/dist/types/knowledge.js +7 -0
  171. package/dist/types/knowledge.js.map +1 -0
  172. package/dist/types/loop.d.ts +148 -0
  173. package/dist/types/loop.d.ts.map +1 -0
  174. package/dist/types/loop.js +16 -0
  175. package/dist/types/loop.js.map +1 -0
  176. package/dist/types/plugin.d.ts +137 -0
  177. package/dist/types/plugin.d.ts.map +1 -0
  178. package/dist/types/plugin.js +15 -0
  179. package/dist/types/plugin.js.map +1 -0
  180. package/dist/types/response.d.ts +186 -0
  181. package/dist/types/response.d.ts.map +1 -0
  182. package/dist/types/response.js +99 -0
  183. package/dist/types/response.js.map +1 -0
  184. package/dist/types/streaming.d.ts +478 -0
  185. package/dist/types/streaming.d.ts.map +1 -0
  186. package/dist/types/streaming.js +483 -0
  187. package/dist/types/streaming.js.map +1 -0
  188. package/dist/types/tool.d.ts +118 -0
  189. package/dist/types/tool.d.ts.map +1 -0
  190. package/dist/types/tool.js +42 -0
  191. package/dist/types/tool.js.map +1 -0
  192. package/dist/utils/error.d.ts +22 -0
  193. package/dist/utils/error.d.ts.map +1 -0
  194. package/dist/utils/error.js +36 -0
  195. package/dist/utils/error.js.map +1 -0
  196. 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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"}