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.
- package/LICENSE +190 -21
- package/README.md +165 -3
- package/dist/cjs/llm/adapters/anthropic.js +124 -0
- package/dist/cjs/llm/adapters/anthropic.js.map +1 -0
- package/dist/cjs/llm/adapters/base.js +100 -0
- package/dist/cjs/llm/adapters/base.js.map +1 -0
- package/dist/cjs/llm/adapters/index.js +22 -0
- package/dist/cjs/llm/adapters/index.js.map +1 -0
- package/dist/cjs/llm/adapters/ollama.js +149 -0
- package/dist/cjs/llm/adapters/ollama.js.map +1 -0
- package/dist/cjs/llm/adapters/openai.js +126 -0
- package/dist/cjs/llm/adapters/openai.js.map +1 -0
- package/dist/cjs/llm/index.js +34 -5
- package/dist/cjs/llm/index.js.map +1 -1
- package/dist/cjs/llm/orchestrator.js +219 -0
- package/dist/cjs/llm/orchestrator.js.map +1 -0
- package/dist/cjs/llm/prompts.js +367 -0
- package/dist/cjs/llm/prompts.js.map +1 -0
- package/dist/cjs/parsers/base.js +189 -0
- package/dist/cjs/parsers/base.js.map +1 -0
- package/dist/cjs/parsers/demo.js +159 -0
- package/dist/cjs/parsers/demo.js.map +1 -0
- package/dist/cjs/parsers/extractor.js +191 -0
- package/dist/cjs/parsers/extractor.js.map +1 -0
- package/dist/cjs/parsers/index.js +43 -4
- package/dist/cjs/parsers/index.js.map +1 -1
- package/dist/cjs/parsers/json.js +157 -0
- package/dist/cjs/parsers/json.js.map +1 -0
- package/dist/cjs/parsers/markdown.js +168 -0
- package/dist/cjs/parsers/markdown.js.map +1 -0
- package/dist/cjs/parsers/samples.js +139 -0
- package/dist/cjs/parsers/samples.js.map +1 -0
- package/dist/cjs/storage/base.js +231 -0
- package/dist/cjs/storage/base.js.map +1 -0
- package/dist/cjs/storage/errors.js +128 -0
- package/dist/cjs/storage/errors.js.map +1 -0
- package/dist/cjs/storage/index.js +92 -5
- package/dist/cjs/storage/index.js.map +1 -1
- package/dist/cjs/storage/levelgraph.js +855 -0
- package/dist/cjs/storage/levelgraph.js.map +1 -0
- package/dist/cjs/storage/memory.js +447 -0
- package/dist/cjs/storage/memory.js.map +1 -0
- package/dist/cjs/storage/neo4j.js +866 -0
- package/dist/cjs/storage/neo4j.js.map +1 -0
- package/dist/cjs/storage/seeds.js +565 -0
- package/dist/cjs/storage/seeds.js.map +1 -0
- package/dist/cjs/types/llm.js +8 -0
- package/dist/cjs/types/llm.js.map +1 -0
- package/dist/cjs/types/parser.js +8 -0
- package/dist/cjs/types/parser.js.map +1 -0
- package/dist/esm/llm/adapters/anthropic.js +119 -0
- package/dist/esm/llm/adapters/anthropic.js.map +1 -0
- package/dist/esm/llm/adapters/base.js +95 -0
- package/dist/esm/llm/adapters/base.js.map +1 -0
- package/dist/esm/llm/adapters/index.js +10 -0
- package/dist/esm/llm/adapters/index.js.map +1 -0
- package/dist/esm/llm/adapters/ollama.js +144 -0
- package/dist/esm/llm/adapters/ollama.js.map +1 -0
- package/dist/esm/llm/adapters/openai.js +121 -0
- package/dist/esm/llm/adapters/openai.js.map +1 -0
- package/dist/esm/llm/index.js +12 -6
- package/dist/esm/llm/index.js.map +1 -1
- package/dist/esm/llm/orchestrator.js +214 -0
- package/dist/esm/llm/orchestrator.js.map +1 -0
- package/dist/esm/llm/prompts.js +360 -0
- package/dist/esm/llm/prompts.js.map +1 -0
- package/dist/esm/parsers/base.js +179 -0
- package/dist/esm/parsers/base.js.map +1 -0
- package/dist/esm/parsers/demo.js +154 -0
- package/dist/esm/parsers/demo.js.map +1 -0
- package/dist/esm/parsers/extractor.js +187 -0
- package/dist/esm/parsers/extractor.js.map +1 -0
- package/dist/esm/parsers/index.js +24 -5
- package/dist/esm/parsers/index.js.map +1 -1
- package/dist/esm/parsers/json.js +153 -0
- package/dist/esm/parsers/json.js.map +1 -0
- package/dist/esm/parsers/markdown.js +164 -0
- package/dist/esm/parsers/markdown.js.map +1 -0
- package/dist/esm/parsers/samples.js +136 -0
- package/dist/esm/parsers/samples.js.map +1 -0
- package/dist/esm/storage/base.js +221 -0
- package/dist/esm/storage/base.js.map +1 -0
- package/dist/esm/storage/errors.js +116 -0
- package/dist/esm/storage/errors.js.map +1 -0
- package/dist/esm/storage/index.js +71 -6
- package/dist/esm/storage/index.js.map +1 -1
- package/dist/esm/storage/levelgraph.js +818 -0
- package/dist/esm/storage/levelgraph.js.map +1 -0
- package/dist/esm/storage/memory.js +443 -0
- package/dist/esm/storage/memory.js.map +1 -0
- package/dist/esm/storage/neo4j.js +829 -0
- package/dist/esm/storage/neo4j.js.map +1 -0
- package/dist/esm/storage/seeds.js +561 -0
- package/dist/esm/storage/seeds.js.map +1 -0
- package/dist/esm/types/llm.js +7 -0
- package/dist/esm/types/llm.js.map +1 -0
- package/dist/esm/types/parser.js +7 -0
- package/dist/esm/types/parser.js.map +1 -0
- package/dist/types/llm/adapters/anthropic.d.ts +21 -0
- package/dist/types/llm/adapters/anthropic.d.ts.map +1 -0
- package/dist/types/llm/adapters/base.d.ts +46 -0
- package/dist/types/llm/adapters/base.d.ts.map +1 -0
- package/dist/types/llm/adapters/index.d.ts +11 -0
- package/dist/types/llm/adapters/index.d.ts.map +1 -0
- package/dist/types/llm/adapters/ollama.d.ts +30 -0
- package/dist/types/llm/adapters/ollama.d.ts.map +1 -0
- package/dist/types/llm/adapters/openai.d.ts +22 -0
- package/dist/types/llm/adapters/openai.d.ts.map +1 -0
- package/dist/types/llm/index.d.ts +5 -0
- package/dist/types/llm/index.d.ts.map +1 -1
- package/dist/types/llm/orchestrator.d.ts +35 -0
- package/dist/types/llm/orchestrator.d.ts.map +1 -0
- package/dist/types/llm/prompts.d.ts +269 -0
- package/dist/types/llm/prompts.d.ts.map +1 -0
- package/dist/types/parsers/base.d.ts +39 -0
- package/dist/types/parsers/base.d.ts.map +1 -0
- package/dist/types/parsers/demo.d.ts +87 -0
- package/dist/types/parsers/demo.d.ts.map +1 -0
- package/dist/types/parsers/extractor.d.ts +43 -0
- package/dist/types/parsers/extractor.d.ts.map +1 -0
- package/dist/types/parsers/index.d.ts +10 -0
- package/dist/types/parsers/index.d.ts.map +1 -1
- package/dist/types/parsers/json.d.ts +71 -0
- package/dist/types/parsers/json.d.ts.map +1 -0
- package/dist/types/parsers/markdown.d.ts +43 -0
- package/dist/types/parsers/markdown.d.ts.map +1 -0
- package/dist/types/parsers/samples.d.ts +27 -0
- package/dist/types/parsers/samples.d.ts.map +1 -0
- package/dist/types/storage/base.d.ts +39 -0
- package/dist/types/storage/base.d.ts.map +1 -0
- package/dist/types/storage/errors.d.ts +74 -0
- package/dist/types/storage/errors.d.ts.map +1 -0
- package/dist/types/storage/index.d.ts +50 -2
- package/dist/types/storage/index.d.ts.map +1 -1
- package/dist/types/storage/levelgraph.d.ts +92 -0
- package/dist/types/storage/levelgraph.d.ts.map +1 -0
- package/dist/types/storage/memory.d.ts +70 -0
- package/dist/types/storage/memory.d.ts.map +1 -0
- package/dist/types/storage/neo4j.d.ts +88 -0
- package/dist/types/storage/neo4j.d.ts.map +1 -0
- package/dist/types/storage/seeds.d.ts +27 -0
- package/dist/types/storage/seeds.d.ts.map +1 -0
- package/dist/types/types/index.d.ts +2 -0
- package/dist/types/types/index.d.ts.map +1 -1
- package/dist/types/types/llm.d.ts +298 -0
- package/dist/types/types/llm.d.ts.map +1 -0
- package/dist/types/types/parser.d.ts +208 -0
- package/dist/types/types/parser.d.ts.map +1 -0
- package/package.json +4 -2
- 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"}
|