@grackle-ai/core 0.92.3 → 0.94.0
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/dist/concurrency.d.ts +34 -0
- package/dist/concurrency.d.ts.map +1 -0
- package/dist/concurrency.js +41 -0
- package/dist/concurrency.js.map +1 -0
- package/dist/dispatch-phase.d.ts +44 -0
- package/dist/dispatch-phase.d.ts.map +1 -0
- package/dist/dispatch-phase.js +84 -0
- package/dist/dispatch-phase.js.map +1 -0
- package/dist/environment-handlers.d.ts.map +1 -1
- package/dist/environment-handlers.js +17 -5
- package/dist/environment-handlers.js.map +1 -1
- package/dist/grpc-proto-converters.d.ts +6 -2
- package/dist/grpc-proto-converters.d.ts.map +1 -1
- package/dist/grpc-proto-converters.js +11 -3
- package/dist/grpc-proto-converters.js.map +1 -1
- package/dist/index.d.ts +10 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -6
- package/dist/index.js.map +1 -1
- package/dist/lifecycle.d.ts +10 -9
- package/dist/lifecycle.d.ts.map +1 -1
- package/dist/lifecycle.js +18 -21
- package/dist/lifecycle.js.map +1 -1
- package/dist/root-task-boot.d.ts +12 -3
- package/dist/root-task-boot.d.ts.map +1 -1
- package/dist/root-task-boot.js +80 -45
- package/dist/root-task-boot.js.map +1 -1
- package/dist/signals/escalation-auto.d.ts +9 -8
- package/dist/signals/escalation-auto.d.ts.map +1 -1
- package/dist/signals/escalation-auto.js +21 -25
- package/dist/signals/escalation-auto.js.map +1 -1
- package/dist/signals/orphan-reparent.d.ts +9 -8
- package/dist/signals/orphan-reparent.d.ts.map +1 -1
- package/dist/signals/orphan-reparent.js +21 -25
- package/dist/signals/orphan-reparent.js.map +1 -1
- package/dist/signals/sigchld.d.ts +9 -4
- package/dist/signals/sigchld.d.ts.map +1 -1
- package/dist/signals/sigchld.js +23 -26
- package/dist/signals/sigchld.js.map +1 -1
- package/dist/stream-registry.d.ts +14 -2
- package/dist/stream-registry.d.ts.map +1 -1
- package/dist/stream-registry.js +22 -0
- package/dist/stream-registry.js.map +1 -1
- package/dist/subscriber-types.d.ts +25 -0
- package/dist/subscriber-types.d.ts.map +1 -0
- package/dist/subscriber-types.js +11 -0
- package/dist/subscriber-types.js.map +1 -0
- package/dist/task-handlers.d.ts.map +1 -1
- package/dist/task-handlers.js +26 -1
- package/dist/task-handlers.js.map +1 -1
- package/dist/test-utils/mock-database.d.ts +11 -0
- package/dist/test-utils/mock-database.d.ts.map +1 -1
- package/dist/test-utils/mock-database.js +11 -0
- package/dist/test-utils/mock-database.js.map +1 -1
- package/dist/workspace-handlers.d.ts +4 -0
- package/dist/workspace-handlers.d.ts.map +1 -1
- package/dist/workspace-handlers.js +51 -2
- package/dist/workspace-handlers.js.map +1 -1
- package/package.json +7 -7
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Concurrency limit resolution for agent dispatch.
|
|
3
|
+
*
|
|
4
|
+
* Pure functions with dependency injection for testability.
|
|
5
|
+
* Determines whether an environment has capacity for another agent session
|
|
6
|
+
* based on per-environment overrides, global settings, and defaults.
|
|
7
|
+
*/
|
|
8
|
+
/** Dependencies for concurrency checks, injected for testability. */
|
|
9
|
+
export interface ConcurrencyDeps {
|
|
10
|
+
/** Count active (pending/running/idle) sessions for an environment. */
|
|
11
|
+
countActiveForEnvironment: (environmentId: string) => number;
|
|
12
|
+
/** Look up an environment's concurrency override. */
|
|
13
|
+
getEnvironment: (id: string) => {
|
|
14
|
+
maxConcurrentSessions: number;
|
|
15
|
+
} | undefined;
|
|
16
|
+
/** Read a server setting by key. */
|
|
17
|
+
getSetting: (key: string) => string | undefined;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Resolve the effective concurrent session limit for an environment.
|
|
21
|
+
*
|
|
22
|
+
* Cascade:
|
|
23
|
+
* 1. Environment's `maxConcurrentSessions` column (non-zero wins)
|
|
24
|
+
* 2. Global `max_concurrent_sessions` setting
|
|
25
|
+
* 3. {@link DEFAULT_MAX_CONCURRENT_SESSIONS} constant
|
|
26
|
+
*/
|
|
27
|
+
export declare function getEffectiveLimit(environmentId: string, deps: ConcurrencyDeps): number;
|
|
28
|
+
/**
|
|
29
|
+
* Check whether an environment has capacity for another agent session.
|
|
30
|
+
*
|
|
31
|
+
* @returns `true` if the active session count is below the effective limit.
|
|
32
|
+
*/
|
|
33
|
+
export declare function hasCapacity(environmentId: string, deps: ConcurrencyDeps): boolean;
|
|
34
|
+
//# sourceMappingURL=concurrency.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"concurrency.d.ts","sourceRoot":"","sources":["../src/concurrency.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,qEAAqE;AACrE,MAAM,WAAW,eAAe;IAC9B,uEAAuE;IACvE,yBAAyB,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,MAAM,CAAC;IAC7D,qDAAqD;IACrD,cAAc,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK;QAAE,qBAAqB,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC;IAC9E,oCAAoC;IACpC,UAAU,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;CACjD;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,GAAG,MAAM,CAetF;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,GAAG,OAAO,CAIjF"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Concurrency limit resolution for agent dispatch.
|
|
3
|
+
*
|
|
4
|
+
* Pure functions with dependency injection for testability.
|
|
5
|
+
* Determines whether an environment has capacity for another agent session
|
|
6
|
+
* based on per-environment overrides, global settings, and defaults.
|
|
7
|
+
*/
|
|
8
|
+
import { DEFAULT_MAX_CONCURRENT_SESSIONS, SETTINGS_KEY_MAX_CONCURRENT_SESSIONS } from "@grackle-ai/common";
|
|
9
|
+
/**
|
|
10
|
+
* Resolve the effective concurrent session limit for an environment.
|
|
11
|
+
*
|
|
12
|
+
* Cascade:
|
|
13
|
+
* 1. Environment's `maxConcurrentSessions` column (non-zero wins)
|
|
14
|
+
* 2. Global `max_concurrent_sessions` setting
|
|
15
|
+
* 3. {@link DEFAULT_MAX_CONCURRENT_SESSIONS} constant
|
|
16
|
+
*/
|
|
17
|
+
export function getEffectiveLimit(environmentId, deps) {
|
|
18
|
+
const env = deps.getEnvironment(environmentId);
|
|
19
|
+
if (env && env.maxConcurrentSessions > 0) {
|
|
20
|
+
return env.maxConcurrentSessions;
|
|
21
|
+
}
|
|
22
|
+
const globalSetting = deps.getSetting(SETTINGS_KEY_MAX_CONCURRENT_SESSIONS);
|
|
23
|
+
if (globalSetting !== undefined) {
|
|
24
|
+
const parsed = parseInt(globalSetting, 10);
|
|
25
|
+
if (Number.isFinite(parsed) && parsed > 0) {
|
|
26
|
+
return parsed;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
return DEFAULT_MAX_CONCURRENT_SESSIONS;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Check whether an environment has capacity for another agent session.
|
|
33
|
+
*
|
|
34
|
+
* @returns `true` if the active session count is below the effective limit.
|
|
35
|
+
*/
|
|
36
|
+
export function hasCapacity(environmentId, deps) {
|
|
37
|
+
const limit = getEffectiveLimit(environmentId, deps);
|
|
38
|
+
const active = deps.countActiveForEnvironment(environmentId);
|
|
39
|
+
return active < limit;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=concurrency.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"concurrency.js","sourceRoot":"","sources":["../src/concurrency.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,+BAA+B,EAAE,oCAAoC,EAAE,MAAM,oBAAoB,CAAC;AAY3G;;;;;;;GAOG;AACH,MAAM,UAAU,iBAAiB,CAAC,aAAqB,EAAE,IAAqB;IAC5E,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;IAC/C,IAAI,GAAG,IAAI,GAAG,CAAC,qBAAqB,GAAG,CAAC,EAAE,CAAC;QACzC,OAAO,GAAG,CAAC,qBAAqB,CAAC;IACnC,CAAC;IAED,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,oCAAoC,CAAC,CAAC;IAC5E,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;QAChC,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;QAC3C,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1C,OAAO,MAAM,CAAC;QAChB,CAAC;IACH,CAAC;IAED,OAAO,+BAA+B,CAAC;AACzC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,aAAqB,EAAE,IAAqB;IACtE,MAAM,KAAK,GAAG,iBAAiB,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;IACrD,MAAM,MAAM,GAAG,IAAI,CAAC,yBAAyB,CAAC,aAAa,CAAC,CAAC;IAC7D,OAAO,MAAM,GAAG,KAAK,CAAC;AACxB,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dispatch reconciliation phase — drains the dispatch queue on each tick.
|
|
3
|
+
*
|
|
4
|
+
* Picks up tasks that were enqueued (because the target environment was at
|
|
5
|
+
* concurrency capacity) and spawns them when capacity frees up. Follows the
|
|
6
|
+
* same dependency-injection pattern as cron-phase.ts for testability.
|
|
7
|
+
*/
|
|
8
|
+
import type { DispatchQueueRow, TaskRow } from "@grackle-ai/database";
|
|
9
|
+
import type { ReconciliationPhase } from "./reconciliation-manager.js";
|
|
10
|
+
/** Dependencies injected into the dispatch phase for testability. */
|
|
11
|
+
export interface DispatchPhaseDeps {
|
|
12
|
+
/** List all pending dispatch queue entries in FIFO order. */
|
|
13
|
+
listPendingEntries: () => DispatchQueueRow[];
|
|
14
|
+
/** Remove an entry from the dispatch queue by taskId. */
|
|
15
|
+
dequeueEntry: (taskId: string) => void;
|
|
16
|
+
/** Look up a task by ID. */
|
|
17
|
+
getTask: (taskId: string) => TaskRow | undefined;
|
|
18
|
+
/** Check whether an environment has capacity for another session. */
|
|
19
|
+
hasCapacity: (environmentId: string) => boolean;
|
|
20
|
+
/** Check whether an environment exists in the registry. */
|
|
21
|
+
environmentExists: (environmentId: string) => boolean;
|
|
22
|
+
/** Check if a task is eligible to start (deps met, no active session). */
|
|
23
|
+
isTaskEligible: (taskId: string) => boolean;
|
|
24
|
+
/** Start a task session. Returns error string on failure, undefined on success. */
|
|
25
|
+
startTaskSession: (task: TaskRow, options?: {
|
|
26
|
+
personaId?: string;
|
|
27
|
+
environmentId?: string;
|
|
28
|
+
notes?: string;
|
|
29
|
+
}) => Promise<string | undefined>;
|
|
30
|
+
/** Check if an environment is connected. */
|
|
31
|
+
isEnvironmentConnected: (environmentId: string) => boolean;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Create a ReconciliationPhase that drains the dispatch queue.
|
|
35
|
+
*
|
|
36
|
+
* On each tick:
|
|
37
|
+
* 1. Lists pending entries in FIFO order
|
|
38
|
+
* 2. For each: dequeues orphans (deleted task/environment), skips if disconnected or at capacity
|
|
39
|
+
* 3. Verifies task eligibility (deps met, not already working) before spawning
|
|
40
|
+
* 4. Calls startTaskSession; on success dequeues, on failure keeps queued for retry
|
|
41
|
+
* 5. Each entry is wrapped in try/catch so one bad task doesn't block others
|
|
42
|
+
*/
|
|
43
|
+
export declare function createDispatchPhase(deps: DispatchPhaseDeps): ReconciliationPhase;
|
|
44
|
+
//# sourceMappingURL=dispatch-phase.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dispatch-phase.d.ts","sourceRoot":"","sources":["../src/dispatch-phase.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACtE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAEvE,qEAAqE;AACrE,MAAM,WAAW,iBAAiB;IAChC,6DAA6D;IAC7D,kBAAkB,EAAE,MAAM,gBAAgB,EAAE,CAAC;IAC7C,yDAAyD;IACzD,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,4BAA4B;IAC5B,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,GAAG,SAAS,CAAC;IACjD,qEAAqE;IACrE,WAAW,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,OAAO,CAAC;IAChD,2DAA2D;IAC3D,iBAAiB,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,OAAO,CAAC;IACtD,0EAA0E;IAC1E,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC;IAC5C,mFAAmF;IACnF,gBAAgB,EAAE,CAChB,IAAI,EAAE,OAAO,EACb,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,KACrE,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACjC,4CAA4C;IAC5C,sBAAsB,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,OAAO,CAAC;CAC5D;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,iBAAiB,GAAG,mBAAmB,CAyBhF"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dispatch reconciliation phase — drains the dispatch queue on each tick.
|
|
3
|
+
*
|
|
4
|
+
* Picks up tasks that were enqueued (because the target environment was at
|
|
5
|
+
* concurrency capacity) and spawns them when capacity frees up. Follows the
|
|
6
|
+
* same dependency-injection pattern as cron-phase.ts for testability.
|
|
7
|
+
*/
|
|
8
|
+
import { logger } from "./logger.js";
|
|
9
|
+
/**
|
|
10
|
+
* Create a ReconciliationPhase that drains the dispatch queue.
|
|
11
|
+
*
|
|
12
|
+
* On each tick:
|
|
13
|
+
* 1. Lists pending entries in FIFO order
|
|
14
|
+
* 2. For each: dequeues orphans (deleted task/environment), skips if disconnected or at capacity
|
|
15
|
+
* 3. Verifies task eligibility (deps met, not already working) before spawning
|
|
16
|
+
* 4. Calls startTaskSession; on success dequeues, on failure keeps queued for retry
|
|
17
|
+
* 5. Each entry is wrapped in try/catch so one bad task doesn't block others
|
|
18
|
+
*/
|
|
19
|
+
export function createDispatchPhase(deps) {
|
|
20
|
+
return {
|
|
21
|
+
name: "dispatch",
|
|
22
|
+
execute: async () => {
|
|
23
|
+
const pending = deps.listPendingEntries();
|
|
24
|
+
if (pending.length === 0) {
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
logger.debug({ count: pending.length }, "Dispatch phase: pending entries");
|
|
28
|
+
for (const entry of pending) {
|
|
29
|
+
try {
|
|
30
|
+
await dispatchEntry(deps, entry);
|
|
31
|
+
}
|
|
32
|
+
catch (err) {
|
|
33
|
+
// Catch unexpected throws so one bad entry doesn't abort the entire tick.
|
|
34
|
+
// Entry stays queued for retry on next tick.
|
|
35
|
+
logger.error({ taskId: entry.taskId, environmentId: entry.environmentId, err }, "Dispatch: unexpected error processing entry");
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
/** Process a single dispatch queue entry. */
|
|
42
|
+
async function dispatchEntry(deps, entry) {
|
|
43
|
+
// Dequeue entries whose environment has been removed entirely (not just disconnected)
|
|
44
|
+
if (!deps.environmentExists(entry.environmentId)) {
|
|
45
|
+
deps.dequeueEntry(entry.taskId);
|
|
46
|
+
logger.debug({ taskId: entry.taskId, environmentId: entry.environmentId }, "Dispatch: dequeued orphan (environment removed)");
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
// Skip if environment is disconnected (may reconnect later)
|
|
50
|
+
if (!deps.isEnvironmentConnected(entry.environmentId)) {
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
// Skip if environment is at capacity
|
|
54
|
+
if (!deps.hasCapacity(entry.environmentId)) {
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
// Look up the task (may have been deleted since enqueue)
|
|
58
|
+
const task = deps.getTask(entry.taskId);
|
|
59
|
+
if (!task) {
|
|
60
|
+
deps.dequeueEntry(entry.taskId);
|
|
61
|
+
logger.debug({ taskId: entry.taskId }, "Dispatch: dequeued stale entry (task deleted)");
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
// Verify the task is still eligible (deps met, not already working from a concurrent start).
|
|
65
|
+
// Skip rather than dequeue — eligibility may change (e.g. deps become met on a later tick).
|
|
66
|
+
if (!deps.isTaskEligible(entry.taskId)) {
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
const error = await deps.startTaskSession(task, {
|
|
70
|
+
environmentId: entry.environmentId,
|
|
71
|
+
personaId: entry.personaId,
|
|
72
|
+
notes: entry.notes,
|
|
73
|
+
});
|
|
74
|
+
if (error) {
|
|
75
|
+
logger.warn({ taskId: entry.taskId, environmentId: entry.environmentId, error }, "Dispatch: session start failed — entry stays queued for retry");
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
// Dequeue only after successful start to avoid losing tasks on transient failures.
|
|
79
|
+
// startTaskSession already emits "task.started" so we don't emit it here.
|
|
80
|
+
deps.dequeueEntry(entry.taskId);
|
|
81
|
+
logger.info({ taskId: entry.taskId, environmentId: entry.environmentId }, "Dispatch: task started");
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=dispatch-phase.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dispatch-phase.js","sourceRoot":"","sources":["../src/dispatch-phase.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"environment-handlers.d.ts","sourceRoot":"","sources":["../src/environment-handlers.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAc7C,wCAAwC;AACxC,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,CAKzE;AAED,kCAAkC;AAClC,wBAAsB,cAAc,CAAC,GAAG,EAAE,OAAO,CAAC,qBAAqB,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAerG;AAED,2EAA2E;AAC3E,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,OAAO,CAAC,wBAAwB,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAsC3G;AAED,+EAA+E;AAC/E,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,OAAO,CAAC,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"environment-handlers.d.ts","sourceRoot":"","sources":["../src/environment-handlers.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAc7C,wCAAwC;AACxC,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,CAKzE;AAED,kCAAkC;AAClC,wBAAsB,cAAc,CAAC,GAAG,EAAE,OAAO,CAAC,qBAAqB,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAerG;AAED,2EAA2E;AAC3E,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,OAAO,CAAC,wBAAwB,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAsC3G;AAED,+EAA+E;AAC/E,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,OAAO,CAAC,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CA0C1F;AAED,iFAAiF;AACjF,wBAAuB,oBAAoB,CAAC,GAAG,EAAE,OAAO,CAAC,2BAA2B,GAAG,cAAc,CAAC,OAAO,CAAC,cAAc,CAAC,CAiH5H;AAED,wCAAwC;AACxC,wBAAsB,eAAe,CAAC,GAAG,EAAE,OAAO,CAAC,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAexF;AAED,2DAA2D;AAC3D,wBAAsB,kBAAkB,CAAC,GAAG,EAAE,OAAO,CAAC,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAe3F"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ConnectError, Code } from "@connectrpc/connect";
|
|
2
2
|
import { create } from "@bufbuild/protobuf";
|
|
3
3
|
import { grackle } from "@grackle-ai/common";
|
|
4
|
-
import { envRegistry, workspaceStore, sessionStore } from "@grackle-ai/database";
|
|
4
|
+
import { envRegistry, workspaceStore, workspaceEnvironmentLinkStore, sessionStore, sqlite } from "@grackle-ai/database";
|
|
5
5
|
import { reconnectOrProvision } from "@grackle-ai/adapter-sdk";
|
|
6
6
|
import * as adapterManager from "./adapter-manager.js";
|
|
7
7
|
import * as tokenPush from "./token-push.js";
|
|
@@ -75,7 +75,7 @@ export async function updateEnvironment(req) {
|
|
|
75
75
|
}
|
|
76
76
|
/** Remove an environment after disconnecting it and cleaning up references. */
|
|
77
77
|
export async function removeEnvironment(req) {
|
|
78
|
-
// Block deletion if workspaces still reference this environment
|
|
78
|
+
// Block deletion if workspaces still reference this environment as primary
|
|
79
79
|
const wsCount = workspaceStore.countWorkspacesByEnvironment(req.id);
|
|
80
80
|
if (wsCount > 0) {
|
|
81
81
|
throw new ConnectError(`Cannot remove environment: ${wsCount} active workspace(s) still reference it. Archive or reparent them first.`, Code.FailedPrecondition);
|
|
@@ -96,9 +96,21 @@ export async function removeEnvironment(req) {
|
|
|
96
96
|
}
|
|
97
97
|
}
|
|
98
98
|
adapterManager.removeConnection(req.id);
|
|
99
|
-
// Delete sessions
|
|
100
|
-
|
|
101
|
-
|
|
99
|
+
// Delete links, sessions, and environment atomically to prevent partial cleanup
|
|
100
|
+
// if a concurrent LinkEnvironment RPC races between steps.
|
|
101
|
+
const conn = sqlite;
|
|
102
|
+
if (conn) {
|
|
103
|
+
conn.transaction(() => {
|
|
104
|
+
workspaceEnvironmentLinkStore.deleteLinksForEnvironment(req.id);
|
|
105
|
+
sessionStore.deleteByEnvironment(req.id);
|
|
106
|
+
envRegistry.removeEnvironment(req.id);
|
|
107
|
+
})();
|
|
108
|
+
}
|
|
109
|
+
else {
|
|
110
|
+
workspaceEnvironmentLinkStore.deleteLinksForEnvironment(req.id);
|
|
111
|
+
sessionStore.deleteByEnvironment(req.id);
|
|
112
|
+
envRegistry.removeEnvironment(req.id);
|
|
113
|
+
}
|
|
102
114
|
emit("environment.changed", {});
|
|
103
115
|
emit("environment.removed", { environmentId: req.id });
|
|
104
116
|
logger.info({ environmentId: req.id }, "Environment removed");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"environment-handlers.js","sourceRoot":"","sources":["../src/environment-handlers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"environment-handlers.js","sourceRoot":"","sources":["../src/environment-handlers.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,8 +6,12 @@ import type { KnowledgeNode, KnowledgeEdge } from "@grackle-ai/knowledge";
|
|
|
6
6
|
export declare function envRowToProto(row: EnvironmentRow): grackle.Environment;
|
|
7
7
|
/** Convert a session database row to its proto representation. */
|
|
8
8
|
export declare function sessionRowToProto(row: SessionRow): grackle.Session;
|
|
9
|
-
/**
|
|
10
|
-
|
|
9
|
+
/**
|
|
10
|
+
* Convert a workspace database row to its proto representation.
|
|
11
|
+
* When converting many workspaces (e.g. listWorkspaces), pass a pre-fetched
|
|
12
|
+
* linkedEnvMap to avoid N+1 queries. When omitted, falls back to a per-row query.
|
|
13
|
+
*/
|
|
14
|
+
export declare function workspaceRowToProto(row: workspaceStore.WorkspaceRow, linkedEnvMap?: Map<string, string[]>): grackle.Workspace;
|
|
11
15
|
/** Convert a task database row to its proto representation. */
|
|
12
16
|
export declare function taskRowToProto(row: taskStore.TaskRow, childIds?: string[], computedStatus?: string, latestSessionId?: string): grackle.Task;
|
|
13
17
|
/** Convert a schedule database row to its proto representation. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grpc-proto-converters.d.ts","sourceRoot":"","sources":["../src/grpc-proto-converters.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAK7C,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,aAAa,
|
|
1
|
+
{"version":3,"file":"grpc-proto-converters.d.ts","sourceRoot":"","sources":["../src/grpc-proto-converters.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAK7C,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,aAAa,EAAqD,MAAM,sBAAsB,CAAC;AAChL,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAE1E,uEAAuE;AACvE,wBAAgB,aAAa,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,CAYtE;AAED,kEAAkE;AAClE,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAsBlE;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,cAAc,CAAC,YAAY,EAChC,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GACnC,OAAO,CAAC,SAAS,CAkBnB;AAED,+DAA+D;AAC/D,wBAAgB,cAAc,CAC5B,GAAG,EAAE,SAAS,CAAC,OAAO,EACtB,QAAQ,CAAC,EAAE,MAAM,EAAE,EACnB,cAAc,CAAC,EAAE,MAAM,EACvB,eAAe,CAAC,EAAE,MAAM,GACvB,OAAO,CAAC,IAAI,CAuBd;AAED,mEAAmE;AACnE,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,aAAa,CAAC,WAAW,GAAG,OAAO,CAAC,QAAQ,CAiBnF;AAED,kEAAkE;AAClE,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,YAAY,CAAC,UAAU,GAAG,OAAO,CAAC,OAAO,CAK/E;AAED,sEAAsE;AACtE,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,eAAe,CAAC,aAAa,GAAG,OAAO,CAAC,UAAU,CAe3F;AAED,2EAA2E;AAC3E,wBAAgB,aAAa,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC,CAS1E;AAED,iEAAiE;AACjE,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,YAAY,CAAC,UAAU,GAAG,OAAO,CAAC,OAAO,CAgE/E;AAED,2DAA2D;AAC3D,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,kBAAkB,CAepF;AAED,2DAA2D;AAC3D,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,kBAAkB,CAQpF"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { create } from "@bufbuild/protobuf";
|
|
2
2
|
import { grackle } from "@grackle-ai/common";
|
|
3
3
|
import { workspaceStatusToEnum, taskStatusToEnum, } from "@grackle-ai/common";
|
|
4
|
-
import { taskStore, safeParseJsonArray } from "@grackle-ai/database";
|
|
4
|
+
import { taskStore, workspaceEnvironmentLinkStore, safeParseJsonArray } from "@grackle-ai/database";
|
|
5
5
|
/** Convert an environment database row to its proto representation. */
|
|
6
6
|
export function envRowToProto(row) {
|
|
7
7
|
return create(grackle.EnvironmentSchema, {
|
|
@@ -40,8 +40,15 @@ export function sessionRowToProto(row) {
|
|
|
40
40
|
endReason: row.endReason ?? "",
|
|
41
41
|
});
|
|
42
42
|
}
|
|
43
|
-
/**
|
|
44
|
-
|
|
43
|
+
/**
|
|
44
|
+
* Convert a workspace database row to its proto representation.
|
|
45
|
+
* When converting many workspaces (e.g. listWorkspaces), pass a pre-fetched
|
|
46
|
+
* linkedEnvMap to avoid N+1 queries. When omitted, falls back to a per-row query.
|
|
47
|
+
*/
|
|
48
|
+
export function workspaceRowToProto(row, linkedEnvMap) {
|
|
49
|
+
const linkedIds = linkedEnvMap
|
|
50
|
+
? (linkedEnvMap.get(row.id) ?? [])
|
|
51
|
+
: workspaceEnvironmentLinkStore.getLinkedEnvironmentIds(row.id);
|
|
45
52
|
return create(grackle.WorkspaceSchema, {
|
|
46
53
|
id: row.id,
|
|
47
54
|
name: row.name,
|
|
@@ -54,6 +61,7 @@ export function workspaceRowToProto(row) {
|
|
|
54
61
|
useWorktrees: row.useWorktrees,
|
|
55
62
|
workingDirectory: row.workingDirectory,
|
|
56
63
|
defaultPersonaId: row.defaultPersonaId,
|
|
64
|
+
linkedEnvironmentIds: linkedIds,
|
|
57
65
|
});
|
|
58
66
|
}
|
|
59
67
|
/** Convert a task database row to its proto representation. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grpc-proto-converters.js","sourceRoot":"","sources":["../src/grpc-proto-converters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EACL,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAkB,SAAS,EAA8D,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"grpc-proto-converters.js","sourceRoot":"","sources":["../src/grpc-proto-converters.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -4,10 +4,11 @@ export type { ServiceCollector, HandlerGroup } from "./service-collector.js";
|
|
|
4
4
|
export { registerAdapter, getAdapter, setConnection, getConnection, removeConnection, listConnections, startHeartbeat, stopHeartbeat, } from "./adapter-manager.js";
|
|
5
5
|
export { parseAdapterConfig } from "./adapter-config.js";
|
|
6
6
|
export { emit, subscribe } from "./event-bus.js";
|
|
7
|
-
export {
|
|
8
|
-
export {
|
|
9
|
-
export {
|
|
10
|
-
export {
|
|
7
|
+
export type { Disposable, PluginContext, SubscriberFactory } from "./subscriber-types.js";
|
|
8
|
+
export { createSigchldSubscriber } from "./signals/sigchld.js";
|
|
9
|
+
export { createEscalationAutoSubscriber } from "./signals/escalation-auto.js";
|
|
10
|
+
export { createOrphanReparentSubscriber, transferAllPipeSubscriptions } from "./signals/orphan-reparent.js";
|
|
11
|
+
export { createLifecycleSubscriber } from "./lifecycle.js";
|
|
11
12
|
export { ensureStdinStream, publishToStdin, cleanupStdinStream } from "./stdin-delivery.js";
|
|
12
13
|
export { startTaskSession } from "./task-session.js";
|
|
13
14
|
export { reanimateAgent } from "./reanimate-agent.js";
|
|
@@ -23,8 +24,12 @@ export { createCronPhase } from "./cron-phase.js";
|
|
|
23
24
|
export type { CronPhaseDeps } from "./cron-phase.js";
|
|
24
25
|
export { createOrphanPhase } from "./orphan-phase.js";
|
|
25
26
|
export type { OrphanPhaseDeps } from "./orphan-phase.js";
|
|
27
|
+
export { createDispatchPhase } from "./dispatch-phase.js";
|
|
28
|
+
export type { DispatchPhaseDeps } from "./dispatch-phase.js";
|
|
29
|
+
export { hasCapacity, getEffectiveLimit } from "./concurrency.js";
|
|
30
|
+
export type { ConcurrencyDeps } from "./concurrency.js";
|
|
26
31
|
export { findFirstConnectedEnvironment } from "./find-connected-environment.js";
|
|
27
|
-
export {
|
|
32
|
+
export { createRootTaskBootSubscriber } from "./root-task-boot.js";
|
|
28
33
|
export type { RootTaskBootDeps } from "./root-task-boot.js";
|
|
29
34
|
export { validateExpression, computeNextRunAt } from "./schedule-expression.js";
|
|
30
35
|
export { lifecycleCleanupPhase } from "./lifecycle-cleanup.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAClF,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,YAAY,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAG7E,OAAO,EACL,eAAe,EAAE,UAAU,EAC3B,aAAa,EAAE,aAAa,EAAE,gBAAgB,EAAE,eAAe,EAC/D,cAAc,EAAE,aAAa,GAC9B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAGzD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAGjD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -6,11 +6,11 @@ export { registerAdapter, getAdapter, setConnection, getConnection, removeConnec
|
|
|
6
6
|
export { parseAdapterConfig } from "./adapter-config.js";
|
|
7
7
|
// ─── Event System ──────────────────────────────────────────
|
|
8
8
|
export { emit, subscribe } from "./event-bus.js";
|
|
9
|
-
// ───
|
|
10
|
-
export {
|
|
11
|
-
export {
|
|
12
|
-
export {
|
|
13
|
-
export {
|
|
9
|
+
// ─── Subscriber Factories ─────────────────────────────────
|
|
10
|
+
export { createSigchldSubscriber } from "./signals/sigchld.js";
|
|
11
|
+
export { createEscalationAutoSubscriber } from "./signals/escalation-auto.js";
|
|
12
|
+
export { createOrphanReparentSubscriber, transferAllPipeSubscriptions } from "./signals/orphan-reparent.js";
|
|
13
|
+
export { createLifecycleSubscriber } from "./lifecycle.js";
|
|
14
14
|
export { ensureStdinStream, publishToStdin, cleanupStdinStream } from "./stdin-delivery.js";
|
|
15
15
|
// ─── Task Session ───────────────────────────────────────────
|
|
16
16
|
export { startTaskSession } from "./task-session.js";
|
|
@@ -26,8 +26,10 @@ export { createKnowledgeHealthPhase, isNeo4jHealthy, getKnowledgeReadinessCheck
|
|
|
26
26
|
export { ReconciliationManager } from "./reconciliation-manager.js";
|
|
27
27
|
export { createCronPhase } from "./cron-phase.js";
|
|
28
28
|
export { createOrphanPhase } from "./orphan-phase.js";
|
|
29
|
+
export { createDispatchPhase } from "./dispatch-phase.js";
|
|
30
|
+
export { hasCapacity, getEffectiveLimit } from "./concurrency.js";
|
|
29
31
|
export { findFirstConnectedEnvironment } from "./find-connected-environment.js";
|
|
30
|
-
export {
|
|
32
|
+
export { createRootTaskBootSubscriber } from "./root-task-boot.js";
|
|
31
33
|
export { validateExpression, computeNextRunAt } from "./schedule-expression.js";
|
|
32
34
|
export { lifecycleCleanupPhase } from "./lifecycle-cleanup.js";
|
|
33
35
|
export { createEnvironmentReconciliationPhase } from "./environment-reconciliation.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAClF,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAGhE,8DAA8D;AAC9D,OAAO,EACL,eAAe,EAAE,UAAU,EAC3B,aAAa,EAAE,aAAa,EAAE,gBAAgB,EAAE,eAAe,EAC/D,cAAc,EAAE,aAAa,GAC9B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzD,8DAA8D;AAC9D,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAClF,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAGhE,8DAA8D;AAC9D,OAAO,EACL,eAAe,EAAE,UAAU,EAC3B,aAAa,EAAE,aAAa,EAAE,gBAAgB,EAAE,eAAe,EAC/D,cAAc,EAAE,aAAa,GAC9B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzD,8DAA8D;AAC9D,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAKjD,6DAA6D;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,8BAA8B,EAAE,MAAM,8BAA8B,CAAC;AAC9E,OAAO,EAAE,8BAA8B,EAAE,4BAA4B,EAAE,MAAM,8BAA8B,CAAC;AAC5G,OAAO,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAE5F,+DAA+D;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,8DAA8D;AAC9D,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC7E,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D,8DAA8D;AAC9D,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC1F,OAAO,EAAE,0BAA0B,EAAE,cAAc,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AAG/G,6DAA6D;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAEpE,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE1D,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAElE,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAChF,OAAO,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAC;AAEnE,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAChF,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,oCAAoC,EAAE,MAAM,iCAAiC,CAAC;AAGvF,6DAA6D;AAC7D,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAsB,MAAM,oBAAoB,CAAC;AAE/F,8DAA8D;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,+DAA+D;AAC/D,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,cAAc,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAE1G,8DAA8D;AAC9D,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC"}
|
package/dist/lifecycle.d.ts
CHANGED
|
@@ -11,12 +11,18 @@
|
|
|
11
11
|
* This is the foundation of the emergent lifecycle model: session alive/dead is
|
|
12
12
|
* determined by subscription state, not explicit status calls.
|
|
13
13
|
*/
|
|
14
|
+
import type { Disposable, PluginContext } from "./subscriber-types.js";
|
|
14
15
|
/**
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
16
|
+
* Create the lifecycle manager subscriber.
|
|
17
|
+
*
|
|
18
|
+
* Registers orphan and revival callbacks on the stream-registry so that
|
|
19
|
+
* sessions auto-stop when all fds are closed and auto-reanimate when
|
|
20
|
+
* a new fd is opened.
|
|
21
|
+
*
|
|
22
|
+
* @param ctx - Plugin context providing event-bus access.
|
|
23
|
+
* @returns A Disposable that unregisters both callbacks.
|
|
18
24
|
*/
|
|
19
|
-
export declare function
|
|
25
|
+
export declare function createLifecycleSubscriber(ctx: PluginContext): Disposable;
|
|
20
26
|
/**
|
|
21
27
|
* Clean up lifecycle stream for a session. Deletes the stream and all its
|
|
22
28
|
* subscriptions, which triggers the orphan callback (auto-stop).
|
|
@@ -35,9 +41,4 @@ export declare function cleanupLifecycleStream(sessionId: string): void;
|
|
|
35
41
|
* session went idle naturally and lifecycle stream was preserved).
|
|
36
42
|
*/
|
|
37
43
|
export declare function ensureLifecycleStream(sessionId: string, spawnerId: string): void;
|
|
38
|
-
/**
|
|
39
|
-
* Reset module state. For testing only.
|
|
40
|
-
* @internal
|
|
41
|
-
*/
|
|
42
|
-
export declare function _resetForTesting(): void;
|
|
43
44
|
//# sourceMappingURL=lifecycle.d.ts.map
|
package/dist/lifecycle.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../src/lifecycle.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;
|
|
1
|
+
{"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../src/lifecycle.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAWH,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEvE;;;;;;;;;GASG;AACH,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,aAAa,GAAG,UAAU,CAqHxE;AAED;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAU9D;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAQhF"}
|