@rubytech/create-maxy-code 0.1.198 → 0.1.203
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +2 -2
- package/payload/platform/plugins/admin/skills/platform-architecture/SKILL.md +3736 -0
- package/payload/platform/plugins/docs/references/admin-ui.md +3 -1
- package/payload/platform/scripts/check-architecture-skill-no-drift.mjs +67 -0
- package/payload/platform/scripts/check-no-esm-require.mjs +3 -0
- package/payload/platform/scripts/check-specialist-tool-surface.mjs +323 -0
- package/payload/platform/services/claude-session-manager/dist/fs-watcher.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/fs-watcher.js +7 -7
- package/payload/platform/services/claude-session-manager/dist/fs-watcher.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/http-server.d.ts +13 -0
- package/payload/platform/services/claude-session-manager/dist/http-server.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/http-server.js +126 -7
- package/payload/platform/services/claude-session-manager/dist/http-server.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/index.js +9 -1
- package/payload/platform/services/claude-session-manager/dist/index.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/jsonl-enumerator.d.ts +2 -12
- package/payload/platform/services/claude-session-manager/dist/jsonl-enumerator.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/jsonl-enumerator.js +14 -67
- package/payload/platform/services/claude-session-manager/dist/jsonl-enumerator.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/jsonl-path.d.ts +6 -0
- package/payload/platform/services/claude-session-manager/dist/jsonl-path.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/jsonl-path.js +30 -0
- package/payload/platform/services/claude-session-manager/dist/jsonl-path.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/pty-spawner.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/pty-spawner.js +4 -0
- package/payload/platform/services/claude-session-manager/dist/pty-spawner.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/rc-daemon.d.ts +33 -3
- package/payload/platform/services/claude-session-manager/dist/rc-daemon.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/rc-daemon.js +88 -57
- package/payload/platform/services/claude-session-manager/dist/rc-daemon.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/session-sidecar.d.ts +19 -0
- package/payload/platform/services/claude-session-manager/dist/session-sidecar.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/session-sidecar.js +42 -0
- package/payload/platform/services/claude-session-manager/dist/session-sidecar.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/systemd-spawn.d.ts +62 -0
- package/payload/platform/services/claude-session-manager/dist/systemd-spawn.d.ts.map +1 -0
- package/payload/platform/services/claude-session-manager/dist/systemd-spawn.js +173 -0
- package/payload/platform/services/claude-session-manager/dist/systemd-spawn.js.map +1 -0
- package/payload/platform/templates/agents/admin/IDENTITY.md +4 -0
- package/payload/platform/templates/agents/public/IDENTITY.md +1 -1
- package/payload/platform/templates/specialists/agents/coding-assistant.md +73 -0
- package/payload/server/public/assets/AdminShell-BcxEZnpu.js +1 -0
- package/payload/server/public/assets/{Checkbox-Bh3kwzxP.js → Checkbox-DL-HdT29.js} +1 -1
- package/payload/server/public/assets/{admin-BWzKAudL.js → admin-DMo5DWKH.js} +1 -1
- package/payload/server/public/assets/{architectureDiagram-Q4EWVU46-Boys2mT1.js → architectureDiagram-Q4EWVU46-BoUw4oYz.js} +1 -1
- package/payload/server/public/assets/{blockDiagram-DXYQGD6D-CvHqp46r.js → blockDiagram-DXYQGD6D-DOscnO3m.js} +1 -1
- package/payload/server/public/assets/{brand-VQtREmts.css → brand-SZW-27T7.css} +1 -1
- package/payload/server/public/assets/{c4Diagram-AHTNJAMY-DiNQ95F6.js → c4Diagram-AHTNJAMY-aZ1IuZ_F.js} +1 -1
- package/payload/server/public/assets/channel-CzcSNxDm.js +1 -0
- package/payload/server/public/assets/{chunk-336JU56O-9nS9-05M.js → chunk-336JU56O-DS3ksXBG.js} +2 -2
- package/payload/server/public/assets/{chunk-426QAEUC-B2__9lRY.js → chunk-426QAEUC-BLRn2STO.js} +1 -1
- package/payload/server/public/assets/{chunk-4TB4RGXK-R5F8rS0Z.js → chunk-4TB4RGXK-BrhOvJ01.js} +1 -1
- package/payload/server/public/assets/{chunk-5FUZZQ4R-B8HhJce-.js → chunk-5FUZZQ4R-BZZwZX5Q.js} +1 -1
- package/payload/server/public/assets/{chunk-5PVQY5BW-Bjb08lbL.js → chunk-5PVQY5BW-YXZKnPCz.js} +1 -1
- package/payload/server/public/assets/{chunk-EDXVE4YY-he0qCF3s.js → chunk-EDXVE4YY-DAMCJHKQ.js} +1 -1
- package/payload/server/public/assets/{chunk-ENJZ2VHE-BTArFW5l.js → chunk-ENJZ2VHE-DsD95Bqn.js} +1 -1
- package/payload/server/public/assets/{chunk-ICPOFSXX-CoyIL4q_.js → chunk-ICPOFSXX-DxtrRClx.js} +1 -1
- package/payload/server/public/assets/{chunk-OYMX7WX6-DjLEhNFe.js → chunk-OYMX7WX6-CN4kLK-H.js} +1 -1
- package/payload/server/public/assets/{chunk-U2HBQHQK-tac2uvW1.js → chunk-U2HBQHQK-BPTv3Oj1.js} +1 -1
- package/payload/server/public/assets/{chunk-X2U36JSP-DIWD9i88.js → chunk-X2U36JSP-DxBry33v.js} +1 -1
- package/payload/server/public/assets/{chunk-YZCP3GAM-Ac7ogADz.js → chunk-YZCP3GAM-BZ4N75oy.js} +1 -1
- package/payload/server/public/assets/{chunk-ZZ45TVLE-QgqDaY9-.js → chunk-ZZ45TVLE-Dqr161Q1.js} +1 -1
- package/payload/server/public/assets/classDiagram-6PBFFD2Q-DFOM3vCn.js +1 -0
- package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-HplDfaL1.js +1 -0
- package/payload/server/public/assets/clone-G-2rqnSR.js +1 -0
- package/payload/server/public/assets/{dagre-D6qN4nkK.js → dagre-DtZ0wKkH.js} +1 -1
- package/payload/server/public/assets/{dagre-KV5264BT-C6TRKOg0.js → dagre-KV5264BT-BPKhT-ZX.js} +1 -1
- package/payload/server/public/assets/{data-CaZbNF-j.js → data-D6IQdm0R.js} +1 -1
- package/payload/server/public/assets/{diagram-5BDNPKRD-BVk_J8Pt.js → diagram-5BDNPKRD-CATnafi7.js} +1 -1
- package/payload/server/public/assets/{diagram-G4DWMVQ6-BdV1IgwS.js → diagram-G4DWMVQ6-ChZYQfji.js} +1 -1
- package/payload/server/public/assets/{diagram-MMDJMWI5-OsvBkN6u.js → diagram-MMDJMWI5-DHW6kYd3.js} +1 -1
- package/payload/server/public/assets/{diagram-TYMM5635-BQmKPyrb.js → diagram-TYMM5635-CnS4Zci8.js} +1 -1
- package/payload/server/public/assets/{erDiagram-SMLLAGMA-ChEx5_3C.js → erDiagram-SMLLAGMA-DKYv2YWp.js} +1 -1
- package/payload/server/public/assets/{flowDiagram-DWJPFMVM-B7sf6AG3.js → flowDiagram-DWJPFMVM-BWvoZWlh.js} +1 -1
- package/payload/server/public/assets/{ganttDiagram-T4ZO3ILL-DbpSraax.js → ganttDiagram-T4ZO3ILL-CpCb-xKy.js} +1 -1
- package/payload/server/public/assets/{gitGraphDiagram-UUTBAWPF-BnxDElDh.js → gitGraphDiagram-UUTBAWPF-CvHrDKQ-.js} +1 -1
- package/payload/server/public/assets/{graph-CBP5yppq.js → graph-PkZKVkWD.js} +1 -1
- package/payload/server/public/assets/{graph-labels-BsZNScfa.js → graph-labels-CWJy0O4w.js} +1 -1
- package/payload/server/public/assets/{graphlib-Dux06enE.js → graphlib-DjnyHqGy.js} +1 -1
- package/payload/server/public/assets/{infoDiagram-42DDH7IO-BLWb6oKx.js → infoDiagram-42DDH7IO-D_MywcVn.js} +1 -1
- package/payload/server/public/assets/{ishikawaDiagram-UXIWVN3A-AFiRuE6G.js → ishikawaDiagram-UXIWVN3A-N9m-f-Eb.js} +1 -1
- package/payload/server/public/assets/{journeyDiagram-VCZTEJTY-CxHBRGGu.js → journeyDiagram-VCZTEJTY-DE0q7uSM.js} +1 -1
- package/payload/server/public/assets/{kanban-definition-6JOO6SKY-CGugF0N8.js → kanban-definition-6JOO6SKY-Dj5hb9Bq.js} +1 -1
- package/payload/server/public/assets/{line-COFloj-X.js → line-C6ph0i4M.js} +1 -1
- package/payload/server/public/assets/{mermaid-parser.core-CxXuCDQf.js → mermaid-parser.core-BrfmEvCA.js} +1 -1
- package/payload/server/public/assets/{mermaid.core-BRBNvNup.js → mermaid.core-DYnHKfDv.js} +3 -3
- package/payload/server/public/assets/{mindmap-definition-QFDTVHPH-DarW5Wwq.js → mindmap-definition-QFDTVHPH-DaSaZfhR.js} +1 -1
- package/payload/server/public/assets/{pieDiagram-DEJITSTG-CTokFAkN.js → pieDiagram-DEJITSTG-BAu9Ezbv.js} +1 -1
- package/payload/server/public/assets/{public-Bq-eOUu9.js → public-UKgkJxKv.js} +3 -3
- package/payload/server/public/assets/{quadrantDiagram-34T5L4WZ-BNawkg3I.js → quadrantDiagram-34T5L4WZ-DRsbL1Xd.js} +1 -1
- package/payload/server/public/assets/{requirementDiagram-MS252O5E-CWnO56oR.js → requirementDiagram-MS252O5E-B9QcsXV6.js} +1 -1
- package/payload/server/public/assets/{sankeyDiagram-XADWPNL6-D9c-EZfV.js → sankeyDiagram-XADWPNL6-DsZbvIlD.js} +1 -1
- package/payload/server/public/assets/{sequenceDiagram-FGHM5R23-In5lxCT5.js → sequenceDiagram-FGHM5R23-BlT4O2N8.js} +1 -1
- package/payload/server/public/assets/{stateDiagram-FHFEXIEX-CYb5js-u.js → stateDiagram-FHFEXIEX-JFgk1K3Y.js} +1 -1
- package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-NXz27DaV.js +1 -0
- package/payload/server/public/assets/{timeline-definition-GMOUNBTQ-Cje-BY9v.js → timeline-definition-GMOUNBTQ-DOsHw1ip.js} +1 -1
- package/payload/server/public/assets/{useSelectionMode-B_2EQ2CC.js → useSelectionMode-JDGvwvIk.js} +1 -1
- package/payload/server/public/assets/{vennDiagram-DHZGUBPP-BqeuoPr1.js → vennDiagram-DHZGUBPP-CQWIhqZY.js} +1 -1
- package/payload/server/public/assets/{wardleyDiagram-NUSXRM2D-DE7xAnoq.js → wardleyDiagram-NUSXRM2D-D5Fh7YVL.js} +1 -1
- package/payload/server/public/assets/{xychartDiagram-5P7HB3ND-JE4x8YEZ.js → xychartDiagram-5P7HB3ND-C-tINQEs.js} +1 -1
- package/payload/server/public/data.html +5 -5
- package/payload/server/public/graph.html +6 -6
- package/payload/server/public/index.html +6 -6
- package/payload/server/public/public.html +5 -5
- package/payload/server/server.js +566 -256
- package/payload/server/public/assets/AdminShell-DPk5UgEJ.js +0 -1
- package/payload/server/public/assets/channel-BgwH_qhE.js +0 -1
- package/payload/server/public/assets/classDiagram-6PBFFD2Q-CwdV1-c8.js +0 -1
- package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-CS_jtevB.js +0 -1
- package/payload/server/public/assets/clone-BTishuSs.js +0 -1
- package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-z-TVJfRt.js +0 -1
- /package/payload/server/public/assets/{brand-CzeO4m4J.js → brand-SzZmKKjz.js} +0 -0
|
@@ -146,24 +146,35 @@ export function mergeSettingsModel(claudeConfigDir, adminModel, logger) {
|
|
|
146
146
|
logger(`${TAG} rc-daemon settings-model-write-failed path=${settingsPath} err=${err instanceof Error ? err.message : String(err)}`);
|
|
147
147
|
}
|
|
148
148
|
}
|
|
149
|
-
/** Compose the daemon
|
|
150
|
-
*
|
|
151
|
-
*
|
|
152
|
-
function
|
|
153
|
-
const env =
|
|
149
|
+
/** Compose the env carried by the rc-daemon child and by Task 543's
|
|
150
|
+
* sessions-pane spawn route. Exported so the route's HTTP handler can
|
|
151
|
+
* build a byte-identical env without duplicating the field set. */
|
|
152
|
+
export function buildRcChildEnv(parts) {
|
|
153
|
+
const env = parts.env ?? process.env;
|
|
154
154
|
return {
|
|
155
155
|
...env,
|
|
156
156
|
MAXY_SESSION_ROLE: 'admin',
|
|
157
157
|
MAXY_SPECIALIST: '',
|
|
158
|
-
ACCOUNT_ID:
|
|
159
|
-
MAXY_UI_INTERNAL_PORT:
|
|
160
|
-
PLATFORM_ROOT:
|
|
161
|
-
CLAUDE_CONFIG_DIR:
|
|
162
|
-
NEO4J_URI:
|
|
163
|
-
NEO4J_PASSWORD:
|
|
158
|
+
ACCOUNT_ID: parts.accountId,
|
|
159
|
+
MAXY_UI_INTERNAL_PORT: parts.uiPort,
|
|
160
|
+
PLATFORM_ROOT: parts.platformRoot,
|
|
161
|
+
CLAUDE_CONFIG_DIR: parts.claudeConfigDir,
|
|
162
|
+
NEO4J_URI: parts.brandedNeo4jUri,
|
|
163
|
+
NEO4J_PASSWORD: parts.brandedNeo4jPassword,
|
|
164
164
|
CLAUDE_CODE_DISABLE_AUTO_MEMORY: '1',
|
|
165
165
|
};
|
|
166
166
|
}
|
|
167
|
+
function buildDaemonEnv(deps) {
|
|
168
|
+
return buildRcChildEnv({
|
|
169
|
+
accountId: deps.accountId,
|
|
170
|
+
uiPort: deps.uiPort,
|
|
171
|
+
platformRoot: deps.platformRoot,
|
|
172
|
+
claudeConfigDir: deps.claudeConfigDir,
|
|
173
|
+
brandedNeo4jUri: deps.brandedNeo4jUri,
|
|
174
|
+
brandedNeo4jPassword: deps.brandedNeo4jPassword,
|
|
175
|
+
env: deps.env,
|
|
176
|
+
});
|
|
177
|
+
}
|
|
167
178
|
export function startRcDaemon(deps) {
|
|
168
179
|
const now = deps.now ?? (() => Date.now());
|
|
169
180
|
const setTimer = deps.setTimer ?? ((fn, ms) => setTimeout(fn, ms));
|
|
@@ -189,29 +200,41 @@ export function startRcDaemon(deps) {
|
|
|
189
200
|
let backoffMs = BACKOFF_BASE_MS;
|
|
190
201
|
let consecutiveFastFailures = 0;
|
|
191
202
|
let permanentlyFailed = false;
|
|
192
|
-
const spawnOnce = () => {
|
|
203
|
+
const spawnOnce = async () => {
|
|
193
204
|
if (stopped || permanentlyFailed)
|
|
194
205
|
return;
|
|
195
206
|
const startedAt = now();
|
|
196
207
|
let handle;
|
|
208
|
+
// Task 531 — unique unitToken per spawn attempt. A fixed token
|
|
209
|
+
// (`'rc-daemon'`) reused on a fast restart races systemd's cleanup of
|
|
210
|
+
// the prior transient scope: the next `systemd-run --user --scope
|
|
211
|
+
// --unit=claude-session-rc-daemon.scope` fails with "Unit … was
|
|
212
|
+
// already loaded or has a fragment file", the child exits at
|
|
213
|
+
// `ranMs=5-6`, and the supervisor counts it toward
|
|
214
|
+
// MAX_FAST_FAILURES. The `rc-daemon-` prefix is preserved so the
|
|
215
|
+
// boot-seed `claude-session-*.scope` reconciler and operator log
|
|
216
|
+
// greps still recognise the scope as the rc-daemon's.
|
|
217
|
+
const unitToken = `rc-daemon-${randomUUID()}`;
|
|
197
218
|
try {
|
|
198
|
-
// Task
|
|
199
|
-
//
|
|
200
|
-
//
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
219
|
+
// Task 552 — filter env to strings; systemdSpawn's contract is
|
|
220
|
+
// Record<string,string> and buildRcChildEnv may pass undefineds
|
|
221
|
+
// through from the spread of process.env.
|
|
222
|
+
const cleanEnv = {};
|
|
223
|
+
for (const [k, v] of Object.entries(daemonEnv)) {
|
|
224
|
+
if (typeof v === 'string')
|
|
225
|
+
cleanEnv[k] = v;
|
|
226
|
+
}
|
|
227
|
+
handle = await deps.systemdSpawn({
|
|
228
|
+
claudeBin: deps.claudeBin,
|
|
229
|
+
// --no-create-session-in-dir: do not pre-create the daemon's in-dir
|
|
230
|
+
// session. The daemon starts at platform boot, ahead of any operator
|
|
231
|
+
// intent, so a pre-created session would sit idle until composer
|
|
232
|
+
// creates a real on-demand session anyway.
|
|
233
|
+
claudeArgs: ['rc', '--spawn', 'same-dir', '--no-create-session-in-dir', '--remote-control-session-name-prefix', deps.brandProductName],
|
|
234
|
+
env: cleanEnv,
|
|
235
|
+
cwd: deps.spawnCwd,
|
|
236
|
+
unitToken,
|
|
237
|
+
});
|
|
215
238
|
}
|
|
216
239
|
catch (err) {
|
|
217
240
|
deps.logger(`${TAG} rc-daemon spawn-failed err=${err instanceof Error ? err.message : String(err)}`);
|
|
@@ -219,34 +242,40 @@ export function startRcDaemon(deps) {
|
|
|
219
242
|
return;
|
|
220
243
|
}
|
|
221
244
|
current = handle;
|
|
222
|
-
deps.logger(`${TAG} rc-daemon start accountId=${deps.accountId} cwd=${deps.spawnCwd} pid=${handle.pid} model=${adminModel ?? 'default'} name-prefix=${deps.brandProductName}`);
|
|
223
|
-
// Task
|
|
224
|
-
//
|
|
225
|
-
//
|
|
226
|
-
//
|
|
227
|
-
//
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
outputRing += chunk;
|
|
231
|
-
if (outputRing.length > FAST_EXIT_OUTPUT_MAX_BYTES) {
|
|
232
|
-
outputRing = outputRing.slice(outputRing.length - FAST_EXIT_OUTPUT_MAX_BYTES);
|
|
233
|
-
}
|
|
234
|
-
});
|
|
235
|
-
handle.onExit((e) => {
|
|
236
|
-
try {
|
|
237
|
-
dataSub.dispose();
|
|
238
|
-
}
|
|
239
|
-
catch { /* already disposed */ }
|
|
245
|
+
deps.logger(`${TAG} rc-daemon start accountId=${deps.accountId} cwd=${deps.spawnCwd} pid=${handle.pid} model=${adminModel ?? 'default'} name-prefix=${deps.brandProductName} spawnMethod=systemd-scope`);
|
|
246
|
+
// Task 552 — exit detection via `handle.waitForExit()` polls
|
|
247
|
+
// `systemctl --user is-active` and reads Result/ExecMainStatus on
|
|
248
|
+
// exit. On fast-exit, `handle.readJournalTail` reads the scope's
|
|
249
|
+
// journal output for the self-diagnosing log line (was a node-pty
|
|
250
|
+
// onData ring buffer pre-552).
|
|
251
|
+
void handle.waitForExit()
|
|
252
|
+
.then(async (exit) => {
|
|
240
253
|
if (current === handle)
|
|
241
254
|
current = null;
|
|
242
255
|
const ranMs = now() - startedAt;
|
|
243
|
-
deps.logger(`${TAG} rc-daemon exit accountId=${deps.accountId} pid=${handle.pid} exitCode=${
|
|
256
|
+
deps.logger(`${TAG} rc-daemon exit accountId=${deps.accountId} pid=${handle.pid} result=${exit.result} exitCode=${exit.exitCode ?? 'null'} execCode=${exit.code ?? 'null'} ranMs=${ranMs}`);
|
|
244
257
|
if (ranMs < FAST_EXIT_THRESHOLD_MS) {
|
|
245
|
-
|
|
246
|
-
|
|
258
|
+
let tail = '';
|
|
259
|
+
try {
|
|
260
|
+
tail = await handle.readJournalTail(FAST_EXIT_OUTPUT_MAX_BYTES);
|
|
261
|
+
}
|
|
262
|
+
catch (err) {
|
|
263
|
+
tail = `<readJournalTail failed: ${err instanceof Error ? err.message : String(err)}>`;
|
|
264
|
+
}
|
|
265
|
+
const bytes = tail.length;
|
|
266
|
+
const body = bytes > 0 ? tail : '<no child output captured>';
|
|
247
267
|
deps.logger(`${TAG} rc-daemon fast-exit-output accountId=${deps.accountId} pid=${handle.pid} ranMs=${ranMs} bytes=${bytes} output<<<\n${body}\n>>>`);
|
|
248
268
|
}
|
|
249
269
|
scheduleRestart(startedAt);
|
|
270
|
+
})
|
|
271
|
+
.catch((err) => {
|
|
272
|
+
// waitForExit polls until inactive; the only way it throws is a
|
|
273
|
+
// systemctl runner that itself throws. Log and treat as exit so
|
|
274
|
+
// supervision continues.
|
|
275
|
+
if (current === handle)
|
|
276
|
+
current = null;
|
|
277
|
+
deps.logger(`${TAG} rc-daemon waitForExit-failed accountId=${deps.accountId} pid=${handle.pid} err=${err instanceof Error ? err.message : String(err)}`);
|
|
278
|
+
scheduleRestart(startedAt);
|
|
250
279
|
});
|
|
251
280
|
};
|
|
252
281
|
const scheduleRestart = (startedAt) => {
|
|
@@ -269,7 +298,7 @@ export function startRcDaemon(deps) {
|
|
|
269
298
|
const delay = backoffMs;
|
|
270
299
|
deps.logger(`${TAG} rc-daemon restart-scheduled accountId=${deps.accountId} delayMs=${delay} fastFailures=${consecutiveFastFailures}`);
|
|
271
300
|
backoffMs = Math.min(backoffMs * 2, BACKOFF_MAX_MS);
|
|
272
|
-
setTimer(() => spawnOnce(), delay);
|
|
301
|
+
setTimer(() => { void spawnOnce(); }, delay);
|
|
273
302
|
};
|
|
274
303
|
// Task 523 — gate the eager first spawn on Neo4j readiness. On a host
|
|
275
304
|
// reboot the session-manager (a systemd USER unit) restarts before
|
|
@@ -297,7 +326,7 @@ export function startRcDaemon(deps) {
|
|
|
297
326
|
// guessed port (could falsely pass against another brand's Neo4j).
|
|
298
327
|
if (!hostPort && !deps.checkNeo4jReady) {
|
|
299
328
|
deps.logger(`${TAG} rc-daemon neo4j-readiness-skipped reason=unparseable-uri uri=${deps.brandedNeo4jUri} — spawning without gate`);
|
|
300
|
-
spawnOnce();
|
|
329
|
+
void spawnOnce();
|
|
301
330
|
return;
|
|
302
331
|
}
|
|
303
332
|
const target = hostPort ? `${hostPort.host}:${hostPort.port}` : deps.brandedNeo4jUri;
|
|
@@ -320,7 +349,7 @@ export function startRcDaemon(deps) {
|
|
|
320
349
|
if (waited) {
|
|
321
350
|
deps.logger(`${TAG} rc-daemon neo4j-ready target=${target} waitedMs=${now() - startedWait} — spawning`);
|
|
322
351
|
}
|
|
323
|
-
spawnOnce();
|
|
352
|
+
void spawnOnce();
|
|
324
353
|
return;
|
|
325
354
|
}
|
|
326
355
|
waited = true;
|
|
@@ -342,10 +371,12 @@ export function startRcDaemon(deps) {
|
|
|
342
371
|
stop() {
|
|
343
372
|
stopped = true;
|
|
344
373
|
if (current) {
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
374
|
+
// Task 552 — `handle.stop()` invokes `systemctl --user stop --no-block`
|
|
375
|
+
// and (when the pid was captured) runs the SIGTERM→SIGKILL escalation
|
|
376
|
+
// against the reparented pid if the scope was already collapsed. Fire
|
|
377
|
+
// and forget: the manager is shutting down; the scope's
|
|
378
|
+
// TimeoutStopSec=5 caps the in-cgroup escalation.
|
|
379
|
+
void current.stop().catch(() => { });
|
|
349
380
|
current = null;
|
|
350
381
|
}
|
|
351
382
|
deps.logger(`${TAG} rc-daemon stopped accountId=${deps.accountId}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rc-daemon.js","sourceRoot":"","sources":["../src/rc-daemon.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,EAAE;AACF,wEAAwE;AACxE,yEAAyE;AACzE,2EAA2E;AAC3E,2EAA2E;AAC3E,0EAA0E;AAC1E,EAAE;AACF,sEAAsE;AACtE,EAAE;AACF,sEAAsE;AACtE,2EAA2E;AAC3E,yEAAyE;AACzE,0EAA0E;AAC1E,qEAAqE;AACrE,EAAE;AACF,2EAA2E;AAC3E,uEAAuE;AACvE,4EAA4E;AAC5E,uEAAuE;AACvE,6EAA6E;AAC7E,0EAA0E;AAC1E,kEAAkE;AAClE,oEAAoE;AACpE,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,4EAA4E;AAC5E,0EAA0E;AAC1E,EAAE;AACF,4EAA4E;AAC5E,4EAA4E;AAC5E,2EAA2E;AAC3E,4EAA4E;AAC5E,0EAA0E;AAC1E,8DAA8D;AAC9D,8DAA8D;AAC9D,0EAA0E;AAE1E,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACzC,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAIxC,MAAM,GAAG,GAAG,0BAA0B,CAAA;AA8CtC,MAAM,eAAe,GAAG,KAAK,CAAA;AAC7B,MAAM,cAAc,GAAG,MAAM,CAAA;AAC7B,MAAM,aAAa,GAAG,MAAM,CAAA;AAC5B,MAAM,iBAAiB,GAAG,CAAC,CAAA;AAE3B,yEAAyE;AACzE,0EAA0E;AAC1E,wEAAwE;AACxE,sEAAsE;AACtE,mEAAmE;AACnE,MAAM,sBAAsB,GAAG,KAAK,CAAA;AACpC,wEAAwE;AACxE,wEAAwE;AACxE,2EAA2E;AAC3E,2CAA2C;AAC3C,MAAM,0BAA0B,GAAG,KAAK,CAAA;AAExC,MAAM,4BAA4B,GAAG,KAAK,CAAA;AAC1C,MAAM,sBAAsB,GAAG,OAAO,CAAA;AACtC,MAAM,8BAA8B,GAAG,KAAK,CAAA;AAC5C,MAAM,wBAAwB,GAAG,MAAM,CAAA;AAEvC;;;;mDAImD;AACnD,MAAM,UAAU,iBAAiB,CAAC,GAAW;IAC3C,MAAM,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAA;IAC9D,IAAI,CAAC,CAAC;QAAE,OAAO,IAAI,CAAA;IACnB,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;AAC3C,CAAC;AAED;;2BAE2B;AAC3B,SAAS,QAAQ,CAAC,IAAY,EAAE,IAAY,EAAE,SAAiB;IAC7D,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,IAAI,OAAO,GAAG,KAAK,CAAA;QACnB,MAAM,IAAI,GAAG,gBAAgB,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;QAC7C,MAAM,MAAM,GAAG,CAAC,EAAW,EAAQ,EAAE;YACnC,IAAI,OAAO;gBAAE,OAAM;YACnB,OAAO,GAAG,IAAI,CAAA;YACd,IAAI,CAAC;gBAAC,IAAI,CAAC,OAAO,EAAE,CAAA;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,uBAAuB,CAAC,CAAC;YACxD,OAAO,CAAC,EAAE,CAAC,CAAA;QACb,CAAC,CAAA;QACD,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAA;QAC1B,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA;QACxC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;QACzC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;IACzC,CAAC,CAAC,CAAA;AACJ,CAAC;AAED;;;gDAGgD;AAChD,MAAM,UAAU,cAAc,CAAC,UAAkB;IAC/C,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CAAA;QAClE,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAA6B,CAAA;QAC1D,OAAO,OAAO,MAAM,CAAC,UAAU,KAAK,QAAQ,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE;YACtE,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE;YAC1B,CAAC,CAAC,IAAI,CAAA;IACV,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC;AAED;;;yEAGyE;AACzE,MAAM,UAAU,kBAAkB,CAChC,eAAuB,EACvB,UAAkB,EAClB,MAAc;IAEd,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,EAAE,eAAe,CAAC,CAAA;IAC3D,IAAI,QAAQ,GAA4B,EAAE,CAAA;IAC1C,IAAI,CAAC;QACH,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,CAA4B,CAAA;QACpF,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YACjF,QAAQ,GAAG,EAAE,CAAA;QACf,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,oEAAoE;IACtE,CAAC;IACD,IAAI,QAAQ,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;QAClC,MAAM,CAAC,GAAG,GAAG,qCAAqC,UAAU,SAAS,YAAY,EAAE,CAAC,CAAA;QACpF,OAAM;IACR,CAAC;IACD,QAAQ,CAAC,KAAK,GAAG,UAAU,CAAA;IAC3B,IAAI,CAAC;QACH,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QACrD,uEAAuE;QACvE,2EAA2E;QAC3E,2EAA2E;QAC3E,oCAAoC;QACpC,MAAM,GAAG,GAAG,GAAG,YAAY,IAAI,OAAO,CAAC,GAAG,MAAM,CAAA;QAChD,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;QAC7D,UAAU,CAAC,GAAG,EAAE,YAAY,CAAC,CAAA;QAC7B,MAAM,CAAC,GAAG,GAAG,2CAA2C,UAAU,SAAS,YAAY,EAAE,CAAC,CAAA;IAC5F,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,GAAG,GAAG,+CAA+C,YAAY,QAAQ,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IACrI,CAAC;AACH,CAAC;AAGD;;+EAE+E;AAC/E,SAAS,cAAc,CAAC,IAAkB;IACxC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAA;IACnC,OAAO;QACL,GAAG,GAAG;QACN,iBAAiB,EAAE,OAAO;QAC1B,eAAe,EAAE,EAAE;QACnB,UAAU,EAAE,IAAI,CAAC,SAAS;QAC1B,qBAAqB,EAAE,IAAI,CAAC,MAAM;QAClC,aAAa,EAAE,IAAI,CAAC,YAAY;QAChC,iBAAiB,EAAE,IAAI,CAAC,eAAe;QACvC,SAAS,EAAE,IAAI,CAAC,eAAe;QAC/B,cAAc,EAAE,IAAI,CAAC,oBAAoB;QACzC,+BAA+B,EAAE,GAAG;KACrC,CAAA;AACH,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAAkB;IAC9C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAA;IAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAA;IAElE,MAAM,UAAU,GAAG,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IAClD,IAAI,UAAU,EAAE,CAAC;QACf,kBAAkB,CAAC,IAAI,CAAC,eAAe,EAAE,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;IACnE,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,uEAAuE,IAAI,CAAC,UAAU,iCAAiC,CAAC,CAAA;IAC5I,CAAC;IAED,0EAA0E;IAC1E,4EAA4E;IAC5E,iEAAiE;IACjE,+EAA+E;IAC/E,uEAAuE;IACvE,8EAA8E;IAC9E,+EAA+E;IAC/E,+EAA+E;IAC/E,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,sDAAsD,IAAI,CAAC,SAAS,2CAA2C,CAAC,CAAA;IAElI,MAAM,SAAS,GAAG,cAAc,CAAC,IAAI,CAAC,CAAA;IACtC,IAAI,OAAO,GAAG,KAAK,CAAA;IACnB,IAAI,OAAO,GAAqB,IAAI,CAAA;IACpC,IAAI,SAAS,GAAG,eAAe,CAAA;IAC/B,IAAI,uBAAuB,GAAG,CAAC,CAAA;IAC/B,IAAI,iBAAiB,GAAG,KAAK,CAAA;IAE7B,MAAM,SAAS,GAAG,GAAS,EAAE;QAC3B,IAAI,OAAO,IAAI,iBAAiB;YAAE,OAAM;QACxC,MAAM,SAAS,GAAG,GAAG,EAAE,CAAA;QACvB,IAAI,MAAiB,CAAA;QACrB,IAAI,CAAC;YACH,+DAA+D;YAC/D,sEAAsE;YACtE,kEAAkE;YAClE,gEAAgE;YAChE,6DAA6D;YAC7D,mDAAmD;YACnD,iEAAiE;YACjE,iEAAiE;YACjE,sDAAsD;YACtD,MAAM,SAAS,GAAG,aAAa,UAAU,EAAE,EAAE,CAAA;YAC7C,MAAM,GAAG,IAAI,CAAC,QAAQ,CACpB,IAAI,CAAC,SAAS;YACd,oEAAoE;YACpE,0EAA0E;YAC1E,wEAAwE;YACxE,oEAAoE;YACpE,+DAA+D;YAC/D,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,4BAA4B,EAAE,sCAAsC,EAAE,IAAI,CAAC,gBAAgB,CAAC,EAC1H,SAAS,EACT,SAAS,CACV,CAAA;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,+BAA+B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;YACpG,eAAe,CAAC,SAAS,CAAC,CAAA;YAC1B,OAAM;QACR,CAAC;QACD,OAAO,GAAG,MAAM,CAAA;QAChB,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,8BAA8B,IAAI,CAAC,SAAS,QAAQ,IAAI,CAAC,QAAQ,QAAQ,MAAM,CAAC,GAAG,UAAU,UAAU,IAAI,SAAS,gBAAgB,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAA;QAC9K,wEAAwE;QACxE,wEAAwE;QACxE,yEAAyE;QACzE,qEAAqE;QACrE,sBAAsB;QACtB,IAAI,UAAU,GAAG,EAAE,CAAA;QACnB,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;YACtC,UAAU,IAAI,KAAK,CAAA;YACnB,IAAI,UAAU,CAAC,MAAM,GAAG,0BAA0B,EAAE,CAAC;gBACnD,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,0BAA0B,CAAC,CAAA;YAC/E,CAAC;QACH,CAAC,CAAC,CAAA;QACF,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;YAClB,IAAI,CAAC;gBAAC,OAAO,CAAC,OAAO,EAAE,CAAA;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,sBAAsB,CAAC,CAAC;YAC1D,IAAI,OAAO,KAAK,MAAM;gBAAE,OAAO,GAAG,IAAI,CAAA;YACtC,MAAM,KAAK,GAAG,GAAG,EAAE,GAAG,SAAS,CAAA;YAC/B,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,6BAA6B,IAAI,CAAC,SAAS,QAAQ,MAAM,CAAC,GAAG,aAAa,CAAC,CAAC,QAAQ,WAAW,CAAC,CAAC,MAAM,IAAI,MAAM,UAAU,KAAK,EAAE,CAAC,CAAA;YACrJ,IAAI,KAAK,GAAG,sBAAsB,EAAE,CAAC;gBACnC,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAA;gBAC/B,MAAM,IAAI,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,4BAA4B,CAAA;gBAClE,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,yCAAyC,IAAI,CAAC,SAAS,QAAQ,MAAM,CAAC,GAAG,UAAU,KAAK,UAAU,KAAK,eAAe,IAAI,OAAO,CAAC,CAAA;YACtJ,CAAC;YACD,eAAe,CAAC,SAAS,CAAC,CAAA;QAC5B,CAAC,CAAC,CAAA;IACJ,CAAC,CAAA;IAED,MAAM,eAAe,GAAG,CAAC,SAAiB,EAAQ,EAAE;QAClD,IAAI,OAAO;YAAE,OAAM;QACnB,MAAM,KAAK,GAAG,GAAG,EAAE,GAAG,SAAS,CAAA;QAC/B,IAAI,KAAK,IAAI,aAAa,EAAE,CAAC;YAC3B,0DAA0D;YAC1D,uBAAuB,GAAG,CAAC,CAAA;YAC3B,SAAS,GAAG,eAAe,CAAA;QAC7B,CAAC;aAAM,CAAC;YACN,uBAAuB,IAAI,CAAC,CAAA;QAC9B,CAAC;QACD,IAAI,uBAAuB,IAAI,iBAAiB,EAAE,CAAC;YACjD,iBAAiB,GAAG,IAAI,CAAA;YACxB,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,2CAA2C,IAAI,CAAC,SAAS,4BAA4B,uBAAuB,qFAAqF,CAAC,CAAA;YACpN,OAAM;QACR,CAAC;QACD,MAAM,KAAK,GAAG,SAAS,CAAA;QACvB,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,0CAA0C,IAAI,CAAC,SAAS,YAAY,KAAK,iBAAiB,uBAAuB,EAAE,CAAC,CAAA;QACtI,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC,EAAE,cAAc,CAAC,CAAA;QACnD,QAAQ,CAAC,GAAG,EAAE,CAAC,SAAS,EAAE,EAAE,KAAK,CAAC,CAAA;IACpC,CAAC,CAAA;IAED,sEAAsE;IACtE,mEAAmE;IACnE,yEAAyE;IACzE,4EAA4E;IAC5E,2EAA2E;IAC3E,6EAA6E;IAC7E,0EAA0E;IAC1E,wEAAwE;IACxE,sEAAsE;IACtE,gCAAgC;IAChC,MAAM,cAAc,GAAG,IAAI,CAAC,wBAAwB,IAAI,4BAA4B,CAAA;IACpF,MAAM,cAAc,GAAG,IAAI,CAAC,mBAAmB,IAAI,sBAAsB,CAAA;IACzE,MAAM,QAAQ,GAAG,iBAAiB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;IACxD,MAAM,KAAK,GACT,IAAI,CAAC,eAAe;QACpB,CAAC,CAAC,GAAW,EAAoB,EAAE;YACjC,MAAM,EAAE,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAA;YACjC,IAAI,CAAC,EAAE;gBAAE,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;YACrC,OAAO,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,8BAA8B,CAAC,CAAA;QACnE,CAAC,CAAC,CAAA;IAEJ,MAAM,KAAK,GAAG,CAAC,EAAU,EAAiB,EAAE,CAC1C,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAA;IAEnD,MAAM,qBAAqB,GAAG,KAAK,IAAmB,EAAE;QACtD,uEAAuE;QACvE,mEAAmE;QACnE,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YACvC,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,iEAAiE,IAAI,CAAC,eAAe,0BAA0B,CAAC,CAAA;YAClI,SAAS,EAAE,CAAA;YACX,OAAM;QACR,CAAC;QACD,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAA;QACpF,MAAM,WAAW,GAAG,GAAG,EAAE,CAAA;QACzB,IAAI,MAAM,GAAG,KAAK,CAAA;QAClB,IAAI,cAAc,GAAG,CAAC,wBAAwB,CAAA;QAC9C,OAAO,CAAC,OAAO,EAAE,CAAC;YAChB,IAAI,KAAK,GAAG,KAAK,CAAA;YACjB,IAAI,CAAC;gBACH,KAAK,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;YAC3C,CAAC;YAAC,MAAM,CAAC;gBACP,8DAA8D;gBAC9D,sCAAsC;gBACtC,KAAK,GAAG,KAAK,CAAA;YACf,CAAC;YACD,IAAI,OAAO;gBAAE,OAAM;YACnB,IAAI,KAAK,EAAE,CAAC;gBACV,IAAI,MAAM,EAAE,CAAC;oBACX,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,iCAAiC,MAAM,aAAa,GAAG,EAAE,GAAG,WAAW,aAAa,CAAC,CAAA;gBACzG,CAAC;gBACD,SAAS,EAAE,CAAA;gBACX,OAAM;YACR,CAAC;YACD,MAAM,GAAG,IAAI,CAAA;YACb,MAAM,OAAO,GAAG,GAAG,EAAE,GAAG,WAAW,CAAA;YACnC,IAAI,OAAO,IAAI,cAAc,EAAE,CAAC;gBAC9B,iBAAiB,GAAG,IAAI,CAAA;gBACxB,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,uCAAuC,MAAM,aAAa,OAAO,iCAAiC,cAAc,mFAAmF,CAAC,CAAA;gBACtN,OAAM;YACR,CAAC;YACD,IAAI,OAAO,GAAG,cAAc,IAAI,wBAAwB,EAAE,CAAC;gBACzD,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,sCAAsC,MAAM,cAAc,OAAO,qEAAqE,CAAC,CAAA;gBACzJ,cAAc,GAAG,OAAO,CAAA;YAC1B,CAAC;YACD,MAAM,KAAK,CAAC,cAAc,CAAC,CAAA;QAC7B,CAAC;IACH,CAAC,CAAA;IAED,KAAK,qBAAqB,EAAE,CAAA;IAE5B,OAAO;QACL,IAAI;YACF,OAAO,GAAG,IAAI,CAAA;YACd,IAAI,OAAO,EAAE,CAAC;gBACZ,IAAI,CAAC;oBAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;gBAAC,CAAC;gBAAC,MAAM,CAAC,CAAC,kBAAkB,CAAC,CAAC;gBAC5D,OAAO,GAAG,IAAI,CAAA;YAChB,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,gCAAgC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAA;QACrE,CAAC;KACF,CAAA;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"rc-daemon.js","sourceRoot":"","sources":["../src/rc-daemon.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,EAAE;AACF,wEAAwE;AACxE,yEAAyE;AACzE,2EAA2E;AAC3E,2EAA2E;AAC3E,0EAA0E;AAC1E,EAAE;AACF,sEAAsE;AACtE,EAAE;AACF,sEAAsE;AACtE,2EAA2E;AAC3E,yEAAyE;AACzE,0EAA0E;AAC1E,qEAAqE;AACrE,EAAE;AACF,2EAA2E;AAC3E,uEAAuE;AACvE,4EAA4E;AAC5E,uEAAuE;AACvE,6EAA6E;AAC7E,0EAA0E;AAC1E,kEAAkE;AAClE,oEAAoE;AACpE,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,4EAA4E;AAC5E,0EAA0E;AAC1E,EAAE;AACF,4EAA4E;AAC5E,4EAA4E;AAC5E,2EAA2E;AAC3E,4EAA4E;AAC5E,0EAA0E;AAC1E,8DAA8D;AAC9D,8DAA8D;AAC9D,0EAA0E;AAE1E,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACzC,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAKxC,MAAM,GAAG,GAAG,0BAA0B,CAAA;AAyDtC,MAAM,eAAe,GAAG,KAAK,CAAA;AAC7B,MAAM,cAAc,GAAG,MAAM,CAAA;AAC7B,MAAM,aAAa,GAAG,MAAM,CAAA;AAC5B,MAAM,iBAAiB,GAAG,CAAC,CAAA;AAE3B,yEAAyE;AACzE,0EAA0E;AAC1E,wEAAwE;AACxE,sEAAsE;AACtE,mEAAmE;AACnE,MAAM,sBAAsB,GAAG,KAAK,CAAA;AACpC,wEAAwE;AACxE,wEAAwE;AACxE,2EAA2E;AAC3E,2CAA2C;AAC3C,MAAM,0BAA0B,GAAG,KAAK,CAAA;AAExC,MAAM,4BAA4B,GAAG,KAAK,CAAA;AAC1C,MAAM,sBAAsB,GAAG,OAAO,CAAA;AACtC,MAAM,8BAA8B,GAAG,KAAK,CAAA;AAC5C,MAAM,wBAAwB,GAAG,MAAM,CAAA;AAEvC;;;;mDAImD;AACnD,MAAM,UAAU,iBAAiB,CAAC,GAAW;IAC3C,MAAM,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAA;IAC9D,IAAI,CAAC,CAAC;QAAE,OAAO,IAAI,CAAA;IACnB,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;AAC3C,CAAC;AAED;;2BAE2B;AAC3B,SAAS,QAAQ,CAAC,IAAY,EAAE,IAAY,EAAE,SAAiB;IAC7D,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,IAAI,OAAO,GAAG,KAAK,CAAA;QACnB,MAAM,IAAI,GAAG,gBAAgB,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;QAC7C,MAAM,MAAM,GAAG,CAAC,EAAW,EAAQ,EAAE;YACnC,IAAI,OAAO;gBAAE,OAAM;YACnB,OAAO,GAAG,IAAI,CAAA;YACd,IAAI,CAAC;gBAAC,IAAI,CAAC,OAAO,EAAE,CAAA;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,uBAAuB,CAAC,CAAC;YACxD,OAAO,CAAC,EAAE,CAAC,CAAA;QACb,CAAC,CAAA;QACD,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAA;QAC1B,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA;QACxC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;QACzC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;IACzC,CAAC,CAAC,CAAA;AACJ,CAAC;AAED;;;gDAGgD;AAChD,MAAM,UAAU,cAAc,CAAC,UAAkB;IAC/C,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CAAA;QAClE,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAA6B,CAAA;QAC1D,OAAO,OAAO,MAAM,CAAC,UAAU,KAAK,QAAQ,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE;YACtE,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE;YAC1B,CAAC,CAAC,IAAI,CAAA;IACV,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC;AAED;;;yEAGyE;AACzE,MAAM,UAAU,kBAAkB,CAChC,eAAuB,EACvB,UAAkB,EAClB,MAAc;IAEd,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,EAAE,eAAe,CAAC,CAAA;IAC3D,IAAI,QAAQ,GAA4B,EAAE,CAAA;IAC1C,IAAI,CAAC;QACH,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,CAA4B,CAAA;QACpF,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YACjF,QAAQ,GAAG,EAAE,CAAA;QACf,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,oEAAoE;IACtE,CAAC;IACD,IAAI,QAAQ,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;QAClC,MAAM,CAAC,GAAG,GAAG,qCAAqC,UAAU,SAAS,YAAY,EAAE,CAAC,CAAA;QACpF,OAAM;IACR,CAAC;IACD,QAAQ,CAAC,KAAK,GAAG,UAAU,CAAA;IAC3B,IAAI,CAAC;QACH,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QACrD,uEAAuE;QACvE,2EAA2E;QAC3E,2EAA2E;QAC3E,oCAAoC;QACpC,MAAM,GAAG,GAAG,GAAG,YAAY,IAAI,OAAO,CAAC,GAAG,MAAM,CAAA;QAChD,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;QAC7D,UAAU,CAAC,GAAG,EAAE,YAAY,CAAC,CAAA;QAC7B,MAAM,CAAC,GAAG,GAAG,2CAA2C,UAAU,SAAS,YAAY,EAAE,CAAC,CAAA;IAC5F,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,GAAG,GAAG,+CAA+C,YAAY,QAAQ,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IACrI,CAAC;AACH,CAAC;AAkBD;;oEAEoE;AACpE,MAAM,UAAU,eAAe,CAAC,KAAsB;IACpD,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAA;IACpC,OAAO;QACL,GAAG,GAAG;QACN,iBAAiB,EAAE,OAAO;QAC1B,eAAe,EAAE,EAAE;QACnB,UAAU,EAAE,KAAK,CAAC,SAAS;QAC3B,qBAAqB,EAAE,KAAK,CAAC,MAAM;QACnC,aAAa,EAAE,KAAK,CAAC,YAAY;QACjC,iBAAiB,EAAE,KAAK,CAAC,eAAe;QACxC,SAAS,EAAE,KAAK,CAAC,eAAe;QAChC,cAAc,EAAE,KAAK,CAAC,oBAAoB;QAC1C,+BAA+B,EAAE,GAAG;KACrC,CAAA;AACH,CAAC;AAED,SAAS,cAAc,CAAC,IAAkB;IACxC,OAAO,eAAe,CAAC;QACrB,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,eAAe,EAAE,IAAI,CAAC,eAAe;QACrC,eAAe,EAAE,IAAI,CAAC,eAAe;QACrC,oBAAoB,EAAE,IAAI,CAAC,oBAAoB;QAC/C,GAAG,EAAE,IAAI,CAAC,GAAG;KACd,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAAkB;IAC9C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAA;IAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAA;IAElE,MAAM,UAAU,GAAG,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IAClD,IAAI,UAAU,EAAE,CAAC;QACf,kBAAkB,CAAC,IAAI,CAAC,eAAe,EAAE,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;IACnE,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,uEAAuE,IAAI,CAAC,UAAU,iCAAiC,CAAC,CAAA;IAC5I,CAAC;IAED,0EAA0E;IAC1E,4EAA4E;IAC5E,iEAAiE;IACjE,+EAA+E;IAC/E,uEAAuE;IACvE,8EAA8E;IAC9E,+EAA+E;IAC/E,+EAA+E;IAC/E,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,sDAAsD,IAAI,CAAC,SAAS,2CAA2C,CAAC,CAAA;IAElI,MAAM,SAAS,GAAG,cAAc,CAAC,IAAI,CAAC,CAAA;IACtC,IAAI,OAAO,GAAG,KAAK,CAAA;IACnB,IAAI,OAAO,GAA8B,IAAI,CAAA;IAC7C,IAAI,SAAS,GAAG,eAAe,CAAA;IAC/B,IAAI,uBAAuB,GAAG,CAAC,CAAA;IAC/B,IAAI,iBAAiB,GAAG,KAAK,CAAA;IAE7B,MAAM,SAAS,GAAG,KAAK,IAAmB,EAAE;QAC1C,IAAI,OAAO,IAAI,iBAAiB;YAAE,OAAM;QACxC,MAAM,SAAS,GAAG,GAAG,EAAE,CAAA;QACvB,IAAI,MAA0B,CAAA;QAC9B,+DAA+D;QAC/D,sEAAsE;QACtE,kEAAkE;QAClE,gEAAgE;QAChE,6DAA6D;QAC7D,mDAAmD;QACnD,iEAAiE;QACjE,iEAAiE;QACjE,sDAAsD;QACtD,MAAM,SAAS,GAAG,aAAa,UAAU,EAAE,EAAE,CAAA;QAC7C,IAAI,CAAC;YACH,+DAA+D;YAC/D,gEAAgE;YAChE,0CAA0C;YAC1C,MAAM,QAAQ,GAA2B,EAAE,CAAA;YAC3C,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC/C,IAAI,OAAO,CAAC,KAAK,QAAQ;oBAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;YAC5C,CAAC;YACD,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC;gBAC/B,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,oEAAoE;gBACpE,qEAAqE;gBACrE,iEAAiE;gBACjE,2CAA2C;gBAC3C,UAAU,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,4BAA4B,EAAE,sCAAsC,EAAE,IAAI,CAAC,gBAAgB,CAAC;gBACtI,GAAG,EAAE,QAAQ;gBACb,GAAG,EAAE,IAAI,CAAC,QAAQ;gBAClB,SAAS;aACV,CAAC,CAAA;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,+BAA+B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;YACpG,eAAe,CAAC,SAAS,CAAC,CAAA;YAC1B,OAAM;QACR,CAAC;QACD,OAAO,GAAG,MAAM,CAAA;QAChB,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,8BAA8B,IAAI,CAAC,SAAS,QAAQ,IAAI,CAAC,QAAQ,QAAQ,MAAM,CAAC,GAAG,UAAU,UAAU,IAAI,SAAS,gBAAgB,IAAI,CAAC,gBAAgB,4BAA4B,CAAC,CAAA;QACxM,6DAA6D;QAC7D,kEAAkE;QAClE,iEAAiE;QACjE,kEAAkE;QAClE,+BAA+B;QAC/B,KAAK,MAAM,CAAC,WAAW,EAAE;aACtB,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;YACnB,IAAI,OAAO,KAAK,MAAM;gBAAE,OAAO,GAAG,IAAI,CAAA;YACtC,MAAM,KAAK,GAAG,GAAG,EAAE,GAAG,SAAS,CAAA;YAC/B,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,6BAA6B,IAAI,CAAC,SAAS,QAAQ,MAAM,CAAC,GAAG,WAAW,IAAI,CAAC,MAAM,aAAa,IAAI,CAAC,QAAQ,IAAI,MAAM,aAAa,IAAI,CAAC,IAAI,IAAI,MAAM,UAAU,KAAK,EAAE,CAAC,CAAA;YAC3L,IAAI,KAAK,GAAG,sBAAsB,EAAE,CAAC;gBACnC,IAAI,IAAI,GAAG,EAAE,CAAA;gBACb,IAAI,CAAC;oBACH,IAAI,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,0BAA0B,CAAC,CAAA;gBACjE,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,IAAI,GAAG,4BAA4B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAA;gBACxF,CAAC;gBACD,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAA;gBACzB,MAAM,IAAI,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,4BAA4B,CAAA;gBAC5D,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,yCAAyC,IAAI,CAAC,SAAS,QAAQ,MAAM,CAAC,GAAG,UAAU,KAAK,UAAU,KAAK,eAAe,IAAI,OAAO,CAAC,CAAA;YACtJ,CAAC;YACD,eAAe,CAAC,SAAS,CAAC,CAAA;QAC5B,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACb,gEAAgE;YAChE,gEAAgE;YAChE,yBAAyB;YACzB,IAAI,OAAO,KAAK,MAAM;gBAAE,OAAO,GAAG,IAAI,CAAA;YACtC,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,2CAA2C,IAAI,CAAC,SAAS,QAAQ,MAAM,CAAC,GAAG,QAAQ,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;YACxJ,eAAe,CAAC,SAAS,CAAC,CAAA;QAC5B,CAAC,CAAC,CAAA;IACN,CAAC,CAAA;IAED,MAAM,eAAe,GAAG,CAAC,SAAiB,EAAQ,EAAE;QAClD,IAAI,OAAO;YAAE,OAAM;QACnB,MAAM,KAAK,GAAG,GAAG,EAAE,GAAG,SAAS,CAAA;QAC/B,IAAI,KAAK,IAAI,aAAa,EAAE,CAAC;YAC3B,0DAA0D;YAC1D,uBAAuB,GAAG,CAAC,CAAA;YAC3B,SAAS,GAAG,eAAe,CAAA;QAC7B,CAAC;aAAM,CAAC;YACN,uBAAuB,IAAI,CAAC,CAAA;QAC9B,CAAC;QACD,IAAI,uBAAuB,IAAI,iBAAiB,EAAE,CAAC;YACjD,iBAAiB,GAAG,IAAI,CAAA;YACxB,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,2CAA2C,IAAI,CAAC,SAAS,4BAA4B,uBAAuB,qFAAqF,CAAC,CAAA;YACpN,OAAM;QACR,CAAC;QACD,MAAM,KAAK,GAAG,SAAS,CAAA;QACvB,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,0CAA0C,IAAI,CAAC,SAAS,YAAY,KAAK,iBAAiB,uBAAuB,EAAE,CAAC,CAAA;QACtI,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC,EAAE,cAAc,CAAC,CAAA;QACnD,QAAQ,CAAC,GAAG,EAAE,GAAG,KAAK,SAAS,EAAE,CAAA,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;IAC7C,CAAC,CAAA;IAED,sEAAsE;IACtE,mEAAmE;IACnE,yEAAyE;IACzE,4EAA4E;IAC5E,2EAA2E;IAC3E,6EAA6E;IAC7E,0EAA0E;IAC1E,wEAAwE;IACxE,sEAAsE;IACtE,gCAAgC;IAChC,MAAM,cAAc,GAAG,IAAI,CAAC,wBAAwB,IAAI,4BAA4B,CAAA;IACpF,MAAM,cAAc,GAAG,IAAI,CAAC,mBAAmB,IAAI,sBAAsB,CAAA;IACzE,MAAM,QAAQ,GAAG,iBAAiB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;IACxD,MAAM,KAAK,GACT,IAAI,CAAC,eAAe;QACpB,CAAC,CAAC,GAAW,EAAoB,EAAE;YACjC,MAAM,EAAE,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAA;YACjC,IAAI,CAAC,EAAE;gBAAE,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;YACrC,OAAO,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,8BAA8B,CAAC,CAAA;QACnE,CAAC,CAAC,CAAA;IAEJ,MAAM,KAAK,GAAG,CAAC,EAAU,EAAiB,EAAE,CAC1C,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAA;IAEnD,MAAM,qBAAqB,GAAG,KAAK,IAAmB,EAAE;QACtD,uEAAuE;QACvE,mEAAmE;QACnE,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YACvC,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,iEAAiE,IAAI,CAAC,eAAe,0BAA0B,CAAC,CAAA;YAClI,KAAK,SAAS,EAAE,CAAA;YAChB,OAAM;QACR,CAAC;QACD,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAA;QACpF,MAAM,WAAW,GAAG,GAAG,EAAE,CAAA;QACzB,IAAI,MAAM,GAAG,KAAK,CAAA;QAClB,IAAI,cAAc,GAAG,CAAC,wBAAwB,CAAA;QAC9C,OAAO,CAAC,OAAO,EAAE,CAAC;YAChB,IAAI,KAAK,GAAG,KAAK,CAAA;YACjB,IAAI,CAAC;gBACH,KAAK,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;YAC3C,CAAC;YAAC,MAAM,CAAC;gBACP,8DAA8D;gBAC9D,sCAAsC;gBACtC,KAAK,GAAG,KAAK,CAAA;YACf,CAAC;YACD,IAAI,OAAO;gBAAE,OAAM;YACnB,IAAI,KAAK,EAAE,CAAC;gBACV,IAAI,MAAM,EAAE,CAAC;oBACX,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,iCAAiC,MAAM,aAAa,GAAG,EAAE,GAAG,WAAW,aAAa,CAAC,CAAA;gBACzG,CAAC;gBACD,KAAK,SAAS,EAAE,CAAA;gBAChB,OAAM;YACR,CAAC;YACD,MAAM,GAAG,IAAI,CAAA;YACb,MAAM,OAAO,GAAG,GAAG,EAAE,GAAG,WAAW,CAAA;YACnC,IAAI,OAAO,IAAI,cAAc,EAAE,CAAC;gBAC9B,iBAAiB,GAAG,IAAI,CAAA;gBACxB,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,uCAAuC,MAAM,aAAa,OAAO,iCAAiC,cAAc,mFAAmF,CAAC,CAAA;gBACtN,OAAM;YACR,CAAC;YACD,IAAI,OAAO,GAAG,cAAc,IAAI,wBAAwB,EAAE,CAAC;gBACzD,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,sCAAsC,MAAM,cAAc,OAAO,qEAAqE,CAAC,CAAA;gBACzJ,cAAc,GAAG,OAAO,CAAA;YAC1B,CAAC;YACD,MAAM,KAAK,CAAC,cAAc,CAAC,CAAA;QAC7B,CAAC;IACH,CAAC,CAAA;IAED,KAAK,qBAAqB,EAAE,CAAA;IAE5B,OAAO;QACL,IAAI;YACF,OAAO,GAAG,IAAI,CAAA;YACd,IAAI,OAAO,EAAE,CAAC;gBACZ,wEAAwE;gBACxE,sEAAsE;gBACtE,sEAAsE;gBACtE,wDAAwD;gBACxD,kDAAkD;gBAClD,KAAK,OAAO,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAyE,CAAC,CAAC,CAAA;gBAC1G,OAAO,GAAG,IAAI,CAAA;YAChB,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,gCAAgC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAA;QACrE,CAAC;KACF,CAAA;AACH,CAAC"}
|
|
@@ -41,6 +41,14 @@ export interface SessionSidecar {
|
|
|
41
41
|
* random UUID that does not match claude's intrinsic sessionId. Null
|
|
42
42
|
* on pre-Task-451 sidecars and on any non-scope spawn path. */
|
|
43
43
|
scopeUnitToken: string | null;
|
|
44
|
+
/** Task 550 — composer bridge ULIDs (suffix only, no "session_" prefix)
|
|
45
|
+
* that have been bound to this conversation across its lifetime. Every
|
|
46
|
+
* `/rc-spawn` resume against an existing JSONL learns a new bridge ULID
|
|
47
|
+
* from the PID file once claude registers with the composer; the
|
|
48
|
+
* http-server appends it here so a future composer-URL → row lookup is
|
|
49
|
+
* a direct match. Defaults to `[]` on pre-Task-550 sidecars (missing
|
|
50
|
+
* key). Append-only, duplicates suppressed. */
|
|
51
|
+
bridgeIds: string[];
|
|
44
52
|
}
|
|
45
53
|
export interface SidecarReadOutcome {
|
|
46
54
|
sidecar: SessionSidecar | null;
|
|
@@ -69,4 +77,15 @@ export declare function writeSidecar(path: string, sidecar: SessionSidecar, logg
|
|
|
69
77
|
* the other fields would be invented). Single-writer assumption applies
|
|
70
78
|
* — concurrent updates may race and lose the latest value. */
|
|
71
79
|
export declare function updateSidecar(path: string, patch: Partial<SessionSidecar>, logger: Logger): boolean;
|
|
80
|
+
/** Task 550 — append a bridge ULID suffix to `bridgeIds` on the sidecar.
|
|
81
|
+
* Read-modify-write; the atomic rename pattern matches the rest of this
|
|
82
|
+
* module. Returns `'ok'` when written, `'duplicate'` when the suffix was
|
|
83
|
+
* already present (no write performed), and `'no-sidecar'` when the
|
|
84
|
+
* sidecar is missing or unparseable (caller logs and skips — legacy
|
|
85
|
+
* rows without a sidecar are out of scope per the task brief).
|
|
86
|
+
* Single-writer assumption is shared with url-capture's updateSidecar:
|
|
87
|
+
* both are read-modify-write and could race, but they touch disjoint
|
|
88
|
+
* fields, so the rename-loses-write window is the existing limitation
|
|
89
|
+
* rather than a new one. */
|
|
90
|
+
export declare function appendBridgeId(path: string, bridgeSuffix: string, logger: Logger): 'ok' | 'duplicate' | 'no-sidecar';
|
|
72
91
|
//# sourceMappingURL=session-sidecar.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-sidecar.d.ts","sourceRoot":"","sources":["../src/session-sidecar.ts"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAEvD,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,IAAI,CAAA;IACV,OAAO,EAAE,OAAO,CAAA;IAChB;;;0BAGsB;IACtB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;IAClB,wCAAwC;IACxC,SAAS,EAAE,MAAM,CAAA;IACjB;;;2CAGuC;IACvC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B;;;;;;uCAMmC;IACnC,uBAAuB,EAAE,MAAM,GAAG,IAAI,CAAA;IACtC;;;yEAGqE;IACrE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB;0DACsD;IACtD,MAAM,EAAE,OAAO,CAAA;IACf;4DACwD;IACxD,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB;;;;;oEAKgE;IAChE,cAAc,EAAE,MAAM,GAAG,IAAI,CAAA;
|
|
1
|
+
{"version":3,"file":"session-sidecar.d.ts","sourceRoot":"","sources":["../src/session-sidecar.ts"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAEvD,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,IAAI,CAAA;IACV,OAAO,EAAE,OAAO,CAAA;IAChB;;;0BAGsB;IACtB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;IAClB,wCAAwC;IACxC,SAAS,EAAE,MAAM,CAAA;IACjB;;;2CAGuC;IACvC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B;;;;;;uCAMmC;IACnC,uBAAuB,EAAE,MAAM,GAAG,IAAI,CAAA;IACtC;;;yEAGqE;IACrE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB;0DACsD;IACtD,MAAM,EAAE,OAAO,CAAA;IACf;4DACwD;IACxD,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB;;;;;oEAKgE;IAChE,cAAc,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B;;;;;;oDAMgD;IAChD,SAAS,EAAE,MAAM,EAAE,CAAA;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,cAAc,GAAG,IAAI,CAAA;IAC9B;;;sDAGkD;IAClD,OAAO,EAAE,IAAI,GAAG,SAAS,GAAG,cAAc,CAAA;IAC1C,oDAAoD;IACpD,KAAK,EAAE,MAAM,CAAA;CACd;AAMD;;;;6BAI6B;AAC7B,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,kBAAkB,CA+B5E;AAED;;;qCAGqC;AACrC,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAiBxF;AAED;;;;+DAI+D;AAC/D,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,OAAO,CAAC,cAAc,CAAC,EAC9B,MAAM,EAAE,MAAM,GACb,OAAO,CAmBT;AAED;;;;;;;;;6BAS6B;AAC7B,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,GACb,IAAI,GAAG,WAAW,GAAG,YAAY,CAmBnC"}
|
|
@@ -121,6 +121,41 @@ export function updateSidecar(path, patch, logger) {
|
|
|
121
121
|
}
|
|
122
122
|
return true;
|
|
123
123
|
}
|
|
124
|
+
/** Task 550 — append a bridge ULID suffix to `bridgeIds` on the sidecar.
|
|
125
|
+
* Read-modify-write; the atomic rename pattern matches the rest of this
|
|
126
|
+
* module. Returns `'ok'` when written, `'duplicate'` when the suffix was
|
|
127
|
+
* already present (no write performed), and `'no-sidecar'` when the
|
|
128
|
+
* sidecar is missing or unparseable (caller logs and skips — legacy
|
|
129
|
+
* rows without a sidecar are out of scope per the task brief).
|
|
130
|
+
* Single-writer assumption is shared with url-capture's updateSidecar:
|
|
131
|
+
* both are read-modify-write and could race, but they touch disjoint
|
|
132
|
+
* fields, so the rename-loses-write window is the existing limitation
|
|
133
|
+
* rather than a new one. */
|
|
134
|
+
export function appendBridgeId(path, bridgeSuffix, logger) {
|
|
135
|
+
const { sidecar } = readSidecar(path, logger);
|
|
136
|
+
if (!sidecar)
|
|
137
|
+
return 'no-sidecar';
|
|
138
|
+
if (sidecar.bridgeIds.includes(bridgeSuffix))
|
|
139
|
+
return 'duplicate';
|
|
140
|
+
const next = { ...sidecar, bridgeIds: [...sidecar.bridgeIds, bridgeSuffix] };
|
|
141
|
+
const tmp = `${path}.tmp.${process.pid}.${Date.now()}`;
|
|
142
|
+
const json = JSON.stringify(next, null, 2);
|
|
143
|
+
const bytes = Buffer.byteLength(json, 'utf8');
|
|
144
|
+
try {
|
|
145
|
+
writeFileSync(tmp, json, 'utf8');
|
|
146
|
+
renameSync(tmp, path);
|
|
147
|
+
}
|
|
148
|
+
catch (err) {
|
|
149
|
+
try {
|
|
150
|
+
if (existsSync(tmp))
|
|
151
|
+
unlinkSync(tmp);
|
|
152
|
+
}
|
|
153
|
+
catch { /* ignore */ }
|
|
154
|
+
throw err;
|
|
155
|
+
}
|
|
156
|
+
logger(`[session-sidecar] append-bridge sessionId=${basenameShort(path)} bridgeId=${bridgeSuffix} count=${next.bridgeIds.length} bytes=${bytes}`);
|
|
157
|
+
return 'ok';
|
|
158
|
+
}
|
|
124
159
|
const ROLES = ['admin', 'public'];
|
|
125
160
|
const CHANNELS = ['browser', 'whatsapp', 'telegram', 'webchat', 'email'];
|
|
126
161
|
function parseSidecar(raw) {
|
|
@@ -167,6 +202,12 @@ function parseSidecar(raw) {
|
|
|
167
202
|
: typeof r.scopeUnitToken === 'string'
|
|
168
203
|
? r.scopeUnitToken
|
|
169
204
|
: null;
|
|
205
|
+
// Task 550 — `bridgeIds` is optional on disk so pre-550 sidecars (no key)
|
|
206
|
+
// load with `[]`. Non-string entries are dropped silently; the file may
|
|
207
|
+
// have been hand-edited or pre-dates the strict-string contract.
|
|
208
|
+
const bridgeIds = Array.isArray(r.bridgeIds)
|
|
209
|
+
? r.bridgeIds.filter((b) => typeof b === 'string' && b.length > 0)
|
|
210
|
+
: [];
|
|
170
211
|
return {
|
|
171
212
|
senderId: r.senderId,
|
|
172
213
|
role: r.role,
|
|
@@ -179,6 +220,7 @@ function parseSidecar(raw) {
|
|
|
179
220
|
hidden: r.hidden,
|
|
180
221
|
specialist,
|
|
181
222
|
scopeUnitToken,
|
|
223
|
+
bridgeIds,
|
|
182
224
|
};
|
|
183
225
|
}
|
|
184
226
|
function basenameShort(path) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-sidecar.js","sourceRoot":"","sources":["../src/session-sidecar.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,sEAAsE;AACtE,kEAAkE;AAClE,uEAAuE;AACvE,sEAAsE;AACtE,uEAAuE;AACvE,uDAAuD;AACvD,EAAE;AACF,iEAAiE;AACjE,uEAAuE;AACvE,wEAAwE;AACxE,EAAE;AACF,uEAAuE;AACvE,wEAAwE;AACxE,sEAAsE;AACtE,sEAAsE;AACtE,uDAAuD;AACvD,EAAE;AACF,qEAAqE;AACrE,+DAA+D;AAC/D,qEAAqE;AACrE,+DAA+D;AAC/D,+CAA+C;AAE/C,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AACpG,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"session-sidecar.js","sourceRoot":"","sources":["../src/session-sidecar.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { type SystemctlRunner } from './systemd-scope.js';
|
|
2
|
+
export interface SystemdSpawnParams {
|
|
3
|
+
claudeBin: string;
|
|
4
|
+
claudeArgs: readonly string[];
|
|
5
|
+
/** Env stamped onto the scope via `--setenv=KEY=VAL` flags. Manager-side
|
|
6
|
+
* vars (XDG_RUNTIME_DIR, DBUS_SESSION_BUS_ADDRESS) needed to reach user
|
|
7
|
+
* systemd are read from process.env separately. */
|
|
8
|
+
env: Readonly<Record<string, string>>;
|
|
9
|
+
cwd: string;
|
|
10
|
+
unitToken: string;
|
|
11
|
+
/** systemctl runner — production uses spawnSync; tests inject a stub. */
|
|
12
|
+
runSystemctl?: SystemctlRunner;
|
|
13
|
+
/** Injected child-process spawner for tests. Production uses node:child_process spawn. */
|
|
14
|
+
spawnChild?: (cmd: string, args: readonly string[], opts: SpawnOpts) => SpawnedChild;
|
|
15
|
+
/** Maximum wait for the scope's MainPID to become non-zero. Default 5000. */
|
|
16
|
+
activationTimeoutMs?: number;
|
|
17
|
+
/** Inter-poll interval while resolving MainPID. Default 50. */
|
|
18
|
+
activationPollIntervalMs?: number;
|
|
19
|
+
}
|
|
20
|
+
export interface SpawnOpts {
|
|
21
|
+
cwd: string;
|
|
22
|
+
env: NodeJS.ProcessEnv;
|
|
23
|
+
stdio: 'ignore';
|
|
24
|
+
detached: boolean;
|
|
25
|
+
}
|
|
26
|
+
export interface SpawnedChild {
|
|
27
|
+
pid: number | undefined;
|
|
28
|
+
unref(): void;
|
|
29
|
+
on(event: 'error', cb: (err: Error) => void): void;
|
|
30
|
+
}
|
|
31
|
+
export interface ScopeExit {
|
|
32
|
+
/** systemd's Result string: "success", "exit-code", "signal", "timeout", "core-dump", "watchdog", "start-limit-hit", "resources". */
|
|
33
|
+
result: string;
|
|
34
|
+
/** ExecMainStatus — process exit code or signal number depending on `result`. */
|
|
35
|
+
exitCode: number | null;
|
|
36
|
+
/** ExecMainCode — "exited" / "killed" / "dumped", from systemd's process-exit classification. */
|
|
37
|
+
code: string | null;
|
|
38
|
+
}
|
|
39
|
+
export interface WaitForExitOpts {
|
|
40
|
+
pollIntervalMs?: number;
|
|
41
|
+
}
|
|
42
|
+
export interface SystemdScopeHandle {
|
|
43
|
+
pid: number;
|
|
44
|
+
unitToken: string;
|
|
45
|
+
/** Resolves once the scope unit's `ActiveState` is no longer in the
|
|
46
|
+
* set { 'active', 'activating', 'reloading' }. Reads the unit's
|
|
47
|
+
* `Result`, `ExecMainStatus`, and `ExecMainCode` to populate
|
|
48
|
+
* the returned `ScopeExit`. */
|
|
49
|
+
waitForExit(opts?: WaitForExitOpts): Promise<ScopeExit>;
|
|
50
|
+
/** Read the scope's journal tail (default `--output=cat`, last 200 lines).
|
|
51
|
+
* Trimmed to `maxBytes` from the end so the line preceding exit wins. */
|
|
52
|
+
readJournalTail(maxBytes: number): Promise<string>;
|
|
53
|
+
/** Stop the scope via `systemctl --user stop --no-block` (delegates to
|
|
54
|
+
* systemd-scope.stopScopeUnit so the existing escalation path applies). */
|
|
55
|
+
stop(): Promise<void>;
|
|
56
|
+
}
|
|
57
|
+
/** Spawn `systemd-run --user --scope ... <claudeBin> <claudeArgs>` so the
|
|
58
|
+
* manager holds no file descriptors for the resulting claude process.
|
|
59
|
+
* Returns once MainPID is available; on activation timeout, rejects with
|
|
60
|
+
* a deterministic Error so the caller can log / restart. */
|
|
61
|
+
export declare function systemdSpawn(p: SystemdSpawnParams): Promise<SystemdScopeHandle>;
|
|
62
|
+
//# sourceMappingURL=systemd-spawn.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"systemd-spawn.d.ts","sourceRoot":"","sources":["../src/systemd-spawn.ts"],"names":[],"mappings":"AAwBA,OAAO,EAKL,KAAK,eAAe,EACrB,MAAM,oBAAoB,CAAA;AAE3B,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,SAAS,MAAM,EAAE,CAAA;IAC7B;;wDAEoD;IACpD,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IACrC,GAAG,EAAE,MAAM,CAAA;IACX,SAAS,EAAE,MAAM,CAAA;IACjB,yEAAyE;IACzE,YAAY,CAAC,EAAE,eAAe,CAAA;IAC9B,0FAA0F;IAC1F,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,KAAK,YAAY,CAAA;IACpF,6EAA6E;IAC7E,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,+DAA+D;IAC/D,wBAAwB,CAAC,EAAE,MAAM,CAAA;CAClC;AAED,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAC,UAAU,CAAA;IACtB,KAAK,EAAE,QAAQ,CAAA;IACf,QAAQ,EAAE,OAAO,CAAA;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;IACvB,KAAK,IAAI,IAAI,CAAA;IACb,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI,CAAA;CACnD;AAED,MAAM,WAAW,SAAS;IACxB,qIAAqI;IACrI,MAAM,EAAE,MAAM,CAAA;IACd,iFAAiF;IACjF,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,iGAAiG;IACjG,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,MAAM,CAAA;IACX,SAAS,EAAE,MAAM,CAAA;IACjB;;;oCAGgC;IAChC,WAAW,CAAC,IAAI,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,SAAS,CAAC,CAAA;IACvD;8EAC0E;IAC1E,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IAClD;gFAC4E;IAC5E,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACtB;AAID;;;6DAG6D;AAC7D,wBAAsB,YAAY,CAAC,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAmErF"}
|