@myagentroam/node 0.9.9 → 0.9.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 (214) 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 -845
  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 -982
  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 -84
  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 -78
  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 -94
  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 -171
  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 -36
  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/recent-run-projection-service.d.ts +0 -14
  170. package/dist/service/run-attachment-service.d.ts +0 -38
  171. package/dist/service/run-domain-state.d.ts +0 -4
  172. package/dist/service/run-event-service.d.ts +0 -33
  173. package/dist/service/run-workbench-service.d.ts +0 -25
  174. package/dist/service/runner-channel-message-service.d.ts +0 -13
  175. package/dist/service/runner-interaction-service.d.ts +0 -39
  176. package/dist/service/runner-service.d.ts +0 -46
  177. package/dist/service/session-catalog-service.d.ts +0 -45
  178. package/dist/service/session-command-service.d.ts +0 -24
  179. package/dist/service/session-context-service.d.ts +0 -35
  180. package/dist/service/session-domain-state.d.ts +0 -9
  181. package/dist/service/session-identity-service.d.ts +0 -24
  182. package/dist/service/session-lifecycle-service.d.ts +0 -31
  183. package/dist/service/session-message-service.d.ts +0 -33
  184. package/dist/service/session-presentation-service.d.ts +0 -34
  185. package/dist/service/session-query-service.d.ts +0 -35
  186. package/dist/service/skill-directory-service.d.ts +0 -20
  187. package/dist/service/skill-install-service.d.ts +0 -21
  188. package/dist/service/skill-node-operation-service.d.ts +0 -44
  189. package/dist/service/terminal-relay-state.d.ts +0 -6
  190. package/dist/service/terminal-service.d.ts +0 -12
  191. package/dist/service/workbench-event-service.d.ts +0 -9
  192. package/dist/service/workbench-manifest-service.d.ts +0 -90
  193. package/dist/service/workspace-change-service.d.ts +0 -9
  194. package/dist/service/workspace-content-search-service.d.ts +0 -14
  195. package/dist/service/workspace-domain-state.d.ts +0 -79
  196. package/dist/service/workspace-file-service.d.ts +0 -18
  197. package/dist/service/workspace-git-exclude-service.d.ts +0 -4
  198. package/dist/service/workspace-queue-workbench-service.d.ts +0 -86
  199. package/dist/service/workspace-service.d.ts +0 -15
  200. package/dist/service/workspace-session-service.d.ts +0 -23
  201. package/dist/service/workspace-upload-service.d.ts +0 -39
  202. package/dist/service/workspace-watch-service.d.ts +0 -23
  203. package/dist/service/workspace-workbench-service.d.ts +0 -58
  204. package/dist/service.d.ts +0 -4
  205. package/dist/storage.d.ts +0 -2
  206. package/dist/supervisor.d.ts +0 -1
  207. package/dist/terminal.d.ts +0 -133
  208. package/dist/util/node-operation-parsers.d.ts +0 -92
  209. package/dist/util/personal-instructions.d.ts +0 -2
  210. package/dist/util/runner-error.d.ts +0 -6
  211. package/dist/util/runner-native-session-parsers.d.ts +0 -74
  212. package/dist/util/safe-error.d.ts +0 -2
  213. package/dist/util/secret-environment.d.ts +0 -1
  214. package/dist/workspace.d.ts +0 -217
