@grackle-ai/server 0.75.3 → 0.75.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (132) hide show
  1. package/README.md +17 -61
  2. package/dist/index.js +8 -24
  3. package/dist/index.js.map +1 -1
  4. package/dist/local-powerline-manager.js +1 -1
  5. package/dist/local-powerline-manager.js.map +1 -1
  6. package/dist/local-powerline.js +1 -1
  7. package/dist/local-powerline.js.map +1 -1
  8. package/package.json +15 -28
  9. package/dist/adapter-config.d.ts +0 -6
  10. package/dist/adapter-config.d.ts.map +0 -1
  11. package/dist/adapter-config.js +0 -19
  12. package/dist/adapter-config.js.map +0 -1
  13. package/dist/adapter-manager.d.ts +0 -22
  14. package/dist/adapter-manager.d.ts.map +0 -1
  15. package/dist/adapter-manager.js +0 -81
  16. package/dist/adapter-manager.js.map +0 -1
  17. package/dist/auto-reconnect.d.ts +0 -23
  18. package/dist/auto-reconnect.d.ts.map +0 -1
  19. package/dist/auto-reconnect.js +0 -164
  20. package/dist/auto-reconnect.js.map +0 -1
  21. package/dist/compute-task-status.d.ts +0 -28
  22. package/dist/compute-task-status.d.ts.map +0 -1
  23. package/dist/compute-task-status.js +0 -70
  24. package/dist/compute-task-status.js.map +0 -1
  25. package/dist/credential-bundle.d.ts +0 -12
  26. package/dist/credential-bundle.d.ts.map +0 -1
  27. package/dist/credential-bundle.js +0 -183
  28. package/dist/credential-bundle.js.map +0 -1
  29. package/dist/event-bus.d.ts +0 -37
  30. package/dist/event-bus.d.ts.map +0 -1
  31. package/dist/event-bus.js +0 -65
  32. package/dist/event-bus.js.map +0 -1
  33. package/dist/event-processor.d.ts +0 -36
  34. package/dist/event-processor.d.ts.map +0 -1
  35. package/dist/event-processor.js +0 -312
  36. package/dist/event-processor.js.map +0 -1
  37. package/dist/grpc-service.d.ts +0 -22
  38. package/dist/grpc-service.d.ts.map +0 -1
  39. package/dist/grpc-service.js +0 -1724
  40. package/dist/grpc-service.js.map +0 -1
  41. package/dist/knowledge-init.d.ts +0 -27
  42. package/dist/knowledge-init.d.ts.map +0 -1
  43. package/dist/knowledge-init.js +0 -212
  44. package/dist/knowledge-init.js.map +0 -1
  45. package/dist/lifecycle.d.ts +0 -36
  46. package/dist/lifecycle.d.ts.map +0 -1
  47. package/dist/lifecycle.js +0 -112
  48. package/dist/lifecycle.js.map +0 -1
  49. package/dist/log-writer.d.ts +0 -32
  50. package/dist/log-writer.d.ts.map +0 -1
  51. package/dist/log-writer.js +0 -104
  52. package/dist/log-writer.js.map +0 -1
  53. package/dist/logger.d.ts +0 -4
  54. package/dist/logger.d.ts.map +0 -1
  55. package/dist/logger.js +0 -10
  56. package/dist/logger.js.map +0 -1
  57. package/dist/pipe-delivery.d.ts +0 -41
  58. package/dist/pipe-delivery.d.ts.map +0 -1
  59. package/dist/pipe-delivery.js +0 -186
  60. package/dist/pipe-delivery.js.map +0 -1
  61. package/dist/processor-registry.d.ts +0 -25
  62. package/dist/processor-registry.d.ts.map +0 -1
  63. package/dist/processor-registry.js +0 -58
  64. package/dist/processor-registry.js.map +0 -1
  65. package/dist/reanimate-agent.d.ts +0 -12
  66. package/dist/reanimate-agent.d.ts.map +0 -1
  67. package/dist/reanimate-agent.js +0 -76
  68. package/dist/reanimate-agent.js.map +0 -1
  69. package/dist/session-recovery.d.ts +0 -16
  70. package/dist/session-recovery.d.ts.map +0 -1
  71. package/dist/session-recovery.js +0 -129
  72. package/dist/session-recovery.js.map +0 -1
  73. package/dist/signals/sigchld.d.ts +0 -7
  74. package/dist/signals/sigchld.d.ts.map +0 -1
  75. package/dist/signals/sigchld.js +0 -167
  76. package/dist/signals/sigchld.js.map +0 -1
  77. package/dist/signals/signal-delivery.d.ts +0 -14
  78. package/dist/signals/signal-delivery.d.ts.map +0 -1
  79. package/dist/signals/signal-delivery.js +0 -166
  80. package/dist/signals/signal-delivery.js.map +0 -1
  81. package/dist/stream-hub.d.ts +0 -14
  82. package/dist/stream-hub.d.ts.map +0 -1
  83. package/dist/stream-hub.js +0 -95
  84. package/dist/stream-hub.js.map +0 -1
  85. package/dist/stream-registry.d.ts +0 -84
  86. package/dist/stream-registry.d.ts.map +0 -1
  87. package/dist/stream-registry.js +0 -363
  88. package/dist/stream-registry.js.map +0 -1
  89. package/dist/test-utils/integration-setup.d.ts +0 -11
  90. package/dist/test-utils/integration-setup.d.ts.map +0 -1
  91. package/dist/test-utils/integration-setup.js +0 -32
  92. package/dist/test-utils/integration-setup.js.map +0 -1
  93. package/dist/test-utils/mock-database.d.ts +0 -130
  94. package/dist/test-utils/mock-database.d.ts.map +0 -1
  95. package/dist/test-utils/mock-database.js +0 -147
  96. package/dist/test-utils/mock-database.js.map +0 -1
  97. package/dist/token-push.d.ts +0 -22
  98. package/dist/token-push.d.ts.map +0 -1
  99. package/dist/token-push.js +0 -78
  100. package/dist/token-push.js.map +0 -1
  101. package/dist/transcript.d.ts +0 -5
  102. package/dist/transcript.d.ts.map +0 -1
  103. package/dist/transcript.js +0 -71
  104. package/dist/transcript.js.map +0 -1
  105. package/dist/utils/exec.d.ts +0 -17
  106. package/dist/utils/exec.d.ts.map +0 -1
  107. package/dist/utils/exec.js +0 -21
  108. package/dist/utils/exec.js.map +0 -1
  109. package/dist/utils/format-gh-error.d.ts +0 -6
  110. package/dist/utils/format-gh-error.d.ts.map +0 -1
  111. package/dist/utils/format-gh-error.js +0 -30
  112. package/dist/utils/format-gh-error.js.map +0 -1
  113. package/dist/utils/network.d.ts +0 -7
  114. package/dist/utils/network.d.ts.map +0 -1
  115. package/dist/utils/network.js +0 -21
  116. package/dist/utils/network.js.map +0 -1
  117. package/dist/utils/ports.d.ts +0 -3
  118. package/dist/utils/ports.d.ts.map +0 -1
  119. package/dist/utils/ports.js +0 -19
  120. package/dist/utils/ports.js.map +0 -1
  121. package/dist/utils/sleep.d.ts +0 -3
  122. package/dist/utils/sleep.d.ts.map +0 -1
  123. package/dist/utils/sleep.js +0 -5
  124. package/dist/utils/sleep.js.map +0 -1
  125. package/dist/ws-bridge.d.ts +0 -30
  126. package/dist/ws-bridge.d.ts.map +0 -1
  127. package/dist/ws-bridge.js +0 -372
  128. package/dist/ws-bridge.js.map +0 -1
  129. package/dist/ws-broadcast.d.ts +0 -19
  130. package/dist/ws-broadcast.d.ts.map +0 -1
  131. package/dist/ws-broadcast.js +0 -60
  132. package/dist/ws-broadcast.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"grpc-service.js","sourceRoot":"","sources":["../src/grpc-service.ts"],"names":[],"mappings":"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"}
