@myagentroam/node 0.9.8 → 0.9.10

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 (213) hide show
  1. package/dist/capabilities.js +2 -92
  2. package/dist/claude-agent-sdk.js +2 -330
  3. package/dist/claude-channel.js +2 -44
  4. package/dist/codex-app-server.js +2 -503
  5. package/dist/config.js +2 -56
  6. package/dist/connector/node-connector-options.js +2 -1
  7. package/dist/connector/node-operation-router.js +2 -22
  8. package/dist/connector.js +2 -841
  9. package/dist/control-outbound-scheduler.js +2 -154
  10. package/dist/database.js +2 -1418
  11. package/dist/event-buffer.js +2 -19
  12. package/dist/fake-runner.js +2 -129
  13. package/dist/health.js +2 -3
  14. package/dist/main.js +2 -54
  15. package/dist/migrations/v001.js +3 -144
  16. package/dist/migrations/v002.js +2 -143
  17. package/dist/migrations/v003.js +2 -44
  18. package/dist/migrations/v004.js +34 -30
  19. package/dist/native-jsonl-reader.js +2 -186
  20. package/dist/native-session-history.js +2 -1119
  21. package/dist/opencode-runtime.js +2 -80
  22. package/dist/opencode-server.js +2 -263
  23. package/dist/operational.js +2 -122
  24. package/dist/process-tree.js +2 -18
  25. package/dist/rotating-log.js +2 -67
  26. package/dist/runner/abstract-runner.js +2 -232
  27. package/dist/runner/claude/managed-run-controller.js +2 -345
  28. package/dist/runner/claude-code-runner.js +2 -303
  29. package/dist/runner/codex/composer-image-markers.js +2 -0
  30. package/dist/runner/codex/conversation-parser.js +2 -861
  31. package/dist/runner/codex/managed-run-controller.js +2 -460
  32. package/dist/runner/codex-runner.js +2 -628
  33. package/dist/runner/fake-test-runner.js +2 -47
  34. package/dist/runner/opencode/conversation-parser.js +2 -221
  35. package/dist/runner/opencode/managed-run-controller.js +2 -537
  36. package/dist/runner/opencode-runner.js +2 -448
  37. package/dist/runner/runner-registry.js +2 -90
  38. package/dist/runner-command-engine.js +2 -70
  39. package/dist/runner-profiles.js +2 -215
  40. package/dist/runner-usage.js +2 -190
  41. package/dist/runtime-command-detector.js +2 -73
  42. package/dist/runtime-state.js +2 -973
  43. package/dist/service/attachment-domain-state.js +2 -7
  44. package/dist/service/conversation-history-service.js +2 -457
  45. package/dist/service/conversation-segment-service.js +2 -162
  46. package/dist/service/external-session-resume-service.js +2 -118
  47. package/dist/service/fake-managed-run-service.js +2 -60
  48. package/dist/service/managed-runner-session-service.js +2 -35
  49. package/dist/service/mcp-installation-verifier.js +2 -87
  50. package/dist/service/mcp-node-operation-service.js +2 -90
  51. package/dist/service/mcp-package-installer.js +2 -136
  52. package/dist/service/native-session-projection-service.js +2 -280
  53. package/dist/service/native-session-watch-service.js +2 -383
  54. package/dist/service/node-connection-lifecycle-service.js +2 -83
  55. package/dist/service/node-control-channel.js +2 -85
  56. package/dist/service/node-control-message-service.js +2 -107
  57. package/dist/service/node-request-service.js +2 -52
  58. package/dist/service/node-run-event-bridge.js +2 -83
  59. package/dist/service/node-terminal-channel.js +2 -182
  60. package/dist/service/node-upgrade-coordinator.js +2 -137
  61. package/dist/service/node-workspace-coordinator.js +2 -70
  62. package/dist/service/recent-run-projection-service.js +2 -0
  63. package/dist/service/run-attachment-service.js +2 -194
  64. package/dist/service/run-domain-state.js +2 -4
  65. package/dist/service/run-event-service.js +2 -193
  66. package/dist/service/run-workbench-service.js +2 -104
  67. package/dist/service/runner-channel-message-service.js +2 -20
  68. package/dist/service/runner-interaction-service.js +2 -243
  69. package/dist/service/runner-service.js +2 -71
  70. package/dist/service/session-catalog-service.js +2 -224
  71. package/dist/service/session-command-service.js +2 -76
  72. package/dist/service/session-context-service.js +2 -101
  73. package/dist/service/session-domain-state.js +2 -9
  74. package/dist/service/session-identity-service.js +2 -86
  75. package/dist/service/session-lifecycle-service.js +2 -240
  76. package/dist/service/session-message-service.js +2 -173
  77. package/dist/service/session-presentation-service.js +2 -43
  78. package/dist/service/session-query-service.js +2 -82
  79. package/dist/service/skill-directory-service.js +2 -238
  80. package/dist/service/skill-install-service.js +2 -434
  81. package/dist/service/skill-node-operation-service.js +2 -206
  82. package/dist/service/terminal-relay-state.js +2 -3
  83. package/dist/service/terminal-service.js +2 -52
  84. package/dist/service/workbench-event-service.js +2 -19
  85. package/dist/service/workbench-manifest-service.js +2 -69
  86. package/dist/service/workspace-change-service.js +2 -86
  87. package/dist/service/workspace-content-search-service.js +2 -477
  88. package/dist/service/workspace-domain-state.js +2 -41
  89. package/dist/service/workspace-file-service.js +2 -122
  90. package/dist/service/workspace-git-exclude-service.js +2 -119
  91. package/dist/service/workspace-queue-workbench-service.js +2 -304
  92. package/dist/service/workspace-service.js +2 -69
  93. package/dist/service/workspace-session-service.js +2 -139
  94. package/dist/service/workspace-upload-service.js +2 -262
  95. package/dist/service/workspace-watch-service.js +2 -146
  96. package/dist/service/workspace-workbench-service.js +2 -405
  97. package/dist/service.js +2 -38
  98. package/dist/storage.js +2 -32
  99. package/dist/supervisor.js +2 -136
  100. package/dist/terminal.js +2 -416
  101. package/dist/util/node-operation-parsers.js +2 -382
  102. package/dist/util/personal-instructions.js +2 -31
  103. package/dist/util/runner-error.js +2 -52
  104. package/dist/util/runner-native-session-parsers.js +2 -490
  105. package/dist/util/safe-error.js +2 -5
  106. package/dist/util/secret-environment.js +2 -25
  107. package/dist/workspace.js +2 -1519
  108. package/package.json +3 -3
  109. package/dist/capabilities.d.ts +0 -12
  110. package/dist/claude-agent-sdk.d.ts +0 -92
  111. package/dist/claude-channel.d.ts +0 -28
  112. package/dist/codex-app-server.d.ts +0 -133
  113. package/dist/config.d.ts +0 -18
  114. package/dist/connector/node-connector-options.d.ts +0 -27
  115. package/dist/connector/node-operation-router.d.ts +0 -9
  116. package/dist/connector.d.ts +0 -93
  117. package/dist/control-outbound-scheduler.d.ts +0 -29
  118. package/dist/database.d.ts +0 -305
  119. package/dist/event-buffer.d.ts +0 -9
  120. package/dist/fake-runner.d.ts +0 -42
  121. package/dist/health.d.ts +0 -4
  122. package/dist/main.d.ts +0 -2
  123. package/dist/migrations/v001.d.ts +0 -3
  124. package/dist/migrations/v002.d.ts +0 -4
  125. package/dist/migrations/v003.d.ts +0 -4
  126. package/dist/migrations/v004.d.ts +0 -4
  127. package/dist/native-jsonl-reader.d.ts +0 -35
  128. package/dist/native-session-history.d.ts +0 -126
  129. package/dist/opencode-runtime.d.ts +0 -33
  130. package/dist/opencode-server.d.ts +0 -49
  131. package/dist/operational.d.ts +0 -39
  132. package/dist/process-tree.d.ts +0 -9
  133. package/dist/rotating-log.d.ts +0 -17
  134. package/dist/runner/abstract-runner.d.ts +0 -172
  135. package/dist/runner/claude/managed-run-controller.d.ts +0 -51
  136. package/dist/runner/claude-code-runner.d.ts +0 -72
  137. package/dist/runner/codex/conversation-parser.d.ts +0 -59
  138. package/dist/runner/codex/managed-run-controller.d.ts +0 -90
  139. package/dist/runner/codex-runner.d.ts +0 -103
  140. package/dist/runner/fake-test-runner.d.ts +0 -26
  141. package/dist/runner/opencode/conversation-parser.d.ts +0 -31
  142. package/dist/runner/opencode/managed-run-controller.d.ts +0 -82
  143. package/dist/runner/opencode-runner.d.ts +0 -71
  144. package/dist/runner/runner-registry.d.ts +0 -19
  145. package/dist/runner-command-engine.d.ts +0 -28
  146. package/dist/runner-profiles.d.ts +0 -15
  147. package/dist/runner-usage.d.ts +0 -33
  148. package/dist/runtime-command-detector.d.ts +0 -3
  149. package/dist/runtime-state.d.ts +0 -169
  150. package/dist/service/attachment-domain-state.d.ts +0 -7
  151. package/dist/service/conversation-history-service.d.ts +0 -43
  152. package/dist/service/conversation-segment-service.d.ts +0 -20
  153. package/dist/service/external-session-resume-service.d.ts +0 -34
  154. package/dist/service/fake-managed-run-service.d.ts +0 -28
  155. package/dist/service/managed-runner-session-service.d.ts +0 -12
  156. package/dist/service/mcp-installation-verifier.d.ts +0 -9
  157. package/dist/service/mcp-node-operation-service.d.ts +0 -11
  158. package/dist/service/mcp-package-installer.d.ts +0 -8
  159. package/dist/service/native-session-projection-service.d.ts +0 -52
  160. package/dist/service/native-session-watch-service.d.ts +0 -62
  161. package/dist/service/node-connection-lifecycle-service.d.ts +0 -35
  162. package/dist/service/node-control-channel.d.ts +0 -32
  163. package/dist/service/node-control-message-service.d.ts +0 -27
  164. package/dist/service/node-request-service.d.ts +0 -14
  165. package/dist/service/node-run-event-bridge.d.ts +0 -40
  166. package/dist/service/node-terminal-channel.d.ts +0 -29
  167. package/dist/service/node-upgrade-coordinator.d.ts +0 -29
  168. package/dist/service/node-workspace-coordinator.d.ts +0 -29
  169. package/dist/service/run-attachment-service.d.ts +0 -38
  170. package/dist/service/run-domain-state.d.ts +0 -4
  171. package/dist/service/run-event-service.d.ts +0 -33
  172. package/dist/service/run-workbench-service.d.ts +0 -25
  173. package/dist/service/runner-channel-message-service.d.ts +0 -13
  174. package/dist/service/runner-interaction-service.d.ts +0 -39
  175. package/dist/service/runner-service.d.ts +0 -46
  176. package/dist/service/session-catalog-service.d.ts +0 -45
  177. package/dist/service/session-command-service.d.ts +0 -24
  178. package/dist/service/session-context-service.d.ts +0 -35
  179. package/dist/service/session-domain-state.d.ts +0 -9
  180. package/dist/service/session-identity-service.d.ts +0 -24
  181. package/dist/service/session-lifecycle-service.d.ts +0 -31
  182. package/dist/service/session-message-service.d.ts +0 -33
  183. package/dist/service/session-presentation-service.d.ts +0 -34
  184. package/dist/service/session-query-service.d.ts +0 -35
  185. package/dist/service/skill-directory-service.d.ts +0 -20
  186. package/dist/service/skill-install-service.d.ts +0 -21
  187. package/dist/service/skill-node-operation-service.d.ts +0 -44
  188. package/dist/service/terminal-relay-state.d.ts +0 -6
  189. package/dist/service/terminal-service.d.ts +0 -12
  190. package/dist/service/workbench-event-service.d.ts +0 -9
  191. package/dist/service/workbench-manifest-service.d.ts +0 -90
  192. package/dist/service/workspace-change-service.d.ts +0 -9
  193. package/dist/service/workspace-content-search-service.d.ts +0 -14
  194. package/dist/service/workspace-domain-state.d.ts +0 -79
  195. package/dist/service/workspace-file-service.d.ts +0 -18
  196. package/dist/service/workspace-git-exclude-service.d.ts +0 -4
  197. package/dist/service/workspace-queue-workbench-service.d.ts +0 -86
  198. package/dist/service/workspace-service.d.ts +0 -15
  199. package/dist/service/workspace-session-service.d.ts +0 -23
  200. package/dist/service/workspace-upload-service.d.ts +0 -39
  201. package/dist/service/workspace-watch-service.d.ts +0 -23
  202. package/dist/service/workspace-workbench-service.d.ts +0 -58
  203. package/dist/service.d.ts +0 -4
  204. package/dist/storage.d.ts +0 -2
  205. package/dist/supervisor.d.ts +0 -1
  206. package/dist/terminal.d.ts +0 -133
  207. package/dist/util/node-operation-parsers.d.ts +0 -92
  208. package/dist/util/personal-instructions.d.ts +0 -2
  209. package/dist/util/runner-error.d.ts +0 -6
  210. package/dist/util/runner-native-session-parsers.d.ts +0 -74
  211. package/dist/util/safe-error.d.ts +0 -2
  212. package/dist/util/secret-environment.d.ts +0 -1
  213. package/dist/workspace.d.ts +0 -217
