@micrantha/react-native-amaryllis 0.1.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/Amaryllis.podspec +22 -0
- package/LICENSE +21 -0
- package/README.md +213 -0
- package/android/build.gradle +81 -0
- package/android/gradle.properties +5 -0
- package/android/src/main/AndroidManifest.xml +2 -0
- package/android/src/main/java/com/micrantha/amaryllis/Amaryllis.kt +198 -0
- package/android/src/main/java/com/micrantha/amaryllis/AmaryllisModule.kt +165 -0
- package/android/src/main/java/com/micrantha/amaryllis/AmaryllisPackage.kt +32 -0
- package/ios/Amaryllis.h +49 -0
- package/ios/Amaryllis.m +201 -0
- package/ios/AmaryllisModule.h +6 -0
- package/ios/AmaryllisModule.mm +166 -0
- package/lib/module/Amaryllis.js +56 -0
- package/lib/module/Amaryllis.js.map +1 -0
- package/lib/module/AmaryllisContext.js +56 -0
- package/lib/module/AmaryllisContext.js.map +1 -0
- package/lib/module/AmaryllisHooks.js +78 -0
- package/lib/module/AmaryllisHooks.js.map +1 -0
- package/lib/module/AmaryllisRx.js +31 -0
- package/lib/module/AmaryllisRx.js.map +1 -0
- package/lib/module/NativeAmaryllis.js +5 -0
- package/lib/module/NativeAmaryllis.js.map +1 -0
- package/lib/module/NativePipe.js +9 -0
- package/lib/module/NativePipe.js.map +1 -0
- package/lib/module/Types.js +4 -0
- package/lib/module/Types.js.map +1 -0
- package/lib/module/index.js +7 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/package.json +1 -0
- package/lib/typescript/package.json +1 -0
- package/lib/typescript/src/Amaryllis.d.ts +16 -0
- package/lib/typescript/src/Amaryllis.d.ts.map +1 -0
- package/lib/typescript/src/AmaryllisContext.d.ts +8 -0
- package/lib/typescript/src/AmaryllisContext.d.ts.map +1 -0
- package/lib/typescript/src/AmaryllisHooks.d.ts +4 -0
- package/lib/typescript/src/AmaryllisHooks.d.ts.map +1 -0
- package/lib/typescript/src/AmaryllisRx.d.ts +3 -0
- package/lib/typescript/src/AmaryllisRx.d.ts.map +1 -0
- package/lib/typescript/src/NativeAmaryllis.d.ts +12 -0
- package/lib/typescript/src/NativeAmaryllis.d.ts.map +1 -0
- package/lib/typescript/src/NativePipe.d.ts +3 -0
- package/lib/typescript/src/NativePipe.d.ts.map +1 -0
- package/lib/typescript/src/Types.d.ts +87 -0
- package/lib/typescript/src/Types.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +6 -0
- package/lib/typescript/src/index.d.ts.map +1 -0
- package/package.json +185 -0
- package/src/Amaryllis.ts +91 -0
- package/src/AmaryllisContext.tsx +53 -0
- package/src/AmaryllisHooks.tsx +78 -0
- package/src/AmaryllisRx.ts +24 -0
- package/src/NativeAmaryllis.ts +18 -0
- package/src/NativePipe.ts +8 -0
- package/src/Types.ts +115 -0
- package/src/index.tsx +5 -0
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { createContext, useContext, useEffect, useMemo, useState } from 'react';
|
|
4
|
+
import { newLlmPipe } from "./NativePipe.js";
|
|
5
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
6
|
+
const LLMContext = /*#__PURE__*/createContext({
|
|
7
|
+
config: null,
|
|
8
|
+
controller: null,
|
|
9
|
+
error: undefined,
|
|
10
|
+
isReady: false
|
|
11
|
+
});
|
|
12
|
+
export const useLLMContext = () => useContext(LLMContext);
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Provides LLM configuration state to child components.
|
|
16
|
+
* Configures LLM once on mount.
|
|
17
|
+
*/
|
|
18
|
+
export const LLMProvider = ({
|
|
19
|
+
config,
|
|
20
|
+
llmPipe,
|
|
21
|
+
children
|
|
22
|
+
}) => {
|
|
23
|
+
const [error, setError] = useState();
|
|
24
|
+
const [ready, setReady] = useState(false);
|
|
25
|
+
const controller = useMemo(() => {
|
|
26
|
+
try {
|
|
27
|
+
return llmPipe ?? newLlmPipe();
|
|
28
|
+
} catch (e) {
|
|
29
|
+
setError(e);
|
|
30
|
+
return null;
|
|
31
|
+
}
|
|
32
|
+
}, [llmPipe]);
|
|
33
|
+
useEffect(() => {
|
|
34
|
+
const start = async () => {
|
|
35
|
+
try {
|
|
36
|
+
await controller?.init(config);
|
|
37
|
+
setReady(true);
|
|
38
|
+
} catch (e) {
|
|
39
|
+
console.error('unable to start amaryllis', e);
|
|
40
|
+
setError(e);
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
start();
|
|
44
|
+
return () => controller?.close();
|
|
45
|
+
}, [config, controller]);
|
|
46
|
+
return /*#__PURE__*/_jsx(LLMContext.Provider, {
|
|
47
|
+
value: {
|
|
48
|
+
config,
|
|
49
|
+
controller,
|
|
50
|
+
isReady: ready,
|
|
51
|
+
error
|
|
52
|
+
},
|
|
53
|
+
children: children
|
|
54
|
+
});
|
|
55
|
+
};
|
|
56
|
+
//# sourceMappingURL=AmaryllisContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createContext","useContext","useEffect","useMemo","useState","newLlmPipe","jsx","_jsx","LLMContext","config","controller","error","undefined","isReady","useLLMContext","LLMProvider","llmPipe","children","setError","ready","setReady","e","start","init","console","close","Provider","value"],"sourceRoot":"../../src","sources":["AmaryllisContext.tsx"],"mappings":";;AAAA,SAASA,aAAa,EAAEC,UAAU,EAAEC,SAAS,EAAEC,OAAO,EAAEC,QAAQ,QAAQ,OAAO;AAE/E,SAASC,UAAU,QAAQ,iBAAc;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAE1C,MAAMC,UAAU,gBAAGR,aAAa,CAAkB;EAChDS,MAAM,EAAE,IAAI;EACZC,UAAU,EAAE,IAAI;EAChBC,KAAK,EAAEC,SAAS;EAChBC,OAAO,EAAE;AACX,CAAC,CAAC;AAEF,OAAO,MAAMC,aAAa,GAAGA,CAAA,KAAMb,UAAU,CAACO,UAAU,CAAC;;AAEzD;AACA;AACA;AACA;AACA,OAAO,MAAMO,WAAW,GAAGA,CAAC;EAC1BN,MAAM;EACNO,OAAO;EACPC;AACgB,CAAC,KAAK;EACtB,MAAM,CAACN,KAAK,EAAEO,QAAQ,CAAC,GAAGd,QAAQ,CAAoB,CAAC;EACvD,MAAM,CAACe,KAAK,EAAEC,QAAQ,CAAC,GAAGhB,QAAQ,CAAC,KAAK,CAAC;EACzC,MAAMM,UAAU,GAAGP,OAAO,CAAC,MAAM;IAC/B,IAAI;MACF,OAAOa,OAAO,IAAIX,UAAU,CAAC,CAAC;IAChC,CAAC,CAAC,OAAOgB,CAAM,EAAE;MACfH,QAAQ,CAACG,CAAC,CAAC;MACX,OAAO,IAAI;IACb;EACF,CAAC,EAAE,CAACL,OAAO,CAAC,CAAC;EAEbd,SAAS,CAAC,MAAM;IACd,MAAMoB,KAAK,GAAG,MAAAA,CAAA,KAAY;MACxB,IAAI;QACF,MAAMZ,UAAU,EAAEa,IAAI,CAACd,MAAM,CAAC;QAC9BW,QAAQ,CAAC,IAAI,CAAC;MAChB,CAAC,CAAC,OAAOC,CAAM,EAAE;QACfG,OAAO,CAACb,KAAK,CAAC,2BAA2B,EAAEU,CAAC,CAAC;QAC7CH,QAAQ,CAACG,CAAC,CAAC;MACb;IACF,CAAC;IACDC,KAAK,CAAC,CAAC;IACP,OAAO,MAAMZ,UAAU,EAAEe,KAAK,CAAC,CAAC;EAClC,CAAC,EAAE,CAAChB,MAAM,EAAEC,UAAU,CAAC,CAAC;EAExB,oBACEH,IAAA,CAACC,UAAU,CAACkB,QAAQ;IAACC,KAAK,EAAE;MAAElB,MAAM;MAAEC,UAAU;MAAEG,OAAO,EAAEM,KAAK;MAAER;IAAM,CAAE;IAAAM,QAAA,EACvEA;EAAQ,CACU,CAAC;AAE1B,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { useCallback, useMemo, useEffect } from 'react';
|
|
4
|
+
import { useLLMContext } from "./AmaryllisContext.js";
|
|
5
|
+
import { createLLMObservable } from "./AmaryllisRx.js";
|
|
6
|
+
export const useInferenceAsync = (props = {}) => {
|
|
7
|
+
const {
|
|
8
|
+
controller
|
|
9
|
+
} = useLLMContext();
|
|
10
|
+
const {
|
|
11
|
+
onResult,
|
|
12
|
+
onGenerate,
|
|
13
|
+
onError,
|
|
14
|
+
onComplete
|
|
15
|
+
} = props;
|
|
16
|
+
const llm$ = useMemo(() => createLLMObservable(), []);
|
|
17
|
+
const generate = useCallback(async params => {
|
|
18
|
+
try {
|
|
19
|
+
onGenerate?.();
|
|
20
|
+
await controller?.generateAsync(params, llm$.callbacks);
|
|
21
|
+
} catch (err) {
|
|
22
|
+
onError?.(err instanceof Error ? err : new Error('An unknown error occurred'));
|
|
23
|
+
}
|
|
24
|
+
return () => {
|
|
25
|
+
controller?.cancelAsync();
|
|
26
|
+
onComplete?.();
|
|
27
|
+
};
|
|
28
|
+
}, [controller, llm$.callbacks, onComplete, onGenerate, onError]);
|
|
29
|
+
useEffect(() => {
|
|
30
|
+
const sub = llm$.observable.subscribe({
|
|
31
|
+
next: ({
|
|
32
|
+
text,
|
|
33
|
+
isFinal
|
|
34
|
+
}) => {
|
|
35
|
+
onResult?.(text, isFinal);
|
|
36
|
+
},
|
|
37
|
+
complete: () => onComplete?.(),
|
|
38
|
+
error: err => onError?.(err)
|
|
39
|
+
});
|
|
40
|
+
return () => {
|
|
41
|
+
sub.unsubscribe();
|
|
42
|
+
controller?.cancelAsync();
|
|
43
|
+
};
|
|
44
|
+
}, [llm$.observable, controller, onResult, onComplete, onError]);
|
|
45
|
+
return generate;
|
|
46
|
+
};
|
|
47
|
+
export const useInference = (props = {}) => {
|
|
48
|
+
const {
|
|
49
|
+
controller,
|
|
50
|
+
error: contextError
|
|
51
|
+
} = useLLMContext();
|
|
52
|
+
const {
|
|
53
|
+
onResult,
|
|
54
|
+
onError,
|
|
55
|
+
onGenerate,
|
|
56
|
+
onComplete
|
|
57
|
+
} = props;
|
|
58
|
+
useEffect(() => {
|
|
59
|
+
if (contextError) {
|
|
60
|
+
onError?.(contextError);
|
|
61
|
+
}
|
|
62
|
+
}, [contextError, onError]);
|
|
63
|
+
const generate = useCallback(async params => {
|
|
64
|
+
try {
|
|
65
|
+
onGenerate?.();
|
|
66
|
+
const response = await controller?.generate(params);
|
|
67
|
+
onResult?.(response ?? '', true);
|
|
68
|
+
} catch (err) {
|
|
69
|
+
onError?.(err instanceof Error ? err : new Error('An unknown error occurred'));
|
|
70
|
+
}
|
|
71
|
+
return () => {
|
|
72
|
+
controller?.cancelAsync();
|
|
73
|
+
onComplete?.();
|
|
74
|
+
};
|
|
75
|
+
}, [onGenerate, controller, onResult, onError, onComplete]);
|
|
76
|
+
return generate;
|
|
77
|
+
};
|
|
78
|
+
//# sourceMappingURL=AmaryllisHooks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useCallback","useMemo","useEffect","useLLMContext","createLLMObservable","useInferenceAsync","props","controller","onResult","onGenerate","onError","onComplete","llm$","generate","params","generateAsync","callbacks","err","Error","cancelAsync","sub","observable","subscribe","next","text","isFinal","complete","error","unsubscribe","useInference","contextError","response"],"sourceRoot":"../../src","sources":["AmaryllisHooks.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { Observable } from 'rxjs';
|
|
4
|
+
export function createLLMObservable() {
|
|
5
|
+
let subscriber;
|
|
6
|
+
const observable = new Observable(sub => {
|
|
7
|
+
subscriber = sub;
|
|
8
|
+
});
|
|
9
|
+
const callbacks = {
|
|
10
|
+
onPartialResult: partial => {
|
|
11
|
+
subscriber?.next({
|
|
12
|
+
text: partial,
|
|
13
|
+
isFinal: false
|
|
14
|
+
});
|
|
15
|
+
},
|
|
16
|
+
onFinalResult: final => {
|
|
17
|
+
subscriber?.next({
|
|
18
|
+
text: final,
|
|
19
|
+
isFinal: true
|
|
20
|
+
});
|
|
21
|
+
},
|
|
22
|
+
onError: error => {
|
|
23
|
+
subscriber?.error(error);
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
return {
|
|
27
|
+
observable,
|
|
28
|
+
callbacks
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=AmaryllisRx.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Observable","createLLMObservable","subscriber","observable","sub","callbacks","onPartialResult","partial","next","text","isFinal","onFinalResult","final","onError","error"],"sourceRoot":"../../src","sources":["AmaryllisRx.ts"],"mappings":";;AACA,SAASA,UAAU,QAAoB,MAAM;AAE7C,OAAO,SAASC,mBAAmBA,CAAA,EAAwB;EACzD,IAAIC,UAAiC;EAErC,MAAMC,UAAU,GAAG,IAAIH,UAAU,CAAaI,GAAG,IAAK;IACpDF,UAAU,GAAGE,GAAG;EAClB,CAAC,CAAC;EAEF,MAAMC,SAAuB,GAAG;IAC9BC,eAAe,EAAGC,OAAO,IAAK;MAC5BL,UAAU,EAAEM,IAAI,CAAC;QAAEC,IAAI,EAAEF,OAAO;QAAEG,OAAO,EAAE;MAAM,CAAC,CAAC;IACrD,CAAC;IACDC,aAAa,EAAGC,KAAK,IAAK;MACxBV,UAAU,EAAEM,IAAI,CAAC;QAAEC,IAAI,EAAEG,KAAK;QAAEF,OAAO,EAAE;MAAK,CAAC,CAAC;IAClD,CAAC;IACDG,OAAO,EAAGC,KAAK,IAAK;MAClBZ,UAAU,EAAEY,KAAK,CAACA,KAAK,CAAC;IAC1B;EACF,CAAC;EAED,OAAO;IAAEX,UAAU;IAAEE;EAAU,CAAC;AAClC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../src","sources":["NativeAmaryllis.ts"],"mappings":";;AACA,SAASA,mBAAmB,QAAQ,cAAc;AAgBlD,eAAeA,mBAAmB,CAACC,YAAY,CAAO,WAAW,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { NativeModules, NativeEventEmitter } from 'react-native';
|
|
4
|
+
import { LlmPipe } from "./Amaryllis.js";
|
|
5
|
+
export const newLlmPipe = () => new LlmPipe({
|
|
6
|
+
nativeModule: NativeModules.Amaryllis,
|
|
7
|
+
eventEmitter: new NativeEventEmitter()
|
|
8
|
+
});
|
|
9
|
+
//# sourceMappingURL=NativePipe.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["NativeModules","NativeEventEmitter","LlmPipe","newLlmPipe","nativeModule","Amaryllis","eventEmitter"],"sourceRoot":"../../src","sources":["NativePipe.ts"],"mappings":";;AAAA,SAASA,aAAa,EAAEC,kBAAkB,QAAQ,cAAc;AAChE,SAASC,OAAO,QAAQ,gBAAa;AAErC,OAAO,MAAMC,UAAU,GAAGA,CAAA,KACxB,IAAID,OAAO,CAAC;EACVE,YAAY,EAAEJ,aAAa,CAACK,SAAS;EACrCC,YAAY,EAAE,IAAIL,kBAAkB,CAAC;AACvC,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../src","sources":["Types.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["default","Amaryllis","LlmPipe"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,SAASA,OAAO,IAAIC,SAAS,EAAEC,OAAO,QAAQ,gBAAa;AAC3D,cAAc,qBAAkB;AAChC,cAAc,uBAAoB;AAClC,cAAc,kBAAe","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"type":"module"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"type":"module"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { LlmEngine, LlmEngineConfig, LlmSessionParams, LlmCallbacks, LlmRequestParams, LlmEventEmitter, LlmEventSubscription, LlmPipeParams, LlmNativeEngine } from './Types';
|
|
2
|
+
export declare class LlmPipe implements LlmEngine {
|
|
3
|
+
subscriptions: LlmEventSubscription[];
|
|
4
|
+
llmEmitter: LlmEventEmitter;
|
|
5
|
+
llmNative: LlmNativeEngine;
|
|
6
|
+
constructor(params: LlmPipeParams);
|
|
7
|
+
init(params: LlmEngineConfig): Promise<void>;
|
|
8
|
+
newSession(params: LlmSessionParams): Promise<void>;
|
|
9
|
+
generate(params: LlmRequestParams): Promise<string>;
|
|
10
|
+
generateAsync(params: LlmRequestParams, callbacks?: LlmCallbacks): Promise<void>;
|
|
11
|
+
close(): void;
|
|
12
|
+
cancelAsync(): void;
|
|
13
|
+
setupAsyncCallbacks(callbacks: LlmCallbacks): void;
|
|
14
|
+
}
|
|
15
|
+
export default LlmPipe;
|
|
16
|
+
//# sourceMappingURL=Amaryllis.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Amaryllis.d.ts","sourceRoot":"","sources":["../../../src/Amaryllis.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EACT,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACpB,aAAa,EACb,eAAe,EAChB,MAAM,SAAS,CAAC;AAMjB,qBAAa,OAAQ,YAAW,SAAS;IACvC,aAAa,EAAE,oBAAoB,EAAE,CAAM;IAC3C,UAAU,EAAE,eAAe,CAAC;IAC5B,SAAS,EAAE,eAAe,CAAC;gBAEf,MAAM,EAAE,aAAa;IAK3B,IAAI,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlD,UAAU,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7C,QAAQ,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC;IAInD,aAAa,CACjB,MAAM,EAAE,gBAAgB,EACxB,SAAS,CAAC,EAAE,YAAY,GACvB,OAAO,CAAC,IAAI,CAAC;IAQhB,KAAK,IAAI,IAAI;IAKb,WAAW,IAAI,IAAI;IAKnB,mBAAmB,CAAC,SAAS,EAAE,YAAY,GAAG,IAAI;CA6BnD;AAED,eAAe,OAAO,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { LLMContextValue, LLMProviderProps } from './Types';
|
|
2
|
+
export declare const useLLMContext: () => LLMContextValue;
|
|
3
|
+
/**
|
|
4
|
+
* Provides LLM configuration state to child components.
|
|
5
|
+
* Configures LLM once on mount.
|
|
6
|
+
*/
|
|
7
|
+
export declare const LLMProvider: ({ config, llmPipe, children, }: LLMProviderProps) => import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
//# sourceMappingURL=AmaryllisContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AmaryllisContext.d.ts","sourceRoot":"","sources":["../../../src/AmaryllisContext.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAUjE,eAAO,MAAM,aAAa,uBAA+B,CAAC;AAE1D;;;GAGG;AACH,eAAO,MAAM,WAAW,GAAI,gCAIzB,gBAAgB,4CA+BlB,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { LlmRequestParams, InferenceProps } from './Types';
|
|
2
|
+
export declare const useInferenceAsync: (props?: InferenceProps) => (params: LlmRequestParams) => Promise<() => void>;
|
|
3
|
+
export declare const useInference: (props?: InferenceProps) => (params: LlmRequestParams) => Promise<() => void>;
|
|
4
|
+
//# sourceMappingURL=AmaryllisHooks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AmaryllisHooks.d.ts","sourceRoot":"","sources":["../../../src/AmaryllisHooks.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAIhE,eAAO,MAAM,iBAAiB,GAAI,QAAO,cAAmB,cAOzC,gBAAgB,wBAgClC,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,QAAO,cAAmB,cAWpC,gBAAgB,wBAoBlC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AmaryllisRx.d.ts","sourceRoot":"","sources":["../../../src/AmaryllisRx.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAgB,mBAAmB,EAAa,MAAM,SAAS,CAAC;AAG5E,wBAAgB,mBAAmB,IAAI,mBAAmB,CAoBzD"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { TurboModule } from 'react-native';
|
|
2
|
+
export interface Spec extends TurboModule {
|
|
3
|
+
init(params: Object): Promise<void>;
|
|
4
|
+
newSession(params: Object): Promise<void>;
|
|
5
|
+
generate(params: Object): Promise<string>;
|
|
6
|
+
generateAsync(params: Object): Promise<void>;
|
|
7
|
+
close(): void;
|
|
8
|
+
cancelAsync(): void;
|
|
9
|
+
}
|
|
10
|
+
declare const _default: Spec;
|
|
11
|
+
export default _default;
|
|
12
|
+
//# sourceMappingURL=NativeAmaryllis.d.ts.map
|
|
@@ -0,0 +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;IAEpC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1C,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAE1C,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE7C,KAAK,IAAI,IAAI,CAAC;IAEd,WAAW,IAAI,IAAI,CAAC;CACrB;;AAED,wBAAmE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NativePipe.d.ts","sourceRoot":"","sources":["../../../src/NativePipe.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEtC,eAAO,MAAM,UAAU,eAInB,CAAC"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import type { Spec } from './NativeAmaryllis';
|
|
2
|
+
import type { Observable } from 'rxjs';
|
|
3
|
+
export type LlmNativeEngine = Spec;
|
|
4
|
+
export type LlmCallbacks = {
|
|
5
|
+
onPartialResult?: (result: string) => void;
|
|
6
|
+
onFinalResult?: (result: string) => void;
|
|
7
|
+
onError?: (err: Error) => void;
|
|
8
|
+
};
|
|
9
|
+
export type LlmRequestParams = {
|
|
10
|
+
prompt: string;
|
|
11
|
+
images?: string[];
|
|
12
|
+
};
|
|
13
|
+
export type LlmSessionParams = {
|
|
14
|
+
topK?: number;
|
|
15
|
+
topP?: number;
|
|
16
|
+
temperature?: number;
|
|
17
|
+
randomSeed?: number;
|
|
18
|
+
loraPath?: string;
|
|
19
|
+
enableVisionModality?: boolean;
|
|
20
|
+
};
|
|
21
|
+
export type LlmEngineConfig = {
|
|
22
|
+
modelPath: string;
|
|
23
|
+
maxTopK?: number;
|
|
24
|
+
maxNumImages?: number;
|
|
25
|
+
maxTokens?: number;
|
|
26
|
+
visionEncoderPath?: string;
|
|
27
|
+
visionAdapterPath?: string;
|
|
28
|
+
};
|
|
29
|
+
export type LlmEngine = {
|
|
30
|
+
/**
|
|
31
|
+
* Initialize the engine (creates LlmInference and LlmInferenceSession internally).
|
|
32
|
+
*/
|
|
33
|
+
init(config: LlmEngineConfig): Promise<void>;
|
|
34
|
+
/**
|
|
35
|
+
* Start a new session.
|
|
36
|
+
*/
|
|
37
|
+
newSession(params: LlmSessionParams): Promise<void>;
|
|
38
|
+
/**
|
|
39
|
+
* Generate a response synchronously (blocking).
|
|
40
|
+
*/
|
|
41
|
+
generate(params: LlmRequestParams): Promise<string>;
|
|
42
|
+
/**
|
|
43
|
+
* Generate a response asynchronously (streaming).
|
|
44
|
+
*/
|
|
45
|
+
generateAsync(params: LlmRequestParams, callbacks?: LlmCallbacks): Promise<void>;
|
|
46
|
+
/**
|
|
47
|
+
* Clean up resources.
|
|
48
|
+
*/
|
|
49
|
+
close(): void;
|
|
50
|
+
cancelAsync(): void;
|
|
51
|
+
};
|
|
52
|
+
export interface LlmEventSubscription {
|
|
53
|
+
remove: () => void;
|
|
54
|
+
}
|
|
55
|
+
export interface LlmEventEmitter {
|
|
56
|
+
addListener(event: string, cb: (result: any) => void): LlmEventSubscription;
|
|
57
|
+
}
|
|
58
|
+
export interface LlmPipeParams {
|
|
59
|
+
nativeModule: LlmNativeEngine;
|
|
60
|
+
eventEmitter: LlmEventEmitter;
|
|
61
|
+
}
|
|
62
|
+
export interface LLMContextValue {
|
|
63
|
+
config: LlmEngineConfig | null;
|
|
64
|
+
controller: LlmEngine | null;
|
|
65
|
+
error: Error | undefined;
|
|
66
|
+
isReady: boolean;
|
|
67
|
+
}
|
|
68
|
+
export interface LLMProviderProps {
|
|
69
|
+
config: LlmEngineConfig;
|
|
70
|
+
llmPipe?: LlmEngine;
|
|
71
|
+
children: React.ReactNode;
|
|
72
|
+
}
|
|
73
|
+
export type InferenceProps = {
|
|
74
|
+
onGenerate?: () => void;
|
|
75
|
+
onResult?: (result: string, isFinal: boolean) => void;
|
|
76
|
+
onError?: (error: Error) => void;
|
|
77
|
+
onComplete?: () => void;
|
|
78
|
+
};
|
|
79
|
+
export interface LLMResult {
|
|
80
|
+
text: string;
|
|
81
|
+
isFinal: boolean;
|
|
82
|
+
}
|
|
83
|
+
export interface LLMObservableResult {
|
|
84
|
+
callbacks: LlmCallbacks;
|
|
85
|
+
observable: Observable<LLMResult>;
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=Types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Types.d.ts","sourceRoot":"","sources":["../../../src/Types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@micrantha/react-native-amaryllis",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "A AI module for native mobile in react",
|
|
5
|
+
"main": "./lib/module/index.js",
|
|
6
|
+
"types": "./lib/typescript/src/index.d.ts",
|
|
7
|
+
"exports": {
|
|
8
|
+
".": {
|
|
9
|
+
"source": "./src/index.tsx",
|
|
10
|
+
"types": "./lib/typescript/src/index.d.ts",
|
|
11
|
+
"default": "./lib/module/index.js"
|
|
12
|
+
},
|
|
13
|
+
"./package.json": "./package.json"
|
|
14
|
+
},
|
|
15
|
+
"files": [
|
|
16
|
+
"src",
|
|
17
|
+
"lib",
|
|
18
|
+
"android",
|
|
19
|
+
"ios",
|
|
20
|
+
"cpp",
|
|
21
|
+
"*.podspec",
|
|
22
|
+
"react-native.config.js",
|
|
23
|
+
"!ios/build",
|
|
24
|
+
"!android/build",
|
|
25
|
+
"!android/gradle",
|
|
26
|
+
"!android/gradlew",
|
|
27
|
+
"!android/gradlew.bat",
|
|
28
|
+
"!android/local.properties",
|
|
29
|
+
"!**/__tests__",
|
|
30
|
+
"!**/__fixtures__",
|
|
31
|
+
"!**/__mocks__",
|
|
32
|
+
"!**/.*",
|
|
33
|
+
"!docs"
|
|
34
|
+
],
|
|
35
|
+
"scripts": {
|
|
36
|
+
"example": "yarn workspace react-native-amaryllis-example",
|
|
37
|
+
"test": "jest",
|
|
38
|
+
"typecheck": "tsc",
|
|
39
|
+
"lint": "eslint \"**/*.{js,ts,tsx}\"",
|
|
40
|
+
"clean": "del-cli android/build example/android/build example/android/app/build example/ios/build lib",
|
|
41
|
+
"prepare": "bob build",
|
|
42
|
+
"release": "release-it --only-version"
|
|
43
|
+
},
|
|
44
|
+
"keywords": [
|
|
45
|
+
"react-native",
|
|
46
|
+
"ios",
|
|
47
|
+
"android"
|
|
48
|
+
],
|
|
49
|
+
"repository": {
|
|
50
|
+
"type": "git",
|
|
51
|
+
"url": "git+https://github.com/hackelia-micrantha/react-native-amaryllis.git"
|
|
52
|
+
},
|
|
53
|
+
"author": "Ryan Jennings <ryan.jennings@micrantha.com> (https://github.com/hackelia-micrantha)",
|
|
54
|
+
"license": "MIT",
|
|
55
|
+
"bugs": {
|
|
56
|
+
"url": "https://github.com/hackelia-micrantha/react-native-amaryllis/issues"
|
|
57
|
+
},
|
|
58
|
+
"homepage": "https://github.com/hackelia-micrantha/react-native-amaryllis#readme",
|
|
59
|
+
"publishConfig": {
|
|
60
|
+
"registry": "https://registry.npmjs.org/"
|
|
61
|
+
},
|
|
62
|
+
"devDependencies": {
|
|
63
|
+
"@commitlint/config-conventional": "^19.8.1",
|
|
64
|
+
"@eslint/compat": "^1.3.2",
|
|
65
|
+
"@eslint/eslintrc": "^3.3.1",
|
|
66
|
+
"@eslint/js": "^9.35.0",
|
|
67
|
+
"@evilmartians/lefthook": "^1.12.3",
|
|
68
|
+
"@react-native-community/cli": "20.0.1",
|
|
69
|
+
"@react-native/babel-preset": "0.81.1",
|
|
70
|
+
"@react-native/eslint-config": "^0.81.1",
|
|
71
|
+
"@release-it/conventional-changelog": "^10.0.1",
|
|
72
|
+
"@testing-library/react-native": "^13.3.3",
|
|
73
|
+
"@types/jest": "^30.0.0",
|
|
74
|
+
"@types/react": "^19.1.12",
|
|
75
|
+
"commitlint": "^19.8.1",
|
|
76
|
+
"del-cli": "^6.0.0",
|
|
77
|
+
"eslint": "^9.35.0",
|
|
78
|
+
"eslint-config-prettier": "^10.1.8",
|
|
79
|
+
"eslint-plugin-prettier": "^5.5.4",
|
|
80
|
+
"jest": "^30.1.3",
|
|
81
|
+
"prettier": "^3.6.2",
|
|
82
|
+
"react": "19.1.1",
|
|
83
|
+
"react-native": "0.81.1",
|
|
84
|
+
"react-native-builder-bob": "^0.40.13",
|
|
85
|
+
"react-test-renderer": "19.1.1",
|
|
86
|
+
"release-it": "^19.0.4",
|
|
87
|
+
"turbo": "^2.5.6",
|
|
88
|
+
"typescript": "^5.9.2"
|
|
89
|
+
},
|
|
90
|
+
"peerDependencies": {
|
|
91
|
+
"react": "*",
|
|
92
|
+
"react-native": "*"
|
|
93
|
+
},
|
|
94
|
+
"workspaces": [
|
|
95
|
+
"example"
|
|
96
|
+
],
|
|
97
|
+
"packageManager": "yarn@3.6.1",
|
|
98
|
+
"jest": {
|
|
99
|
+
"preset": "react-native",
|
|
100
|
+
"modulePathIgnorePatterns": [
|
|
101
|
+
"<rootDir>/example/node_modules",
|
|
102
|
+
"<rootDir>/lib/"
|
|
103
|
+
],
|
|
104
|
+
"testPathIgnorePatterns": [
|
|
105
|
+
"<rootDir>/src/__tests__/test-utils.tsx"
|
|
106
|
+
],
|
|
107
|
+
"setupFiles": [
|
|
108
|
+
"<rootDir>/jest.setup.js"
|
|
109
|
+
],
|
|
110
|
+
"transformIgnorePatterns": [
|
|
111
|
+
"node_modules/(?!react-native|@react-native|react-clone-referenced-element)"
|
|
112
|
+
],
|
|
113
|
+
"moduleFileExtensions": [
|
|
114
|
+
"ts",
|
|
115
|
+
"tsx",
|
|
116
|
+
"js",
|
|
117
|
+
"jsx",
|
|
118
|
+
"json",
|
|
119
|
+
"node"
|
|
120
|
+
]
|
|
121
|
+
},
|
|
122
|
+
"commitlint": {
|
|
123
|
+
"extends": [
|
|
124
|
+
"@commitlint/config-conventional"
|
|
125
|
+
]
|
|
126
|
+
},
|
|
127
|
+
"release-it": {
|
|
128
|
+
"git": {
|
|
129
|
+
"commitMessage": "chore: release ${version}",
|
|
130
|
+
"tagName": "v${version}"
|
|
131
|
+
},
|
|
132
|
+
"npm": {
|
|
133
|
+
"publish": true
|
|
134
|
+
},
|
|
135
|
+
"github": {
|
|
136
|
+
"release": true
|
|
137
|
+
},
|
|
138
|
+
"plugins": {
|
|
139
|
+
"@release-it/conventional-changelog": {
|
|
140
|
+
"preset": {
|
|
141
|
+
"name": "angular"
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
},
|
|
146
|
+
"prettier": {
|
|
147
|
+
"quoteProps": "consistent",
|
|
148
|
+
"singleQuote": true,
|
|
149
|
+
"tabWidth": 2,
|
|
150
|
+
"trailingComma": "es5",
|
|
151
|
+
"useTabs": false,
|
|
152
|
+
"endOfLine": "lf"
|
|
153
|
+
},
|
|
154
|
+
"react-native-builder-bob": {
|
|
155
|
+
"source": "src",
|
|
156
|
+
"output": "lib",
|
|
157
|
+
"targets": [
|
|
158
|
+
[
|
|
159
|
+
"module",
|
|
160
|
+
{
|
|
161
|
+
"esm": true
|
|
162
|
+
}
|
|
163
|
+
],
|
|
164
|
+
[
|
|
165
|
+
"typescript",
|
|
166
|
+
{
|
|
167
|
+
"project": "tsconfig.build.json"
|
|
168
|
+
}
|
|
169
|
+
]
|
|
170
|
+
]
|
|
171
|
+
},
|
|
172
|
+
"codegenConfig": {
|
|
173
|
+
"name": "AmaryllisSpec",
|
|
174
|
+
"type": "modules",
|
|
175
|
+
"jsSrcsDir": "src",
|
|
176
|
+
"android": {
|
|
177
|
+
"javaPackageName": "com.micrantha.amaryllis"
|
|
178
|
+
}
|
|
179
|
+
},
|
|
180
|
+
"create-react-native-library": {
|
|
181
|
+
"languages": "kotlin-objc",
|
|
182
|
+
"type": "turbo-module",
|
|
183
|
+
"version": "0.52.1"
|
|
184
|
+
}
|
|
185
|
+
}
|