@micrantha/react-native-amaryllis 0.1.0 → 0.1.5
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/README.md +43 -8
- package/android/src/main/java/com/micrantha/amaryllis/Amaryllis.kt +83 -8
- package/lib/module/Amaryllis.js +75 -20
- package/lib/module/Amaryllis.js.map +1 -1
- package/lib/module/AmaryllisContext.js +14 -4
- package/lib/module/AmaryllisContext.js.map +1 -1
- package/lib/module/AmaryllisHooks.js +87 -4
- package/lib/module/AmaryllisHooks.js.map +1 -1
- package/lib/module/AmaryllisRx.js +15 -14
- package/lib/module/AmaryllisRx.js.map +1 -1
- package/lib/module/ContextEngine.js +87 -0
- package/lib/module/ContextEngine.js.map +1 -0
- package/lib/module/ContextEngineContext.js +22 -0
- package/lib/module/ContextEngineContext.js.map +1 -0
- package/lib/module/ContextPolicies.js +46 -0
- package/lib/module/ContextPolicies.js.map +1 -0
- package/lib/module/ContextTypes.js +4 -0
- package/lib/module/ContextTypes.js.map +1 -0
- package/lib/module/ContextValidation.js +189 -0
- package/lib/module/ContextValidation.js.map +1 -0
- package/lib/module/Errors.js +46 -0
- package/lib/module/Errors.js.map +1 -0
- package/lib/module/NativeAmaryllis.js.map +1 -1
- package/lib/module/TypeConverters.js +80 -0
- package/lib/module/TypeConverters.js.map +1 -0
- package/lib/module/context.js +8 -0
- package/lib/module/context.js.map +1 -0
- package/lib/module/index.js +4 -0
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/src/Amaryllis.d.ts.map +1 -1
- package/lib/typescript/src/AmaryllisContext.d.ts.map +1 -1
- package/lib/typescript/src/AmaryllisHooks.d.ts +8 -1
- package/lib/typescript/src/AmaryllisHooks.d.ts.map +1 -1
- package/lib/typescript/src/AmaryllisRx.d.ts.map +1 -1
- package/lib/typescript/src/ContextEngine.d.ts +19 -0
- package/lib/typescript/src/ContextEngine.d.ts.map +1 -0
- package/lib/typescript/src/ContextEngineContext.d.ts +9 -0
- package/lib/typescript/src/ContextEngineContext.d.ts.map +1 -0
- package/lib/typescript/src/ContextPolicies.d.ts +4 -0
- package/lib/typescript/src/ContextPolicies.d.ts.map +1 -0
- package/lib/typescript/src/ContextTypes.d.ts +92 -0
- package/lib/typescript/src/ContextTypes.d.ts.map +1 -0
- package/lib/typescript/src/ContextValidation.d.ts +9 -0
- package/lib/typescript/src/ContextValidation.d.ts.map +1 -0
- package/lib/typescript/src/Errors.d.ts +22 -0
- package/lib/typescript/src/Errors.d.ts.map +1 -0
- package/lib/typescript/src/NativeAmaryllis.d.ts +24 -4
- package/lib/typescript/src/NativeAmaryllis.d.ts.map +1 -1
- package/lib/typescript/src/TypeConverters.d.ts +43 -0
- package/lib/typescript/src/TypeConverters.d.ts.map +1 -0
- package/lib/typescript/src/Types.d.ts +14 -0
- package/lib/typescript/src/Types.d.ts.map +1 -1
- package/lib/typescript/src/context.d.ts +8 -0
- package/lib/typescript/src/context.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +5 -0
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/package.json +34 -28
- package/src/Amaryllis.ts +75 -24
- package/src/AmaryllisContext.tsx +19 -4
- package/src/AmaryllisHooks.tsx +106 -5
- package/src/AmaryllisRx.ts +13 -9
- package/src/ContextEngine.ts +133 -0
- package/src/ContextEngineContext.tsx +31 -0
- package/src/ContextPolicies.ts +54 -0
- package/src/ContextTypes.ts +122 -0
- package/src/ContextValidation.ts +279 -0
- package/src/Errors.ts +55 -0
- package/src/NativeAmaryllis.ts +18 -4
- package/src/TypeConverters.ts +87 -0
- package/src/Types.ts +9 -0
- package/src/context.ts +14 -0
- package/src/index.tsx +5 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ContextPolicies.d.ts","sourceRoot":"","sources":["../../../src/ContextPolicies.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAA6B,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/E,eAAO,MAAM,oBAAoB,OAAO,CAAC;AA4CzC,eAAO,MAAM,oBAAoB,EAAE,aAOlC,CAAC"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import type { LlmRequestParams } from './Types';
|
|
2
|
+
export type EvictionStrategy = 'lru' | 'recency' | 'size';
|
|
3
|
+
export interface MediaReference {
|
|
4
|
+
uri: string;
|
|
5
|
+
mimeType?: string;
|
|
6
|
+
sizeBytes?: number;
|
|
7
|
+
width?: number;
|
|
8
|
+
height?: number;
|
|
9
|
+
}
|
|
10
|
+
export interface MediaValidationPolicy {
|
|
11
|
+
requireAbsoluteUri?: boolean;
|
|
12
|
+
allowedUriSchemes?: string[];
|
|
13
|
+
maxMediaBytes?: number;
|
|
14
|
+
maxMediaWidth?: number;
|
|
15
|
+
maxMediaHeight?: number;
|
|
16
|
+
}
|
|
17
|
+
export interface ContextItem {
|
|
18
|
+
id: string;
|
|
19
|
+
text: string;
|
|
20
|
+
metadata?: Record<string, string>;
|
|
21
|
+
tags?: string[];
|
|
22
|
+
media?: MediaReference[];
|
|
23
|
+
createdAt: number;
|
|
24
|
+
updatedAt?: number;
|
|
25
|
+
ttlSeconds?: number;
|
|
26
|
+
}
|
|
27
|
+
export interface ContextQuery {
|
|
28
|
+
text: string;
|
|
29
|
+
limit?: number;
|
|
30
|
+
filters?: Record<string, string>;
|
|
31
|
+
tags?: string[];
|
|
32
|
+
recencyBias?: number;
|
|
33
|
+
useSemantic?: boolean;
|
|
34
|
+
}
|
|
35
|
+
export interface ContextPolicy {
|
|
36
|
+
maxBytes?: number;
|
|
37
|
+
maxItems?: number;
|
|
38
|
+
defaultTtlSeconds?: number;
|
|
39
|
+
evictionStrategy?: EvictionStrategy;
|
|
40
|
+
media?: MediaValidationPolicy;
|
|
41
|
+
}
|
|
42
|
+
export interface ContextStoreStats {
|
|
43
|
+
itemCount: number;
|
|
44
|
+
totalBytes?: number;
|
|
45
|
+
}
|
|
46
|
+
export interface ContextStore {
|
|
47
|
+
put(items: ContextItem[]): Promise<void>;
|
|
48
|
+
query(query: ContextQuery): Promise<ContextItem[]>;
|
|
49
|
+
delete(ids: string[]): Promise<void>;
|
|
50
|
+
compact(policy: ContextPolicy): Promise<void>;
|
|
51
|
+
stats(): Promise<ContextStoreStats>;
|
|
52
|
+
}
|
|
53
|
+
export interface EmbeddingProvider {
|
|
54
|
+
embed(texts: string[]): Promise<number[][]>;
|
|
55
|
+
dimension?: number;
|
|
56
|
+
}
|
|
57
|
+
export interface ContextEngine {
|
|
58
|
+
add(items: ContextItem[]): Promise<void>;
|
|
59
|
+
search(query: ContextQuery): Promise<ContextItem[]>;
|
|
60
|
+
setPolicy(policy: ContextPolicy): void;
|
|
61
|
+
compact(): Promise<void>;
|
|
62
|
+
formatRequest(params: ContextFormatParams): LlmRequestParams;
|
|
63
|
+
deriveQuery(prompt: string, request: LlmRequestParams): ContextQuery | undefined;
|
|
64
|
+
}
|
|
65
|
+
export interface ContextScorer {
|
|
66
|
+
score(item: ContextItem, query: ContextQuery): number;
|
|
67
|
+
}
|
|
68
|
+
export interface ContextEngineOptions {
|
|
69
|
+
store: ContextStore;
|
|
70
|
+
scorer?: ContextScorer;
|
|
71
|
+
policy?: ContextPolicy;
|
|
72
|
+
formatter?: ContextRequestFormatter;
|
|
73
|
+
defaultQueryFactory?: ContextDefaultQueryFactory;
|
|
74
|
+
}
|
|
75
|
+
export interface ContextFormatParams {
|
|
76
|
+
prompt: string;
|
|
77
|
+
items: ContextItem[];
|
|
78
|
+
query?: ContextQuery;
|
|
79
|
+
request: LlmRequestParams;
|
|
80
|
+
}
|
|
81
|
+
export type ContextRequestFormatter = (params: ContextFormatParams) => LlmRequestParams;
|
|
82
|
+
export type ContextDefaultQueryFactory = (prompt: string, request: LlmRequestParams) => ContextQuery | undefined;
|
|
83
|
+
export interface ToolDefinition {
|
|
84
|
+
name: string;
|
|
85
|
+
description?: string;
|
|
86
|
+
inputSchema?: Record<string, unknown>;
|
|
87
|
+
}
|
|
88
|
+
export interface ToolRegistry {
|
|
89
|
+
register(tool: ToolDefinition): void;
|
|
90
|
+
invoke(name: string, input: unknown): Promise<unknown>;
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=ContextTypes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ContextTypes.d.ts","sourceRoot":"","sources":["../../../src/ContextTypes.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ContextItem, ContextPolicy, ContextQuery, MediaReference, MediaValidationPolicy } from './ContextTypes';
|
|
2
|
+
export declare const validateContextPolicy: (policy: ContextPolicy | undefined) => void;
|
|
3
|
+
export declare const validateMediaPolicy: (policy: MediaValidationPolicy | undefined) => void;
|
|
4
|
+
export declare const validateMediaReference: (reference: MediaReference, policy?: MediaValidationPolicy) => void;
|
|
5
|
+
export declare const validateMediaReferences: (references: MediaReference[] | undefined, policy?: MediaValidationPolicy) => void;
|
|
6
|
+
export declare const validateContextItem: (item: ContextItem, policy?: ContextPolicy) => void;
|
|
7
|
+
export declare const validateContextItems: (items: ContextItem[], policy?: ContextPolicy) => void;
|
|
8
|
+
export declare const validateContextQuery: (query: ContextQuery) => void;
|
|
9
|
+
//# sourceMappingURL=ContextValidation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ContextValidation.d.ts","sourceRoot":"","sources":["../../../src/ContextValidation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,aAAa,EACb,YAAY,EACZ,cAAc,EACd,qBAAqB,EACtB,MAAM,gBAAgB,CAAC;AAqCxB,eAAO,MAAM,qBAAqB,GAChC,QAAQ,aAAa,GAAG,SAAS,KAChC,IAkCF,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAC9B,QAAQ,qBAAqB,GAAG,SAAS,KACxC,IA0BF,CAAC;AAEF,eAAO,MAAM,sBAAsB,GACjC,WAAW,cAAc,EACzB,SAAS,qBAAqB,KAC7B,IAuEF,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAClC,YAAY,cAAc,EAAE,GAAG,SAAS,EACxC,SAAS,qBAAqB,KAC7B,IAWF,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAC9B,MAAM,WAAW,EACjB,SAAS,aAAa,KACrB,IAoCF,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAC/B,OAAO,WAAW,EAAE,EACpB,SAAS,aAAa,KACrB,IAQF,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,OAAO,YAAY,KAAG,IAqB1D,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export declare class AmaryllisError extends Error {
|
|
2
|
+
readonly code: string;
|
|
3
|
+
constructor(message: string, code: string);
|
|
4
|
+
}
|
|
5
|
+
export declare class InitializationError extends AmaryllisError {
|
|
6
|
+
constructor(message: string);
|
|
7
|
+
}
|
|
8
|
+
export declare class GenerationError extends AmaryllisError {
|
|
9
|
+
constructor(message: string);
|
|
10
|
+
}
|
|
11
|
+
export declare class SessionError extends AmaryllisError {
|
|
12
|
+
constructor(message: string);
|
|
13
|
+
}
|
|
14
|
+
export declare class ValidationError extends AmaryllisError {
|
|
15
|
+
constructor(message: string);
|
|
16
|
+
}
|
|
17
|
+
export declare class ResourceError extends AmaryllisError {
|
|
18
|
+
constructor(message: string);
|
|
19
|
+
}
|
|
20
|
+
export declare function isAmaryllisError(error: unknown): error is AmaryllisError;
|
|
21
|
+
export declare function createError(message: string, code?: string): AmaryllisError;
|
|
22
|
+
//# sourceMappingURL=Errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Errors.d.ts","sourceRoot":"","sources":["../../../src/Errors.ts"],"names":[],"mappings":"AAAA,qBAAa,cAAe,SAAQ,KAAK;aAGrB,IAAI,EAAE,MAAM;gBAD5B,OAAO,EAAE,MAAM,EACC,IAAI,EAAE,MAAM;CAK/B;AAED,qBAAa,mBAAoB,SAAQ,cAAc;gBACzC,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,eAAgB,SAAQ,cAAc;gBACrC,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,YAAa,SAAQ,cAAc;gBAClC,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,eAAgB,SAAQ,cAAc;gBACrC,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,aAAc,SAAQ,cAAc;gBACnC,OAAO,EAAE,MAAM;CAI5B;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,cAAc,CAExE;AAED,wBAAgB,WAAW,CACzB,OAAO,EAAE,MAAM,EACf,IAAI,GAAE,MAAwB,GAC7B,cAAc,CAEhB"}
|
|
@@ -1,9 +1,29 @@
|
|
|
1
1
|
import type { TurboModule } from 'react-native';
|
|
2
2
|
export interface Spec extends TurboModule {
|
|
3
|
-
init(params:
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
init(params: {
|
|
4
|
+
modelPath: string;
|
|
5
|
+
maxTopK?: number;
|
|
6
|
+
maxNumImages?: number;
|
|
7
|
+
maxTokens?: number;
|
|
8
|
+
visionEncoderPath?: string;
|
|
9
|
+
visionAdapterPath?: string;
|
|
10
|
+
}): Promise<void>;
|
|
11
|
+
newSession(params?: {
|
|
12
|
+
topK?: number;
|
|
13
|
+
topP?: number;
|
|
14
|
+
temperature?: number;
|
|
15
|
+
randomSeed?: number;
|
|
16
|
+
loraPath?: string;
|
|
17
|
+
enableVisionModality?: boolean;
|
|
18
|
+
}): Promise<void>;
|
|
19
|
+
generate(params: {
|
|
20
|
+
prompt: string;
|
|
21
|
+
images?: string[];
|
|
22
|
+
}): Promise<string>;
|
|
23
|
+
generateAsync(params: {
|
|
24
|
+
prompt: string;
|
|
25
|
+
images?: string[];
|
|
26
|
+
}): Promise<void>;
|
|
7
27
|
close(): void;
|
|
8
28
|
cancelAsync(): void;
|
|
9
29
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NativeAmaryllis.d.ts","sourceRoot":"","sources":["../../../src/NativeAmaryllis.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD,MAAM,WAAW,IAAK,SAAQ,WAAW;IACvC,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"NativeAmaryllis.d.ts","sourceRoot":"","sources":["../../../src/NativeAmaryllis.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD,MAAM,WAAW,IAAK,SAAQ,WAAW;IACvC,IAAI,CAAC,MAAM,EAAE;QACX,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;KAC5B,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAElB,UAAU,CAAC,MAAM,CAAC,EAAE;QAClB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,oBAAoB,CAAC,EAAE,OAAO,CAAC;KAChC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAElB,QAAQ,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAEzE,aAAa,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5E,KAAK,IAAI,IAAI,CAAC;IAEd,WAAW,IAAI,IAAI,CAAC;CACrB;;AAED,wBAAmE"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { LlmEngineConfig, LlmSessionParams, LlmRequestParams } from './Types';
|
|
2
|
+
/**
|
|
3
|
+
* Convert rich LlmEngineConfig to codegen-compatible object structure
|
|
4
|
+
*/
|
|
5
|
+
export declare function toNativeEngineConfig(config: LlmEngineConfig): {
|
|
6
|
+
modelPath: string;
|
|
7
|
+
maxTopK: number | undefined;
|
|
8
|
+
maxNumImages: number | undefined;
|
|
9
|
+
maxTokens: number | undefined;
|
|
10
|
+
visionEncoderPath: string | undefined;
|
|
11
|
+
visionAdapterPath: string | undefined;
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Convert codegen-compatible config object to rich LlmEngineConfig
|
|
15
|
+
*/
|
|
16
|
+
export declare function fromNativeEngineConfig(native: any): LlmEngineConfig;
|
|
17
|
+
/**
|
|
18
|
+
* Convert rich LlmSessionParams to codegen-compatible object structure
|
|
19
|
+
*/
|
|
20
|
+
export declare function toNativeSessionParams(params?: LlmSessionParams): {
|
|
21
|
+
topK: number | undefined;
|
|
22
|
+
topP: number | undefined;
|
|
23
|
+
temperature: number | undefined;
|
|
24
|
+
randomSeed: number | undefined;
|
|
25
|
+
loraPath: string | undefined;
|
|
26
|
+
enableVisionModality: boolean | undefined;
|
|
27
|
+
} | undefined;
|
|
28
|
+
/**
|
|
29
|
+
* Convert codegen-compatible session object to rich LlmSessionParams
|
|
30
|
+
*/
|
|
31
|
+
export declare function fromNativeSessionParams(native?: any): LlmSessionParams | undefined;
|
|
32
|
+
/**
|
|
33
|
+
* Convert rich LlmRequestParams to codegen-compatible object structure
|
|
34
|
+
*/
|
|
35
|
+
export declare function toNativeRequestParams(params: LlmRequestParams): {
|
|
36
|
+
prompt: string;
|
|
37
|
+
images: string[] | undefined;
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* Convert codegen-compatible request object to rich LlmRequestParams
|
|
41
|
+
*/
|
|
42
|
+
export declare function fromNativeRequestParams(native: any): LlmRequestParams;
|
|
43
|
+
//# sourceMappingURL=TypeConverters.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TypeConverters.d.ts","sourceRoot":"","sources":["../../../src/TypeConverters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,SAAS,CAAC;AAEjB;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,eAAe;;;;;;;EAS3D;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,GAAG,GAAG,eAAe,CASnE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,CAAC,EAAE,gBAAgB;;;;;;;cAW9D;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,CAAC,EAAE,GAAG,GACX,gBAAgB,GAAG,SAAS,CAW9B;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,gBAAgB;;;EAK7D;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,GAAG,GAAG,gBAAgB,CAKrE"}
|
|
@@ -1,9 +1,23 @@
|
|
|
1
1
|
import type { Spec } from './NativeAmaryllis';
|
|
2
2
|
import type { Observable } from 'rxjs';
|
|
3
3
|
export type LlmNativeEngine = Spec;
|
|
4
|
+
export type LlmEvent = {
|
|
5
|
+
type: 'partial';
|
|
6
|
+
text: string;
|
|
7
|
+
} | {
|
|
8
|
+
type: 'final';
|
|
9
|
+
text: string;
|
|
10
|
+
} | {
|
|
11
|
+
type: 'error';
|
|
12
|
+
error: Error;
|
|
13
|
+
};
|
|
4
14
|
export type LlmCallbacks = {
|
|
15
|
+
onEvent?: (event: LlmEvent) => void;
|
|
16
|
+
/** @deprecated Use onEvent instead. */
|
|
5
17
|
onPartialResult?: (result: string) => void;
|
|
18
|
+
/** @deprecated Use onEvent instead. */
|
|
6
19
|
onFinalResult?: (result: string) => void;
|
|
20
|
+
/** @deprecated Use onEvent instead. */
|
|
7
21
|
onError?: (err: Error) => void;
|
|
8
22
|
};
|
|
9
23
|
export type LlmRequestParams = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Types.d.ts","sourceRoot":"","sources":["../../../src/Types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Types.d.ts","sourceRoot":"","sources":["../../../src/Types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { ContextEngine, createContextEngine, defaultContextFormatter, } from './ContextEngine';
|
|
2
|
+
export * from './ContextEngineContext';
|
|
3
|
+
export * from './ContextPolicies';
|
|
4
|
+
export * from './ContextValidation';
|
|
5
|
+
export { useContextInference, useContextInferenceAsync, } from './AmaryllisHooks';
|
|
6
|
+
export type { ContextInferenceProps } from './AmaryllisHooks';
|
|
7
|
+
export type * from './ContextTypes';
|
|
8
|
+
//# sourceMappingURL=context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/context.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,iBAAiB,CAAC;AACzB,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,OAAO,EACL,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAC9D,mBAAmB,gBAAgB,CAAC"}
|
|
@@ -2,5 +2,10 @@ export { default as Amaryllis, LlmPipe } from './Amaryllis';
|
|
|
2
2
|
export * from './AmaryllisHooks';
|
|
3
3
|
export * from './AmaryllisContext';
|
|
4
4
|
export * from './AmaryllisRx';
|
|
5
|
+
export { createContextEngine } from './ContextEngine';
|
|
6
|
+
export * from './ContextEngineContext';
|
|
7
|
+
export * from './ContextPolicies';
|
|
8
|
+
export * from './ContextValidation';
|
|
9
|
+
export type * from './ContextTypes';
|
|
5
10
|
export type * from './Types';
|
|
6
11
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC5D,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,mBAAmB,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC5D,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,mBAAmB,gBAAgB,CAAC;AACpC,mBAAmB,SAAS,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@micrantha/react-native-amaryllis",
|
|
3
|
-
"version": "0.1.
|
|
4
|
-
"description": "A AI module for native mobile
|
|
3
|
+
"version": "0.1.5",
|
|
4
|
+
"description": "A generative AI module for native mobile",
|
|
5
5
|
"main": "./lib/module/index.js",
|
|
6
6
|
"types": "./lib/typescript/src/index.d.ts",
|
|
7
7
|
"exports": {
|
|
@@ -10,6 +10,11 @@
|
|
|
10
10
|
"types": "./lib/typescript/src/index.d.ts",
|
|
11
11
|
"default": "./lib/module/index.js"
|
|
12
12
|
},
|
|
13
|
+
"./context": {
|
|
14
|
+
"source": "./src/context.ts",
|
|
15
|
+
"types": "./lib/typescript/src/context.d.ts",
|
|
16
|
+
"default": "./lib/module/context.js"
|
|
17
|
+
},
|
|
13
18
|
"./package.json": "./package.json"
|
|
14
19
|
},
|
|
15
20
|
"files": [
|
|
@@ -48,44 +53,45 @@
|
|
|
48
53
|
],
|
|
49
54
|
"repository": {
|
|
50
55
|
"type": "git",
|
|
51
|
-
"url": "git+https://github.com/hackelia-micrantha/
|
|
56
|
+
"url": "git+https://github.com/hackelia-micrantha/amaryllis.git"
|
|
52
57
|
},
|
|
53
58
|
"author": "Ryan Jennings <ryan.jennings@micrantha.com> (https://github.com/hackelia-micrantha)",
|
|
54
59
|
"license": "MIT",
|
|
55
60
|
"bugs": {
|
|
56
|
-
"url": "https://github.com/hackelia-micrantha/
|
|
61
|
+
"url": "https://github.com/hackelia-micrantha/amaryllis/issues"
|
|
57
62
|
},
|
|
58
|
-
"homepage": "https://github.com/hackelia-micrantha/
|
|
63
|
+
"homepage": "https://github.com/hackelia-micrantha/amaryllis#readme",
|
|
59
64
|
"publishConfig": {
|
|
60
65
|
"registry": "https://registry.npmjs.org/"
|
|
61
66
|
},
|
|
62
67
|
"devDependencies": {
|
|
63
|
-
"@commitlint/config-conventional": "^
|
|
64
|
-
"@eslint/compat": "^
|
|
65
|
-
"@eslint/eslintrc": "^3.3.
|
|
66
|
-
"@eslint/js": "^9.
|
|
67
|
-
"@evilmartians/lefthook": "^
|
|
68
|
-
"@react-native-community/cli": "20.0
|
|
69
|
-
"@react-native/babel-preset": "0.
|
|
70
|
-
"@react-native/eslint-config": "^0.
|
|
71
|
-
"@release-it/conventional-changelog": "^10.0.
|
|
68
|
+
"@commitlint/config-conventional": "^20.3.1",
|
|
69
|
+
"@eslint/compat": "^2.0.1",
|
|
70
|
+
"@eslint/eslintrc": "^3.3.3",
|
|
71
|
+
"@eslint/js": "^9.39.2",
|
|
72
|
+
"@evilmartians/lefthook": "^2.0.15",
|
|
73
|
+
"@react-native-community/cli": "20.1.0",
|
|
74
|
+
"@react-native/babel-preset": "0.83.1",
|
|
75
|
+
"@react-native/eslint-config": "^0.83.1",
|
|
76
|
+
"@release-it/conventional-changelog": "^10.0.4",
|
|
72
77
|
"@testing-library/react-native": "^13.3.3",
|
|
73
78
|
"@types/jest": "^30.0.0",
|
|
74
|
-
"@types/react": "^19.
|
|
75
|
-
"commitlint": "^
|
|
76
|
-
"del-cli": "^
|
|
77
|
-
"eslint": "^9.
|
|
79
|
+
"@types/react": "^19.2.8",
|
|
80
|
+
"commitlint": "^20.3.1",
|
|
81
|
+
"del-cli": "^7.0.0",
|
|
82
|
+
"eslint": "^9.39.2",
|
|
78
83
|
"eslint-config-prettier": "^10.1.8",
|
|
79
|
-
"eslint-plugin-
|
|
80
|
-
"
|
|
81
|
-
"
|
|
82
|
-
"
|
|
83
|
-
"react
|
|
84
|
-
"react-native
|
|
85
|
-
"react-
|
|
86
|
-
"
|
|
87
|
-
"
|
|
88
|
-
"
|
|
84
|
+
"eslint-plugin-ft-flow": "^3.0.11",
|
|
85
|
+
"eslint-plugin-prettier": "^5.5.5",
|
|
86
|
+
"jest": "^30.2.0",
|
|
87
|
+
"prettier": "^3.8.0",
|
|
88
|
+
"react": "19.2.3",
|
|
89
|
+
"react-native": "0.83.1",
|
|
90
|
+
"react-native-builder-bob": "^0.40.17",
|
|
91
|
+
"react-test-renderer": "19.2.3",
|
|
92
|
+
"release-it": "^19.2.3",
|
|
93
|
+
"turbo": "^2.7.5",
|
|
94
|
+
"typescript": "^5.9.3"
|
|
89
95
|
},
|
|
90
96
|
"peerDependencies": {
|
|
91
97
|
"react": "*",
|
package/src/Amaryllis.ts
CHANGED
|
@@ -9,6 +9,11 @@ import type {
|
|
|
9
9
|
LlmPipeParams,
|
|
10
10
|
LlmNativeEngine,
|
|
11
11
|
} from './Types';
|
|
12
|
+
import {
|
|
13
|
+
toNativeEngineConfig,
|
|
14
|
+
toNativeSessionParams,
|
|
15
|
+
toNativeRequestParams,
|
|
16
|
+
} from './TypeConverters';
|
|
12
17
|
|
|
13
18
|
const EVENT_ON_PARTIAL_RESULT = 'onPartialResult';
|
|
14
19
|
const EVENT_ON_FINAL_RESULT = 'onFinalResult';
|
|
@@ -25,15 +30,18 @@ export class LlmPipe implements LlmEngine {
|
|
|
25
30
|
}
|
|
26
31
|
|
|
27
32
|
async init(params: LlmEngineConfig): Promise<void> {
|
|
28
|
-
|
|
33
|
+
const nativeConfig = toNativeEngineConfig(params);
|
|
34
|
+
await this.llmNative.init(nativeConfig);
|
|
29
35
|
}
|
|
30
36
|
|
|
31
37
|
newSession(params: LlmSessionParams): Promise<void> {
|
|
32
|
-
|
|
38
|
+
const nativeParams = toNativeSessionParams(params);
|
|
39
|
+
return this.llmNative.newSession(nativeParams);
|
|
33
40
|
}
|
|
34
41
|
|
|
35
42
|
async generate(params: LlmRequestParams): Promise<string> {
|
|
36
|
-
|
|
43
|
+
const nativeParams = toNativeRequestParams(params);
|
|
44
|
+
return await this.llmNative.generate(nativeParams);
|
|
37
45
|
}
|
|
38
46
|
|
|
39
47
|
async generateAsync(
|
|
@@ -44,46 +52,89 @@ export class LlmPipe implements LlmEngine {
|
|
|
44
52
|
this.setupAsyncCallbacks(callbacks);
|
|
45
53
|
}
|
|
46
54
|
|
|
47
|
-
|
|
55
|
+
const nativeParams = toNativeRequestParams(params);
|
|
56
|
+
return await this.llmNative.generateAsync(nativeParams);
|
|
48
57
|
}
|
|
49
58
|
|
|
50
59
|
close(): void {
|
|
51
|
-
this.llmNative.close();
|
|
52
60
|
this.cancelAsync();
|
|
61
|
+
this.llmNative.close();
|
|
53
62
|
}
|
|
54
63
|
|
|
55
64
|
cancelAsync(): void {
|
|
56
65
|
this.llmNative.cancelAsync();
|
|
57
|
-
this.subscriptions
|
|
66
|
+
const subsToRemove = [...this.subscriptions];
|
|
67
|
+
this.subscriptions = [];
|
|
68
|
+
subsToRemove.forEach((sub) => {
|
|
69
|
+
try {
|
|
70
|
+
sub.remove();
|
|
71
|
+
} catch (error) {
|
|
72
|
+
console.warn('Failed to remove subscription:', error);
|
|
73
|
+
}
|
|
74
|
+
});
|
|
58
75
|
}
|
|
59
76
|
|
|
60
77
|
setupAsyncCallbacks(callbacks: LlmCallbacks): void {
|
|
61
|
-
if (callbacks.onPartialResult) {
|
|
62
|
-
this.
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
78
|
+
if (callbacks.onPartialResult || callbacks.onEvent) {
|
|
79
|
+
const subscription = this.llmEmitter.addListener(
|
|
80
|
+
EVENT_ON_PARTIAL_RESULT,
|
|
81
|
+
(result: string) => {
|
|
82
|
+
try {
|
|
83
|
+
callbacks.onEvent?.({ type: 'partial', text: result });
|
|
84
|
+
} catch (error) {
|
|
85
|
+
console.error('Error in onEvent callback:', error);
|
|
86
|
+
}
|
|
87
|
+
try {
|
|
66
88
|
callbacks.onPartialResult?.(result);
|
|
89
|
+
} catch (error) {
|
|
90
|
+
console.error('Error in onPartialResult callback:', error);
|
|
67
91
|
}
|
|
68
|
-
|
|
92
|
+
}
|
|
69
93
|
);
|
|
94
|
+
this.subscriptions.push(subscription);
|
|
70
95
|
}
|
|
71
96
|
|
|
72
|
-
if (callbacks.onFinalResult) {
|
|
73
|
-
this.
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
97
|
+
if (callbacks.onFinalResult || callbacks.onEvent) {
|
|
98
|
+
const subscription = this.llmEmitter.addListener(
|
|
99
|
+
EVENT_ON_FINAL_RESULT,
|
|
100
|
+
(result: string) => {
|
|
101
|
+
try {
|
|
102
|
+
callbacks.onEvent?.({ type: 'final', text: result });
|
|
103
|
+
} catch (error) {
|
|
104
|
+
console.error('Error in onEvent callback:', error);
|
|
105
|
+
}
|
|
106
|
+
try {
|
|
107
|
+
callbacks.onFinalResult?.(result);
|
|
108
|
+
} catch (error) {
|
|
109
|
+
console.error('Error in onFinalResult callback:', error);
|
|
110
|
+
} finally {
|
|
111
|
+
this.cancelAsync();
|
|
112
|
+
}
|
|
113
|
+
}
|
|
78
114
|
);
|
|
115
|
+
this.subscriptions.push(subscription);
|
|
79
116
|
}
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
117
|
+
|
|
118
|
+
if (callbacks.onError || callbacks.onEvent) {
|
|
119
|
+
const subscription = this.llmEmitter.addListener(
|
|
120
|
+
EVENT_ON_ERROR,
|
|
121
|
+
(error: string) => {
|
|
122
|
+
const errorObj = new Error(error);
|
|
123
|
+
try {
|
|
124
|
+
callbacks.onEvent?.({ type: 'error', error: errorObj });
|
|
125
|
+
} catch (callbackError) {
|
|
126
|
+
console.error('Error in onEvent callback:', callbackError);
|
|
127
|
+
}
|
|
128
|
+
try {
|
|
129
|
+
callbacks.onError?.(errorObj);
|
|
130
|
+
} catch (callbackError) {
|
|
131
|
+
console.error('Error in onError callback:', callbackError);
|
|
132
|
+
} finally {
|
|
133
|
+
this.cancelAsync();
|
|
134
|
+
}
|
|
135
|
+
}
|
|
86
136
|
);
|
|
137
|
+
this.subscriptions.push(subscription);
|
|
87
138
|
}
|
|
88
139
|
}
|
|
89
140
|
}
|
package/src/AmaryllisContext.tsx
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { createContext, useContext, useEffect, useMemo, useState } from 'react';
|
|
2
2
|
import type { LLMContextValue, LLMProviderProps } from './Types';
|
|
3
3
|
import { newLlmPipe } from './NativePipe';
|
|
4
|
+
import { InitializationError, isAmaryllisError } from './Errors';
|
|
4
5
|
|
|
5
6
|
const LLMContext = createContext<LLMContextValue>({
|
|
6
7
|
config: null,
|
|
@@ -26,23 +27,37 @@ export const LLMProvider = ({
|
|
|
26
27
|
try {
|
|
27
28
|
return llmPipe ?? newLlmPipe();
|
|
28
29
|
} catch (e: any) {
|
|
29
|
-
|
|
30
|
+
const initError = isAmaryllisError(e)
|
|
31
|
+
? e
|
|
32
|
+
: new InitializationError(e?.message || 'Failed to create LLM pipe');
|
|
33
|
+
setError(initError);
|
|
30
34
|
return null;
|
|
31
35
|
}
|
|
32
36
|
}, [llmPipe]);
|
|
33
37
|
|
|
34
38
|
useEffect(() => {
|
|
35
39
|
const start = async () => {
|
|
40
|
+
if (!controller) return;
|
|
41
|
+
|
|
36
42
|
try {
|
|
37
|
-
await controller
|
|
43
|
+
await controller.init(config);
|
|
38
44
|
setReady(true);
|
|
39
45
|
} catch (e: any) {
|
|
40
46
|
console.error('unable to start amaryllis', e);
|
|
41
|
-
|
|
47
|
+
const initError = isAmaryllisError(e)
|
|
48
|
+
? e
|
|
49
|
+
: new InitializationError(e?.message || 'Failed to initialize LLM');
|
|
50
|
+
setError(initError);
|
|
42
51
|
}
|
|
43
52
|
};
|
|
44
53
|
start();
|
|
45
|
-
return () =>
|
|
54
|
+
return () => {
|
|
55
|
+
try {
|
|
56
|
+
controller?.close();
|
|
57
|
+
} catch (e: any) {
|
|
58
|
+
console.warn('Error closing LLM controller:', e);
|
|
59
|
+
}
|
|
60
|
+
};
|
|
46
61
|
}, [config, controller]);
|
|
47
62
|
|
|
48
63
|
return (
|