@@ -1,122 +1,2 @@
1
- import { isAbsolute } from 'node:path';
2
- import { listWorkspaceFiles, mutateWorkspaceFile, readWorkspaceFileContentRange, readAllowedTextFile, readWorkspaceTextFile, WorkspaceFileIndex } from '../workspace.js';
3
- const INDEX_CACHE_LIMIT = 8;
4
- export class WorkspaceFileService {
5
- state;
6
- allowedRoots;
7
- onInvalidated;
8
- mutationTails = new Map();
9
- constructor(state, allowedRoots, onInvalidated) {
10
- this.state = state;
11
- this.allowedRoots = allowedRoots;
12
- this.onInvalidated = onInvalidated;
13
- }
14
- async list(workspace, input) {
15
- if ((input.path !== undefined && typeof input.path !== 'string') ||
16
- (input.cursor !== undefined && typeof input.cursor !== 'string') ||
17
- (input.limit !== undefined &&
18
- (!Number.isInteger(input.limit) ||
19
- input.limit < 1 ||
20
- input.limit > 200)))
21
- throw new Error('DIRECTORY_CURSOR_INVALID');
22
- return listWorkspaceFiles(workspace.path, typeof input.path === 'string' ? input.path : '.', typeof input.cursor === 'string' ? input.cursor : undefined, typeof input.limit === 'number' ? input.limit : undefined);
23
- }
24
- async read(workspace, input) {
25
- if (typeof input.path !== 'string' ||
26
- (input.offset !== undefined &&
27
- (!Number.isInteger(input.offset) || input.offset < 0)) ||
28
- (input.limit !== undefined &&
29
- (!Number.isInteger(input.limit) ||
30
- input.limit < 1 ||
31
- input.limit > 512 * 1024)))
32
- throw new Error('FILE_RANGE_INVALID');
33
- const offset = typeof input.offset === 'number' ? input.offset : 0;
34
- const limit = typeof input.limit === 'number' ? input.limit : 512 * 1024;
35
- return isAbsolute(input.path)
36
- ? readAllowedTextFile(input.path, this.allowedRoots(), offset, limit)
37
- : readWorkspaceTextFile(workspace.path, input.path, offset, limit);
38
- }
39
- async readContent(workspace, input) {
40
- if (typeof input.path !== 'string' ||
41
- (input.offset !== undefined &&
42
- (!Number.isInteger(input.offset) || input.offset < 0)) ||
43
- (input.limit !== undefined &&
44
- (!Number.isInteger(input.limit) ||
45
- input.limit < 1 ||
46
- input.limit > 512 * 1024)))
47
- throw new Error('FILE_RANGE_INVALID');
48
- if (isAbsolute(input.path))
49
- throw new Error('FILE_PATH_ESCAPE');
50
- return readWorkspaceFileContentRange(workspace.path, input.path, typeof input.offset === 'number' ? input.offset : 0, typeof input.limit === 'number' ? input.limit : 512 * 1024);
51
- }
52
- async search(workspace, input) {
53
- if (typeof input.query !== 'string' ||
54
- (input.cursor !== undefined && typeof input.cursor !== 'string') ||
55
- (input.includeDirectories !== undefined && typeof input.includeDirectories !== 'boolean') ||
56
- (input.limit !== undefined &&
57
- (!Number.isInteger(input.limit) ||
58
- input.limit < 1 ||
59
- input.limit > 200)))
60
- throw new Error('FILE_SEARCH_LIMIT_EXCEEDED');
61
- return this.index(workspace).search(input.query, typeof input.cursor === 'string' ? input.cursor : undefined, typeof input.limit === 'number' ? input.limit : undefined, input.includeDirectories === true);
62
- }
63
- async mutate(workspace, input) {
64
- const action = input.action;
65
- if ((action !== 'CREATE_FILE' &&
66
- action !== 'CREATE_DIRECTORY' &&
67
- action !== 'MOVE' &&
68
- action !== 'DELETE') ||
69
- typeof input.path !== 'string' ||
70
- (action === 'MOVE' && typeof input.destination !== 'string'))
71
- throw new Error('FILE_MUTATION_INVALID');
72
- const path = input.path;
73
- const destination = typeof input.destination === 'string' ? input.destination : undefined;
74
- return this.serializeMutation(workspace.id, async () => {
75
- const result = await mutateWorkspaceFile(workspace.path, action === 'MOVE' ? { action, path, destination: destination } : { action, path });
76
- this.dispose(workspace.id);
77
- this.onInvalidated(workspace.id);
78
- return result;
79
- });
80
- }
81
- async serializeMutation(workspaceId, operation) {
82
- const previous = this.mutationTails.get(workspaceId) ?? Promise.resolve();
83
- const result = previous.then(operation, operation);
84
- const tail = result.then(() => undefined, () => undefined);
85
- this.mutationTails.set(workspaceId, tail);
86
- try {
87
- return await result;
88
- }
89
- finally {
90
- if (this.mutationTails.get(workspaceId) === tail)
91
- this.mutationTails.delete(workspaceId);
92
- }
93
- }
94
- index(workspace) {
95
- let index = this.state.fileIndexes.get(workspace.id);
96
- if (index === undefined) {
97
- if (this.state.fileIndexes.size >= INDEX_CACHE_LIMIT) {
98
- const oldest = this.state.fileIndexes.entries().next().value;
99
- if (oldest !== undefined) {
100
- oldest[1].dispose();
101
- this.state.fileIndexes.delete(oldest[0]);
102
- }
103
- }
104
- index = new WorkspaceFileIndex(workspace.path, {
105
- onInvalidated: () => this.onInvalidated(workspace.id)
106
- });
107
- }
108
- this.state.fileIndexes.delete(workspace.id);
109
- this.state.fileIndexes.set(workspace.id, index);
110
- return index;
111
- }
112
- dispose(workspaceId) {
113
- if (workspaceId !== undefined) {
114
- this.state.fileIndexes.get(workspaceId)?.dispose();
115
- this.state.fileIndexes.delete(workspaceId);
116
- return;
117
- }
118
- for (const index of this.state.fileIndexes.values())
119
- index.dispose();
120
- this.state.fileIndexes.clear();
121
- }
122
- }
1
+ /* mar-release-protected */
2
+ const _0x477d1b=_0x1f6c;(function(_0x4a8d22,_0x2e50bf){const _0x3e37d1=_0x1f6c,_0x1ef9cc=_0x4a8d22();while(!![]){try{const _0x1dc102=parseInt(_0x3e37d1(0x1ff))/(-0x9c*0x5+-0x269c+0x1b*0x18b)*(-parseInt(_0x3e37d1(0x21e))/(0xda*-0xb+-0x1*0xfad+-0x190d*-0x1))+parseInt(_0x3e37d1(0x21c))/(-0x1556+-0x6*-0x3e5+0xb*-0x2f)+-parseInt(_0x3e37d1(0x211))/(-0x4db*-0x6+0x1*0x1d83+-0x3aa1)+parseInt(_0x3e37d1(0x200))/(0x269f+-0x19fe+-0xc9c)*(parseInt(_0x3e37d1(0x202))/(0x1212+-0x147f+0xb*0x39))+-parseInt(_0x3e37d1(0x20f))/(-0x17b5+-0x90f*0x1+0x17*0x16d)*(parseInt(_0x3e37d1(0x1fc))/(0x259f*-0x1+0x1be6+0x9c1))+parseInt(_0x3e37d1(0x21b))/(-0x250d+0x1*0x362+-0xb3c*-0x3)+parseInt(_0x3e37d1(0x20d))/(-0x1e7a+0x7a*0x39+0x35a)*(parseInt(_0x3e37d1(0x20a))/(0x1c9*-0xf+0x611*0x1+0x14c1));if(_0x1dc102===_0x2e50bf)break;else _0x1ef9cc['push'](_0x1ef9cc['shift']());}catch(_0x20c08f){_0x1ef9cc['push'](_0x1ef9cc['shift']());}}}(_0x407d,-0xc80c6+-0x144c2+0x3b435*0x6));import{isAbsolute}from'node:path';import{listWorkspaceFiles,mutateWorkspaceFile,readWorkspaceFileContentRange,readAllowedTextFile,readWorkspaceTextFile,WorkspaceFileIndex}from'../workspace.js';function _0x1f6c(_0x332183,_0x2e2ecb){_0x332183=_0x332183-(-0x4*0x332+0x5*0x6d3+-0x1*0x1363);const _0x4c74f=_0x407d();let _0x508236=_0x4c74f[_0x332183];if(_0x1f6c['CUWlGw']===undefined){var _0x4f4905=function(_0x2dd1a3){const _0x42283d='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4256ef='',_0x4f1779='';for(let _0x33137c=0x185*-0x13+-0xd25+0x2a04,_0x3e0f7a,_0xe29d8f,_0x472175=-0x1*0x2597+0x2ce*-0x8+0x3c07;_0xe29d8f=_0x2dd1a3['charAt'](_0x472175++);~_0xe29d8f&&(_0x3e0f7a=_0x33137c%(0x56*0x25+-0x1b91*-0x1+-0x27fb)?_0x3e0f7a*(-0x91*0x21+-0x1b72+0x2e63)+_0xe29d8f:_0xe29d8f,_0x33137c++%(0x1252*-0x2+-0x1314+0x37bc))?_0x4256ef+=String['fromCharCode'](-0xfdf+-0xd9*-0x1f+0x323*-0x3&_0x3e0f7a>>(-(0x83*-0x7+0x1809+0xa39*-0x2)*_0x33137c&0x1c36+0x66b*0x1+0xb89*-0x3)):-0x1af1+0x1a2e*0x1+0xc3){_0xe29d8f=_0x42283d['indexOf'](_0xe29d8f);}for(let _0x4fa0fd=0xb*0xc2+0x715+-0xf6b,_0x56557d=_0x4256ef['length'];_0x4fa0fd<_0x56557d;_0x4fa0fd++){_0x4f1779+='%'+('00'+_0x4256ef['charCodeAt'](_0x4fa0fd)['toString'](0x17*-0x85+-0x247*-0x7+-0x3ee))['slice'](-(0xa4*0x1+0x1244+0x973*-0x2));}return decodeURIComponent(_0x4f1779);};_0x1f6c['AKtaqr']=_0x4f4905,_0x1f6c['zGTtmn']={},_0x1f6c['CUWlGw']=!![];}const _0x21c10c=_0x4c74f[-0x14*-0x1eb+-0xbf7+0xe9*-0x1d];_0x1f6c['yAGdsP']!==_0x21c10c&&(_0x1f6c['zGTtmn']={},_0x1f6c['yAGdsP']=_0x21c10c);const _0xfcbbe9=_0x1f6c['zGTtmn'][_0x332183];return _0xfcbbe9===undefined?(_0x508236=_0x1f6c['AKtaqr'](_0x508236),_0x1f6c['zGTtmn'][_0x332183]=_0x508236):_0x508236=_0xfcbbe9,_0x508236;}const INDEX_CACHE_LIMIT=0x1056+0x14f9+-0x2547;export class WorkspaceFileService{[_0x477d1b(0x218)];[_0x477d1b(0x1f4)];[_0x477d1b(0x215)];[_0x477d1b(0x1f6)]=new Map();constructor(_0x434179,_0x4d3d99,_0x389c37){const _0x50ea83=_0x477d1b;this[_0x50ea83(0x218)]=_0x434179,this[_0x50ea83(0x1f4)]=_0x4d3d99,this[_0x50ea83(0x215)]=_0x389c37;}async[_0x477d1b(0x216)](_0x2c494b,_0x577ab5){const _0x527031=_0x477d1b;if(_0x577ab5[_0x527031(0x214)]!==undefined&&typeof _0x577ab5[_0x527031(0x214)]!==_0x527031(0x20b)||_0x577ab5[_0x527031(0x208)]!==undefined&&typeof _0x577ab5[_0x527031(0x208)]!==_0x527031(0x20b)||_0x577ab5[_0x527031(0x227)]!==undefined&&(!Number[_0x527031(0x21a)](_0x577ab5[_0x527031(0x227)])||_0x577ab5[_0x527031(0x227)]<-0x1670+0x151*0x13+-0x292||_0x577ab5[_0x527031(0x227)]>0x56*0x25+-0x1b91*-0x1+-0x2737))throw new Error(_0x527031(0x201));return listWorkspaceFiles(_0x2c494b[_0x527031(0x214)],typeof _0x577ab5[_0x527031(0x214)]===_0x527031(0x20b)?_0x577ab5[_0x527031(0x214)]:'.',typeof _0x577ab5[_0x527031(0x208)]===_0x527031(0x20b)?_0x577ab5[_0x527031(0x208)]:undefined,typeof _0x577ab5[_0x527031(0x227)]===_0x527031(0x213)?_0x577ab5[_0x527031(0x227)]:undefined);}async[_0x477d1b(0x20c)](_0x3feb3c,_0x37098e){const _0x314d54=_0x477d1b;if(typeof _0x37098e[_0x314d54(0x214)]!==_0x314d54(0x20b)||_0x37098e[_0x314d54(0x1fa)]!==undefined&&(!Number[_0x314d54(0x21a)](_0x37098e[_0x314d54(0x1fa)])||_0x37098e[_0x314d54(0x1fa)]<-0x91*0x21+-0x1b72+0x2e23)||_0x37098e[_0x314d54(0x227)]!==undefined&&(!Number[_0x314d54(0x21a)](_0x37098e[_0x314d54(0x227)])||_0x37098e[_0x314d54(0x227)]<0x1252*-0x2+-0x1314+0x37b9||_0x37098e[_0x314d54(0x227)]>(-0xfdf+-0xd9*-0x1f+0x434*-0x2)*(0x83*-0x7+0x1809+0x4e*-0x36)))throw new Error(_0x314d54(0x1f5));const _0x3484f8=typeof _0x37098e[_0x314d54(0x1fa)]===_0x314d54(0x213)?_0x37098e[_0x314d54(0x1fa)]:0x1c36+0x66b*0x1+0x3d9*-0x9,_0xbfa7cf=typeof _0x37098e[_0x314d54(0x227)]===_0x314d54(0x213)?_0x37098e[_0x314d54(0x227)]:(-0x1af1+0x1a2e*0x1+0x2c3)*(0xb*0xc2+0x715+-0xb6b);return isAbsolute(_0x37098e[_0x314d54(0x214)])?readAllowedTextFile(_0x37098e[_0x314d54(0x214)],this[_0x314d54(0x1f4)](),_0x3484f8,_0xbfa7cf):readWorkspaceTextFile(_0x3feb3c[_0x314d54(0x214)],_0x37098e[_0x314d54(0x214)],_0x3484f8,_0xbfa7cf);}async[_0x477d1b(0x203)](_0x16759a,_0x50dff6){const _0x523cd2=_0x477d1b;if(typeof _0x50dff6[_0x523cd2(0x214)]!==_0x523cd2(0x20b)||_0x50dff6[_0x523cd2(0x1fa)]!==undefined&&(!Number[_0x523cd2(0x21a)](_0x50dff6[_0x523cd2(0x1fa)])||_0x50dff6[_0x523cd2(0x1fa)]<0x17*-0x85+-0x247*-0x7+-0x3fe)||_0x50dff6[_0x523cd2(0x227)]!==undefined&&(!Number[_0x523cd2(0x21a)](_0x50dff6[_0x523cd2(0x227)])||_0x50dff6[_0x523cd2(0x227)]<0xa4*0x1+0x1244+0x12e7*-0x1||_0x50dff6[_0x523cd2(0x227)]>(-0x14*-0x1eb+-0xbf7+0x4e1*-0x5)*(0x2d2+0x4f*-0x4+0x26a)))throw new Error(_0x523cd2(0x1f5));if(isAbsolute(_0x50dff6[_0x523cd2(0x214)]))throw new Error(_0x523cd2(0x217));return readWorkspaceFileContentRange(_0x16759a[_0x523cd2(0x214)],_0x50dff6[_0x523cd2(0x214)],typeof _0x50dff6[_0x523cd2(0x1fa)]===_0x523cd2(0x213)?_0x50dff6[_0x523cd2(0x1fa)]:0x1*-0x1a21+-0x188*0x1+-0x61*-0x49,typeof _0x50dff6[_0x523cd2(0x227)]===_0x523cd2(0x213)?_0x50dff6[_0x523cd2(0x227)]:(0x1335*0x1+-0x13f*-0x15+-0x15b*0x20)*(0x372+-0xde5*0x1+0xe73));}async[_0x477d1b(0x224)](_0x5534eb,_0x1139f1){const _0x1b0e7b=_0x477d1b;if(typeof _0x1139f1[_0x1b0e7b(0x1fe)]!==_0x1b0e7b(0x20b)||_0x1139f1[_0x1b0e7b(0x208)]!==undefined&&typeof _0x1139f1[_0x1b0e7b(0x208)]!==_0x1b0e7b(0x20b)||_0x1139f1[_0x1b0e7b(0x219)]!==undefined&&typeof _0x1139f1[_0x1b0e7b(0x219)]!==_0x1b0e7b(0x1f8)||_0x1139f1[_0x1b0e7b(0x227)]!==undefined&&(!Number[_0x1b0e7b(0x21a)](_0x1139f1[_0x1b0e7b(0x227)])||_0x1139f1[_0x1b0e7b(0x227)]<-0x1b79*0x1+-0xb31+0x13*0x209||_0x1139f1[_0x1b0e7b(0x227)]>0x69c+-0x2248+0x1c74))throw new Error(_0x1b0e7b(0x210));return this[_0x1b0e7b(0x220)](_0x5534eb)[_0x1b0e7b(0x224)](_0x1139f1[_0x1b0e7b(0x1fe)],typeof _0x1139f1[_0x1b0e7b(0x208)]===_0x1b0e7b(0x20b)?_0x1139f1[_0x1b0e7b(0x208)]:undefined,typeof _0x1139f1[_0x1b0e7b(0x227)]===_0x1b0e7b(0x213)?_0x1139f1[_0x1b0e7b(0x227)]:undefined,_0x1139f1[_0x1b0e7b(0x219)]===!![]);}async[_0x477d1b(0x228)](_0x4c7c9e,_0x42260c){const _0x2f790f=_0x477d1b,_0x22e19f=_0x42260c[_0x2f790f(0x206)];if(_0x22e19f!==_0x2f790f(0x20e)&&_0x22e19f!==_0x2f790f(0x209)&&_0x22e19f!==_0x2f790f(0x21f)&&_0x22e19f!==_0x2f790f(0x212)||typeof _0x42260c[_0x2f790f(0x214)]!==_0x2f790f(0x20b)||_0x22e19f===_0x2f790f(0x21f)&&typeof _0x42260c[_0x2f790f(0x1fd)]!==_0x2f790f(0x20b))throw new Error(_0x2f790f(0x1f7));const _0x24298d=_0x42260c[_0x2f790f(0x214)],_0x17b50d=typeof _0x42260c[_0x2f790f(0x1fd)]===_0x2f790f(0x20b)?_0x42260c[_0x2f790f(0x1fd)]:undefined;return this[_0x2f790f(0x226)](_0x4c7c9e['id'],async()=>{const _0x44454f=_0x2f790f,_0x54e3f1=await mutateWorkspaceFile(_0x4c7c9e[_0x44454f(0x214)],_0x22e19f===_0x44454f(0x21f)?{'action':_0x22e19f,'path':_0x24298d,'destination':_0x17b50d}:{'action':_0x22e19f,'path':_0x24298d});return this[_0x44454f(0x229)](_0x4c7c9e['id']),this[_0x44454f(0x215)](_0x4c7c9e['id']),_0x54e3f1;});}async[_0x477d1b(0x226)](_0x3a106a,_0x2c8369){const _0x20224c=_0x477d1b,_0x5570ab=this[_0x20224c(0x1f6)][_0x20224c(0x1f9)](_0x3a106a)??Promise[_0x20224c(0x204)](),_0x39bfe5=_0x5570ab[_0x20224c(0x22b)](_0x2c8369,_0x2c8369),_0x14582b=_0x39bfe5[_0x20224c(0x22b)](()=>undefined,()=>undefined);this[_0x20224c(0x1f6)][_0x20224c(0x1fb)](_0x3a106a,_0x14582b);try{return await _0x39bfe5;}finally{if(this[_0x20224c(0x1f6)][_0x20224c(0x1f9)](_0x3a106a)===_0x14582b)this[_0x20224c(0x1f6)][_0x20224c(0x223)](_0x3a106a);}}[_0x477d1b(0x220)](_0x4f25ee){const _0x2b0d59=_0x477d1b;let _0xb53d66=this[_0x2b0d59(0x218)][_0x2b0d59(0x207)][_0x2b0d59(0x1f9)](_0x4f25ee['id']);if(_0xb53d66===undefined){if(this[_0x2b0d59(0x218)][_0x2b0d59(0x207)][_0x2b0d59(0x221)]>=INDEX_CACHE_LIMIT){const _0x5f5bff=this[_0x2b0d59(0x218)][_0x2b0d59(0x207)][_0x2b0d59(0x21d)]()[_0x2b0d59(0x222)]()[_0x2b0d59(0x22a)];_0x5f5bff!==undefined&&(_0x5f5bff[0x8b2+-0x43*0x31+-0x2e*-0x17][_0x2b0d59(0x229)](),this[_0x2b0d59(0x218)][_0x2b0d59(0x207)][_0x2b0d59(0x223)](_0x5f5bff[0xa1*-0xe+0x225c*0x1+0xcc7*-0x2]));}_0xb53d66=new WorkspaceFileIndex(_0x4f25ee[_0x2b0d59(0x214)],{'onInvalidated':()=>this[_0x2b0d59(0x215)](_0x4f25ee['id'])});}return this[_0x2b0d59(0x218)][_0x2b0d59(0x207)][_0x2b0d59(0x223)](_0x4f25ee['id']),this[_0x2b0d59(0x218)][_0x2b0d59(0x207)][_0x2b0d59(0x1fb)](_0x4f25ee['id'],_0xb53d66),_0xb53d66;}[_0x477d1b(0x229)](_0x41cd3c){const _0xdcd0bb=_0x477d1b;if(_0x41cd3c!==undefined){this[_0xdcd0bb(0x218)][_0xdcd0bb(0x207)][_0xdcd0bb(0x1f9)](_0x41cd3c)?.[_0xdcd0bb(0x229)](),this[_0xdcd0bb(0x218)][_0xdcd0bb(0x207)][_0xdcd0bb(0x223)](_0x41cd3c);return;}for(const _0x234251 of this[_0xdcd0bb(0x218)][_0xdcd0bb(0x207)][_0xdcd0bb(0x205)]())_0x234251[_0xdcd0bb(0x229)]();this[_0xdcd0bb(0x218)][_0xdcd0bb(0x207)][_0xdcd0bb(0x225)]();}}function _0x407d(){const _0x1d292f=['q1jfqvrfx0zjteu','mtrdELjoyxy','rKLmrv9trufsq0HFteLnsvrFrvHdruveruq','nZa0odi4sKPMwu1y','revmrvrf','BNvTyMvY','Cgf0Aa','B25jBNzHBgLKyxrLza','BgLZDa','rKLmrv9qqvrix0vtq0fqrq','C3rHDgu','Aw5JBhvKzurPCMvJDg9YAwvZ','AxnjBNrLz2vY','mteYmtGWnwzhCwHpBW','mJiWmJq1nLv2Afjbrq','zw50CMLLCW','mtC1odm0s2jvv2jh','tu9wrq','Aw5KzxG','C2L6zq','BMv4Da','zgvSzxrL','C2vHCMnO','y2XLyxi','C2vYAwfSAxPLtxv0yxrPB24','BgLTAxq','Bxv0yxrL','zgLZCg9Zzq','DMfSDwu','DgHLBG','ywXSB3DLzfjVB3rZ','rKLmrv9squ5hrv9jtLzbteLe','Bxv0yxrPB25uywLSCW','rKLmrv9nvvrbveLptL9jtLzbteLe','yM9VBgvHBG','z2v0','B2zMC2v0','C2v0','nJq2mJGWCKHvuuL5','zgvZDgLUyxrPB24','CxvLCNK','n1LbwgjvwG','mJi0nwjqC3rsqq','reLsrunut1jzx0nvuLnpuL9jtLzbteLe','nZG2rvnYq2r0','CMvHzenVBNrLBNq','CMvZB2X2zq','DMfSDwvZ','ywn0Aw9U','zMLSzuLUzgv4zxm','y3vYC29Y','q1jfqvrfx0rjuKvdve9swq','mJuZmhbYuenTAq','C3rYAw5N','CMvHza','mJu2mZbkC3LdC1O'];_0x407d=function(){return _0x1d292f;};return _0x407d();}
@@ -1,119 +1,2 @@
1
- import { randomUUID } from 'node:crypto';
2
- import { execFile } from 'node:child_process';
3
- import { lstat, mkdir, readFile, rename, rm, writeFile } from 'node:fs/promises';
4
- import path from 'node:path';
5
- import { promisify } from 'node:util';
6
- const MAR_TEMP_DIRECTORY = '/.mar/';
7
- const BLOCK_BEGIN = '# BEGIN MyAgentRoam';
8
- const BLOCK_END = '# END MyAgentRoam';
9
- const LEGACY_BLOCK_BEGIN = '# BEGIN MyAgentRoam Skills';
10
- const LEGACY_BLOCK_END = '# END MyAgentRoam Skills';
11
- export async function ensureWorkspaceGitExclude(workspace) {
12
- await mutateGitExclude(workspace, (entries) => entries.add(MAR_TEMP_DIRECTORY));
13
- }
14
- export async function updateWorkspaceSkillGitExclude(workspace, name, add) {
15
- await mutateGitExclude(workspace, (entries) => {
16
- entries.add(MAR_TEMP_DIRECTORY);
17
- for (const root of ['.agents', '.claude']) {
18
- const line = `/${root}/skills/${name}/`;
19
- if (add)
20
- entries.add(line);
21
- else
22
- entries.delete(line);
23
- }
24
- });
25
- }
26
- export async function rewriteWorkspaceGitExclude(workspace, names) {
27
- await mutateGitExclude(workspace, (entries) => {
28
- entries.clear();
29
- entries.add(MAR_TEMP_DIRECTORY);
30
- for (const name of names)
31
- for (const root of ['.agents', '.claude'])
32
- entries.add(`/${root}/skills/${name}/`);
33
- });
34
- }
35
- export async function hasBrokenWorkspaceSkillGitExclude(workspace, names) {
36
- if (!(await exists(path.join(workspace, '.git'))))
37
- return false;
38
- try {
39
- const exclude = await resolveGitExclude(workspace);
40
- const content = await readFile(exclude, 'utf8');
41
- return names
42
- .flatMap((name) => [`/.agents/skills/${name}/`, `/.claude/skills/${name}/`])
43
- .some((entry) => !content.includes(entry));
44
- }
45
- catch {
46
- return true;
47
- }
48
- }
49
- async function mutateGitExclude(workspace, mutate) {
50
- if (!(await exists(path.join(workspace, '.git'))))
51
- return;
52
- const exclude = await resolveGitExclude(workspace);
53
- await mkdir(path.dirname(exclude), { recursive: true });
54
- let content = '';
55
- try {
56
- const excludeStat = await lstat(exclude);
57
- if (!excludeStat.isFile() || excludeStat.isSymbolicLink())
58
- throw new Error('WORKSPACE_SKILL_GIT_EXCLUDE_FAILED');
59
- content = await readFile(exclude, 'utf8');
60
- }
61
- catch (error) {
62
- if (!isMissing(error))
63
- throw error;
64
- }
65
- const pattern = managedBlockPattern();
66
- const existing = [...content.matchAll(pattern)].map((match) => match[0]).join('\n');
67
- const entries = new Set(existing.split(/\r?\n/u).filter((line) => line.startsWith('/.')));
68
- mutate(entries);
69
- const block = `${BLOCK_BEGIN}\n${[...entries].sort().join('\n')}\n${BLOCK_END}\n`;
70
- const next = content.replace(pattern, '').replace(/\s*$/u, '\n') + block;
71
- const staging = path.join(path.dirname(exclude), `.mar-git-exclude-${randomUUID()}.tmp`);
72
- try {
73
- await writeFile(staging, next, { encoding: 'utf8', flag: 'wx' });
74
- await rename(staging, exclude);
75
- }
76
- catch (error) {
77
- await rm(staging, { force: true });
78
- throw error;
79
- }
80
- }
81
- async function resolveGitExclude(workspace) {
82
- try {
83
- const result = await promisify(execFile)('git', ['-C', workspace, 'rev-parse', '--git-path', 'info/exclude', '--git-common-dir'], { timeout: 5_000, windowsHide: true });
84
- const [excludeOutput, commonOutput] = result.stdout.trim().split(/\r?\n/u);
85
- if (!excludeOutput || !commonOutput)
86
- throw new Error();
87
- const exclude = path.resolve(workspace, excludeOutput);
88
- const common = path.resolve(workspace, commonOutput);
89
- const relative = path.relative(common, exclude);
90
- if (relative.startsWith('..') || path.isAbsolute(relative))
91
- throw new Error();
92
- return exclude;
93
- }
94
- catch {
95
- throw new Error('WORKSPACE_SKILL_GIT_EXCLUDE_FAILED');
96
- }
97
- }
98
- async function exists(value) {
99
- try {
100
- await lstat(value);
101
- return true;
102
- }
103
- catch (error) {
104
- if (isMissing(error))
105
- return false;
106
- throw error;
107
- }
108
- }
109
- function isMissing(error) {
110
- return (error instanceof Error && 'code' in error && error.code === 'ENOENT');
111
- }
112
- function escapeRegExp(value) {
113
- return value.replace(/[.*+?^${}()|[\]\\]/gu, '\\$&');
114
- }
115
- function managedBlockPattern() {
116
- const current = `${escapeRegExp(BLOCK_BEGIN)}\\r?\\n[\\s\\S]*?${escapeRegExp(BLOCK_END)}(?:\\r?\\n)?`;
117
- const legacy = `${escapeRegExp(LEGACY_BLOCK_BEGIN)}\\r?\\n[\\s\\S]*?${escapeRegExp(LEGACY_BLOCK_END)}(?:\\r?\\n)?`;
118
- return new RegExp(`(?:${current}|${legacy})`, 'gu');
119
- }
1
+ /* mar-release-protected */
2
+ const _0x40cd4a=_0xd751;(function(_0x3a79e7,_0x293862){const _0x58d806=_0xd751,_0x12f18c=_0x3a79e7();while(!![]){try{const _0x187528=parseInt(_0x58d806(0xb9))/(-0x3c4*-0x2+0x234a+0x61*-0x71)+parseInt(_0x58d806(0xe0))/(-0xb50+0x7*-0x485+0x2af5)+-parseInt(_0x58d806(0xe4))/(-0x124b+0x146d+0x1*-0x21f)+-parseInt(_0x58d806(0xec))/(-0x47*-0x65+-0x2cd*0x5+-0xdfe)*(parseInt(_0x58d806(0xc0))/(-0xb*0x198+-0x761+0x1*0x18ee))+parseInt(_0x58d806(0xb7))/(-0x1cb3+-0x842+-0x1*-0x24fb)+parseInt(_0x58d806(0xbb))/(0x1*0x1db7+-0x1f9e+0xf7*0x2)+-parseInt(_0x58d806(0xdd))/(0x4a1+-0xd6*-0x4+-0x7f1);if(_0x187528===_0x293862)break;else _0x12f18c['push'](_0x12f18c['shift']());}catch(_0x3cb5ee){_0x12f18c['push'](_0x12f18c['shift']());}}}(_0x3b4a,-0x2*0x249fb+-0x1*-0x108c37+-0x4*0xddd1));import{randomUUID}from'node:crypto';import{execFile}from'node:child_process';import{lstat,mkdir,readFile,rename,rm,writeFile}from'node:fs/promises';import _0x10b9b6 from'node:path';import{promisify}from'node:util';const MAR_TEMP_DIRECTORY=_0x40cd4a(0xdb),BLOCK_BEGIN=_0x40cd4a(0xba),BLOCK_END=_0x40cd4a(0xd7),LEGACY_BLOCK_BEGIN=_0x40cd4a(0xe2),LEGACY_BLOCK_END=_0x40cd4a(0xc8);export async function ensureWorkspaceGitExclude(_0x34777a){const _0x52ed49=_0x40cd4a;await mutateGitExclude(_0x34777a,_0x457673=>_0x457673[_0x52ed49(0xeb)](MAR_TEMP_DIRECTORY));}export async function updateWorkspaceSkillGitExclude(_0x5a02f0,_0x1e7c6e,_0x4ef0b3){await mutateGitExclude(_0x5a02f0,_0x1c1d79=>{const _0x1bc9c3=_0xd751;_0x1c1d79[_0x1bc9c3(0xeb)](MAR_TEMP_DIRECTORY);for(const _0xf2f6cc of[_0x1bc9c3(0xee),_0x1bc9c3(0xd4)]){const _0xa9829c='/'+_0xf2f6cc+_0x1bc9c3(0xc5)+_0x1e7c6e+'/';if(_0x4ef0b3)_0x1c1d79[_0x1bc9c3(0xeb)](_0xa9829c);else _0x1c1d79[_0x1bc9c3(0xc1)](_0xa9829c);}});}export async function rewriteWorkspaceGitExclude(_0x23d755,_0x55efe1){await mutateGitExclude(_0x23d755,_0x568508=>{const _0x4bbaaa=_0xd751;_0x568508[_0x4bbaaa(0xc4)](),_0x568508[_0x4bbaaa(0xeb)](MAR_TEMP_DIRECTORY);for(const _0x3a69ea of _0x55efe1)for(const _0x22a506 of[_0x4bbaaa(0xee),_0x4bbaaa(0xd4)])_0x568508[_0x4bbaaa(0xeb)]('/'+_0x22a506+_0x4bbaaa(0xc5)+_0x3a69ea+'/');});}export async function hasBrokenWorkspaceSkillGitExclude(_0x280115,_0x9e92ee){const _0x7d983c=_0x40cd4a;if(!await exists(_0x10b9b6[_0x7d983c(0xe3)](_0x280115,_0x7d983c(0xe1))))return![];try{const _0x50a5ac=await resolveGitExclude(_0x280115),_0x2167e6=await readFile(_0x50a5ac,_0x7d983c(0xe8));return _0x9e92ee[_0x7d983c(0xc7)](_0x144376=>[_0x7d983c(0xda)+_0x144376+'/',_0x7d983c(0xd1)+_0x144376+'/'])[_0x7d983c(0xd2)](_0x13a61a=>!_0x2167e6[_0x7d983c(0xe7)](_0x13a61a));}catch{return!![];}}async function mutateGitExclude(_0xf821ab,_0x28c2ad){const _0x4d8aee=_0x40cd4a;if(!await exists(_0x10b9b6[_0x4d8aee(0xe3)](_0xf821ab,_0x4d8aee(0xe1))))return;const _0x5f21c9=await resolveGitExclude(_0xf821ab);await mkdir(_0x10b9b6[_0x4d8aee(0xea)](_0x5f21c9),{'recursive':!![]});let _0x2a36e1='';try{const _0x400f98=await lstat(_0x5f21c9);if(!_0x400f98[_0x4d8aee(0xca)]()||_0x400f98[_0x4d8aee(0xc2)]())throw new Error(_0x4d8aee(0xd8));_0x2a36e1=await readFile(_0x5f21c9,_0x4d8aee(0xe8));}catch(_0x1297d7){if(!isMissing(_0x1297d7))throw _0x1297d7;}const _0x4fb126=managedBlockPattern(),_0x297d97=[..._0x2a36e1[_0x4d8aee(0xb8)](_0x4fb126)][_0x4d8aee(0xbd)](_0x43dd79=>_0x43dd79[0x61*0x34+0x7cf*-0x3+0x3b9])[_0x4d8aee(0xe3)]('\x0a'),_0x5598d1=new Set(_0x297d97[_0x4d8aee(0xce)](/\r?\n/u)[_0x4d8aee(0xbe)](_0x1b348d=>_0x1b348d[_0x4d8aee(0xe5)]('/.')));_0x28c2ad(_0x5598d1);const _0x421bee=BLOCK_BEGIN+'\x0a'+[..._0x5598d1][_0x4d8aee(0xcc)]()[_0x4d8aee(0xe3)]('\x0a')+'\x0a'+BLOCK_END+'\x0a',_0x47ddce=_0x2a36e1[_0x4d8aee(0xd5)](_0x4fb126,'')[_0x4d8aee(0xd5)](/\s*$/u,'\x0a')+_0x421bee,_0x1ea80e=_0x10b9b6[_0x4d8aee(0xe3)](_0x10b9b6[_0x4d8aee(0xea)](_0x5f21c9),_0x4d8aee(0xc6)+randomUUID()+_0x4d8aee(0xd0));try{await writeFile(_0x1ea80e,_0x47ddce,{'encoding':_0x4d8aee(0xe8),'flag':'wx'}),await rename(_0x1ea80e,_0x5f21c9);}catch(_0x1be239){await rm(_0x1ea80e,{'force':!![]});throw _0x1be239;}}async function resolveGitExclude(_0x45e1a2){const _0x319397=_0x40cd4a;try{const _0x291c8f=await promisify(execFile)(_0x319397(0xd9),['-C',_0x45e1a2,_0x319397(0xd6),_0x319397(0xc3),_0x319397(0xd3),_0x319397(0xe6)],{'timeout':0x1388,'windowsHide':!![]}),[_0x3ffce8,_0x4c3be1]=_0x291c8f[_0x319397(0xbc)][_0x319397(0xc9)]()[_0x319397(0xce)](/\r?\n/u);if(!_0x3ffce8||!_0x4c3be1)throw new Error();const _0x57d05b=_0x10b9b6[_0x319397(0xed)](_0x45e1a2,_0x3ffce8),_0xcb728b=_0x10b9b6[_0x319397(0xed)](_0x45e1a2,_0x4c3be1),_0x3c4e59=_0x10b9b6[_0x319397(0xbf)](_0xcb728b,_0x57d05b);if(_0x3c4e59[_0x319397(0xe5)]('..')||_0x10b9b6[_0x319397(0xdf)](_0x3c4e59))throw new Error();return _0x57d05b;}catch{throw new Error(_0x319397(0xd8));}}function _0x3b4a(){const _0x1f55bb=['C29YDa','xcqM','C3bSAxq','kd86','lNrTCa','lY5JBgf1zguVC2TPBgXZlW','C29Tzq','Aw5MBY9LEgnSDwrL','lMnSyxvKzq','CMvWBgfJzq','CMv2lxbHCNnL','iYbftKqGtxLbz2vUDfjVyw0','v09ss1nqqunfx1nlsuXmx0Djvf9fwenmvurfx0zbsuXfra','z2L0','lY5Hz2vUDhmVC2TPBgXZlW','lY5TyxiV','y29Kzq','nZi4ndK4nfLNyxjrBa','kd86xhi/xg4PpW','AxnbyNnVBhv0zq','mtu5mdiZofvLzhLrzq','lMDPDa','iYbcruDjtIbnEufNzw50uM9HBsbtA2LSBhm','AM9PBG','mtaWmZi2EufJz09R','C3rHCNrZv2L0Aa','ls1NAxqTy29TBw9UlwrPCG','Aw5JBhvKzxm','DxrMoa','ru5pru5u','zgLYBMfTzq','ywrK','mJbeDwvrq0K','CMvZB2X2zq','lMfNzw50CW','mtuXnde2mfLLwNjcza','Bwf0y2HbBgW','odK2n2fVANDjuW','iYbcruDjtIbnEufNzw50uM9HBq','ntC1mZGXmvHIsLjuAq','C3rKB3v0','BwfW','zMLSDgvY','CMvSyxrPDMu','mZC3mdq1qM5uwe5Z','zgvSzxrL','AxntEw1IB2XPy0XPBMS','ls1NAxqTCgf0Aa','y2XLyxi','l3nRAwXSCY8','lM1HCI1NAxqTzxHJBhvKzs0','zMXHDe1HCa','iYbftKqGtxLbz2vUDfjVyw0Gu2TPBgXZ','DhjPBq','AxngAwXL','xhi/xg5BxhnCu10QpW'];_0x3b4a=function(){return _0x1f55bb;};return _0x3b4a();}async function exists(_0x1f1ab8){try{return await lstat(_0x1f1ab8),!![];}catch(_0x43079f){if(isMissing(_0x43079f))return![];throw _0x43079f;}}function isMissing(_0x33e5d6){const _0x17f851=_0x40cd4a;return _0x33e5d6 instanceof Error&&_0x17f851(0xdc)in _0x33e5d6&&_0x33e5d6[_0x17f851(0xdc)]===_0x17f851(0xe9);}function escapeRegExp(_0x16ac9e){const _0x538a5e=_0x40cd4a;return _0x16ac9e[_0x538a5e(0xd5)](/[.*+?^${}()|[\]\\]/gu,_0x538a5e(0xcd));}function _0xd751(_0x4ea7af,_0x8e5f75){_0x4ea7af=_0x4ea7af-(-0x449*0x5+-0x21e*0x10+0x12ac*0x3);const _0x2cda7d=_0x3b4a();let _0x313826=_0x2cda7d[_0x4ea7af];if(_0xd751['ZeqgHh']===undefined){var _0x488b08=function(_0x12bd6f){const _0x366275='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2579bd='',_0x914fa6='';for(let _0x4e0549=-0x135d*0x2+0x167*0x9+0xa3*0x29,_0x352319,_0x4012e6,_0x32a820=-0x24bb+0x195e*-0x1+0x3e19;_0x4012e6=_0x12bd6f['charAt'](_0x32a820++);~_0x4012e6&&(_0x352319=_0x4e0549%(0x199b+-0x1009+-0x98e)?_0x352319*(-0x47*-0x71+0x1fd1+-0x3ee8)+_0x4012e6:_0x4012e6,_0x4e0549++%(0x1b01+-0xbb4+-0xf49))?_0x2579bd+=String['fromCharCode'](-0x24fc+-0x5*0x6d7+0x2*0x2417&_0x352319>>(-(-0x1cd*-0xb+-0x2f*0x4c+-0x5d9)*_0x4e0549&0x85*0x23+-0xc5*0x7+-0xa*0x147)):0xfd9+0x1*0x373+0x1*-0x134c){_0x4012e6=_0x366275['indexOf'](_0x4012e6);}for(let _0x19937c=0x1bde+0x3c*-0x5+-0x1ab2,_0x52c4ac=_0x2579bd['length'];_0x19937c<_0x52c4ac;_0x19937c++){_0x914fa6+='%'+('00'+_0x2579bd['charCodeAt'](_0x19937c)['toString'](-0xc*0x196+-0x78a+0x1aa2))['slice'](-(-0x5e9+-0x263e+0x2c29));}return decodeURIComponent(_0x914fa6);};_0xd751['jQxeBS']=_0x488b08,_0xd751['mrYEJM']={},_0xd751['ZeqgHh']=!![];}const _0xca3152=_0x2cda7d[-0xf7*-0xd+0x1c76+-0x2901];_0xd751['Gftrpx']!==_0xca3152&&(_0xd751['mrYEJM']={},_0xd751['Gftrpx']=_0xca3152);const _0x4b241d=_0xd751['mrYEJM'][_0x4ea7af];return _0x4b241d===undefined?(_0x313826=_0xd751['jQxeBS'](_0x313826),_0xd751['mrYEJM'][_0x4ea7af]=_0x313826):_0x313826=_0x4b241d,_0x313826;}function managedBlockPattern(){const _0x1e178a=_0x40cd4a,_0x465946=escapeRegExp(BLOCK_BEGIN)+_0x1e178a(0xcb)+escapeRegExp(BLOCK_END)+_0x1e178a(0xde),_0x3a6e57=escapeRegExp(LEGACY_BLOCK_BEGIN)+_0x1e178a(0xcb)+escapeRegExp(LEGACY_BLOCK_END)+_0x1e178a(0xde);return new RegExp(_0x1e178a(0xcf)+_0x465946+'|'+_0x3a6e57+')','gu');}
@@ -1,304 +1,2 @@
1
- import { isPlainRecord } from '../runner/codex/conversation-parser.js';
2
- import { isTerminalRunStatus } from '../util/node-operation-parsers.js';
3
- import { withNonImageAttachmentPrompt } from '../runner/codex/conversation-parser.js';
4
- import { safeErrorCode } from '../util/safe-error.js';
5
- export class WorkspaceQueueWorkbenchService {
6
- options;
7
- starts = new Map();
8
- scheduledSessions = new Map();
9
- constructor(options) {
10
- this.options = options;
11
- }
12
- enqueue(start, message) {
13
- if (message.runId !== start.runId || message.sessionId !== start.sessionId)
14
- throw new Error('QUEUE_RUN_MISMATCH');
15
- const created = this.options.runtime.createMessageRun(message);
16
- if (created.created)
17
- this.starts.set(start.runId, start);
18
- return created;
19
- }
20
- pending(runId) {
21
- return this.starts.get(runId);
22
- }
23
- remove(runId) {
24
- this.starts.delete(runId);
25
- }
26
- clear() {
27
- this.starts.clear();
28
- for (const timer of this.scheduledSessions.values())
29
- clearTimeout(timer);
30
- this.scheduledSessions.clear();
31
- }
32
- publish(sessionId) {
33
- const session = this.options.runtime.getAgentSession(sessionId);
34
- if (session === undefined)
35
- throw new Error('SESSION_NOT_FOUND');
36
- this.options.emit(session.workspaceId, session.id);
37
- }
38
- migrateSession(previousId, nextId) {
39
- for (const [runId, pending] of this.starts) {
40
- if (pending.sessionId === previousId)
41
- this.starts.set(runId, { ...pending, sessionId: nextId, externalSessionId: nextId });
42
- }
43
- const timer = this.scheduledSessions.get(previousId);
44
- if (timer !== undefined) {
45
- clearTimeout(timer);
46
- this.scheduledSessions.delete(previousId);
47
- this.schedule(nextId);
48
- }
49
- }
50
- cancelQueued(runId) {
51
- const run = this.requireRun(runId);
52
- if (!this.options.runtime.isQueuedRun(run.id))
53
- throw new Error('QUEUE_ITEM_INVALID');
54
- this.options.runtime.deleteQueuedRun(run.id);
55
- this.remove(run.id);
56
- this.options.clearImages(run.id);
57
- this.options.cleanupAttachments(run.id);
58
- this.options.emit(run.workspaceId, run.sessionId);
59
- }
60
- pauseForInterrupt(sessionId) {
61
- const session = this.options.runtime.getAgentSession(sessionId);
62
- if (session === undefined)
63
- throw new Error('SESSION_NOT_FOUND');
64
- this.options.runtime.pauseSessionQueue(session.id);
65
- this.publish(session.id);
66
- }
67
- resumeAfterCommandRun(sessionId) {
68
- const session = this.options.runtime.getAgentSession(sessionId);
69
- if (session === undefined)
70
- throw new Error('SESSION_NOT_FOUND');
71
- if (!this.options.runtime.sessionQueue(session.id).paused)
72
- return;
73
- this.options.runtime.resumeSessionQueue(session.id);
74
- this.publish(session.id);
75
- this.schedule(session.id);
76
- }
77
- operations() {
78
- return {
79
- 'workspace.queue.get': (data) => this.get(record(data)),
80
- 'workspace.queue.resume': (data) => this.pauseOrResume('resume', record(data)),
81
- 'workspace.queue.pause': (data) => this.pauseOrResume('pause', record(data)),
82
- 'workspace.queue.reorder': (data) => this.reorder(record(data)),
83
- 'workspace.queue.message.update': (data) => this.update(record(data)),
84
- 'workspace.queue.message.delete': (data) => this.delete(record(data)),
85
- 'workspace.queue.message.execute': (data) => this.execute(record(data))
86
- };
87
- }
88
- get(input) {
89
- if (typeof input.workspaceId !== 'string' || typeof input.sessionId !== 'string')
90
- throw new Error('WORKSPACE_NOT_FOUND');
91
- return { queue: this.present(input.workspaceId, input.sessionId) };
92
- }
93
- pauseOrResume(mode, input) {
94
- const session = this.requireSession(input);
95
- if (mode === 'resume') {
96
- this.options.runtime.resumeSessionQueue(session.id);
97
- this.schedule(session.id);
98
- }
99
- else
100
- this.options.runtime.pauseSessionQueue(session.id);
101
- this.options.emit(session.workspaceId, session.id);
102
- return { queue: this.present(session.workspaceId, session.id) };
103
- }
104
- reorder(input) {
105
- if (!Number.isInteger(input.expectedVersion) ||
106
- !Array.isArray(input.runIds) ||
107
- input.runIds.some((id) => typeof id !== 'string'))
108
- throw new Error('QUEUE_INVALID');
109
- const session = this.requireSession(input);
110
- this.options.runtime.reorderSessionQueue(session.id, input.expectedVersion, input.runIds);
111
- this.options.emit(session.workspaceId, session.id);
112
- return { queue: this.present(session.workspaceId, session.id) };
113
- }
114
- update(input) {
115
- if (typeof input.runId !== 'string' ||
116
- typeof input.content !== 'string' ||
117
- input.content.trim().length === 0)
118
- throw new Error('QUEUE_INVALID');
119
- const run = this.requireRun(input.runId);
120
- this.updatePending(run.id, input.content.trim());
121
- this.options.emit(run.workspaceId, run.sessionId);
122
- return { queue: this.present(run.workspaceId, run.sessionId) };
123
- }
124
- delete(input) {
125
- if (typeof input.runId !== 'string')
126
- throw new Error('QUEUE_INVALID');
127
- const run = this.requireRun(input.runId);
128
- this.cancelQueued(run.id);
129
- return { queue: this.present(run.workspaceId, run.sessionId) };
130
- }
131
- execute(input) {
132
- if (typeof input.runId !== 'string')
133
- throw new Error('QUEUE_INVALID');
134
- const queued = this.requireRun(input.runId);
135
- if (!this.options.runtime.isQueuedRun(queued.id) || queued.status !== 'QUEUED')
136
- throw new Error('QUEUE_ITEM_INVALID');
137
- if (!this.starts.has(queued.id))
138
- throw new Error('QUEUE_INPUT_LOST');
139
- const session = this.options.runtime.getAgentSession(queued.sessionId);
140
- if (session === undefined)
141
- throw new Error('SESSION_NOT_FOUND');
142
- this.options.runtime.resumeSessionQueue(session.id);
143
- const active = this.options.runtime
144
- .listRunsForSession(session.id)
145
- .find((run) => run.status === 'STARTING' || run.status === 'RUNNING');
146
- this.options.runtime.prioritizeQueuedRun(queued.id);
147
- if (active !== undefined) {
148
- this.replace(queued.id, active.id, false);
149
- return { run: queued, delivery: 'RESTARTING' };
150
- }
151
- this.schedule(session.id);
152
- return { run: queued, delivery: 'STARTING' };
153
- }
154
- requireSession(input) {
155
- if (typeof input.workspaceId !== 'string' || typeof input.sessionId !== 'string')
156
- throw new Error('WORKSPACE_NOT_FOUND');
157
- const session = this.options.runtime.getAgentSession(input.sessionId);
158
- if (session?.workspaceId !== input.workspaceId)
159
- throw new Error('SESSION_NOT_FOUND');
160
- return session;
161
- }
162
- requireRun(runId) {
163
- const run = this.options.runtime.getRun(runId);
164
- if (run === undefined)
165
- throw new Error('RUN_NOT_FOUND');
166
- return run;
167
- }
168
- replace(queuedRunId, activeRunId, prioritize = true) {
169
- const queued = this.options.runtime.getRun(queuedRunId);
170
- const active = this.options.runtime.getRun(activeRunId);
171
- if (queued === undefined ||
172
- active === undefined ||
173
- queued.sessionId !== active.sessionId ||
174
- !this.options.runtime.isQueuedRun(queued.id))
175
- throw new Error('QUEUE_ITEM_INVALID');
176
- if (prioritize)
177
- this.options.runtime.prioritizeQueuedRun(queued.id);
178
- this.options.emit(queued.workspaceId, queued.sessionId);
179
- this.options.markInterrupted(active.id);
180
- this.options.runtime.transitionRun(active.id, 'CANCELLING');
181
- this.options.control('run.interrupt', { runId: active.id });
182
- }
183
- schedule(sessionId) {
184
- if (this.scheduledSessions.has(sessionId))
185
- return;
186
- const timer = setTimeout(() => {
187
- this.scheduledSessions.delete(sessionId);
188
- if (!this.options.stopped())
189
- void this.dispatch(sessionId);
190
- }, 0);
191
- this.scheduledSessions.set(sessionId, timer);
192
- timer.unref();
193
- }
194
- settleEnqueue(input) {
195
- const run = this.requireRun(input.runId);
196
- const session = this.options.runtime.getAgentSession(run.sessionId);
197
- if (session === undefined)
198
- throw new Error('SESSION_NOT_FOUND');
199
- if (input.queueBefore.paused && input.activeRunId === undefined && input.intent !== 'QUEUE')
200
- this.options.runtime.prioritizeQueuedRun(run.id);
201
- if (!input.queueBefore.paused || input.intent !== 'QUEUE')
202
- this.options.runtime.resumeSessionQueue(session.id);
203
- if (input.activeRunId !== undefined) {
204
- this.replace(run.id, input.activeRunId);
205
- return 'RESTARTING';
206
- }
207
- const leaseIsActive = input.leaseWasActive && this.options.runtime.hasActiveSessionLease(session.id);
208
- const dispatchNow = !leaseIsActive && !(input.queueBefore.paused && input.intent === 'QUEUE');
209
- const startsNow = dispatchNow &&
210
- (input.queueBefore.runIds.length === 0 ||
211
- (input.queueBefore.paused && input.intent !== 'QUEUE'));
212
- if (dispatchNow)
213
- this.schedule(session.id);
214
- else
215
- this.options.emit(session.workspaceId, session.id);
216
- return startsNow ? 'STARTED' : 'QUEUED';
217
- }
218
- async dispatch(sessionId) {
219
- const run = this.options.runtime.claimNextQueuedRun(sessionId);
220
- if (run === undefined)
221
- return;
222
- this.options.emit(run.workspaceId, sessionId);
223
- const pending = this.starts.get(run.id);
224
- if (pending === undefined) {
225
- this.options.emitRun(run.id, 'run.rejected', { code: 'QUEUE_INPUT_LOST' }, 'FAILED');
226
- return;
227
- }
228
- try {
229
- const turn = this.options.runtime.conversationTurnForRun(run.id);
230
- if (turn !== undefined)
231
- this.options.emitConversation(turn);
232
- const current = this.options.runtime.getRun(run.id);
233
- if (current !== undefined && isTerminalRunStatus(current.status))
234
- return;
235
- if (current?.status === 'CANCELLING') {
236
- this.options.emitRun(run.id, 'run.completed', { status: 'CANCELLED' }, 'CANCELLED');
237
- return;
238
- }
239
- this.options.control('run.start', {
240
- runId: pending.runId,
241
- sessionId: pending.sessionId,
242
- workspaceId: pending.workspaceId,
243
- runner: pending.runner,
244
- input: pending.input,
245
- ...(pending.attachments.length === 0 ? {} : { attachments: pending.attachments }),
246
- cwd: pending.cwd,
247
- ...(pending.externalSessionId === null
248
- ? {}
249
- : { externalSessionId: pending.externalSessionId }),
250
- ...(pending.model === null ? {} : { model: pending.model }),
251
- ...(pending.effort === null ? {} : { effort: pending.effort }),
252
- ...(pending.access === null ? {} : { access: pending.access }),
253
- collaborationMode: pending.collaborationMode,
254
- ...(pending.serviceTier === undefined ? {} : { serviceTier: pending.serviceTier }),
255
- secretEnvironment: pending.secretEnvironment,
256
- ...(pending.personalInstructions === undefined
257
- ? {}
258
- : { personalInstructions: pending.personalInstructions }),
259
- mcpInstallations: this.options.mcps(pending.workspaceId)
260
- });
261
- }
262
- catch (error) {
263
- this.options.emitRun(run.id, 'run.rejected', { code: safeErrorCode(error, 'QUEUE_START_FAILED') }, 'FAILED');
264
- }
265
- }
266
- present(workspaceId, sessionId) {
267
- const session = this.options.runtime.getAgentSession(sessionId);
268
- if (session?.workspaceId !== workspaceId)
269
- throw new Error('SESSION_NOT_FOUND');
270
- const queue = this.options.runtime.sessionQueue(sessionId);
271
- return {
272
- version: queue.version,
273
- paused: queue.paused,
274
- items: queue.runIds.flatMap((runId) => {
275
- const run = this.options.runtime.getRun(runId);
276
- if (run === undefined)
277
- return [];
278
- const queuedSession = this.options.runtime.getAgentSession(run.sessionId);
279
- return [
280
- {
281
- run,
282
- sessionId: run.sessionId,
283
- sessionTitle: queuedSession?.customTitle ?? queuedSession?.runnerTitle ?? 'Untitled session',
284
- content: this.options.runtime.queuedMessageText(run.id)
285
- }
286
- ];
287
- })
288
- };
289
- }
290
- updatePending(runId, content) {
291
- const pending = this.starts.get(runId);
292
- const runnerInput = withNonImageAttachmentPrompt(content, pending?.attachmentPaths ?? []);
293
- this.options.runtime.updateQueuedMessage(runId, runnerInput);
294
- if (pending === undefined)
295
- return;
296
- this.starts.set(runId, {
297
- ...pending,
298
- input: this.options.prepareInput(pending.runner, runnerInput, pending.collaborationMode)
299
- });
300
- }
301
- }
302
- function record(value) {
303
- return isPlainRecord(value) ? value : {};
304
- }
1
+ /* mar-release-protected */
2
+ function _0x3a51(_0x4b1388,_0x1469d0){_0x4b1388=_0x4b1388-(-0x461+0x8c9+0x5*-0xbd);const _0x5338bc=_0x53cf();let _0x443535=_0x5338bc[_0x4b1388];if(_0x3a51['fxqZxn']===undefined){var _0x25a495=function(_0xac00e9){const _0x55690b='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4e9055='',_0x202700='';for(let _0x512668=-0x9fb+0x1b6a+-0x116f,_0x42a372,_0x1cead0,_0x3102a3=0x20d*0x13+-0x1*-0x2006+-0x1*0x46fd;_0x1cead0=_0xac00e9['charAt'](_0x3102a3++);~_0x1cead0&&(_0x42a372=_0x512668%(-0x1*0x1036+-0x1966+0x29a0)?_0x42a372*(0x2266+0x1679+-0x389f)+_0x1cead0:_0x1cead0,_0x512668++%(0x1*0x154a+0x8f9*-0x3+0x5a5))?_0x4e9055+=String['fromCharCode'](0x1593+-0x227d*0x1+0xde9&_0x42a372>>(-(-0x23*-0x57+0xd5c*-0x1+0x179)*_0x512668&0x1*0x2192+0x246f+-0x45fb)):0x2080+-0x1e8+-0x1e98){_0x1cead0=_0x55690b['indexOf'](_0x1cead0);}for(let _0x426f6b=-0xf6f+-0x12b5*-0x1+-0x346,_0xb92e9c=_0x4e9055['length'];_0x426f6b<_0xb92e9c;_0x426f6b++){_0x202700+='%'+('00'+_0x4e9055['charCodeAt'](_0x426f6b)['toString'](0x3*0x713+-0x11cc+0x7b*-0x7))['slice'](-(0x24e5*-0x1+0x1f3*-0x1+0x26da));}return decodeURIComponent(_0x202700);};_0x3a51['bQPjUX']=_0x25a495,_0x3a51['FnmXcm']={},_0x3a51['fxqZxn']=!![];}const _0x41b802=_0x5338bc[-0x91e+0x2*0x6e3+-0x4a8];_0x3a51['ayxtKg']!==_0x41b802&&(_0x3a51['FnmXcm']={},_0x3a51['ayxtKg']=_0x41b802);const _0x31e355=_0x3a51['FnmXcm'][_0x4b1388];return _0x31e355===undefined?(_0x443535=_0x3a51['bQPjUX'](_0x443535),_0x3a51['FnmXcm'][_0x4b1388]=_0x443535):_0x443535=_0x31e355,_0x443535;}const _0x44fa0a=_0x3a51;(function(_0x40430a,_0x4b8ded){const _0xc3daa=_0x3a51,_0x496cd4=_0x40430a();while(!![]){try{const _0x2cc56f=parseInt(_0xc3daa(0xcd))/(0xd51+-0x160a+0x8ba)+-parseInt(_0xc3daa(0xe3))/(-0xf4e*0x1+0xe3c*-0x2+0x2bc8)*(-parseInt(_0xc3daa(0xd2))/(0x6ac+-0x1*-0x362+-0x359*0x3))+-parseInt(_0xc3daa(0x115))/(0xda0+-0x17*0x3e+0x31*-0x2a)*(-parseInt(_0xc3daa(0x111))/(0x1*-0x257f+0x3b*0x83+0x753))+parseInt(_0xc3daa(0xe1))/(0x169b*-0x1+-0x25a7+-0x1418*-0x3)+-parseInt(_0xc3daa(0xb7))/(-0xc55*0x1+0x13e5+0x789*-0x1)*(parseInt(_0xc3daa(0x11c))/(0x123a+-0x527+-0x9*0x173))+parseInt(_0xc3daa(0x137))/(0x1*-0x1d8b+-0x100*0x8+0x2e4*0xd)+-parseInt(_0xc3daa(0xca))/(0x1e8d+0x1*0x88d+0x2710*-0x1)*(parseInt(_0xc3daa(0x138))/(0x1f56+-0x4*0x1bb+-0x185f));if(_0x2cc56f===_0x4b8ded)break;else _0x496cd4['push'](_0x496cd4['shift']());}catch(_0x3dc8df){_0x496cd4['push'](_0x496cd4['shift']());}}}(_0x53cf,-0x28607*-0x7+-0x50*0x259+-0x7dca1));import{isPlainRecord}from'../runner/codex/conversation-parser.js';function _0x53cf(){const _0x201c4f=['Cgf1C2vK','uLvotKLorW','y2XLyxjjBwfNzxm','uvvfvuvFsu5wquXjra','CMvTB3zL','yxr0ywnOBwvUDhm','zw1PDa','Cgf1C2vpCLjLC3vTzq','CMvVCMrLCLnLC3nPB25rDwv1zq','y2fUy2vSuxvLDwvK','y3DK','AxnbCNjHEq','y29UDgvUDa','CgvYC29UywXjBNn0CNvJDgLVBNm','otK5nta5nfHju3jvra','mtmYDwTUyvrS','mte5nJKZz3Pnt0Ll','Bw9KzwW','zw1PDenVBNzLCNnHDgLVBG','u0vtu0LptL9ot1rFrK9vtKq','DxbKyxrLugvUzgLUzW','y2XLyw51Cef0DgfJAg1LBNrZ','zgvSzxrLuxvLDwvKuNvU','y29UDhjVBa','BgLZDfj1BNngB3jtzxnZAw9U','zxH0zxjUywXtzxnZAw9Uswq','y29UDMvYC2f0Aw9UvhvYBKzVCLj1BG','AgfZ','y2XHAw1ozxH0uxvLDwvKuNvU','CMvWBgfJzq','D29YA3nWywnLswq','C2vZC2LVBLf1zxvL','Aw5WDxq','zgLZCgf0y2G','CxvLDwvczwzVCMu','mtCZodm5men4tNrfEq','y3jLyxrLtwvZC2fNzvj1BG','CxvLDwvKtwvZC2fNzvrLEhq','mtKZmtu4ueThEKnf','zxHWzwn0zwrwzxjZAw9U','C2v0DgXLrw5XDwv1zq','ChjLCgfYzuLUChv0','C2vJCMv0rw52AxjVBM1LBNq','nZy4mtjotvDhq2O','zMXHDe1HCa','DMfSDwvZ','C3rHDhvZ','CNvUlMLUDgvYCNvWDa','CNvUswq','v09ss1nqqunfx05pvf9gt1vora','Dw5Yzwy','CMvXDwLYzvj1BG','CMvVCMrLCG','uKvtvefsveLorW','zgvSzxrL','BwnWCW','rKfjteve','C3rHCNrZ','mZu2ode1ogrYqwTbyG','u1rbuLrfra','nMnsv2LuvG','ywnJzxnZ','ChjLC2vUDa','CMvZDw1L','y3vZDg9TvgL0Bgu','uvvfvuvFsvrftv9jtLzbteLe','CNvUlNn0yxj0','B3bLCMf0Aw9UCW','BgvUz3rO','ChvIBgLZAa','CMvZDw1Lu2vZC2LVBLf1zxvL','C2vZC2LVBKLK','DhjHBNnPDgLVBLj1BG','Cgf1C2vtzxnZAw9UuxvLDwu','z2v0','CMvXDwLYzvnLC3nPB24','B3b0Aw9UCW','Cgf1C2u','yxr0ywnOBwvUDfbHDgHZ','C2nOzwr1Bgu','C3rYAw5N','vw50AxrSzwqGC2vZC2LVBG','uvvfvuu','DxbKyxrL','BwfYA0LUDgvYCNvWDgvK','zxHLy3v0zq','BwLNCMf0zvnLC3nPB24','DhjPBq','CgvUzgLUzW','y3jLyxrLza','uvvfvuvFu1rbuLrFrKfjteve','q0foq0vmteve','CNvUDgLTzq','AxnjBNrLz2vY','CNvUBMvYvgL0Bgu','uvvfvuve','AgfZqwn0AxzLu2vZC2LVBKXLyxnL','C2vYDMLJzvrPzxi','BgvHC2vxyxnby3rPDMu','C29Tzq','zw5XDwv1zq','Aw50zw50','CNvUBMvY','CMvZDw1Lqwz0zxjdB21Tyw5KuNvU','DxbKyxrLuxvLDwvKtwvZC2fNzq','CNvUswrZ','mZG2odaXnwXbz1n1Aq','z2v0qwDLBNrtzxnZAw9U','q0foq0vmteLorW','C2nOzwr1BgvKu2vZC2LVBNm','ngvsuNvMsa','u1rbuLrjtKC','AxnrDwv1zwrsDw4','z2v0uNvU','uvvfvuvFsu5qvvrFte9tva','y2XLyxi','ChjPB3jPDgL6zvf1zxvLzfj1BG','mZjJD0zpwuG','DMvYC2LVBG','zMLUza','C2v0','CNvUlMnVBxbSzxrLza','CNvUlNjLAMvJDgvK','zwzMB3j0','uLvox05pvf9gt1vora','uvvfvuvFuLvox01ju01bveni','zw1PDfj1BG','ywn0AxzLuNvUswq','y29SBgfIB3jHDgLVBK1Vzgu','C3rVChbLza'];_0x53cf=function(){return _0x201c4f;};return _0x53cf();}import{isTerminalRunStatus}from'../util/node-operation-parsers.js';import{withNonImageAttachmentPrompt}from'../runner/codex/conversation-parser.js';import{safeErrorCode}from'../util/safe-error.js';export class WorkspaceQueueWorkbenchService{[_0x44fa0a(0xf3)];[_0x44fa0a(0xe0)]=new Map();[_0x44fa0a(0x114)]=new Map();constructor(_0x1ce066){const _0x266b46=_0x44fa0a;this[_0x266b46(0xf3)]=_0x1ce066;}[_0x44fa0a(0x10b)](_0x4a05a8,_0x5982f8){const _0x3d5f4f=_0x44fa0a;if(_0x5982f8[_0x3d5f4f(0xd7)]!==_0x4a05a8[_0x3d5f4f(0xd7)]||_0x5982f8[_0x3d5f4f(0xee)]!==_0x4a05a8[_0x3d5f4f(0xee)])throw new Error(_0x3d5f4f(0x124));const _0xd3588b=this[_0x3d5f4f(0xf3)][_0x3d5f4f(0x103)][_0x3d5f4f(0xcb)](_0x5982f8);if(_0xd3588b[_0x3d5f4f(0x100)])this[_0x3d5f4f(0xe0)][_0x3d5f4f(0x11f)](_0x4a05a8[_0x3d5f4f(0xd7)],_0x4a05a8);return _0xd3588b;}[_0x44fa0a(0xff)](_0x343c7a){const _0x9a7a06=_0x44fa0a;return this[_0x9a7a06(0xe0)][_0x9a7a06(0xf1)](_0x343c7a);}[_0x44fa0a(0x12d)](_0x2d1308){const _0x14490d=_0x44fa0a;this[_0x14490d(0xe0)][_0x14490d(0xdd)](_0x2d1308);}[_0x44fa0a(0x11a)](){const _0x287e26=_0x44fa0a;this[_0x287e26(0xe0)][_0x287e26(0x11a)]();for(const _0x252975 of this[_0x287e26(0x114)][_0x287e26(0xd4)]())clearTimeout(_0x252975);this[_0x287e26(0x114)][_0x287e26(0x11a)]();}[_0x44fa0a(0xec)](_0x3e3543){const _0x2652a7=_0x44fa0a,_0x1f626a=this[_0x2652a7(0xf3)][_0x2652a7(0x103)][_0x2652a7(0x112)](_0x3e3543);if(_0x1f626a===undefined)throw new Error(_0x2652a7(0xba));this[_0x2652a7(0xf3)][_0x2652a7(0x12f)](_0x1f626a[_0x2652a7(0xc5)],_0x1f626a['id']);}[_0x44fa0a(0xfd)](_0x565d35,_0x1958b9){const _0x3aa77a=_0x44fa0a;for(const [_0x5f2f29,_0x543586]of this[_0x3aa77a(0xe0)]){if(_0x543586[_0x3aa77a(0xee)]===_0x565d35)this[_0x3aa77a(0xe0)][_0x3aa77a(0x11f)](_0x5f2f29,{..._0x543586,'sessionId':_0x1958b9,'externalSessionId':_0x1958b9});}const _0x54f5c6=this[_0x3aa77a(0x114)][_0x3aa77a(0xf1)](_0x565d35);_0x54f5c6!==undefined&&(clearTimeout(_0x54f5c6),this[_0x3aa77a(0x114)][_0x3aa77a(0xdd)](_0x565d35),this[_0x3aa77a(0xf6)](_0x1958b9));}[_0x44fa0a(0x132)](_0x58a908){const _0x319b1f=_0x44fa0a,_0x5c2819=this[_0x319b1f(0xda)](_0x58a908);if(!this[_0x319b1f(0xf3)][_0x319b1f(0x103)][_0x319b1f(0x117)](_0x5c2819['id']))throw new Error(_0x319b1f(0xe8));this[_0x319b1f(0xf3)][_0x319b1f(0x103)][_0x319b1f(0xbd)](_0x5c2819['id']),this[_0x319b1f(0x12d)](_0x5c2819['id']),this[_0x319b1f(0xf3)][_0x319b1f(0x12b)](_0x5c2819['id']),this[_0x319b1f(0xf3)][_0x319b1f(0xbc)](_0x5c2819['id']),this[_0x319b1f(0xf3)][_0x319b1f(0x12f)](_0x5c2819[_0x319b1f(0xc5)],_0x5c2819[_0x319b1f(0xee)]);}[_0x44fa0a(0xf0)](_0x46b33b){const _0x3ec7b4=_0x44fa0a,_0x381fbb=this[_0x3ec7b4(0xf3)][_0x3ec7b4(0x103)][_0x3ec7b4(0x112)](_0x46b33b);if(_0x381fbb===undefined)throw new Error(_0x3ec7b4(0xba));this[_0x3ec7b4(0xf3)][_0x3ec7b4(0x103)][_0x3ec7b4(0xf0)](_0x381fbb['id']),this[_0x3ec7b4(0xec)](_0x381fbb['id']);}[_0x44fa0a(0x10e)](_0x2872cd){const _0x526263=_0x44fa0a,_0x22cd34=this[_0x526263(0xf3)][_0x526263(0x103)][_0x526263(0x112)](_0x2872cd);if(_0x22cd34===undefined)throw new Error(_0x526263(0xba));if(!this[_0x526263(0xf3)][_0x526263(0x103)][_0x526263(0xc6)](_0x22cd34['id'])[_0x526263(0x129)])return;this[_0x526263(0xf3)][_0x526263(0x103)][_0x526263(0xed)](_0x22cd34['id']),this[_0x526263(0xec)](_0x22cd34['id']),this[_0x526263(0xf6)](_0x22cd34['id']);}[_0x44fa0a(0xea)](){const _0x9d41cf=_0x44fa0a;return{'workspace.queue.get':_0x575aeb=>this[_0x9d41cf(0xf1)](record(_0x575aeb)),'workspace.queue.resume':_0x2d5c1e=>this[_0x9d41cf(0x130)](_0x9d41cf(0xe6),record(_0x2d5c1e)),'workspace.queue.pause':_0x12f2d0=>this[_0x9d41cf(0x130)](_0x9d41cf(0xf4),record(_0x12f2d0)),'workspace.queue.reorder':_0x2e5e9c=>this[_0x9d41cf(0xdb)](record(_0x2e5e9c)),'workspace.queue.message.update':_0x15297b=>this[_0x9d41cf(0xfa)](record(_0x15297b)),'workspace.queue.message.delete':_0x1cda37=>this[_0x9d41cf(0xdd)](record(_0x1cda37)),'workspace.queue.message.execute':_0x468533=>this[_0x9d41cf(0xfc)](record(_0x468533))};}[_0x44fa0a(0xf1)](_0x18244d){const _0x1db1e4=_0x44fa0a;if(typeof _0x18244d[_0x1db1e4(0xc5)]!==_0x1db1e4(0xf7)||typeof _0x18244d[_0x1db1e4(0xee)]!==_0x1db1e4(0xf7))throw new Error(_0x1db1e4(0xd8));return{'queue':this[_0x1db1e4(0xe5)](_0x18244d[_0x1db1e4(0xc5)],_0x18244d[_0x1db1e4(0xee)])};}[_0x44fa0a(0x130)](_0x381e17,_0xc1ca99){const _0x2edb30=_0x44fa0a,_0x285688=this[_0x2edb30(0xf2)](_0xc1ca99);if(_0x381e17===_0x2edb30(0xe6))this[_0x2edb30(0xf3)][_0x2edb30(0x103)][_0x2edb30(0xed)](_0x285688['id']),this[_0x2edb30(0xf6)](_0x285688['id']);else this[_0x2edb30(0xf3)][_0x2edb30(0x103)][_0x2edb30(0xf0)](_0x285688['id']);return this[_0x2edb30(0xf3)][_0x2edb30(0x12f)](_0x285688[_0x2edb30(0xc5)],_0x285688['id']),{'queue':this[_0x2edb30(0xe5)](_0x285688[_0x2edb30(0xc5)],_0x285688['id'])};}[_0x44fa0a(0xdb)](_0x4996e7){const _0x8596fc=_0x44fa0a;if(!Number[_0x8596fc(0x104)](_0x4996e7[_0x8596fc(0xce)])||!Array[_0x8596fc(0x134)](_0x4996e7[_0x8596fc(0x110)])||_0x4996e7[_0x8596fc(0x110)][_0x8596fc(0x10a)](_0x50c76e=>typeof _0x50c76e!==_0x8596fc(0xf7)))throw new Error(_0x8596fc(0x12c));const _0x19f7a0=this[_0x8596fc(0xf2)](_0x4996e7);return this[_0x8596fc(0xf3)][_0x8596fc(0x103)][_0x8596fc(0x131)](_0x19f7a0['id'],_0x4996e7[_0x8596fc(0xce)],_0x4996e7[_0x8596fc(0x110)]),this[_0x8596fc(0xf3)][_0x8596fc(0x12f)](_0x19f7a0[_0x8596fc(0xc5)],_0x19f7a0['id']),{'queue':this[_0x8596fc(0xe5)](_0x19f7a0[_0x8596fc(0xc5)],_0x19f7a0['id'])};}[_0x44fa0a(0xfa)](_0x3e6a3e){const _0x2fa6fe=_0x44fa0a;if(typeof _0x3e6a3e[_0x2fa6fe(0xd7)]!==_0x2fa6fe(0xf7)||typeof _0x3e6a3e[_0x2fa6fe(0x135)]!==_0x2fa6fe(0xf7)||_0x3e6a3e[_0x2fa6fe(0x135)][_0x2fa6fe(0xfe)]()[_0x2fa6fe(0xeb)]===0x1d3*-0xb+0x3*0xcfd+-0x12e6)throw new Error(_0x2fa6fe(0x12c));const _0x125dc9=this[_0x2fa6fe(0xda)](_0x3e6a3e[_0x2fa6fe(0xd7)]);return this[_0x2fa6fe(0xbb)](_0x125dc9['id'],_0x3e6a3e[_0x2fa6fe(0x135)][_0x2fa6fe(0xfe)]()),this[_0x2fa6fe(0xf3)][_0x2fa6fe(0x12f)](_0x125dc9[_0x2fa6fe(0xc5)],_0x125dc9[_0x2fa6fe(0xee)]),{'queue':this[_0x2fa6fe(0xe5)](_0x125dc9[_0x2fa6fe(0xc5)],_0x125dc9[_0x2fa6fe(0xee)])};}[_0x44fa0a(0xdd)](_0x34c7a6){const _0x15d0f1=_0x44fa0a;if(typeof _0x34c7a6[_0x15d0f1(0xd7)]!==_0x15d0f1(0xf7))throw new Error(_0x15d0f1(0x12c));const _0x506e37=this[_0x15d0f1(0xda)](_0x34c7a6[_0x15d0f1(0xd7)]);return this[_0x15d0f1(0x132)](_0x506e37['id']),{'queue':this[_0x15d0f1(0xe5)](_0x506e37[_0x15d0f1(0xc5)],_0x506e37[_0x15d0f1(0xee)])};}[_0x44fa0a(0xfc)](_0x2a87c3){const _0xf70cb3=_0x44fa0a;if(typeof _0x2a87c3[_0xf70cb3(0xd7)]!==_0xf70cb3(0xf7))throw new Error(_0xf70cb3(0x12c));const _0x2d4f2f=this[_0xf70cb3(0xda)](_0x2a87c3[_0xf70cb3(0xd7)]);if(!this[_0xf70cb3(0xf3)][_0xf70cb3(0x103)][_0xf70cb3(0x117)](_0x2d4f2f['id'])||_0x2d4f2f[_0xf70cb3(0xd5)]!==_0xf70cb3(0x106))throw new Error(_0xf70cb3(0xe8));if(!this[_0xf70cb3(0xe0)][_0xf70cb3(0xc2)](_0x2d4f2f['id']))throw new Error(_0xf70cb3(0x119));const _0x32fb71=this[_0xf70cb3(0xf3)][_0xf70cb3(0x103)][_0xf70cb3(0x112)](_0x2d4f2f[_0xf70cb3(0xee)]);if(_0x32fb71===undefined)throw new Error(_0xf70cb3(0xba));this[_0xf70cb3(0xf3)][_0xf70cb3(0x103)][_0xf70cb3(0xed)](_0x32fb71['id']);const _0x5e02f9=this[_0xf70cb3(0xf3)][_0xf70cb3(0x103)][_0xf70cb3(0xbf)](_0x32fb71['id'])[_0xf70cb3(0x11e)](_0x4fb304=>_0x4fb304[_0xf70cb3(0xd5)]===_0xf70cb3(0x116)||_0x4fb304[_0xf70cb3(0xd5)]===_0xf70cb3(0x12a));this[_0xf70cb3(0xf3)][_0xf70cb3(0x103)][_0xf70cb3(0x11b)](_0x2d4f2f['id']);if(_0x5e02f9!==undefined)return this[_0xf70cb3(0xc4)](_0x2d4f2f['id'],_0x5e02f9['id'],![]),{'run':_0x2d4f2f,'delivery':_0xf70cb3(0xdc)};return this[_0xf70cb3(0xf6)](_0x32fb71['id']),{'run':_0x2d4f2f,'delivery':_0xf70cb3(0x116)};}[_0x44fa0a(0xf2)](_0x47f5cf){const _0x413629=_0x44fa0a;if(typeof _0x47f5cf[_0x413629(0xc5)]!==_0x413629(0xf7)||typeof _0x47f5cf[_0x413629(0xee)]!==_0x413629(0xf7))throw new Error(_0x413629(0xd8));const _0x6bc0a7=this[_0x413629(0xf3)][_0x413629(0x103)][_0x413629(0x112)](_0x47f5cf[_0x413629(0xee)]);if(_0x6bc0a7?.[_0x413629(0xc5)]!==_0x47f5cf[_0x413629(0xc5)])throw new Error(_0x413629(0xba));return _0x6bc0a7;}[_0x44fa0a(0xda)](_0x248f65){const _0x659f93=_0x44fa0a,_0x407f3f=this[_0x659f93(0xf3)][_0x659f93(0x103)][_0x659f93(0x118)](_0x248f65);if(_0x407f3f===undefined)throw new Error(_0x659f93(0x123));return _0x407f3f;}[_0x44fa0a(0xc4)](_0x21767c,_0x54125e,_0x36143b=!![]){const _0x23f7c3=_0x44fa0a,_0x1f205a=this[_0x23f7c3(0xf3)][_0x23f7c3(0x103)][_0x23f7c3(0x118)](_0x21767c),_0x4b1388=this[_0x23f7c3(0xf3)][_0x23f7c3(0x103)][_0x23f7c3(0x118)](_0x54125e);if(_0x1f205a===undefined||_0x4b1388===undefined||_0x1f205a[_0x23f7c3(0xee)]!==_0x4b1388[_0x23f7c3(0xee)]||!this[_0x23f7c3(0xf3)][_0x23f7c3(0x103)][_0x23f7c3(0x117)](_0x1f205a['id']))throw new Error(_0x23f7c3(0xe8));if(_0x36143b)this[_0x23f7c3(0xf3)][_0x23f7c3(0x103)][_0x23f7c3(0x11b)](_0x1f205a['id']);this[_0x23f7c3(0xf3)][_0x23f7c3(0x12f)](_0x1f205a[_0x23f7c3(0xc5)],_0x1f205a[_0x23f7c3(0xee)]),this[_0x23f7c3(0xf3)][_0x23f7c3(0xfb)](_0x4b1388['id']),this[_0x23f7c3(0xf3)][_0x23f7c3(0x103)][_0x23f7c3(0xef)](_0x4b1388['id'],_0x23f7c3(0x113)),this[_0x23f7c3(0xf3)][_0x23f7c3(0xbe)](_0x23f7c3(0xd6),{'runId':_0x4b1388['id']});}[_0x44fa0a(0xf6)](_0x1469d0){const _0x14204d=_0x44fa0a;if(this[_0x14204d(0x114)][_0x14204d(0xc2)](_0x1469d0))return;const _0x5338bc=setTimeout(()=>{const _0x3688c7=_0x14204d;this[_0x3688c7(0x114)][_0x3688c7(0xdd)](_0x1469d0);if(!this[_0x3688c7(0xf3)][_0x3688c7(0x128)]())void this[_0x3688c7(0xc8)](_0x1469d0);},0x188d+-0x731+-0x1*0x115c);this[_0x14204d(0x114)][_0x14204d(0x11f)](_0x1469d0,_0x5338bc),_0x5338bc[_0x14204d(0xd9)]();}[_0x44fa0a(0xcf)](_0x443535){const _0x871fac=_0x44fa0a,_0x25a495=this[_0x871fac(0xda)](_0x443535[_0x871fac(0xd7)]),_0x41b802=this[_0x871fac(0xf3)][_0x871fac(0x103)][_0x871fac(0x112)](_0x25a495[_0x871fac(0xee)]);if(_0x41b802===undefined)throw new Error(_0x871fac(0xba));if(_0x443535[_0x871fac(0xc9)][_0x871fac(0x129)]&&_0x443535[_0x871fac(0x126)]===undefined&&_0x443535[_0x871fac(0x10c)]!==_0x871fac(0xf9))this[_0x871fac(0xf3)][_0x871fac(0x103)][_0x871fac(0x11b)](_0x25a495['id']);if(!_0x443535[_0x871fac(0xc9)][_0x871fac(0x129)]||_0x443535[_0x871fac(0x10c)]!==_0x871fac(0xf9))this[_0x871fac(0xf3)][_0x871fac(0x103)][_0x871fac(0xed)](_0x41b802['id']);if(_0x443535[_0x871fac(0x126)]!==undefined)return this[_0x871fac(0xc4)](_0x25a495['id'],_0x443535[_0x871fac(0x126)]),_0x871fac(0xdc);const _0x31e355=_0x443535[_0x871fac(0x109)]&&this[_0x871fac(0xf3)][_0x871fac(0x103)][_0x871fac(0x107)](_0x41b802['id']),_0xac00e9=!_0x31e355&&!(_0x443535[_0x871fac(0xc9)][_0x871fac(0x129)]&&_0x443535[_0x871fac(0x10c)]===_0x871fac(0xf9)),_0x55690b=_0xac00e9&&(_0x443535[_0x871fac(0xc9)][_0x871fac(0x110)][_0x871fac(0xeb)]===0x503*-0x2+-0x14a4+0x1eaa||_0x443535[_0x871fac(0xc9)][_0x871fac(0x129)]&&_0x443535[_0x871fac(0x10c)]!==_0x871fac(0xf9));if(_0xac00e9)this[_0x871fac(0xf6)](_0x41b802['id']);else this[_0x871fac(0xf3)][_0x871fac(0x12f)](_0x41b802[_0x871fac(0xc5)],_0x41b802['id']);return _0x55690b?_0x871fac(0xe2):_0x871fac(0x106);}async[_0x44fa0a(0xc8)](_0x4e9055){const _0x28863e=_0x44fa0a,_0x202700=this[_0x28863e(0xf3)][_0x28863e(0x103)][_0x28863e(0xc3)](_0x4e9055);if(_0x202700===undefined)return;this[_0x28863e(0xf3)][_0x28863e(0x12f)](_0x202700[_0x28863e(0xc5)],_0x4e9055);const _0x512668=this[_0x28863e(0xe0)][_0x28863e(0xf1)](_0x202700['id']);if(_0x512668===undefined){this[_0x28863e(0xf3)][_0x28863e(0x125)](_0x202700['id'],_0x28863e(0x121),{'code':_0x28863e(0x119)},_0x28863e(0xdf));return;}try{const _0x42a372=this[_0x28863e(0xf3)][_0x28863e(0x103)][_0x28863e(0xc1)](_0x202700['id']);if(_0x42a372!==undefined)this[_0x28863e(0xf3)][_0x28863e(0xb9)](_0x42a372);const _0x1cead0=this[_0x28863e(0xf3)][_0x28863e(0x103)][_0x28863e(0x118)](_0x202700['id']);if(_0x1cead0!==undefined&&isTerminalRunStatus(_0x1cead0[_0x28863e(0xd5)]))return;if(_0x1cead0?.[_0x28863e(0xd5)]===_0x28863e(0x113)){this[_0x28863e(0xf3)][_0x28863e(0x125)](_0x202700['id'],_0x28863e(0x120),{'status':_0x28863e(0x102)},_0x28863e(0x102));return;}this[_0x28863e(0xf3)][_0x28863e(0xbe)](_0x28863e(0xe9),{'runId':_0x512668[_0x28863e(0xd7)],'sessionId':_0x512668[_0x28863e(0xee)],'workspaceId':_0x512668[_0x28863e(0xc5)],'runner':_0x512668[_0x28863e(0x10d)],'input':_0x512668[_0x28863e(0xc7)],..._0x512668[_0x28863e(0x12e)][_0x28863e(0xeb)]===-0xd89+0x1*0x154a+0x18d*-0x5?{}:{'attachments':_0x512668[_0x28863e(0x12e)]},'cwd':_0x512668[_0x28863e(0x133)],..._0x512668[_0x28863e(0xc0)]===null?{}:{'externalSessionId':_0x512668[_0x28863e(0xc0)]},..._0x512668[_0x28863e(0xb8)]===null?{}:{'model':_0x512668[_0x28863e(0xb8)]},..._0x512668[_0x28863e(0x122)]===null?{}:{'effort':_0x512668[_0x28863e(0x122)]},..._0x512668[_0x28863e(0xe4)]===null?{}:{'access':_0x512668[_0x28863e(0xe4)]},'collaborationMode':_0x512668[_0x28863e(0x127)],..._0x512668[_0x28863e(0x108)]===undefined?{}:{'serviceTier':_0x512668[_0x28863e(0x108)]},'secretEnvironment':_0x512668[_0x28863e(0xd1)],..._0x512668[_0x28863e(0x136)]===undefined?{}:{'personalInstructions':_0x512668[_0x28863e(0x136)]},'mcpInstallations':this[_0x28863e(0xf3)][_0x28863e(0xde)](_0x512668[_0x28863e(0xc5)])});}catch(_0x3102a3){this[_0x28863e(0xf3)][_0x28863e(0x125)](_0x202700['id'],_0x28863e(0x121),{'code':safeErrorCode(_0x3102a3,_0x28863e(0x101))},_0x28863e(0xdf));}}[_0x44fa0a(0xe5)](_0x426f6b,_0xb92e9c){const _0xd1ae16=_0x44fa0a,_0x7ade3e=this[_0xd1ae16(0xf3)][_0xd1ae16(0x103)][_0xd1ae16(0x112)](_0xb92e9c);if(_0x7ade3e?.[_0xd1ae16(0xc5)]!==_0x426f6b)throw new Error(_0xd1ae16(0xba));const _0x2ef6d4=this[_0xd1ae16(0xf3)][_0xd1ae16(0x103)][_0xd1ae16(0xc6)](_0xb92e9c);return{'version':_0x2ef6d4[_0xd1ae16(0x11d)],'paused':_0x2ef6d4[_0xd1ae16(0x129)],'items':_0x2ef6d4[_0xd1ae16(0x110)][_0xd1ae16(0xd3)](_0x50a540=>{const _0x5dca85=_0xd1ae16,_0x433210=this[_0x5dca85(0xf3)][_0x5dca85(0x103)][_0x5dca85(0x118)](_0x50a540);if(_0x433210===undefined)return[];const _0x57a1ee=this[_0x5dca85(0xf3)][_0x5dca85(0x103)][_0x5dca85(0x112)](_0x433210[_0x5dca85(0xee)]);return[{'run':_0x433210,'sessionId':_0x433210[_0x5dca85(0xee)],'sessionTitle':_0x57a1ee?.[_0x5dca85(0xe7)]??_0x57a1ee?.[_0x5dca85(0x105)]??_0x5dca85(0xf8),'content':this[_0x5dca85(0xf3)][_0x5dca85(0x103)][_0x5dca85(0xcc)](_0x433210['id'])}];})};}[_0x44fa0a(0xbb)](_0x55e1a3,_0x4dae15){const _0x488ce1=_0x44fa0a,_0xe7cd5=this[_0x488ce1(0xe0)][_0x488ce1(0xf1)](_0x55e1a3),_0x473995=withNonImageAttachmentPrompt(_0x4dae15,_0xe7cd5?.[_0x488ce1(0xf5)]??[]);this[_0x488ce1(0xf3)][_0x488ce1(0x103)][_0x488ce1(0x10f)](_0x55e1a3,_0x473995);if(_0xe7cd5===undefined)return;this[_0x488ce1(0xe0)][_0x488ce1(0x11f)](_0x55e1a3,{..._0xe7cd5,'input':this[_0x488ce1(0xf3)][_0x488ce1(0xd0)](_0xe7cd5[_0x488ce1(0x10d)],_0x473995,_0xe7cd5[_0x488ce1(0x127)])});}}function record(_0x28ecc3){return isPlainRecord(_0x28ecc3)?_0x28ecc3:{};}