@push.rocks/smartai 0.0.2 → 0.0.4
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.
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export const commitinfo = {
|
|
5
5
|
name: '@push.rocks/smartai',
|
|
6
|
-
version: '0.0.
|
|
6
|
+
version: '0.0.4',
|
|
7
7
|
description: 'a standardaized interface to talk to AI models'
|
|
8
8
|
};
|
|
9
9
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvMDBfY29tbWl0aW5mb19kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3hCLElBQUksRUFBRSxxQkFBcUI7SUFDM0IsT0FBTyxFQUFFLE9BQU87SUFDaEIsV0FBVyxFQUFFLGdEQUFnRDtDQUM5RCxDQUFBIn0=
|
|
@@ -1,2 +1,43 @@
|
|
|
1
|
+
class SmartAi {
|
|
2
|
+
constructor(options) {
|
|
3
|
+
this.inputStreamWriter = null;
|
|
4
|
+
this.outputStreamController = null;
|
|
5
|
+
this.processFunction = options.processFunction;
|
|
6
|
+
}
|
|
7
|
+
setupOutputStream() {
|
|
8
|
+
return new ReadableStream({
|
|
9
|
+
start: (controller) => {
|
|
10
|
+
this.outputStreamController = controller;
|
|
11
|
+
}
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
setupInputStream() {
|
|
15
|
+
return new WritableStream({
|
|
16
|
+
write: async (chunk) => {
|
|
17
|
+
const processedData = await this.processFunction(chunk);
|
|
18
|
+
if (this.outputStreamController) {
|
|
19
|
+
this.outputStreamController.enqueue(processedData);
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
close: () => {
|
|
23
|
+
this.outputStreamController?.close();
|
|
24
|
+
},
|
|
25
|
+
abort: (err) => {
|
|
26
|
+
console.error('Stream aborted', err);
|
|
27
|
+
this.outputStreamController?.error(err);
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
getInputStreamWriter() {
|
|
32
|
+
if (!this.inputStreamWriter) {
|
|
33
|
+
const inputStream = this.setupInputStream();
|
|
34
|
+
this.inputStreamWriter = inputStream.getWriter();
|
|
35
|
+
}
|
|
36
|
+
return this.inputStreamWriter;
|
|
37
|
+
}
|
|
38
|
+
getOutputStream() {
|
|
39
|
+
return this.setupOutputStream();
|
|
40
|
+
}
|
|
41
|
+
}
|
|
1
42
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRhaS5jbGFzc2VzLnNtYXJ0YWkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9zbWFydGFpLmNsYXNzZXMuc21hcnRhaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFNQSxNQUFNLE9BQU87SUFLWCxZQUFZLE9BQXdCO1FBSDVCLHNCQUFpQixHQUErQyxJQUFJLENBQUM7UUFDckUsMkJBQXNCLEdBQW1ELElBQUksQ0FBQztRQUdwRixJQUFJLENBQUMsZUFBZSxHQUFHLE9BQU8sQ0FBQyxlQUFlLENBQUM7SUFDakQsQ0FBQztJQUVPLGlCQUFpQjtRQUN2QixPQUFPLElBQUksY0FBYyxDQUFTO1lBQ2hDLEtBQUssRUFBRSxDQUFDLFVBQVUsRUFBRSxFQUFFO2dCQUNwQixJQUFJLENBQUMsc0JBQXNCLEdBQUcsVUFBVSxDQUFDO1lBQzNDLENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sZ0JBQWdCO1FBQ3RCLE9BQU8sSUFBSSxjQUFjLENBQVM7WUFDaEMsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRTtnQkFDckIsTUFBTSxhQUFhLEdBQUcsTUFBTSxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUN4RCxJQUFJLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO29CQUNoQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO2dCQUNyRCxDQUFDO1lBQ0gsQ0FBQztZQUNELEtBQUssRUFBRSxHQUFHLEVBQUU7Z0JBQ1YsSUFBSSxDQUFDLHNCQUFzQixFQUFFLEtBQUssRUFBRSxDQUFDO1lBQ3ZDLENBQUM7WUFDRCxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDYixPQUFPLENBQUMsS0FBSyxDQUFDLGdCQUFnQixFQUFFLEdBQUcsQ0FBQyxDQUFDO2dCQUNyQyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzFDLENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sb0JBQW9CO1FBQ3pCLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUM1QixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUM1QyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsV0FBVyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ25ELENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztJQUNoQyxDQUFDO0lBRU0sZUFBZTtRQUNwQixPQUFPLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQ2xDLENBQUM7Q0FDRiJ9
|
package/package.json
CHANGED
package/ts/00_commitinfo_data.ts
CHANGED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
type TProcessFunction = (input: string) => Promise<string>;
|
|
2
|
+
|
|
3
|
+
interface ISmartAiOptions {
|
|
4
|
+
processFunction: TProcessFunction;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
class SmartAi {
|
|
8
|
+
private processFunction: TProcessFunction;
|
|
9
|
+
private inputStreamWriter: WritableStreamDefaultWriter<string> | null = null;
|
|
10
|
+
private outputStreamController: ReadableStreamDefaultController<string> | null = null;
|
|
11
|
+
|
|
12
|
+
constructor(options: ISmartAiOptions) {
|
|
13
|
+
this.processFunction = options.processFunction;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
private setupOutputStream(): ReadableStream<string> {
|
|
17
|
+
return new ReadableStream<string>({
|
|
18
|
+
start: (controller) => {
|
|
19
|
+
this.outputStreamController = controller;
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
private setupInputStream(): WritableStream<string> {
|
|
25
|
+
return new WritableStream<string>({
|
|
26
|
+
write: async (chunk) => {
|
|
27
|
+
const processedData = await this.processFunction(chunk);
|
|
28
|
+
if (this.outputStreamController) {
|
|
29
|
+
this.outputStreamController.enqueue(processedData);
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
close: () => {
|
|
33
|
+
this.outputStreamController?.close();
|
|
34
|
+
},
|
|
35
|
+
abort: (err) => {
|
|
36
|
+
console.error('Stream aborted', err);
|
|
37
|
+
this.outputStreamController?.error(err);
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
public getInputStreamWriter(): WritableStreamDefaultWriter<string> {
|
|
43
|
+
if (!this.inputStreamWriter) {
|
|
44
|
+
const inputStream = this.setupInputStream();
|
|
45
|
+
this.inputStreamWriter = inputStream.getWriter();
|
|
46
|
+
}
|
|
47
|
+
return this.inputStreamWriter;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
public getOutputStream(): ReadableStream<string> {
|
|
51
|
+
return this.setupOutputStream();
|
|
52
|
+
}
|
|
53
|
+
}
|