crewly 1.11.6 → 1.12.1
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/config/skills/agent/onboarding/synthesize-hierarchy/SKILL.md +65 -0
- package/config/skills/agent/onboarding/synthesize-hierarchy/execute.sh +61 -0
- package/config/skills/agent/web-search/SKILL.md +70 -0
- package/config/skills/agent/web-search/execute.sh +170 -0
- package/config/skills/agent/web-search/skill.json +23 -0
- package/dist/backend/backend/src/constants.d.ts +12 -0
- package/dist/backend/backend/src/constants.d.ts.map +1 -1
- package/dist/backend/backend/src/constants.js +12 -0
- package/dist/backend/backend/src/constants.js.map +1 -1
- package/dist/backend/backend/src/controllers/cloud/cloud.controller.d.ts +22 -0
- package/dist/backend/backend/src/controllers/cloud/cloud.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/cloud/cloud.controller.js +58 -0
- package/dist/backend/backend/src/controllers/cloud/cloud.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/cloud/cloud.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/cloud/cloud.routes.js +3 -1
- package/dist/backend/backend/src/controllers/cloud/cloud.routes.js.map +1 -1
- package/dist/backend/backend/src/controllers/orchestrator-onboarding/orchestrator-onboarding.controller.d.ts +27 -0
- package/dist/backend/backend/src/controllers/orchestrator-onboarding/orchestrator-onboarding.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/orchestrator-onboarding/orchestrator-onboarding.controller.js +108 -0
- package/dist/backend/backend/src/controllers/orchestrator-onboarding/orchestrator-onboarding.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/orchestrator-onboarding/orchestrator-onboarding.routes.d.ts +6 -2
- package/dist/backend/backend/src/controllers/orchestrator-onboarding/orchestrator-onboarding.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/orchestrator-onboarding/orchestrator-onboarding.routes.js +9 -3
- package/dist/backend/backend/src/controllers/orchestrator-onboarding/orchestrator-onboarding.routes.js.map +1 -1
- package/dist/backend/backend/src/index.d.ts.map +1 -1
- package/dist/backend/backend/src/index.js +36 -2
- package/dist/backend/backend/src/index.js.map +1 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.d.ts +18 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.js +24 -2
- package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.js.map +1 -1
- package/dist/backend/backend/src/services/cloud/mobile-api-relay.service.d.ts +102 -0
- package/dist/backend/backend/src/services/cloud/mobile-api-relay.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/cloud/mobile-api-relay.service.js +167 -0
- package/dist/backend/backend/src/services/cloud/mobile-api-relay.service.js.map +1 -0
- package/dist/backend/backend/src/services/fission/fission-guard.service.d.ts +21 -0
- package/dist/backend/backend/src/services/fission/fission-guard.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/fission/fission-guard.service.js +30 -0
- package/dist/backend/backend/src/services/fission/fission-guard.service.js.map +1 -1
- package/dist/backend/backend/src/services/intent-task/intent-classifier.rules.d.ts +4 -0
- package/dist/backend/backend/src/services/intent-task/intent-classifier.rules.d.ts.map +1 -1
- package/dist/backend/backend/src/services/intent-task/intent-classifier.rules.js +8 -0
- package/dist/backend/backend/src/services/intent-task/intent-classifier.rules.js.map +1 -1
- package/dist/backend/backend/src/services/orchestrator/onboarding/materialize-team.d.ts +79 -58
- package/dist/backend/backend/src/services/orchestrator/onboarding/materialize-team.d.ts.map +1 -1
- package/dist/backend/backend/src/services/orchestrator/onboarding/materialize-team.js +140 -65
- package/dist/backend/backend/src/services/orchestrator/onboarding/materialize-team.js.map +1 -1
- package/dist/backend/backend/src/services/orchestrator/onboarding/synthesize-hierarchy.d.ts +117 -0
- package/dist/backend/backend/src/services/orchestrator/onboarding/synthesize-hierarchy.d.ts.map +1 -0
- package/dist/backend/backend/src/services/orchestrator/onboarding/synthesize-hierarchy.js +189 -0
- package/dist/backend/backend/src/services/orchestrator/onboarding/synthesize-hierarchy.js.map +1 -0
- package/dist/backend/backend/src/services/orchestrator/onboarding-mode-loader.d.ts.map +1 -1
- package/dist/backend/backend/src/services/orchestrator/onboarding-mode-loader.js +1 -0
- package/dist/backend/backend/src/services/orchestrator/onboarding-mode-loader.js.map +1 -1
- package/dist/backend/backend/src/services/orchestrator/onboarding-mode.skill-allowlist.d.ts.map +1 -1
- package/dist/backend/backend/src/services/orchestrator/onboarding-mode.skill-allowlist.js +2 -0
- package/dist/backend/backend/src/services/orchestrator/onboarding-mode.skill-allowlist.js.map +1 -1
- package/dist/backend/backend/src/services/orchestrator/prompts/onboarding-mode.prompt.d.ts.map +1 -1
- package/dist/backend/backend/src/services/orchestrator/prompts/onboarding-mode.prompt.js +17 -1
- package/dist/backend/backend/src/services/orchestrator/prompts/onboarding-mode.prompt.js.map +1 -1
- package/dist/backend/backend/src/services/reconciler/reconcile-rules.d.ts +50 -0
- package/dist/backend/backend/src/services/reconciler/reconcile-rules.d.ts.map +1 -1
- package/dist/backend/backend/src/services/reconciler/reconcile-rules.js +71 -0
- package/dist/backend/backend/src/services/reconciler/reconcile-rules.js.map +1 -1
- package/dist/backend/backend/src/services/reconciler/reconciler.service.d.ts +18 -0
- package/dist/backend/backend/src/services/reconciler/reconciler.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/reconciler/reconciler.service.js +75 -1
- package/dist/backend/backend/src/services/reconciler/reconciler.service.js.map +1 -1
- package/dist/backend/backend/src/services/session/pty/pty-session-backend.d.ts +115 -0
- package/dist/backend/backend/src/services/session/pty/pty-session-backend.d.ts.map +1 -1
- package/dist/backend/backend/src/services/session/pty/pty-session-backend.js +189 -3
- package/dist/backend/backend/src/services/session/pty/pty-session-backend.js.map +1 -1
- package/dist/backend/backend/src/services/session/pty/pty-session.d.ts +28 -0
- package/dist/backend/backend/src/services/session/pty/pty-session.d.ts.map +1 -1
- package/dist/backend/backend/src/services/session/pty/pty-session.js +61 -1
- package/dist/backend/backend/src/services/session/pty/pty-session.js.map +1 -1
- package/dist/backend/backend/src/services/template/template.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/template/template.service.js +67 -2
- package/dist/backend/backend/src/services/template/template.service.js.map +1 -1
- package/dist/backend/backend/src/services/v3/cascade-request-status.d.ts +19 -1
- package/dist/backend/backend/src/services/v3/cascade-request-status.d.ts.map +1 -1
- package/dist/backend/backend/src/services/v3/cascade-request-status.js +39 -2
- package/dist/backend/backend/src/services/v3/cascade-request-status.js.map +1 -1
- package/dist/backend/backend/src/services/v3/escalation-router.service.d.ts +41 -0
- package/dist/backend/backend/src/services/v3/escalation-router.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/v3/escalation-router.service.js +169 -0
- package/dist/backend/backend/src/services/v3/escalation-router.service.js.map +1 -1
- package/dist/backend/backend/src/services/v3/request-cascade.subscriber.d.ts +4 -1
- package/dist/backend/backend/src/services/v3/request-cascade.subscriber.d.ts.map +1 -1
- package/dist/backend/backend/src/services/v3/request-cascade.subscriber.js +21 -0
- package/dist/backend/backend/src/services/v3/request-cascade.subscriber.js.map +1 -1
- package/dist/backend/backend/src/types/intent-task.types.d.ts.map +1 -1
- package/dist/backend/backend/src/types/intent-task.types.js +8 -0
- package/dist/backend/backend/src/types/intent-task.types.js.map +1 -1
- package/dist/backend/backend/src/types/v2/request.types.d.ts +1 -1
- package/dist/backend/backend/src/types/v2/request.types.d.ts.map +1 -1
- package/dist/backend/backend/src/types/v2/request.types.js +1 -0
- package/dist/backend/backend/src/types/v2/request.types.js.map +1 -1
- package/dist/cli/backend/src/constants.d.ts +12 -0
- package/dist/cli/backend/src/constants.d.ts.map +1 -1
- package/dist/cli/backend/src/constants.js +12 -0
- package/dist/cli/backend/src/constants.js.map +1 -1
- package/package.json +9 -3
- package/packages/crewly-agent/README.md +27 -0
- package/packages/crewly-agent/bin/crewly-agent +33 -0
- package/packages/crewly-agent/package.json +39 -0
- package/packages/crewly-agent/src/cli.ts +168 -0
- package/packages/crewly-agent/src/runtime/agent-runner.service.test.ts +2355 -0
- package/packages/crewly-agent/src/runtime/agent-runner.service.ts +1827 -0
- package/packages/crewly-agent/src/runtime/agent-stream.service.test.ts +153 -0
- package/packages/crewly-agent/src/runtime/agent-stream.service.ts +225 -0
- package/packages/crewly-agent/src/runtime/agent-worker.test.ts +171 -0
- package/packages/crewly-agent/src/runtime/agent-worker.ts +193 -0
- package/packages/crewly-agent/src/runtime/api-client.ts +143 -0
- package/packages/crewly-agent/src/runtime/approval-queue.service.ts +307 -0
- package/packages/crewly-agent/src/runtime/audit-log.service.test.ts +208 -0
- package/packages/crewly-agent/src/runtime/audit-log.service.ts +332 -0
- package/packages/crewly-agent/src/runtime/audit-trail.service.test.ts +178 -0
- package/packages/crewly-agent/src/runtime/audit-trail.service.ts +151 -0
- package/packages/crewly-agent/src/runtime/auditor-tools.test.ts +274 -0
- package/packages/crewly-agent/src/runtime/auditor-tools.ts +311 -0
- package/packages/crewly-agent/src/runtime/cloud-config.ts +67 -0
- package/packages/crewly-agent/src/runtime/deepseek-sse-transform.test.ts +165 -0
- package/packages/crewly-agent/src/runtime/deepseek-sse-transform.ts +168 -0
- package/packages/crewly-agent/src/runtime/env-isolation.service.ts +246 -0
- package/packages/crewly-agent/src/runtime/in-process-log-buffer.test.ts +280 -0
- package/packages/crewly-agent/src/runtime/in-process-log-buffer.ts +317 -0
- package/packages/crewly-agent/src/runtime/index.ts +38 -0
- package/packages/crewly-agent/src/runtime/mcp-tool-bridge.test.ts +352 -0
- package/packages/crewly-agent/src/runtime/mcp-tool-bridge.ts +244 -0
- package/packages/crewly-agent/src/runtime/model-manager.test.ts +326 -0
- package/packages/crewly-agent/src/runtime/model-manager.ts +363 -0
- package/packages/crewly-agent/src/runtime/output-filter.service.ts +175 -0
- package/packages/crewly-agent/src/runtime/prompt-guard.service.ts +303 -0
- package/packages/crewly-agent/src/runtime/rate-limiter.test.ts +228 -0
- package/packages/crewly-agent/src/runtime/rate-limiter.ts +353 -0
- package/packages/crewly-agent/src/runtime/tool-registry.test.ts +2510 -0
- package/packages/crewly-agent/src/runtime/tool-registry.ts +2104 -0
- package/packages/crewly-agent/src/runtime/types.test.ts +519 -0
- package/packages/crewly-agent/src/runtime/types.ts +637 -0
- package/packages/crewly-agent/src/runtime/web-search.tool.test.ts +131 -0
- package/packages/crewly-agent/src/runtime/web-search.tool.ts +140 -0
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
* @module services/reconciler/reconciler.service
|
|
15
15
|
*/
|
|
16
16
|
import { createEmptyReconcileResult, DEFAULT_RECONCILER_CONFIG, } from '../../types/v2/index.js';
|
|
17
|
-
import { detectStuckWorkItems, detectExpiredClaims, reconcileRequestStatus, detectRecoverableWorkItems, detectRetryableFailedWorkItems, detectDependencyResolvedWorkItems, detectUnclaimedTasks, runPruningPass, } from './reconcile-rules.js';
|
|
17
|
+
import { detectStuckWorkItems, detectExpiredClaims, reconcileRequestStatus, detectRecoverableWorkItems, detectRetryableFailedWorkItems, detectDependencyResolvedWorkItems, detectUnclaimedTasks, detectUnverifiedWorkItems, runPruningPass, } from './reconcile-rules.js';
|
|
18
18
|
import { getSettingsService } from '../settings/index.js';
|
|
19
19
|
import { LoggerService } from '../core/logger.service.js';
|
|
20
20
|
// ---------------------------------------------------------------------------
|
|
@@ -26,6 +26,13 @@ export class ReconcilerService {
|
|
|
26
26
|
fastLoopTimer = null;
|
|
27
27
|
fullLoopTimer = null;
|
|
28
28
|
history = [];
|
|
29
|
+
/**
|
|
30
|
+
* In-memory dedup of WorkItems already escalated for overdue TL verification
|
|
31
|
+
* (P1). Fires the verify-escalation once per item within the process; pruned
|
|
32
|
+
* each pass of ids that have left `done_by_worker` so a future cycle can
|
|
33
|
+
* re-escalate. Mirrors the existing stuck-WI dedup pattern.
|
|
34
|
+
*/
|
|
35
|
+
escalatedVerifyIds = new Set();
|
|
29
36
|
isRunning = false;
|
|
30
37
|
totalPasses = 0;
|
|
31
38
|
totalCorrections = 0;
|
|
@@ -100,6 +107,11 @@ export class ReconcilerService {
|
|
|
100
107
|
const unblocked = detectDependencyResolvedWorkItems(workItems, workItemMap);
|
|
101
108
|
result.corrections.push(...unblocked.corrections);
|
|
102
109
|
result.workItemsRequeued += unblocked.unblockedIds.length;
|
|
110
|
+
// 3d. Verification enforcement (P1): a worker reported done but the TL
|
|
111
|
+
// never verified within the deadline. Escalate to the orchestrator for an
|
|
112
|
+
// explicit verdict so unverified work is never silently auto-accepted by
|
|
113
|
+
// the 24h TTL fallback (pickTTLExpiryTarget('done_by_worker') → verified).
|
|
114
|
+
await this.enforceVerification(workItems);
|
|
103
115
|
// 4. Pruning pass (F4): TTL expiry + orphan cascade + deep cascade + stale queue detection
|
|
104
116
|
const pruning = runPruningPass(workItems);
|
|
105
117
|
result.corrections.push(...pruning.totalCorrections);
|
|
@@ -394,6 +406,68 @@ export class ReconcilerService {
|
|
|
394
406
|
}
|
|
395
407
|
}
|
|
396
408
|
}
|
|
409
|
+
/**
|
|
410
|
+
* Verification enforcement (P1): escalate `done_by_worker` WorkItems the
|
|
411
|
+
* Team Leader never verified within the deadline to the orchestrator for an
|
|
412
|
+
* explicit verdict — so unverified work is never silently auto-accepted by
|
|
413
|
+
* the 24h TTL fallback. Fires once per item via {@link escalatedVerifyIds}
|
|
414
|
+
* (pruned of items that have left `done_by_worker`). Best-effort; failures
|
|
415
|
+
* are logged, never thrown.
|
|
416
|
+
*
|
|
417
|
+
* @param workItems - All active WorkItems for this pass.
|
|
418
|
+
*/
|
|
419
|
+
async enforceVerification(workItems) {
|
|
420
|
+
const log = LoggerService.getInstance().createComponentLogger('ReconcilerService');
|
|
421
|
+
try {
|
|
422
|
+
const { items } = detectUnverifiedWorkItems(workItems);
|
|
423
|
+
// Prune the dedup set: allow re-escalation for ids that have since left
|
|
424
|
+
// done_by_worker (verdict rendered, or cycled back through rework).
|
|
425
|
+
const stillAwaiting = new Set(workItems.filter((w) => w.status === 'done_by_worker').map((w) => w.id));
|
|
426
|
+
for (const id of this.escalatedVerifyIds) {
|
|
427
|
+
if (!stillAwaiting.has(id))
|
|
428
|
+
this.escalatedVerifyIds.delete(id);
|
|
429
|
+
}
|
|
430
|
+
const fresh = items.filter((wi) => !this.escalatedVerifyIds.has(wi.id));
|
|
431
|
+
if (fresh.length === 0)
|
|
432
|
+
return;
|
|
433
|
+
const { EscalationRouterService } = await import('../v3/escalation-router.service.js');
|
|
434
|
+
const router = EscalationRouterService.getInstance();
|
|
435
|
+
const now = Date.now();
|
|
436
|
+
for (const wi of fresh) {
|
|
437
|
+
const awaitingSince = new Date(wi.completedAt ?? wi.startedAt ?? wi.createdAt).getTime();
|
|
438
|
+
const awaitingMs = Number.isFinite(awaitingSince) ? now - awaitingSince : 0;
|
|
439
|
+
try {
|
|
440
|
+
await router.escalateUnverifiedWorkItem({
|
|
441
|
+
id: wi.id,
|
|
442
|
+
title: wi.title,
|
|
443
|
+
type: wi.type,
|
|
444
|
+
target: wi.target ?? null,
|
|
445
|
+
retryCount: wi.retryCount,
|
|
446
|
+
maxRetries: wi.maxRetries,
|
|
447
|
+
requestId: wi.requestId ?? null,
|
|
448
|
+
missionId: wi.missionId ?? null,
|
|
449
|
+
parentWorkItemId: wi.parentWorkItemId ?? null,
|
|
450
|
+
}, awaitingMs);
|
|
451
|
+
this.escalatedVerifyIds.add(wi.id);
|
|
452
|
+
log.info('Escalated unverified WorkItem to orchestrator for a verdict', {
|
|
453
|
+
workItemId: wi.id,
|
|
454
|
+
awaitingMs,
|
|
455
|
+
});
|
|
456
|
+
}
|
|
457
|
+
catch (err) {
|
|
458
|
+
log.warn('Verify-escalation failed (non-fatal)', {
|
|
459
|
+
workItemId: wi.id,
|
|
460
|
+
error: err instanceof Error ? err.message : String(err),
|
|
461
|
+
});
|
|
462
|
+
}
|
|
463
|
+
}
|
|
464
|
+
}
|
|
465
|
+
catch (err) {
|
|
466
|
+
log.warn('enforceVerification pass failed (non-fatal)', {
|
|
467
|
+
error: err instanceof Error ? err.message : String(err),
|
|
468
|
+
});
|
|
469
|
+
}
|
|
470
|
+
}
|
|
397
471
|
/**
|
|
398
472
|
* Runs Hybrid Wake logic: detects unclaimed tasks in the pool and
|
|
399
473
|
* wakes dormant agents (suspended → rehydrate, inactive → start).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reconciler.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/reconciler/reconciler.service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"reconciler.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/reconciler/reconciler.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,28 @@
|
|
|
8
8
|
*/
|
|
9
9
|
import type { ISessionBackend, ISession, SessionOptions } from '../session-backend.interface.js';
|
|
10
10
|
import { PtyTerminalBuffer } from './pty-terminal-buffer.js';
|
|
11
|
+
/**
|
|
12
|
+
* Point-in-time PTY/FD health snapshot for observability.
|
|
13
|
+
*
|
|
14
|
+
* Surfaced so an operator (or a future health endpoint) can SEE PTY-FD
|
|
15
|
+
* accumulation early instead of discovering it only when `start-agent` fails
|
|
16
|
+
* with `posix_spawnp failed`. `liveSessions` ≫ `activeSessions` signals dead
|
|
17
|
+
* sessions lingering in the registry; `openFileCount` climbing across the
|
|
18
|
+
* backend lifetime signals the underlying FD leak directly.
|
|
19
|
+
*/
|
|
20
|
+
export interface PtyDiagnostics {
|
|
21
|
+
/** Total entries in the sessionName→PtySession registry. */
|
|
22
|
+
registrySize: number;
|
|
23
|
+
/** Registry entries whose PtySession is still alive (not killed/exited). */
|
|
24
|
+
activeSessions: number;
|
|
25
|
+
/** Registry entries whose PtySession reports killed (reaper candidates). */
|
|
26
|
+
deadSessions: number;
|
|
27
|
+
/**
|
|
28
|
+
* Open file descriptors for THIS backend process via `lsof`, or null when
|
|
29
|
+
* unavailable (lsof missing / non-POSIX). Cheap to read; bounded by timeout.
|
|
30
|
+
*/
|
|
31
|
+
openFileCount: number | null;
|
|
32
|
+
}
|
|
11
33
|
/**
|
|
12
34
|
* PTY Session Backend implementation.
|
|
13
35
|
*
|
|
@@ -62,6 +84,12 @@ export declare class PtySessionBackend implements ISessionBackend {
|
|
|
62
84
|
* Logger for this backend
|
|
63
85
|
*/
|
|
64
86
|
private logger;
|
|
87
|
+
/**
|
|
88
|
+
* Interval handle for the orphan-PTY reaper sweep. Started in the constructor,
|
|
89
|
+
* cleared on destroy()/forceDestroyAll(). The sweep tears down any registry
|
|
90
|
+
* PTY whose owning session is no longer active (defensive FD-leak backstop).
|
|
91
|
+
*/
|
|
92
|
+
private orphanReaperTimer;
|
|
65
93
|
/**
|
|
66
94
|
* Regex patterns for stripping ANSI escape codes from terminal output
|
|
67
95
|
*/
|
|
@@ -70,6 +98,37 @@ export declare class PtySessionBackend implements ISessionBackend {
|
|
|
70
98
|
* Create a new PTY session backend.
|
|
71
99
|
*/
|
|
72
100
|
constructor();
|
|
101
|
+
/**
|
|
102
|
+
* Start the periodic orphan-PTY reaper sweep.
|
|
103
|
+
*
|
|
104
|
+
* The interval cadence comes from PTY_CONSTANTS.ORPHAN_REAPER_INTERVAL_MS
|
|
105
|
+
* (never hardcoded). The timer is `unref()`'d so it never keeps the Node
|
|
106
|
+
* event loop alive on its own. Safe to call repeatedly (no-op if running).
|
|
107
|
+
*/
|
|
108
|
+
private startOrphanReaper;
|
|
109
|
+
/**
|
|
110
|
+
* Stop the periodic orphan-PTY reaper sweep (idempotent).
|
|
111
|
+
*/
|
|
112
|
+
private stopOrphanReaper;
|
|
113
|
+
/**
|
|
114
|
+
* Defensive backstop sweep: tear down any registry PTY whose owning session
|
|
115
|
+
* is no longer active so its `/dev/ptmx` master + `/dev/ttysNNN` slave FDs are
|
|
116
|
+
* released even if some end path forgot to route through teardownSession.
|
|
117
|
+
*
|
|
118
|
+
* A session is considered orphaned when its PtySession reports `isKilled()`
|
|
119
|
+
* (the shell exited / crashed / was killed) yet it is still present in the
|
|
120
|
+
* registry. Such an entry only lingers if normal teardown was skipped — the
|
|
121
|
+
* exact failure mode that accumulated 319 orphaned master FDs over 6 days.
|
|
122
|
+
* Active, living sessions are left untouched.
|
|
123
|
+
*
|
|
124
|
+
* @returns Promise resolving to the number of orphaned PTYs reaped.
|
|
125
|
+
*
|
|
126
|
+
* @example
|
|
127
|
+
* ```typescript
|
|
128
|
+
* const reaped = await backend.reapOrphanPtys();
|
|
129
|
+
* ```
|
|
130
|
+
*/
|
|
131
|
+
reapOrphanPtys(): Promise<number>;
|
|
73
132
|
/**
|
|
74
133
|
* Create a new terminal session.
|
|
75
134
|
*
|
|
@@ -118,6 +177,35 @@ export declare class PtySessionBackend implements ISessionBackend {
|
|
|
118
177
|
* ```
|
|
119
178
|
*/
|
|
120
179
|
killSession(name: string): Promise<void>;
|
|
180
|
+
/**
|
|
181
|
+
* Centralized PTY teardown — the SINGLE path every session-end route funnels
|
|
182
|
+
* through (explicit stop/terminate, idle-exit, dropout, crash, natural exit,
|
|
183
|
+
* and the orphan reaper). Given a session name it:
|
|
184
|
+
* 1. looks the PtySession up in the registry (the always-present reference
|
|
185
|
+
* that prevents the "orphan with no reference" leak),
|
|
186
|
+
* 2. force-kills the child shell AND closes the node-pty master/slave FDs
|
|
187
|
+
* (via PtySession.forceKill → closePty, or closePty directly for an
|
|
188
|
+
* already-dead session),
|
|
189
|
+
* 3. deletes it from every per-session Map (registry, buffers, byte
|
|
190
|
+
* counters, log streams),
|
|
191
|
+
* 4. drops it from the cross-boot orphan PID registry.
|
|
192
|
+
*
|
|
193
|
+
* Idempotent and safe to call twice: a missing session simply cleans up any
|
|
194
|
+
* residual per-session resources and returns. This is the function whose
|
|
195
|
+
* absence caused 319 orphaned /dev/ptmx FDs to accumulate.
|
|
196
|
+
*
|
|
197
|
+
* @param name - Name of the session to tear down.
|
|
198
|
+
* @param options - `force: true` escalates SIGTERM→SIGKILL (default true);
|
|
199
|
+
* `force: false` performs an FD-only close for a session already known dead.
|
|
200
|
+
* @returns Promise that resolves when teardown + cleanup completes.
|
|
201
|
+
*
|
|
202
|
+
* @example
|
|
203
|
+
* ```typescript
|
|
204
|
+
* await backend.teardownSession('agent-leo'); // stop/terminate/idle-exit/crash
|
|
205
|
+
* await backend.teardownSession('agent-leo'); // calling again is a safe no-op
|
|
206
|
+
* ```
|
|
207
|
+
*/
|
|
208
|
+
private teardownSession;
|
|
121
209
|
/**
|
|
122
210
|
* List all active session names.
|
|
123
211
|
*
|
|
@@ -268,6 +356,33 @@ export declare class PtySessionBackend implements ISessionBackend {
|
|
|
268
356
|
* @returns Number of active sessions
|
|
269
357
|
*/
|
|
270
358
|
getSessionCount(): number;
|
|
359
|
+
/**
|
|
360
|
+
* Read the open file descriptor count for THIS backend process.
|
|
361
|
+
*
|
|
362
|
+
* Uses `lsof -p <pid> | wc -l` on POSIX. Bounded by a short timeout and
|
|
363
|
+
* exception-safe — returns null rather than throwing when lsof is missing or
|
|
364
|
+
* the platform is unsupported, so callers can always include it in a
|
|
365
|
+
* diagnostics payload without guarding.
|
|
366
|
+
*
|
|
367
|
+
* @returns The open-fd count, or null when it cannot be measured.
|
|
368
|
+
*/
|
|
369
|
+
private readOpenFileCount;
|
|
370
|
+
/**
|
|
371
|
+
* Produce a PTY/FD health snapshot for observability (registry occupancy +
|
|
372
|
+
* process open-fd count). Intended for the diagnostics/health surface so PTY
|
|
373
|
+
* file-descriptor accumulation is VISIBLE next time instead of only manifesting
|
|
374
|
+
* as a `posix_spawnp failed` spawn error near the open-file ceiling.
|
|
375
|
+
*
|
|
376
|
+
* @returns A {@link PtyDiagnostics} snapshot.
|
|
377
|
+
*
|
|
378
|
+
* @example
|
|
379
|
+
* ```typescript
|
|
380
|
+
* const d = backend.getPtyDiagnostics();
|
|
381
|
+
* logger.info('PTY health', d);
|
|
382
|
+
* // { registrySize: 1, activeSessions: 1, deadSessions: 0, openFileCount: 142 }
|
|
383
|
+
* ```
|
|
384
|
+
*/
|
|
385
|
+
getPtyDiagnostics(): PtyDiagnostics;
|
|
271
386
|
/**
|
|
272
387
|
* Resize a session's terminal.
|
|
273
388
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pty-session-backend.d.ts","sourceRoot":"","sources":["../../../../../../../backend/src/services/session/pty/pty-session-backend.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAMjG,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"pty-session-backend.d.ts","sourceRoot":"","sources":["../../../../../../../backend/src/services/session/pty/pty-session-backend.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,6 +13,7 @@ import { LoggerService } from '../../core/logger.service.js';
|
|
|
13
13
|
import { PTY_CONSTANTS, CREWLY_CONSTANTS } from '../../../constants.js';
|
|
14
14
|
import { PtyActivityTrackerService } from '../../agent/pty-activity-tracker.service.js';
|
|
15
15
|
import { RuntimePidRegistry } from '../runtime-pid-registry.service.js';
|
|
16
|
+
import { execSync } from 'child_process';
|
|
16
17
|
import * as fs from 'fs';
|
|
17
18
|
import * as path from 'path';
|
|
18
19
|
import * as os from 'os';
|
|
@@ -70,6 +71,12 @@ export class PtySessionBackend {
|
|
|
70
71
|
* Logger for this backend
|
|
71
72
|
*/
|
|
72
73
|
logger;
|
|
74
|
+
/**
|
|
75
|
+
* Interval handle for the orphan-PTY reaper sweep. Started in the constructor,
|
|
76
|
+
* cleared on destroy()/forceDestroyAll(). The sweep tears down any registry
|
|
77
|
+
* PTY whose owning session is no longer active (defensive FD-leak backstop).
|
|
78
|
+
*/
|
|
79
|
+
orphanReaperTimer = null;
|
|
73
80
|
/**
|
|
74
81
|
* Regex patterns for stripping ANSI escape codes from terminal output
|
|
75
82
|
*/
|
|
@@ -93,8 +100,77 @@ export class PtySessionBackend {
|
|
|
93
100
|
catch {
|
|
94
101
|
// Non-fatal: logging will be skipped if dir can't be created
|
|
95
102
|
}
|
|
103
|
+
this.startOrphanReaper();
|
|
96
104
|
this.logger.info('PTY session backend initialized');
|
|
97
105
|
}
|
|
106
|
+
/**
|
|
107
|
+
* Start the periodic orphan-PTY reaper sweep.
|
|
108
|
+
*
|
|
109
|
+
* The interval cadence comes from PTY_CONSTANTS.ORPHAN_REAPER_INTERVAL_MS
|
|
110
|
+
* (never hardcoded). The timer is `unref()`'d so it never keeps the Node
|
|
111
|
+
* event loop alive on its own. Safe to call repeatedly (no-op if running).
|
|
112
|
+
*/
|
|
113
|
+
startOrphanReaper() {
|
|
114
|
+
if (this.orphanReaperTimer) {
|
|
115
|
+
return;
|
|
116
|
+
}
|
|
117
|
+
this.orphanReaperTimer = setInterval(() => {
|
|
118
|
+
void this.reapOrphanPtys();
|
|
119
|
+
}, PTY_CONSTANTS.ORPHAN_REAPER_INTERVAL_MS);
|
|
120
|
+
// Don't let the reaper interval hold the process open during shutdown.
|
|
121
|
+
this.orphanReaperTimer.unref?.();
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Stop the periodic orphan-PTY reaper sweep (idempotent).
|
|
125
|
+
*/
|
|
126
|
+
stopOrphanReaper() {
|
|
127
|
+
if (this.orphanReaperTimer) {
|
|
128
|
+
clearInterval(this.orphanReaperTimer);
|
|
129
|
+
this.orphanReaperTimer = null;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Defensive backstop sweep: tear down any registry PTY whose owning session
|
|
134
|
+
* is no longer active so its `/dev/ptmx` master + `/dev/ttysNNN` slave FDs are
|
|
135
|
+
* released even if some end path forgot to route through teardownSession.
|
|
136
|
+
*
|
|
137
|
+
* A session is considered orphaned when its PtySession reports `isKilled()`
|
|
138
|
+
* (the shell exited / crashed / was killed) yet it is still present in the
|
|
139
|
+
* registry. Such an entry only lingers if normal teardown was skipped — the
|
|
140
|
+
* exact failure mode that accumulated 319 orphaned master FDs over 6 days.
|
|
141
|
+
* Active, living sessions are left untouched.
|
|
142
|
+
*
|
|
143
|
+
* @returns Promise resolving to the number of orphaned PTYs reaped.
|
|
144
|
+
*
|
|
145
|
+
* @example
|
|
146
|
+
* ```typescript
|
|
147
|
+
* const reaped = await backend.reapOrphanPtys();
|
|
148
|
+
* ```
|
|
149
|
+
*/
|
|
150
|
+
async reapOrphanPtys() {
|
|
151
|
+
// Snapshot names first — teardownSession mutates the registry mid-iteration.
|
|
152
|
+
const names = Array.from(this.sessions.keys());
|
|
153
|
+
const orphanNames = names.filter((name) => {
|
|
154
|
+
const session = this.sessions.get(name);
|
|
155
|
+
return session !== undefined && session.isKilled();
|
|
156
|
+
});
|
|
157
|
+
if (orphanNames.length === 0) {
|
|
158
|
+
return 0;
|
|
159
|
+
}
|
|
160
|
+
this.logger.warn('Orphan-PTY reaper found dead sessions still in registry', {
|
|
161
|
+
orphanCount: orphanNames.length,
|
|
162
|
+
orphanNames,
|
|
163
|
+
});
|
|
164
|
+
for (const name of orphanNames) {
|
|
165
|
+
// force:false — the shell is already dead, we only release the FDs.
|
|
166
|
+
await this.teardownSession(name, { force: false });
|
|
167
|
+
}
|
|
168
|
+
this.logger.warn('Orphan-PTY reaper finished', {
|
|
169
|
+
reaped: orphanNames.length,
|
|
170
|
+
remainingSessions: this.sessions.size,
|
|
171
|
+
});
|
|
172
|
+
return orphanNames.length;
|
|
173
|
+
}
|
|
98
174
|
/**
|
|
99
175
|
* Create a new terminal session.
|
|
100
176
|
*
|
|
@@ -193,11 +269,51 @@ export class PtySessionBackend {
|
|
|
193
269
|
* ```
|
|
194
270
|
*/
|
|
195
271
|
async killSession(name) {
|
|
272
|
+
await this.teardownSession(name, { force: true });
|
|
273
|
+
}
|
|
274
|
+
/**
|
|
275
|
+
* Centralized PTY teardown — the SINGLE path every session-end route funnels
|
|
276
|
+
* through (explicit stop/terminate, idle-exit, dropout, crash, natural exit,
|
|
277
|
+
* and the orphan reaper). Given a session name it:
|
|
278
|
+
* 1. looks the PtySession up in the registry (the always-present reference
|
|
279
|
+
* that prevents the "orphan with no reference" leak),
|
|
280
|
+
* 2. force-kills the child shell AND closes the node-pty master/slave FDs
|
|
281
|
+
* (via PtySession.forceKill → closePty, or closePty directly for an
|
|
282
|
+
* already-dead session),
|
|
283
|
+
* 3. deletes it from every per-session Map (registry, buffers, byte
|
|
284
|
+
* counters, log streams),
|
|
285
|
+
* 4. drops it from the cross-boot orphan PID registry.
|
|
286
|
+
*
|
|
287
|
+
* Idempotent and safe to call twice: a missing session simply cleans up any
|
|
288
|
+
* residual per-session resources and returns. This is the function whose
|
|
289
|
+
* absence caused 319 orphaned /dev/ptmx FDs to accumulate.
|
|
290
|
+
*
|
|
291
|
+
* @param name - Name of the session to tear down.
|
|
292
|
+
* @param options - `force: true` escalates SIGTERM→SIGKILL (default true);
|
|
293
|
+
* `force: false` performs an FD-only close for a session already known dead.
|
|
294
|
+
* @returns Promise that resolves when teardown + cleanup completes.
|
|
295
|
+
*
|
|
296
|
+
* @example
|
|
297
|
+
* ```typescript
|
|
298
|
+
* await backend.teardownSession('agent-leo'); // stop/terminate/idle-exit/crash
|
|
299
|
+
* await backend.teardownSession('agent-leo'); // calling again is a safe no-op
|
|
300
|
+
* ```
|
|
301
|
+
*/
|
|
302
|
+
async teardownSession(name, options = {}) {
|
|
303
|
+
const force = options.force ?? true;
|
|
196
304
|
const session = this.sessions.get(name);
|
|
197
305
|
const terminalBuffer = this.terminalBuffers.get(name);
|
|
198
306
|
if (session) {
|
|
199
|
-
|
|
200
|
-
|
|
307
|
+
if (force && !session.isKilled()) {
|
|
308
|
+
this.logger.info('Tearing down session with forceKill (SIGTERM → SIGKILL)', { name });
|
|
309
|
+
await session.forceKill();
|
|
310
|
+
}
|
|
311
|
+
else {
|
|
312
|
+
// Session already dead (exit/crash) or non-force reaper sweep: we
|
|
313
|
+
// only need to release the lingering PTY master/slave FDs.
|
|
314
|
+
this.logger.info('Tearing down session — releasing PTY file descriptors', { name });
|
|
315
|
+
session.closePty();
|
|
316
|
+
}
|
|
201
317
|
this.sessions.delete(name);
|
|
202
318
|
}
|
|
203
319
|
if (terminalBuffer) {
|
|
@@ -376,6 +492,8 @@ export class PtySessionBackend {
|
|
|
376
492
|
this.logger.info('Destroying PTY session backend', {
|
|
377
493
|
sessionCount: this.sessions.size,
|
|
378
494
|
});
|
|
495
|
+
// Stop the reaper first so it can't race with the teardown loop below.
|
|
496
|
+
this.stopOrphanReaper();
|
|
379
497
|
// Kill all sessions
|
|
380
498
|
const sessionNames = Array.from(this.sessions.keys());
|
|
381
499
|
for (const name of sessionNames) {
|
|
@@ -405,6 +523,8 @@ export class PtySessionBackend {
|
|
|
405
523
|
return;
|
|
406
524
|
}
|
|
407
525
|
this.logger.info('Force-destroying all PTY sessions', { sessionCount });
|
|
526
|
+
// Stop the reaper so it can't race with the clear() below.
|
|
527
|
+
this.stopOrphanReaper();
|
|
408
528
|
// Step 1: Collect all PIDs before sending any signals
|
|
409
529
|
const pids = this.getAllSessionPids();
|
|
410
530
|
this.logger.info('Collected PIDs for force-kill', { pids });
|
|
@@ -441,7 +561,14 @@ export class PtySessionBackend {
|
|
|
441
561
|
// ESRCH = process group already gone
|
|
442
562
|
}
|
|
443
563
|
}
|
|
444
|
-
// Step 5:
|
|
564
|
+
// Step 5: Release every session's PTY master/slave FDs before dropping the
|
|
565
|
+
// references. SIGKILL above bypassed node-pty's own exit handling, so the
|
|
566
|
+
// master fd sockets would otherwise leak; closePty() is idempotent so the
|
|
567
|
+
// sessions whose SIGTERM in Step 2 already closed them are unaffected.
|
|
568
|
+
for (const session of this.sessions.values()) {
|
|
569
|
+
session.closePty();
|
|
570
|
+
}
|
|
571
|
+
// Clean up internal maps
|
|
445
572
|
for (const terminalBuffer of this.terminalBuffers.values()) {
|
|
446
573
|
terminalBuffer.dispose();
|
|
447
574
|
}
|
|
@@ -481,6 +608,65 @@ export class PtySessionBackend {
|
|
|
481
608
|
getSessionCount() {
|
|
482
609
|
return this.sessions.size;
|
|
483
610
|
}
|
|
611
|
+
/**
|
|
612
|
+
* Read the open file descriptor count for THIS backend process.
|
|
613
|
+
*
|
|
614
|
+
* Uses `lsof -p <pid> | wc -l` on POSIX. Bounded by a short timeout and
|
|
615
|
+
* exception-safe — returns null rather than throwing when lsof is missing or
|
|
616
|
+
* the platform is unsupported, so callers can always include it in a
|
|
617
|
+
* diagnostics payload without guarding.
|
|
618
|
+
*
|
|
619
|
+
* @returns The open-fd count, or null when it cannot be measured.
|
|
620
|
+
*/
|
|
621
|
+
readOpenFileCount() {
|
|
622
|
+
if (process.platform !== 'linux' && process.platform !== 'darwin') {
|
|
623
|
+
return null;
|
|
624
|
+
}
|
|
625
|
+
try {
|
|
626
|
+
const out = execSync(`lsof -p ${process.pid} 2>/dev/null | wc -l`, {
|
|
627
|
+
encoding: 'utf8',
|
|
628
|
+
timeout: 1500,
|
|
629
|
+
});
|
|
630
|
+
const n = parseInt(out.trim(), 10);
|
|
631
|
+
return Number.isFinite(n) ? n : null;
|
|
632
|
+
}
|
|
633
|
+
catch {
|
|
634
|
+
return null;
|
|
635
|
+
}
|
|
636
|
+
}
|
|
637
|
+
/**
|
|
638
|
+
* Produce a PTY/FD health snapshot for observability (registry occupancy +
|
|
639
|
+
* process open-fd count). Intended for the diagnostics/health surface so PTY
|
|
640
|
+
* file-descriptor accumulation is VISIBLE next time instead of only manifesting
|
|
641
|
+
* as a `posix_spawnp failed` spawn error near the open-file ceiling.
|
|
642
|
+
*
|
|
643
|
+
* @returns A {@link PtyDiagnostics} snapshot.
|
|
644
|
+
*
|
|
645
|
+
* @example
|
|
646
|
+
* ```typescript
|
|
647
|
+
* const d = backend.getPtyDiagnostics();
|
|
648
|
+
* logger.info('PTY health', d);
|
|
649
|
+
* // { registrySize: 1, activeSessions: 1, deadSessions: 0, openFileCount: 142 }
|
|
650
|
+
* ```
|
|
651
|
+
*/
|
|
652
|
+
getPtyDiagnostics() {
|
|
653
|
+
let activeSessions = 0;
|
|
654
|
+
let deadSessions = 0;
|
|
655
|
+
for (const session of this.sessions.values()) {
|
|
656
|
+
if (session.isKilled()) {
|
|
657
|
+
deadSessions++;
|
|
658
|
+
}
|
|
659
|
+
else {
|
|
660
|
+
activeSessions++;
|
|
661
|
+
}
|
|
662
|
+
}
|
|
663
|
+
return {
|
|
664
|
+
registrySize: this.sessions.size,
|
|
665
|
+
activeSessions,
|
|
666
|
+
deadSessions,
|
|
667
|
+
openFileCount: this.readOpenFileCount(),
|
|
668
|
+
};
|
|
669
|
+
}
|
|
484
670
|
/**
|
|
485
671
|
* Resize a session's terminal.
|
|
486
672
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pty-session-backend.js","sourceRoot":"","sources":["../../../../../../../backend/src/services/session/pty/pty-session-backend.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EACN,qBAAqB,EACrB,qBAAqB,GACrB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAmB,MAAM,8BAA8B,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACxE,OAAO,EAAE,yBAAyB,EAAE,MAAM,6CAA6C,CAAC;AACxF,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAEzB;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,OAAO,iBAAiB;IAC7B;;OAEG;IACK,QAAQ,GAA4B,IAAI,GAAG,EAAE,CAAC;IAEtD;;OAEG;IACK,eAAe,GAAmC,IAAI,GAAG,EAAE,CAAC;IAEpE;;OAEG;IACK,qBAAqB,GAAwB,IAAI,GAAG,EAAE,CAAC;IAE/D;;OAEG;IACK,iBAAiB,GAAgC,IAAI,GAAG,EAAE,CAAC;IAEnE;;OAEG;IACK,cAAc,CAAS;IAE/B;;OAEG;IACK,MAAM,CAAkB;IAEhC;;OAEG;IACK,MAAM,CAAU,mBAAmB,GAAG;QAC7C,wBAAwB,EAAG,uCAAuC;QAClE,qBAAqB,EAAM,8BAA8B;QACzD,sBAAsB,EAAK,yBAAyB;QACpD,kBAAkB,EAAU,0BAA0B;QACtD,sBAAsB,EAAK,+BAA+B;KAC1D,CAAC;IAEF;;OAEG;IACH;QACC,IAAI,CAAC,MAAM,GAAG,aAAa,CAAC,WAAW,EAAE,CAAC,qBAAqB,CAAC,mBAAmB,CAAC,CAAC;QACrF,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,IAAI,CAC9B,EAAE,CAAC,OAAO,EAAE,EACZ,gBAAgB,CAAC,KAAK,CAAC,WAAW,EAClC,gBAAgB,CAAC,KAAK,CAAC,QAAQ,EAC/B,gBAAgB,CAAC,KAAK,CAAC,gBAAgB,CACvC,CAAC;QACF,uCAAuC;QACvC,IAAI,CAAC;YACJ,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACxD,CAAC;QAAC,MAAM,CAAC;YACR,6DAA6D;QAC9D,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;IACrD,CAAC;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACH,KAAK,CAAC,aAAa,CAAC,IAAY,EAAE,OAAuB;QACxD,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mDAAmD,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;YAChF,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,EAAE;YACxC,IAAI;YACJ,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,GAAG,EAAE,OAAO,CAAC,GAAG;SAChB,CAAC,CAAC;QAEH,yBAAyB;QACzB,MAAM,OAAO,GAAG,IAAI,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAE3D,0DAA0D;QAC1D,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,qBAAqB,CAAC;QACnD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,qBAAqB,CAAC;QACnD,MAAM,cAAc,GAAG,IAAI,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAEzD,+EAA+E;QAC/E,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAEhC,iFAAiF;QACjF,6EAA6E;QAC7E,kDAAkD;QAClD,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;YACvB,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC3B,yBAAyB,CAAC,WAAW,EAAE,CAAC,sBAAsB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC3E,2DAA2D;YAC3D,MAAM,OAAO,GAAG,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1D,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;YAC5D,4DAA4D;YAC5D,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,2BAA2B;QAC3B,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;YACvB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;YAC7D,gFAAgF;QACjF,CAAC,CAAC,CAAC;QAEH,oCAAoC;QACpC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACjC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;QAE/C,wEAAwE;QACxE,qEAAqE;QACrE,kBAAkB,CAAC,WAAW,EAAE,CAAC,MAAM,CACtC,OAAO,CAAC,GAAG,EACX,IAAI,EACJ,OAAO,CAAC,OAAO,EACf,OAAO,CAAC,IAAI,IAAI,EAAE,CAClB,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,qBAAqB,EAAE;YACvC,IAAI;YACJ,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,IAAI;YACJ,IAAI;SACJ,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC;IAChB,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,UAAU,CAAC,IAAY;QACtB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,WAAW,CAAC,IAAY;QAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACxC,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAEtD,IAAI,OAAO,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oDAAoD,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;YACjF,MAAM,OAAO,CAAC,SAAS,EAAE,CAAC;YAC1B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC;QAED,IAAI,cAAc,EAAE,CAAC;YACpB,cAAc,CAAC,OAAO,EAAE,CAAC;YACzB,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACnC,CAAC;QAED,uEAAuE;QACvE,kBAAkB,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAE9C,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,8BAA8B,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED;;;;;;;;;;OAUG;IACH,YAAY;QACX,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IACzC,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,aAAa,CAAC,IAAY;QACzB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAED;;;;;;OAMG;IACH,wBAAwB,CAAC,IAAY;QACpC,OAAO,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClD,CAAC;IAED;;;;;OAKG;IACH,qBAAqB,CAAC,IAAY;QACjC,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACzC,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,aAAa,CAAC,IAAY,EAAE,KAAK,GAAG,GAAG;QACtC,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACtD,IAAI,CAAC,cAAc,EAAE,CAAC;YACrB,OAAO,EAAE,CAAC;QACX,CAAC;QAED,OAAO,cAAc,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC;IAED;;;;;;;;;;;OAWG;IACH,iBAAiB,CAAC,IAAY;QAC7B,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACtD,IAAI,CAAC,cAAc,EAAE,CAAC;YACrB,OAAO,EAAE,CAAC;QACX,CAAC;QAED,OAAO,cAAc,CAAC,aAAa,EAAE,CAAC;IACvC,CAAC;IAED;;;;;;;;;;;OAWG;IACH,aAAa,CAAC,IAAY;QACzB,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACtD,IAAI,CAAC,cAAc,EAAE,CAAC;YACrB,OAAO,EAAE,CAAC;QACX,CAAC;QAED,OAAO,cAAc,CAAC,kBAAkB,EAAE,CAAC;IAC5C,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,kBAAkB,CAAC,IAAY;QACpC,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACtD,IAAI,CAAC,cAAc,EAAE,CAAC;YACrB,OAAO,EAAE,CAAC;QACX,CAAC;QAED,OAAO,cAAc,CAAC,cAAc,EAAE,CAAC;IACxC,CAAC;IAED;;;;;;;;;;OAUG;IACH,iBAAiB;QAChB,MAAM,IAAI,GAAa,EAAE,CAAC;QAC1B,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;YAC9C,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;gBACzB,IAAI,CAAC;oBACJ,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBACxB,CAAC;gBAAC,MAAM,CAAC;oBACR,sDAAsD;gBACvD,CAAC;YACF,CAAC;QACF,CAAC;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,OAAO;QACZ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gCAAgC,EAAE;YAClD,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI;SAChC,CAAC,CAAC;QAEH,oBAAoB;QACpB,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;QACtD,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;YACjC,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;IACnD,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,KAAK,CAAC,eAAe;QACpB,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QACxC,IAAI,YAAY,KAAK,CAAC,EAAE,CAAC;YACxB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;YAClD,OAAO;QACR,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mCAAmC,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC;QAExE,sDAAsD;QACtD,MAAM,IAAI,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACtC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,+BAA+B,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;QAE5D,oDAAoD;QACpD,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;YAC9C,IAAI,CAAC;gBACJ,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;oBACzB,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACzB,CAAC;YACF,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACd,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,kCAAkC,EAAE;oBACrD,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;iBACvD,CAAC,CAAC;YACJ,CAAC;QACF,CAAC;QAED,gDAAgD;QAChD,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,aAAa,CAAC,8BAA8B,CAAC,CAAC,CAAC;QAExG,iDAAiD;QACjD,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACxB,IAAI,CAAC;gBACJ,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;gBAC7B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,yBAAyB,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;YACvD,CAAC;YAAC,MAAM,CAAC;gBACR,+BAA+B;YAChC,CAAC;YAED,IAAI,CAAC;gBACJ,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;gBAC9B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,+BAA+B,EAAE,EAAE,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;YACpE,CAAC;YAAC,MAAM,CAAC;gBACR,qCAAqC;YACtC,CAAC;QACF,CAAC;QAED,iCAAiC;QACjC,KAAK,MAAM,cAAc,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC;YAC5D,cAAc,CAAC,OAAO,EAAE,CAAC;QAC1B,CAAC;QACD,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC;QACjE,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE,CAAC;YACnC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;QAClC,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;QAC7B,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,CAAC;QAEnC,kEAAkE;QAClE,+DAA+D;QAC/D,kBAAkB,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,CAAC;QAEzC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;IACtD,CAAC;IAED;;;;;;;;OAQG;IACH,mBAAmB,CAAC,IAAY;QAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,OAAO,EAAE,CAAC;YACd,OAAO,KAAK,CAAC;QACd,CAAC;QACD,OAAO,OAAO,CAAC,mBAAmB,EAAE,CAAC;IACtC,CAAC;IAED;;;;OAIG;IACH,eAAe;QACd,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;IAC3B,CAAC;IAED;;;;;;;OAOG;IACH,aAAa,CAAC,IAAY,EAAE,IAAY,EAAE,IAAY;QACrD,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACxC,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAEtD,IAAI,CAAC,OAAO,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,YAAY,IAAI,kBAAkB,CAAC,CAAC;QACrD,CAAC;QAED,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC3B,IAAI,cAAc,EAAE,CAAC;YACpB,cAAc,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACnC,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,iBAAiB,CAAC,IAAY;QAC7B,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACtD,IAAI,CAAC,cAAc,EAAE,CAAC;YACrB,OAAO,EAAE,CAAC;QACX,CAAC;QAED,OAAO,cAAc,CAAC,kBAAkB,EAAE,CAAC;IAC5C,CAAC;IAED;;;;;OAKG;IACH,yBAAyB,CAAC,IAAY;QACrC,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;IAED;;;;;OAKG;IACH,iBAAiB,CAAC,WAAmB;QACpC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,GAAG,WAAW,MAAM,CAAC,CAAC;IAC7D,CAAC;IAED;;;;;OAKG;IACK,oBAAoB,CAAC,WAAmB;QAC/C,IAAI,CAAC;YACJ,6CAA6C;YAC7C,IAAI,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAC;YAExC,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;YACpD,MAAM,UAAU,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YAE1C,MAAM,MAAM,GAAG,EAAE,CAAC,iBAAiB,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;YAC7D,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;gBAC1B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,0BAA0B,EAAE;oBAC5C,WAAW;oBACX,KAAK,EAAE,GAAG,CAAC,OAAO;iBAClB,CAAC,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,iDAAiD;YACjD,IAAI,UAAU,EAAE,CAAC;gBAChB,MAAM,CAAC,KAAK,CAAC,8BAA8B,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;YAChF,CAAC;iBAAM,CAAC;gBACP,MAAM,CAAC,KAAK,CAAC,0BAA0B,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;YAC5E,CAAC;YAED,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QACjD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mCAAmC,EAAE;gBACrD,WAAW;gBACX,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;aACvD,CAAC,CAAC;QACJ,CAAC;IACF,CAAC;IAED;;;;;OAKG;IACK,iBAAiB,CAAC,WAAmB,EAAE,IAAY;QAC1D,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACvD,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,SAAS;YAAE,OAAO;QAExC,kDAAkD;QAClD,IAAI,QAAQ,GAAG,IAAI,CAAC;QACpB,KAAK,MAAM,OAAO,IAAI,iBAAiB,CAAC,mBAAmB,EAAE,CAAC;YAC7D,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAC1C,CAAC;QAED,gDAAgD;QAChD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACxB,CAAC;IACF,CAAC;IAED;;;;OAIG;IACK,qBAAqB,CAAC,WAAmB;QAChD,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACvD,IAAI,MAAM,EAAE,CAAC;YACZ,IAAI,CAAC;gBACJ,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;oBACvB,MAAM,CAAC,GAAG,EAAE,CAAC;gBACd,CAAC;YACF,CAAC;YAAC,MAAM,CAAC;gBACR,sBAAsB;YACvB,CAAC;YACD,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAC5C,CAAC;IACF,CAAC"}
|
|
1
|
+
{"version":3,"file":"pty-session-backend.js","sourceRoot":"","sources":["../../../../../../../backend/src/services/session/pty/pty-session-backend.ts"],"names":[],"mappings":"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"}
|