@grackle-ai/server 0.71.3 → 0.72.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/dist/auto-reconnect.js +3 -3
- package/dist/auto-reconnect.js.map +1 -1
- package/dist/compute-task-status.d.ts +1 -5
- package/dist/compute-task-status.d.ts.map +1 -1
- package/dist/compute-task-status.js +3 -24
- package/dist/compute-task-status.js.map +1 -1
- package/dist/credential-bundle.d.ts +12 -0
- package/dist/credential-bundle.d.ts.map +1 -0
- package/dist/credential-bundle.js +183 -0
- package/dist/credential-bundle.js.map +1 -0
- package/dist/credential-providers.d.ts +0 -10
- package/dist/credential-providers.d.ts.map +1 -1
- package/dist/credential-providers.js +5 -177
- package/dist/credential-providers.js.map +1 -1
- package/dist/db-seed.d.ts +16 -0
- package/dist/db-seed.d.ts.map +1 -0
- package/dist/db-seed.js +176 -0
- package/dist/db-seed.js.map +1 -0
- package/dist/db.d.ts.map +1 -1
- package/dist/db.js +15 -165
- package/dist/db.js.map +1 -1
- package/dist/event-processor.d.ts.map +1 -1
- package/dist/event-processor.js +14 -19
- package/dist/event-processor.js.map +1 -1
- package/dist/finding-store.d.ts +0 -2
- package/dist/finding-store.d.ts.map +1 -1
- package/dist/finding-store.js +0 -23
- package/dist/finding-store.js.map +1 -1
- package/dist/grpc-service.d.ts.map +1 -1
- package/dist/grpc-service.js +50 -53
- package/dist/grpc-service.js.map +1 -1
- package/dist/index.js +6 -4
- package/dist/index.js.map +1 -1
- package/dist/lifecycle.d.ts +7 -6
- package/dist/lifecycle.d.ts.map +1 -1
- package/dist/lifecycle.js +37 -18
- package/dist/lifecycle.js.map +1 -1
- package/dist/orchestrator-context.js +27 -1
- package/dist/orchestrator-context.js.map +1 -1
- package/dist/pipe-delivery.d.ts.map +1 -1
- package/dist/pipe-delivery.js +5 -8
- package/dist/pipe-delivery.js.map +1 -1
- package/dist/schema.d.ts +19 -0
- package/dist/schema.d.ts.map +1 -1
- package/dist/schema.js +1 -0
- package/dist/schema.js.map +1 -1
- package/dist/session-recovery.js +3 -3
- package/dist/session-recovery.js.map +1 -1
- package/dist/session-store.d.ts +5 -6
- package/dist/session-store.d.ts.map +1 -1
- package/dist/session-store.js +7 -15
- package/dist/session-store.js.map +1 -1
- package/dist/signals/sigchld.d.ts.map +1 -1
- package/dist/signals/sigchld.js +17 -12
- package/dist/signals/sigchld.js.map +1 -1
- package/dist/task-store.d.ts +24 -1
- package/dist/task-store.d.ts.map +1 -1
- package/dist/task-store.js +43 -20
- package/dist/task-store.js.map +1 -1
- package/dist/{token-broker.d.ts → token-push.d.ts} +3 -27
- package/dist/token-push.d.ts.map +1 -0
- package/dist/{token-broker.js → token-push.js} +25 -71
- package/dist/token-push.js.map +1 -0
- package/dist/token-store.d.ts +25 -0
- package/dist/token-store.d.ts.map +1 -0
- package/dist/token-store.js +58 -0
- package/dist/token-store.js.map +1 -0
- package/dist/ws-bridge.d.ts.map +1 -1
- package/dist/ws-bridge.js +32 -38
- package/dist/ws-bridge.js.map +1 -1
- package/package.json +7 -7
- package/dist/token-broker.d.ts.map +0 -1
- package/dist/token-broker.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-store.d.ts","sourceRoot":"","sources":["../src/session-store.ts"],"names":[],"mappings":"AACA,OAAO,EAAY,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AAGxD,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"session-store.d.ts","sourceRoot":"","sources":["../src/session-store.ts"],"names":[],"mappings":"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"}
|
package/dist/session-store.js
CHANGED
|
@@ -48,14 +48,16 @@ export function listByEnv(environmentId) {
|
|
|
48
48
|
.all();
|
|
49
49
|
}
|
|
50
50
|
/** Update a session's status and error; auto-sets `endedAt` for terminal states.
|
|
51
|
-
* Only updates `runtimeSessionId` when explicitly provided (omitting preserves the current value).
|
|
52
|
-
|
|
53
|
-
|
|
51
|
+
* Only updates `runtimeSessionId` when explicitly provided (omitting preserves the current value).
|
|
52
|
+
* `endReason` is only meaningful when status is STOPPED — it records why the session ended. */
|
|
53
|
+
export function updateSession(id, status, runtimeSessionId, error, endReason) {
|
|
54
|
+
const endedAt = status === SESSION_STATUS.STOPPED
|
|
54
55
|
? new Date().toISOString()
|
|
55
56
|
: null;
|
|
56
57
|
const patch = {
|
|
57
58
|
status,
|
|
58
59
|
endedAt,
|
|
60
|
+
endReason: endReason ?? null,
|
|
59
61
|
error: error ?? null,
|
|
60
62
|
};
|
|
61
63
|
if (runtimeSessionId !== undefined) {
|
|
@@ -154,10 +156,10 @@ export function getSuspendedForEnv(environmentId) {
|
|
|
154
156
|
.orderBy(asc(sessions.startedAt))
|
|
155
157
|
.all();
|
|
156
158
|
}
|
|
157
|
-
/** Clear terminal state for reanimate — reset status to running, clear endedAt/error/suspendedAt. */
|
|
159
|
+
/** Clear terminal state for reanimate — reset status to running, clear endedAt/endReason/error/suspendedAt. */
|
|
158
160
|
export function reanimateSession(id) {
|
|
159
161
|
db.update(sessions)
|
|
160
|
-
.set({ status: SESSION_STATUS.RUNNING, endedAt: null, error: null, suspendedAt: null })
|
|
162
|
+
.set({ status: SESSION_STATUS.RUNNING, endedAt: null, endReason: null, error: null, suspendedAt: null })
|
|
161
163
|
.where(eq(sessions.id, id))
|
|
162
164
|
.run();
|
|
163
165
|
}
|
|
@@ -192,16 +194,6 @@ export function listSessionsByTaskIds(taskIds) {
|
|
|
192
194
|
.orderBy(asc(sessions.startedAt), asc(sessions.id))
|
|
193
195
|
.all();
|
|
194
196
|
}
|
|
195
|
-
/** Transition a session to HIBERNATING — process dead, JSONL persists, reanimate-safe. */
|
|
196
|
-
export function hibernateSession(id) {
|
|
197
|
-
db.update(sessions)
|
|
198
|
-
.set({
|
|
199
|
-
status: SESSION_STATUS.HIBERNATING,
|
|
200
|
-
endedAt: new Date().toISOString(),
|
|
201
|
-
})
|
|
202
|
-
.where(eq(sessions.id, id))
|
|
203
|
-
.run();
|
|
204
|
-
}
|
|
205
197
|
/** List all child sessions spawned by a parent session. */
|
|
206
198
|
export function getChildSessions(parentSessionId) {
|
|
207
199
|
return db.select().from(sessions)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-store.js","sourceRoot":"","sources":["../src/session-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,QAAQ,EAAmB,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAKpD,qDAAqD;AACrD,MAAM,UAAU,aAAa,CAC3B,EAAU,EACV,aAAqB,EACrB,OAAe,EACf,MAAc,EACd,KAAa,EACb,OAAe,EACf,SAAiB,EAAE,EACnB,YAAoB,EAAE,EACtB,kBAA0B,EAAE,EAC5B,WAAqB,EAAE;IAEvB,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC;QACzB,EAAE;QACF,aAAa;QACb,OAAO;QACP,MAAM;QACN,KAAK;QACL,OAAO;QACP,MAAM;QACN,SAAS;QACT,eAAe;QACf,QAAQ;QACR,0EAA0E;QAC1E,0EAA0E;QAC1E,sEAAsE;QACtE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACpC,CAAC,CAAC,GAAG,EAAE,CAAC;AACX,CAAC;AAED,uCAAuC;AACvC,MAAM,UAAU,UAAU,CAAC,EAAU;IACnC,OAAO,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACrE,CAAC;AAED,uEAAuE;AACvE,MAAM,UAAU,YAAY,CAAC,aAAsB,EAAE,MAAe;IAClE,MAAM,UAAU,GAAG,EAAE,CAAC;IACtB,IAAI,aAAa,EAAE,CAAC;QAClB,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC,CAAC;IAC7D,CAAC;IACD,IAAI,MAAM,EAAE,CAAC;QACX,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,KAAK,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACzC,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;IACjF,CAAC;IACD,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACvD,CAAC;AAED,6DAA6D;AAC7D,MAAM,UAAU,SAAS,CAAC,aAAqB;IAC7C,OAAO,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC;SAC9B,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;SAChD,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;SACjC,GAAG,EAAE,CAAC;AACX,CAAC;AAED;
|
|
1
|
+
{"version":3,"file":"session-store.js","sourceRoot":"","sources":["../src/session-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sigchld.d.ts","sourceRoot":"","sources":["../../src/signals/sigchld.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sigchld.d.ts","sourceRoot":"","sources":["../../src/signals/sigchld.ts"],"names":[],"mappings":"AAyCA,wBAAgB,qBAAqB,IAAI,IAAI,CA2B5C;AAyHD;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAGvC"}
|
package/dist/signals/sigchld.js
CHANGED
|
@@ -9,28 +9,23 @@ import { logger } from "../logger.js";
|
|
|
9
9
|
const MAX_LAST_MESSAGE_LENGTH = 2000;
|
|
10
10
|
/**
|
|
11
11
|
* Session statuses that trigger SIGCHLD. LLM agents don't reliably exit() —
|
|
12
|
-
* they go IDLE when they stop working.
|
|
12
|
+
* they go IDLE when they stop working. STOPPED fires when the session's event
|
|
13
13
|
* stream ends (agent-initiated, not user-initiated — the user marking a task
|
|
14
14
|
* "Complete" emits task.completed which this subscriber does not listen to).
|
|
15
|
-
* Dedup prevents double notification if both IDLE and
|
|
15
|
+
* Dedup prevents double notification if both IDLE and STOPPED fire for the
|
|
16
16
|
* same session.
|
|
17
17
|
*/
|
|
18
18
|
const SIGCHLD_STATUSES = new Set([
|
|
19
19
|
SESSION_STATUS.IDLE,
|
|
20
|
-
SESSION_STATUS.
|
|
21
|
-
SESSION_STATUS.FAILED,
|
|
22
|
-
SESSION_STATUS.INTERRUPTED,
|
|
20
|
+
SESSION_STATUS.STOPPED,
|
|
23
21
|
]);
|
|
24
22
|
/** How long (ms) to remember a delivered notification before allowing re-delivery. */
|
|
25
23
|
const DEDUP_TTL_MS = 3_600_000; // 1 hour
|
|
26
24
|
/** Track delivered notifications to prevent duplicates: key → delivery timestamp. */
|
|
27
25
|
const delivered = new Map();
|
|
28
|
-
/** Human-readable status labels for the notification text. */
|
|
26
|
+
/** Human-readable status labels for the notification text (non-STOPPED statuses only). */
|
|
29
27
|
const STATUS_LABELS = {
|
|
30
28
|
[SESSION_STATUS.IDLE]: "finished working (awaiting review)",
|
|
31
|
-
[SESSION_STATUS.COMPLETED]: "completed successfully",
|
|
32
|
-
[SESSION_STATUS.FAILED]: "failed",
|
|
33
|
-
[SESSION_STATUS.INTERRUPTED]: "was interrupted",
|
|
34
29
|
};
|
|
35
30
|
/**
|
|
36
31
|
* Initialize the SIGCHLD event-bus subscriber.
|
|
@@ -99,7 +94,17 @@ async function handleTaskUpdated(childTaskId) {
|
|
|
99
94
|
// Extract the last text message from the child's session log
|
|
100
95
|
const lastTextMessage = extractLastTextMessage(latestSession.logPath || undefined);
|
|
101
96
|
// Format the notification with actionable instructions for the parent
|
|
102
|
-
|
|
97
|
+
let statusLabel;
|
|
98
|
+
if (latestSession.status === SESSION_STATUS.STOPPED) {
|
|
99
|
+
statusLabel = latestSession.endReason === "completed"
|
|
100
|
+
? "completed successfully"
|
|
101
|
+
: latestSession.endReason === "killed"
|
|
102
|
+
? "was killed"
|
|
103
|
+
: "crashed unexpectedly";
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
statusLabel = STATUS_LABELS[latestSession.status] || latestSession.status;
|
|
107
|
+
}
|
|
103
108
|
let message = `[SIGCHLD] Child task "${childTask.title}" (${childTaskId}) ${statusLabel}.`;
|
|
104
109
|
if (lastTextMessage) {
|
|
105
110
|
const truncated = lastTextMessage.length > MAX_LAST_MESSAGE_LENGTH
|
|
@@ -112,8 +117,8 @@ async function handleTaskUpdated(childTaskId) {
|
|
|
112
117
|
+ `task_complete({ taskId: "${childTaskId}" }). `
|
|
113
118
|
+ "If more work is needed, send additional input to the child's session.";
|
|
114
119
|
}
|
|
115
|
-
else if (latestSession.status === SESSION_STATUS.
|
|
116
|
-
message += "\n\nThe child task
|
|
120
|
+
else if (latestSession.status === SESSION_STATUS.STOPPED && latestSession.endReason === "interrupted") {
|
|
121
|
+
message += "\n\nThe child task crashed unexpectedly. Review the error and decide whether to retry or reassign the work.";
|
|
117
122
|
}
|
|
118
123
|
logger.info({ childTaskId, parentTaskId: childTask.parentTaskId, status: latestSession.status }, "Delivering SIGCHLD to parent task");
|
|
119
124
|
const success = await deliverSignalToTask(childTask.parentTaskId, "sigchld", message);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sigchld.js","sourceRoot":"","sources":["../../src/signals/sigchld.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAqB,MAAM,iBAAiB,CAAC;AAC/D,OAAO,KAAK,SAAS,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,YAAY,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,4EAA4E;AAC5E,MAAM,uBAAuB,GAAW,IAAI,CAAC;AAE7C;;;;;;;GAOG;AACH,MAAM,gBAAgB,GAAwB,IAAI,GAAG,CAAC;IACpD,cAAc,CAAC,IAAI;IACnB,cAAc,CAAC,
|
|
1
|
+
{"version":3,"file":"sigchld.js","sourceRoot":"","sources":["../../src/signals/sigchld.ts"],"names":[],"mappings":"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"}
|
package/dist/task-store.d.ts
CHANGED
|
@@ -1,7 +1,30 @@
|
|
|
1
1
|
import { type TaskRow } from "./schema.js";
|
|
2
2
|
import type { TaskStatus } from "@grackle-ai/common";
|
|
3
3
|
export type { TaskRow };
|
|
4
|
-
/**
|
|
4
|
+
/** Fields required to insert a task row directly (no business logic). */
|
|
5
|
+
export interface InsertTaskFields {
|
|
6
|
+
id: string;
|
|
7
|
+
workspaceId?: string;
|
|
8
|
+
title: string;
|
|
9
|
+
description: string;
|
|
10
|
+
branch: string;
|
|
11
|
+
dependsOn: string[];
|
|
12
|
+
parentTaskId: string;
|
|
13
|
+
depth: number;
|
|
14
|
+
canDecompose: boolean;
|
|
15
|
+
defaultPersonaId: string;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Low-level insert — writes a task row with all fields pre-computed.
|
|
19
|
+
* Auto-assigns `sortOrder` based on the workspace's current max.
|
|
20
|
+
* No business logic (parent validation, branch generation, depth limits).
|
|
21
|
+
*/
|
|
22
|
+
export declare function insertTask(fields: InsertTaskFields): void;
|
|
23
|
+
/**
|
|
24
|
+
* Create a task with business logic: validates parent, enforces depth limits,
|
|
25
|
+
* auto-generates branch name, and derives canDecompose.
|
|
26
|
+
* Delegates the actual insert to {@link insertTask}.
|
|
27
|
+
*/
|
|
5
28
|
export declare function createTask(id: string, workspaceId: string | undefined, title: string, description: string, dependsOn: string[], workspaceSlug: string, parentTaskId?: string, canDecompose?: boolean, defaultPersonaId?: string): void;
|
|
6
29
|
/** Retrieve a single task by ID. */
|
|
7
30
|
export declare function getTask(id: string): TaskRow | undefined;
|
package/dist/task-store.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task-store.d.ts","sourceRoot":"","sources":["../src/task-store.ts"],"names":[],"mappings":"AACA,OAAO,EAAS,KAAK,OAAO,EAAE,MAAM,aAAa,CAAC;AAGlD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAKrD,YAAY,EAAE,OAAO,EAAE,CAAC;AAExB,
|
|
1
|
+
{"version":3,"file":"task-store.d.ts","sourceRoot":"","sources":["../src/task-store.ts"],"names":[],"mappings":"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"}
|
package/dist/task-store.js
CHANGED
|
@@ -5,7 +5,45 @@ import { TASK_STATUS, taskStatusToEnum, taskStatusToString } from "@grackle-ai/c
|
|
|
5
5
|
import { MAX_TASK_DEPTH } from "@grackle-ai/common";
|
|
6
6
|
import { safeParseJsonArray } from "./json-helpers.js";
|
|
7
7
|
import { slugify } from "./utils/slugify.js";
|
|
8
|
-
/**
|
|
8
|
+
/**
|
|
9
|
+
* Low-level insert — writes a task row with all fields pre-computed.
|
|
10
|
+
* Auto-assigns `sortOrder` based on the workspace's current max.
|
|
11
|
+
* No business logic (parent validation, branch generation, depth limits).
|
|
12
|
+
*/
|
|
13
|
+
export function insertTask(fields) {
|
|
14
|
+
const depsJson = JSON.stringify(fields.dependsOn);
|
|
15
|
+
const sortOrderConditions = [];
|
|
16
|
+
if (fields.workspaceId) {
|
|
17
|
+
sortOrderConditions.push(eq(tasks.workspaceId, fields.workspaceId));
|
|
18
|
+
}
|
|
19
|
+
const maxRowQuery = db
|
|
20
|
+
.select({ maxOrder: sql `max(sort_order)` })
|
|
21
|
+
.from(tasks);
|
|
22
|
+
const maxRow = sortOrderConditions.length > 0
|
|
23
|
+
? maxRowQuery.where(and(...sortOrderConditions)).get()
|
|
24
|
+
: maxRowQuery.get();
|
|
25
|
+
const sortOrder = (maxRow?.maxOrder ?? -1) + 1;
|
|
26
|
+
db.insert(tasks)
|
|
27
|
+
.values({
|
|
28
|
+
id: fields.id,
|
|
29
|
+
workspaceId: fields.workspaceId || null,
|
|
30
|
+
title: fields.title,
|
|
31
|
+
description: fields.description,
|
|
32
|
+
branch: fields.branch,
|
|
33
|
+
dependsOn: depsJson,
|
|
34
|
+
sortOrder,
|
|
35
|
+
parentTaskId: fields.parentTaskId,
|
|
36
|
+
depth: fields.depth,
|
|
37
|
+
canDecompose: fields.canDecompose,
|
|
38
|
+
defaultPersonaId: fields.defaultPersonaId,
|
|
39
|
+
})
|
|
40
|
+
.run();
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Create a task with business logic: validates parent, enforces depth limits,
|
|
44
|
+
* auto-generates branch name, and derives canDecompose.
|
|
45
|
+
* Delegates the actual insert to {@link insertTask}.
|
|
46
|
+
*/
|
|
9
47
|
export function createTask(id, workspaceId, title, description, dependsOn, workspaceSlug, parentTaskId = "", canDecompose, defaultPersonaId = "") {
|
|
10
48
|
let depth = 0;
|
|
11
49
|
let branch;
|
|
@@ -29,33 +67,18 @@ export function createTask(id, workspaceId, title, description, dependsOn, works
|
|
|
29
67
|
}
|
|
30
68
|
// Derive canDecompose when not explicitly set: root=true, child=false
|
|
31
69
|
const resolvedCanDecompose = canDecompose ?? !parentTaskId;
|
|
32
|
-
|
|
33
|
-
const sortOrderConditions = [];
|
|
34
|
-
if (workspaceId) {
|
|
35
|
-
sortOrderConditions.push(eq(tasks.workspaceId, workspaceId));
|
|
36
|
-
}
|
|
37
|
-
const maxRowQuery = db
|
|
38
|
-
.select({ maxOrder: sql `max(sort_order)` })
|
|
39
|
-
.from(tasks);
|
|
40
|
-
const maxRow = sortOrderConditions.length > 0
|
|
41
|
-
? maxRowQuery.where(and(...sortOrderConditions)).get()
|
|
42
|
-
: maxRowQuery.get();
|
|
43
|
-
const sortOrder = (maxRow?.maxOrder ?? -1) + 1;
|
|
44
|
-
db.insert(tasks)
|
|
45
|
-
.values({
|
|
70
|
+
insertTask({
|
|
46
71
|
id,
|
|
47
|
-
workspaceId
|
|
72
|
+
workspaceId,
|
|
48
73
|
title,
|
|
49
74
|
description,
|
|
50
75
|
branch,
|
|
51
|
-
dependsOn
|
|
52
|
-
sortOrder,
|
|
76
|
+
dependsOn,
|
|
53
77
|
parentTaskId,
|
|
54
78
|
depth,
|
|
55
79
|
canDecompose: resolvedCanDecompose,
|
|
56
80
|
defaultPersonaId,
|
|
57
|
-
})
|
|
58
|
-
.run();
|
|
81
|
+
});
|
|
59
82
|
}
|
|
60
83
|
/** Retrieve a single task by ID. */
|
|
61
84
|
export function getTask(id) {
|
package/dist/task-store.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task-store.js","sourceRoot":"","sources":["../src/task-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,KAAK,EAAgB,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAY,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAEvF,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"task-store.js","sourceRoot":"","sources":["../src/task-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,26 +1,3 @@
|
|
|
1
|
-
import { powerline } from "@grackle-ai/common";
|
|
2
|
-
interface TokenConfig {
|
|
3
|
-
name: string;
|
|
4
|
-
type: string;
|
|
5
|
-
envVar?: string;
|
|
6
|
-
filePath?: string;
|
|
7
|
-
value: string;
|
|
8
|
-
expiresAt?: string;
|
|
9
|
-
}
|
|
10
|
-
/** Encrypt and store a token, then auto-push to all connected environments. */
|
|
11
|
-
export declare function setToken(entry: TokenConfig): Promise<void>;
|
|
12
|
-
/** Delete a token by name and re-push the updated bundle to all environments. */
|
|
13
|
-
export declare function deleteToken(name: string): Promise<void>;
|
|
14
|
-
/** List all stored tokens (values are omitted for security). */
|
|
15
|
-
export declare function listTokens(): Array<{
|
|
16
|
-
name: string;
|
|
17
|
-
type: string;
|
|
18
|
-
envVar?: string;
|
|
19
|
-
filePath?: string;
|
|
20
|
-
expiresAt?: string;
|
|
21
|
-
}>;
|
|
22
|
-
/** Build a decrypted token bundle suitable for pushing to a PowerLine. */
|
|
23
|
-
export declare function getBundle(): powerline.TokenBundle;
|
|
24
1
|
/** Options for {@link pushToEnv}. */
|
|
25
2
|
export interface PushToEnvOptions {
|
|
26
3
|
/** When true, filter out file-type tokens (only push env vars). */
|
|
@@ -28,6 +5,8 @@ export interface PushToEnvOptions {
|
|
|
28
5
|
}
|
|
29
6
|
/** Push the current token bundle to a single connected environment. */
|
|
30
7
|
export declare function pushToEnv(environmentId: string, options?: PushToEnvOptions): Promise<void>;
|
|
8
|
+
/** Push the current token bundle to all connected environments in parallel. */
|
|
9
|
+
export declare function pushToAll(): Promise<void>;
|
|
31
10
|
/**
|
|
32
11
|
* Push enabled provider credentials to a single connected environment.
|
|
33
12
|
* When `runtime` is specified, only providers relevant to that runtime are included.
|
|
@@ -40,7 +19,4 @@ export declare function pushProviderCredentialsToEnv(environmentId: string, runt
|
|
|
40
19
|
* Both pushes run concurrently; failures are logged as warnings and do not block.
|
|
41
20
|
*/
|
|
42
21
|
export declare function refreshTokensForTask(environmentId: string, runtime?: string, options?: PushToEnvOptions): Promise<void>;
|
|
43
|
-
|
|
44
|
-
export declare function pushToAll(): Promise<void>;
|
|
45
|
-
export {};
|
|
46
|
-
//# sourceMappingURL=token-broker.d.ts.map
|
|
22
|
+
//# sourceMappingURL=token-push.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token-push.d.ts","sourceRoot":"","sources":["../src/token-push.ts"],"names":[],"mappings":"AAeA,qCAAqC;AACrC,MAAM,WAAW,gBAAgB;IAC/B,mEAAmE;IACnE,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,uEAAuE;AACvE,wBAAsB,SAAS,CAAC,aAAa,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAiBhG;AAED,+EAA+E;AAC/E,wBAAsB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAc/C;AAED;;;;GAIG;AACH,wBAAsB,4BAA4B,CAAC,aAAa,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAiBrI;AAED;;;;GAIG;AACH,wBAAsB,oBAAoB,CAAC,aAAa,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAY7H"}
|
|
@@ -1,63 +1,17 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Token push orchestration — distributes stored tokens and credential
|
|
3
|
+
* provider bundles to connected PowerLine environments.
|
|
4
|
+
*
|
|
5
|
+
* This is service-level logic that depends on adapter-manager (network) and
|
|
6
|
+
* env-registry (lookup). The pure persistence layer lives in
|
|
7
|
+
* {@link ./token-store.ts}, and credential bundle building lives in
|
|
8
|
+
* {@link ./credential-bundle.ts}.
|
|
9
|
+
*/
|
|
7
10
|
import * as adapterManager from "./adapter-manager.js";
|
|
8
11
|
import * as envRegistry from "./env-registry.js";
|
|
12
|
+
import { getBundle } from "./token-store.js";
|
|
13
|
+
import { buildProviderTokenBundle } from "./credential-bundle.js";
|
|
9
14
|
import { logger } from "./logger.js";
|
|
10
|
-
import { buildProviderTokenBundle } from "./credential-providers.js";
|
|
11
|
-
/** Encrypt and store a token, then auto-push to all connected environments. */
|
|
12
|
-
export async function setToken(entry) {
|
|
13
|
-
const encrypted = {
|
|
14
|
-
...entry,
|
|
15
|
-
value: encrypt(entry.value),
|
|
16
|
-
};
|
|
17
|
-
db.insert(tokens)
|
|
18
|
-
.values({ id: entry.name, config: JSON.stringify(encrypted) })
|
|
19
|
-
.onConflictDoUpdate({
|
|
20
|
-
target: tokens.id,
|
|
21
|
-
set: { config: JSON.stringify(encrypted) },
|
|
22
|
-
})
|
|
23
|
-
.run();
|
|
24
|
-
// Auto-push to all connected environments
|
|
25
|
-
await pushToAll();
|
|
26
|
-
}
|
|
27
|
-
/** Delete a token by name and re-push the updated bundle to all environments. */
|
|
28
|
-
export async function deleteToken(name) {
|
|
29
|
-
db.delete(tokens).where(eq(tokens.id, name)).run();
|
|
30
|
-
await pushToAll();
|
|
31
|
-
}
|
|
32
|
-
/** List all stored tokens (values are omitted for security). */
|
|
33
|
-
export function listTokens() {
|
|
34
|
-
const rows = db.select().from(tokens).all();
|
|
35
|
-
return rows.map((row) => {
|
|
36
|
-
const cfg = JSON.parse(row.config);
|
|
37
|
-
return {
|
|
38
|
-
name: cfg.name,
|
|
39
|
-
type: cfg.type,
|
|
40
|
-
envVar: cfg.envVar,
|
|
41
|
-
filePath: cfg.filePath,
|
|
42
|
-
expiresAt: cfg.expiresAt,
|
|
43
|
-
};
|
|
44
|
-
});
|
|
45
|
-
}
|
|
46
|
-
/** Build a decrypted token bundle suitable for pushing to a PowerLine. */
|
|
47
|
-
export function getBundle() {
|
|
48
|
-
const rows = db.select().from(tokens).all();
|
|
49
|
-
const items = rows.map((row) => {
|
|
50
|
-
const cfg = JSON.parse(row.config);
|
|
51
|
-
return create(powerline.TokenItemSchema, {
|
|
52
|
-
name: cfg.name,
|
|
53
|
-
type: cfg.type,
|
|
54
|
-
envVar: cfg.envVar || "",
|
|
55
|
-
filePath: cfg.filePath || "",
|
|
56
|
-
value: decrypt(cfg.value),
|
|
57
|
-
});
|
|
58
|
-
});
|
|
59
|
-
return create(powerline.TokenBundleSchema, { tokens: items });
|
|
60
|
-
}
|
|
61
15
|
/** Push the current token bundle to a single connected environment. */
|
|
62
16
|
export async function pushToEnv(environmentId, options) {
|
|
63
17
|
const conn = adapterManager.getConnection(environmentId);
|
|
@@ -73,6 +27,19 @@ export async function pushToEnv(environmentId, options) {
|
|
|
73
27
|
}
|
|
74
28
|
await conn.client.pushTokens(bundle);
|
|
75
29
|
}
|
|
30
|
+
/** Push the current token bundle to all connected environments in parallel. */
|
|
31
|
+
export async function pushToAll() {
|
|
32
|
+
const connections = adapterManager.listConnections();
|
|
33
|
+
const promises = [];
|
|
34
|
+
for (const [environmentId] of connections) {
|
|
35
|
+
const env = envRegistry.getEnvironment(environmentId);
|
|
36
|
+
const opts = env?.adapterType === "local" ? { excludeFileTokens: true } : undefined;
|
|
37
|
+
promises.push(pushToEnv(environmentId, opts).catch((err) => {
|
|
38
|
+
logger.error({ environmentId, err }, "Failed to push tokens");
|
|
39
|
+
}));
|
|
40
|
+
}
|
|
41
|
+
await Promise.all(promises);
|
|
42
|
+
}
|
|
76
43
|
/**
|
|
77
44
|
* Push enabled provider credentials to a single connected environment.
|
|
78
45
|
* When `runtime` is specified, only providers relevant to that runtime are included.
|
|
@@ -109,17 +76,4 @@ export async function refreshTokensForTask(environmentId, runtime, options) {
|
|
|
109
76
|
logger.warn({ environmentId, err: results[1].reason }, "Failed to push provider credentials before task start");
|
|
110
77
|
}
|
|
111
78
|
}
|
|
112
|
-
|
|
113
|
-
export async function pushToAll() {
|
|
114
|
-
const connections = adapterManager.listConnections();
|
|
115
|
-
const promises = [];
|
|
116
|
-
for (const [environmentId] of connections) {
|
|
117
|
-
const env = envRegistry.getEnvironment(environmentId);
|
|
118
|
-
const opts = env?.adapterType === "local" ? { excludeFileTokens: true } : undefined;
|
|
119
|
-
promises.push(pushToEnv(environmentId, opts).catch((err) => {
|
|
120
|
-
logger.error({ environmentId, err }, "Failed to push tokens");
|
|
121
|
-
}));
|
|
122
|
-
}
|
|
123
|
-
await Promise.all(promises);
|
|
124
|
-
}
|
|
125
|
-
//# sourceMappingURL=token-broker.js.map
|
|
79
|
+
//# sourceMappingURL=token-push.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token-push.js","sourceRoot":"","sources":["../src/token-push.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { powerline } from "@grackle-ai/common";
|
|
2
|
+
/** Shape of a token's stored configuration. */
|
|
3
|
+
export interface TokenConfig {
|
|
4
|
+
name: string;
|
|
5
|
+
type: string;
|
|
6
|
+
envVar?: string;
|
|
7
|
+
filePath?: string;
|
|
8
|
+
value: string;
|
|
9
|
+
expiresAt?: string;
|
|
10
|
+
}
|
|
11
|
+
/** Encrypt and store (or update) a token. */
|
|
12
|
+
export declare function setToken(entry: TokenConfig): void;
|
|
13
|
+
/** Delete a token by name. */
|
|
14
|
+
export declare function deleteToken(name: string): void;
|
|
15
|
+
/** List all stored tokens (values are omitted for security). */
|
|
16
|
+
export declare function listTokens(): Array<{
|
|
17
|
+
name: string;
|
|
18
|
+
type: string;
|
|
19
|
+
envVar?: string;
|
|
20
|
+
filePath?: string;
|
|
21
|
+
expiresAt?: string;
|
|
22
|
+
}>;
|
|
23
|
+
/** Build a decrypted token bundle suitable for pushing to a PowerLine. */
|
|
24
|
+
export declare function getBundle(): powerline.TokenBundle;
|
|
25
|
+
//# sourceMappingURL=token-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token-store.d.ts","sourceRoot":"","sources":["../src/token-store.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C,+CAA+C;AAC/C,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,6CAA6C;AAC7C,wBAAgB,QAAQ,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CAYjD;AAED,8BAA8B;AAC9B,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAE9C;AAED,gEAAgE;AAChE,wBAAgB,UAAU,IAAI,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAY1H;AAED,0EAA0E;AAC1E,wBAAgB,SAAS,IAAI,SAAS,CAAC,WAAW,CAcjD"}
|