@@ -1,143 +1,2 @@
1
- export const NODE_SCHEMA_VERSION_V2 = 2;
2
- export function migrateNodeSchemaV2(database) {
3
- const candidates = new Map();
4
- const managed = database
5
- .prepare(`SELECT external_session_id, workspace_id, runner, custom_title, runner_title,
6
- pinned_at, model, effort, access, updated_at
7
- FROM agent_sessions WHERE external_session_id IS NOT NULL`)
8
- .all();
9
- const native = database
10
- .prepare(`SELECT external_session_id, workspace_id, runner, custom_title, runner_title,
11
- runner_title_pending, pinned_at, model, effort, access, updated_at
12
- FROM native_session_metadata`)
13
- .all();
14
- for (const row of [...managed, ...native]) {
15
- const id = text(row, 'external_session_id');
16
- const updatedAt = integer(row, 'updated_at');
17
- const current = candidates.get(id);
18
- const incoming = {
19
- id,
20
- workspaceId: text(row, 'workspace_id'),
21
- runner: text(row, 'runner'),
22
- pinnedAt: nullableInteger(row, 'pinned_at'),
23
- updatedAt,
24
- metadata: {
25
- version: 1,
26
- customTitle: nullableText(row, 'custom_title'),
27
- runnerTitle: nullableText(row, 'runner_title'),
28
- runnerTitlePending: row['runner_title_pending'] === 1,
29
- model: nullableText(row, 'model'),
30
- effort: nullableText(row, 'effort'),
31
- access: nullableText(row, 'access')
32
- }
33
- };
34
- if (current === undefined) {
35
- candidates.set(id, incoming);
36
- continue;
37
- }
38
- const newer = incoming.updatedAt >= current.updatedAt ? incoming : current;
39
- const older = newer === incoming ? current : incoming;
40
- candidates.set(id, {
41
- ...newer,
42
- pinnedAt: newer.pinnedAt ?? older.pinnedAt,
43
- metadata: mergeMetadata(older.metadata, newer.metadata)
44
- });
45
- }
46
- database.exec('PRAGMA foreign_keys = OFF');
47
- database.exec('BEGIN IMMEDIATE');
48
- try {
49
- for (const table of [
50
- 'native_session_checkpoints',
51
- 'message_attachments',
52
- 'run_events',
53
- 'conversation_item_events',
54
- 'conversation_items',
55
- 'conversation_turns',
56
- 'approvals',
57
- 'workspace_leases',
58
- 'run_snapshots',
59
- 'agent_runs',
60
- 'session_messages',
61
- 'workspace_activity_events'
62
- ])
63
- database.exec(`DROP TABLE IF EXISTS ${table}`);
64
- database.exec('DROP TABLE IF EXISTS native_session_metadata');
65
- database.exec('ALTER TABLE agent_sessions RENAME TO agent_sessions_v1');
66
- database.exec(`CREATE TABLE agent_sessions (
67
- id TEXT PRIMARY KEY,
68
- workspace_id TEXT NOT NULL REFERENCES workspaces(id) ON DELETE CASCADE,
69
- runner TEXT NOT NULL CHECK (runner IN ('codex', 'claude-code')),
70
- pin_order INTEGER CHECK (pin_order IS NULL OR pin_order >= 0),
71
- metadata TEXT NOT NULL CHECK (json_valid(metadata))
72
- ) STRICT`);
73
- const insert = database.prepare('INSERT INTO agent_sessions (id, workspace_id, runner, pin_order, metadata) VALUES (?, ?, ?, ?, ?)');
74
- const byWorkspace = new Map();
75
- for (const candidate of candidates.values()) {
76
- if (candidate.pinnedAt === null)
77
- continue;
78
- const values = byWorkspace.get(candidate.workspaceId) ?? [];
79
- values.push(candidate);
80
- byWorkspace.set(candidate.workspaceId, values);
81
- }
82
- const pinOrders = new Map();
83
- for (const values of byWorkspace.values())
84
- values
85
- .sort((left, right) => (right.pinnedAt ?? 0) - (left.pinnedAt ?? 0) || left.id.localeCompare(right.id))
86
- .forEach((candidate, index) => pinOrders.set(candidate.id, index));
87
- for (const candidate of candidates.values())
88
- insert.run(candidate.id, candidate.workspaceId, candidate.runner, pinOrders.get(candidate.id) ?? null, JSON.stringify(candidate.metadata));
89
- database.exec('DROP TABLE agent_sessions_v1');
90
- database
91
- .prepare('INSERT INTO node_schema_migrations (version, applied_at) VALUES (?, ?)')
92
- .run(NODE_SCHEMA_VERSION_V2, Date.now());
93
- database.exec('COMMIT');
94
- }
95
- catch (error) {
96
- database.exec('ROLLBACK');
97
- throw error;
98
- }
99
- finally {
100
- database.exec('PRAGMA foreign_keys = ON');
101
- }
102
- }
103
- export function assertNodeSchemaV2(database) {
104
- const columns = database.prepare('PRAGMA table_info(agent_sessions)').all();
105
- const names = columns.map((row) => text(row, 'name'));
106
- if (names.join(',') !== 'id,workspace_id,runner,pin_order,metadata')
107
- throw new Error('NODE_DATABASE_SCHEMA_INVALID:agent_sessions');
108
- const legacy = database
109
- .prepare("SELECT name FROM sqlite_master WHERE type = 'table' AND name = 'native_session_metadata'")
110
- .get();
111
- if (legacy !== undefined)
112
- throw new Error('NODE_DATABASE_SCHEMA_INVALID:native_session_metadata');
113
- }
114
- function mergeMetadata(older, newer) {
115
- return {
116
- version: 1,
117
- customTitle: newer.customTitle ?? older.customTitle,
118
- runnerTitle: newer.runnerTitle ?? older.runnerTitle,
119
- runnerTitlePending: newer.runnerTitlePending,
120
- model: newer.model ?? older.model,
121
- effort: newer.effort ?? older.effort,
122
- access: newer.access ?? older.access
123
- };
124
- }
125
- function text(row, key) {
126
- const value = row[key];
127
- if (typeof value !== 'string')
128
- throw new Error(`NODE_DATABASE_MIGRATION_INVALID:${key}`);
129
- return value;
130
- }
131
- function nullableText(row, key) {
132
- const value = row[key];
133
- return typeof value === 'string' ? value : null;
134
- }
135
- function integer(row, key) {
136
- const value = row[key];
137
- if (typeof value !== 'number' || !Number.isSafeInteger(value))
138
- throw new Error(`NODE_DATABASE_MIGRATION_INVALID:${key}`);
139
- return value;
140
- }
141
- function nullableInteger(row, key) {
142
- return row[key] === null || row[key] === undefined ? null : integer(row, key);
143
- }
1
+ /* mar-release-protected */
2
+ (function(_0x5f0d02,_0x4536ab){const _0x2ba36b=_0x108a,_0xd28a19=_0x5f0d02();while(!![]){try{const _0xee0c7c=parseInt(_0x2ba36b(0x16b))/(0x1*-0x35b+-0x2704+0x8*0x54c)+parseInt(_0x2ba36b(0x161))/(-0x1*-0x40+-0x18fc+0x18be)+parseInt(_0x2ba36b(0x150))/(-0x3*0x610+0x1ad7*-0x1+-0x1*-0x2d0a)*(parseInt(_0x2ba36b(0x139))/(-0xb*0x1f7+0x20e6+-0x1*0xb45))+parseInt(_0x2ba36b(0x16f))/(0x136*-0x8+-0x6*0x5f+0xbef)+-parseInt(_0x2ba36b(0x148))/(-0x2629*0x1+-0x7d2+0x2e01)*(-parseInt(_0x2ba36b(0x152))/(0xed3+-0x65*-0x5b+-0x32b3))+-parseInt(_0x2ba36b(0x14a))/(0x33*-0x13+0x35+0x39c)*(parseInt(_0x2ba36b(0x138))/(0x2357+-0x10a0+-0x1*0x12ae))+-parseInt(_0x2ba36b(0x157))/(0x25e7+-0x5*-0x285+-0x3276);if(_0xee0c7c===_0x4536ab)break;else _0xd28a19['push'](_0xd28a19['shift']());}catch(_0x475b8b){_0xd28a19['push'](_0xd28a19['shift']());}}}(_0x261b,0x1238cc+0x34b5e+0x1619c*-0x6));export const NODE_SCHEMA_VERSION_V2=-0x4e9+-0x3d*-0x7c+0x1*-0x18a1;export function migrateNodeSchemaV2(_0x7766c8){const _0x2b2ca5=_0x108a,_0x23f277=new Map(),_0x2efa0d=_0x7766c8[_0x2b2ca5(0x146)](_0x2b2ca5(0x14d))[_0x2b2ca5(0x132)](),_0x1c14e5=_0x7766c8[_0x2b2ca5(0x146)](_0x2b2ca5(0x164))[_0x2b2ca5(0x132)]();for(const _0xf61021 of[..._0x2efa0d,..._0x1c14e5]){const _0x26f40c=text(_0xf61021,_0x2b2ca5(0x13d)),_0x3eef3f=integer(_0xf61021,_0x2b2ca5(0x135)),_0x2a2be9=_0x23f277[_0x2b2ca5(0x170)](_0x26f40c),_0x604603={'id':_0x26f40c,'workspaceId':text(_0xf61021,_0x2b2ca5(0x159)),'runner':text(_0xf61021,_0x2b2ca5(0x168)),'pinnedAt':nullableInteger(_0xf61021,_0x2b2ca5(0x172)),'updatedAt':_0x3eef3f,'metadata':{'version':0x1,'customTitle':nullableText(_0xf61021,_0x2b2ca5(0x14c)),'runnerTitle':nullableText(_0xf61021,_0x2b2ca5(0x145)),'runnerTitlePending':_0xf61021[_0x2b2ca5(0x131)]===0x117*0x17+0x1015*-0x1+-0x8fb*0x1,'model':nullableText(_0xf61021,_0x2b2ca5(0x177)),'effort':nullableText(_0xf61021,_0x2b2ca5(0x160)),'access':nullableText(_0xf61021,_0x2b2ca5(0x15c))}};if(_0x2a2be9===undefined){_0x23f277[_0x2b2ca5(0x173)](_0x26f40c,_0x604603);continue;}const _0x403d7d=_0x604603[_0x2b2ca5(0x16c)]>=_0x2a2be9[_0x2b2ca5(0x16c)]?_0x604603:_0x2a2be9,_0x90e77e=_0x403d7d===_0x604603?_0x2a2be9:_0x604603;_0x23f277[_0x2b2ca5(0x173)](_0x26f40c,{..._0x403d7d,'pinnedAt':_0x403d7d[_0x2b2ca5(0x13f)]??_0x90e77e[_0x2b2ca5(0x13f)],'metadata':mergeMetadata(_0x90e77e[_0x2b2ca5(0x142)],_0x403d7d[_0x2b2ca5(0x142)])});}_0x7766c8[_0x2b2ca5(0x179)](_0x2b2ca5(0x166)),_0x7766c8[_0x2b2ca5(0x179)](_0x2b2ca5(0x13e));try{for(const _0x40318e of[_0x2b2ca5(0x137),_0x2b2ca5(0x153),_0x2b2ca5(0x13b),_0x2b2ca5(0x144),_0x2b2ca5(0x151),_0x2b2ca5(0x15d),_0x2b2ca5(0x17c),_0x2b2ca5(0x175),_0x2b2ca5(0x143),_0x2b2ca5(0x174),_0x2b2ca5(0x17b),_0x2b2ca5(0x13c)])_0x7766c8[_0x2b2ca5(0x179)](_0x2b2ca5(0x176)+_0x40318e);_0x7766c8[_0x2b2ca5(0x179)](_0x2b2ca5(0x13a)),_0x7766c8[_0x2b2ca5(0x179)](_0x2b2ca5(0x171)),_0x7766c8[_0x2b2ca5(0x179)](_0x2b2ca5(0x17a));const _0x27db15=_0x7766c8[_0x2b2ca5(0x146)](_0x2b2ca5(0x130)),_0x5baa1d=new Map();for(const _0x1fa8fb of _0x23f277[_0x2b2ca5(0x133)]()){if(_0x1fa8fb[_0x2b2ca5(0x13f)]===null)continue;const _0x28a61d=_0x5baa1d[_0x2b2ca5(0x170)](_0x1fa8fb[_0x2b2ca5(0x16a)])??[];_0x28a61d[_0x2b2ca5(0x178)](_0x1fa8fb),_0x5baa1d[_0x2b2ca5(0x173)](_0x1fa8fb[_0x2b2ca5(0x16a)],_0x28a61d);}const _0x252888=new Map();for(const _0x5f4599 of _0x5baa1d[_0x2b2ca5(0x133)]())_0x5f4599[_0x2b2ca5(0x17d)]((_0x94814b,_0x89e60b)=>(_0x89e60b[_0x2b2ca5(0x13f)]??0x24f9+0x97*0x17+-0x328a)-(_0x94814b[_0x2b2ca5(0x13f)]??0x14a5+-0xb81*0x3+-0x163*-0xa)||_0x94814b['id'][_0x2b2ca5(0x15a)](_0x89e60b['id']))[_0x2b2ca5(0x14e)]((_0x4f28d3,_0xfdc0e6)=>_0x252888[_0x2b2ca5(0x173)](_0x4f28d3['id'],_0xfdc0e6));for(const _0x4db858 of _0x23f277[_0x2b2ca5(0x133)]())_0x27db15[_0x2b2ca5(0x162)](_0x4db858['id'],_0x4db858[_0x2b2ca5(0x16a)],_0x4db858[_0x2b2ca5(0x168)],_0x252888[_0x2b2ca5(0x170)](_0x4db858['id'])??null,JSON[_0x2b2ca5(0x140)](_0x4db858[_0x2b2ca5(0x142)]));_0x7766c8[_0x2b2ca5(0x179)](_0x2b2ca5(0x158)),_0x7766c8[_0x2b2ca5(0x146)](_0x2b2ca5(0x14f))[_0x2b2ca5(0x162)](NODE_SCHEMA_VERSION_V2,Date[_0x2b2ca5(0x149)]()),_0x7766c8[_0x2b2ca5(0x179)](_0x2b2ca5(0x17e));}catch(_0x58ccaa){_0x7766c8[_0x2b2ca5(0x179)](_0x2b2ca5(0x16e));throw _0x58ccaa;}finally{_0x7766c8[_0x2b2ca5(0x179)](_0x2b2ca5(0x155));}}export function assertNodeSchemaV2(_0x3efa41){const _0xadab62=_0x108a,_0x316441=_0x3efa41[_0xadab62(0x146)](_0xadab62(0x147))[_0xadab62(0x132)](),_0x442284=_0x316441[_0xadab62(0x141)](_0x30874e=>text(_0x30874e,_0xadab62(0x169)));if(_0x442284[_0xadab62(0x15f)](',')!==_0xadab62(0x15e))throw new Error(_0xadab62(0x165));const _0x390761=_0x3efa41[_0xadab62(0x146)](_0xadab62(0x134))[_0xadab62(0x170)]();if(_0x390761!==undefined)throw new Error(_0xadab62(0x163));}function mergeMetadata(_0x432cda,_0x2c14f2){const _0x1a25db=_0x108a;return{'version':0x1,'customTitle':_0x2c14f2[_0x1a25db(0x14b)]??_0x432cda[_0x1a25db(0x14b)],'runnerTitle':_0x2c14f2[_0x1a25db(0x16d)]??_0x432cda[_0x1a25db(0x16d)],'runnerTitlePending':_0x2c14f2[_0x1a25db(0x15b)],'model':_0x2c14f2[_0x1a25db(0x177)]??_0x432cda[_0x1a25db(0x177)],'effort':_0x2c14f2[_0x1a25db(0x160)]??_0x432cda[_0x1a25db(0x160)],'access':_0x2c14f2[_0x1a25db(0x15c)]??_0x432cda[_0x1a25db(0x15c)]};}function text(_0x446f43,_0x4728ba){const _0x20a6e3=_0x108a,_0x5b1e2a=_0x446f43[_0x4728ba];if(typeof _0x5b1e2a!==_0x20a6e3(0x136))throw new Error(_0x20a6e3(0x154)+_0x4728ba);return _0x5b1e2a;}function _0x261b(){const _0x24ada8=['CgLUBMvKx2f0','C2v0','ywDLBNrFCNvUCW','D29YA3nWywnLx2XLyxnLCW','rfjpucbuqujmrsbjrIbfweLtvfmG','Bw9KzwW','ChvZAa','zxHLyW','q1jfqvrfifrbqKXfigfNzw50x3nLC3nPB25ZicGkicaGicaGAwqGvevyvcbquKLnqvjzieTfwsWkicaGicaGD29YA3nWywnLx2LKifrfwfqGtK9uie5vteWGuKvgrvjftKnfuYb3B3jRC3bHy2vZkgLKksbptIberuXfveuGq0ftq0fersWkicaGicaGCNvUBMvYifrfwfqGtK9uie5vteWGq0Hfq0SGkhj1BM5LCIbjtIaOj2nVzgv4jYWGj2nSyxvKzs1JB2rLjYKPlaOGicaGicbWAw5FB3jKzxiGsu5uruDfuIbdsevdsYaOCgLUx29YzgvYieLtie5vteWGt1iGCgLUx29YzgvYid49idaPlaOGicaGicbTzxrHzgf0ysburvHuie5pvcbovuXmienirunlicHQC29Ux3zHBgLKkg1LDgfKyxrHksKkicaGicKGu1rssunu','C2vZC2LVBL9TzxnZywDLCW','yxbWCM92ywXZ','C29YDa','q09ntuLu','su5trvjuieLove8GywDLBNrFC2vZC2LVBNmGkgLKlcb3B3jRC3bHy2vFAwqSihj1BM5LCIWGCgLUx29YzgvYlcbTzxrHzgf0ysKGvKfmvuvticG/lca/lca/lca/lca/kq','CNvUBMvYx3rPDgXLx3bLBMrPBMC','ywXS','DMfSDwvZ','u0vmrunuig5HBwuGrLjptsbZCwXPDgvFBwfZDgvYifDirvjfihr5CguGpsaNDgfIBguNieforcbUyw1Lid0Gj25HDgL2zv9ZzxnZAw9Ux21LDgfKyxrHjW','DxbKyxrLzf9HDa','C3rYAw5N','BMf0AxzLx3nLC3nPB25Fy2HLy2TWB2LUDhm','mJu2mdu2m3rywgTxBq','mtmYsNDcEeTl','rfjpucbuqujmrsbjrIbfweLtvfmGBMf0AxzLx3nLC3nPB25FBwv0ywrHDge','CNvUx2v2zw50CW','D29YA3nWywnLx2fJDgL2Axr5x2v2zw50CW','zxH0zxjUywXFC2vZC2LVBL9Pza','qKvhsu4Gsu1nrurjqvrf','CgLUBMvKqxq','C3rYAw5NAwz5','BwfW','Bwv0ywrHDge','CNvUx3nUyxbZAg90CW','y29UDMvYC2f0Aw9Ux2L0zw1FzxzLBNrZ','CNvUBMvYx3rPDgXL','ChjLCgfYzq','ufjbr01bihrHyMXLx2LUzM8OywDLBNrFC2vZC2LVBNmP','nJbhuMXtuK8','BM93','mtzgDwDXshm','y3vZDg9TvgL0Bgu','y3vZDg9Tx3rPDgXL','u0vmrunuigv4DgvYBMfSx3nLC3nPB25FAwqSihDVCMTZCgfJzv9PzcWGCNvUBMvYlcbJDxn0B21FDgL0BguSihj1BM5LCL90AxrSzsWkicaGicaGicaGicaGicbWAw5UzwrFyxqSig1VzgvSlcbLzMzVCNqSigfJy2vZCYWGDxbKyxrLzf9HDaOGicaGicaGicbguK9nigfNzw50x3nLC3nPB25ZifDirvjfigv4DgvYBMfSx3nLC3nPB25FAwqGsvmGtK9uie5vteW','zM9YrwfJAa','su5trvjuieLove8GBM9Kzv9Zy2HLBwfFBwLNCMf0Aw9UCYaODMvYC2LVBIWGyxbWBgLLzf9HDcKGvKfmvuvticG/lca/kq','mZG1mZjLzKjzuhy','y29UDMvYC2f0Aw9Ux2L0zw1Z','oduXmZe5CwrJsKHs','BwvZC2fNzv9HDhrHy2HTzw50CW','tK9erv9eqvrbqKftrv9nsuDsqvrjt05Fsu5wquXjrdO','ufjbr01bigzVCMvPz25FA2v5CYa9ie9o','BNvTyMvY','mJy5odG4odbuC1vkDKG','rfjpucbuqujmrsbHz2vUDf9ZzxnZAw9UC192mq','D29YA3nWywnLx2LK','Bg9JywXLq29TCgfYzq','CNvUBMvYvgL0Bgvqzw5KAw5N','ywnJzxnZ','y29UDMvYC2f0Aw9Ux3r1CM5Z','AwqSD29YA3nWywnLx2LKlhj1BM5LCIXWAw5FB3jKzxiSBwv0ywrHDge','AM9PBG','zwzMB3j0','nZC3nJCWzhnWt0PK','CNvU','tK9erv9eqvrbqKftrv9tq0HftufFsu5wquXjrdPUyxrPDMvFC2vZC2LVBL9TzxrHzgf0yq','u0vmrunuigv4DgvYBMfSx3nLC3nPB25FAwqSihDVCMTZCgfJzv9PzcWGCNvUBMvYlcbJDxn0B21FDgL0BguSihj1BM5LCL90AxrSzsWkicaGicaGicaGicaGicbYDw5UzxjFDgL0BgvFCgvUzgLUzYWGCgLUBMvKx2f0lcbTB2rLBcWGzwzMB3j0lcbHy2nLC3mSihvWzgf0zwrFyxqkicaGicaGicaGrLjptsbUyxrPDMvFC2vZC2LVBL9TzxrHzgf0yq','tK9erv9eqvrbqKftrv9tq0HftufFsu5wquXjrdPHz2vUDf9ZzxnZAw9UCW','ufjbr01bigzVCMvPz25FA2v5CYa9ie9grG','AxntywzLsw50zwDLCG','CNvUBMvY','BMfTzq','D29YA3nWywnLswq','nZi4nZa0u2Lgy2TX','DxbKyxrLzef0','CNvUBMvYvgL0Bgu','uK9mtejbq0S','nJG4nJqZnxLwu0jlBG','z2v0','quXurviGvefcteuGywDLBNrFC2vZC2LVBNmGuKvoqu1fifrpigfNzw50x3nLC3nPB25Zx3yX'];_0x261b=function(){return _0x24ada8;};return _0x261b();}function nullableText(_0x3cc7a0,_0x6ab569){const _0x12e4d5=_0x108a,_0x1bdcfb=_0x3cc7a0[_0x6ab569];return typeof _0x1bdcfb===_0x12e4d5(0x136)?_0x1bdcfb:null;}function _0x108a(_0x30cb13,_0x235dfa){_0x30cb13=_0x30cb13-(0x1481+-0x1b0a+0x1*0x7b9);const _0x2702ca=_0x261b();let _0x523572=_0x2702ca[_0x30cb13];if(_0x108a['oATUbK']===undefined){var _0xf6928b=function(_0x1356c2){const _0x1dea8d='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x589be6='',_0x226649='';for(let _0x1d2015=0x831+0x5b5+-0xde6,_0x49c542,_0x40a6a7,_0x6ac477=-0x3d*-0x7c+0x1*-0x14b9+-0x9*0xfb;_0x40a6a7=_0x1356c2['charAt'](_0x6ac477++);~_0x40a6a7&&(_0x49c542=_0x1d2015%(0x3b4*0x1+-0xd27*-0x2+0xb*-0x2ba)?_0x49c542*(-0x102a*0x1+-0x480*-0x7+-0xf16)+_0x40a6a7:_0x40a6a7,_0x1d2015++%(-0xcf*-0xd+-0x23c0+0x1941))?_0x589be6+=String['fromCharCode'](-0x95+-0x1010+-0x1*-0x11a4&_0x49c542>>(-(-0x2224+0xd90+-0x1496*-0x1)*_0x1d2015&0xd86+-0x691*0x2+-0x5e)):0x3af*0x7+0x1*-0x1a14+0x3*0x19){_0x40a6a7=_0x1dea8d['indexOf'](_0x40a6a7);}for(let _0x7f1860=0xb0+0x3d*0x43+0x15*-0xcb,_0xa98e84=_0x589be6['length'];_0x7f1860<_0xa98e84;_0x7f1860++){_0x226649+='%'+('00'+_0x589be6['charCodeAt'](_0x7f1860)['toString'](0x9*-0x3bc+-0x103e+0x1*0x31ea))['slice'](-(0x3*0x92c+0x579*0x3+-0x2bed));}return decodeURIComponent(_0x226649);};_0x108a['vOdTmt']=_0xf6928b,_0x108a['Onyyvw']={},_0x108a['oATUbK']=!![];}const _0x39e50e=_0x2702ca[0x9b1*-0x2+-0xf44+-0x5*-0x6ee];_0x108a['iUIEXb']!==_0x39e50e&&(_0x108a['Onyyvw']={},_0x108a['iUIEXb']=_0x39e50e);const _0x45cccf=_0x108a['Onyyvw'][_0x30cb13];return _0x45cccf===undefined?(_0x523572=_0x108a['vOdTmt'](_0x523572),_0x108a['Onyyvw'][_0x30cb13]=_0x523572):_0x523572=_0x45cccf,_0x523572;}function integer(_0x3fbe50,_0x3dc7e6){const _0x155ee7=_0x108a,_0x3b73a4=_0x3fbe50[_0x3dc7e6];if(typeof _0x3b73a4!==_0x155ee7(0x156)||!Number[_0x155ee7(0x167)](_0x3b73a4))throw new Error(_0x155ee7(0x154)+_0x3dc7e6);return _0x3b73a4;}function nullableInteger(_0x55b91c,_0x3753c0){return _0x55b91c[_0x3753c0]===null||_0x55b91c[_0x3753c0]===undefined?null:integer(_0x55b91c,_0x3753c0);}
@@ -1,44 +1,2 @@
1
- export const NODE_SCHEMA_VERSION_V3 = 3;
2
- export function migrateNodeSchemaV3(database) {
3
- database.exec('PRAGMA foreign_keys = OFF');
4
- database.exec('BEGIN IMMEDIATE');
5
- try {
6
- database.exec(`ALTER TABLE agent_sessions RENAME TO agent_sessions_v2;
7
- CREATE TABLE agent_sessions (
8
- id TEXT PRIMARY KEY,
9
- workspace_id TEXT NOT NULL REFERENCES workspaces(id) ON DELETE CASCADE,
10
- runner TEXT NOT NULL CHECK (runner IN ('codex', 'claude-code', 'opencode')),
11
- pin_order INTEGER CHECK (pin_order IS NULL OR pin_order >= 0),
12
- metadata TEXT NOT NULL CHECK (json_valid(metadata))
13
- ) STRICT;
14
- INSERT INTO agent_sessions SELECT * FROM agent_sessions_v2;
15
- DROP TABLE agent_sessions_v2;
16
- ALTER TABLE runner_defaults RENAME TO runner_defaults_v2;
17
- CREATE TABLE runner_defaults (
18
- runner TEXT PRIMARY KEY CHECK (runner IN ('codex', 'claude-code', 'opencode')),
19
- model TEXT NOT NULL, effort TEXT NOT NULL, access TEXT NOT NULL
20
- ) STRICT;
21
- INSERT INTO runner_defaults SELECT * FROM runner_defaults_v2;
22
- DROP TABLE runner_defaults_v2;`);
23
- database
24
- .prepare('INSERT INTO node_schema_migrations (version, applied_at) VALUES (?, ?)')
25
- .run(NODE_SCHEMA_VERSION_V3, Date.now());
26
- database.exec('COMMIT');
27
- }
28
- catch (error) {
29
- database.exec('ROLLBACK');
30
- throw error;
31
- }
32
- finally {
33
- database.exec('PRAGMA foreign_keys = ON');
34
- }
35
- }
36
- export function assertNodeSchemaV3(database) {
37
- for (const table of ['agent_sessions', 'runner_defaults']) {
38
- const row = database
39
- .prepare("SELECT sql FROM sqlite_master WHERE type = 'table' AND name = ?")
40
- .get(table);
41
- if (typeof row?.sql !== 'string' || !row.sql.includes("'opencode'"))
42
- throw new Error(`NODE_DATABASE_SCHEMA_INVALID:${table}:runner`);
43
- }
44
- }
1
+ /* mar-release-protected */
2
+ (function(_0x8d6ba5,_0x4fdda2){const _0x1b6f7f=_0x1685,_0x3b75c9=_0x8d6ba5();while(!![]){try{const _0x2d6a42=parseInt(_0x1b6f7f(0xb0))/(-0x15c4+0x12a6+0x31f)+-parseInt(_0x1b6f7f(0xae))/(-0x159a+-0xaf4+0x2090)+-parseInt(_0x1b6f7f(0xa9))/(-0x8*-0x2ba+-0x3*0x52f+-0x640)*(-parseInt(_0x1b6f7f(0x9f))/(0x1*0x2335+-0x792+0x1b9f*-0x1))+parseInt(_0x1b6f7f(0xa3))/(0x388+-0x6f1*0x1+-0x1b7*-0x2)+parseInt(_0x1b6f7f(0xb4))/(0x22c1+-0x1*0xe63+0x18*-0xd9)+-parseInt(_0x1b6f7f(0xb1))/(0x4a*0x16+-0x30f+-0x346*0x1)+-parseInt(_0x1b6f7f(0xa0))/(0x1c56+0x1d82+-0x10*0x39d);if(_0x2d6a42===_0x4fdda2)break;else _0x3b75c9['push'](_0x3b75c9['shift']());}catch(_0x55d0bc){_0x3b75c9['push'](_0x3b75c9['shift']());}}}(_0xd485,-0x84c89+-0x11a42d+0x5fe7*0x61));export const NODE_SCHEMA_VERSION_V3=-0xe77+-0x1938+-0x2*-0x13d9;export function migrateNodeSchemaV3(_0x570580){const _0x184f74=_0x1685;_0x570580[_0x184f74(0xb5)](_0x184f74(0xa7)),_0x570580[_0x184f74(0xb5)](_0x184f74(0x9d));try{_0x570580[_0x184f74(0xb5)](_0x184f74(0xb6)),_0x570580[_0x184f74(0x9e)](_0x184f74(0xa1))[_0x184f74(0xb3)](NODE_SCHEMA_VERSION_V3,Date[_0x184f74(0xa8)]()),_0x570580[_0x184f74(0xb5)](_0x184f74(0xac));}catch(_0x43b665){_0x570580[_0x184f74(0xb5)](_0x184f74(0xa5));throw _0x43b665;}finally{_0x570580[_0x184f74(0xb5)](_0x184f74(0xb9));}}function _0x1685(_0x15526e,_0x225180){_0x15526e=_0x15526e-(-0xda5+-0x2399+-0x1*-0x31db);const _0x24a6da=_0xd485();let _0x1b33c6=_0x24a6da[_0x15526e];if(_0x1685['IlaZJj']===undefined){var _0x147ccf=function(_0x426616){const _0x1cc86c='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x56cfd2='',_0x186a03='';for(let _0x9b9e23=-0x1d59+-0x29*0x2f+0x24e0,_0x5aa865,_0x2672a6,_0x5e2bd7=-0x3*0x23b+0x39*-0x69+0x1e12*0x1;_0x2672a6=_0x426616['charAt'](_0x5e2bd7++);~_0x2672a6&&(_0x5aa865=_0x9b9e23%(-0x3*-0x48b+0xb69*0x1+-0x1906*0x1)?_0x5aa865*(-0x14*0x15d+-0xa5+0x1c29)+_0x2672a6:_0x2672a6,_0x9b9e23++%(-0x213*0x11+-0x14c3+-0x63a*-0x9))?_0x56cfd2+=String['fromCharCode'](-0x1f6a+0x1e58+0x211&_0x5aa865>>(-(0x1eed+0x241f+-0x430a)*_0x9b9e23&-0x2c9+-0x21bd+-0x1*-0x248c)):-0x17b*-0xc+0x666+-0xc15*0x2){_0x2672a6=_0x1cc86c['indexOf'](_0x2672a6);}for(let _0x3a92d6=-0x7c4*0x2+-0xf3d+0x1*0x1ec5,_0xe060=_0x56cfd2['length'];_0x3a92d6<_0xe060;_0x3a92d6++){_0x186a03+='%'+('00'+_0x56cfd2['charCodeAt'](_0x3a92d6)['toString'](-0x1a5c+0x1*0x795+-0xd*-0x173))['slice'](-(-0x1bd+0x2*0x1de+-0x1fd));}return decodeURIComponent(_0x186a03);};_0x1685['cMHJLk']=_0x147ccf,_0x1685['LieIXn']={},_0x1685['IlaZJj']=!![];}const _0x4a4f0b=_0x24a6da[-0x15c4+0x12a6+0x31e];_0x1685['ZRNnAq']!==_0x4a4f0b&&(_0x1685['LieIXn']={},_0x1685['ZRNnAq']=_0x4a4f0b);const _0x1cb5a7=_0x1685['LieIXn'][_0x15526e];return _0x1cb5a7===undefined?(_0x1b33c6=_0x1685['cMHJLk'](_0x1b33c6),_0x1685['LieIXn'][_0x15526e]=_0x1b33c6):_0x1b33c6=_0x1cb5a7,_0x1b33c6;}export function assertNodeSchemaV3(_0x34a4fa){const _0xf4671a=_0x1685;for(const _0x5a1af9 of[_0xf4671a(0xa2),_0xf4671a(0xaa)]){const _0x405263=_0x34a4fa[_0xf4671a(0x9e)](_0xf4671a(0xab))[_0xf4671a(0xa4)](_0x5a1af9);if(typeof _0x405263?.[_0xf4671a(0xb2)]!==_0xf4671a(0xaf)||!_0x405263[_0xf4671a(0xb2)][_0xf4671a(0xad)](_0xf4671a(0xb8)))throw new Error(_0xf4671a(0xa6)+_0x5a1af9+_0xf4671a(0xb7));}}function _0xd485(){const _0x294a7e=['tK9erv9eqvrbqKftrv9tq0HftufFsu5wquXjrdO','ufjbr01bigzVCMvPz25FA2v5CYa9ie9grG','BM93','mtmXn2fMz3LKCa','CNvUBMvYx2rLzMf1BhrZ','u0vmrunuihnXBcbguK9nihnXBgL0zv9Tyxn0zxiGv0HfuKuGDhLWzsa9icD0ywjSzsCGqu5eig5HBwuGpsa/','q09ntuLu','Aw5JBhvKzxm','nZKYoty0vxbWELvz','C3rYAw5N','mZyXmJe0qwH4swTM','nZKZnJKWoezUuenbCq','C3fS','CNvU','mZqZntaWmeHJB1LdAq','zxHLyW','quXurviGvefcteuGywDLBNrFC2vZC2LVBNmGuKvoqu1fifrpigfNzw50x3nLC3nPB25Zx3yYoWOGicaGicbduKvbveuGvefcteuGywDLBNrFC2vZC2LVBNmGkaOGicaGicaGigLKifrfwfqGufjjtufswsblrvKScIaGicaGicaGD29YA3nWywnLx2LKifrfwfqGtK9uie5vteWGuKvgrvjftKnfuYb3B3jRC3bHy2vZkgLKksbptIberuXfveuGq0ftq0fersWkicaGicaGicbYDw5UzxiGvevyvcbot1qGtLvmtcbdsevdsYaOCNvUBMvYieLoicGNy29KzxGNlcaNy2XHDwrLlwnVzguNlcaNB3bLBMnVzguNksKScIaGicaGicaGCgLUx29YzgvYieLovevhrviGq0Hfq0SGkhbPBL9VCMrLCIbjuYbovuXmie9sihbPBL9VCMrLCIa+psaWksWkicaGicaGicbTzxrHzgf0ysburvHuie5pvcbovuXmienirunlicHQC29Ux3zHBgLKkg1LDgfKyxrHksKkicaGicaGksbtvfjjq1q7cIaGicaGieLou0vsvcbjtLrpigfNzw50x3nLC3nPB25ZifnftevdvcaQiezst00GywDLBNrFC2vZC2LVBNnFDJi7cIaGicaGierst1aGvefcteuGywDLBNrFC2vZC2LVBNnFDJi7cIaGicaGiefmvevsifrbqKXfihj1BM5LCL9KzwzHDwX0CYbsru5btuuGve8GCNvUBMvYx2rLzMf1BhrZx3yYoWOGicaGicbduKvbveuGvefcteuGCNvUBMvYx2rLzMf1BhrZicGkicaGicaGicbYDw5UzxiGvevyvcbquKLnqvjzieTfwsbdsevdsYaOCNvUBMvYieLoicGNy29KzxGNlcaNy2XHDwrLlwnVzguNlcaNB3bLBMnVzguNksKScIaGicaGicaGBw9KzwWGvevyvcbot1qGtLvmtcWGzwzMB3j0ifrfwfqGtK9uie5vteWSigfJy2vZCYburvHuie5pvcbovuXmcIaGicaGicKGu1rssunuoWOGicaGicbjtLnfuLqGsu5utYbYDw5UzxjFzgvMyxvSDhmGu0vmrunuicOGrLjptsbYDw5UzxjFzgvMyxvSDhnFDJi7cIaGicaGierst1aGvefcteuGCNvUBMvYx2rLzMf1BhrZx3yYoW','oNj1BM5LCG','j29Wzw5JB2rLjW','ufjbr01bigzVCMvPz25FA2v5CYa9ie9o','qKvhsu4Gsu1nrurjqvrf','ChjLCgfYzq','ntK2ngPtDKXfvq','nde3odmXmNLdzfDiDa','su5trvjuieLove8GBM9Kzv9Zy2HLBwfFBwLNCMf0Aw9UCYaODMvYC2LVBIWGyxbWBgLLzf9HDcKGvKfmvuvticG/lca/kq','ywDLBNrFC2vZC2LVBNm','ntCYodG4nwXHsMrWCa','z2v0','uK9mtejbq0S'];_0xd485=function(){return _0x294a7e;};return _0xd485();}
@@ -1,35 +1,39 @@
1
- export const NODE_SCHEMA_VERSION_V4 = 4;
2
- export function migrateNodeSchemaV4(database) {
3
- database.exec('BEGIN IMMEDIATE');
4
- try {
5
- database.exec(`CREATE TABLE mcp_installations (
1
+ /* mar-release-protected */
2
+ const _0x3c7063=_0x1c8f;(function(_0x26be94,_0x7e3713){const _0xcf6fb2=_0x1c8f,_0x1a1c86=_0x26be94();while(!![]){try{const _0x3f36f2=-parseInt(_0xcf6fb2(0x16a))/(-0x1*-0x7a1+-0xeb9*-0x2+0x41*-0x92)+-parseInt(_0xcf6fb2(0x15c))/(0x1fe7+0x1*0x23d5+0x1*-0x43ba)+parseInt(_0xcf6fb2(0x168))/(0x2*-0xf1+0x563*0x7+0x2fc*-0xc)+parseInt(_0xcf6fb2(0x191))/(-0x14e6+-0xdfa+0x22e4)*(-parseInt(_0xcf6fb2(0x177))/(-0x7*0x367+0x1*0x23b+0x1*0x159b))+parseInt(_0xcf6fb2(0x171))/(0x270f+0x6e5+0x2*-0x16f7)*(-parseInt(_0xcf6fb2(0x16e))/(0x35*0x61+0x80+-0x36d*0x6))+parseInt(_0xcf6fb2(0x17d))/(0x2391+-0x2266+-0x123)*(-parseInt(_0xcf6fb2(0x193))/(-0xca+0x100a+0x5*-0x30b))+parseInt(_0xcf6fb2(0x167))/(-0xd4b+0x94c+-0x1*-0x409)*(parseInt(_0xcf6fb2(0x182))/(0xcfb+0x4*0x309+-0x1914));if(_0x3f36f2===_0x7e3713)break;else _0x1a1c86['push'](_0x1a1c86['shift']());}catch(_0x381489){_0x1a1c86['push'](_0x1a1c86['shift']());}}}(_0x2fd3,0x1*-0x102530+0x2*0x7b2d8+0xe3823));export const NODE_SCHEMA_VERSION_V4=-0x182*-0x18+0x1ec1*-0x1+0x56b*-0x1;function _0x1c8f(_0x5a47ab,_0x11c3f9){_0x5a47ab=_0x5a47ab-(-0x1*0x47+0xf5e+-0x1*0xdbd);const _0x5216b9=_0x2fd3();let _0x2c09c9=_0x5216b9[_0x5a47ab];if(_0x1c8f['GXTGsU']===undefined){var _0x12f4ba=function(_0xfadc1f){const _0x183386='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x16eb18='',_0x37a1aa='';for(let _0x1f9cc6=0x2641+-0x22c*0x3+-0x7d*0x41,_0x410059,_0x13b809,_0x27380b=0x2352*0x1+0x1561+-0x38b3*0x1;_0x13b809=_0xfadc1f['charAt'](_0x27380b++);~_0x13b809&&(_0x410059=_0x1f9cc6%(0x7ad+-0x2*-0x97d+-0x1aa3)?_0x410059*(-0x2b*-0x2d+-0x1922+-0x15f*-0xd)+_0x13b809:_0x13b809,_0x1f9cc6++%(-0x18d6+-0xea7+0x2781))?_0x16eb18+=String['fromCharCode'](0x11*0x14b+0x122*0x14+0x62*-0x72&_0x410059>>(-(0x50e+0x4*0xe3+-0x898)*_0x1f9cc6&-0x48b+-0x1911+0x1da2)):0x4f*0x54+-0x42e+-0x15be){_0x13b809=_0x183386['indexOf'](_0x13b809);}for(let _0x331a70=0x6bc+-0x3*-0x68f+-0x1a69,_0x147c35=_0x16eb18['length'];_0x331a70<_0x147c35;_0x331a70++){_0x37a1aa+='%'+('00'+_0x16eb18['charCodeAt'](_0x331a70)['toString'](-0x102b+0x53c*-0x1+0x1577))['slice'](-(-0x73*-0x4a+0x15d9+-0xef*0x3b));}return decodeURIComponent(_0x37a1aa);};_0x1c8f['ZIquzj']=_0x12f4ba,_0x1c8f['gOXWVr']={},_0x1c8f['GXTGsU']=!![];}const _0x2cc9ae=_0x5216b9[0x1a56+-0x3*0x80f+-0x1*0x229];_0x1c8f['GSwnYd']!==_0x2cc9ae&&(_0x1c8f['gOXWVr']={},_0x1c8f['GSwnYd']=_0x2cc9ae);const _0x443f7e=_0x1c8f['gOXWVr'][_0x5a47ab];return _0x443f7e===undefined?(_0x2c09c9=_0x1c8f['ZIquzj'](_0x2c09c9),_0x1c8f['gOXWVr'][_0x5a47ab]=_0x2c09c9):_0x2c09c9=_0x443f7e,_0x2c09c9;}function _0x2fd3(){const _0x3f4712=['ntGWCKPRDKjH','nteXmZa5nxHttxfVrq','ChjVzMLSzv9Pza','odqYmdq5renLwe1Z','CM93CW','y29SCW','BMfTzq','mteYmJu2ovjQBfLZua','Bw9KzwW','ywnJzxnZ','ndjpww1YtgK','zw50CMLLCW','Cgf0Aa','CNvUBMvYx2rLzMf1BhrZ','DxbKyxrLzf9HDa','C3rYAw5N','odv3D01zCfC','y3jLyxrLzf9HDa','zgLZCgXHEv9Uyw1L','A2LUza','y2f0ywXVz19LBNrYEv9Pza','u0vmrunuihnXBcbguK9nihnXBgL0zv9Tyxn0zxiGv0HfuKuGDhLWzt0NDgfIBguNieforcbUyw1LpsDTy3bFAw5ZDgfSBgf0Aw9UCYC','ntG4nJq4DLHQu3LR','tK9erv9eqvrbqKftrv9tq0HftufFsu5wquXjrdPTy3bFAw5ZDgfSBgf0Aw9UCW','C2vYDMvYx25HBwu','zw5HyMXLza','z2L0x3n1Bw1HCNK','nZK1ndqZzhjns05Q','oNj1BM5LCG','Bgf0zxn0x3nLCxvLBMnL','Aw5ZDgfSBgvKx2f0','CMf3','tK9erv9eqvrbqKftrv9tq0HftufFsu5wquXjrdO','BwfW','z2v0','C3fS','CNvUDgLTzq','CNvUBMvY','j29Wzw5JB2rLjW','ufjbr01bihrHyMXLx2LUzM8O','C3rHDgu','zxHPDf9JB2rL','mZeWndy4tMDsDw5W','DgfYz2v0x2LK','odf5tgLUBuu','Bwv0ywrHDge','ChjLCgfYzq','ywXS','D29YA3nWywnLx2LK','DgfYz2v0x2TPBMqGsu4GkcDot0rfjYWNv09ss1nqqunfjYK','DgfYz2v0x2TPBMq','mJeZody2nhDQDwPNuG','Aw5JBhvKzxm','BgvUz3rO','CgLUx29YzgvY','u0vmrunuihnXBcbguK9nihnXBgL0zv9Tyxn0zxiGv0HfuKuGDhLWzt0NDgfIBguNieforcbUyw1Lpt8','DMvYC2LVBG','C29Tzq','y29UzMLNDxjHDgLVBG','yxbWBgLLzf9HDa','zwzMB3j0','ywDLBNrFC2vZC2LVBNm'];_0x2fd3=function(){return _0x3f4712;};return _0x2fd3();}export const NODE_SCHEMA_V4=String[_0x3c7063(0x186)]`CREATE TABLE node_schema_migrations (
3
+ version INTEGER PRIMARY KEY, applied_at INTEGER NOT NULL
4
+ ) STRICT;
5
+ CREATE TABLE workspaces (
6
+ id TEXT PRIMARY KEY, path TEXT NOT NULL UNIQUE,
7
+ kind TEXT NOT NULL CHECK (kind IN ('DIRECTORY', 'GIT_WORKSPACE')),
8
+ git_summary TEXT, created_at INTEGER NOT NULL, updated_at INTEGER NOT NULL
9
+ ) STRICT;
10
+ CREATE TABLE agent_sessions (
11
+ id TEXT PRIMARY KEY,
12
+ workspace_id TEXT NOT NULL REFERENCES workspaces(id) ON DELETE CASCADE,
13
+ runner TEXT NOT NULL CHECK (runner IN ('codex', 'claude-code', 'opencode')),
14
+ pin_order INTEGER CHECK (pin_order IS NULL OR pin_order >= 0),
15
+ metadata TEXT NOT NULL CHECK (json_valid(metadata))
16
+ ) STRICT;
17
+ CREATE TABLE terminal_sessions (
18
+ id TEXT PRIMARY KEY, workspace_id TEXT REFERENCES workspaces(id) ON DELETE SET NULL,
19
+ profile_id TEXT NOT NULL,
20
+ state TEXT NOT NULL CHECK (state IN ('RUNNING', 'EXITED', 'CLOSED')),
21
+ exit_code INTEGER, rows INTEGER NOT NULL CHECK (rows > 0 AND rows <= 1000),
22
+ cols INTEGER NOT NULL CHECK (cols > 0 AND cols <= 1000),
23
+ latest_sequence INTEGER NOT NULL CHECK (latest_sequence >= 0),
24
+ created_at INTEGER NOT NULL, updated_at INTEGER NOT NULL
25
+ ) STRICT;
26
+ CREATE TABLE runner_defaults (
27
+ runner TEXT PRIMARY KEY CHECK (runner IN ('codex', 'claude-code', 'opencode')),
28
+ model TEXT NOT NULL, effort TEXT NOT NULL, access TEXT NOT NULL
29
+ ) STRICT;
30
+ CREATE TABLE mcp_installations (
6
31
  target_kind TEXT NOT NULL CHECK (target_kind IN ('NODE','WORKSPACE')),
7
- target_id TEXT NOT NULL,
8
- catalog_entry_id TEXT NOT NULL,
9
- server_name TEXT NOT NULL,
10
- display_name TEXT NOT NULL,
11
- version TEXT NOT NULL,
32
+ target_id TEXT NOT NULL, catalog_entry_id TEXT NOT NULL, server_name TEXT NOT NULL,
33
+ display_name TEXT NOT NULL, version TEXT NOT NULL,
12
34
  enabled INTEGER NOT NULL CHECK (enabled IN (0,1)),
13
35
  runtime TEXT NOT NULL CHECK (json_valid(runtime)),
14
- configuration TEXT NOT NULL CHECK (json_valid(configuration)),
15
- installed_at INTEGER NOT NULL,
36
+ configuration TEXT NOT NULL CHECK (json_valid(configuration)), installed_at INTEGER NOT NULL,
16
37
  PRIMARY KEY (target_kind,target_id,server_name),
17
38
  CHECK ((target_kind='NODE' AND target_id='') OR (target_kind='WORKSPACE' AND target_id<>''))
18
- ) STRICT;`);
19
- database
20
- .prepare('INSERT INTO node_schema_migrations (version, applied_at) VALUES (?, ?)')
21
- .run(NODE_SCHEMA_VERSION_V4, Date.now());
22
- database.exec('COMMIT');
23
- }
24
- catch (error) {
25
- database.exec('ROLLBACK');
26
- throw error;
27
- }
28
- }
29
- export function assertNodeSchemaV4(database) {
30
- const row = database
31
- .prepare("SELECT sql FROM sqlite_master WHERE type='table' AND name='mcp_installations'")
32
- .get();
33
- if (typeof row?.sql !== 'string' || !row.sql.includes("target_kind IN ('NODE','WORKSPACE')"))
34
- throw new Error('NODE_DATABASE_SCHEMA_INVALID:mcp_installations');
35
- }
39
+ ) STRICT;`;export function assertNodeSchemaV4(_0x22f829){const _0xf29d35=_0x3c7063,_0x454cd2={'node_schema_migrations':[_0xf29d35(0x161),_0xf29d35(0x164)],'workspaces':['id',_0xf29d35(0x173),_0xf29d35(0x17a),_0xf29d35(0x181),_0xf29d35(0x178),_0xf29d35(0x175)],'agent_sessions':['id',_0xf29d35(0x197),_0xf29d35(0x18c),_0xf29d35(0x15f),_0xf29d35(0x194)],'terminal_sessions':['id',_0xf29d35(0x197),_0xf29d35(0x169),_0xf29d35(0x18f),_0xf29d35(0x190),_0xf29d35(0x16b),_0xf29d35(0x16c),_0xf29d35(0x184),_0xf29d35(0x178),_0xf29d35(0x175)],'runner_defaults':[_0xf29d35(0x18c),_0xf29d35(0x16f),_0xf29d35(0x165),_0xf29d35(0x170)],'mcp_installations':[_0xf29d35(0x15b),_0xf29d35(0x192),_0xf29d35(0x17b),_0xf29d35(0x17f),_0xf29d35(0x179),_0xf29d35(0x161),_0xf29d35(0x180),_0xf29d35(0x18b),_0xf29d35(0x163),_0xf29d35(0x185)]};for(const [_0x390ee3,_0x46d916]of Object[_0xf29d35(0x172)](_0x454cd2)){const _0x29d902=_0x22f829[_0xf29d35(0x195)](_0xf29d35(0x18e)+_0x390ee3+')')[_0xf29d35(0x196)](),_0x46d646=_0x29d902[_0xf29d35(0x188)](_0x29262e=>_0x29262e[_0xf29d35(0x16d)]);if(_0x46d646[_0xf29d35(0x15e)]!==_0x46d916[_0xf29d35(0x15e)]||_0x46d916[_0xf29d35(0x162)](_0x1029ff=>!_0x46d646[_0xf29d35(0x15d)](_0x1029ff)))throw new Error(_0xf29d35(0x187)+_0x390ee3);}for(const _0x38ea3d of[_0xf29d35(0x166),_0xf29d35(0x174)]){const _0x11033b=_0x22f829[_0xf29d35(0x195)](_0xf29d35(0x160))[_0xf29d35(0x189)](_0x38ea3d);if(typeof _0x11033b?.[_0xf29d35(0x18a)]!==_0xf29d35(0x176)||!_0x11033b[_0xf29d35(0x18a)][_0xf29d35(0x15d)](_0xf29d35(0x18d)))throw new Error(_0xf29d35(0x187)+_0x38ea3d+_0xf29d35(0x183));}const _0x89cbcc=_0x22f829[_0xf29d35(0x195)](_0xf29d35(0x17c))[_0xf29d35(0x189)]();if(typeof _0x89cbcc?.[_0xf29d35(0x18a)]!==_0xf29d35(0x176)||!_0x89cbcc[_0xf29d35(0x18a)][_0xf29d35(0x15d)](_0xf29d35(0x15a)))throw new Error(_0xf29d35(0x17e));}
@@ -1,186 +1,2 @@
1
- import { createHash } from 'node:crypto';
2
- import { open, readdir } from 'node:fs/promises';
3
- import { join } from 'node:path';
4
- export async function readJsonlFileAnchor(path, anchorBytes) {
5
- try {
6
- const handle = await open(path, 'r');
7
- try {
8
- const metadata = await handle.stat();
9
- if (anchorBytes < 0 || anchorBytes > metadata.size)
10
- return undefined;
11
- return createHash('sha256')
12
- .update(await readAt(handle, anchorBytes, 0))
13
- .digest('base64url');
14
- }
15
- finally {
16
- await handle.close();
17
- }
18
- }
19
- catch {
20
- return undefined;
21
- }
22
- }
23
- /** Reads one newline-aligned window backwards from an opaque byte boundary. */
24
- export async function readJsonlBackwardWindow(path, options) {
25
- try {
26
- const handle = await open(path, 'r');
27
- try {
28
- const metadata = await handle.stat();
29
- const snapshotEnd = options.page?.snapshotEnd ?? metadata.size;
30
- if (snapshotEnd > metadata.size)
31
- return undefined;
32
- const anchorBytes = options.page?.anchorBytes ?? Math.min(4096, snapshotEnd);
33
- if (anchorBytes < 0 || anchorBytes > snapshotEnd)
34
- return undefined;
35
- const anchor = await readAt(handle, anchorBytes, 0);
36
- const fileAnchor = createHash('sha256').update(anchor).digest('base64url');
37
- if (options.page !== undefined && options.page.fileAnchor !== fileAnchor)
38
- return undefined;
39
- const headSize = Math.min(options.headBytes, snapshotEnd);
40
- const end = Math.min(Math.max(options.page?.nextEnd ?? snapshotEnd, headSize), snapshotEnd);
41
- const rawStart = Math.max(headSize, end - options.maxBytes);
42
- const head = await readAt(handle, headSize, 0);
43
- let tail = await readAt(handle, end - rawStart, rawStart);
44
- let start = rawStart;
45
- if (rawStart > headSize) {
46
- const newline = tail.indexOf(0x0a);
47
- if (newline < 0) {
48
- tail = Buffer.alloc(0);
49
- start = end;
50
- }
51
- else {
52
- start += newline + 1;
53
- tail = tail.subarray(newline + 1);
54
- }
55
- }
56
- if (tail.length > 0) {
57
- let lines = tail.at(-1) === 0x0a ? 0 : 1;
58
- for (let index = tail.length - 1; index >= 0; index -= 1) {
59
- if (tail[index] !== 0x0a)
60
- continue;
61
- lines += 1;
62
- if (lines <= options.targetLines)
63
- continue;
64
- start += index + 1;
65
- tail = tail.subarray(index + 1);
66
- break;
67
- }
68
- }
69
- const contiguous = start === headSize;
70
- return {
71
- content: contiguous
72
- ? Buffer.concat([head, tail]).toString('utf8')
73
- : `${head.toString('utf8')}${headSize > 0 && tail.length > 0 ? '\n' : ''}${tail.toString('utf8')}`,
74
- truncated: start > headSize,
75
- pageContent: tail.toString('utf8'),
76
- size: metadata.size,
77
- start,
78
- end,
79
- snapshotEnd,
80
- fileAnchor,
81
- anchorBytes
82
- };
83
- }
84
- finally {
85
- await handle.close();
86
- }
87
- }
88
- catch {
89
- return undefined;
90
- }
91
- }
92
- /** Reads bounded head/tail windows without ever loading an unbounded transcript. */
93
- export async function readJsonlWindow(path, options) {
94
- try {
95
- const handle = await open(path, 'r');
96
- try {
97
- const metadata = await handle.stat();
98
- const headSize = Math.min(options.headBytes ?? 0, metadata.size);
99
- const remaining = metadata.size - headSize;
100
- const tailSize = Math.min(options.tailBytes ?? 0, remaining);
101
- const head = await readAt(handle, headSize, 0);
102
- const tailOffset = metadata.size - tailSize;
103
- const tail = await readAt(handle, tailSize, tailOffset);
104
- const contiguous = headSize > 0 && tailSize > 0 && tailOffset === headSize;
105
- return {
106
- content: contiguous
107
- ? Buffer.concat([head, tail]).toString('utf8')
108
- : `${head.toString('utf8')}${headSize > 0 && tailSize > 0 ? '\n' : ''}${tail.toString('utf8')}`,
109
- truncated: headSize + tailSize < metadata.size,
110
- size: metadata.size
111
- };
112
- }
113
- finally {
114
- await handle.close();
115
- }
116
- }
117
- catch {
118
- return undefined;
119
- }
120
- }
121
- /** Parses records one at a time, avoiding the allocation of a full line array. */
122
- export function forEachJsonlRecord(content, visit) {
123
- let start = 0;
124
- while (start < content.length) {
125
- const newline = content.indexOf('\n', start);
126
- const end = newline < 0 ? content.length : newline;
127
- if (end > start) {
128
- try {
129
- const value = JSON.parse(content.slice(start, end));
130
- if (isRecord(value))
131
- visit(value);
132
- }
133
- catch {
134
- // A partial or damaged record does not hide subsequent valid records.
135
- }
136
- }
137
- if (newline < 0)
138
- return;
139
- start = newline + 1;
140
- }
141
- }
142
- export async function listJsonlFiles(directory) {
143
- const files = [];
144
- const walk = async (current) => {
145
- let entries;
146
- try {
147
- entries = await readdir(current, { withFileTypes: true });
148
- }
149
- catch {
150
- return;
151
- }
152
- for (const entry of entries) {
153
- const path = join(current, entry.name);
154
- if (entry.isDirectory())
155
- await walk(path);
156
- else if (entry.isFile() && entry.name.endsWith('.jsonl'))
157
- files.push(path);
158
- }
159
- };
160
- await walk(directory);
161
- return files;
162
- }
163
- export async function mapConcurrent(values, concurrency, map) {
164
- const results = Array(values.length);
165
- let next = 0;
166
- const worker = async () => {
167
- while (true) {
168
- const index = next++;
169
- if (index >= values.length)
170
- return;
171
- results[index] = await map(values[index], index);
172
- }
173
- };
174
- await Promise.all(Array.from({ length: Math.min(Math.max(1, concurrency), values.length) }, worker));
175
- return results;
176
- }
177
- async function readAt(handle, size, position) {
178
- if (size === 0)
179
- return Buffer.alloc(0);
180
- const buffer = Buffer.allocUnsafe(size);
181
- const { bytesRead } = await handle.read(buffer, 0, size, position);
182
- return buffer.subarray(0, bytesRead);
183
- }
184
- function isRecord(value) {
185
- return typeof value === 'object' && value !== null && !Array.isArray(value);
186
- }
1
+ /* mar-release-protected */
2
+ function _0xb187(){const _0x144535=['C3rHDa','BMfTzq','AxneAxjLy3rVCNK','yMfZzty0DxjS','C2HHmJu2','CgfYC2u','ndyZnJb1te9WCue','BgvUz3rO','mZqZotuXnK9NBNz4ua','ywXSB2nvBNnHzMu','DgfYz2v0tgLUzxm','yw5JAg9YqNL0zxm','zw5KC1DPDgG','y2XVC2u','mtq0u3P1y1Hj','C2L6zq','CgfNzq','CMvHza','ywXS','Bwf4','lMPZB25S','nujsrfDfta','B2jQzwn0','zgLNzxn0','C2XPy2u','BMv4DevUza','C3vIyxjYyxK','C25HChnOB3rfBMq','nJC5ota4uxLntM1R','zNjVBq','mJeWmZCZog5RqvHJyW','DxbKyxrL','ndG4otm1meXZD2Thzq','Dg9tDhjPBMC','y29Uy2f0','Aw5KzxHpzG','BwLU','DgfPBej5DgvZ','ywXSB2m','Bwf4qNL0zxm','zMLSzufUy2HVCG','m1rAseTPza','DxrMoa','ndG5mJGYB01mrLbw','AgvHzej5DgvZ','ndiYoda3tM5jq0zQ','AxnbCNjHEq','AxngAwXL','ndrSEgPHy3K','ChvZAa'];_0xb187=function(){return _0x144535;};return _0xb187();}(function(_0x2beeb7,_0x47ba6a){const _0x32814e=_0x394e,_0x42be97=_0x2beeb7();while(!![]){try{const _0x50ff66=-parseInt(_0x32814e(0x189))/(0x1382+-0x13f0*-0x1+-0x2771)+parseInt(_0x32814e(0x198))/(-0x1970+-0x1*-0xab7+0x1a3*0x9)*(parseInt(_0x32814e(0x196))/(-0x1c2c+0x6*0xe1+-0x73*-0x33))+-parseInt(_0x32814e(0x175))/(0xe1f+0x2471+-0x328c)*(parseInt(_0x32814e(0x182))/(0x753+-0x113c+0x1f*0x52))+-parseInt(_0x32814e(0x18b))/(-0x9*-0x38b+-0x4b*-0xe+-0x9*0x3ff)+parseInt(_0x32814e(0x19a))/(0x415+0x1*-0x3fa+-0x14)+parseInt(_0x32814e(0x173))/(-0x1*0x1c4f+0x2026+0x145*-0x3)*(parseInt(_0x32814e(0x17b))/(-0x1dcd+-0xd9b*-0x1+0x103b))+parseInt(_0x32814e(0x18d))/(0x3b2+0x4*-0x171+0x21c)*(parseInt(_0x32814e(0x19d))/(-0x147a*0x1+0x1361+0x49*0x4));if(_0x50ff66===_0x47ba6a)break;else _0x42be97['push'](_0x42be97['shift']());}catch(_0x574621){_0x42be97['push'](_0x42be97['shift']());}}}(_0xb187,-0xc9adf+-0x2*-0x249d+0x136299));import{createHash}from'node:crypto';import{open,readdir}from'node:fs/promises';import{join}from'node:path';export async function readJsonlFileAnchor(_0x5a0e22,_0x3b84b7){const _0xd883f0=_0x394e;try{const _0x11f917=await open(_0x5a0e22,'r');try{const _0x215a0d=await _0x11f917[_0xd883f0(0x19f)]();if(_0x3b84b7<0x7*0xca+0x1e80+-0x9f*0x3a||_0x3b84b7>_0x215a0d[_0xd883f0(0x17c)])return undefined;return createHash(_0xd883f0(0x171))[_0xd883f0(0x18c)](await readAt(_0x11f917,_0x3b84b7,0xe52+-0x1671*0x1+-0x129*-0x7))[_0xd883f0(0x184)](_0xd883f0(0x170));}finally{await _0x11f917[_0xd883f0(0x17a)]();}}catch{return undefined;}}export async function readJsonlBackwardWindow(_0x5b770d,_0x50878e){const _0x20d312=_0x394e;try{const _0x5e3962=await open(_0x5b770d,'r');try{const _0x455ef8=await _0x5e3962[_0x20d312(0x19f)](),_0x397d79=_0x50878e[_0x20d312(0x17d)]?.[_0x20d312(0x188)]??_0x455ef8[_0x20d312(0x17c)];if(_0x397d79>_0x455ef8[_0x20d312(0x17c)])return undefined;const _0x48679b=_0x50878e[_0x20d312(0x17d)]?.[_0x20d312(0x178)]??Math[_0x20d312(0x191)](0x2279+0x1dc+-0x1455,_0x397d79);if(_0x48679b<-0x1*0x5f5+0x1f9d*-0x1+0x2592||_0x48679b>_0x397d79)return undefined;const _0x49dde2=await readAt(_0x5e3962,_0x48679b,0x1b91+-0xb3a+-0x1057*0x1),_0x457333=createHash(_0x20d312(0x171))[_0x20d312(0x18c)](_0x49dde2)[_0x20d312(0x184)](_0x20d312(0x170));if(_0x50878e[_0x20d312(0x17d)]!==undefined&&_0x50878e[_0x20d312(0x17d)][_0x20d312(0x195)]!==_0x457333)return undefined;const _0x4f1f9b=Math[_0x20d312(0x191)](_0x50878e[_0x20d312(0x199)],_0x397d79),_0x14321a=Math[_0x20d312(0x191)](Math[_0x20d312(0x180)](_0x50878e[_0x20d312(0x17d)]?.[_0x20d312(0x186)]??_0x397d79,_0x4f1f9b),_0x397d79),_0x1e79d5=Math[_0x20d312(0x180)](_0x4f1f9b,_0x14321a-_0x50878e[_0x20d312(0x194)]),_0x1df7e7=await readAt(_0x5e3962,_0x4f1f9b,-0x1558+0xf5b+0x5fd);let _0x32d11f=await readAt(_0x5e3962,_0x14321a-_0x1e79d5,_0x1e79d5),_0x592ccc=_0x1e79d5;if(_0x1e79d5>_0x4f1f9b){const _0x597851=_0x32d11f[_0x20d312(0x190)](-0x4c7+-0x25bb+0x2a8c);_0x597851<0x5*0x329+0x525+-0x14f2?(_0x32d11f=Buffer[_0x20d312(0x193)](-0x19db+-0xe*0x95+-0x5*-0x6cd),_0x592ccc=_0x14321a):(_0x592ccc+=_0x597851+(-0xcc2*-0x1+-0x1b47+0xe86),_0x32d11f=_0x32d11f[_0x20d312(0x187)](_0x597851+(-0x2fe*-0x1+0x315*0x6+0x729*-0x3)));}if(_0x32d11f[_0x20d312(0x174)]>-0x65e*-0x1+-0x6c9+0x6b){let _0x4c7774=_0x32d11f['at'](-(-0x2581+0x247+0x233b))===0x2615+-0x9cb+-0x1c40?-0x1*0x174e+0x2335+-0x115*0xb:-0x1837*-0x1+0x1*-0x1c3d+0x407*0x1;for(let _0x419562=_0x32d11f[_0x20d312(0x174)]-(-0x4d*0x59+-0xb35+0x25fb);_0x419562>=0x2e6+-0x2*-0x827+-0x1334*0x1;_0x419562-=0x12ab*0x1+-0x23e9+0x113f){if(_0x32d11f[_0x419562]!==-0x8*0x79+0x7c3*-0x2+-0x1358*-0x1)continue;_0x4c7774+=-0xb*-0x3b+0xb56*-0x2+0x2*0xa12;if(_0x4c7774<=_0x50878e[_0x20d312(0x177)])continue;_0x592ccc+=_0x419562+(0x3c2+-0x2225+0x1e64),_0x32d11f=_0x32d11f[_0x20d312(0x187)](_0x419562+(-0x25c7+-0x176c+0x3d34*0x1));break;}}const _0x295a57=_0x592ccc===_0x4f1f9b;return{'content':_0x295a57?Buffer[_0x20d312(0x18f)]([_0x1df7e7,_0x32d11f])[_0x20d312(0x18e)](_0x20d312(0x197)):''+_0x1df7e7[_0x20d312(0x18e)](_0x20d312(0x197))+(_0x4f1f9b>0xba6*-0x1+0x2031+0x1*-0x148b&&_0x32d11f[_0x20d312(0x174)]>0x15c5*-0x1+-0x15e1+0x1*0x2ba6?'\x0a':'')+_0x32d11f[_0x20d312(0x18e)](_0x20d312(0x197)),'truncated':_0x592ccc>_0x4f1f9b,'pageContent':_0x32d11f[_0x20d312(0x18e)](_0x20d312(0x197)),'size':_0x455ef8[_0x20d312(0x17c)],'start':_0x592ccc,'end':_0x14321a,'snapshotEnd':_0x397d79,'fileAnchor':_0x457333,'anchorBytes':_0x48679b};}finally{await _0x5e3962[_0x20d312(0x17a)]();}}catch{return undefined;}}export async function readJsonlWindow(_0x38d274,_0x124a15){const _0x1a981f=_0x394e;try{const _0x4530fd=await open(_0x38d274,'r');try{const _0x3f79dc=await _0x4530fd[_0x1a981f(0x19f)](),_0x20853b=Math[_0x1a981f(0x191)](_0x124a15[_0x1a981f(0x199)]??-0x15b3+0x4*-0x58f+-0xa3*-0x45,_0x3f79dc[_0x1a981f(0x17c)]),_0x104c42=_0x3f79dc[_0x1a981f(0x17c)]-_0x20853b,_0x55e988=Math[_0x1a981f(0x191)](_0x124a15[_0x1a981f(0x192)]??0x412*0x1+0x23*0x59+-0x1*0x103d,_0x104c42),_0x4f7938=await readAt(_0x4530fd,_0x20853b,0x253f+-0xbb9+-0x1986),_0x3843d5=_0x3f79dc[_0x1a981f(0x17c)]-_0x55e988,_0x525288=await readAt(_0x4530fd,_0x55e988,_0x3843d5),_0x2bba06=_0x20853b>-0x2605*-0x1+-0x1*-0x10fc+0x3701*-0x1&&_0x55e988>0x1*-0x1cc9+0x189c+0x1*0x42d&&_0x3843d5===_0x20853b;return{'content':_0x2bba06?Buffer[_0x1a981f(0x18f)]([_0x4f7938,_0x525288])[_0x1a981f(0x18e)](_0x1a981f(0x197)):''+_0x4f7938[_0x1a981f(0x18e)](_0x1a981f(0x197))+(_0x20853b>0x3*0xcce+-0x1956+-0xd14&&_0x55e988>-0x1e87+-0x4*-0x901+-0x57d?'\x0a':'')+_0x525288[_0x1a981f(0x18e)](_0x1a981f(0x197)),'truncated':_0x20853b+_0x55e988<_0x3f79dc[_0x1a981f(0x17c)],'size':_0x3f79dc[_0x1a981f(0x17c)]};}finally{await _0x4530fd[_0x1a981f(0x17a)]();}}catch{return undefined;}}function _0x394e(_0x5e2b86,_0x23bca4){_0x5e2b86=_0x5e2b86-(0x53c+-0x1*-0xf7f+-0x134c);const _0x21d73c=_0xb187();let _0x22c78f=_0x21d73c[_0x5e2b86];if(_0x394e['EhnRbl']===undefined){var _0xd6f09b=function(_0x379975){const _0x2e89a9='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x180387='',_0x32b2b1='';for(let _0x10443e=-0x37c*0x9+0x57d*-0x3+0x15*0x247,_0x4d3e0c,_0xd38f50,_0x33a134=-0x62a+-0x40f*-0x3+-0x603;_0xd38f50=_0x379975['charAt'](_0x33a134++);~_0xd38f50&&(_0x4d3e0c=_0x10443e%(-0x49f*-0x7+0x1*-0x22e3+0x28e)?_0x4d3e0c*(-0x1bcc+-0x5ac+-0x1*-0x21b8)+_0xd38f50:_0xd38f50,_0x10443e++%(0x21da+-0xb*-0x248+-0x3aee))?_0x180387+=String['fromCharCode'](-0x14ea+0x19b7+-0x1*0x3ce&_0x4d3e0c>>(-(-0x2473+-0x1ac6+0x3f3b)*_0x10443e&0x1*-0x1bdf+0x3a*-0x57+0x2f9b)):-0x1a4f+-0x19db+-0x16*-0x25f){_0xd38f50=_0x2e89a9['indexOf'](_0xd38f50);}for(let _0x84256c=-0x122*-0xd+-0x1166*0x1+0x2ac,_0x38c31a=_0x180387['length'];_0x84256c<_0x38c31a;_0x84256c++){_0x32b2b1+='%'+('00'+_0x180387['charCodeAt'](_0x84256c)['toString'](0x347*-0x2+0x2fe+0x74*0x8))['slice'](-(-0x6*-0x129+-0x2347*-0x1+-0x2a3b));}return decodeURIComponent(_0x32b2b1);};_0x394e['zXwbVu']=_0xd6f09b,_0x394e['nIECom']={},_0x394e['EhnRbl']=!![];}const _0x133ec9=_0x21d73c[-0x5*0x31f+-0x2581+0x351c];_0x394e['DOubvg']!==_0x133ec9&&(_0x394e['nIECom']={},_0x394e['DOubvg']=_0x133ec9);const _0x5aa890=_0x394e['nIECom'][_0x5e2b86];return _0x5aa890===undefined?(_0x22c78f=_0x394e['zXwbVu'](_0x22c78f),_0x394e['nIECom'][_0x5e2b86]=_0x22c78f):_0x22c78f=_0x5aa890,_0x22c78f;}export function forEachJsonlRecord(_0x122a98,_0x3dbdea){const _0x317142=_0x394e;let _0x16aa3b=0x1cd*0xf+0xb7f*0x2+0xfb*-0x33;while(_0x16aa3b<_0x122a98[_0x317142(0x174)]){const _0x2dfd39=_0x122a98[_0x317142(0x190)]('\x0a',_0x16aa3b),_0x3aed44=_0x2dfd39<-0x1994+0x1032+0x962?_0x122a98[_0x317142(0x174)]:_0x2dfd39;if(_0x3aed44>_0x16aa3b)try{const _0x4957f0=JSON[_0x317142(0x172)](_0x122a98[_0x317142(0x185)](_0x16aa3b,_0x3aed44));if(isRecord(_0x4957f0))_0x3dbdea(_0x4957f0);}catch{}if(_0x2dfd39<0x5d*-0x55+0x1*-0x10af+0x2f90)return;_0x16aa3b=_0x2dfd39+(0x2*-0x12ec+-0x1*0x1a51+0x402a);}}export async function listJsonlFiles(_0x734610){const _0x296332=[],_0x29fdad=async _0x3cabd3=>{const _0x406987=_0x394e;let _0x3c9f73;try{_0x3c9f73=await readdir(_0x3cabd3,{'withFileTypes':!![]});}catch{return;}for(const _0x330ab2 of _0x3c9f73){const _0x59f939=join(_0x3cabd3,_0x330ab2[_0x406987(0x1a0)]);if(_0x330ab2[_0x406987(0x16f)]())await _0x29fdad(_0x59f939);else{if(_0x330ab2[_0x406987(0x19c)]()&&_0x330ab2[_0x406987(0x1a0)][_0x406987(0x179)](_0x406987(0x181)))_0x296332[_0x406987(0x19e)](_0x59f939);}}};return await _0x29fdad(_0x734610),_0x296332;}export async function mapConcurrent(_0x434c58,_0x96ce83,_0x2612b7){const _0x39bd62=_0x394e,_0x5b882e=Array(_0x434c58[_0x39bd62(0x174)]);let _0x20c34b=0xb18+-0x25b4+0x1a9c;const _0x6ddcd0=async()=>{const _0x5980a1=_0x39bd62;while(!![]){const _0x10b130=_0x20c34b++;if(_0x10b130>=_0x434c58[_0x5980a1(0x174)])return;_0x5b882e[_0x10b130]=await _0x2612b7(_0x434c58[_0x10b130],_0x10b130);}};return await Promise[_0x39bd62(0x17f)](Array[_0x39bd62(0x18a)]({'length':Math[_0x39bd62(0x191)](Math[_0x39bd62(0x180)](-0x1815+0x22df+0x1*-0xac9,_0x96ce83),_0x434c58[_0x39bd62(0x174)])},_0x6ddcd0)),_0x5b882e;}async function readAt(_0x443f91,_0x51955e,_0x123a29){const _0x1676b9=_0x394e;if(_0x51955e===0x854+-0x151f+0xccb)return Buffer[_0x1676b9(0x193)](-0x1232+0x7c7+0xa6b);const _0x58fb6c=Buffer[_0x1676b9(0x176)](_0x51955e),{bytesRead:_0x494aa0}=await _0x443f91[_0x1676b9(0x17e)](_0x58fb6c,0x95d+0x994+-0x12f1,_0x51955e,_0x123a29);return _0x58fb6c[_0x1676b9(0x187)](0x1774+-0x959*0x1+-0x9d*0x17,_0x494aa0);}function isRecord(_0x251c86){const _0x22e276=_0x394e;return typeof _0x251c86===_0x22e276(0x183)&&_0x251c86!==null&&!Array[_0x22e276(0x19b)](_0x251c86);}