learngraph 0.1.1 → 0.3.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 (150) hide show
  1. package/LICENSE +190 -21
  2. package/README.md +165 -3
  3. package/dist/cjs/llm/adapters/anthropic.js +124 -0
  4. package/dist/cjs/llm/adapters/anthropic.js.map +1 -0
  5. package/dist/cjs/llm/adapters/base.js +100 -0
  6. package/dist/cjs/llm/adapters/base.js.map +1 -0
  7. package/dist/cjs/llm/adapters/index.js +22 -0
  8. package/dist/cjs/llm/adapters/index.js.map +1 -0
  9. package/dist/cjs/llm/adapters/ollama.js +149 -0
  10. package/dist/cjs/llm/adapters/ollama.js.map +1 -0
  11. package/dist/cjs/llm/adapters/openai.js +126 -0
  12. package/dist/cjs/llm/adapters/openai.js.map +1 -0
  13. package/dist/cjs/llm/index.js +34 -5
  14. package/dist/cjs/llm/index.js.map +1 -1
  15. package/dist/cjs/llm/orchestrator.js +219 -0
  16. package/dist/cjs/llm/orchestrator.js.map +1 -0
  17. package/dist/cjs/llm/prompts.js +367 -0
  18. package/dist/cjs/llm/prompts.js.map +1 -0
  19. package/dist/cjs/parsers/base.js +189 -0
  20. package/dist/cjs/parsers/base.js.map +1 -0
  21. package/dist/cjs/parsers/demo.js +159 -0
  22. package/dist/cjs/parsers/demo.js.map +1 -0
  23. package/dist/cjs/parsers/extractor.js +191 -0
  24. package/dist/cjs/parsers/extractor.js.map +1 -0
  25. package/dist/cjs/parsers/index.js +43 -4
  26. package/dist/cjs/parsers/index.js.map +1 -1
  27. package/dist/cjs/parsers/json.js +157 -0
  28. package/dist/cjs/parsers/json.js.map +1 -0
  29. package/dist/cjs/parsers/markdown.js +168 -0
  30. package/dist/cjs/parsers/markdown.js.map +1 -0
  31. package/dist/cjs/parsers/samples.js +139 -0
  32. package/dist/cjs/parsers/samples.js.map +1 -0
  33. package/dist/cjs/storage/base.js +231 -0
  34. package/dist/cjs/storage/base.js.map +1 -0
  35. package/dist/cjs/storage/errors.js +128 -0
  36. package/dist/cjs/storage/errors.js.map +1 -0
  37. package/dist/cjs/storage/index.js +92 -5
  38. package/dist/cjs/storage/index.js.map +1 -1
  39. package/dist/cjs/storage/levelgraph.js +855 -0
  40. package/dist/cjs/storage/levelgraph.js.map +1 -0
  41. package/dist/cjs/storage/memory.js +447 -0
  42. package/dist/cjs/storage/memory.js.map +1 -0
  43. package/dist/cjs/storage/neo4j.js +866 -0
  44. package/dist/cjs/storage/neo4j.js.map +1 -0
  45. package/dist/cjs/storage/seeds.js +565 -0
  46. package/dist/cjs/storage/seeds.js.map +1 -0
  47. package/dist/cjs/types/llm.js +8 -0
  48. package/dist/cjs/types/llm.js.map +1 -0
  49. package/dist/cjs/types/parser.js +8 -0
  50. package/dist/cjs/types/parser.js.map +1 -0
  51. package/dist/esm/llm/adapters/anthropic.js +119 -0
  52. package/dist/esm/llm/adapters/anthropic.js.map +1 -0
  53. package/dist/esm/llm/adapters/base.js +95 -0
  54. package/dist/esm/llm/adapters/base.js.map +1 -0
  55. package/dist/esm/llm/adapters/index.js +10 -0
  56. package/dist/esm/llm/adapters/index.js.map +1 -0
  57. package/dist/esm/llm/adapters/ollama.js +144 -0
  58. package/dist/esm/llm/adapters/ollama.js.map +1 -0
  59. package/dist/esm/llm/adapters/openai.js +121 -0
  60. package/dist/esm/llm/adapters/openai.js.map +1 -0
  61. package/dist/esm/llm/index.js +12 -6
  62. package/dist/esm/llm/index.js.map +1 -1
  63. package/dist/esm/llm/orchestrator.js +214 -0
  64. package/dist/esm/llm/orchestrator.js.map +1 -0
  65. package/dist/esm/llm/prompts.js +360 -0
  66. package/dist/esm/llm/prompts.js.map +1 -0
  67. package/dist/esm/parsers/base.js +179 -0
  68. package/dist/esm/parsers/base.js.map +1 -0
  69. package/dist/esm/parsers/demo.js +154 -0
  70. package/dist/esm/parsers/demo.js.map +1 -0
  71. package/dist/esm/parsers/extractor.js +187 -0
  72. package/dist/esm/parsers/extractor.js.map +1 -0
  73. package/dist/esm/parsers/index.js +24 -5
  74. package/dist/esm/parsers/index.js.map +1 -1
  75. package/dist/esm/parsers/json.js +153 -0
  76. package/dist/esm/parsers/json.js.map +1 -0
  77. package/dist/esm/parsers/markdown.js +164 -0
  78. package/dist/esm/parsers/markdown.js.map +1 -0
  79. package/dist/esm/parsers/samples.js +136 -0
  80. package/dist/esm/parsers/samples.js.map +1 -0
  81. package/dist/esm/storage/base.js +221 -0
  82. package/dist/esm/storage/base.js.map +1 -0
  83. package/dist/esm/storage/errors.js +116 -0
  84. package/dist/esm/storage/errors.js.map +1 -0
  85. package/dist/esm/storage/index.js +71 -6
  86. package/dist/esm/storage/index.js.map +1 -1
  87. package/dist/esm/storage/levelgraph.js +818 -0
  88. package/dist/esm/storage/levelgraph.js.map +1 -0
  89. package/dist/esm/storage/memory.js +443 -0
  90. package/dist/esm/storage/memory.js.map +1 -0
  91. package/dist/esm/storage/neo4j.js +829 -0
  92. package/dist/esm/storage/neo4j.js.map +1 -0
  93. package/dist/esm/storage/seeds.js +561 -0
  94. package/dist/esm/storage/seeds.js.map +1 -0
  95. package/dist/esm/types/llm.js +7 -0
  96. package/dist/esm/types/llm.js.map +1 -0
  97. package/dist/esm/types/parser.js +7 -0
  98. package/dist/esm/types/parser.js.map +1 -0
  99. package/dist/types/llm/adapters/anthropic.d.ts +21 -0
  100. package/dist/types/llm/adapters/anthropic.d.ts.map +1 -0
  101. package/dist/types/llm/adapters/base.d.ts +46 -0
  102. package/dist/types/llm/adapters/base.d.ts.map +1 -0
  103. package/dist/types/llm/adapters/index.d.ts +11 -0
  104. package/dist/types/llm/adapters/index.d.ts.map +1 -0
  105. package/dist/types/llm/adapters/ollama.d.ts +30 -0
  106. package/dist/types/llm/adapters/ollama.d.ts.map +1 -0
  107. package/dist/types/llm/adapters/openai.d.ts +22 -0
  108. package/dist/types/llm/adapters/openai.d.ts.map +1 -0
  109. package/dist/types/llm/index.d.ts +5 -0
  110. package/dist/types/llm/index.d.ts.map +1 -1
  111. package/dist/types/llm/orchestrator.d.ts +35 -0
  112. package/dist/types/llm/orchestrator.d.ts.map +1 -0
  113. package/dist/types/llm/prompts.d.ts +269 -0
  114. package/dist/types/llm/prompts.d.ts.map +1 -0
  115. package/dist/types/parsers/base.d.ts +39 -0
  116. package/dist/types/parsers/base.d.ts.map +1 -0
  117. package/dist/types/parsers/demo.d.ts +87 -0
  118. package/dist/types/parsers/demo.d.ts.map +1 -0
  119. package/dist/types/parsers/extractor.d.ts +43 -0
  120. package/dist/types/parsers/extractor.d.ts.map +1 -0
  121. package/dist/types/parsers/index.d.ts +10 -0
  122. package/dist/types/parsers/index.d.ts.map +1 -1
  123. package/dist/types/parsers/json.d.ts +71 -0
  124. package/dist/types/parsers/json.d.ts.map +1 -0
  125. package/dist/types/parsers/markdown.d.ts +43 -0
  126. package/dist/types/parsers/markdown.d.ts.map +1 -0
  127. package/dist/types/parsers/samples.d.ts +27 -0
  128. package/dist/types/parsers/samples.d.ts.map +1 -0
  129. package/dist/types/storage/base.d.ts +39 -0
  130. package/dist/types/storage/base.d.ts.map +1 -0
  131. package/dist/types/storage/errors.d.ts +74 -0
  132. package/dist/types/storage/errors.d.ts.map +1 -0
  133. package/dist/types/storage/index.d.ts +50 -2
  134. package/dist/types/storage/index.d.ts.map +1 -1
  135. package/dist/types/storage/levelgraph.d.ts +92 -0
  136. package/dist/types/storage/levelgraph.d.ts.map +1 -0
  137. package/dist/types/storage/memory.d.ts +70 -0
  138. package/dist/types/storage/memory.d.ts.map +1 -0
  139. package/dist/types/storage/neo4j.d.ts +88 -0
  140. package/dist/types/storage/neo4j.d.ts.map +1 -0
  141. package/dist/types/storage/seeds.d.ts +27 -0
  142. package/dist/types/storage/seeds.d.ts.map +1 -0
  143. package/dist/types/types/index.d.ts +2 -0
  144. package/dist/types/types/index.d.ts.map +1 -1
  145. package/dist/types/types/llm.d.ts +298 -0
  146. package/dist/types/types/llm.d.ts.map +1 -0
  147. package/dist/types/types/parser.d.ts +208 -0
  148. package/dist/types/types/parser.d.ts.map +1 -0
  149. package/package.json +4 -2
  150. package/scripts/postinstall.js +68 -0
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Anthropic adapter for LLM integration
3
+ *
4
+ * @packageDocumentation
5
+ */
6
+ import type { LLMProvider, AnthropicConfig, CompletionRequest, CompletionResponse } from '../../types/llm.js';
7
+ import { BaseLLMAdapter } from './base.js';
8
+ /**
9
+ * Anthropic adapter for Claude models
10
+ */
11
+ export declare class AnthropicAdapter extends BaseLLMAdapter {
12
+ private readonly baseUrl;
13
+ constructor(config: AnthropicConfig);
14
+ get provider(): LLMProvider;
15
+ complete(request: CompletionRequest): Promise<CompletionResponse>;
16
+ }
17
+ /**
18
+ * Create an Anthropic adapter from environment variables
19
+ */
20
+ export declare function createAnthropicAdapter(model?: string, overrides?: Partial<AnthropicConfig>): AnthropicAdapter;
21
+ //# sourceMappingURL=anthropic.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../../../src/llm/adapters/anthropic.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,WAAW,EACX,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,cAAc,EAA4B,MAAM,WAAW,CAAC;AAiCrE;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,cAAc;IAClD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;gBAErB,MAAM,EAAE,eAAe;IAKnC,IAAI,QAAQ,IAAI,WAAW,CAE1B;IAEK,QAAQ,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAyGxE;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,SAA+B,EACpC,SAAS,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,GACnC,gBAAgB,CAclB"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Base adapter class for LLM providers
3
+ *
4
+ * @packageDocumentation
5
+ */
6
+ import type { LLMProvider, LLMConfig, LLMAdapter, CompletionRequest, CompletionResponse } from '../../types/llm.js';
7
+ /**
8
+ * LLM-related errors
9
+ */
10
+ export declare class LLMError extends Error {
11
+ readonly code: LLMErrorCode;
12
+ readonly provider: LLMProvider;
13
+ readonly cause?: Error | undefined;
14
+ constructor(message: string, code: LLMErrorCode, provider: LLMProvider, cause?: Error | undefined);
15
+ }
16
+ export type LLMErrorCode = 'NOT_CONFIGURED' | 'API_ERROR' | 'RATE_LIMIT' | 'INVALID_RESPONSE' | 'TIMEOUT' | 'NETWORK_ERROR' | 'PARSE_ERROR';
17
+ /**
18
+ * Default configuration values
19
+ */
20
+ export declare const DEFAULT_CONFIG: {
21
+ maxTokens: number;
22
+ temperature: number;
23
+ timeout: number;
24
+ retries: number;
25
+ };
26
+ /**
27
+ * Abstract base class for LLM adapters
28
+ */
29
+ export declare abstract class BaseLLMAdapter implements LLMAdapter {
30
+ protected config: LLMConfig;
31
+ constructor(config: LLMConfig);
32
+ abstract get provider(): LLMProvider;
33
+ get model(): string;
34
+ abstract complete(request: CompletionRequest): Promise<CompletionResponse>;
35
+ isConfigured(): boolean;
36
+ getConfig(): Omit<LLMConfig, 'apiKey'>;
37
+ /**
38
+ * Retry a function with exponential backoff
39
+ */
40
+ protected withRetry<T>(fn: () => Promise<T>, maxRetries?: number): Promise<T>;
41
+ /**
42
+ * Parse JSON from LLM response, handling common issues
43
+ */
44
+ protected parseJSON<T>(content: string): T;
45
+ }
46
+ //# sourceMappingURL=base.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../src/llm/adapters/base.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,WAAW,EACX,SAAS,EACT,UAAU,EACV,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,oBAAoB,CAAC;AAE5B;;GAEG;AACH,qBAAa,QAAS,SAAQ,KAAK;aAGf,IAAI,EAAE,YAAY;aAClB,QAAQ,EAAE,WAAW;aACrB,KAAK,CAAC,EAAE,KAAK;gBAH7B,OAAO,EAAE,MAAM,EACC,IAAI,EAAE,YAAY,EAClB,QAAQ,EAAE,WAAW,EACrB,KAAK,CAAC,EAAE,KAAK,YAAA;CAKhC;AAED,MAAM,MAAM,YAAY,GACpB,gBAAgB,GAChB,WAAW,GACX,YAAY,GACZ,kBAAkB,GAClB,SAAS,GACT,eAAe,GACf,aAAa,CAAC;AAElB;;GAEG;AACH,eAAO,MAAM,cAAc;;;;;CAK1B,CAAC;AAEF;;GAEG;AACH,8BAAsB,cAAe,YAAW,UAAU;IACxD,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC;gBAEhB,MAAM,EAAE,SAAS;IAO7B,QAAQ,KAAK,QAAQ,IAAI,WAAW,CAAC;IAErC,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAE1E,YAAY,IAAI,OAAO;IAOvB,SAAS,IAAI,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC;IAKtC;;OAEG;cACa,SAAS,CAAC,CAAC,EACzB,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,UAAU,SAAgD,GACzD,OAAO,CAAC,CAAC,CAAC;IA2Bb;;OAEG;IACH,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,CAAC;CAgB3C"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * LLM adapter exports
3
+ *
4
+ * @packageDocumentation
5
+ */
6
+ export { BaseLLMAdapter, LLMError, DEFAULT_CONFIG } from './base.js';
7
+ export type { LLMErrorCode } from './base.js';
8
+ export { OpenAIAdapter, createOpenAIAdapter } from './openai.js';
9
+ export { AnthropicAdapter, createAnthropicAdapter } from './anthropic.js';
10
+ export { OllamaAdapter, createOllamaAdapter } from './ollama.js';
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/llm/adapters/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACrE,YAAY,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAE9C,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAC1E,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Ollama adapter for local LLM integration
3
+ *
4
+ * @packageDocumentation
5
+ */
6
+ import type { LLMProvider, OllamaConfig, CompletionRequest, CompletionResponse } from '../../types/llm.js';
7
+ import { BaseLLMAdapter } from './base.js';
8
+ /**
9
+ * Ollama adapter for local models
10
+ */
11
+ export declare class OllamaAdapter extends BaseLLMAdapter {
12
+ private readonly baseUrl;
13
+ constructor(config: OllamaConfig);
14
+ get provider(): LLMProvider;
15
+ isConfigured(): boolean;
16
+ complete(request: CompletionRequest): Promise<CompletionResponse>;
17
+ /**
18
+ * Check if Ollama is available
19
+ */
20
+ isAvailable(): Promise<boolean>;
21
+ /**
22
+ * List available models
23
+ */
24
+ listModels(): Promise<string[]>;
25
+ }
26
+ /**
27
+ * Create an Ollama adapter
28
+ */
29
+ export declare function createOllamaAdapter(model?: string, overrides?: Partial<OllamaConfig>): OllamaAdapter;
30
+ //# sourceMappingURL=ollama.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ollama.d.ts","sourceRoot":"","sources":["../../../../src/llm/adapters/ollama.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,WAAW,EACX,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,cAAc,EAA4B,MAAM,WAAW,CAAC;AAuBrE;;GAEG;AACH,qBAAa,aAAc,SAAQ,cAAc;IAC/C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;gBAErB,MAAM,EAAE,YAAY;IAKhC,IAAI,QAAQ,IAAI,WAAW,CAE1B;IAED,YAAY,IAAI,OAAO;IAIjB,QAAQ,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IA+GvE;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAWrC;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;CAgBtC;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,SAAa,EAClB,SAAS,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,GAChC,aAAa,CAOf"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * OpenAI adapter for LLM integration
3
+ *
4
+ * @packageDocumentation
5
+ */
6
+ import type { LLMProvider, OpenAIConfig, CompletionRequest, CompletionResponse } from '../../types/llm.js';
7
+ import { BaseLLMAdapter } from './base.js';
8
+ /**
9
+ * OpenAI adapter for chat completions
10
+ */
11
+ export declare class OpenAIAdapter extends BaseLLMAdapter {
12
+ private readonly baseUrl;
13
+ private readonly organization?;
14
+ constructor(config: OpenAIConfig);
15
+ get provider(): LLMProvider;
16
+ complete(request: CompletionRequest): Promise<CompletionResponse>;
17
+ }
18
+ /**
19
+ * Create an OpenAI adapter from environment variables
20
+ */
21
+ export declare function createOpenAIAdapter(model?: string, overrides?: Partial<OpenAIConfig>): OpenAIAdapter;
22
+ //# sourceMappingURL=openai.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../../../src/llm/adapters/openai.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,WAAW,EACX,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,cAAc,EAA4B,MAAM,WAAW,CAAC;AAuCrE;;GAEG;AACH,qBAAa,aAAc,SAAQ,cAAc;IAC/C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAS;gBAE3B,MAAM,EAAE,YAAY;IAQhC,IAAI,QAAQ,IAAI,WAAW,CAE1B;IAEK,QAAQ,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAuGxE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,SAAW,EAChB,SAAS,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,GAChC,aAAa,CAcf"}
@@ -3,4 +3,9 @@
3
3
  *