@@ -1,27 +0,0 @@
1
- /**
2
- * Knowledge graph subsystem initialization and lifecycle management.
3
- *
4
- * Wires Neo4j, the local embedder, and event-driven reference node sync
5
- * into the Grackle server. Opt-in via `GRACKLE_KNOWLEDGE_ENABLED=true`.
6
- *
7
- * @module
8
- */
9
- import { type Embedder } from "@grackle-ai/knowledge";
10
- /** Whether the knowledge graph subsystem is enabled. */
11
- export declare function isKnowledgeEnabled(): boolean;
12
- /** Get the knowledge embedder. Returns undefined if knowledge is not initialized. */
13
- export declare function getKnowledgeEmbedder(): Embedder | undefined;
14
- /**
15
- * Initialize the knowledge graph subsystem.
16
- *
17
- * Opens Neo4j, initializes the schema, creates the local embedder,
18
- * injects it into MCP tools, and subscribes to the event bus for
19
- * automatic reference node sync.
20
- *
21
- * If any step after Neo4j connection fails, cleans up the connection
22
- * before re-throwing.
23
- *
24
- * @returns A cleanup function that closes Neo4j and unsubscribes from events.
25
- */
26
- export declare function initKnowledge(): Promise<() => Promise<void>>;
27
- //# sourceMappingURL=knowledge-init.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"knowledge-init.d.ts","sourceRoot":"","sources":["../src/knowledge-init.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAYL,KAAK,QAAQ,EACd,MAAM,uBAAuB,CAAC;AAS/B,wDAAwD;AACxD,wBAAgB,kBAAkB,IAAI,OAAO,CAE5C;AAKD,qFAAqF;AACrF,wBAAgB,oBAAoB,IAAI,QAAQ,GAAG,SAAS,CAE3D;AAgLD;;;;;;;;;;;GAWG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,CA4BlE"}
@@ -1,212 +0,0 @@
1
- /**
2
- * Knowledge graph subsystem initialization and lifecycle management.
3
- *
4
- * Wires Neo4j, the local embedder, and event-driven reference node sync
5
- * into the Grackle server. Opt-in via `GRACKLE_KNOWLEDGE_ENABLED=true`.
6
- *
7
- * @module
8
- */
9
- import { openNeo4j, initSchema, closeNeo4j, createLocalEmbedder, syncReferenceNode, deleteReferenceNodeBySource, findReferenceNodeBySource, createEdge, deriveTaskText, deriveFindingText, EDGE_TYPE, } from "@grackle-ai/knowledge";
10
- import { subscribe } from "./event-bus.js";
11
- import { taskStore, findingStore, safeParseJsonArray } from "@grackle-ai/database";
12
- import { logger } from "./logger.js";
13
- // ---------------------------------------------------------------------------
14
- // Configuration
15
- // ---------------------------------------------------------------------------
16
- /** Whether the knowledge graph subsystem is enabled. */
17
- export function isKnowledgeEnabled() {
18
- return process.env.GRACKLE_KNOWLEDGE_ENABLED === "true";
19
- }
20
- /** Module-level embedder, available after initKnowledge() completes. */
21
- let knowledgeEmbedder;
22
- /** Get the knowledge embedder. Returns undefined if knowledge is not initialized. */
23
- export function getKnowledgeEmbedder() {
24
- return knowledgeEmbedder;
25
- }
26
- // ---------------------------------------------------------------------------
27
- // Event handler
28
- // ---------------------------------------------------------------------------
29
- /**
30
- * Create an event bus subscriber that syncs reference nodes.
31
- *
32
- * Sync is fire-and-forget — errors are logged but never propagated.
33
- */
34
- function createEntitySyncHandler(embedder) {
35
- return (event) => {
36
- // Fire-and-forget async — errors handled inside handleEvent
37
- handleEvent(embedder, event).catch(() => { });
38
- };
39
- }
40
- /**
41
- * Ensure a task's reference node exists in the knowledge graph.
42
- *
43
- * If the node already exists, returns its ID. Otherwise syncs it from
44
- * the task store and returns the new ID. Returns `undefined` if the
45
- * task is not found in the store.
46
- */
47
- async function ensureTaskReferenceNode(embedder, taskId) {
48
- const existing = await findReferenceNodeBySource("task", taskId);
49
- if (existing) {
50
- return existing.id;
51
- }
52
- const task = taskStore.getTask(taskId);
53
- if (!task) {
54
- return undefined;
55
- }
56
- return syncReferenceNode(embedder, {
57
- sourceType: "task",
58
- sourceId: taskId,
59
- label: task.title,
60
- text: deriveTaskText(task.title, task.description),
61
- workspaceId: task.workspaceId ?? "",
62
- });
63
- }
64
- /**
65
- * Create edges from a task reference node to its parent and dependencies.
66
- *
67
- * Best-effort — edge creation failures are logged but don't block sync.
68
- */
69
- async function syncTaskEdges(embedder, taskNodeId, task) {
70
- // Parent task → PART_OF edge
71
- if (task.parentTaskId) {
72
- try {
73
- const parentNodeId = await ensureTaskReferenceNode(embedder, task.parentTaskId);
74
- if (parentNodeId) {
75
- await createEdge(taskNodeId, parentNodeId, EDGE_TYPE.PART_OF);
76
- }
77
- }
78
- catch (err) {
79
- logger.warn({ taskNodeId, parentTaskId: task.parentTaskId, err }, "Failed to create PART_OF edge");
80
- }
81
- }
82
- // Dependencies → DEPENDS_ON edges
83
- const deps = safeParseJsonArray(task.dependsOn);
84
- for (const depId of deps) {
85
- try {
86
- const depNodeId = await ensureTaskReferenceNode(embedder, depId);
87
- if (depNodeId) {
88
- await createEdge(taskNodeId, depNodeId, EDGE_TYPE.DEPENDS_ON);
89
- }
90
- }
91
- catch (err) {
92
- logger.warn({ taskNodeId, depId, err }, "Failed to create DEPENDS_ON edge");
93
- }
94
- }
95
- }
96
- /** Handle a single entity event. */
97
- async function handleEvent(embedder, event) {
98
- try {
99
- const payload = event.payload;
100
- switch (event.type) {
101
- case "task.created":
102
- case "task.updated": {
103
- const taskId = payload.taskId;
104
- if (typeof taskId !== "string" || !taskId) {
105
- return;
106
- }
107
- const task = taskStore.getTask(taskId);
108
- if (!task) {
109
- logger.warn({ taskId }, "Knowledge sync: task not found, skipping");
110
- return;
111
- }
112
- const taskNodeId = await syncReferenceNode(embedder, {
113
- sourceType: "task",
114
- sourceId: taskId,
115
- label: task.title,
116
- text: deriveTaskText(task.title, task.description),
117
- workspaceId: task.workspaceId ?? "",
118
- });
119
- await syncTaskEdges(embedder, taskNodeId, task);
120
- break;
121
- }
122
- case "task.deleted": {
123
- const taskId = payload.taskId;
124
- if (typeof taskId !== "string" || !taskId) {
125
- return;
126
- }
127
- await deleteReferenceNodeBySource("task", taskId);
128
- break;
129
- }
130
- case "finding.posted": {
131
- const findingId = payload.findingId;
132
- if (typeof findingId !== "string" || !findingId) {
133
- return;
134
- }
135
- const workspaceId = typeof payload.workspaceId === "string" ? payload.workspaceId : "";
136
- const findings = findingStore.queryFindings(workspaceId);
137
- const finding = findings.find((f) => f.id === findingId);
138
- if (!finding) {
139
- logger.warn({ findingId }, "Knowledge sync: finding not found, skipping");
140
- return;
141
- }
142
- const tags = safeParseJsonArray(typeof finding.tags === "string" ? finding.tags : null);
143
- const findingNodeId = await syncReferenceNode(embedder, {
144
- sourceType: "finding",
145
- sourceId: findingId,
146
- label: finding.title,
147
- text: deriveFindingText(finding.title, finding.content, tags),
148
- workspaceId,
149
- });
150
- // Link finding to its task
151
- if (finding.taskId) {
152
- try {
153
- const taskNodeId = await ensureTaskReferenceNode(embedder, finding.taskId);
154
- if (taskNodeId) {
155
- await createEdge(findingNodeId, taskNodeId, EDGE_TYPE.DERIVED_FROM);
156
- }
157
- }
158
- catch (err) {
159
- logger.warn({ findingNodeId, taskId: finding.taskId, err }, "Failed to create DERIVED_FROM edge");
160
- }
161
- }
162
- break;
163
- }
164
- default:
165
- // Ignore events we don't handle
166
- break;
167
- }
168
- }
169
- catch (err) {
170
- logger.error({ err, eventType: event.type, eventId: event.id }, "Knowledge sync failed for entity event");
171
- }
172
- }
173
- // ---------------------------------------------------------------------------
174
- // Lifecycle
175
- // ---------------------------------------------------------------------------
176
- /**
177
- * Initialize the knowledge graph subsystem.
178
- *
179
- * Opens Neo4j, initializes the schema, creates the local embedder,
180
- * injects it into MCP tools, and subscribes to the event bus for
181
- * automatic reference node sync.
182
- *
183
- * If any step after Neo4j connection fails, cleans up the connection
184
- * before re-throwing.
185
- *
186
- * @returns A cleanup function that closes Neo4j and unsubscribes from events.
187
- */
188
- export async function initKnowledge() {
189
- logger.info("Initializing knowledge graph subsystem");
190
- await openNeo4j();
191
- try {
192
- await initSchema();
193
- const embedder = createLocalEmbedder();
194
- knowledgeEmbedder = embedder;
195
- const unsubscribe = subscribe(createEntitySyncHandler(embedder));
196
- logger.info("Knowledge graph subsystem ready");
197
- return async () => {
198
- logger.info("Shutting down knowledge graph subsystem");
199
- unsubscribe();
200
- knowledgeEmbedder = undefined;
201
- await closeNeo4j();
202
- logger.info("Knowledge graph subsystem stopped");
203
- };
204
- }
205
- catch (err) {
206
- // Clean up Neo4j if a later step fails
207
- knowledgeEmbedder = undefined;
208
- await closeNeo4j().catch(() => { });
209
- throw err;
210
- }
211
- }
212
- //# sourceMappingURL=knowledge-init.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"knowledge-init.js","sourceRoot":"","sources":["../src/knowledge-init.ts"],"names":[],"mappings":"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"}
@@ -1,36 +0,0 @@
1
- /**
2
- * Lifecycle manager — auto-stops sessions when all their file descriptors are closed.
3
- *
4
- * When the last subscription (fd) for a session is removed from the stream-registry,
5
- * the orphan callback fires and this module:
6
- * 1. Sets the session status to STOPPED with an appropriate end reason
7
- * 2. Kills the PowerLine process (best-effort)
8
- * 3. Broadcasts the end reason to UI clients
9
- * 4. Emits a task.updated event if the session has a task
10
- *
11
- * This is the foundation of the emergent lifecycle model: session alive/dead is
12
- * determined by subscription state, not explicit status calls.
13
- */
14
- /**
15
- * Initialize the lifecycle manager. Registers the orphan callback on the
16
- * stream-registry so that sessions auto-stop when all fds are closed.
17
- * Idempotent — safe to call multiple times.
18
- */
19
- export declare function initLifecycleManager(): void;
20
- /**
21
- * Clean up lifecycle stream for a session. Deletes the stream and all its
22
- * subscriptions, which triggers the orphan callback (auto-stop).
23
- *
24
- * Called from killAgent when explicitly terminating a session, and from the
25
- * event processor on "failed" status to clean up zombie fds. For sessions
26
- * that complete normally, lifecycle streams persist until the UI or
27
- * reconciliation loop closes them — this is intentional (the session stays
28
- * "alive" and reanimate-safe until someone decides to close the fd).
29
- */
30
- export declare function cleanupLifecycleStream(sessionId: string): void;
31
- /**
32
- * Reset module state. For testing only.
33
- * @internal
34
- */
35
- export declare function _resetForTesting(): void;
36
- //# sourceMappingURL=lifecycle.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../src/lifecycle.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAeH;;;;GAIG;AACH,wBAAgB,oBAAoB,IAAI,IAAI,CAuE3C;AAED;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAK9D;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAEvC"}
package/dist/lifecycle.js DELETED
@@ -1,112 +0,0 @@
1
- /**
2
- * Lifecycle manager — auto-stops sessions when all their file descriptors are closed.
3
- *
4
- * When the last subscription (fd) for a session is removed from the stream-registry,
5
- * the orphan callback fires and this module:
6
- * 1. Sets the session status to STOPPED with an appropriate end reason
7
- * 2. Kills the PowerLine process (best-effort)
8
- * 3. Broadcasts the end reason to UI clients
9
- * 4. Emits a task.updated event if the session has a task
10
- *
11
- * This is the foundation of the emergent lifecycle model: session alive/dead is
12
- * determined by subscription state, not explicit status calls.
13
- */
14
- import { create } from "@bufbuild/protobuf";
15
- import { grackle, SESSION_STATUS, TERMINAL_SESSION_STATUSES, END_REASON, powerline } from "@grackle-ai/common";
16
- import { sessionStore, taskStore } from "@grackle-ai/database";
17
- import * as streamRegistry from "./stream-registry.js";
18
- import * as adapterManager from "./adapter-manager.js";
19
- import * as streamHub from "./stream-hub.js";
20
- import { emit } from "./event-bus.js";
21
- import { logger } from "./logger.js";
22
- /** Whether the lifecycle manager has been initialized. */
23
- let initialized = false;
24
- /**
25
- * Initialize the lifecycle manager. Registers the orphan callback on the
26
- * stream-registry so that sessions auto-stop when all fds are closed.
27
- * Idempotent — safe to call multiple times.
28
- */
29
- export function initLifecycleManager() {
30
- if (initialized) {
31
- return;
32
- }
33
- initialized = true;
34
- streamRegistry.onSessionOrphaned((sessionId) => {
35
- const session = sessionStore.getSession(sessionId);
36
- if (!session) {
37
- return;
38
- }
39
- const alreadyTerminal = TERMINAL_SESSION_STATUSES.has(session.status);
40
- // Always kill the PowerLine process (best-effort — may have already exited).
41
- // Even if the session is already STOPPED (e.g. killAgent pre-set it), the
42
- // process may still be running and needs to be terminated.
43
- const conn = adapterManager.getConnection(session.environmentId);
44
- if (conn) {
45
- // Use the session's endReason if already set (killAgent pre-set it),
46
- // otherwise determine from the session's status at time of orphaning.
47
- let reason;
48
- if (alreadyTerminal && session.endReason) {
49
- reason = session.endReason;
50
- }
51
- else if (!alreadyTerminal && session.status === SESSION_STATUS.IDLE) {
52
- reason = END_REASON.COMPLETED;
53
- }
54
- else {
55
- reason = END_REASON.KILLED;
56
- }
57
- conn.client.kill(create(powerline.KillRequestSchema, { id: sessionId, reason })).catch((err) => {
58
- logger.debug({ err, sessionId }, "Lifecycle: PowerLine kill failed (process may have already exited)");
59
- });
60
- }
61
- // Skip status change and broadcast if already terminal (killAgent already handled it)
62
- if (alreadyTerminal) {
63
- return;
64
- }
65
- // Determine reason: IDLE sessions completed naturally; others were killed
66
- const reason = session.status === SESSION_STATUS.IDLE
67
- ? END_REASON.COMPLETED
68
- : END_REASON.KILLED;
69
- logger.info({ sessionId, previousStatus: session.status, reason }, "Session orphaned (no remaining fds) — stopping");
70
- sessionStore.updateSession(sessionId, SESSION_STATUS.STOPPED, undefined, undefined, reason);
71
- // Broadcast end reason to UI clients
72
- streamHub.publish(create(grackle.SessionEventSchema, {
73
- sessionId,
74
- type: grackle.EventType.STATUS,
75
- timestamp: new Date().toISOString(),
76
- content: reason,
77
- raw: "",
78
- }));
79
- // Notify task system if this session belongs to a task
80
- if (session.taskId) {
81
- const task = taskStore.getTask(session.taskId);
82
- if (task) {
83
- emit("task.updated", { taskId: task.id, workspaceId: task.workspaceId || "" });
84
- }
85
- }
86
- });
87
- logger.info("Lifecycle manager initialized");
88
- }
89
- /**
90
- * Clean up lifecycle stream for a session. Deletes the stream and all its
91
- * subscriptions, which triggers the orphan callback (auto-stop).
92
- *
93
- * Called from killAgent when explicitly terminating a session, and from the
94
- * event processor on "failed" status to clean up zombie fds. For sessions
95
- * that complete normally, lifecycle streams persist until the UI or
96
- * reconciliation loop closes them — this is intentional (the session stays
97
- * "alive" and reanimate-safe until someone decides to close the fd).
98
- */
99
- export function cleanupLifecycleStream(sessionId) {
100
- const lifecycleStream = streamRegistry.getStreamByName(`lifecycle:${sessionId}`);
101
- if (lifecycleStream) {
102
- streamRegistry.deleteStream(lifecycleStream.id);
103
- }
104
- }
105
- /**
106
- * Reset module state. For testing only.
107
- * @internal
108
- */
109
- export function _resetForTesting() {
110
- initialized = false;
111
- }
112
- //# sourceMappingURL=lifecycle.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../src/lifecycle.ts"],"names":[],"mappings":"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"}
@@ -1,32 +0,0 @@
1
- import { type grackle } from "@grackle-ai/common";
2
- /** Initialize a JSONL log stream for a session at the given directory path. */
3
- export declare function initLog(logPath: string): void;
4
- /**
5
- * Ensure the JSONL log stream for the given path is open.
6
- * If `initLog` has already been called for this path this is a no-op;
7
- * otherwise it opens a new append stream. Use this before `writeEvent`
8
- * when the caller cannot guarantee that `initLog` has already been called
9
- * (e.g. signal delivery to a PENDING session).
10
- */
11
- export declare function ensureLogInitialized(logPath: string): void;
12
- /** Append a session event as a JSON line to the session's log file. */
13
- export declare function writeEvent(logPath: string, event: grackle.SessionEvent): void;
14
- /** Close the write stream for a session log. */
15
- export declare function endSession(logPath: string): void;
16
- /** Deserialized shape of a single line in a session's `stream.jsonl` log. */
17
- export interface LogEntry {
18
- session_id: string;
19
- type: string;
20
- timestamp: string;
21
- content: string;
22
- raw?: string;
23
- }
24
- /**
25
- * Read the last "text" entry from a session's JSONL log file without parsing the whole file.
26
- * Reads only the tail of the file (up to LOG_TAIL_BYTES) to limit the amount of synchronous
27
- * work and reduce event-loop blocking time for large sessions.
28
- */
29
- export declare function readLastTextEntry(logPath: string): LogEntry | undefined;
30
- /** Read and parse all log entries from a session's JSONL log file. */
31
- export declare function readLog(logPath: string): LogEntry[];
32
- //# sourceMappingURL=log-writer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"log-writer.d.ts","sourceRoot":"","sources":["../src/log-writer.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,KAAK,OAAO,EAAqB,MAAM,oBAAoB,CAAC;AAIrE,+EAA+E;AAC/E,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAK7C;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAI1D;AAED,uEAAuE;AACvE,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,YAAY,GAAG,IAAI,CAa7E;AAED,gDAAgD;AAChD,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAMhD;AAED,6EAA6E;AAC7E,MAAM,WAAW,QAAQ;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAKD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAyCvE;AAED,sEAAsE;AACtE,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ,EAAE,CASnD"}