@godscene/core 1.7.11

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 (189) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +9 -0
  3. package/dist/es/agent/agent.mjs +767 -0
  4. package/dist/es/agent/common.mjs +0 -0
  5. package/dist/es/agent/execution-session.mjs +39 -0
  6. package/dist/es/agent/index.mjs +6 -0
  7. package/dist/es/agent/task-builder.mjs +343 -0
  8. package/dist/es/agent/task-cache.mjs +212 -0
  9. package/dist/es/agent/tasks.mjs +428 -0
  10. package/dist/es/agent/ui-utils.mjs +101 -0
  11. package/dist/es/agent/utils.mjs +167 -0
  12. package/dist/es/ai-model/auto-glm/actions.mjs +237 -0
  13. package/dist/es/ai-model/auto-glm/index.mjs +6 -0
  14. package/dist/es/ai-model/auto-glm/parser.mjs +237 -0
  15. package/dist/es/ai-model/auto-glm/planning.mjs +69 -0
  16. package/dist/es/ai-model/auto-glm/prompt.mjs +220 -0
  17. package/dist/es/ai-model/auto-glm/util.mjs +7 -0
  18. package/dist/es/ai-model/connectivity.mjs +136 -0
  19. package/dist/es/ai-model/conversation-history.mjs +193 -0
  20. package/dist/es/ai-model/index.mjs +12 -0
  21. package/dist/es/ai-model/inspect.mjs +395 -0
  22. package/dist/es/ai-model/llm-planning.mjs +231 -0
  23. package/dist/es/ai-model/prompt/common.mjs +5 -0
  24. package/dist/es/ai-model/prompt/describe.mjs +64 -0
  25. package/dist/es/ai-model/prompt/extraction.mjs +129 -0
  26. package/dist/es/ai-model/prompt/llm-locator.mjs +49 -0
  27. package/dist/es/ai-model/prompt/llm-planning.mjs +584 -0
  28. package/dist/es/ai-model/prompt/llm-section-locator.mjs +42 -0
  29. package/dist/es/ai-model/prompt/order-sensitive-judge.mjs +33 -0
  30. package/dist/es/ai-model/prompt/playwright-generator.mjs +115 -0
  31. package/dist/es/ai-model/prompt/ui-tars-planning.mjs +34 -0
  32. package/dist/es/ai-model/prompt/util.mjs +57 -0
  33. package/dist/es/ai-model/prompt/yaml-generator.mjs +201 -0
  34. package/dist/es/ai-model/service-caller/codex-app-server.mjs +573 -0
  35. package/dist/es/ai-model/service-caller/image-detail.mjs +4 -0
  36. package/dist/es/ai-model/service-caller/index.mjs +648 -0
  37. package/dist/es/ai-model/service-caller/request-timeout.mjs +47 -0
  38. package/dist/es/ai-model/ui-tars-planning.mjs +247 -0
  39. package/dist/es/common.mjs +382 -0
  40. package/dist/es/device/device-options.mjs +0 -0
  41. package/dist/es/device/index.mjs +340 -0
  42. package/dist/es/dump/html-utils.mjs +290 -0
  43. package/dist/es/dump/index.mjs +3 -0
  44. package/dist/es/dump/screenshot-restoration.mjs +30 -0
  45. package/dist/es/dump/screenshot-store.mjs +125 -0
  46. package/dist/es/index.mjs +17 -0
  47. package/dist/es/report-cli.mjs +149 -0
  48. package/dist/es/report-generator.mjs +203 -0
  49. package/dist/es/report-markdown.mjs +216 -0
  50. package/dist/es/report.mjs +287 -0
  51. package/dist/es/screenshot-item.mjs +120 -0
  52. package/dist/es/service/index.mjs +272 -0
  53. package/dist/es/service/utils.mjs +13 -0
  54. package/dist/es/skill/index.mjs +35 -0
  55. package/dist/es/task-runner.mjs +261 -0
  56. package/dist/es/task-timing.mjs +10 -0
  57. package/dist/es/tree.mjs +11 -0
  58. package/dist/es/types.mjs +202 -0
  59. package/dist/es/utils.mjs +232 -0
  60. package/dist/es/yaml/builder.mjs +11 -0
  61. package/dist/es/yaml/index.mjs +4 -0
  62. package/dist/es/yaml/player.mjs +425 -0
  63. package/dist/es/yaml/utils.mjs +100 -0
  64. package/dist/es/yaml.mjs +0 -0
  65. package/dist/lib/agent/agent.js +815 -0
  66. package/dist/lib/agent/common.js +5 -0
  67. package/dist/lib/agent/execution-session.js +73 -0
  68. package/dist/lib/agent/index.js +76 -0
  69. package/dist/lib/agent/task-builder.js +380 -0
  70. package/dist/lib/agent/task-cache.js +264 -0
  71. package/dist/lib/agent/tasks.js +471 -0
  72. package/dist/lib/agent/ui-utils.js +153 -0
  73. package/dist/lib/agent/utils.js +238 -0
  74. package/dist/lib/ai-model/auto-glm/actions.js +271 -0
  75. package/dist/lib/ai-model/auto-glm/index.js +64 -0
  76. package/dist/lib/ai-model/auto-glm/parser.js +280 -0
  77. package/dist/lib/ai-model/auto-glm/planning.js +103 -0
  78. package/dist/lib/ai-model/auto-glm/prompt.js +257 -0
  79. package/dist/lib/ai-model/auto-glm/util.js +44 -0
  80. package/dist/lib/ai-model/connectivity.js +180 -0
  81. package/dist/lib/ai-model/conversation-history.js +227 -0
  82. package/dist/lib/ai-model/index.js +127 -0
  83. package/dist/lib/ai-model/inspect.js +441 -0
  84. package/dist/lib/ai-model/llm-planning.js +268 -0
  85. package/dist/lib/ai-model/prompt/common.js +39 -0
  86. package/dist/lib/ai-model/prompt/describe.js +98 -0
  87. package/dist/lib/ai-model/prompt/extraction.js +169 -0
  88. package/dist/lib/ai-model/prompt/llm-locator.js +86 -0
  89. package/dist/lib/ai-model/prompt/llm-planning.js +621 -0
  90. package/dist/lib/ai-model/prompt/llm-section-locator.js +79 -0
  91. package/dist/lib/ai-model/prompt/order-sensitive-judge.js +70 -0
  92. package/dist/lib/ai-model/prompt/playwright-generator.js +176 -0
  93. package/dist/lib/ai-model/prompt/ui-tars-planning.js +71 -0
  94. package/dist/lib/ai-model/prompt/util.js +103 -0
  95. package/dist/lib/ai-model/prompt/yaml-generator.js +262 -0
  96. package/dist/lib/ai-model/service-caller/codex-app-server.js +622 -0
  97. package/dist/lib/ai-model/service-caller/image-detail.js +38 -0
  98. package/dist/lib/ai-model/service-caller/index.js +716 -0
  99. package/dist/lib/ai-model/service-caller/request-timeout.js +93 -0
  100. package/dist/lib/ai-model/ui-tars-planning.js +281 -0
  101. package/dist/lib/common.js +491 -0
  102. package/dist/lib/device/device-options.js +18 -0
  103. package/dist/lib/device/index.js +467 -0
  104. package/dist/lib/dump/html-utils.js +366 -0
  105. package/dist/lib/dump/index.js +58 -0
  106. package/dist/lib/dump/screenshot-restoration.js +64 -0
  107. package/dist/lib/dump/screenshot-store.js +165 -0
  108. package/dist/lib/index.js +184 -0
  109. package/dist/lib/report-cli.js +189 -0
  110. package/dist/lib/report-generator.js +244 -0
  111. package/dist/lib/report-markdown.js +253 -0
  112. package/dist/lib/report.js +333 -0
  113. package/dist/lib/screenshot-item.js +154 -0
  114. package/dist/lib/service/index.js +306 -0
  115. package/dist/lib/service/utils.js +47 -0
  116. package/dist/lib/skill/index.js +69 -0
  117. package/dist/lib/task-runner.js +298 -0
  118. package/dist/lib/task-timing.js +44 -0
  119. package/dist/lib/tree.js +51 -0
  120. package/dist/lib/types.js +298 -0
  121. package/dist/lib/utils.js +314 -0
  122. package/dist/lib/yaml/builder.js +55 -0
  123. package/dist/lib/yaml/index.js +79 -0
  124. package/dist/lib/yaml/player.js +459 -0
  125. package/dist/lib/yaml/utils.js +153 -0
  126. package/dist/lib/yaml.js +18 -0
  127. package/dist/types/agent/agent.d.ts +220 -0
  128. package/dist/types/agent/common.d.ts +0 -0
  129. package/dist/types/agent/execution-session.d.ts +36 -0
  130. package/dist/types/agent/index.d.ts +9 -0
  131. package/dist/types/agent/task-builder.d.ts +34 -0
  132. package/dist/types/agent/task-cache.d.ts +49 -0
  133. package/dist/types/agent/tasks.d.ts +70 -0
  134. package/dist/types/agent/ui-utils.d.ts +14 -0
  135. package/dist/types/agent/utils.d.ts +25 -0
  136. package/dist/types/ai-model/auto-glm/actions.d.ts +78 -0
  137. package/dist/types/ai-model/auto-glm/index.d.ts +6 -0
  138. package/dist/types/ai-model/auto-glm/parser.d.ts +18 -0
  139. package/dist/types/ai-model/auto-glm/planning.d.ts +12 -0
  140. package/dist/types/ai-model/auto-glm/prompt.d.ts +27 -0
  141. package/dist/types/ai-model/auto-glm/util.d.ts +13 -0
  142. package/dist/types/ai-model/connectivity.d.ts +20 -0
  143. package/dist/types/ai-model/conversation-history.d.ts +105 -0
  144. package/dist/types/ai-model/index.d.ts +16 -0
  145. package/dist/types/ai-model/inspect.d.ts +67 -0
  146. package/dist/types/ai-model/llm-planning.d.ts +19 -0
  147. package/dist/types/ai-model/prompt/common.d.ts +2 -0
  148. package/dist/types/ai-model/prompt/describe.d.ts +1 -0
  149. package/dist/types/ai-model/prompt/extraction.d.ts +7 -0
  150. package/dist/types/ai-model/prompt/llm-locator.d.ts +3 -0
  151. package/dist/types/ai-model/prompt/llm-planning.d.ts +10 -0
  152. package/dist/types/ai-model/prompt/llm-section-locator.d.ts +3 -0
  153. package/dist/types/ai-model/prompt/order-sensitive-judge.d.ts +2 -0
  154. package/dist/types/ai-model/prompt/playwright-generator.d.ts +26 -0
  155. package/dist/types/ai-model/prompt/ui-tars-planning.d.ts +2 -0
  156. package/dist/types/ai-model/prompt/util.d.ts +33 -0
  157. package/dist/types/ai-model/prompt/yaml-generator.d.ts +102 -0
  158. package/dist/types/ai-model/service-caller/codex-app-server.d.ts +42 -0
  159. package/dist/types/ai-model/service-caller/image-detail.d.ts +2 -0
  160. package/dist/types/ai-model/service-caller/index.d.ts +60 -0
  161. package/dist/types/ai-model/service-caller/request-timeout.d.ts +32 -0
  162. package/dist/types/ai-model/ui-tars-planning.d.ts +72 -0
  163. package/dist/types/common.d.ts +288 -0
  164. package/dist/types/device/device-options.d.ts +155 -0
  165. package/dist/types/device/index.d.ts +2565 -0
  166. package/dist/types/dump/html-utils.d.ts +75 -0
  167. package/dist/types/dump/index.d.ts +5 -0
  168. package/dist/types/dump/screenshot-restoration.d.ts +8 -0
  169. package/dist/types/dump/screenshot-store.d.ts +49 -0
  170. package/dist/types/index.d.ts +21 -0
  171. package/dist/types/report-cli.d.ts +36 -0
  172. package/dist/types/report-generator.d.ts +88 -0
  173. package/dist/types/report-markdown.d.ts +24 -0
  174. package/dist/types/report.d.ts +52 -0
  175. package/dist/types/screenshot-item.d.ts +67 -0
  176. package/dist/types/service/index.d.ts +24 -0
  177. package/dist/types/service/utils.d.ts +2 -0
  178. package/dist/types/skill/index.d.ts +25 -0
  179. package/dist/types/task-runner.d.ts +50 -0
  180. package/dist/types/task-timing.d.ts +8 -0
  181. package/dist/types/tree.d.ts +4 -0
  182. package/dist/types/types.d.ts +684 -0
  183. package/dist/types/utils.d.ts +45 -0
  184. package/dist/types/yaml/builder.d.ts +2 -0
  185. package/dist/types/yaml/index.d.ts +4 -0
  186. package/dist/types/yaml/player.d.ts +34 -0
  187. package/dist/types/yaml/utils.d.ts +9 -0
  188. package/dist/types/yaml.d.ts +215 -0
  189. package/package.json +130 -0