4
4
  * @packageDocumentation
5
5
  */
6
+ export type { LLMProvider, LLMConfig, OpenAIConfig, AnthropicConfig, OllamaConfig, MessageRole, ChatMessage, CompletionRequest, CompletionResponse, SkillExtractionRequest, ExtractedSkillLLM, SkillExtractionResponse, PrerequisiteInferenceRequest, InferredPrerequisite, PrerequisiteInferenceResponse, BloomAnalysisRequest, BloomAnalysisResponse, DecompositionRequest, DecompositionResponse, LLMAdapter, LLMOrchestrator as ILLMOrchestrator, } from '../types/llm.js';
7
+ export { BaseLLMAdapter, LLMError, DEFAULT_CONFIG, OpenAIAdapter, createOpenAIAdapter, AnthropicAdapter, createAnthropicAdapter, OllamaAdapter, createOllamaAdapter, } from './adapters/index.js';
8
+ export type { LLMErrorCode } from './adapters/index.js';
9
+ export { LLMOrchestrator, createOrchestrator } from './orchestrator.js';
10
+ export { SYSTEM_PROMPTS, EXTRACTION_SCHEMA, PREREQUISITE_SCHEMA, BLOOM_ANALYSIS_SCHEMA, DECOMPOSITION_SCHEMA, buildExtractionPrompt, buildPrerequisitePrompt, buildBloomPrompt, buildDecompositionPrompt, } from './prompts.js';
6
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/llm/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/llm/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,YAAY,EACV,WAAW,EACX,SAAS,EACT,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,WAAW,EACX,WAAW,EACX,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,EACtB,iBAAiB,EACjB,uBAAuB,EACvB,4BAA4B,EAC5B,oBAAoB,EACpB,6BAA6B,EAC7B,oBAAoB,EACpB,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,UAAU,EACV,eAAe,IAAI,gBAAgB,GACpC,MAAM,iBAAiB,CAAC;AAKzB,OAAO,EACL,cAAc,EACd,QAAQ,EACR,cAAc,EACd,aAAa,EACb,mBAAmB,EACnB,gBAAgB,EAChB,sBAAsB,EACtB,aAAa,EACb,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAKxD,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAKxE,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,mBAAmB,EACnB,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,uBAAuB,EACvB,gBAAgB,EAChB,wBAAwB,GACzB,MAAM,cAAc,CAAC"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * LLM orchestrator for educational tasks
3
+ *
4
+ * @packageDocumentation
5
+ */
6
+ import type { LLMAdapter, LLMOrchestrator as ILLMOrchestrator, SkillExtractionRequest, SkillExtractionResponse, PrerequisiteInferenceRequest, PrerequisiteInferenceResponse, BloomAnalysisRequest, BloomAnalysisResponse, DecompositionRequest, DecompositionResponse } from '../types/llm.js';
7
+ /**
8
+ * High-level orchestrator for LLM-based educational tasks
9
+ */
10
+ export declare class LLMOrchestrator implements ILLMOrchestrator {
11
+ private readonly adapter;
12
+ constructor(adapter: LLMAdapter);
13
+ getAdapter(): LLMAdapter;
14
+ /**
15
+ * Extract skills from curriculum content
16
+ */
17
+ extractSkills(request: SkillExtractionRequest): Promise<SkillExtractionResponse>;
18
+ /**
19
+ * Infer prerequisites between skills
20
+ */
21
+ inferPrerequisites(request: PrerequisiteInferenceRequest): Promise<PrerequisiteInferenceResponse>;
22
+ /**
23
+ * Analyze Bloom's level of text
24
+ */
25
+ analyzeBloomLevel(request: BloomAnalysisRequest): Promise<BloomAnalysisResponse>;
26
+ /**
27
+ * Full curriculum decomposition into skill graph
28
+ */
29
+ decompose(request: DecompositionRequest): Promise<DecompositionResponse>;
30
+ }
31
+ /**
32
+ * Create an orchestrator with a specific adapter
33
+ */
34
+ export declare function createOrchestrator(adapter: LLMAdapter): LLMOrchestrator;
35
+ //# sourceMappingURL=orchestrator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../../src/llm/orchestrator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,UAAU,EACV,eAAe,IAAI,gBAAgB,EACnC,sBAAsB,EACtB,uBAAuB,EACvB,4BAA4B,EAC5B,6BAA6B,EAC7B,oBAAoB,EACpB,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EAItB,MAAM,iBAAiB,CAAC;AA+BzB;;GAEG;AACH,qBAAa,eAAgB,YAAW,gBAAgB;IAC1C,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,UAAU;IAEhD,UAAU,IAAI,UAAU;IAIxB;;OAEG;IACG,aAAa,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAqDtF;;OAEG;IACG,kBAAkB,CACtB,OAAO,EAAE,4BAA4B,GACpC,OAAO,CAAC,6BAA6B,CAAC;IAuCzC;;OAEG;IACG,iBAAiB,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IA4BtF;;OAEG;IACG,SAAS,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,qBAAqB,CAAC;CAkF/E;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,UAAU,GAAG,eAAe,CAEvE"}
@@ -0,0 +1,269 @@
1
+ /**
2
+ * Prompts for LLM-based educational tasks
3
+ *
4
+ * @packageDocumentation
5
+ */
6
+ import type { BloomLevel } from '../types/bloom.js';
7
+ export declare const SYSTEM_PROMPTS: {
8
+ skillExtraction: string;
9
+ prerequisiteInference: string;
10
+ bloomAnalysis: string;
11
+ curriculumDecomposition: string;
12
+ };
13
+ export declare const EXTRACTION_SCHEMA: {
14
+ type: string;
15
+ properties: {
16
+ skills: {
17
+ type: string;
18
+ items: {
19
+ type: string;
20
+ properties: {
21
+ name: {
22
+ type: string;
23
+ description: string;
24
+ };
25
+ description: {
26
+ type: string;
27
+ description: string;
28
+ };
29
+ bloomLevel: {
30
+ type: string;
31
+ enum: string[];
32
+ description: string;
33
+ };
34
+ difficulty: {
35
+ type: string;
36
+ minimum: number;
37
+ maximum: number;
38
+ description: string;
39
+ };
40
+ confidence: {
41
+ type: string;
42
+ minimum: number;
43
+ maximum: number;
44
+ description: string;
45
+ };
46
+ isThresholdConcept: {
47
+ type: string;
48
+ description: string;
49
+ };
50
+ estimatedMinutes: {
51
+ type: string;
52
+ description: string;
53
+ };
54
+ keywords: {
55
+ type: string;
56
+ items: {
57
+ type: string;
58
+ };
59
+ description: string;
60
+ };
61
+ reasoning: {
62
+ type: string;
63
+ description: string;
64
+ };
65
+ };
66
+ required: string[];
67
+ };
68
+ };
69
+ warnings: {
70
+ type: string;
71
+ items: {
72
+ type: string;
73
+ };
74
+ description: string;
75
+ };
76
+ };
77
+ required: string[];
78
+ };
79
+ export declare const PREREQUISITE_SCHEMA: {
80
+ type: string;
81
+ properties: {
82
+ prerequisites: {
83
+ type: string;
84
+ items: {
85
+ type: string;
86
+ properties: {
87
+ sourceId: {
88
+ type: string;
89
+ description: string;
90
+ };
91
+ targetId: {
92
+ type: string;
93
+ description: string;
94
+ };
95
+ strength: {
96
+ type: string;
97
+ minimum: number;
98
+ maximum: number;
99
+ description: string;
100
+ };
101
+ type: {
102
+ type: string;
103
+ enum: string[];
104
+ description: string;
105
+ };
106
+ confidence: {
107
+ type: string;
108
+ minimum: number;
109
+ maximum: number;
110
+ description: string;
111
+ };
112
+ reasoning: {
113
+ type: string;
114
+ description: string;
115
+ };
116
+ };
117
+ required: string[];
118
+ };
119
+ };
120
+ };
121
+ required: string[];
122
+ };
123
+ export declare const BLOOM_ANALYSIS_SCHEMA: {
124
+ type: string;
125
+ properties: {
126
+ level: {
127
+ type: string;
128
+ enum: string[];
129
+ description: string;
130
+ };
131
+ confidence: {
132
+ type: string;
133
+ minimum: number;
134
+ maximum: number;
135
+ description: string;
136
+ };
137
+ indicators: {
138
+ type: string;
139
+ items: {
140
+ type: string;
141
+ };
142
+ description: string;
143
+ };
144
+ reasoning: {
145
+ type: string;
146
+ description: string;
147
+ };
148
+ };
149
+ required: string[];
150
+ };
151
+ export declare const DECOMPOSITION_SCHEMA: {
152
+ type: string;
153
+ properties: {
154
+ title: {
155
+ type: string;
156
+ description: string;
157
+ };
158
+ skills: {
159
+ type: string;
160
+ items: {
161
+ type: string;
162
+ properties: {
163
+ id: {
164
+ type: string;
165
+ description: string;
166
+ };
167
+ name: {
168
+ type: string;
169
+ };
170
+ description: {
171
+ type: string;
172
+ };
173
+ bloomLevel: {
174
+ type: string;
175
+ enum: string[];
176
+ };
177
+ difficulty: {
178
+ type: string;
179
+ minimum: number;
180
+ maximum: number;
181
+ };
182
+ isThresholdConcept: {
183
+ type: string;
184
+ };
185
+ estimatedMinutes: {
186
+ type: string;
187
+ };
188
+ keywords: {
189
+ type: string;
190
+ items: {
191
+ type: string;
192
+ };
193
+ };
194
+ };
195
+ required: string[];
196
+ };
197
+ };
198
+ prerequisites: {
199
+ type: string;
200
+ items: {
201
+ type: string;
202
+ properties: {
203
+ sourceId: {
204
+ type: string;
205
+ };
206
+ targetId: {
207
+ type: string;
208
+ };
209
+ strength: {
210
+ type: string;
211
+ minimum: number;
212
+ maximum: number;
213
+ };
214
+ type: {
215
+ type: string;
216
+ enum: string[];
217
+ };
218
+ reasoning: {
219
+ type: string;
220
+ };
221
+ };
222
+ required: string[];
223
+ };
224
+ };
225
+ warnings: {
226
+ type: string;
227
+ items: {
228
+ type: string;
229
+ };
230
+ };
231
+ };
232
+ required: string[];
233
+ };
234
+ /**
235
+ * Build a skill extraction prompt
236
+ */
237
+ export declare function buildExtractionPrompt(content: string, options?: {
238
+ domain?: string;
239
+ gradeLevel?: string;
240
+ context?: string;
241
+ }): string;
242
+ /**
243
+ * Build a prerequisite inference prompt
244
+ */
245
+ export declare function buildPrerequisitePrompt(skills: Array<{
246
+ id: string;
247
+ name: string;
248
+ description: string;
249
+ bloomLevel: BloomLevel;
250
+ difficulty: number;
251
+ }>, options?: {
252
+ domain?: string;
253
+ inferTransitive?: boolean;
254
+ }): string;
255
+ /**
256
+ * Build a Bloom's analysis prompt
257
+ */
258
+ export declare function buildBloomPrompt(text: string, context?: string): string;
259
+ /**
260
+ * Build a curriculum decomposition prompt
261
+ */
262
+ export declare function buildDecompositionPrompt(content: string, options?: {
263
+ title?: string;
264
+ domain?: string;
265
+ gradeLevel?: string;
266
+ context?: string;
267
+ maxDepth?: number;
268
+ }): string;
269
+ //# sourceMappingURL=prompts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../../src/llm/prompts.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAMpD,eAAO,MAAM,cAAc;;;;;CAkG1B,CAAC;AAMF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuD7B,CAAC;AAEF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqC/B,CAAC;AAEF,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyBjC,CAAC;AAEF,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4ChC,CAAC;AAMF;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;IACR,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GACA,MAAM,CAiBR;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,KAAK,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,UAAU,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC,EACF,OAAO,CAAC,EAAE;IACR,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,GACA,MAAM,CA2BR;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAWvE;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;IACR,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GACA,MAAM,CA2BR"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Base parser utilities
3
+ *
4
+ * @packageDocumentation
5
+ */
6
+ import type { ParseResult, ParseOptions, ParseStats, LearningObjective, ParseFormat } from '../types/parser.js';
7
+ /**
8
+ * Default parse options
9
+ */
10
+ export declare const DEFAULT_PARSE_OPTIONS: Required<ParseOptions>;
11
+ /**
12
+ * Extract estimated time from text
13
+ */
14
+ export declare function extractTime(text: string): number | undefined;
15
+ /**
16
+ * Detect if a line is a learning objective
17
+ */
18
+ export declare function isObjectiveLine(line: string, markers: string[]): boolean;
19
+ /**
20
+ * Clean and normalize text
21
+ */
22
+ export declare function cleanText(text: string): string;
23
+ /**
24
+ * Generate a skill name from an objective
25
+ */
26
+ export declare function objectiveToSkillName(objective: string): string;
27
+ /**
28
+ * Create a learning objective from text
29
+ */
30
+ export declare function createObjective(text: string, section?: string, week?: number): LearningObjective;
31
+ /**
32
+ * Create empty parse result
33
+ */
34
+ export declare function createEmptyResult(source: string, format: ParseFormat): ParseResult;
35
+ /**
36
+ * Calculate parse statistics
37
+ */
38
+ export declare function calculateStats(result: ParseResult, startTime: number): ParseStats;
39
+ //# sourceMappingURL=base.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../src/parsers/base.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,WAAW,EACX,YAAY,EACZ,UAAU,EACV,iBAAiB,EACjB,WAAW,EACZ,MAAM,oBAAoB,CAAC;AAG5B;;GAEG;AACH,eAAO,MAAM,qBAAqB,EAAE,QAAQ,CAAC,YAAY,CA6BxD,CAAC;AAYF;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAY5D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAGxE;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAM9C;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CA2B9D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,MAAM,EAChB,IAAI,CAAC,EAAE,MAAM,GACZ,iBAAiB,CAmBnB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,WAAW,GAClB,WAAW,CAmBb;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,GAAG,UAAU,CA6BjF"}
@@ -0,0 +1,87 @@
1
+ /**
2
+ * Demo utilities for quick testing and exploration
3
+ *
4
+ * @packageDocumentation
5
+ */
6
+ import type { ParseResult, SkillExtractionResult, ExtractionOptions } from '../types/parser.js';
7
+ import type { SkillNode, PrerequisiteEdge, GraphStats } from '../types/index.js';
8
+ import { type SampleSyllabusName } from './samples.js';
9
+ /**
10
+ * Result of the demo function
11
+ */
12
+ export interface DemoResult {
13
+ /** Parse result with extracted modules, topics, objectives */
14
+ parseResult: ParseResult;
15
+ /** Skill extraction result */
16
+ extraction: SkillExtractionResult;
17
+ /** Skills created in storage */
18
+ skills: SkillNode[];
19
+ /** Prerequisite edges created */
20
+ edges: PrerequisiteEdge[];
21
+ /** Graph statistics */
22
+ stats: GraphStats;
23
+ }
24
+ /**
25
+ * Try LearnGraph with a sample syllabus
26
+ *
27
+ * This is the easiest way to see LearnGraph in action.
28
+ *
29
+ * @example
30
+ * ```typescript
31
+ * import { tryWithSample } from 'learngraph/parsers';
32
+ *
33
+ * // Try with physics syllabus
34
+ * const result = await tryWithSample('physics');
35
+ * console.log(`Created ${result.skills.length} skills!`);
36
+ * console.log('Skills:', result.skills.map(s => s.name));
37
+ *
38
+ * // Try with kindergarten math
39
+ * const kResult = await tryWithSample('kindergarten');
40
+ * console.log(`Kindergarten: ${kResult.skills.length} skills`);
41
+ * ```
42
+ */
43
+ export declare function tryWithSample(sample?: SampleSyllabusName): Promise<DemoResult>;
44
+ /**
45
+ * Try LearnGraph with your own syllabus
46
+ *
47
+ * Paste your syllabus as markdown and see the magic happen!
48
+ *
49
+ * @example
50
+ * ```typescript
51
+ * import { tryWithSyllabus } from 'learngraph/parsers';
52
+ *
53
+ * const mySyllabus = `
54
+ * # My Course
55
+ *
56
+ * ## Week 1: Introduction
57
+ *
58
+ * ### Learning Objectives
59
+ * - Understand the course structure
60
+ * - Identify key topics
61
+ * - Apply basic concepts
62
+ * `;
63
+ *
64
+ * const result = await tryWithSyllabus(mySyllabus);
65
+ * console.log('Found', result.parseResult.stats.objectiveCount, 'objectives');
66
+ * console.log('Created', result.skills.length, 'skills');
67
+ *
68
+ * // See the skills
69
+ * for (const skill of result.skills) {
70
+ * console.log(`- ${skill.name} (${skill.bloomLevel}, difficulty: ${skill.difficulty})`);
71
+ * }
72
+ * ```
73
+ */
74
+ export declare function tryWithSyllabus(syllabus: string, options?: ExtractionOptions): Promise<DemoResult>;
75
+ /**
76
+ * Quick console output of demo results
77
+ *
78
+ * @example
79
+ * ```typescript
80
+ * import { tryWithSample, printDemoResults } from 'learngraph/parsers';
81
+ *
82
+ * const result = await tryWithSample('physics');
83
+ * printDemoResults(result);
84
+ * ```
85
+ */
86
+ export declare function printDemoResults(result: DemoResult): void;
87
+ //# sourceMappingURL=demo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"demo.d.ts","sourceRoot":"","sources":["../../../src/parsers/demo.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAChG,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAIjF,OAAO,EAAkB,KAAK,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAEvE;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,8DAA8D;IAC9D,WAAW,EAAE,WAAW,CAAC;IACzB,8BAA8B;IAC9B,UAAU,EAAE,qBAAqB,CAAC;IAClC,gCAAgC;IAChC,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,iCAAiC;IACjC,KAAK,EAAE,gBAAgB,EAAE,CAAC;IAC1B,uBAAuB;IACvB,KAAK,EAAE,UAAU,CAAC;CACnB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,aAAa,CACjC,MAAM,GAAE,kBAA8B,GACrC,OAAO,CAAC,UAAU,CAAC,CAGrB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAsB,eAAe,CACnC,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,UAAU,CAAC,CA2DrB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAsCzD"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Skill extractor - converts parsed syllabi into graph-ready skills
3
+ *
4
+ * @packageDocumentation
5
+ */
6
+ import type { SkillExtractor, ParseResult, ExtractionOptions, SkillExtractionResult } from '../types/parser.js';
7
+ /**
8
+ * Default extraction options
9
+ */
10
+ export declare const DEFAULT_EXTRACTION_OPTIONS: Required<ExtractionOptions>;
11
+ /**
12
+ * Basic skill extractor
13
+ *
14
+ * Converts parsed syllabus content into skills ready for graph storage.
15
+ *
16
+ * @example
17
+ * ```typescript
18
+ * import { MarkdownParser, BasicExtractor } from 'learngraph/parsers';
19
+ *
20
+ * const parser = new MarkdownParser();
21
+ * const extractor = new BasicExtractor();
22
+ *
23
+ * const parseResult = await parser.parse(syllabusMarkdown);
24
+ * const extraction = await extractor.extract(parseResult, {
25
+ * tags: ['physics', 'intro'],
26
+ * domain: 'Physics',
27
+ * gradeLevel: 'Undergraduate'
28
+ * });
29
+ *
30
+ * // Now create skills in storage
31
+ * for (const { skill } of extraction.skills) {
32
+ * await storage.createSkill(skill);
33
+ * }
34
+ * ```
35
+ */
36
+ export declare class BasicExtractor implements SkillExtractor {
37
+ extract(parseResult: ParseResult, options?: ExtractionOptions): Promise<SkillExtractionResult>;
38
+ /**
39
+ * Suggest prerequisite relationships based on skill order and Bloom's levels
40
+ */
41
+ private suggestEdges;
42
+ }
43
+ //# sourceMappingURL=extractor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extractor.d.ts","sourceRoot":"","sources":["../../../src/parsers/extractor.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,cAAc,EACd,WAAW,EACX,iBAAiB,EACjB,qBAAqB,EAKtB,MAAM,oBAAoB,CAAC;AAI5B;;GAEG;AACH,eAAO,MAAM,0BAA0B,EAAE,QAAQ,CAAC,iBAAiB,CAalE,CAAC;AAwBF;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAAa,cAAe,YAAW,cAAc;IAC7C,OAAO,CACX,WAAW,EAAE,WAAW,EACxB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,qBAAqB,CAAC;IAmGjC;;OAEG;IACH,OAAO,CAAC,YAAY;CAkCrB"}