@grackle-ai/core 0.94.0 → 0.95.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/cron-phase.d.ts +10 -14
- package/dist/cron-phase.d.ts.map +1 -1
- package/dist/cron-phase.js +14 -42
- package/dist/cron-phase.js.map +1 -1
- package/dist/dispatch-phase.js +5 -0
- package/dist/dispatch-phase.js.map +1 -1
- package/dist/subscriber-compat-check.d.ts +14 -0
- package/dist/subscriber-compat-check.d.ts.map +1 -0
- package/dist/subscriber-compat-check.js +14 -0
- package/dist/subscriber-compat-check.js.map +1 -0
- package/package.json +8 -7
package/dist/cron-phase.d.ts
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Cron reconciliation phase — fires due schedules on each tick.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* Creates tasks for due schedules and enqueues them for dispatch.
|
|
5
|
+
* The dispatch phase (separate reconciliation phase) handles starting
|
|
6
|
+
* sessions, respecting concurrency limits, and environment resolution.
|
|
6
7
|
*/
|
|
7
|
-
import type { ScheduleRow
|
|
8
|
+
import type { ScheduleRow } from "@grackle-ai/database";
|
|
8
9
|
import type { GrackleEventType } from "./event-bus.js";
|
|
9
10
|
import type { ReconciliationPhase } from "./reconciliation-manager.js";
|
|
10
11
|
/** Dependencies injected into the cron phase for testability. */
|
|
@@ -17,28 +18,23 @@ export interface CronPhaseDeps {
|
|
|
17
18
|
createTask: (id: string, workspaceId: string | undefined, title: string, description: string, dependsOn: string[], workspaceSlug: string, parentTaskId?: string, canDecompose?: boolean, defaultPersonaId?: string) => void;
|
|
18
19
|
/** Set the schedule_id FK on a task. */
|
|
19
20
|
setTaskScheduleId: (taskId: string, scheduleId: string) => void;
|
|
20
|
-
/**
|
|
21
|
-
|
|
22
|
-
|
|
21
|
+
/** Enqueue a task for the dispatch phase to start. */
|
|
22
|
+
enqueueForDispatch: (entry: {
|
|
23
|
+
id: string;
|
|
24
|
+
taskId: string;
|
|
23
25
|
environmentId?: string;
|
|
24
|
-
|
|
25
|
-
}) =>
|
|
26
|
+
personaId?: string;
|
|
27
|
+
}) => void;
|
|
26
28
|
/** Emit a domain event. */
|
|
27
29
|
emit: (type: GrackleEventType, payload: Record<string, unknown>) => void;
|
|
28
|
-
/** Find the first connected environment (prefers local). */
|
|
29
|
-
findFirstConnectedEnvironment: () => EnvironmentRow | undefined;
|
|
30
30
|
/** Look up a persona by ID. */
|
|
31
31
|
getPersona: (id: string) => {
|
|
32
32
|
id: string;
|
|
33
33
|
name: string;
|
|
34
34
|
runtime: string;
|
|
35
35
|
} | undefined;
|
|
36
|
-
/** Look up a task by ID (to pass to startTaskSession). */
|
|
37
|
-
getTask: (id: string) => TaskRow | undefined;
|
|
38
36
|
/** Enable or disable a schedule, setting or clearing nextRunAt. */
|
|
39
37
|
setScheduleEnabled: (id: string, enabled: boolean, nextRunAt: string | null) => void;
|
|
40
|
-
/** Check if an environment is connected. */
|
|
41
|
-
isEnvironmentConnected: (environmentId: string) => boolean;
|
|
42
38
|
}
|
|
43
39
|
/**
|
|
44
40
|
* Create a ReconciliationPhase that fires due schedules.
|
package/dist/cron-phase.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cron-phase.d.ts","sourceRoot":"","sources":["../src/cron-phase.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"cron-phase.d.ts","sourceRoot":"","sources":["../src/cron-phase.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAGvE,iEAAiE;AACjE,MAAM,WAAW,aAAa;IAC5B,gDAAgD;IAChD,eAAe,EAAE,MAAM,WAAW,EAAE,CAAC;IACrC,+EAA+E;IAC/E,eAAe,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5E,2CAA2C;IAC3C,UAAU,EAAE,CACV,EAAE,EAAE,MAAM,EACV,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EAAE,EACnB,aAAa,EAAE,MAAM,EACrB,YAAY,CAAC,EAAE,MAAM,EACrB,YAAY,CAAC,EAAE,OAAO,EACtB,gBAAgB,CAAC,EAAE,MAAM,KACtB,IAAI,CAAC;IACV,wCAAwC;IACxC,iBAAiB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IAChE,sDAAsD;IACtD,kBAAkB,EAAE,CAAC,KAAK,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IAChH,2BAA2B;IAC3B,IAAI,EAAE,CAAC,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IACzE,+BAA+B;IAC/B,UAAU,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC;IACtF,mEAAmE;IAEnE,kBAAkB,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;CACtF;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,aAAa,GAAG,mBAAmB,CAcxE"}
|
package/dist/cron-phase.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Cron reconciliation phase — fires due schedules on each tick.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* Creates tasks for due schedules and enqueues them for dispatch.
|
|
5
|
+
* The dispatch phase (separate reconciliation phase) handles starting
|
|
6
|
+
* sessions, respecting concurrency limits, and environment resolution.
|
|
6
7
|
*/
|
|
7
8
|
import { v4 as uuidv4 } from "uuid";
|
|
8
9
|
import { logger } from "./logger.js";
|
|
@@ -24,13 +25,13 @@ export function createCronPhase(deps) {
|
|
|
24
25
|
}
|
|
25
26
|
logger.debug({ count: due.length }, "Cron phase: due schedules");
|
|
26
27
|
for (const schedule of due) {
|
|
27
|
-
|
|
28
|
+
fireSchedule(deps, schedule);
|
|
28
29
|
}
|
|
29
30
|
},
|
|
30
31
|
};
|
|
31
32
|
}
|
|
32
|
-
/** Fire a single schedule: create task,
|
|
33
|
-
|
|
33
|
+
/** Fire a single schedule: create task, enqueue for dispatch, advance. */
|
|
34
|
+
function fireSchedule(deps, schedule) {
|
|
34
35
|
const now = new Date().toISOString();
|
|
35
36
|
let nextRunAt;
|
|
36
37
|
try {
|
|
@@ -44,27 +45,6 @@ async function fireSchedule(deps, schedule) {
|
|
|
44
45
|
return;
|
|
45
46
|
}
|
|
46
47
|
try {
|
|
47
|
-
// Resolve environment — check connectivity before creating tasks to avoid orphan tasks
|
|
48
|
-
let environmentId;
|
|
49
|
-
if (schedule.environmentId) {
|
|
50
|
-
// Explicit environment: verify it's connected before creating a task
|
|
51
|
-
if (!deps.isEnvironmentConnected(schedule.environmentId)) {
|
|
52
|
-
logger.warn({ scheduleId: schedule.id, environmentId: schedule.environmentId }, "Schedule fire skipped: specified environment not connected");
|
|
53
|
-
deps.advanceSchedule(schedule.id, now, nextRunAt);
|
|
54
|
-
return;
|
|
55
|
-
}
|
|
56
|
-
environmentId = schedule.environmentId;
|
|
57
|
-
}
|
|
58
|
-
else {
|
|
59
|
-
// Auto-select first connected environment
|
|
60
|
-
const env = deps.findFirstConnectedEnvironment();
|
|
61
|
-
if (!env) {
|
|
62
|
-
logger.warn({ scheduleId: schedule.id }, "Schedule fire skipped: no connected environment");
|
|
63
|
-
deps.advanceSchedule(schedule.id, now, nextRunAt);
|
|
64
|
-
return;
|
|
65
|
-
}
|
|
66
|
-
environmentId = env.id;
|
|
67
|
-
}
|
|
68
48
|
// Validate persona exists
|
|
69
49
|
const persona = deps.getPersona(schedule.personaId);
|
|
70
50
|
if (!persona) {
|
|
@@ -81,25 +61,17 @@ async function fireSchedule(deps, schedule) {
|
|
|
81
61
|
parentTaskId, false, // canDecompose
|
|
82
62
|
schedule.personaId);
|
|
83
63
|
deps.setTaskScheduleId(taskId, schedule.id);
|
|
84
|
-
//
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
// Start the task session
|
|
92
|
-
const error = await deps.startTaskSession(task, {
|
|
93
|
-
environmentId,
|
|
64
|
+
// Enqueue for the dispatch phase to start (respects concurrency limits).
|
|
65
|
+
// Environment resolution is handled by the dispatch phase; we pass the
|
|
66
|
+
// schedule's preferred environmentId as a hint.
|
|
67
|
+
deps.enqueueForDispatch({
|
|
68
|
+
id: uuidv4(),
|
|
69
|
+
taskId,
|
|
70
|
+
environmentId: schedule.environmentId,
|
|
94
71
|
personaId: schedule.personaId,
|
|
95
72
|
});
|
|
96
|
-
// Advance schedule
|
|
73
|
+
// Advance schedule
|
|
97
74
|
deps.advanceSchedule(schedule.id, now, nextRunAt);
|
|
98
|
-
if (error) {
|
|
99
|
-
logger.warn({ scheduleId: schedule.id, taskId, error }, "Schedule fire: task created but session start failed");
|
|
100
|
-
return;
|
|
101
|
-
}
|
|
102
|
-
// Emit event only on successful fire
|
|
103
75
|
deps.emit("schedule.fired", {
|
|
104
76
|
scheduleId: schedule.id,
|
|
105
77
|
taskId,
|
package/dist/cron-phase.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cron-phase.js","sourceRoot":"","sources":["../src/cron-phase.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"cron-phase.js","sourceRoot":"","sources":["../src/cron-phase.ts"],"names":[],"mappings":"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"}
|
package/dist/dispatch-phase.js
CHANGED
|
@@ -40,6 +40,11 @@ export function createDispatchPhase(deps) {
|
|
|
40
40
|
}
|
|
41
41
|
/** Process a single dispatch queue entry. */
|
|
42
42
|
async function dispatchEntry(deps, entry) {
|
|
43
|
+
// Entries with no environmentId are waiting for auto-resolution (#927).
|
|
44
|
+
// Skip them for now — they'll be dispatched once environment resolution is implemented.
|
|
45
|
+
if (!entry.environmentId) {
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
43
48
|
// Dequeue entries whose environment has been removed entirely (not just disconnected)
|
|
44
49
|
if (!deps.environmentExists(entry.environmentId)) {
|
|
45
50
|
deps.dequeueEntry(entry.taskId);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dispatch-phase.js","sourceRoot":"","sources":["../src/dispatch-phase.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dispatch-phase.js","sourceRoot":"","sources":["../src/dispatch-phase.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AA2BrC;;;;;;;;;GASG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAuB;IACzD,OAAO;QACL,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC1C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzB,OAAO;YACT,CAAC;YAED,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,EAAE,iCAAiC,CAAC,CAAC;YAE3E,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;gBAC5B,IAAI,CAAC;oBACH,MAAM,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gBACnC,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,0EAA0E;oBAC1E,6CAA6C;oBAC7C,MAAM,CAAC,KAAK,CACV,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,aAAa,EAAE,KAAK,CAAC,aAAa,EAAE,GAAG,EAAE,EACjE,6CAA6C,CAC9C,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC;AAED,6CAA6C;AAC7C,KAAK,UAAU,aAAa,CAAC,IAAuB,EAAE,KAAuB;IAC3E,wEAAwE;IACxE,wFAAwF;IACxF,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QACzB,OAAO;IACT,CAAC;IAED,sFAAsF;IACtF,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC;QACjD,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAChC,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,aAAa,EAAE,KAAK,CAAC,aAAa,EAAE,EAAE,iDAAiD,CAAC,CAAC;QAC9H,OAAO;IACT,CAAC;IAED,4DAA4D;IAC5D,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC;QACtD,OAAO;IACT,CAAC;IAED,qCAAqC;IACrC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC;QAC3C,OAAO;IACT,CAAC;IAED,yDAAyD;IACzD,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACxC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAChC,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,EAAE,+CAA+C,CAAC,CAAC;QACxF,OAAO;IACT,CAAC;IAED,6FAA6F;IAC7F,4FAA4F;IAC5F,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;QACvC,OAAO;IACT,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE;QAC9C,aAAa,EAAE,KAAK,CAAC,aAAa;QAClC,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,KAAK,EAAE,KAAK,CAAC,KAAK;KACnB,CAAC,CAAC;IAEH,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,CAAC,IAAI,CACT,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,aAAa,EAAE,KAAK,CAAC,aAAa,EAAE,KAAK,EAAE,EACnE,+DAA+D,CAChE,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,mFAAmF;QACnF,0EAA0E;QAC1E,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAChC,MAAM,CAAC,IAAI,CACT,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,aAAa,EAAE,KAAK,CAAC,aAAa,EAAE,EAC5D,wBAAwB,CACzB,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Compile-time compatibility guard.
|
|
3
|
+
*
|
|
4
|
+
* Verifies that plugin-sdk's PluginContext is a structural superset of
|
|
5
|
+
* core's PluginContext, so subscriber factories that accept core's narrow
|
|
6
|
+
* context also accept the full plugin-sdk context.
|
|
7
|
+
*
|
|
8
|
+
* These are pure type-level assertions — no runtime code. If the types
|
|
9
|
+
* drift, `rush build` will fail with a type error here.
|
|
10
|
+
*
|
|
11
|
+
* @module
|
|
12
|
+
*/
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=subscriber-compat-check.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subscriber-compat-check.d.ts","sourceRoot":"","sources":["../src/subscriber-compat-check.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Compile-time compatibility guard.
|
|
3
|
+
*
|
|
4
|
+
* Verifies that plugin-sdk's PluginContext is a structural superset of
|
|
5
|
+
* core's PluginContext, so subscriber factories that accept core's narrow
|
|
6
|
+
* context also accept the full plugin-sdk context.
|
|
7
|
+
*
|
|
8
|
+
* These are pure type-level assertions — no runtime code. If the types
|
|
9
|
+
* drift, `rush build` will fail with a type error here.
|
|
10
|
+
*
|
|
11
|
+
* @module
|
|
12
|
+
*/
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=subscriber-compat-check.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subscriber-compat-check.js","sourceRoot":"","sources":["../src/subscriber-compat-check.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@grackle-ai/core",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.95.1",
|
|
4
4
|
"description": "Core gRPC business logic for Grackle — RPC handlers, event system, streaming, session lifecycle",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -36,12 +36,13 @@
|
|
|
36
36
|
"pino": "^10.3.1",
|
|
37
37
|
"ulid": "^2.3.0",
|
|
38
38
|
"uuid": "^11.0.0",
|
|
39
|
-
"@grackle-ai/adapter-sdk": "0.
|
|
40
|
-
"@grackle-ai/
|
|
41
|
-
"@grackle-ai/
|
|
42
|
-
"@grackle-ai/
|
|
43
|
-
"@grackle-ai/common": "0.
|
|
44
|
-
"@grackle-ai/
|
|
39
|
+
"@grackle-ai/adapter-sdk": "0.95.1",
|
|
40
|
+
"@grackle-ai/database": "0.95.1",
|
|
41
|
+
"@grackle-ai/plugin-sdk": "0.95.1",
|
|
42
|
+
"@grackle-ai/auth": "0.95.1",
|
|
43
|
+
"@grackle-ai/common": "0.95.1",
|
|
44
|
+
"@grackle-ai/knowledge": "0.95.1",
|
|
45
|
+
"@grackle-ai/prompt": "0.95.1"
|
|
45
46
|
},
|
|
46
47
|
"devDependencies": {
|
|
47
48
|
"@rushstack/heft": "1.2.7",
|