@@ -0,0 +1,264 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.n = (module)=>{
5
+ var getter = module && module.__esModule ? ()=>module['default'] : ()=>module;
6
+ __webpack_require__.d(getter, {
7
+ a: getter
8
+ });
9
+ return getter;
10
+ };
11
+ })();
12
+ (()=>{
13
+ __webpack_require__.d = (exports1, definition)=>{
14
+ for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
15
+ enumerable: true,
16
+ get: definition[key]
17
+ });
18
+ };
19
+ })();
20
+ (()=>{
21
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
22
+ })();
23
+ (()=>{
24
+ __webpack_require__.r = (exports1)=>{
25
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
26
+ value: 'Module'
27
+ });
28
+ Object.defineProperty(exports1, '__esModule', {
29
+ value: true
30
+ });
31
+ };
32
+ })();
33
+ var __webpack_exports__ = {};
34
+ __webpack_require__.r(__webpack_exports__);
35
+ __webpack_require__.d(__webpack_exports__, {
36
+ TaskCache: ()=>TaskCache,
37
+ cacheFileExt: ()=>cacheFileExt,
38
+ debug: ()=>debug
39
+ });
40
+ const external_node_assert_namespaceObject = require("node:assert");
41
+ var external_node_assert_default = /*#__PURE__*/ __webpack_require__.n(external_node_assert_namespaceObject);
42
+ const external_node_fs_namespaceObject = require("node:fs");
43
+ const external_node_path_namespaceObject = require("node:path");
44
+ const external_node_util_namespaceObject = require("node:util");
45
+ const common_namespaceObject = require("@godscene/shared/common");
46
+ const env_namespaceObject = require("@godscene/shared/env");
47
+ const logger_namespaceObject = require("@godscene/shared/logger");
48
+ const utils_namespaceObject = require("@godscene/shared/utils");
49
+ const external_js_yaml_namespaceObject = require("js-yaml");
50
+ var external_js_yaml_default = /*#__PURE__*/ __webpack_require__.n(external_js_yaml_namespaceObject);
51
+ const external_semver_namespaceObject = require("semver");
52
+ var external_semver_default = /*#__PURE__*/ __webpack_require__.n(external_semver_namespaceObject);
53
+ const external_utils_js_namespaceObject = require("./utils.js");
54
+ function _define_property(obj, key, value) {
55
+ if (key in obj) Object.defineProperty(obj, key, {
56
+ value: value,
57
+ enumerable: true,
58
+ configurable: true,
59
+ writable: true
60
+ });
61
+ else obj[key] = value;
62
+ return obj;
63
+ }
64
+ const DEFAULT_CACHE_MAX_FILENAME_LENGTH = 200;
65
+ const debug = (0, logger_namespaceObject.getDebug)('cache');
66
+ const lowestSupportedMidsceneVersion = '0.16.10';
67
+ const cacheFileExt = '.cache.yaml';
68
+ class TaskCache {
69
+ matchCache(prompt, type) {
70
+ if (!this.isCacheResultUsed) return;
71
+ const promptStr = 'string' == typeof prompt ? prompt : JSON.stringify(prompt);
72
+ for(let i = 0; i < this.cacheOriginalLength; i++){
73
+ const item = this.cache.caches[i];
74
+ const key = `${type}:${promptStr}:${i}`;
75
+ if (item.type === type && (0, external_node_util_namespaceObject.isDeepStrictEqual)(item.prompt, prompt) && !this.matchedCacheIndices.has(key)) {
76
+ if ('locate' === item.type) {
77
+ const locateItem = item;
78
+ if (!locateItem.cache && Array.isArray(locateItem.xpaths)) locateItem.cache = {
79
+ xpaths: locateItem.xpaths
80
+ };
81
+ if ('xpaths' in locateItem) locateItem.xpaths = void 0;
82
+ }
83
+ this.matchedCacheIndices.add(key);
84
+ debug('cache found and marked as used, type: %s, prompt: %s, index: %d', type, prompt, i);
85
+ return {
86
+ cacheContent: item,
87
+ cacheUsable: true,
88
+ updateFn: (cb)=>{
89
+ debug('will call updateFn to update cache, type: %s, prompt: %s, index: %d', type, prompt, i);
90
+ cb(item);
91
+ if (this.readOnlyMode) return void debug('read-only mode, cache updated in memory but not flushed to file');
92
+ debug('cache updated, will flush to file, type: %s, prompt: %s, index: %d', type, prompt, i);
93
+ this.flushCacheToFile();
94
+ }
95
+ };
96
+ }
97
+ }
98
+ debug('no unused cache found, type: %s, prompt: %s', type, prompt);
99
+ }
100
+ matchPlanCache(prompt) {
101
+ const result = this.matchCache(prompt, 'plan');
102
+ if (!result) return;
103
+ const yamlWorkflow = result.cacheContent.yamlWorkflow;
104
+ if (!yamlWorkflow?.trim()) {
105
+ debug('plan cache matched but yamlWorkflow is empty, treat as cache miss');
106
+ return {
107
+ ...result,
108
+ cacheUsable: false
109
+ };
110
+ }
111
+ try {
112
+ const parsed = external_js_yaml_default().load(yamlWorkflow);
113
+ const hasNonEmptyFlow = parsed?.tasks?.some((task)=>Array.isArray(task.flow) && task.flow.length > 0);
114
+ if (!hasNonEmptyFlow) {
115
+ debug('plan cache matched but flow is empty, treat as cache miss');
116
+ return {
117
+ ...result,
118
+ cacheUsable: false
119
+ };
120
+ }
121
+ } catch {
122
+ debug('plan cache matched but yamlWorkflow is invalid, treat as cache miss');
123
+ return {
124
+ ...result,
125
+ cacheUsable: false
126
+ };
127
+ }
128
+ return result;
129
+ }
130
+ matchLocateCache(prompt) {
131
+ return this.matchCache(prompt, 'locate');
132
+ }
133
+ appendCache(cache) {
134
+ debug('will append cache', cache);
135
+ this.cache.caches.push(cache);
136
+ if (this.readOnlyMode) return void debug('read-only mode, cache appended to memory but not flushed to file');
137
+ this.flushCacheToFile();
138
+ }
139
+ loadCacheFromFile() {
140
+ const cacheFile = this.cacheFilePath;
141
+ external_node_assert_default()(cacheFile, 'cache file path is required');
142
+ if (!(0, external_node_fs_namespaceObject.existsSync)(cacheFile)) return void debug('no cache file found, path: %s', cacheFile);
143
+ const jsonTypeCacheFile = cacheFile.replace(cacheFileExt, '.json');
144
+ if ((0, external_node_fs_namespaceObject.existsSync)(jsonTypeCacheFile) && this.isCacheResultUsed) return void console.warn(`An outdated cache file from an earlier version of Midscene has been detected. Since version 0.17, we have implemented an improved caching strategy. Please delete the old file located at: ${jsonTypeCacheFile}.`);
145
+ try {
146
+ const data = (0, external_node_fs_namespaceObject.readFileSync)(cacheFile, 'utf8');
147
+ const jsonData = external_js_yaml_default().load(data);
148
+ const version = (0, external_utils_js_namespaceObject.getMidsceneVersion)();
149
+ if (!version) return void debug('no midscene version info, will not read cache from file');
150
+ if (external_semver_default().lt(jsonData.midsceneVersion, lowestSupportedMidsceneVersion) && !jsonData.midsceneVersion.includes('beta')) return void console.warn(`You are using an old version of Midscene cache file, and we cannot match any info from it. Starting from Midscene v0.17, we changed our strategy to use xpath for cache info, providing better performance.\nPlease delete the existing cache and rebuild it. Sorry for the inconvenience.\ncache file: ${cacheFile}`);
151
+ debug('cache loaded from file, path: %s, cache version: %s, record length: %s', cacheFile, jsonData.midsceneVersion, jsonData.caches.length);
152
+ jsonData.midsceneVersion = (0, external_utils_js_namespaceObject.getMidsceneVersion)();
153
+ return jsonData;
154
+ } catch (err) {
155
+ debug('cache file exists but load failed, path: %s, error: %s', cacheFile, err);
156
+ return;
157
+ }
158
+ }
159
+ flushCacheToFile(options) {
160
+ const version = (0, external_utils_js_namespaceObject.getMidsceneVersion)();
161
+ if (!version) return void debug('no midscene version info, will not write cache to file');
162
+ if (!this.cacheFilePath) return void debug('no cache file path, will not write cache to file');
163
+ if (options?.cleanUnused) if (this.isCacheResultUsed) {
164
+ const originalLength = this.cache.caches.length;
165
+ const usedIndices = new Set();
166
+ for (const key of this.matchedCacheIndices){
167
+ const parts = key.split(':');
168
+ const index = Number.parseInt(parts[parts.length - 1], 10);
169
+ if (!Number.isNaN(index)) usedIndices.add(index);
170
+ }
171
+ this.cache.caches = this.cache.caches.filter((_, index)=>{
172
+ const isUsed = usedIndices.has(index);
173
+ const isNew = index >= this.cacheOriginalLength;
174
+ return isUsed || isNew;
175
+ });
176
+ const removedCount = originalLength - this.cache.caches.length;
177
+ removedCount > 0 ? debug('cleaned %d unused cache record(s)', removedCount) : debug('no unused cache to clean');
178
+ } else debug('skip cleaning: cache is not used for reading');
179
+ try {
180
+ const dir = (0, external_node_path_namespaceObject.dirname)(this.cacheFilePath);
181
+ if (!(0, external_node_fs_namespaceObject.existsSync)(dir)) {
182
+ (0, external_node_fs_namespaceObject.mkdirSync)(dir, {
183
+ recursive: true
184
+ });
185
+ debug('created cache directory: %s', dir);
186
+ }
187
+ const sortedCaches = [
188
+ ...this.cache.caches
189
+ ].sort((a, b)=>{
190
+ if ('plan' === a.type && 'locate' === b.type) return -1;
191
+ if ('locate' === a.type && 'plan' === b.type) return 1;
192
+ return 0;
193
+ });
194
+ const cacheToWrite = {
195
+ ...this.cache,
196
+ caches: sortedCaches
197
+ };
198
+ const yamlData = external_js_yaml_default().dump(cacheToWrite, {
199
+ lineWidth: -1
200
+ });
201
+ (0, external_node_fs_namespaceObject.writeFileSync)(this.cacheFilePath, yamlData);
202
+ debug('cache flushed to file: %s', this.cacheFilePath);
203
+ } catch (err) {
204
+ debug('write cache to file failed, path: %s, error: %s', this.cacheFilePath, err);
205
+ }
206
+ }
207
+ updateOrAppendCacheRecord(newRecord, cachedRecord) {
208
+ if (cachedRecord) if ('plan' === newRecord.type) cachedRecord.updateFn((cache)=>{
209
+ cache.yamlWorkflow = newRecord.yamlWorkflow;
210
+ });
211
+ else cachedRecord.updateFn((cache)=>{
212
+ const locateCache = cache;
213
+ locateCache.cache = newRecord.cache;
214
+ if ('xpaths' in locateCache) locateCache.xpaths = void 0;
215
+ });
216
+ else this.appendCache(newRecord);
217
+ }
218
+ constructor(cacheId, isCacheResultUsed, cacheFilePath, options = {}){
219
+ _define_property(this, "cacheId", void 0);
220
+ _define_property(this, "cacheFilePath", void 0);
221
+ _define_property(this, "cache", void 0);
222
+ _define_property(this, "isCacheResultUsed", void 0);
223
+ _define_property(this, "cacheOriginalLength", void 0);
224
+ _define_property(this, "readOnlyMode", void 0);
225
+ _define_property(this, "writeOnlyMode", void 0);
226
+ _define_property(this, "matchedCacheIndices", new Set());
227
+ external_node_assert_default()(cacheId, 'cacheId is required');
228
+ let safeCacheId = (0, utils_namespaceObject.replaceIllegalPathCharsAndSpace)(cacheId);
229
+ const cacheMaxFilenameLength = env_namespaceObject.globalConfigManager.getEnvConfigValueAsNumber(env_namespaceObject.MIDSCENE_CACHE_MAX_FILENAME_LENGTH) ?? DEFAULT_CACHE_MAX_FILENAME_LENGTH;
230
+ if (Buffer.byteLength(safeCacheId, 'utf8') > cacheMaxFilenameLength) {
231
+ const prefix = safeCacheId.slice(0, 32);
232
+ const hash = (0, utils_namespaceObject.generateHashId)(void 0, safeCacheId);
233
+ safeCacheId = `${prefix}-${hash}`;
234
+ }
235
+ this.cacheId = safeCacheId;
236
+ this.cacheFilePath = utils_namespaceObject.ifInBrowser || utils_namespaceObject.ifInWorker ? void 0 : cacheFilePath || (0, external_node_path_namespaceObject.join)((0, common_namespaceObject.getMidsceneRunSubDir)('cache'), `${this.cacheId}${cacheFileExt}`);
237
+ const readOnlyMode = Boolean(options?.readOnly);
238
+ const writeOnlyMode = Boolean(options?.writeOnly);
239
+ if (readOnlyMode && writeOnlyMode) throw new Error('TaskCache cannot be both read-only and write-only');
240
+ this.isCacheResultUsed = writeOnlyMode ? false : isCacheResultUsed;
241
+ this.readOnlyMode = readOnlyMode;
242
+ this.writeOnlyMode = writeOnlyMode;
243
+ let cacheContent;
244
+ if (this.cacheFilePath && !this.writeOnlyMode) cacheContent = this.loadCacheFromFile();
245
+ if (!cacheContent) cacheContent = {
246
+ midsceneVersion: (0, external_utils_js_namespaceObject.getMidsceneVersion)(),
247
+ cacheId: this.cacheId,
248
+ caches: []
249
+ };
250
+ this.cache = cacheContent;
251
+ this.cacheOriginalLength = this.isCacheResultUsed ? this.cache.caches.length : 0;
252
+ }
253
+ }
254
+ exports.TaskCache = __webpack_exports__.TaskCache;
255
+ exports.cacheFileExt = __webpack_exports__.cacheFileExt;
256
+ exports.debug = __webpack_exports__.debug;
257
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
258
+ "TaskCache",
259
+ "cacheFileExt",
260
+ "debug"
261
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
262
+ Object.defineProperty(exports, '__esModule', {
263
+ value: true
264
+ });