@grackle-ai/server 0.74.0 → 0.75.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/event-processor.d.ts.map +1 -1
- package/dist/event-processor.js +6 -5
- package/dist/event-processor.js.map +1 -1
- package/dist/grpc-service.d.ts.map +1 -1
- package/dist/grpc-service.js +277 -10
- package/dist/grpc-service.js.map +1 -1
- package/dist/index.js +20 -2
- package/dist/index.js.map +1 -1
- package/dist/ws-bridge.d.ts +15 -17
- package/dist/ws-bridge.d.ts.map +1 -1
- package/dist/ws-bridge.js +15 -1538
- package/dist/ws-bridge.js.map +1 -1
- package/package.json +14 -14
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-processor.d.ts","sourceRoot":"","sources":["../src/event-processor.ts"],"names":[],"mappings":"AACA,OAAO,EAAW,SAAS,EAA0E,MAAM,oBAAoB,CAAC;AAYhI,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,oDAAoD;AACpD,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gGAAgG;IAChG,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gGAAgG;IAChG,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,gBAAgB,EACrB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,GAChB,IAAI,CAmBN;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,gBAAgB,EACrB,OAAO,EAAE,MAAM,EACf,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GACrC,IAAI,CA6FN;AAsCD;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,aAAa,CAAC,SAAS,CAAC,UAAU,CAAC,EAC3C,OAAO,EAAE,kBAAkB,GAC1B,IAAI,
|
|
1
|
+
{"version":3,"file":"event-processor.d.ts","sourceRoot":"","sources":["../src/event-processor.ts"],"names":[],"mappings":"AACA,OAAO,EAAW,SAAS,EAA0E,MAAM,oBAAoB,CAAC;AAYhI,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,oDAAoD;AACpD,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gGAAgG;IAChG,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gGAAgG;IAChG,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,gBAAgB,EACrB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,GAChB,IAAI,CAmBN;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,gBAAgB,EACrB,OAAO,EAAE,MAAM,EACf,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GACrC,IAAI,CA6FN;AAsCD;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,aAAa,CAAC,SAAS,CAAC,UAAU,CAAC,EAC3C,OAAO,EAAE,kBAAkB,GAC1B,IAAI,CA+KN"}
|
package/dist/event-processor.js
CHANGED
|
@@ -291,12 +291,13 @@ export function processEventStream(events, options) {
|
|
|
291
291
|
timestamp: new Date().toISOString(),
|
|
292
292
|
content: SESSION_STATUS.SUSPENDED,
|
|
293
293
|
}));
|
|
294
|
+
if (ctx.taskId) {
|
|
295
|
+
emit("task.updated", { taskId: ctx.taskId, workspaceId: ctx.workspaceId });
|
|
296
|
+
}
|
|
294
297
|
}
|
|
295
|
-
// If already terminal (
|
|
296
|
-
// died), the session is
|
|
297
|
-
|
|
298
|
-
emit("task.updated", { taskId: ctx.taskId, workspaceId: ctx.workspaceId });
|
|
299
|
-
}
|
|
298
|
+
// If already terminal (killAgent/completed/failed set status before transport
|
|
299
|
+
// died), the session is in its correct final state and task.updated was already
|
|
300
|
+
// emitted — skip the duplicate to avoid interfering with SIGCHLD delivery.
|
|
300
301
|
}
|
|
301
302
|
finally {
|
|
302
303
|
processorRegistry.unregister(sessionId);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-processor.js","sourceRoot":"","sources":["../src/event-processor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"event-processor.js","sourceRoot":"","sources":["../src/event-processor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grpc-service.d.ts","sourceRoot":"","sources":["../src/grpc-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"grpc-service.d.ts","sourceRoot":"","sources":["../src/grpc-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AA8F7E;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAYvD;AAsLD,gFAAgF;AAChF,wBAAgB,mBAAmB,CACjC,UAAU,EAAE;IACV,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB,EAAE,GACF,MAAM,CAUR;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAczE;AAED,iFAAiF;AACjF,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,CA2zDjE"}
|
package/dist/grpc-service.js
CHANGED
|
@@ -14,7 +14,8 @@ import * as processorRegistry from "./processor-registry.js";
|
|
|
14
14
|
import { recoverSuspendedSessions } from "./session-recovery.js";
|
|
15
15
|
import { clearReconnectState } from "./auto-reconnect.js";
|
|
16
16
|
import { join } from "node:path";
|
|
17
|
-
import { LOGS_DIR, DEFAULT_WEB_PORT, DEFAULT_MCP_PORT, MAX_TASK_DEPTH, SESSION_STATUS, TERMINAL_SESSION_STATUSES, END_REASON, TASK_STATUS, ROOT_TASK_ID, taskStatusToEnum, taskStatusToString, workspaceStatusToEnum, claudeProviderModeToEnum, providerToggleToEnum, } from "@grackle-ai/common";
|
|
17
|
+
import { LOGS_DIR, DEFAULT_WEB_PORT, DEFAULT_MCP_PORT, MAX_TASK_DEPTH, SESSION_STATUS, TERMINAL_SESSION_STATUSES, END_REASON, TASK_STATUS, ROOT_TASK_ID, taskStatusToEnum, taskStatusToString, workspaceStatusToEnum, claudeProviderModeToEnum, providerToggleToEnum, eventTypeToEnum, } from "@grackle-ai/common";
|
|
18
|
+
import * as logWriter from "./log-writer.js";
|
|
18
19
|
import { resolvePersona, fetchOrchestratorContext, SystemPromptBuilder, buildTaskPrompt } from "@grackle-ai/prompt";
|
|
19
20
|
import { createScopedToken, loadOrCreateApiKey, generatePairingCode } from "@grackle-ai/auth";
|
|
20
21
|
import { computeTaskStatus } from "./compute-task-status.js";
|
|
@@ -22,6 +23,8 @@ import { logger } from "./logger.js";
|
|
|
22
23
|
import { reanimateAgent } from "./reanimate-agent.js";
|
|
23
24
|
import { getKnowledgeEmbedder, isKnowledgeEnabled } from "./knowledge-init.js";
|
|
24
25
|
import { knowledgeSearch, getNode as getKnowledgeNodeById, expandNode, createNativeNode, ingest, createPassThroughChunker, listRecentNodes, } from "@grackle-ai/knowledge";
|
|
26
|
+
import { exec } from "./utils/exec.js";
|
|
27
|
+
import { formatGhError } from "./utils/format-gh-error.js";
|
|
25
28
|
import { importGitHubIssues as executeGitHubImport } from "./github-import.js";
|
|
26
29
|
import { detectLanIp } from "./utils/network.js";
|
|
27
30
|
import * as streamRegistry from "./stream-registry.js";
|
|
@@ -30,6 +33,12 @@ import { ensureAsyncDeliveryListener } from "./pipe-delivery.js";
|
|
|
30
33
|
import { cleanupLifecycleStream } from "./lifecycle.js";
|
|
31
34
|
/** Valid pipe mode values for SpawnRequest and StartTaskRequest. */
|
|
32
35
|
const VALID_PIPE_MODES = new Set(["", "sync", "async", "detach"]);
|
|
36
|
+
/** Timeout for `gh codespace list` in milliseconds. */
|
|
37
|
+
const GH_CODESPACE_LIST_TIMEOUT_MS = 30_000;
|
|
38
|
+
/** Timeout for `gh codespace create` in milliseconds. */
|
|
39
|
+
const GH_CODESPACE_CREATE_TIMEOUT_MS = 300_000;
|
|
40
|
+
/** Maximum number of codespaces returned by `gh codespace list`. */
|
|
41
|
+
const GH_CODESPACE_LIST_LIMIT = 50;
|
|
33
42
|
/** Validate pipe mode and parentSessionId. Throws ConnectError on invalid input. */
|
|
34
43
|
function validatePipeInputs(pipe, parentSessionId) {
|
|
35
44
|
if (pipe && !VALID_PIPE_MODES.has(pipe)) {
|
|
@@ -247,12 +256,55 @@ export function registerGrackleRoutes(router) {
|
|
|
247
256
|
});
|
|
248
257
|
},
|
|
249
258
|
async addEnvironment(req) {
|
|
259
|
+
if (!req.displayName || !req.adapterType) {
|
|
260
|
+
throw new ConnectError("displayName and adapterType required", Code.InvalidArgument);
|
|
261
|
+
}
|
|
250
262
|
const id = req.displayName.toLowerCase().replace(/[^a-z0-9-]/g, "-");
|
|
251
263
|
envRegistry.addEnvironment(id, req.displayName, req.adapterType, req.adapterConfig);
|
|
252
264
|
emit("environment.changed", {});
|
|
253
265
|
const row = envRegistry.getEnvironment(id);
|
|
254
266
|
return envRowToProto(row);
|
|
255
267
|
},
|
|
268
|
+
async updateEnvironment(req) {
|
|
269
|
+
if (!req.id) {
|
|
270
|
+
throw new ConnectError("id is required", Code.InvalidArgument);
|
|
271
|
+
}
|
|
272
|
+
const existing = envRegistry.getEnvironment(req.id);
|
|
273
|
+
if (!existing) {
|
|
274
|
+
throw new ConnectError(`Environment not found: ${req.id}`, Code.NotFound);
|
|
275
|
+
}
|
|
276
|
+
const displayName = req.displayName !== undefined ? req.displayName : undefined;
|
|
277
|
+
if (displayName?.trim() === "") {
|
|
278
|
+
throw new ConnectError("Environment name cannot be empty", Code.InvalidArgument);
|
|
279
|
+
}
|
|
280
|
+
let adapterConfig;
|
|
281
|
+
if (req.adapterConfig !== undefined) {
|
|
282
|
+
const raw = req.adapterConfig.trim() || "{}";
|
|
283
|
+
let parsed;
|
|
284
|
+
try {
|
|
285
|
+
parsed = JSON.parse(raw);
|
|
286
|
+
}
|
|
287
|
+
catch {
|
|
288
|
+
throw new ConnectError("adapterConfig is not valid JSON", Code.InvalidArgument);
|
|
289
|
+
}
|
|
290
|
+
if (typeof parsed !== "object" || parsed === null || Array.isArray(parsed)) {
|
|
291
|
+
throw new ConnectError("adapterConfig must be a JSON object", Code.InvalidArgument);
|
|
292
|
+
}
|
|
293
|
+
adapterConfig = raw;
|
|
294
|
+
}
|
|
295
|
+
const trimmedName = displayName !== undefined ? displayName.trim() : undefined;
|
|
296
|
+
if (trimmedName === undefined && adapterConfig === undefined) {
|
|
297
|
+
throw new ConnectError("No updatable fields provided", Code.InvalidArgument);
|
|
298
|
+
}
|
|
299
|
+
envRegistry.updateEnvironment(req.id, {
|
|
300
|
+
displayName: trimmedName,
|
|
301
|
+
adapterConfig,
|
|
302
|
+
});
|
|
303
|
+
logger.info({ environmentId: req.id, displayName: trimmedName }, "Environment updated");
|
|
304
|
+
emit("environment.changed", {});
|
|
305
|
+
const updated = envRegistry.getEnvironment(req.id);
|
|
306
|
+
return envRowToProto(updated);
|
|
307
|
+
},
|
|
256
308
|
async removeEnvironment(req) {
|
|
257
309
|
// Block deletion if workspaces still reference this environment
|
|
258
310
|
const wsCount = workspaceStore.countWorkspacesByEnvironment(req.id);
|
|
@@ -319,8 +371,11 @@ export function registerGrackleRoutes(router) {
|
|
|
319
371
|
}
|
|
320
372
|
catch (err) {
|
|
321
373
|
logger.error({ environmentId: req.id, err }, "Provision/bootstrap failed");
|
|
322
|
-
envRegistry.
|
|
323
|
-
|
|
374
|
+
const currentEnv = envRegistry.getEnvironment(req.id);
|
|
375
|
+
if (currentEnv?.status !== "connected") {
|
|
376
|
+
envRegistry.updateEnvironmentStatus(req.id, "error");
|
|
377
|
+
emit("environment.changed", {});
|
|
378
|
+
}
|
|
324
379
|
yield create(grackle.ProvisionEventSchema, {
|
|
325
380
|
stage: "error",
|
|
326
381
|
message: `Provision failed: ${err instanceof Error ? err.message : String(err)}`,
|
|
@@ -340,13 +395,9 @@ export function registerGrackleRoutes(router) {
|
|
|
340
395
|
recoverSuspendedSessions(req.id, conn).catch((err) => {
|
|
341
396
|
logger.error({ environmentId: req.id, err }, "Session recovery failed");
|
|
342
397
|
});
|
|
343
|
-
yield create(grackle.ProvisionEventSchema, {
|
|
344
|
-
stage: "ready",
|
|
345
|
-
message: "Environment connected",
|
|
346
|
-
progress: 1,
|
|
347
|
-
});
|
|
348
398
|
}
|
|
349
399
|
catch (err) {
|
|
400
|
+
// adapter.connect() actually failed
|
|
350
401
|
envRegistry.updateEnvironmentStatus(req.id, "error");
|
|
351
402
|
emit("environment.changed", {});
|
|
352
403
|
yield create(grackle.ProvisionEventSchema, {
|
|
@@ -354,6 +405,21 @@ export function registerGrackleRoutes(router) {
|
|
|
354
405
|
message: `Connection failed: ${err instanceof Error ? err.message : String(err)}`,
|
|
355
406
|
progress: 0,
|
|
356
407
|
});
|
|
408
|
+
return;
|
|
409
|
+
}
|
|
410
|
+
// Best-effort: notify client that provision completed.
|
|
411
|
+
// If the client already disconnected (e.g. fire-and-forget fetch in
|
|
412
|
+
// test helpers), the yield throws — but the environment IS connected,
|
|
413
|
+
// so we must NOT revert the status to "error".
|
|
414
|
+
try {
|
|
415
|
+
yield create(grackle.ProvisionEventSchema, {
|
|
416
|
+
stage: "ready",
|
|
417
|
+
message: "Environment connected",
|
|
418
|
+
progress: 1,
|
|
419
|
+
});
|
|
420
|
+
}
|
|
421
|
+
catch {
|
|
422
|
+
// Client disconnected after successful provision — ignore
|
|
357
423
|
}
|
|
358
424
|
},
|
|
359
425
|
async stopEnvironment(req) {
|
|
@@ -385,13 +451,60 @@ export function registerGrackleRoutes(router) {
|
|
|
385
451
|
return create(grackle.EmptySchema, {});
|
|
386
452
|
},
|
|
387
453
|
async spawnAgent(req) {
|
|
454
|
+
if (!req.environmentId) {
|
|
455
|
+
throw new ConnectError("environment_id is required", Code.InvalidArgument);
|
|
456
|
+
}
|
|
388
457
|
const env = envRegistry.getEnvironment(req.environmentId);
|
|
389
458
|
if (!env) {
|
|
390
459
|
throw new ConnectError(`Environment not found: ${req.environmentId}`, Code.NotFound);
|
|
391
460
|
}
|
|
392
|
-
|
|
461
|
+
let conn = adapterManager.getConnection(req.environmentId);
|
|
393
462
|
if (!conn) {
|
|
394
|
-
|
|
463
|
+
// Auto-provision: attempt to reconnect/provision a disconnected environment
|
|
464
|
+
const adapter = adapterManager.getAdapter(env.adapterType);
|
|
465
|
+
if (!adapter) {
|
|
466
|
+
throw new ConnectError(`No adapter for type: ${env.adapterType}`, Code.FailedPrecondition);
|
|
467
|
+
}
|
|
468
|
+
logger.info({ environmentId: req.environmentId }, "Auto-provisioning environment for SpawnAgent");
|
|
469
|
+
envRegistry.updateEnvironmentStatus(req.environmentId, "connecting");
|
|
470
|
+
emit("environment.changed", {});
|
|
471
|
+
const config = parseAdapterConfig(env.adapterConfig);
|
|
472
|
+
config.defaultRuntime = env.defaultRuntime;
|
|
473
|
+
const powerlineToken = env.powerlineToken;
|
|
474
|
+
try {
|
|
475
|
+
for await (const provEvent of reconnectOrProvision(req.environmentId, adapter, config, powerlineToken, !!env.bootstrapped)) {
|
|
476
|
+
logger.info({ environmentId: req.environmentId, stage: provEvent.stage }, "Auto-provision progress (SpawnAgent)");
|
|
477
|
+
emit("environment.provision_progress", {
|
|
478
|
+
environmentId: req.environmentId,
|
|
479
|
+
stage: provEvent.stage,
|
|
480
|
+
message: provEvent.message,
|
|
481
|
+
progress: provEvent.progress,
|
|
482
|
+
});
|
|
483
|
+
}
|
|
484
|
+
conn = await adapter.connect(req.environmentId, config, powerlineToken);
|
|
485
|
+
adapterManager.setConnection(req.environmentId, conn);
|
|
486
|
+
await tokenPush.pushToEnv(req.environmentId);
|
|
487
|
+
envRegistry.updateEnvironmentStatus(req.environmentId, "connected");
|
|
488
|
+
envRegistry.markBootstrapped(req.environmentId);
|
|
489
|
+
emit("environment.changed", {});
|
|
490
|
+
// Auto-recover suspended sessions (fire-and-forget)
|
|
491
|
+
recoverSuspendedSessions(req.environmentId, conn).catch((err) => {
|
|
492
|
+
logger.error({ environmentId: req.environmentId, err }, "Session recovery failed");
|
|
493
|
+
});
|
|
494
|
+
logger.info({ environmentId: req.environmentId }, "Auto-provision complete (SpawnAgent)");
|
|
495
|
+
emit("environment.provision_progress", {
|
|
496
|
+
environmentId: req.environmentId,
|
|
497
|
+
stage: "ready",
|
|
498
|
+
message: "Environment connected",
|
|
499
|
+
progress: 1,
|
|
500
|
+
});
|
|
501
|
+
}
|
|
502
|
+
catch (err) {
|
|
503
|
+
logger.error({ environmentId: req.environmentId, err }, "Auto-provision failed (SpawnAgent)");
|
|
504
|
+
envRegistry.updateEnvironmentStatus(req.environmentId, "error");
|
|
505
|
+
emit("environment.changed", {});
|
|
506
|
+
throw new ConnectError(`Failed to auto-connect environment ${req.environmentId}: ${err instanceof Error ? err.message : String(err)}`, Code.FailedPrecondition);
|
|
507
|
+
}
|
|
395
508
|
}
|
|
396
509
|
// Resolve persona via cascade (request → app default)
|
|
397
510
|
let resolved;
|
|
@@ -488,6 +601,18 @@ export function registerGrackleRoutes(router) {
|
|
|
488
601
|
if (!conn) {
|
|
489
602
|
throw new ConnectError(`Environment ${session.environmentId} not connected`, Code.FailedPrecondition);
|
|
490
603
|
}
|
|
604
|
+
// Persist and publish user input event so subscribers see the text in the event stream
|
|
605
|
+
const userInputEvent = create(grackle.SessionEventSchema, {
|
|
606
|
+
sessionId: req.sessionId,
|
|
607
|
+
type: grackle.EventType.USER_INPUT,
|
|
608
|
+
timestamp: new Date().toISOString(),
|
|
609
|
+
content: req.text,
|
|
610
|
+
raw: "",
|
|
611
|
+
});
|
|
612
|
+
if (session.logPath) {
|
|
613
|
+
logWriter.writeEvent(session.logPath, userInputEvent);
|
|
614
|
+
}
|
|
615
|
+
streamHub.publish(userInputEvent);
|
|
491
616
|
await conn.client.sendInput(create(powerline.InputMessageSchema, {
|
|
492
617
|
sessionId: req.sessionId,
|
|
493
618
|
text: req.text,
|
|
@@ -702,6 +827,38 @@ export function registerGrackleRoutes(router) {
|
|
|
702
827
|
}
|
|
703
828
|
return sessionRowToProto(row);
|
|
704
829
|
},
|
|
830
|
+
async getSessionEvents(req) {
|
|
831
|
+
const session = sessionStore.getSession(req.id);
|
|
832
|
+
if (!session) {
|
|
833
|
+
throw new ConnectError(`Session not found: ${req.id}`, Code.NotFound);
|
|
834
|
+
}
|
|
835
|
+
if (!session.logPath) {
|
|
836
|
+
return create(grackle.SessionEventListSchema, {
|
|
837
|
+
sessionId: req.id,
|
|
838
|
+
events: [],
|
|
839
|
+
});
|
|
840
|
+
}
|
|
841
|
+
const entries = logWriter.readLog(session.logPath);
|
|
842
|
+
return create(grackle.SessionEventListSchema, {
|
|
843
|
+
sessionId: req.id,
|
|
844
|
+
events: entries.map((e) => create(grackle.SessionEventSchema, {
|
|
845
|
+
sessionId: e.session_id,
|
|
846
|
+
type: eventTypeToEnum(e.type),
|
|
847
|
+
timestamp: e.timestamp,
|
|
848
|
+
content: e.content,
|
|
849
|
+
raw: e.raw || "",
|
|
850
|
+
})),
|
|
851
|
+
});
|
|
852
|
+
},
|
|
853
|
+
async getTaskSessions(req) {
|
|
854
|
+
if (!req.id) {
|
|
855
|
+
throw new ConnectError("task id is required", Code.InvalidArgument);
|
|
856
|
+
}
|
|
857
|
+
const rows = sessionStore.listSessionsForTask(req.id);
|
|
858
|
+
return create(grackle.SessionListSchema, {
|
|
859
|
+
sessions: rows.map(sessionRowToProto),
|
|
860
|
+
});
|
|
861
|
+
},
|
|
705
862
|
async *streamSession(req) {
|
|
706
863
|
const stream = streamHub.createStream(req.id);
|
|
707
864
|
try {
|
|
@@ -725,6 +882,12 @@ export function registerGrackleRoutes(router) {
|
|
|
725
882
|
}
|
|
726
883
|
},
|
|
727
884
|
async setToken(req) {
|
|
885
|
+
if (!req.name) {
|
|
886
|
+
throw new ConnectError("name is required", Code.InvalidArgument);
|
|
887
|
+
}
|
|
888
|
+
if (!req.value) {
|
|
889
|
+
throw new ConnectError("value is required", Code.InvalidArgument);
|
|
890
|
+
}
|
|
728
891
|
tokenStore.setToken({
|
|
729
892
|
name: req.name,
|
|
730
893
|
type: req.type,
|
|
@@ -733,6 +896,7 @@ export function registerGrackleRoutes(router) {
|
|
|
733
896
|
value: req.value,
|
|
734
897
|
expiresAt: req.expiresAt,
|
|
735
898
|
});
|
|
899
|
+
emit("token.changed", {});
|
|
736
900
|
await tokenPush.pushToAll();
|
|
737
901
|
return create(grackle.EmptySchema, {});
|
|
738
902
|
},
|
|
@@ -749,7 +913,11 @@ export function registerGrackleRoutes(router) {
|
|
|
749
913
|
});
|
|
750
914
|
},
|
|
751
915
|
async deleteToken(req) {
|
|
916
|
+
if (!req.name) {
|
|
917
|
+
throw new ConnectError("name is required", Code.InvalidArgument);
|
|
918
|
+
}
|
|
752
919
|
tokenStore.deleteToken(req.name);
|
|
920
|
+
emit("token.changed", {});
|
|
753
921
|
await tokenPush.pushToAll();
|
|
754
922
|
return create(grackle.EmptySchema, {});
|
|
755
923
|
},
|
|
@@ -794,6 +962,9 @@ export function registerGrackleRoutes(router) {
|
|
|
794
962
|
});
|
|
795
963
|
},
|
|
796
964
|
async createWorkspace(req) {
|
|
965
|
+
if (!req.name) {
|
|
966
|
+
throw new ConnectError("name is required", Code.InvalidArgument);
|
|
967
|
+
}
|
|
797
968
|
if (!req.environmentId) {
|
|
798
969
|
throw new ConnectError("environment_id is required", Code.InvalidArgument);
|
|
799
970
|
}
|
|
@@ -881,6 +1052,9 @@ export function registerGrackleRoutes(router) {
|
|
|
881
1052
|
});
|
|
882
1053
|
},
|
|
883
1054
|
async createTask(req) {
|
|
1055
|
+
if (!req.title) {
|
|
1056
|
+
throw new ConnectError("title is required", Code.InvalidArgument);
|
|
1057
|
+
}
|
|
884
1058
|
const workspaceId = req.workspaceId || undefined;
|
|
885
1059
|
let workspace;
|
|
886
1060
|
if (workspaceId) {
|
|
@@ -952,6 +1126,7 @@ export function registerGrackleRoutes(router) {
|
|
|
952
1126
|
processorRegistry.lateBind(req.sessionId, req.id, existing.workspaceId || undefined);
|
|
953
1127
|
emit("task.started", { taskId: req.id, sessionId: req.sessionId, workspaceId: existing.workspaceId || "" });
|
|
954
1128
|
}
|
|
1129
|
+
emit("task.updated", { taskId: req.id, workspaceId: existing.workspaceId || "" });
|
|
955
1130
|
const row = taskStore.getTask(req.id);
|
|
956
1131
|
const taskSessions = sessionStore.listSessionsForTask(req.id);
|
|
957
1132
|
const { status, latestSessionId } = computeTaskStatus(row.status, taskSessions);
|
|
@@ -1159,6 +1334,43 @@ export function registerGrackleRoutes(router) {
|
|
|
1159
1334
|
const row = sessionStore.getSession(latestSession.id);
|
|
1160
1335
|
return sessionRowToProto(row);
|
|
1161
1336
|
},
|
|
1337
|
+
async stopTask(req) {
|
|
1338
|
+
const task = taskStore.getTask(req.id);
|
|
1339
|
+
if (!task) {
|
|
1340
|
+
throw new ConnectError(`Task not found: ${req.id}`, Code.NotFound);
|
|
1341
|
+
}
|
|
1342
|
+
// Terminate all active sessions for this task using the fd-closure pattern
|
|
1343
|
+
const activeSessions = sessionStore.getActiveSessionsForTask(req.id);
|
|
1344
|
+
for (const activeSession of activeSessions) {
|
|
1345
|
+
cleanupLifecycleStream(activeSession.id);
|
|
1346
|
+
const subs = streamRegistry.getSubscriptionsForSession(activeSession.id);
|
|
1347
|
+
for (const sub of subs) {
|
|
1348
|
+
streamRegistry.unsubscribe(sub.id);
|
|
1349
|
+
}
|
|
1350
|
+
const current = sessionStore.getSession(activeSession.id);
|
|
1351
|
+
if (current && !TERMINAL_SESSION_STATUSES.has(current.status)) {
|
|
1352
|
+
sessionStore.updateSession(activeSession.id, SESSION_STATUS.STOPPED, undefined, undefined, END_REASON.INTERRUPTED);
|
|
1353
|
+
streamHub.publish(create(grackle.SessionEventSchema, {
|
|
1354
|
+
sessionId: activeSession.id,
|
|
1355
|
+
type: grackle.EventType.STATUS,
|
|
1356
|
+
timestamp: new Date().toISOString(),
|
|
1357
|
+
content: END_REASON.INTERRUPTED,
|
|
1358
|
+
raw: "",
|
|
1359
|
+
}));
|
|
1360
|
+
}
|
|
1361
|
+
}
|
|
1362
|
+
// Mark task complete
|
|
1363
|
+
taskStore.markTaskComplete(req.id, TASK_STATUS.COMPLETE);
|
|
1364
|
+
// Check for newly unblocked tasks
|
|
1365
|
+
if (task.workspaceId) {
|
|
1366
|
+
taskStore.checkAndUnblock(task.workspaceId);
|
|
1367
|
+
}
|
|
1368
|
+
emit("task.completed", { taskId: task.id, workspaceId: task.workspaceId || "" });
|
|
1369
|
+
const updated = taskStore.getTask(req.id);
|
|
1370
|
+
const taskSessions = sessionStore.listSessionsForTask(req.id);
|
|
1371
|
+
const { status, latestSessionId } = computeTaskStatus(updated.status, taskSessions);
|
|
1372
|
+
return taskRowToProto(updated, undefined, status, latestSessionId);
|
|
1373
|
+
},
|
|
1162
1374
|
async deleteTask(req) {
|
|
1163
1375
|
if (req.id === ROOT_TASK_ID) {
|
|
1164
1376
|
throw new ConnectError("Cannot delete the system task", Code.PermissionDenied);
|
|
@@ -1322,6 +1534,9 @@ export function registerGrackleRoutes(router) {
|
|
|
1322
1534
|
},
|
|
1323
1535
|
// ─── Findings ────────────────────────────────────────────
|
|
1324
1536
|
async postFinding(req) {
|
|
1537
|
+
if (!req.title) {
|
|
1538
|
+
throw new ConnectError("title is required", Code.InvalidArgument);
|
|
1539
|
+
}
|
|
1325
1540
|
const id = uuid().slice(0, 8);
|
|
1326
1541
|
findingStore.postFinding(id, req.workspaceId, req.taskId, req.sessionId, req.category, req.title, req.content, [...req.tags]);
|
|
1327
1542
|
emit("finding.posted", { workspaceId: req.workspaceId, findingId: id });
|
|
@@ -1335,6 +1550,58 @@ export function registerGrackleRoutes(router) {
|
|
|
1335
1550
|
findings: rows.map(findingRowToProto),
|
|
1336
1551
|
});
|
|
1337
1552
|
},
|
|
1553
|
+
// ─── Codespaces ────────────────────────────────────────────
|
|
1554
|
+
async listCodespaces() {
|
|
1555
|
+
try {
|
|
1556
|
+
const result = await exec("gh", [
|
|
1557
|
+
"codespace",
|
|
1558
|
+
"list",
|
|
1559
|
+
"--json",
|
|
1560
|
+
"name,repository,state,gitStatus",
|
|
1561
|
+
"--limit",
|
|
1562
|
+
String(GH_CODESPACE_LIST_LIMIT),
|
|
1563
|
+
], { timeout: GH_CODESPACE_LIST_TIMEOUT_MS });
|
|
1564
|
+
const entries = JSON.parse(result.stdout || "[]");
|
|
1565
|
+
return create(grackle.CodespaceListSchema, {
|
|
1566
|
+
codespaces: entries.map((e) => create(grackle.CodespaceInfoSchema, {
|
|
1567
|
+
name: String(e.name ?? ""),
|
|
1568
|
+
repository: String(e.repository ?? ""),
|
|
1569
|
+
state: String(e.state ?? ""),
|
|
1570
|
+
gitStatus: String(e.gitStatus ?? ""),
|
|
1571
|
+
})),
|
|
1572
|
+
});
|
|
1573
|
+
}
|
|
1574
|
+
catch (err) {
|
|
1575
|
+
logger.warn({ err }, "Failed to list codespaces");
|
|
1576
|
+
return create(grackle.CodespaceListSchema, {
|
|
1577
|
+
codespaces: [],
|
|
1578
|
+
error: formatGhError(err, "list codespaces"),
|
|
1579
|
+
});
|
|
1580
|
+
}
|
|
1581
|
+
},
|
|
1582
|
+
async createCodespace(req) {
|
|
1583
|
+
if (!req.repo.trim()) {
|
|
1584
|
+
throw new ConnectError("repo is required", Code.InvalidArgument);
|
|
1585
|
+
}
|
|
1586
|
+
const trimmedRepo = req.repo.trim();
|
|
1587
|
+
const createArgs = ["codespace", "create", "--repo", trimmedRepo];
|
|
1588
|
+
if (req.machine.trim()) {
|
|
1589
|
+
createArgs.push("--machine", req.machine.trim());
|
|
1590
|
+
}
|
|
1591
|
+
try {
|
|
1592
|
+
const result = await exec("gh", createArgs, {
|
|
1593
|
+
timeout: GH_CODESPACE_CREATE_TIMEOUT_MS,
|
|
1594
|
+
});
|
|
1595
|
+
return create(grackle.CreateCodespaceResponseSchema, {
|
|
1596
|
+
name: result.stdout.trim(),
|
|
1597
|
+
repository: trimmedRepo,
|
|
1598
|
+
});
|
|
1599
|
+
}
|
|
1600
|
+
catch (err) {
|
|
1601
|
+
logger.error({ err, repo: trimmedRepo }, "Failed to create codespace");
|
|
1602
|
+
throw new ConnectError(formatGhError(err, "create codespace"), Code.Internal);
|
|
1603
|
+
}
|
|
1604
|
+
},
|
|
1338
1605
|
// ─── GitHub Import ────────────────────────────────────────
|
|
1339
1606
|
async importGitHubIssues(req) {
|
|
1340
1607
|
if (req.state === grackle.IssueState.UNSPECIFIED) {
|