@rpascene/shared 0.30.8

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.
Files changed (177) hide show
  1. package/README.md +9 -0
  2. package/dist/es/baseDB.mjs +109 -0
  3. package/dist/es/build/copy-static.mjs +29 -0
  4. package/dist/es/common.mjs +37 -0
  5. package/dist/es/constants/example-code.mjs +202 -0
  6. package/dist/es/constants/index.mjs +74 -0
  7. package/dist/es/env/basic.mjs +6 -0
  8. package/dist/es/env/constants.mjs +97 -0
  9. package/dist/es/env/decide-model-config.mjs +172 -0
  10. package/dist/es/env/global-config-manager.mjs +82 -0
  11. package/dist/es/env/helper.mjs +45 -0
  12. package/dist/es/env/index.mjs +5 -0
  13. package/dist/es/env/init-debug.mjs +18 -0
  14. package/dist/es/env/model-config-manager.mjs +99 -0
  15. package/dist/es/env/parse.mjs +69 -0
  16. package/dist/es/env/types.mjs +265 -0
  17. package/dist/es/env/utils.mjs +18 -0
  18. package/dist/es/extractor/constants.mjs +2 -0
  19. package/dist/es/extractor/cs_postmessage.mjs +61 -0
  20. package/dist/es/extractor/customLocator.mjs +646 -0
  21. package/dist/es/extractor/debug.mjs +6 -0
  22. package/dist/es/extractor/dom-util.mjs +92 -0
  23. package/dist/es/extractor/index.mjs +7 -0
  24. package/dist/es/extractor/locator.mjs +95 -0
  25. package/dist/es/extractor/tree.mjs +81 -0
  26. package/dist/es/extractor/util.mjs +244 -0
  27. package/dist/es/extractor/web-extractor.mjs +361 -0
  28. package/dist/es/img/box-select.mjs +184 -0
  29. package/dist/es/img/draw-box.mjs +42 -0
  30. package/dist/es/img/get-jimp.mjs +10 -0
  31. package/dist/es/img/get-photon.mjs +19 -0
  32. package/dist/es/img/get-sharp.mjs +11 -0
  33. package/dist/es/img/index.mjs +5 -0
  34. package/dist/es/img/info.mjs +32 -0
  35. package/dist/es/img/transform.mjs +192 -0
  36. package/dist/es/index.mjs +3 -0
  37. package/dist/es/logger.mjs +61 -0
  38. package/dist/es/node/fs.mjs +44 -0
  39. package/dist/es/node/index.mjs +1 -0
  40. package/dist/es/polyfills/async-hooks.mjs +2 -0
  41. package/dist/es/polyfills/index.mjs +1 -0
  42. package/dist/es/types/index.mjs +3 -0
  43. package/dist/es/us-keyboard-layout.mjs +1414 -0
  44. package/dist/es/us-keyboard-layout.mjs.LICENSE.txt +5 -0
  45. package/dist/es/utils.mjs +66 -0
  46. package/dist/lib/baseDB.js +149 -0
  47. package/dist/lib/build/copy-static.js +77 -0
  48. package/dist/lib/common.js +93 -0
  49. package/dist/lib/constants/example-code.js +239 -0
  50. package/dist/lib/constants/index.js +153 -0
  51. package/dist/lib/env/basic.js +40 -0
  52. package/dist/lib/env/constants.js +143 -0
  53. package/dist/lib/env/decide-model-config.js +212 -0
  54. package/dist/lib/env/global-config-manager.js +116 -0
  55. package/dist/lib/env/helper.js +85 -0
  56. package/dist/lib/env/index.js +94 -0
  57. package/dist/lib/env/init-debug.js +52 -0
  58. package/dist/lib/env/model-config-manager.js +133 -0
  59. package/dist/lib/env/parse.js +106 -0
  60. package/dist/lib/env/types.js +650 -0
  61. package/dist/lib/env/utils.js +61 -0
  62. package/dist/lib/extractor/constants.js +42 -0
  63. package/dist/lib/extractor/cs_postmessage.js +98 -0
  64. package/dist/lib/extractor/customLocator.js +698 -0
  65. package/dist/lib/extractor/debug.js +12 -0
  66. package/dist/lib/extractor/dom-util.js +150 -0
  67. package/dist/lib/extractor/index.js +153 -0
  68. package/dist/lib/extractor/locator.js +141 -0
  69. package/dist/lib/extractor/tree.js +127 -0
  70. package/dist/lib/extractor/util.js +335 -0
  71. package/dist/lib/extractor/web-extractor.js +407 -0
  72. package/dist/lib/img/box-select.js +232 -0
  73. package/dist/lib/img/draw-box.js +89 -0
  74. package/dist/lib/img/get-jimp.js +72 -0
  75. package/dist/lib/img/get-photon.js +76 -0
  76. package/dist/lib/img/get-sharp.js +63 -0
  77. package/dist/lib/img/index.js +102 -0
  78. package/dist/lib/img/info.js +86 -0
  79. package/dist/lib/img/transform.js +279 -0
  80. package/dist/lib/index.js +43 -0
  81. package/dist/lib/logger.js +114 -0
  82. package/dist/lib/node/fs.js +97 -0
  83. package/dist/lib/node/index.js +60 -0
  84. package/dist/lib/polyfills/async-hooks.js +36 -0
  85. package/dist/lib/polyfills/index.js +60 -0
  86. package/dist/lib/types/index.js +37 -0
  87. package/dist/lib/us-keyboard-layout.js +1457 -0
  88. package/dist/lib/us-keyboard-layout.js.LICENSE.txt +5 -0
  89. package/dist/lib/utils.js +136 -0
  90. package/dist/types/baseDB.d.ts +25 -0
  91. package/dist/types/build/copy-static.d.ts +31 -0
  92. package/dist/types/common.d.ts +12 -0
  93. package/dist/types/constants/example-code.d.ts +2 -0
  94. package/dist/types/constants/index.d.ts +23 -0
  95. package/dist/types/env/basic.d.ts +6 -0
  96. package/dist/types/env/constants.d.ts +40 -0
  97. package/dist/types/env/decide-model-config.d.ts +14 -0
  98. package/dist/types/env/global-config-manager.d.ts +32 -0
  99. package/dist/types/env/helper.d.ts +6 -0
  100. package/dist/types/env/index.d.ts +4 -0
  101. package/dist/types/env/init-debug.d.ts +1 -0
  102. package/dist/types/env/model-config-manager.d.ts +24 -0
  103. package/dist/types/env/parse.d.ts +12 -0
  104. package/dist/types/env/types.d.ts +295 -0
  105. package/dist/types/env/utils.d.ts +7 -0
  106. package/dist/types/extractor/constants.d.ts +1 -0
  107. package/dist/types/extractor/cs_postmessage.d.ts +2 -0
  108. package/dist/types/extractor/customLocator.d.ts +69 -0
  109. package/dist/types/extractor/debug.d.ts +1 -0
  110. package/dist/types/extractor/dom-util.d.ts +26 -0
  111. package/dist/types/extractor/index.d.ts +36 -0
  112. package/dist/types/extractor/locator.d.ts +7 -0
  113. package/dist/types/extractor/tree.d.ts +9 -0
  114. package/dist/types/extractor/util.d.ts +43 -0
  115. package/dist/types/extractor/web-extractor.d.ts +19 -0
  116. package/dist/types/img/box-select.d.ts +25 -0
  117. package/dist/types/img/draw-box.d.ts +15 -0
  118. package/dist/types/img/get-jimp.d.ts +2 -0
  119. package/dist/types/img/get-photon.d.ts +8 -0
  120. package/dist/types/img/get-sharp.d.ts +3 -0
  121. package/dist/types/img/index.d.ts +4 -0
  122. package/dist/types/img/info.d.ts +29 -0
  123. package/dist/types/img/transform.d.ts +88 -0
  124. package/dist/types/index.d.ts +3 -0
  125. package/dist/types/logger.d.ts +4 -0
  126. package/dist/types/node/fs.d.ts +15 -0
  127. package/dist/types/node/index.d.ts +1 -0
  128. package/dist/types/polyfills/async-hooks.d.ts +6 -0
  129. package/dist/types/polyfills/index.d.ts +4 -0
  130. package/dist/types/types/index.d.ts +37 -0
  131. package/dist/types/us-keyboard-layout.d.ts +32 -0
  132. package/dist/types/utils.d.ts +22 -0
  133. package/package.json +102 -0
  134. package/src/baseDB.ts +158 -0
  135. package/src/build/copy-static.ts +62 -0
  136. package/src/common.ts +67 -0
  137. package/src/constants/example-code.ts +202 -0
  138. package/src/constants/index.ts +81 -0
  139. package/src/env/basic.ts +12 -0
  140. package/src/env/constants.ts +291 -0
  141. package/src/env/decide-model-config.ts +319 -0
  142. package/src/env/global-config-manager.ts +174 -0
  143. package/src/env/helper.ts +80 -0
  144. package/src/env/index.ts +4 -0
  145. package/src/env/init-debug.ts +29 -0
  146. package/src/env/model-config-manager.ts +145 -0
  147. package/src/env/parse.ts +131 -0
  148. package/src/env/types.ts +573 -0
  149. package/src/env/utils.ts +39 -0
  150. package/src/extractor/constants.ts +5 -0
  151. package/src/extractor/cs_postmessage.ts +101 -0
  152. package/src/extractor/customLocator.ts +1138 -0
  153. package/src/extractor/debug.ts +10 -0
  154. package/src/extractor/dom-util.ts +141 -0
  155. package/src/extractor/index.ts +54 -0
  156. package/src/extractor/locator.ts +179 -0
  157. package/src/extractor/tree.ts +179 -0
  158. package/src/extractor/util.ts +468 -0
  159. package/src/extractor/web-extractor.ts +559 -0
  160. package/src/img/box-select.ts +346 -0
  161. package/src/img/draw-box.ts +60 -0
  162. package/src/img/get-jimp.ts +12 -0
  163. package/src/img/get-photon.ts +48 -0
  164. package/src/img/get-sharp.ts +18 -0
  165. package/src/img/index.ts +24 -0
  166. package/src/img/info.ts +79 -0
  167. package/src/img/jimp.d.ts +4 -0
  168. package/src/img/transform.ts +396 -0
  169. package/src/index.ts +6 -0
  170. package/src/logger.ts +93 -0
  171. package/src/node/fs.ts +84 -0
  172. package/src/node/index.ts +1 -0
  173. package/src/polyfills/async-hooks.ts +6 -0
  174. package/src/polyfills/index.ts +4 -0
  175. package/src/types/index.ts +53 -0
  176. package/src/us-keyboard-layout.ts +723 -0
  177. package/src/utils.ts +127 -0
