@byline/ai 1.9.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 +21 -0
- package/README.md +4 -0
- package/dist/@types.d.ts +103 -0
- package/dist/@types.d.ts.map +1 -0
- package/dist/@types.js +68 -0
- package/dist/@types.js.map +1 -0
- package/dist/config/ai-config.d.ts +76 -0
- package/dist/config/ai-config.d.ts.map +1 -0
- package/dist/config/ai-config.js +108 -0
- package/dist/config/ai-config.js.map +1 -0
- package/dist/config/ai-config.test.node.d.ts +9 -0
- package/dist/config/ai-config.test.node.d.ts.map +1 -0
- package/dist/config/ai-config.test.node.js +31 -0
- package/dist/config/ai-config.test.node.js.map +1 -0
- package/dist/config/ai-provider.d.ts +17 -0
- package/dist/config/ai-provider.d.ts.map +1 -0
- package/dist/config/ai-provider.js +32 -0
- package/dist/config/ai-provider.js.map +1 -0
- package/dist/execute.d.ts +15 -0
- package/dist/execute.d.ts.map +1 -0
- package/dist/execute.js +473 -0
- package/dist/execute.js.map +1 -0
- package/dist/generate.d.ts +64 -0
- package/dist/generate.d.ts.map +1 -0
- package/dist/generate.js +235 -0
- package/dist/generate.js.map +1 -0
- package/dist/index.d.ts +28 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +43 -0
- package/dist/index.js.map +1 -0
- package/dist/lexical-text-edits.d.ts +23 -0
- package/dist/lexical-text-edits.d.ts.map +1 -0
- package/dist/lexical-text-edits.js +62 -0
- package/dist/lexical-text-edits.js.map +1 -0
- package/dist/lib/logger.d.ts +10 -0
- package/dist/lib/logger.d.ts.map +1 -0
- package/dist/lib/logger.js +16 -0
- package/dist/lib/logger.js.map +1 -0
- package/dist/models/anthropic/anthropic-models.d.ts +14 -0
- package/dist/models/anthropic/anthropic-models.d.ts.map +1 -0
- package/dist/models/anthropic/anthropic-models.js +41 -0
- package/dist/models/anthropic/anthropic-models.js.map +1 -0
- package/dist/models/anthropic/anthropic.d.ts +9 -0
- package/dist/models/anthropic/anthropic.d.ts.map +1 -0
- package/dist/models/anthropic/anthropic.js +20 -0
- package/dist/models/anthropic/anthropic.js.map +1 -0
- package/dist/models/anthropic/generate-native.d.ts +59 -0
- package/dist/models/anthropic/generate-native.d.ts.map +1 -0
- package/dist/models/anthropic/generate-native.js +271 -0
- package/dist/models/anthropic/generate-native.js.map +1 -0
- package/dist/models/anthropic/generate-vercel.d.ts +59 -0
- package/dist/models/anthropic/generate-vercel.d.ts.map +1 -0
- package/dist/models/anthropic/generate-vercel.js +126 -0
- package/dist/models/anthropic/generate-vercel.js.map +1 -0
- package/dist/models/anthropic/generate.d.ts +16 -0
- package/dist/models/anthropic/generate.d.ts.map +1 -0
- package/dist/models/anthropic/generate.js +28 -0
- package/dist/models/anthropic/generate.js.map +1 -0
- package/dist/models/anthropic/generate.test.node.d.ts +9 -0
- package/dist/models/anthropic/generate.test.node.d.ts.map +1 -0
- package/dist/models/anthropic/generate.test.node.js +106 -0
- package/dist/models/anthropic/generate.test.node.js.map +1 -0
- package/dist/models/anthropic/patch-native.d.ts +33 -0
- package/dist/models/anthropic/patch-native.d.ts.map +1 -0
- package/dist/models/anthropic/patch-native.js +152 -0
- package/dist/models/anthropic/patch-native.js.map +1 -0
- package/dist/models/anthropic/patch-vercel.d.ts +33 -0
- package/dist/models/anthropic/patch-vercel.d.ts.map +1 -0
- package/dist/models/anthropic/patch-vercel.js +47 -0
- package/dist/models/anthropic/patch-vercel.js.map +1 -0
- package/dist/models/anthropic/patch.d.ts +12 -0
- package/dist/models/anthropic/patch.d.ts.map +1 -0
- package/dist/models/anthropic/patch.js +16 -0
- package/dist/models/anthropic/patch.js.map +1 -0
- package/dist/models/anthropic/patch.test.node.d.ts +9 -0
- package/dist/models/anthropic/patch.test.node.d.ts.map +1 -0
- package/dist/models/anthropic/patch.test.node.js +110 -0
- package/dist/models/anthropic/patch.test.node.js.map +1 -0
- package/dist/models/anthropic/schema.d.ts +212 -0
- package/dist/models/anthropic/schema.d.ts.map +1 -0
- package/dist/models/anthropic/schema.js +131 -0
- package/dist/models/anthropic/schema.js.map +1 -0
- package/dist/models/google/generate-native.d.ts +59 -0
- package/dist/models/google/generate-native.d.ts.map +1 -0
- package/dist/models/google/generate-native.js +244 -0
- package/dist/models/google/generate-native.js.map +1 -0
- package/dist/models/google/generate-vercel.d.ts +59 -0
- package/dist/models/google/generate-vercel.d.ts.map +1 -0
- package/dist/models/google/generate-vercel.js +133 -0
- package/dist/models/google/generate-vercel.js.map +1 -0
- package/dist/models/google/generate.d.ts +16 -0
- package/dist/models/google/generate.d.ts.map +1 -0
- package/dist/models/google/generate.js +28 -0
- package/dist/models/google/generate.js.map +1 -0
- package/dist/models/google/generate.test.node.d.ts +9 -0
- package/dist/models/google/generate.test.node.d.ts.map +1 -0
- package/dist/models/google/generate.test.node.js +106 -0
- package/dist/models/google/generate.test.node.js.map +1 -0
- package/dist/models/google/google-models.d.ts +14 -0
- package/dist/models/google/google-models.d.ts.map +1 -0
- package/dist/models/google/google-models.js +25 -0
- package/dist/models/google/google-models.js.map +1 -0
- package/dist/models/google/normalize-generated-doc.d.ts +10 -0
- package/dist/models/google/normalize-generated-doc.d.ts.map +1 -0
- package/dist/models/google/normalize-generated-doc.js +48 -0
- package/dist/models/google/normalize-generated-doc.js.map +1 -0
- package/dist/models/google/patch-native.d.ts +33 -0
- package/dist/models/google/patch-native.d.ts.map +1 -0
- package/dist/models/google/patch-native.js +164 -0
- package/dist/models/google/patch-native.js.map +1 -0
- package/dist/models/google/patch-vercel.d.ts +33 -0
- package/dist/models/google/patch-vercel.d.ts.map +1 -0
- package/dist/models/google/patch-vercel.js +49 -0
- package/dist/models/google/patch-vercel.js.map +1 -0
- package/dist/models/google/patch.d.ts +12 -0
- package/dist/models/google/patch.d.ts.map +1 -0
- package/dist/models/google/patch.js +16 -0
- package/dist/models/google/patch.js.map +1 -0
- package/dist/models/google/patch.test.node.d.ts +9 -0
- package/dist/models/google/patch.test.node.d.ts.map +1 -0
- package/dist/models/google/patch.test.node.js +110 -0
- package/dist/models/google/patch.test.node.js.map +1 -0
- package/dist/models/google/schema.d.ts +416 -0
- package/dist/models/google/schema.d.ts.map +1 -0
- package/dist/models/google/schema.js +254 -0
- package/dist/models/google/schema.js.map +1 -0
- package/dist/models/openai/generate-native.d.ts +65 -0
- package/dist/models/openai/generate-native.d.ts.map +1 -0
- package/dist/models/openai/generate-native.js +276 -0
- package/dist/models/openai/generate-native.js.map +1 -0
- package/dist/models/openai/generate-vercel.d.ts +59 -0
- package/dist/models/openai/generate-vercel.d.ts.map +1 -0
- package/dist/models/openai/generate-vercel.js +132 -0
- package/dist/models/openai/generate-vercel.js.map +1 -0
- package/dist/models/openai/generate.d.ts +16 -0
- package/dist/models/openai/generate.d.ts.map +1 -0
- package/dist/models/openai/generate.js +28 -0
- package/dist/models/openai/generate.js.map +1 -0
- package/dist/models/openai/generate.test.node.d.ts +9 -0
- package/dist/models/openai/generate.test.node.d.ts.map +1 -0
- package/dist/models/openai/generate.test.node.js +106 -0
- package/dist/models/openai/generate.test.node.js.map +1 -0
- package/dist/models/openai/openai-models.d.ts +14 -0
- package/dist/models/openai/openai-models.d.ts.map +1 -0
- package/dist/models/openai/openai-models.js +23 -0
- package/dist/models/openai/openai-models.js.map +1 -0
- package/dist/models/openai/patch-native.d.ts +33 -0
- package/dist/models/openai/patch-native.d.ts.map +1 -0
- package/dist/models/openai/patch-native.js +151 -0
- package/dist/models/openai/patch-native.js.map +1 -0
- package/dist/models/openai/patch-vercel.d.ts +33 -0
- package/dist/models/openai/patch-vercel.d.ts.map +1 -0
- package/dist/models/openai/patch-vercel.js +49 -0
- package/dist/models/openai/patch-vercel.js.map +1 -0
- package/dist/models/openai/patch.d.ts +12 -0
- package/dist/models/openai/patch.d.ts.map +1 -0
- package/dist/models/openai/patch.js +16 -0
- package/dist/models/openai/patch.js.map +1 -0
- package/dist/models/openai/patch.test.node.d.ts +9 -0
- package/dist/models/openai/patch.test.node.d.ts.map +1 -0
- package/dist/models/openai/patch.test.node.js +110 -0
- package/dist/models/openai/patch.test.node.js.map +1 -0
- package/dist/models/openai/schema.d.ts +460 -0
- package/dist/models/openai/schema.d.ts.map +1 -0
- package/dist/models/openai/schema.js +327 -0
- package/dist/models/openai/schema.js.map +1 -0
- package/dist/patch.d.ts +45 -0
- package/dist/patch.d.ts.map +1 -0
- package/dist/patch.js +138 -0
- package/dist/patch.js.map +1 -0
- package/dist/plugins/ai-plugin-base.d.ts +40 -0
- package/dist/plugins/ai-plugin-base.d.ts.map +1 -0
- package/dist/plugins/ai-plugin-base.js +218 -0
- package/dist/plugins/ai-plugin-base.js.map +1 -0
- package/dist/plugins/ai-plugin.css +181 -0
- package/dist/plugins/lexical/create-empty-editor-state.d.ts +32 -0
- package/dist/plugins/lexical/create-empty-editor-state.d.ts.map +1 -0
- package/dist/plugins/lexical/create-empty-editor-state.js +51 -0
- package/dist/plugins/lexical/create-empty-editor-state.js.map +1 -0
- package/dist/plugins/lexical/import-html.d.ts +10 -0
- package/dist/plugins/lexical/import-html.d.ts.map +1 -0
- package/dist/plugins/lexical/import-html.js +31 -0
- package/dist/plugins/lexical/import-html.js.map +1 -0
- package/dist/plugins/lexical/index.d.ts +9 -0
- package/dist/plugins/lexical/index.d.ts.map +1 -0
- package/dist/plugins/lexical/index.js +9 -0
- package/dist/plugins/lexical/index.js.map +1 -0
- package/dist/plugins/lexical/plugin.d.ts +11 -0
- package/dist/plugins/lexical/plugin.d.ts.map +1 -0
- package/dist/plugins/lexical/plugin.js +305 -0
- package/dist/plugins/lexical/plugin.js.map +1 -0
- package/dist/plugins/storage.d.ts +18 -0
- package/dist/plugins/storage.d.ts.map +1 -0
- package/dist/plugins/storage.js +57 -0
- package/dist/plugins/storage.js.map +1 -0
- package/dist/plugins/streaming-preview.d.ts +12 -0
- package/dist/plugins/streaming-preview.d.ts.map +1 -0
- package/dist/plugins/streaming-preview.js +24 -0
- package/dist/plugins/streaming-preview.js.map +1 -0
- package/dist/plugins/text/index.d.ts +9 -0
- package/dist/plugins/text/index.d.ts.map +1 -0
- package/dist/plugins/text/index.js +9 -0
- package/dist/plugins/text/index.js.map +1 -0
- package/dist/plugins/text/plugin.d.ts +18 -0
- package/dist/plugins/text/plugin.d.ts.map +1 -0
- package/dist/plugins/text/plugin.js +261 -0
- package/dist/plugins/text/plugin.js.map +1 -0
- package/dist/prompts.d.ts +30 -0
- package/dist/prompts.d.ts.map +1 -0
- package/dist/prompts.js +83 -0
- package/dist/prompts.js.map +1 -0
- package/dist/schemas/lexical-json-schema.d.ts +68 -0
- package/dist/schemas/lexical-json-schema.d.ts.map +1 -0
- package/dist/schemas/lexical-json-schema.js +434 -0
- package/dist/schemas/lexical-json-schema.js.map +1 -0
- package/dist/scripts/list-models.d.ts +9 -0
- package/dist/scripts/list-models.d.ts.map +1 -0
- package/dist/scripts/list-models.js +55 -0
- package/dist/scripts/list-models.js.map +1 -0
- package/dist/server.d.ts +25 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +22 -0
- package/dist/server.js.map +1 -0
- package/dist/utils/convert-to-lexical.d.ts +62 -0
- package/dist/utils/convert-to-lexical.d.ts.map +1 -0
- package/dist/utils/convert-to-lexical.js +210 -0
- package/dist/utils/convert-to-lexical.js.map +1 -0
- package/dist/utils/create-empty-editor-state.d.ts +32 -0
- package/dist/utils/create-empty-editor-state.d.ts.map +1 -0
- package/dist/utils/create-empty-editor-state.js +51 -0
- package/dist/utils/create-empty-editor-state.js.map +1 -0
- package/dist/utils/has-text.d.ts +10 -0
- package/dist/utils/has-text.d.ts.map +1 -0
- package/dist/utils/has-text.js +35 -0
- package/dist/utils/has-text.js.map +1 -0
- package/dist/utils/has-text.test.d.ts +9 -0
- package/dist/utils/has-text.test.d.ts.map +1 -0
- package/dist/utils/has-text.test.js +69 -0
- package/dist/utils/has-text.test.js.map +1 -0
- package/dist/utils/is-object-schema.d.ts +17 -0
- package/dist/utils/is-object-schema.d.ts.map +1 -0
- package/dist/utils/is-object-schema.js +19 -0
- package/dist/utils/is-object-schema.js.map +1 -0
- package/dist/utils/lexical-text-edits.d.ts +23 -0
- package/dist/utils/lexical-text-edits.d.ts.map +1 -0
- package/dist/utils/lexical-text-edits.js +62 -0
- package/dist/utils/lexical-text-edits.js.map +1 -0
- package/package.json +111 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) Infonomic Company Limited.
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
package/dist/@types.d.ts
ADDED
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This Source Code is subject to the terms of the Mozilla Public
|
|
3
|
+
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
4
|
+
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
5
|
+
*
|
|
6
|
+
* Copyright (c) Infonomic Company Limited
|
|
7
|
+
*/
|
|
8
|
+
import { z } from 'zod';
|
|
9
|
+
export declare const PROVIDERS: readonly ["openai", "google", "anthropic"];
|
|
10
|
+
export declare const INSTRUCTION_MODES: readonly ["new", "new_with_context", "patch"];
|
|
11
|
+
export type InstructionMode = (typeof INSTRUCTION_MODES)[number];
|
|
12
|
+
export type OutputPreference = {
|
|
13
|
+
type: 'structured';
|
|
14
|
+
} | {
|
|
15
|
+
type: 'html';
|
|
16
|
+
} | {
|
|
17
|
+
type: 'text';
|
|
18
|
+
length: 'short' | 'long';
|
|
19
|
+
maxLength?: number;
|
|
20
|
+
};
|
|
21
|
+
export type ExecuteInstructionInput = {
|
|
22
|
+
type: 'structured';
|
|
23
|
+
editorJson: string;
|
|
24
|
+
} | {
|
|
25
|
+
type: 'text';
|
|
26
|
+
text: string;
|
|
27
|
+
};
|
|
28
|
+
export type ExecuteInstructionParams = {
|
|
29
|
+
prompt: string;
|
|
30
|
+
mode: InstructionMode;
|
|
31
|
+
input: ExecuteInstructionInput;
|
|
32
|
+
sdk: InstructionSdk;
|
|
33
|
+
provider: Provider;
|
|
34
|
+
model: string;
|
|
35
|
+
output?: OutputPreference;
|
|
36
|
+
};
|
|
37
|
+
export type ExecuteInstructionOptions = {
|
|
38
|
+
streaming?: boolean;
|
|
39
|
+
signal?: AbortSignal;
|
|
40
|
+
timeoutMs?: number;
|
|
41
|
+
telemetryContext?: Record<string, unknown>;
|
|
42
|
+
};
|
|
43
|
+
export type ExecuteInstruction = {
|
|
44
|
+
params: ExecuteInstructionParams;
|
|
45
|
+
options?: ExecuteInstructionOptions;
|
|
46
|
+
};
|
|
47
|
+
export declare const SDKS: readonly ["native", "vercel"];
|
|
48
|
+
export type Sdk = (typeof SDKS)[number];
|
|
49
|
+
export declare const normalizeSdk: (value: unknown) => Sdk;
|
|
50
|
+
export interface InstructionState {
|
|
51
|
+
errors: {
|
|
52
|
+
prompt?: string[] | undefined;
|
|
53
|
+
editor?: string[] | undefined;
|
|
54
|
+
};
|
|
55
|
+
message?: string;
|
|
56
|
+
editor?: any;
|
|
57
|
+
html?: string;
|
|
58
|
+
text?: string;
|
|
59
|
+
format?: 'lexical' | 'html' | 'text';
|
|
60
|
+
prompt?: string;
|
|
61
|
+
lastRun?: number | null;
|
|
62
|
+
status: 'success' | 'failed' | 'idle';
|
|
63
|
+
}
|
|
64
|
+
export declare const instructionSchema: z.ZodObject<{
|
|
65
|
+
prompt: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
|
|
66
|
+
mode: z.ZodEnum<{
|
|
67
|
+
new: "new";
|
|
68
|
+
new_with_context: "new_with_context";
|
|
69
|
+
patch: "patch";
|
|
70
|
+
}>;
|
|
71
|
+
input: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
72
|
+
type: z.ZodLiteral<"structured">;
|
|
73
|
+
editorJson: z.ZodString;
|
|
74
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
75
|
+
type: z.ZodLiteral<"text">;
|
|
76
|
+
text: z.ZodString;
|
|
77
|
+
}, z.core.$strip>], "type">;
|
|
78
|
+
provider: z.ZodEnum<{
|
|
79
|
+
openai: "openai";
|
|
80
|
+
google: "google";
|
|
81
|
+
anthropic: "anthropic";
|
|
82
|
+
}>;
|
|
83
|
+
model: z.ZodString;
|
|
84
|
+
sdk: z.ZodEnum<{
|
|
85
|
+
native: "native";
|
|
86
|
+
vercel: "vercel";
|
|
87
|
+
}>;
|
|
88
|
+
output: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
89
|
+
type: z.ZodLiteral<"structured">;
|
|
90
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
91
|
+
type: z.ZodLiteral<"html">;
|
|
92
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
93
|
+
type: z.ZodLiteral<"text">;
|
|
94
|
+
length: z.ZodEnum<{
|
|
95
|
+
short: "short";
|
|
96
|
+
long: "long";
|
|
97
|
+
}>;
|
|
98
|
+
maxLength: z.ZodOptional<z.ZodNumber>;
|
|
99
|
+
}, z.core.$strip>], "type">>;
|
|
100
|
+
}, z.core.$strip>;
|
|
101
|
+
export type Provider = z.infer<typeof instructionSchema>['provider'];
|
|
102
|
+
export type InstructionSdk = z.infer<typeof instructionSchema>['sdk'];
|
|
103
|
+
//# sourceMappingURL=@types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"@types.d.ts","sourceRoot":"","sources":["../src/@types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,eAAO,MAAM,SAAS,4CAA6C,CAAA;AAEnE,eAAO,MAAM,iBAAiB,+CAAgD,CAAA;AAC9E,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAA;AAEhE,MAAM,MAAM,gBAAgB,GACxB;IAAE,IAAI,EAAE,YAAY,CAAA;CAAE,GACtB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAAA;AAElE,MAAM,MAAM,uBAAuB,GAC/B;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAC1C;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAA;AAElC,MAAM,MAAM,wBAAwB,GAAG;IACrC,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,eAAe,CAAA;IACrB,KAAK,EAAE,uBAAuB,CAAA;IAC9B,GAAG,EAAE,cAAc,CAAA;IACnB,QAAQ,EAAE,QAAQ,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,gBAAgB,CAAA;CAC1B,CAAA;AAED,MAAM,MAAM,yBAAyB,GAAG;IACtC,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC3C,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,MAAM,EAAE,wBAAwB,CAAA;IAChC,OAAO,CAAC,EAAE,yBAAyB,CAAA;CACpC,CAAA;AAED,eAAO,MAAM,IAAI,+BAAgC,CAAA;AACjD,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC,MAAM,CAAC,CAAA;AAEvC,eAAO,MAAM,YAAY,GAAI,OAAO,OAAO,KAAG,GAI7C,CAAA;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE;QACN,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAA;QAC7B,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAA;KAC9B,CAAA;IACD,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,GAAG,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,SAAS,GAAG,MAAM,GAAG,MAAM,CAAA;IACpC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,MAAM,EAAE,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAA;CACtC;AA+BD,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA0B5B,CAAA;AAEF,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC,UAAU,CAAC,CAAA;AACpE,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC,KAAK,CAAC,CAAA"}
|
package/dist/@types.js
ADDED
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This Source Code is subject to the terms of the Mozilla Public
|
|
3
|
+
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
4
|
+
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
5
|
+
*
|
|
6
|
+
* Copyright (c) Infonomic Company Limited
|
|
7
|
+
*/
|
|
8
|
+
import { z } from 'zod';
|
|
9
|
+
export const PROVIDERS = ['openai', 'google', 'anthropic'];
|
|
10
|
+
export const INSTRUCTION_MODES = ['new', 'new_with_context', 'patch'];
|
|
11
|
+
export const SDKS = ['native', 'vercel'];
|
|
12
|
+
export const normalizeSdk = (value) => {
|
|
13
|
+
if (typeof value !== 'string')
|
|
14
|
+
return 'native';
|
|
15
|
+
const normalized = value.trim().toLowerCase();
|
|
16
|
+
return normalized === 'vercel' ? 'vercel' : 'native';
|
|
17
|
+
};
|
|
18
|
+
const outputPreferenceSchema = z
|
|
19
|
+
.discriminatedUnion('type', [
|
|
20
|
+
z.object({ type: z.literal('structured') }),
|
|
21
|
+
z.object({ type: z.literal('html') }),
|
|
22
|
+
z.object({
|
|
23
|
+
type: z.literal('text'),
|
|
24
|
+
length: z.enum(['short', 'long']),
|
|
25
|
+
maxLength: z.number().optional(),
|
|
26
|
+
}),
|
|
27
|
+
])
|
|
28
|
+
.optional();
|
|
29
|
+
const inputSchema = z.discriminatedUnion('type', [
|
|
30
|
+
z.object({
|
|
31
|
+
type: z.literal('structured'),
|
|
32
|
+
editorJson: z.string({
|
|
33
|
+
error: (issue) => issue.input === undefined ? 'Editor state is required.' : 'Editor state must be a string.',
|
|
34
|
+
}),
|
|
35
|
+
}),
|
|
36
|
+
z.object({
|
|
37
|
+
type: z.literal('text'),
|
|
38
|
+
text: z.string({
|
|
39
|
+
error: (issue) => issue.input === undefined ? 'Input text is required.' : 'Input text must be a string.',
|
|
40
|
+
}),
|
|
41
|
+
}),
|
|
42
|
+
]);
|
|
43
|
+
export const instructionSchema = z.object({
|
|
44
|
+
prompt: z
|
|
45
|
+
.string({
|
|
46
|
+
error: (issue) => issue.input === undefined ? 'Prompt input is required.' : 'Prompt input must be a string.',
|
|
47
|
+
})
|
|
48
|
+
.min(3, {
|
|
49
|
+
error: 'Prompt input must be 3 or more characters long.',
|
|
50
|
+
})
|
|
51
|
+
.transform((s) => s.trim())
|
|
52
|
+
.refine((s) => s.length > 0, 'Prompt input cannot be empty.'),
|
|
53
|
+
mode: z.enum(INSTRUCTION_MODES, {
|
|
54
|
+
error: 'Mode must be one of new, new_with_context, or patch.',
|
|
55
|
+
}),
|
|
56
|
+
input: inputSchema,
|
|
57
|
+
provider: z.enum(PROVIDERS, {
|
|
58
|
+
error: 'Provider must be one of openai, google, or anthropic.',
|
|
59
|
+
}),
|
|
60
|
+
model: z.string({
|
|
61
|
+
error: (issue) => issue.input === undefined ? 'Model is required.' : 'Model must be a string.',
|
|
62
|
+
}),
|
|
63
|
+
sdk: z.enum(SDKS, {
|
|
64
|
+
error: 'SDK must be one of native or vercel.',
|
|
65
|
+
}),
|
|
66
|
+
output: outputPreferenceSchema,
|
|
67
|
+
});
|
|
68
|
+
//# sourceMappingURL=@types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"@types.js","sourceRoot":"","sources":["../src/@types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This Source Code is subject to the terms of the Mozilla Public
|
|
3
|
+
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
4
|
+
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
5
|
+
*
|
|
6
|
+
* Copyright (c) Infonomic Company Limited
|
|
7
|
+
*/
|
|
8
|
+
import { z } from 'zod';
|
|
9
|
+
import type { Provider } from '../@types';
|
|
10
|
+
/**
|
|
11
|
+
* Curated model configuration per application version.
|
|
12
|
+
* These are the models suited to text generation for our
|
|
13
|
+
* text and lexical editors. Update this list when adding
|
|
14
|
+
* or retiring models between releases. Use `pnpm list:models`
|
|
15
|
+
* to discover available models from each provider.
|
|
16
|
+
*/
|
|
17
|
+
export declare const PROVIDER_MODELS: Record<Provider, string[]>;
|
|
18
|
+
export declare const DEFAULT_MODELS: Record<Provider, string>;
|
|
19
|
+
/**
|
|
20
|
+
* Server configuration schema and functions. Note that these
|
|
21
|
+
* values are ONLY available on the server and NOT available
|
|
22
|
+
* at build time and therefore not available to the browser.
|
|
23
|
+
* Values here are populated via the projects's .env file
|
|
24
|
+
* which is NOT committed to the project's Git repo and
|
|
25
|
+
* CAN include secrets.
|
|
26
|
+
*/
|
|
27
|
+
declare const aiServerSchema: z.ZodObject<{
|
|
28
|
+
ai: z.ZodObject<{
|
|
29
|
+
defaultProvider: z.ZodEnum<{
|
|
30
|
+
openai: "openai";
|
|
31
|
+
google: "google";
|
|
32
|
+
anthropic: "anthropic";
|
|
33
|
+
}>;
|
|
34
|
+
openai: z.ZodObject<{
|
|
35
|
+
apiKey: z.ZodString;
|
|
36
|
+
baseUrl: z.ZodOptional<z.ZodString>;
|
|
37
|
+
}, z.core.$strip>;
|
|
38
|
+
google: z.ZodObject<{
|
|
39
|
+
apiKey: z.ZodString;
|
|
40
|
+
baseUrl: z.ZodOptional<z.ZodString>;
|
|
41
|
+
}, z.core.$strip>;
|
|
42
|
+
anthropic: z.ZodObject<{
|
|
43
|
+
apiKey: z.ZodString;
|
|
44
|
+
baseUrl: z.ZodOptional<z.ZodString>;
|
|
45
|
+
}, z.core.$strip>;
|
|
46
|
+
}, z.core.$strip>;
|
|
47
|
+
}, z.core.$strip>;
|
|
48
|
+
type AiServerConfig = z.infer<typeof aiServerSchema>;
|
|
49
|
+
export declare const getAiServerConfig: () => AiServerConfig;
|
|
50
|
+
/**
|
|
51
|
+
* Default path for the AI execute endpoint. Host adapters mount the
|
|
52
|
+
* actual handler at this path (or override via AiPublicConfigProvider).
|
|
53
|
+
*/
|
|
54
|
+
export declare const DEFAULT_AI_ENDPOINT = "/api/admin/ai";
|
|
55
|
+
/**
|
|
56
|
+
* Public configuration. These values are passed to the browser via
|
|
57
|
+
* <AiPublicConfigProvider> and read by the AI plugins. Must NOT contain
|
|
58
|
+
* secrets — only transport configuration.
|
|
59
|
+
*
|
|
60
|
+
* - `endpoint`: URL the plugins POST `ExecuteInstruction` to
|
|
61
|
+
* - `enabled`: when explicitly `false`, wrappers may hide AI affordances
|
|
62
|
+
* - `fetch`: optional fetch override (auth interceptors, tests, etc.)
|
|
63
|
+
* - `headers`: optional headers merged into every request
|
|
64
|
+
*/
|
|
65
|
+
declare const aiPublicSchema: z.ZodObject<{
|
|
66
|
+
endpoint: z.ZodDefault<z.ZodString>;
|
|
67
|
+
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
68
|
+
}, z.core.$strip>;
|
|
69
|
+
type AiPublicEnvConfig = z.infer<typeof aiPublicSchema>;
|
|
70
|
+
export type AiPublicConfig = AiPublicEnvConfig & {
|
|
71
|
+
fetch?: typeof fetch;
|
|
72
|
+
headers?: HeadersInit;
|
|
73
|
+
};
|
|
74
|
+
export declare const getAiPublicConfig: () => AiPublicEnvConfig;
|
|
75
|
+
export {};
|
|
76
|
+
//# sourceMappingURL=ai-config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ai-config.d.ts","sourceRoot":"","sources":["../../src/config/ai-config.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAEzC;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,CAItD,CAAA;AAED,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAInD,CAAA;AAED;;;;;;;GAOG;AACH,QAAA,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;iBAgBlB,CAAA;AAEF,KAAK,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAA;AA2BpD,eAAO,MAAM,iBAAiB,QAAO,cAKpC,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,mBAAmB,kBAAkB,CAAA;AAElD;;;;;;;;;GASG;AACH,QAAA,MAAM,cAAc;;;iBAGlB,CAAA;AAEF,KAAK,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAA;AAEvD,MAAM,MAAM,cAAc,GAAG,iBAAiB,GAAG;IAC/C,KAAK,CAAC,EAAE,OAAO,KAAK,CAAA;IACpB,OAAO,CAAC,EAAE,WAAW,CAAA;CACtB,CAAA;AASD,eAAO,MAAM,iBAAiB,QAAO,iBAKpC,CAAA"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This Source Code is subject to the terms of the Mozilla Public
|
|
3
|
+
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
4
|
+
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
5
|
+
*
|
|
6
|
+
* Copyright (c) Infonomic Company Limited
|
|
7
|
+
*/
|
|
8
|
+
import { z } from 'zod';
|
|
9
|
+
/**
|
|
10
|
+
* Curated model configuration per application version.
|
|
11
|
+
* These are the models suited to text generation for our
|
|
12
|
+
* text and lexical editors. Update this list when adding
|
|
13
|
+
* or retiring models between releases. Use `pnpm list:models`
|
|
14
|
+
* to discover available models from each provider.
|
|
15
|
+
*/
|
|
16
|
+
export const PROVIDER_MODELS = {
|
|
17
|
+
openai: ['gpt-5.4', 'gpt-5.4-pro', 'gpt-5.4-mini', 'gpt-5.4-nano'],
|
|
18
|
+
google: ['gemini-2.5-pro', 'gemini-2.5-flash'],
|
|
19
|
+
anthropic: ['claude-opus-4-6', 'claude-sonnet-4-6', 'claude-haiku-4-5-20251001'],
|
|
20
|
+
};
|
|
21
|
+
export const DEFAULT_MODELS = {
|
|
22
|
+
openai: 'gpt-5.4',
|
|
23
|
+
google: 'gemini-2.5-flash',
|
|
24
|
+
anthropic: 'claude-haiku-4-5-20251001',
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* Server configuration schema and functions. Note that these
|
|
28
|
+
* values are ONLY available on the server and NOT available
|
|
29
|
+
* at build time and therefore not available to the browser.
|
|
30
|
+
* Values here are populated via the projects's .env file
|
|
31
|
+
* which is NOT committed to the project's Git repo and
|
|
32
|
+
* CAN include secrets.
|
|
33
|
+
*/
|
|
34
|
+
const aiServerSchema = z.object({
|
|
35
|
+
ai: z.object({
|
|
36
|
+
defaultProvider: z.enum(['openai', 'google', 'anthropic']),
|
|
37
|
+
openai: z.object({
|
|
38
|
+
apiKey: z.string(),
|
|
39
|
+
baseUrl: z.string().optional(),
|
|
40
|
+
}),
|
|
41
|
+
google: z.object({
|
|
42
|
+
apiKey: z.string(),
|
|
43
|
+
baseUrl: z.string().optional(),
|
|
44
|
+
}),
|
|
45
|
+
anthropic: z.object({
|
|
46
|
+
apiKey: z.string(),
|
|
47
|
+
baseUrl: z.string().optional(),
|
|
48
|
+
}),
|
|
49
|
+
}),
|
|
50
|
+
});
|
|
51
|
+
const initServerConfig = () => aiServerSchema.parse({
|
|
52
|
+
ai: {
|
|
53
|
+
defaultProvider: process.env.AI_DEFAULT_PROVIDER || 'openai',
|
|
54
|
+
openai: {
|
|
55
|
+
apiKey: process.env.OPENAI_API_KEY || '',
|
|
56
|
+
baseUrl: process.env.OPENAI_BASE_URL || undefined,
|
|
57
|
+
},
|
|
58
|
+
google: {
|
|
59
|
+
apiKey: process.env.GOOGLE_API_KEY || '',
|
|
60
|
+
baseUrl: process.env.GOOGLE_BASE_URL || undefined,
|
|
61
|
+
},
|
|
62
|
+
anthropic: {
|
|
63
|
+
apiKey: process.env.ANTHROPIC_API_KEY || '',
|
|
64
|
+
baseUrl: process.env.ANTHROPIC_BASE_URL || undefined,
|
|
65
|
+
},
|
|
66
|
+
},
|
|
67
|
+
log: {
|
|
68
|
+
level: process.env.LOG_LEVEL ?? 'info',
|
|
69
|
+
pretty: process.env.LOG_PRETTY,
|
|
70
|
+
},
|
|
71
|
+
});
|
|
72
|
+
let cachedAiServerConfig;
|
|
73
|
+
export const getAiServerConfig = () => {
|
|
74
|
+
if (cachedAiServerConfig == null) {
|
|
75
|
+
cachedAiServerConfig = initServerConfig();
|
|
76
|
+
}
|
|
77
|
+
return cachedAiServerConfig;
|
|
78
|
+
};
|
|
79
|
+
/**
|
|
80
|
+
* Default path for the AI execute endpoint. Host adapters mount the
|
|
81
|
+
* actual handler at this path (or override via AiPublicConfigProvider).
|
|
82
|
+
*/
|
|
83
|
+
export const DEFAULT_AI_ENDPOINT = '/api/admin/ai';
|
|
84
|
+
/**
|
|
85
|
+
* Public configuration. These values are passed to the browser via
|
|
86
|
+
* <AiPublicConfigProvider> and read by the AI plugins. Must NOT contain
|
|
87
|
+
* secrets — only transport configuration.
|
|
88
|
+
*
|
|
89
|
+
* - `endpoint`: URL the plugins POST `ExecuteInstruction` to
|
|
90
|
+
* - `enabled`: when explicitly `false`, wrappers may hide AI affordances
|
|
91
|
+
* - `fetch`: optional fetch override (auth interceptors, tests, etc.)
|
|
92
|
+
* - `headers`: optional headers merged into every request
|
|
93
|
+
*/
|
|
94
|
+
const aiPublicSchema = z.object({
|
|
95
|
+
endpoint: z.string().default(DEFAULT_AI_ENDPOINT),
|
|
96
|
+
enabled: z.boolean().optional(),
|
|
97
|
+
});
|
|
98
|
+
const initAiPublicConfig = () => aiPublicSchema.parse({
|
|
99
|
+
endpoint: process.env.BYLINE_AI_ENDPOINT ?? DEFAULT_AI_ENDPOINT,
|
|
100
|
+
});
|
|
101
|
+
let cachedAiPublicConfig;
|
|
102
|
+
export const getAiPublicConfig = () => {
|
|
103
|
+
if (cachedAiPublicConfig == null) {
|
|
104
|
+
cachedAiPublicConfig = initAiPublicConfig();
|
|
105
|
+
}
|
|
106
|
+
return cachedAiPublicConfig;
|
|
107
|
+
};
|
|
108
|
+
//# sourceMappingURL=ai-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ai-config.js","sourceRoot":"","sources":["../../src/config/ai-config.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAIvB;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,eAAe,GAA+B;IACzD,MAAM,EAAE,CAAC,SAAS,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,CAAC;IAClE,MAAM,EAAE,CAAC,gBAAgB,EAAE,kBAAkB,CAAC;IAC9C,SAAS,EAAE,CAAC,iBAAiB,EAAE,mBAAmB,EAAE,2BAA2B,CAAC;CACjF,CAAA;AAED,MAAM,CAAC,MAAM,cAAc,GAA6B;IACtD,MAAM,EAAE,SAAS;IACjB,MAAM,EAAE,kBAAkB;IAC1B,SAAS,EAAE,2BAA2B;CACvC,CAAA;AAED;;;;;;;GAOG;AACH,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9B,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC;QACX,eAAe,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;QAC1D,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;YACf,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;YAClB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAC/B,CAAC;QACF,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;YACf,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;YAClB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAC/B,CAAC;QACF,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC;YAClB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;YAClB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAC/B,CAAC;KACH,CAAC;CACH,CAAC,CAAA;AAIF,MAAM,gBAAgB,GAAG,GAAmB,EAAE,CAC5C,cAAc,CAAC,KAAK,CAAC;IACnB,EAAE,EAAE;QACF,eAAe,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,QAAQ;QAC5D,MAAM,EAAE;YACN,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,EAAE;YACxC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,SAAS;SAClD;QACD,MAAM,EAAE;YACN,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,EAAE;YACxC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,SAAS;SAClD;QACD,SAAS,EAAE;YACT,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,EAAE;YAC3C,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,SAAS;SACrD;KACF;IACD,GAAG,EAAE;QACH,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,MAAM;QACtC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU;KAC/B;CACF,CAAC,CAAA;AAEJ,IAAI,oBAAoC,CAAA;AAExC,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAmB,EAAE;IACpD,IAAI,oBAAoB,IAAI,IAAI,EAAE,CAAC;QACjC,oBAAoB,GAAG,gBAAgB,EAAE,CAAA;IAC3C,CAAC;IACD,OAAO,oBAAoB,CAAA;AAC7B,CAAC,CAAA;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,eAAe,CAAA;AAElD;;;;;;;;;GASG;AACH,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,mBAAmB,CAAC;IACjD,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CAChC,CAAC,CAAA;AASF,MAAM,kBAAkB,GAAG,GAAsB,EAAE,CACjD,cAAc,CAAC,KAAK,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,mBAAmB;CAChE,CAAC,CAAA;AAEJ,IAAI,oBAAuC,CAAA;AAE3C,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAsB,EAAE;IACvD,IAAI,oBAAoB,IAAI,IAAI,EAAE,CAAC;QACjC,oBAAoB,GAAG,kBAAkB,EAAE,CAAA;IAC7C,CAAC;IACD,OAAO,oBAAoB,CAAA;AAC7B,CAAC,CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This Source Code is subject to the terms of the Mozilla Public
|
|
3
|
+
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
4
|
+
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
5
|
+
*
|
|
6
|
+
* Copyright (c) Infonomic Company Limited
|
|
7
|
+
*/
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=ai-config.test.node.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ai-config.test.node.d.ts","sourceRoot":"","sources":["../../src/config/ai-config.test.node.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This Source Code is subject to the terms of the Mozilla Public
|
|
3
|
+
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
4
|
+
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
5
|
+
*
|
|
6
|
+
* Copyright (c) Infonomic Company Limited
|
|
7
|
+
*/
|
|
8
|
+
import { describe, test } from 'vitest';
|
|
9
|
+
import { getAiServerConfig } from './ai-config';
|
|
10
|
+
describe('Config tests', () => {
|
|
11
|
+
// NOTE: Disable caching in getAiServerConfig for 'real'
|
|
12
|
+
// benchmarks
|
|
13
|
+
test.skip('should get config quickly', () => {
|
|
14
|
+
// Record the start time
|
|
15
|
+
const startTime = performance.now();
|
|
16
|
+
const iterations = 10000;
|
|
17
|
+
let _config;
|
|
18
|
+
for (let i = 0; i < iterations; i++) {
|
|
19
|
+
// const start = performance.now();
|
|
20
|
+
_config = getAiServerConfig();
|
|
21
|
+
// totalTime += performance.now() - start;
|
|
22
|
+
}
|
|
23
|
+
// Record the end time
|
|
24
|
+
const endTime = performance.now();
|
|
25
|
+
// Calculate the time taken
|
|
26
|
+
const timeTaken = endTime - startTime;
|
|
27
|
+
console.log(`Execution time: ${timeTaken}ms`);
|
|
28
|
+
// console.log(config)
|
|
29
|
+
});
|
|
30
|
+
});
|
|
31
|
+
//# sourceMappingURL=ai-config.test.node.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ai-config.test.node.js","sourceRoot":"","sources":["../../src/config/ai-config.test.node.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAEvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAE/C,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,wDAAwD;IACxD,aAAa;IACb,IAAI,CAAC,IAAI,CAAC,2BAA2B,EAAE,GAAG,EAAE;QAC1C,wBAAwB;QACxB,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAA;QACnC,MAAM,UAAU,GAAG,KAAK,CAAA;QACxB,IAAI,OAAY,CAAA;QAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;YACpC,mCAAmC;YACnC,OAAO,GAAG,iBAAiB,EAAE,CAAA;YAC7B,0CAA0C;QAC5C,CAAC;QAED,sBAAsB;QACtB,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,CAAA;QAEjC,2BAA2B;QAC3B,MAAM,SAAS,GAAG,OAAO,GAAG,SAAS,CAAA;QACrC,OAAO,CAAC,GAAG,CAAC,mBAAmB,SAAS,IAAI,CAAC,CAAA;QAC7C,sBAAsB;IACxB,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This Source Code is subject to the terms of the Mozilla Public
|
|
3
|
+
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
4
|
+
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
5
|
+
*
|
|
6
|
+
* Copyright (c) Infonomic Company Limited
|
|
7
|
+
*/
|
|
8
|
+
import { type ReactNode } from 'react';
|
|
9
|
+
import { type AiPublicConfig } from './ai-config';
|
|
10
|
+
export declare const AiPublicConfigContext: import("react").Context<AiPublicConfig | undefined>;
|
|
11
|
+
export declare const AiPublicConfigProvider: ({ config, children, }: {
|
|
12
|
+
config?: Partial<AiPublicConfig>;
|
|
13
|
+
children: ReactNode;
|
|
14
|
+
}) => import("react/jsx-runtime").JSX.Element;
|
|
15
|
+
export declare const useAiPublicConfig: () => AiPublicConfig;
|
|
16
|
+
export declare const useOptionalAiPublicConfig: () => AiPublicConfig | undefined;
|
|
17
|
+
//# sourceMappingURL=ai-provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ai-provider.d.ts","sourceRoot":"","sources":["../../src/config/ai-provider.tsx"],"names":[],"mappings":"AAEA;;;;;;GAMG;AAEH,OAAO,EAAiB,KAAK,SAAS,EAAuB,MAAM,OAAO,CAAA;AAE1E,OAAO,EAAE,KAAK,cAAc,EAAuB,MAAM,aAAa,CAAA;AAEtE,eAAO,MAAM,qBAAqB,qDAAuD,CAAA;AAEzF,eAAO,MAAM,sBAAsB,GAAI,uBAGpC;IACD,MAAM,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAA;IAChC,QAAQ,EAAE,SAAS,CAAA;CACpB,4CAaA,CAAA;AAED,eAAO,MAAM,iBAAiB,QAAO,cAMpC,CAAA;AAED,eAAO,MAAM,yBAAyB,QAAO,cAAc,GAAG,SAE7D,CAAA"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
/**
|
|
4
|
+
* This Source Code is subject to the terms of the Mozilla Public
|
|
5
|
+
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
6
|
+
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
7
|
+
*
|
|
8
|
+
* Copyright (c) Infonomic Company Limited
|
|
9
|
+
*/
|
|
10
|
+
import { createContext, useContext, useMemo } from 'react';
|
|
11
|
+
import { DEFAULT_AI_ENDPOINT } from './ai-config';
|
|
12
|
+
export const AiPublicConfigContext = createContext(undefined);
|
|
13
|
+
export const AiPublicConfigProvider = ({ config, children, }) => {
|
|
14
|
+
const resolved = useMemo(() => ({
|
|
15
|
+
endpoint: config?.endpoint ?? DEFAULT_AI_ENDPOINT,
|
|
16
|
+
enabled: config?.enabled,
|
|
17
|
+
fetch: config?.fetch,
|
|
18
|
+
headers: config?.headers,
|
|
19
|
+
}), [config?.endpoint, config?.enabled, config?.fetch, config?.headers]);
|
|
20
|
+
return (_jsx(AiPublicConfigContext.Provider, { value: resolved, children: children }));
|
|
21
|
+
};
|
|
22
|
+
export const useAiPublicConfig = () => {
|
|
23
|
+
const context = useContext(AiPublicConfigContext);
|
|
24
|
+
if (context != null) {
|
|
25
|
+
return context;
|
|
26
|
+
}
|
|
27
|
+
throw new Error('useAiPublicConfig must be used within an AiPublicConfigProvider');
|
|
28
|
+
};
|
|
29
|
+
export const useOptionalAiPublicConfig = () => {
|
|
30
|
+
return useContext(AiPublicConfigContext);
|
|
31
|
+
};
|
|
32
|
+
//# sourceMappingURL=ai-provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ai-provider.js","sourceRoot":"","sources":["../../src/config/ai-provider.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ;;;;;;GAMG;AAEH,OAAO,EAAE,aAAa,EAAkB,UAAU,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAE1E,OAAO,EAAuB,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAEtE,MAAM,CAAC,MAAM,qBAAqB,GAAG,aAAa,CAA6B,SAAS,CAAC,CAAA;AAEzF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,EACrC,MAAM,EACN,QAAQ,GAIT,EAAE,EAAE;IACH,MAAM,QAAQ,GAAG,OAAO,CACtB,GAAG,EAAE,CAAC,CAAC;QACL,QAAQ,EAAE,MAAM,EAAE,QAAQ,IAAI,mBAAmB;QACjD,OAAO,EAAE,MAAM,EAAE,OAAO;QACxB,KAAK,EAAE,MAAM,EAAE,KAAK;QACpB,OAAO,EAAE,MAAM,EAAE,OAAO;KACzB,CAAC,EACF,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CACpE,CAAA;IACD,OAAO,CACL,KAAC,qBAAqB,CAAC,QAAQ,IAAC,KAAK,EAAE,QAAQ,YAAG,QAAQ,GAAkC,CAC7F,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAmB,EAAE;IACpD,MAAM,OAAO,GAAG,UAAU,CAAC,qBAAqB,CAAC,CAAA;IACjD,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;QACpB,OAAO,OAAO,CAAA;IAChB,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAA;AACpF,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,yBAAyB,GAAG,GAA+B,EAAE;IACxE,OAAO,UAAU,CAAC,qBAAqB,CAAC,CAAA;AAC1C,CAAC,CAAA"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This Source Code is subject to the terms of the Mozilla Public
|
|
3
|
+
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
4
|
+
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
5
|
+
*
|
|
6
|
+
* Copyright (c) Infonomic Company Limited
|
|
7
|
+
*/
|
|
8
|
+
import type { ExecuteInstructionOptions, ExecuteInstructionParams, InstructionState } from './@types';
|
|
9
|
+
export declare function executeInstruction(params: ExecuteInstructionParams, options?: ExecuteInstructionOptions): Promise<InstructionState>;
|
|
10
|
+
export type ExecuteInstructionStreamingResult = {
|
|
11
|
+
text: AsyncIterable<string>;
|
|
12
|
+
final: Promise<InstructionState>;
|
|
13
|
+
};
|
|
14
|
+
export declare function executeInstructionStreaming(params: ExecuteInstructionParams, options?: ExecuteInstructionOptions): ExecuteInstructionStreamingResult;
|
|
15
|
+
//# sourceMappingURL=execute.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"execute.d.ts","sourceRoot":"","sources":["../src/execute.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAiBH,OAAO,KAAK,EACV,yBAAyB,EACzB,wBAAwB,EAGxB,gBAAgB,EAGjB,MAAM,UAAU,CAAA;AAsIjB,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,wBAAwB,EAChC,OAAO,CAAC,EAAE,yBAAyB,GAClC,OAAO,CAAC,gBAAgB,CAAC,CA8L3B;AAED,MAAM,MAAM,iCAAiC,GAAG;IAC9C,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;IAC3B,KAAK,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAA;CACjC,CAAA;AAED,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,wBAAwB,EAChC,OAAO,CAAC,EAAE,yBAAyB,GAClC,iCAAiC,CAsMnC"}
|