@@ -0,0 +1,202 @@
1
+ export const PLAYWRIGHT_EXAMPLE_CODE = `
2
+ // Reference the following code to generate Rpascene test cases
3
+ // The following is test code for Rpascene AI, for reference
4
+ // The following is Playwright syntax, you can use Playwright to assist in test generation
5
+ IMPORTANT: Follow these exact type signatures for AI functions:
6
+
7
+ // Type signatures for AI functions:
8
+ aiInput(value: string, locator: string): Promise<void>
9
+ aiTap(locator: string): Promise<void>
10
+ aiDoubleClick(locator: string): Promise<void>
11
+ aiScroll(scrollParam: {
12
+ direction: 'up' | 'down' | 'left' | 'right',
13
+ scrollType: 'once' | 'untilBottom' | 'untilTop' | 'untilRight' | 'untilLeft',
14
+ distance: number - scroll distance, px is the unit
15
+ }): Promise<void>
16
+ aiAssert(assertion: string): Promise<void>
17
+ aiQuery<T>(queryObject: Record<string, string>): Promise<T> // Extracts data from page based on descriptions
18
+
19
+ // examples:
20
+ // Reference the following code to generate Rpascene test cases
21
+ // The following is test code for Rpascene AI, for reference
22
+ // The following is Playwright syntax, you can use Playwright to assist in test generation
23
+ import { test as base } from '@playwright/test';
24
+ import type { PlayWrightAiFixtureType } from '@rpascene/web/playwright';
25
+ import { PlaywrightAiFixture } from '@rpascene/web/playwright';
26
+
27
+ const test = base.extend<PlayWrightAiFixtureType>(PlaywrightAiFixture({
28
+ waitForNetworkIdleTimeout: 2000, // optional, the timeout for waiting for network idle between each action, default is 2000ms
29
+ }));
30
+
31
+
32
+ test.beforeEach(async ({ page }) => {
33
+ await page.goto('https://www.xxx.com/');
34
+ await page.setViewportSize({ width: 1920, height: 1080 });
35
+ });
36
+
37
+ test('ai shop', async ({
38
+ aiInput,
39
+ aiAssert,
40
+ aiQuery,
41
+ aiKeyboardPress,
42
+ aiHover,
43
+ aiTap,
44
+ agentForPage,
45
+ page,
46
+ }) => {
47
+ // login
48
+ await aiAssert('The page shows the login interface');
49
+ await aiInput('user_name', 'in user name input');
50
+ await aiInput('password', 'in password input');
51
+ await aiKeyboardPress('Enter', 'Login Button');
52
+
53
+ // check the login success
54
+ await aiWaitFor('The page shows that the loading is complete');
55
+ await aiAssert('The current page shows the product detail page');
56
+
57
+ // check the product info
58
+ const dataA = await aiQuery({
59
+ userInfo: 'User information in the format {name: string}',
60
+ theFirstProductInfo: 'The first product info in the format {name: string, price: number}',
61
+ });
62
+ expect(dataA.theFirstProductInfo.name).toBe('xxx');
63
+ expect(dataA.theFirstProductInfo.price).toBe(100);
64
+
65
+
66
+ // add to cart
67
+ await aiTap('click add to cart button');
68
+
69
+ await aiTap('click right top cart icon');
70
+ await aiAssert('The cart icon shows the number 1');
71
+ });
72
+ `;
73
+
74
+ export const YAML_EXAMPLE_CODE = `
75
+ 1. Format:
76
+
77
+ web:
78
+ url: "starting_url"
79
+ viewportWidth: 1280
80
+ viewportHeight: 960
81
+
82
+ tasks:
83
+ - name: "descriptive task name"
84
+ flow:
85
+ - aiTap: "element description"
86
+ - aiInput: 'text value'
87
+ locate: 'input field description'
88
+ - aiScroll:
89
+ direction: down/up
90
+ scrollType: untilBottom/untilTop/page
91
+ - aiAssert: "expected state"
92
+ - sleep: milliseconds
93
+
94
+ 2. Action Types:
95
+ - aiTap: for clicks (natural language targeting)
96
+ - aiInput: for text input with 'locate' field
97
+ - aiScroll: with direction and scrollType
98
+ - aiAssert: for validations
99
+ - sleep: for delays (milliseconds)
100
+
101
+ 3. Best Practices:
102
+ - Group related actions into logical tasks
103
+ - Use natural language descriptions
104
+ - Add deepThink: true for complex interactions
105
+ - Keep task names concise but descriptive
106
+
107
+
108
+
109
+ YAML type
110
+ tasks:
111
+ - name: <name>
112
+ continueOnError: <boolean> # Optional, whether to continue to the next task on error, defaults to false.
113
+ flow:
114
+ # Auto Planning (.ai)
115
+ # ----------------
116
+
117
+ # Perform an interaction. \`ai\` is a shorthand for \`aiAction\`.
118
+ - ai: <prompt>
119
+ cacheable: <boolean> # Optional, whether to cache the result of this API call when the [caching feature](./caching.mdx) is enabled. Defaults to True.
120
+
121
+ # This usage is the same as \`ai\`.
122
+ - aiAction: <prompt>
123
+ cacheable: <boolean> # Optional, whether to cache the result of this API call when the [caching feature](./caching.mdx) is enabled. Defaults to True.
124
+
125
+ # Instant Action (.aiTap, .aiDoubleClick, .aiHover, .aiInput, .aiKeyboardPress, .aiScroll)
126
+ # ----------------
127
+
128
+ # Tap an element described by a prompt.
129
+ - aiTap: <prompt>
130
+ deepThink: <boolean> # Optional, whether to use deepThink to precisely locate the element. Defaults to False.
131
+ xpath: <xpath> # Optional, the xpath of the target element for the operation. If provided, Rpascene will prioritize this xpath to find the element before using the cache and the AI model. Defaults to empty.
132
+ cacheable: <boolean> # Optional, whether to cache the result of this API call when the [caching feature](./caching.mdx) is enabled. Defaults to True.
133
+
134
+ # Double click an element described by a prompt.
135
+ - aiDoubleClick: <prompt>
136
+ deepThink: <boolean> # Optional, whether to use deepThink to precisely locate the element. Defaults to False.
137
+ xpath: <xpath> # Optional, the xpath of the target element for the operation. If provided, Rpascene will prioritize this xpath to find the element before using the cache and the AI model. Defaults to empty.
138
+ cacheable: <boolean> # Optional, whether to cache the result of this API call when the [caching feature](./caching.mdx) is enabled. Defaults to True.
139
+
140
+ # Hover over an element described by a prompt.
141
+ - aiHover: <prompt>
142
+ deepThink: <boolean> # Optional, whether to use deepThink to precisely locate the element. Defaults to False.
143
+ xpath: <xpath> # Optional, the xpath of the target element for the operation. If provided, Rpascene will prioritize this xpath to find the element before using the cache and the AI model. Defaults to empty.
144
+ cacheable: <boolean> # Optional, whether to cache the result of this API call when the [caching feature](./caching.mdx) is enabled. Defaults to True.
145
+
146
+ # Input text into an element described by a prompt.
147
+ - aiInput: <final text content of the input>
148
+ locate: <prompt>
149
+ deepThink: <boolean> # Optional, whether to use deepThink to precisely locate the element. Defaults to False.
150
+ xpath: <xpath> # Optional, the xpath of the target element for the operation. If provided, Rpascene will prioritize this xpath to find the element before using the cache and the AI model. Defaults to empty.
151
+ cacheable: <boolean> # Optional, whether to cache the result of this API call when the [caching feature](./caching.mdx) is enabled. Defaults to True.
152
+
153
+ # Press a key (e.g., Enter, Tab, Escape) on an element described by a prompt.
154
+ - aiKeyboardPress: <key>
155
+ locate: <prompt>
156
+ deepThink: <boolean> # Optional, whether to use deepThink to precisely locate the element. Defaults to False.
157
+ xpath: <xpath> # Optional, the xpath of the target element for the operation. If provided, Rpascene will prioritize this xpath to find the element before using the cache and the AI model. Defaults to empty.
158
+ cacheable: <boolean> # Optional, whether to cache the result of this API call when the [caching feature](./caching.mdx) is enabled. Defaults to True.
159
+
160
+ # Scroll globally or on an element described by a prompt.
161
+ - aiScroll:
162
+ direction: 'up' # or 'down' | 'left' | 'right'
163
+ scrollType: 'once' # or 'untilTop' | 'untilBottom' | 'untilLeft' | 'untilRight'
164
+ distance: <number> # Optional, the scroll distance in pixels.
165
+ locate: <prompt> # Optional, the element to scroll on.
166
+ deepThink: <boolean> # Optional, whether to use deepThink to precisely locate the element. Defaults to False.
167
+ xpath: <xpath> # Optional, the xpath of the target element for the operation. If provided, Rpascene will prioritize this xpath to find the element before using the cache and the AI model. Defaults to empty.
168
+ cacheable: <boolean> # Optional, whether to cache the result of this API call when the [caching feature](./caching.mdx) is enabled. Defaults to True.
169
+
170
+ # Log the current screenshot with a description in the report file.
171
+ - logScreenshot: <title> # Optional, the title of the screenshot. If not provided, the title will be 'untitled'.
172
+ content: <content> # Optional, the description of the screenshot.
173
+
174
+ # Data Extraction
175
+ # ----------------
176
+
177
+ # Perform a query that returns a JSON object.
178
+ - aiQuery: <prompt> # Remember to describe the format of the result in the prompt.
179
+ name: <name> # The key for the query result in the JSON output.
180
+
181
+ # More APIs
182
+ # ----------------
183
+
184
+ # Wait for a condition to be met, with a timeout (in ms, optional, defaults to 30000).
185
+ - aiWaitFor: <prompt>
186
+ timeout: <ms>
187
+
188
+ # Perform an assertion.
189
+ - aiAssert: <prompt>
190
+ errorMessage: <error-message> # Optional, the error message to print if the assertion fails.
191
+
192
+ # Wait for a specified amount of time.
193
+ - sleep: <ms>
194
+
195
+ # Execute a piece of JavaScript code in the web page context.
196
+ - javascript: <javascript>
197
+ name: <name> # Optional, assign a name to the return value, which will be used as a key in the JSON output.
198
+
199
+ - name: <name>
200
+ flow:
201
+ # ...
202
+ `;
@@ -0,0 +1,81 @@
1
+ export const TEXT_SIZE_THRESHOLD = 9;
2
+
3
+ export const TEXT_MAX_SIZE = 40;
4
+
5
+ export const CONTAINER_MINI_HEIGHT = 3;
6
+ export const CONTAINER_MINI_WIDTH = 3;
7
+
8
+ export enum NodeType {
9
+ CONTAINER = 'CONTAINER Node',
10
+ FORM_ITEM = 'FORM_ITEM Node',
11
+ BUTTON = 'BUTTON Node',
12
+ A = 'Anchor Node',
13
+ IMG = 'IMG Node',
14
+ TEXT = 'TEXT Node',
15
+ POSITION = 'POSITION Node',
16
+ }
17
+
18
+ export const PLAYGROUND_SERVER_PORT = 5800;
19
+ export const SCRCPY_SERVER_PORT = 5700;
20
+
21
+ // WebDriver constants
22
+ export const WEBDRIVER_ELEMENT_ID_KEY = 'element-6066-11e4-a52e-4f735466cecf';
23
+ export const DEFAULT_WDA_PORT = 8100;
24
+
25
+ export const DEFAULT_WAIT_FOR_NAVIGATION_TIMEOUT = 5000;
26
+ export const DEFAULT_WAIT_FOR_NETWORK_IDLE_TIMEOUT = 2000;
27
+ export const DEFAULT_WAIT_FOR_NETWORK_IDLE_TIME = 300;
28
+ export const DEFAULT_WAIT_FOR_NETWORK_IDLE_CONCURRENCY = 2;
29
+
30
+ export { PLAYWRIGHT_EXAMPLE_CODE, YAML_EXAMPLE_CODE } from './example-code';
31
+
32
+ export const commandMap: any = {
33
+ Tap: {
34
+ CommandName: "SeleniumClickCommand",
35
+ DisplayName: '元素点击'
36
+ },
37
+ RightClick: {
38
+ CommandName: "SeleniumRightClickCommand",
39
+ DisplayName: "元素右键点击"
40
+ },
41
+ DoubleClick: {
42
+ CommandName: "SeleniumDoubleClickCommand",
43
+ DisplayName: "元素双击"
44
+ },
45
+ Hover: {
46
+ CommandName: "SeleniumMouseHoverCommand",
47
+ DisplayName: "鼠标悬停"
48
+ },
49
+ Input: {
50
+ CommandName: "SeleniumSetTextCommand",
51
+ DisplayName: "设置文本"
52
+ },
53
+ KeyboardPress: {
54
+ CommandName: "SeleniumSendKeysCommand",
55
+ DisplayName: "模拟按键"
56
+ },
57
+ Scroll: {
58
+ CommandName: "SeleniumElementScrollCommand",
59
+ DisplayName: "元素滚动"
60
+ },
61
+ DragAndDrop: {
62
+ CommandName: "SeleniumDragDropCommand",
63
+ DisplayName: "元素拖拽(至指定元素)"
64
+ },
65
+ ClearInput: {
66
+ CommandName: "SeleniumClearTextCommand",
67
+ DisplayName: "清空文本"
68
+ },
69
+ Sleep: {
70
+ CommandName: "SeleniumPauseCommand",
71
+ DisplayName: "暂停脚本"
72
+ },
73
+ LongPress: {
74
+ CommandName: "SeleniumSendKeysCommand",
75
+ DisplayName: "模拟按键"
76
+ },
77
+ Swipe: {
78
+ CommandName: "SeleniumClickCommand",
79
+ DisplayName: "元素点击"
80
+ },
81
+ }
@@ -0,0 +1,12 @@
1
+ import { BASIC_ENV_KEYS } from './types';
2
+
3
+ /**
4
+ * get basic env value from process.env
5
+ * use a single file to avoid circular dependency
6
+ */
7
+ export const getBasicEnvValue = (key: (typeof BASIC_ENV_KEYS)[number]) => {
8
+ if (!BASIC_ENV_KEYS.includes(key)) {
9
+ throw new Error(`getBasicEnvValue with key ${key} is not supported.`);
10
+ }
11
+ return process.env[key];
12
+ };
@@ -0,0 +1,291 @@
1
+ import {
2
+ ANTHROPIC_API_KEY,
3
+ AZURE_OPENAI_API_VERSION,
4
+ AZURE_OPENAI_DEPLOYMENT,
5
+ AZURE_OPENAI_ENDPOINT,
6
+ AZURE_OPENAI_KEY,
7
+ RPASCENE_ANTHROPIC_API_KEY,
8
+ RPASCENE_AZURE_OPENAI_API_VERSION,
9
+ RPASCENE_AZURE_OPENAI_DEPLOYMENT,
10
+ RPASCENE_AZURE_OPENAI_ENDPOINT,
11
+ RPASCENE_AZURE_OPENAI_INIT_CONFIG_JSON,
12
+ RPASCENE_AZURE_OPENAI_KEY,
13
+ RPASCENE_AZURE_OPENAI_SCOPE,
14
+ RPASCENE_GROUNDING_ANTHROPIC_API_KEY,
15
+ RPASCENE_GROUNDING_AZURE_OPENAI_API_VERSION,
16
+ RPASCENE_GROUNDING_AZURE_OPENAI_DEPLOYMENT,
17
+ RPASCENE_GROUNDING_AZURE_OPENAI_ENDPOINT,
18
+ RPASCENE_GROUNDING_AZURE_OPENAI_INIT_CONFIG_JSON,
19
+ RPASCENE_GROUNDING_AZURE_OPENAI_KEY,
20
+ RPASCENE_GROUNDING_AZURE_OPENAI_SCOPE,
21
+ RPASCENE_GROUNDING_MODEL_NAME,
22
+ RPASCENE_GROUNDING_OPENAI_API_KEY,
23
+ RPASCENE_GROUNDING_OPENAI_BASE_URL,
24
+ RPASCENE_GROUNDING_OPENAI_HTTP_PROXY,
25
+ RPASCENE_GROUNDING_OPENAI_INIT_CONFIG_JSON,
26
+ RPASCENE_GROUNDING_OPENAI_SOCKS_PROXY,
27
+ RPASCENE_GROUNDING_OPENAI_USE_AZURE,
28
+ RPASCENE_GROUNDING_USE_ANTHROPIC_SDK,
29
+ RPASCENE_GROUNDING_USE_AZURE_OPENAI,
30
+ RPASCENE_GROUNDING_VL_MODE,
31
+ RPASCENE_MODEL_NAME,
32
+ RPASCENE_OPENAI_API_KEY,
33
+ RPASCENE_OPENAI_BASE_URL,
34
+ RPASCENE_OPENAI_HTTP_PROXY,
35
+ RPASCENE_OPENAI_INIT_CONFIG_JSON,
36
+ RPASCENE_OPENAI_SOCKS_PROXY,
37
+ RPASCENE_OPENAI_USE_AZURE,
38
+ RPASCENE_PLANNING_ANTHROPIC_API_KEY,
39
+ RPASCENE_PLANNING_AZURE_OPENAI_API_VERSION,
40
+ RPASCENE_PLANNING_AZURE_OPENAI_DEPLOYMENT,
41
+ RPASCENE_PLANNING_AZURE_OPENAI_ENDPOINT,
42
+ RPASCENE_PLANNING_AZURE_OPENAI_INIT_CONFIG_JSON,
43
+ RPASCENE_PLANNING_AZURE_OPENAI_KEY,
44
+ RPASCENE_PLANNING_AZURE_OPENAI_SCOPE,
45
+ RPASCENE_PLANNING_MODEL_NAME,
46
+ RPASCENE_PLANNING_OPENAI_API_KEY,
47
+ RPASCENE_PLANNING_OPENAI_BASE_URL,
48
+ RPASCENE_PLANNING_OPENAI_HTTP_PROXY,
49
+ RPASCENE_PLANNING_OPENAI_INIT_CONFIG_JSON,
50
+ RPASCENE_PLANNING_OPENAI_SOCKS_PROXY,
51
+ RPASCENE_PLANNING_OPENAI_USE_AZURE,
52
+ RPASCENE_PLANNING_USE_ANTHROPIC_SDK,
53
+ RPASCENE_PLANNING_USE_AZURE_OPENAI,
54
+ RPASCENE_PLANNING_VL_MODE,
55
+ RPASCENE_USE_ANTHROPIC_SDK,
56
+ RPASCENE_USE_AZURE_OPENAI,
57
+ RPASCENE_VL_MODE,
58
+ RPASCENE_VQA_ANTHROPIC_API_KEY,
59
+ RPASCENE_VQA_AZURE_OPENAI_API_VERSION,
60
+ RPASCENE_VQA_AZURE_OPENAI_DEPLOYMENT,
61
+ RPASCENE_VQA_AZURE_OPENAI_ENDPOINT,
62
+ RPASCENE_VQA_AZURE_OPENAI_INIT_CONFIG_JSON,
63
+ RPASCENE_VQA_AZURE_OPENAI_KEY,
64
+ RPASCENE_VQA_AZURE_OPENAI_SCOPE,
65
+ // VQA
66
+ RPASCENE_VQA_MODEL_NAME,
67
+ RPASCENE_VQA_OPENAI_API_KEY,
68
+ RPASCENE_VQA_OPENAI_BASE_URL,
69
+ RPASCENE_VQA_OPENAI_HTTP_PROXY,
70
+ RPASCENE_VQA_OPENAI_INIT_CONFIG_JSON,
71
+ RPASCENE_VQA_OPENAI_SOCKS_PROXY,
72
+ RPASCENE_VQA_OPENAI_USE_AZURE,
73
+ RPASCENE_VQA_USE_ANTHROPIC_SDK,
74
+ RPASCENE_VQA_USE_AZURE_OPENAI,
75
+ RPASCENE_VQA_VL_MODE,
76
+ OPENAI_API_KEY,
77
+ OPENAI_BASE_URL,
78
+ OPENAI_USE_AZURE,
79
+ } from './types';
80
+
81
+ interface IModelConfigKeys {
82
+ modelName: string;
83
+ /**
84
+ * proxy
85
+ */
86
+ socksProxy: string;
87
+ httpProxy: string;
88
+ /**
89
+ * OpenAI
90
+ */
91
+ openaiBaseURL: string;
92
+ openaiApiKey: string;
93
+ openaiExtraConfig: string;
94
+ /**
95
+ * Azure
96
+ */
97
+ openaiUseAzureDeprecated: string;
98
+ useAzureOpenai: string;
99
+ azureOpenaiScope: string;
100
+ azureOpenaiKey: string;
101
+ azureOpenaiEndpoint: string;
102
+ azureOpenaiApiVersion: string;
103
+ azureOpenaiDeployment: string;
104
+ azureExtraConfig: string;
105
+ /**
106
+ * Anthropic
107
+ */
108
+ useAnthropicSdk: string;
109
+ anthropicApiKey: string;
110
+ /**
111
+ * Extra
112
+ */
113
+ vlMode: string;
114
+ }
115
+
116
+ export const VQA_MODEL_CONFIG_KEYS: IModelConfigKeys = {
117
+ modelName: RPASCENE_VQA_MODEL_NAME,
118
+ /**
119
+ * proxy
120
+ */
121
+ socksProxy: RPASCENE_VQA_OPENAI_SOCKS_PROXY,
122
+ httpProxy: RPASCENE_VQA_OPENAI_HTTP_PROXY,
123
+ /**
124
+ * OpenAI
125
+ */
126
+ openaiBaseURL: RPASCENE_VQA_OPENAI_BASE_URL,
127
+ openaiApiKey: RPASCENE_VQA_OPENAI_API_KEY,
128
+ openaiExtraConfig: RPASCENE_VQA_OPENAI_INIT_CONFIG_JSON,
129
+ /**
130
+ * Azure
131
+ */
132
+ openaiUseAzureDeprecated: RPASCENE_VQA_OPENAI_USE_AZURE,
133
+ useAzureOpenai: RPASCENE_VQA_USE_AZURE_OPENAI,
134
+ azureOpenaiScope: RPASCENE_VQA_AZURE_OPENAI_SCOPE,
135
+ azureOpenaiKey: RPASCENE_VQA_AZURE_OPENAI_KEY,
136
+ azureOpenaiEndpoint: RPASCENE_VQA_AZURE_OPENAI_ENDPOINT,
137
+ azureOpenaiApiVersion: RPASCENE_VQA_AZURE_OPENAI_API_VERSION,
138
+ azureOpenaiDeployment: RPASCENE_VQA_AZURE_OPENAI_DEPLOYMENT,
139
+ azureExtraConfig: RPASCENE_VQA_AZURE_OPENAI_INIT_CONFIG_JSON,
140
+ /**
141
+ * Anthropic
142
+ */
143
+ useAnthropicSdk: RPASCENE_VQA_USE_ANTHROPIC_SDK,
144
+ anthropicApiKey: RPASCENE_VQA_ANTHROPIC_API_KEY,
145
+ /**
146
+ * Extra
147
+ */
148
+ vlMode: RPASCENE_VQA_VL_MODE,
149
+ } as const;
150
+
151
+ export const GROUNDING_MODEL_CONFIG_KEYS: IModelConfigKeys = {
152
+ modelName: RPASCENE_GROUNDING_MODEL_NAME,
153
+ /**
154
+ * proxy
155
+ */
156
+ socksProxy: RPASCENE_GROUNDING_OPENAI_SOCKS_PROXY,
157
+ httpProxy: RPASCENE_GROUNDING_OPENAI_HTTP_PROXY,
158
+ /**
159
+ * OpenAI
160
+ */
161
+ openaiBaseURL: RPASCENE_GROUNDING_OPENAI_BASE_URL,
162
+ openaiApiKey: RPASCENE_GROUNDING_OPENAI_API_KEY,
163
+ openaiExtraConfig: RPASCENE_GROUNDING_OPENAI_INIT_CONFIG_JSON,
164
+ /**
165
+ * Azure
166
+ */
167
+ openaiUseAzureDeprecated: RPASCENE_GROUNDING_OPENAI_USE_AZURE,
168
+ useAzureOpenai: RPASCENE_GROUNDING_USE_AZURE_OPENAI,
169
+ azureOpenaiScope: RPASCENE_GROUNDING_AZURE_OPENAI_SCOPE,
170
+ azureOpenaiKey: RPASCENE_GROUNDING_AZURE_OPENAI_KEY,
171
+ azureOpenaiEndpoint: RPASCENE_GROUNDING_AZURE_OPENAI_ENDPOINT,
172
+ azureOpenaiApiVersion: RPASCENE_GROUNDING_AZURE_OPENAI_API_VERSION,
173
+ azureOpenaiDeployment: RPASCENE_GROUNDING_AZURE_OPENAI_DEPLOYMENT,
174
+ azureExtraConfig: RPASCENE_GROUNDING_AZURE_OPENAI_INIT_CONFIG_JSON,
175
+ /**
176
+ * Anthropic
177
+ */
178
+ useAnthropicSdk: RPASCENE_GROUNDING_USE_ANTHROPIC_SDK,
179
+ anthropicApiKey: RPASCENE_GROUNDING_ANTHROPIC_API_KEY,
180
+ /**
181
+ * Extra
182
+ */
183
+ vlMode: RPASCENE_GROUNDING_VL_MODE,
184
+ } as const;
185
+
186
+ export const PLANNING_MODEL_CONFIG_KEYS: IModelConfigKeys = {
187
+ modelName: RPASCENE_PLANNING_MODEL_NAME,
188
+ /**
189
+ * proxy
190
+ */
191
+ socksProxy: RPASCENE_PLANNING_OPENAI_SOCKS_PROXY,
192
+ httpProxy: RPASCENE_PLANNING_OPENAI_HTTP_PROXY,
193
+ /**
194
+ * OpenAI
195
+ */
196
+ openaiBaseURL: RPASCENE_PLANNING_OPENAI_BASE_URL,
197
+ openaiApiKey: RPASCENE_PLANNING_OPENAI_API_KEY,
198
+ openaiExtraConfig: RPASCENE_PLANNING_OPENAI_INIT_CONFIG_JSON,
199
+ /**
200
+ * Azure
201
+ */
202
+ openaiUseAzureDeprecated: RPASCENE_PLANNING_OPENAI_USE_AZURE,
203
+ useAzureOpenai: RPASCENE_PLANNING_USE_AZURE_OPENAI,
204
+ azureOpenaiScope: RPASCENE_PLANNING_AZURE_OPENAI_SCOPE,
205
+ azureOpenaiKey: RPASCENE_PLANNING_AZURE_OPENAI_KEY,
206
+ azureOpenaiEndpoint: RPASCENE_PLANNING_AZURE_OPENAI_ENDPOINT,
207
+ azureOpenaiApiVersion: RPASCENE_PLANNING_AZURE_OPENAI_API_VERSION,
208
+ azureOpenaiDeployment: RPASCENE_PLANNING_AZURE_OPENAI_DEPLOYMENT,
209
+ azureExtraConfig: RPASCENE_PLANNING_AZURE_OPENAI_INIT_CONFIG_JSON,
210
+ /**
211
+ * Anthropic
212
+ */
213
+ useAnthropicSdk: RPASCENE_PLANNING_USE_ANTHROPIC_SDK,
214
+ anthropicApiKey: RPASCENE_PLANNING_ANTHROPIC_API_KEY,
215
+ /**
216
+ * Extra
217
+ */
218
+ vlMode: RPASCENE_PLANNING_VL_MODE,
219
+ } as const;
220
+
221
+ // modelConfig return default
222
+ export const DEFAULT_MODEL_CONFIG_KEYS: IModelConfigKeys = {
223
+ modelName: RPASCENE_MODEL_NAME,
224
+ /**
225
+ * proxy
226
+ */
227
+ socksProxy: RPASCENE_OPENAI_SOCKS_PROXY,
228
+ httpProxy: RPASCENE_OPENAI_HTTP_PROXY,
229
+ /**
230
+ * OpenAI
231
+ */
232
+ openaiBaseURL: RPASCENE_OPENAI_BASE_URL,
233
+ openaiApiKey: RPASCENE_OPENAI_API_KEY,
234
+ openaiExtraConfig: RPASCENE_OPENAI_INIT_CONFIG_JSON,
235
+ /**
236
+ * Azure
237
+ */
238
+ openaiUseAzureDeprecated: RPASCENE_OPENAI_USE_AZURE,
239
+ useAzureOpenai: RPASCENE_USE_AZURE_OPENAI,
240
+ azureOpenaiScope: RPASCENE_AZURE_OPENAI_SCOPE,
241
+ azureOpenaiKey: RPASCENE_AZURE_OPENAI_KEY,
242
+ azureOpenaiEndpoint: RPASCENE_AZURE_OPENAI_ENDPOINT,
243
+ azureOpenaiApiVersion: RPASCENE_AZURE_OPENAI_API_VERSION,
244
+ azureOpenaiDeployment: RPASCENE_AZURE_OPENAI_DEPLOYMENT,
245
+ azureExtraConfig: RPASCENE_AZURE_OPENAI_INIT_CONFIG_JSON,
246
+ /**
247
+ * Anthropic
248
+ */
249
+ useAnthropicSdk: RPASCENE_USE_ANTHROPIC_SDK,
250
+ anthropicApiKey: RPASCENE_ANTHROPIC_API_KEY,
251
+ /**
252
+ * Extra
253
+ */
254
+ vlMode: RPASCENE_VL_MODE,
255
+ } as const;
256
+
257
+ // read from process.env
258
+ export const DEFAULT_MODEL_CONFIG_KEYS_LEGACY: IModelConfigKeys = {
259
+ modelName: RPASCENE_MODEL_NAME,
260
+ /**
261
+ * proxy
262
+ */
263
+ socksProxy: RPASCENE_OPENAI_SOCKS_PROXY,
264
+ httpProxy: RPASCENE_OPENAI_HTTP_PROXY,
265
+ /**
266
+ * OpenAI
267
+ */
268
+ openaiBaseURL: OPENAI_BASE_URL,
269
+ openaiApiKey: OPENAI_API_KEY,
270
+ openaiExtraConfig: RPASCENE_OPENAI_INIT_CONFIG_JSON,
271
+ /**
272
+ * Azure
273
+ */
274
+ openaiUseAzureDeprecated: OPENAI_USE_AZURE,
275
+ useAzureOpenai: RPASCENE_USE_AZURE_OPENAI,
276
+ azureOpenaiScope: RPASCENE_AZURE_OPENAI_SCOPE,
277
+ azureOpenaiKey: AZURE_OPENAI_KEY,
278
+ azureOpenaiEndpoint: AZURE_OPENAI_ENDPOINT,
279
+ azureOpenaiApiVersion: AZURE_OPENAI_API_VERSION,
280
+ azureOpenaiDeployment: AZURE_OPENAI_DEPLOYMENT,
281
+ azureExtraConfig: RPASCENE_AZURE_OPENAI_INIT_CONFIG_JSON,
282
+ /**
283
+ * Anthropic
284
+ */
285
+ useAnthropicSdk: RPASCENE_USE_ANTHROPIC_SDK,
286
+ anthropicApiKey: ANTHROPIC_API_KEY,
287
+ /**
288
+ * Extra
289
+ */
290
+ vlMode: 'DEFAULT_MODEL_CONFIG_KEYS has no vlMode key',
291
+ } as const;