@grackle-ai/plugin-core 0.97.0 → 0.99.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.
@@ -1,7 +1,6 @@
1
1
  import { grackle } from "@grackle-ai/common";
2
2
  import type { EnvironmentRow, SessionRow } from "@grackle-ai/database";
3
- import { workspaceStore, taskStore, personaStore, findingStore, escalationStore, scheduleStore } from "@grackle-ai/database";
4
- import type { KnowledgeNode, KnowledgeEdge } from "@grackle-ai/knowledge";
3
+ import { workspaceStore, taskStore, personaStore, findingStore, escalationStore } from "@grackle-ai/database";
5
4
  /** Convert an environment database row to its proto representation. */
6
5
  export declare function envRowToProto(row: EnvironmentRow): grackle.Environment;
7
6
  /** Convert a session database row to its proto representation. */
@@ -14,8 +13,6 @@ export declare function sessionRowToProto(row: SessionRow): grackle.Session;
14
13
  export declare function workspaceRowToProto(row: workspaceStore.WorkspaceRow, linkedEnvMap?: Map<string, string[]>): grackle.Workspace;
15
14
  /** Convert a task database row to its proto representation. */
16
15
  export declare function taskRowToProto(row: taskStore.TaskRow, childIds?: string[], computedStatus?: string, latestSessionId?: string): grackle.Task;
17
- /** Convert a schedule database row to its proto representation. */
18
- export declare function scheduleRowToProto(row: scheduleStore.ScheduleRow): grackle.Schedule;
19
16
  /** Convert a finding database row to its proto representation. */
20
17
  export declare function findingRowToProto(row: findingStore.FindingRow): grackle.Finding;
21
18
  /** Convert an escalation database row to its proto representation. */
@@ -24,8 +21,4 @@ export declare function escalationRowToProto(row: escalationStore.EscalationRow)
24
21
  export declare function safeParseJson<T>(value: string | undefined, fallback: T): T;
25
22
  /** Convert a persona database row to a Persona proto message. */
26
23
  export declare function personaRowToProto(row: personaStore.PersonaRow): grackle.Persona;
27
- /** Convert a KnowledgeNode to its proto representation. */
28
- export declare function knowledgeNodeToProto(node: KnowledgeNode): grackle.KnowledgeNodeProto;
29
- /** Convert a KnowledgeEdge to its proto representation. */
30
- export declare function knowledgeEdgeToProto(edge: KnowledgeEdge): grackle.KnowledgeEdgeProto;
31
24
  //# sourceMappingURL=grpc-proto-converters.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"grpc-proto-converters.d.ts","sourceRoot":"","sources":["../src/grpc-proto-converters.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAK7C,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,aAAa,EAAqD,MAAM,sBAAsB,CAAC;AAChL,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAE1E,uEAAuE;AACvE,wBAAgB,aAAa,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,CAYtE;AAED,kEAAkE;AAClE,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAsBlE;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,cAAc,CAAC,YAAY,EAChC,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GACnC,OAAO,CAAC,SAAS,CAoBnB;AAED,+DAA+D;AAC/D,wBAAgB,cAAc,CAC5B,GAAG,EAAE,SAAS,CAAC,OAAO,EACtB,QAAQ,CAAC,EAAE,MAAM,EAAE,EACnB,cAAc,CAAC,EAAE,MAAM,EACvB,eAAe,CAAC,EAAE,MAAM,GACvB,OAAO,CAAC,IAAI,CAyBd;AAED,mEAAmE;AACnE,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,aAAa,CAAC,WAAW,GAAG,OAAO,CAAC,QAAQ,CAiBnF;AAED,kEAAkE;AAClE,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,YAAY,CAAC,UAAU,GAAG,OAAO,CAAC,OAAO,CAK/E;AAED,sEAAsE;AACtE,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,eAAe,CAAC,aAAa,GAAG,OAAO,CAAC,UAAU,CAe3F;AAED,2EAA2E;AAC3E,wBAAgB,aAAa,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC,CAS1E;AAED,iEAAiE;AACjE,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,YAAY,CAAC,UAAU,GAAG,OAAO,CAAC,OAAO,CAgE/E;AAED,2DAA2D;AAC3D,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,kBAAkB,CAepF;AAED,2DAA2D;AAC3D,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,kBAAkB,CAQpF"}
1
+ {"version":3,"file":"grpc-proto-converters.d.ts","sourceRoot":"","sources":["../src/grpc-proto-converters.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAK7C,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,eAAe,EAAqD,MAAM,sBAAsB,CAAC;AAEjK,uEAAuE;AACvE,wBAAgB,aAAa,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,CAYtE;AAED,kEAAkE;AAClE,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAsBlE;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,cAAc,CAAC,YAAY,EAChC,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GACnC,OAAO,CAAC,SAAS,CAoBnB;AAED,+DAA+D;AAC/D,wBAAgB,cAAc,CAC5B,GAAG,EAAE,SAAS,CAAC,OAAO,EACtB,QAAQ,CAAC,EAAE,MAAM,EAAE,EACnB,cAAc,CAAC,EAAE,MAAM,EACvB,eAAe,CAAC,EAAE,MAAM,GACvB,OAAO,CAAC,IAAI,CAyBd;AAED,kEAAkE;AAClE,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,YAAY,CAAC,UAAU,GAAG,OAAO,CAAC,OAAO,CAK/E;AAED,sEAAsE;AACtE,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,eAAe,CAAC,aAAa,GAAG,OAAO,CAAC,UAAU,CAe3F;AAED,2EAA2E;AAC3E,wBAAgB,aAAa,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC,CAS1E;AAED,iEAAiE;AACjE,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,YAAY,CAAC,UAAU,GAAG,OAAO,CAAC,OAAO,CAgE/E"}
@@ -93,25 +93,6 @@ export function taskRowToProto(row, childIds, computedStatus, latestSessionId) {
93
93
  costBudgetMillicents: row.costBudgetMillicents,
94
94
  });
95
95
  }
96
- /** Convert a schedule database row to its proto representation. */
97
- export function scheduleRowToProto(row) {
98
- return create(grackle.ScheduleSchema, {
99
- id: row.id,
100
- title: row.title,
101
- description: row.description,
102
- scheduleExpression: row.scheduleExpression,
103
- personaId: row.personaId,
104
- environmentId: row.environmentId,
105
- workspaceId: row.workspaceId,
106
- parentTaskId: row.parentTaskId,
107
- enabled: row.enabled,
108
- lastRunAt: row.lastRunAt ?? "",
109
- nextRunAt: row.nextRunAt ?? "",
110
- runCount: row.runCount,
111
- createdAt: row.createdAt,
112
- updatedAt: row.updatedAt,
113
- });
114
- }
115
96
  /** Convert a finding database row to its proto representation. */
116
97
  export function findingRowToProto(row) {
117
98
  return create(grackle.FindingSchema, {
@@ -192,31 +173,4 @@ export function personaRowToProto(row) {
192
173
  allowedMcpTools: safeParseJson(row.allowedMcpTools, []).filter((t) => typeof t === "string"),
193
174
  });
194
175
  }
195
- /** Convert a KnowledgeNode to its proto representation. */
196
- export function knowledgeNodeToProto(node) {
197
- return create(grackle.KnowledgeNodeProtoSchema, {
198
- id: node.id,
199
- kind: node.kind,
200
- workspaceId: node.workspaceId,
201
- createdAt: node.createdAt,
202
- updatedAt: node.updatedAt,
203
- sourceType: node.kind === "reference" ? node.sourceType : "",
204
- sourceId: node.kind === "reference" ? node.sourceId : "",
205
- label: node.kind === "reference" ? node.label : "",
206
- category: node.kind === "native" ? node.category : "",
207
- title: node.kind === "native" ? node.title : "",
208
- content: node.kind === "native" ? node.content : "",
209
- tags: node.kind === "native" ? node.tags : [],
210
- });
211
- }
212
- /** Convert a KnowledgeEdge to its proto representation. */
213
- export function knowledgeEdgeToProto(edge) {
214
- return create(grackle.KnowledgeEdgeProtoSchema, {
215
- fromId: edge.fromId,
216
- toId: edge.toId,
217
- type: edge.type,
218
- metadataJson: edge.metadata ? JSON.stringify(edge.metadata) : "",
219
- createdAt: edge.createdAt,
220
- });
221
- }
222
176
  //# sourceMappingURL=grpc-proto-converters.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"grpc-proto-converters.js","sourceRoot":"","sources":["../src/grpc-proto-converters.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"grpc-proto-converters.js","sourceRoot":"","sources":["../src/grpc-proto-converters.ts"],"names":[],"mappings":"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"}
@@ -17,13 +17,14 @@ import type { ConnectRouter } from "@connectrpc/connect";
17
17
  */
18
18
  export declare function createDefaultCollector(): ServiceCollector;
19
19
  /**
20
- * Create a `ServiceCollector` pre-loaded with only the core (non-orchestration)
21
- * Grackle handler groups: environments, sessions, workspaces, schedules, tokens,
22
- * codespaces, knowledge, and settings.
20
+ * Create a `ServiceCollector` pre-loaded with only the core (non-orchestration,
21
+ * non-scheduling) Grackle handler groups: environments, sessions, workspaces,
22
+ * tokens, codespaces, and settings.
23
23
  *
24
- * Orchestration handlers (tasks, personas, findings, escalations) are intentionally
25
- * excluded — they are contributed by `@grackle-ai/plugin-orchestration` via
26
- * {@link createOrchestrationCollector}.
24
+ * Orchestration handlers (tasks, personas, findings, escalations) are contributed
25
+ * by `@grackle-ai/plugin-orchestration` via {@link createOrchestrationCollector}.
26
+ * Schedule handlers are contributed by `@grackle-ai/plugin-scheduling`.
27
+ * Knowledge handlers are contributed by `@grackle-ai/plugin-knowledge`.
27
28
  */
28
29
  export declare function createCoreCollector(): ServiceCollector;
29
30
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"grpc-service.d.ts","sourceRoot":"","sources":["../src/grpc-service.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAA0B,KAAK,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACjF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAczD;;;;;GAKG;AACH,wBAAgB,sBAAsB,IAAI,gBAAgB,CAezD;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,IAAI,gBAAgB,CAWtD;AAED;;;;;;GAMG;AACH,wBAAgB,4BAA4B,IAAI,gBAAgB,CAO/D;AAED,iFAAiF;AACjF,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,CAEjE"}
1
+ {"version":3,"file":"grpc-service.d.ts","sourceRoot":"","sources":["../src/grpc-service.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAA0B,KAAK,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACjF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAYzD;;;;;GAKG;AACH,wBAAgB,sBAAsB,IAAI,gBAAgB,CAazD;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,IAAI,gBAAgB,CAStD;AAED;;;;;;GAMG;AACH,wBAAgB,4BAA4B,IAAI,gBAAgB,CAO/D;AAED,iFAAiF;AACjF,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,CAEjE"}
@@ -14,12 +14,10 @@ import * as sessions from "./session-handlers.js";
14
14
  import * as tasks from "./task-handlers.js";
15
15
  import * as workspaces from "./workspace-handlers.js";
16
16
  import * as personas from "./persona-handlers.js";
17
- import * as schedules from "./schedule-handlers.js";
18
17
  import * as tokens from "./token-handlers.js";
19
18
  import * as findings from "./finding-handlers.js";
20
19
  import * as escalations from "./escalation-handlers.js";
21
20
  import * as codespaces from "./codespace-handlers.js";
22
- import * as knowledge from "./knowledge-handlers.js";
23
21
  import * as settings from "./settings-handlers.js";
24
22
  /**
25
23
  * Create a `ServiceCollector` pre-loaded with all built-in Grackle handler groups.
@@ -34,33 +32,30 @@ export function createDefaultCollector() {
34
32
  collector.addHandlers(grackle.Grackle, tasks);
35
33
  collector.addHandlers(grackle.Grackle, workspaces);
36
34
  collector.addHandlers(grackle.Grackle, personas);
37
- collector.addHandlers(grackle.Grackle, schedules);
38
35
  collector.addHandlers(grackle.Grackle, tokens);
39
36
  collector.addHandlers(grackle.Grackle, findings);
40
37
  collector.addHandlers(grackle.Grackle, escalations);
41
38
  collector.addHandlers(grackle.Grackle, codespaces);
42
- collector.addHandlers(grackle.Grackle, knowledge);
43
39
  collector.addHandlers(grackle.Grackle, settings);
44
40
  return collector;
45
41
  }
46
42
  /**
47
- * Create a `ServiceCollector` pre-loaded with only the core (non-orchestration)
48
- * Grackle handler groups: environments, sessions, workspaces, schedules, tokens,
49
- * codespaces, knowledge, and settings.
43
+ * Create a `ServiceCollector` pre-loaded with only the core (non-orchestration,
44
+ * non-scheduling) Grackle handler groups: environments, sessions, workspaces,
45
+ * tokens, codespaces, and settings.
50
46
  *
51
- * Orchestration handlers (tasks, personas, findings, escalations) are intentionally
52
- * excluded — they are contributed by `@grackle-ai/plugin-orchestration` via
53
- * {@link createOrchestrationCollector}.
47
+ * Orchestration handlers (tasks, personas, findings, escalations) are contributed
48
+ * by `@grackle-ai/plugin-orchestration` via {@link createOrchestrationCollector}.
49
+ * Schedule handlers are contributed by `@grackle-ai/plugin-scheduling`.
50
+ * Knowledge handlers are contributed by `@grackle-ai/plugin-knowledge`.
54
51
  */
55
52
  export function createCoreCollector() {
56
53
  const collector = createServiceCollector();
57
54
  collector.addHandlers(grackle.Grackle, environments);
58
55
  collector.addHandlers(grackle.Grackle, sessions);
59
56
  collector.addHandlers(grackle.Grackle, workspaces);
60
- collector.addHandlers(grackle.Grackle, schedules);
61
57
  collector.addHandlers(grackle.Grackle, tokens);
62
58
  collector.addHandlers(grackle.Grackle, codespaces);
63
- collector.addHandlers(grackle.Grackle, knowledge);
64
59
  collector.addHandlers(grackle.Grackle, settings);
65
60
  return collector;
66
61
  }
@@ -1 +1 @@
1
- {"version":3,"file":"grpc-service.js","sourceRoot":"","sources":["../src/grpc-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"grpc-service.js","sourceRoot":"","sources":["../src/grpc-service.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -5,8 +5,6 @@ export { createEscalationAutoSubscriber } from "./signals/escalation-auto.js";
5
5
  export { createOrphanReparentSubscriber, transferAllPipeSubscriptions } from "./signals/orphan-reparent.js";
6
6
  export { createRootTaskBootSubscriber } from "./root-task-boot.js";
7
7
  export type { RootTaskBootDeps } from "./root-task-boot.js";
8
- export { createCronPhase } from "./cron-phase.js";
9
- export type { CronPhaseDeps } from "./cron-phase.js";
10
8
  export { createDispatchPhase } from "./dispatch-phase.js";
11
9
  export type { DispatchPhaseDeps } from "./dispatch-phase.js";
12
10
  export { createOrphanPhase } from "./orphan-phase.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,4BAA4B,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAGrI,OAAO,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,8BAA8B,EAAE,MAAM,8BAA8B,CAAC;AAC9E,OAAO,EAAE,8BAA8B,EAAE,4BAA4B,EAAE,MAAM,8BAA8B,CAAC;AAC5G,OAAO,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAC;AACnE,YAAY,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAG5D,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,YAAY,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,YAAY,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,oCAAoC,EAAE,MAAM,iCAAiC,CAAC;AACvF,YAAY,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAGrF,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAGzD,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,4BAA4B,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,4BAA4B,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAGrI,OAAO,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,8BAA8B,EAAE,MAAM,8BAA8B,CAAC;AAC9E,OAAO,EAAE,8BAA8B,EAAE,4BAA4B,EAAE,MAAM,8BAA8B,CAAC;AAC5G,OAAO,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAC;AACnE,YAAY,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAG5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,YAAY,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,YAAY,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,oCAAoC,EAAE,MAAM,iCAAiC,CAAC;AACvF,YAAY,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAGrF,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAGzD,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,4BAA4B,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC"}
package/dist/index.js CHANGED
@@ -7,7 +7,6 @@ export { createEscalationAutoSubscriber } from "./signals/escalation-auto.js";
7
7
  export { createOrphanReparentSubscriber, transferAllPipeSubscriptions } from "./signals/orphan-reparent.js";
8
8
  export { createRootTaskBootSubscriber } from "./root-task-boot.js";
9
9
  // ─── Reconciliation Phases ──────────────────────────────────
10
- export { createCronPhase } from "./cron-phase.js";
11
10
  export { createDispatchPhase } from "./dispatch-phase.js";
12
11
  export { createOrphanPhase } from "./orphan-phase.js";
13
12
  export { lifecycleCleanupPhase } from "./lifecycle-cleanup.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,OAAO,EAAE,mBAAmB,EAAE,4BAA4B,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAErI,+DAA+D;AAC/D,OAAO,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,8BAA8B,EAAE,MAAM,8BAA8B,CAAC;AAC9E,OAAO,EAAE,8BAA8B,EAAE,4BAA4B,EAAE,MAAM,8BAA8B,CAAC;AAC5G,OAAO,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAC;AAGnE,+DAA+D;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,oCAAoC,EAAE,MAAM,iCAAiC,CAAC;AAGvF,+DAA+D;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,+DAA+D;AAC/D,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,4BAA4B,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,OAAO,EAAE,mBAAmB,EAAE,4BAA4B,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAErI,+DAA+D;AAC/D,OAAO,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,8BAA8B,EAAE,MAAM,8BAA8B,CAAC;AAC9E,OAAO,EAAE,8BAA8B,EAAE,4BAA4B,EAAE,MAAM,8BAA8B,CAAC;AAC5G,OAAO,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAC;AAGnE,+DAA+D;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,oCAAoC,EAAE,MAAM,iCAAiC,CAAC;AAGvF,+DAA+D;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,+DAA+D;AAC/D,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,4BAA4B,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@grackle-ai/plugin-core",
3
- "version": "0.97.0",
3
+ "version": "0.99.0",
4
4
  "description": "Core plugin for Grackle — gRPC handlers, reconciliation phases, and event subscribers",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -30,18 +30,17 @@
30
30
  "@bufbuild/protobuf": "^2.5.0",
31
31
  "@connectrpc/connect": "^2.0.0",
32
32
  "@connectrpc/connect-node": "^2.0.0",
33
- "cron-parser": "^4.9.0",
34
33
  "pino": "^10.3.1",
35
34
  "ulid": "^2.3.0",
36
35
  "uuid": "^11.0.0",
37
- "@grackle-ai/adapter-sdk": "0.97.0",
38
- "@grackle-ai/common": "0.97.0",
39
- "@grackle-ai/auth": "0.97.0",
40
- "@grackle-ai/core": "0.97.0",
41
- "@grackle-ai/database": "0.97.0",
42
- "@grackle-ai/plugin-sdk": "0.97.0",
43
- "@grackle-ai/knowledge": "0.97.0",
44
- "@grackle-ai/prompt": "0.97.0"
36
+ "@grackle-ai/adapter-sdk": "0.99.0",
37
+ "@grackle-ai/auth": "0.99.0",
38
+ "@grackle-ai/common": "0.99.0",
39
+ "@grackle-ai/core": "0.99.0",
40
+ "@grackle-ai/database": "0.99.0",
41
+ "@grackle-ai/plugin-sdk": "0.99.0",
42
+ "@grackle-ai/knowledge": "0.99.0",
43
+ "@grackle-ai/prompt": "0.99.0"
45
44
  },
46
45
  "devDependencies": {
47
46
  "@rushstack/heft": "1.2.7",
@@ -1,46 +0,0 @@
1
- /**
2
- * Cron reconciliation phase — fires due schedules on each tick.
3
- *
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.
7
- */
8
- import type { ScheduleRow } from "@grackle-ai/database";
9
- import type { GrackleEventType } from "@grackle-ai/core";
10
- import type { ReconciliationPhase } from "@grackle-ai/core";
11
- /** Dependencies injected into the cron phase for testability. */
12
- export interface CronPhaseDeps {
13
- /** Query the schedule store for due entries. */
14
- getDueSchedules: () => ScheduleRow[];
15
- /** Advance a schedule after firing (update lastRunAt, nextRunAt, runCount). */
16
- advanceSchedule: (id: string, lastRunAt: string, nextRunAt: string) => void;
17
- /** Create a new task in the task store. */
18
- createTask: (id: string, workspaceId: string | undefined, title: string, description: string, dependsOn: string[], workspaceSlug: string, parentTaskId?: string, canDecompose?: boolean, defaultPersonaId?: string) => void;
19
- /** Set the schedule_id FK on a task. */
20
- setTaskScheduleId: (taskId: string, scheduleId: string) => void;
21
- /** Enqueue a task for the dispatch phase to start. */
22
- enqueueForDispatch: (entry: {
23
- id: string;
24
- taskId: string;
25
- environmentId?: string;
26
- personaId?: string;
27
- }) => void;
28
- /** Emit a domain event. */
29
- emit: (type: GrackleEventType, payload: Record<string, unknown>) => void;
30
- /** Look up a persona by ID. */
31
- getPersona: (id: string) => {
32
- id: string;
33
- name: string;
34
- runtime: string;
35
- } | undefined;
36
- /** Enable or disable a schedule, setting or clearing nextRunAt. */
37
- setScheduleEnabled: (id: string, enabled: boolean, nextRunAt: string | null) => void;
38
- }
39
- /**
40
- * Create a ReconciliationPhase that fires due schedules.
41
- *
42
- * @param deps - Injected dependencies
43
- * @returns A phase to register with ReconciliationManager
44
- */
45
- export declare function createCronPhase(deps: CronPhaseDeps): ReconciliationPhase;
46
- //# sourceMappingURL=cron-phase.d.ts.map
@@ -1 +0,0 @@
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,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAG5D,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"}
@@ -1,88 +0,0 @@
1
- /**
2
- * Cron reconciliation phase — fires due schedules on each tick.
3
- *
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.
7
- */
8
- import { v4 as uuidv4 } from "uuid";
9
- import { logger } from "@grackle-ai/core";
10
- import { computeNextRunAt } from "./schedule-expression.js";
11
- import { ROOT_TASK_ID } from "@grackle-ai/common";
12
- /**
13
- * Create a ReconciliationPhase that fires due schedules.
14
- *
15
- * @param deps - Injected dependencies
16
- * @returns A phase to register with ReconciliationManager
17
- */
18
- export function createCronPhase(deps) {
19
- return {
20
- name: "cron",
21
- execute: async () => {
22
- const due = deps.getDueSchedules();
23
- if (due.length === 0) {
24
- return;
25
- }
26
- logger.debug({ count: due.length }, "Cron phase: due schedules");
27
- for (const schedule of due) {
28
- fireSchedule(deps, schedule);
29
- }
30
- },
31
- };
32
- }
33
- /** Fire a single schedule: create task, enqueue for dispatch, advance. */
34
- function fireSchedule(deps, schedule) {
35
- const now = new Date().toISOString();
36
- let nextRunAt;
37
- try {
38
- // Anchor to the schedule's lastRunAt (not current time) to prevent drift
39
- nextRunAt = computeNextRunAt(schedule.scheduleExpression, schedule.lastRunAt ?? undefined);
40
- }
41
- catch (err) {
42
- logger.error({ scheduleId: schedule.id, scheduleExpression: schedule.scheduleExpression, err }, "Cron phase: failed to compute nextRunAt; disabling schedule");
43
- // Disable the schedule to prevent error loop on every tick
44
- deps.setScheduleEnabled(schedule.id, false, null);
45
- return;
46
- }
47
- try {
48
- // Validate persona exists
49
- const persona = deps.getPersona(schedule.personaId);
50
- if (!persona) {
51
- logger.warn({ scheduleId: schedule.id, personaId: schedule.personaId }, "Schedule fire skipped: persona not found");
52
- deps.advanceSchedule(schedule.id, now, nextRunAt);
53
- return;
54
- }
55
- // Create task
56
- const taskId = uuidv4();
57
- const taskTitle = `${schedule.title} @ ${now}`;
58
- const parentTaskId = schedule.parentTaskId || ROOT_TASK_ID;
59
- deps.createTask(taskId, schedule.workspaceId || undefined, taskTitle, schedule.description, [], // no dependencies
60
- "", // no workspace slug
61
- parentTaskId, false, // canDecompose
62
- schedule.personaId);
63
- deps.setTaskScheduleId(taskId, schedule.id);
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,
71
- personaId: schedule.personaId,
72
- });
73
- // Advance schedule
74
- deps.advanceSchedule(schedule.id, now, nextRunAt);
75
- deps.emit("schedule.fired", {
76
- scheduleId: schedule.id,
77
- taskId,
78
- firedAt: now,
79
- });
80
- logger.info({ scheduleId: schedule.id, taskId, title: schedule.title }, "Schedule fired");
81
- }
82
- catch (err) {
83
- logger.error({ scheduleId: schedule.id, err }, "Schedule fire failed with exception");
84
- // Still advance to prevent retry storms
85
- deps.advanceSchedule(schedule.id, now, nextRunAt);
86
- }
87
- }
88
- //# sourceMappingURL=cron-phase.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cron-phase.js","sourceRoot":"","sources":["../src/cron-phase.ts"],"names":[],"mappings":"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"}
@@ -1,12 +0,0 @@
1
- import { grackle } from "@grackle-ai/common";
2
- /** Search the knowledge graph using semantic similarity. */
3
- export declare function searchKnowledge(req: grackle.SearchKnowledgeRequest): Promise<grackle.SearchKnowledgeResponse>;
4
- /** Get a knowledge node by ID. */
5
- export declare function getKnowledgeNode(req: grackle.GetKnowledgeNodeRequest): Promise<grackle.GetKnowledgeNodeResponse>;
6
- /** Expand a knowledge node to retrieve its neighbors. */
7
- export declare function expandKnowledgeNode(req: grackle.ExpandKnowledgeNodeRequest): Promise<grackle.ExpandKnowledgeNodeResponse>;
8
- /** List recently created knowledge nodes. */
9
- export declare function listRecentKnowledgeNodes(req: grackle.ListRecentKnowledgeNodesRequest): Promise<grackle.ListRecentKnowledgeNodesResponse>;
10
- /** Create a new native knowledge node with embedding. */
11
- export declare function createKnowledgeNode(req: grackle.CreateKnowledgeNodeRequest): Promise<grackle.CreateKnowledgeNodeResponse>;
12
- //# sourceMappingURL=knowledge-handlers.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"knowledge-handlers.d.ts","sourceRoot":"","sources":["../src/knowledge-handlers.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AA+D7C,4DAA4D;AAC5D,wBAAsB,eAAe,CAAC,GAAG,EAAE,OAAO,CAAC,sBAAsB,GAAG,OAAO,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAqBnH;AAED,kCAAkC;AAClC,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,OAAO,CAAC,uBAAuB,GAAG,OAAO,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAmBtH;AAED,yDAAyD;AACzD,wBAAsB,mBAAmB,CAAC,GAAG,EAAE,OAAO,CAAC,0BAA0B,GAAG,OAAO,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAmB/H;AAED,6CAA6C;AAC7C,wBAAsB,wBAAwB,CAAC,GAAG,EAAE,OAAO,CAAC,+BAA+B,GAAG,OAAO,CAAC,OAAO,CAAC,gCAAgC,CAAC,CAmB9I;AAED,yDAAyD;AACzD,wBAAsB,mBAAmB,CAAC,GAAG,EAAE,OAAO,CAAC,0BAA0B,GAAG,OAAO,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAuB/H"}
@@ -1,149 +0,0 @@
1
- import { ConnectError, Code } from "@connectrpc/connect";
2
- import { create } from "@bufbuild/protobuf";
3
- import { grackle } from "@grackle-ai/common";
4
- import { knowledgeSearch, getNode as getKnowledgeNodeById, expandNode, createNativeNode, ingest, createPassThroughChunker, listRecentNodes, } from "@grackle-ai/knowledge";
5
- import { getKnowledgeEmbedder, isKnowledgeEnabled } from "@grackle-ai/core";
6
- import { isNeo4jHealthy } from "@grackle-ai/core";
7
- import { knowledgeNodeToProto, knowledgeEdgeToProto } from "./grpc-proto-converters.js";
8
- import { logger } from "@grackle-ai/core";
9
- /** Error message returned when Neo4j is unreachable. */
10
- const NEO4J_UNAVAILABLE_MESSAGE = "Knowledge graph temporarily unavailable — Neo4j unreachable";
11
- /**
12
- * Guard that checks Neo4j health status.
13
- *
14
- * @throws ConnectError with Code.Unavailable if Neo4j is unreachable.
15
- */
16
- function requireKnowledgeReady() {
17
- if (!isNeo4jHealthy()) {
18
- throw new ConnectError(NEO4J_UNAVAILABLE_MESSAGE, Code.Unavailable);
19
- }
20
- }
21
- /**
22
- * Guard that checks embedder availability and Neo4j health, returning the embedder.
23
- *
24
- * @throws ConnectError with Code.Unavailable if knowledge is not ready.
25
- */
26
- function requireEmbedder() {
27
- const embedder = getKnowledgeEmbedder();
28
- if (!embedder) {
29
- throw new ConnectError("Knowledge graph not available", Code.Unavailable);
30
- }
31
- requireKnowledgeReady();
32
- return embedder;
33
- }
34
- /**
35
- * Wrap non-ConnectError exceptions as Code.Unavailable.
36
- *
37
- * ConnectErrors (e.g. NotFound, InvalidArgument) are re-thrown as-is so
38
- * the handler's own error semantics are preserved.
39
- */
40
- function wrapNeo4jError(err) {
41
- if (err instanceof ConnectError) {
42
- throw err;
43
- }
44
- // Log the full error server-side for debugging; return a generic message
45
- // to clients to avoid leaking internal details (hostnames, ports, etc.)
46
- logger.error({ err }, "Knowledge graph operation failed");
47
- throw new ConnectError(NEO4J_UNAVAILABLE_MESSAGE, Code.Unavailable);
48
- }
49
- /** Search the knowledge graph using semantic similarity. */
50
- export async function searchKnowledge(req) {
51
- const embedder = requireEmbedder();
52
- try {
53
- const results = await knowledgeSearch(req.query, embedder, {
54
- limit: req.limit || 10,
55
- workspaceId: req.workspaceId || undefined,
56
- });
57
- return create(grackle.SearchKnowledgeResponseSchema, {
58
- results: results.map((r) => create(grackle.SearchKnowledgeResultSchema, {
59
- score: r.score,
60
- node: knowledgeNodeToProto(r.node),
61
- edges: r.edges.map(knowledgeEdgeToProto),
62
- })),
63
- });
64
- }
65
- catch (err) {
66
- wrapNeo4jError(err);
67
- }
68
- }
69
- /** Get a knowledge node by ID. */
70
- export async function getKnowledgeNode(req) {
71
- if (!isKnowledgeEnabled()) {
72
- throw new ConnectError("Knowledge graph not available", Code.Unavailable);
73
- }
74
- requireKnowledgeReady();
75
- try {
76
- const result = await getKnowledgeNodeById(req.id);
77
- if (!result) {
78
- throw new ConnectError(`Knowledge node not found: ${req.id}`, Code.NotFound);
79
- }
80
- return create(grackle.GetKnowledgeNodeResponseSchema, {
81
- node: knowledgeNodeToProto(result.node),
82
- edges: result.edges.map(knowledgeEdgeToProto),
83
- });
84
- }
85
- catch (err) {
86
- wrapNeo4jError(err);
87
- }
88
- }
89
- /** Expand a knowledge node to retrieve its neighbors. */
90
- export async function expandKnowledgeNode(req) {
91
- if (!isKnowledgeEnabled()) {
92
- throw new ConnectError("Knowledge graph not available", Code.Unavailable);
93
- }
94
- requireKnowledgeReady();
95
- try {
96
- const result = await expandNode(req.id, {
97
- depth: req.depth || 1,
98
- edgeTypes: req.edgeTypes.length > 0 ? req.edgeTypes : undefined,
99
- });
100
- return create(grackle.ExpandKnowledgeNodeResponseSchema, {
101
- nodes: result.nodes.map(knowledgeNodeToProto),
102
- edges: result.edges.map(knowledgeEdgeToProto),
103
- });
104
- }
105
- catch (err) {
106
- wrapNeo4jError(err);
107
- }
108
- }
109
- /** List recently created knowledge nodes. */
110
- export async function listRecentKnowledgeNodes(req) {
111
- if (!isKnowledgeEnabled()) {
112
- throw new ConnectError("Knowledge graph not available", Code.Unavailable);
113
- }
114
- requireKnowledgeReady();
115
- try {
116
- const result = await listRecentNodes(req.limit || 20, req.workspaceId || undefined);
117
- return create(grackle.ListRecentKnowledgeNodesResponseSchema, {
118
- nodes: result.nodes.map(knowledgeNodeToProto),
119
- edges: result.edges.map(knowledgeEdgeToProto),
120
- });
121
- }
122
- catch (err) {
123
- wrapNeo4jError(err);
124
- }
125
- }
126
- /** Create a new native knowledge node with embedding. */
127
- export async function createKnowledgeNode(req) {
128
- const embedder = requireEmbedder();
129
- try {
130
- const chunker = createPassThroughChunker();
131
- const embedded = await ingest(req.content, chunker, embedder);
132
- if (embedded.length === 0) {
133
- throw new ConnectError("Content produced no embeddings", Code.InvalidArgument);
134
- }
135
- const id = await createNativeNode({
136
- category: (req.category || "insight"),
137
- title: req.title,
138
- content: req.content,
139
- tags: [...req.tags],
140
- embedding: embedded[0].vector,
141
- workspaceId: req.workspaceId || "",
142
- });
143
- return create(grackle.CreateKnowledgeNodeResponseSchema, { id });
144
- }
145
- catch (err) {
146
- wrapNeo4jError(err);
147
- }
148
- }
149
- //# sourceMappingURL=knowledge-handlers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"knowledge-handlers.js","sourceRoot":"","sources":["../src/knowledge-handlers.ts"],"names":[],"mappings":"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"}
@@ -1,43 +0,0 @@
1
- /**
2
- * Schedule expression parsing and next-run-time computation.
3
- *
4
- * Supports two formats:
5
- * - **Interval shorthand**: `"<number><unit>"` where unit is s/m/h/d (min 10s)
6
- * - **Cron expressions**: Standard 5-field cron syntax via `cron-parser`
7
- */
8
- /**
9
- * Parse an interval shorthand expression to milliseconds.
10
- *
11
- * @param expr - e.g. "30s", "5m", "1h", "1d"
12
- * @returns Duration in milliseconds
13
- * @throws If the expression is invalid or below the minimum (10s)
14
- */
15
- export declare function parseDuration(expr: string): number;
16
- /**
17
- * Detect whether an expression is interval shorthand (vs. cron).
18
- *
19
- * @param expr - Schedule expression string
20
- * @returns true if the expression matches interval shorthand format
21
- */
22
- export declare function isIntervalExpression(expr: string): boolean;
23
- /**
24
- * Compute the next run time for a schedule expression.
25
- *
26
- * For intervals: if `lastRunAt + interval` is in the future, use that (prevents
27
- * drift). Otherwise use `now + interval` (prevents burst-firing after downtime).
28
- *
29
- * For cron: next occurrence after now.
30
- *
31
- * @param expr - Schedule expression (interval or cron)
32
- * @param lastRunAt - ISO timestamp of the last fire (undefined for first fire)
33
- * @returns ISO timestamp of the next fire
34
- */
35
- export declare function computeNextRunAt(expr: string, lastRunAt?: string): string;
36
- /**
37
- * Validate a schedule expression. Throws if invalid.
38
- *
39
- * @param expr - Schedule expression to validate
40
- * @throws If the expression is neither valid interval shorthand nor valid cron
41
- */
42
- export declare function validateExpression(expr: string): void;
43
- //# sourceMappingURL=schedule-expression.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"schedule-expression.d.ts","sourceRoot":"","sources":["../src/schedule-expression.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAcH;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAmBlD;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE1D;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAwBzE;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAmBrD"}
@@ -1,105 +0,0 @@
1
- /**
2
- * Schedule expression parsing and next-run-time computation.
3
- *
4
- * Supports two formats:
5
- * - **Interval shorthand**: `"<number><unit>"` where unit is s/m/h/d (min 10s)
6
- * - **Cron expressions**: Standard 5-field cron syntax via `cron-parser`
7
- */
8
- import cronParser from "cron-parser";
9
- const INTERVAL_RE = /^(\d+)([smhd])$/;
10
- const MINIMUM_INTERVAL_MS = 10_000; // 10 seconds
11
- const UNIT_TO_MS = {
12
- s: 1_000,
13
- m: 60_000,
14
- h: 3_600_000,
15
- d: 86_400_000,
16
- };
17
- /**
18
- * Parse an interval shorthand expression to milliseconds.
19
- *
20
- * @param expr - e.g. "30s", "5m", "1h", "1d"
21
- * @returns Duration in milliseconds
22
- * @throws If the expression is invalid or below the minimum (10s)
23
- */
24
- export function parseDuration(expr) {
25
- const match = INTERVAL_RE.exec(expr);
26
- if (!match) {
27
- throw new Error(`Invalid interval expression: "${expr}". Expected format: <number><s|m|h|d> (e.g. "30s", "5m")`);
28
- }
29
- const value = parseInt(match[1], 10);
30
- const unit = match[2];
31
- const ms = value * UNIT_TO_MS[unit];
32
- if (ms <= 0) {
33
- throw new Error(`Interval must be positive: "${expr}"`);
34
- }
35
- if (ms < MINIMUM_INTERVAL_MS) {
36
- throw new Error(`Interval "${expr}" (${ms}ms) is below the minimum of ${MINIMUM_INTERVAL_MS}ms (10s)`);
37
- }
38
- return ms;
39
- }
40
- /**
41
- * Detect whether an expression is interval shorthand (vs. cron).
42
- *
43
- * @param expr - Schedule expression string
44
- * @returns true if the expression matches interval shorthand format
45
- */
46
- export function isIntervalExpression(expr) {
47
- return INTERVAL_RE.test(expr);
48
- }
49
- /**
50
- * Compute the next run time for a schedule expression.
51
- *
52
- * For intervals: if `lastRunAt + interval` is in the future, use that (prevents
53
- * drift). Otherwise use `now + interval` (prevents burst-firing after downtime).
54
- *
55
- * For cron: next occurrence after now.
56
- *
57
- * @param expr - Schedule expression (interval or cron)
58
- * @param lastRunAt - ISO timestamp of the last fire (undefined for first fire)
59
- * @returns ISO timestamp of the next fire
60
- */
61
- export function computeNextRunAt(expr, lastRunAt) {
62
- const now = Date.now();
63
- if (isIntervalExpression(expr)) {
64
- const intervalMs = parseDuration(expr);
65
- const nowPlusInterval = now + intervalMs;
66
- if (lastRunAt) {
67
- const lastRunMs = new Date(lastRunAt).getTime();
68
- const anchored = lastRunMs + intervalMs;
69
- // Anchored: use lastRunAt + interval if it's in the future (prevents drift).
70
- // If it's in the past (server was down), cap to now + interval (prevents burst).
71
- if (anchored > now) {
72
- return new Date(anchored).toISOString();
73
- }
74
- return new Date(nowPlusInterval).toISOString();
75
- }
76
- return new Date(nowPlusInterval).toISOString();
77
- }
78
- // Cron expression: compute next occurrence after now
79
- const interval = cronParser.parseExpression(expr, { utc: true });
80
- return interval.next().toISOString();
81
- }
82
- /**
83
- * Validate a schedule expression. Throws if invalid.
84
- *
85
- * @param expr - Schedule expression to validate
86
- * @throws If the expression is neither valid interval shorthand nor valid cron
87
- */
88
- export function validateExpression(expr) {
89
- if (!expr) {
90
- throw new Error("Schedule expression cannot be empty");
91
- }
92
- if (isIntervalExpression(expr)) {
93
- // parseDuration validates format and minimum
94
- parseDuration(expr);
95
- return;
96
- }
97
- // Try to parse as cron
98
- try {
99
- cronParser.parseExpression(expr, { utc: true });
100
- }
101
- catch {
102
- throw new Error(`Invalid schedule expression: "${expr}". Must be interval shorthand (e.g. "30s", "5m") or 5-field cron (e.g. "0 9 * * MON")`);
103
- }
104
- }
105
- //# sourceMappingURL=schedule-expression.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"schedule-expression.js","sourceRoot":"","sources":["../src/schedule-expression.ts"],"names":[],"mappings":"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"}
@@ -1,12 +0,0 @@
1
- import { grackle } from "@grackle-ai/common";
2
- /** Create a new schedule. */
3
- export declare function createSchedule(req: grackle.CreateScheduleRequest): Promise<grackle.Schedule>;
4
- /** List all schedules, optionally filtered by workspace. */
5
- export declare function listSchedules(req: grackle.ListSchedulesRequest): Promise<grackle.ScheduleList>;
6
- /** Get a schedule by ID. */
7
- export declare function getSchedule(req: grackle.ScheduleId): Promise<grackle.Schedule>;
8
- /** Update an existing schedule. */
9
- export declare function updateSchedule(req: grackle.UpdateScheduleRequest): Promise<grackle.Schedule>;
10
- /** Delete a schedule by ID. */
11
- export declare function deleteSchedule(req: grackle.ScheduleId): Promise<grackle.Empty>;
12
- //# sourceMappingURL=schedule-handlers.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"schedule-handlers.d.ts","sourceRoot":"","sources":["../src/schedule-handlers.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAO7C,6BAA6B;AAC7B,wBAAsB,cAAc,CAAC,GAAG,EAAE,OAAO,CAAC,qBAAqB,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CA2ClG;AAED,4DAA4D;AAC5D,wBAAsB,aAAa,CAAC,GAAG,EAAE,OAAO,CAAC,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAKpG;AAED,4BAA4B;AAC5B,wBAAsB,WAAW,CAAC,GAAG,EAAE,OAAO,CAAC,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAMpF;AAED,mCAAmC;AACnC,wBAAsB,cAAc,CAAC,GAAG,EAAE,OAAO,CAAC,qBAAqB,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CA6DlG;AAED,+BAA+B;AAC/B,wBAAsB,cAAc,CAAC,GAAG,EAAE,OAAO,CAAC,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAIpF"}
@@ -1,122 +0,0 @@
1
- import { ConnectError, Code } from "@connectrpc/connect";
2
- import { create } from "@bufbuild/protobuf";
3
- import { grackle } from "@grackle-ai/common";
4
- import { personaStore, scheduleStore } from "@grackle-ai/database";
5
- import { v4 as uuid } from "uuid";
6
- import { validateExpression, computeNextRunAt } from "./schedule-expression.js";
7
- import { emit } from "@grackle-ai/core";
8
- import { scheduleRowToProto } from "./grpc-proto-converters.js";
9
- /** Create a new schedule. */
10
- export async function createSchedule(req) {
11
- const title = req.title.trim();
12
- const expr = req.scheduleExpression.trim();
13
- const personaId = req.personaId.trim();
14
- if (!title) {
15
- throw new ConnectError("title is required", Code.InvalidArgument);
16
- }
17
- if (!expr) {
18
- throw new ConnectError("schedule_expression is required", Code.InvalidArgument);
19
- }
20
- if (!personaId) {
21
- throw new ConnectError("persona_id is required", Code.InvalidArgument);
22
- }
23
- // Validate persona exists
24
- const persona = personaStore.getPersona(personaId);
25
- if (!persona) {
26
- throw new ConnectError(`Persona not found: ${personaId}`, Code.NotFound);
27
- }
28
- // Validate expression
29
- try {
30
- validateExpression(expr);
31
- }
32
- catch (err) {
33
- throw new ConnectError(err instanceof Error ? err.message : "Invalid schedule expression", Code.InvalidArgument);
34
- }
35
- const id = uuid();
36
- const nextRunAt = computeNextRunAt(expr);
37
- scheduleStore.createSchedule(id, title, req.description, expr, personaId, req.environmentId, req.workspaceId, req.parentTaskId, nextRunAt);
38
- emit("schedule.created", { scheduleId: id });
39
- const row = scheduleStore.getSchedule(id);
40
- return scheduleRowToProto(row);
41
- }
42
- /** List all schedules, optionally filtered by workspace. */
43
- export async function listSchedules(req) {
44
- const rows = scheduleStore.listSchedules(req.workspaceId || undefined);
45
- return create(grackle.ScheduleListSchema, {
46
- schedules: rows.map(scheduleRowToProto),
47
- });
48
- }
49
- /** Get a schedule by ID. */
50
- export async function getSchedule(req) {
51
- const row = scheduleStore.getSchedule(req.id);
52
- if (!row) {
53
- throw new ConnectError(`Schedule not found: ${req.id}`, Code.NotFound);
54
- }
55
- return scheduleRowToProto(row);
56
- }
57
- /** Update an existing schedule. */
58
- export async function updateSchedule(req) {
59
- const existing = scheduleStore.getSchedule(req.id);
60
- if (!existing) {
61
- throw new ConnectError(`Schedule not found: ${req.id}`, Code.NotFound);
62
- }
63
- const update = {};
64
- if (req.title !== undefined && req.title.trim() !== "") {
65
- update.title = req.title.trim();
66
- }
67
- if (req.description !== undefined) {
68
- update.description = req.description;
69
- }
70
- if (req.personaId !== undefined && req.personaId.trim() !== "") {
71
- const trimmedPersonaId = req.personaId.trim();
72
- const persona = personaStore.getPersona(trimmedPersonaId);
73
- if (!persona) {
74
- throw new ConnectError(`Persona not found: ${trimmedPersonaId}`, Code.NotFound);
75
- }
76
- update.personaId = trimmedPersonaId;
77
- }
78
- if (req.environmentId !== undefined) {
79
- update.environmentId = req.environmentId;
80
- }
81
- // Handle schedule expression change
82
- let expressionChanged = false;
83
- if (req.scheduleExpression !== undefined && req.scheduleExpression !== "") {
84
- const expr = req.scheduleExpression.trim();
85
- try {
86
- validateExpression(expr);
87
- }
88
- catch (err) {
89
- throw new ConnectError(err instanceof Error ? err.message : "Invalid schedule expression", Code.InvalidArgument);
90
- }
91
- update.scheduleExpression = expr;
92
- expressionChanged = true;
93
- }
94
- // Handle enable/disable
95
- if (req.enabled !== undefined) {
96
- update.enabled = req.enabled;
97
- if (req.enabled) {
98
- const expr = update.scheduleExpression ?? existing.scheduleExpression;
99
- update.nextRunAt = computeNextRunAt(expr);
100
- }
101
- else {
102
- update.nextRunAt = null;
103
- }
104
- }
105
- else if (expressionChanged) {
106
- // Recompute nextRunAt when expression changes (if currently enabled)
107
- if (existing.enabled) {
108
- update.nextRunAt = computeNextRunAt(update.scheduleExpression);
109
- }
110
- }
111
- scheduleStore.updateSchedule(req.id, update);
112
- emit("schedule.updated", { scheduleId: req.id });
113
- const row = scheduleStore.getSchedule(req.id);
114
- return scheduleRowToProto(row);
115
- }
116
- /** Delete a schedule by ID. */
117
- export async function deleteSchedule(req) {
118
- scheduleStore.deleteSchedule(req.id);
119
- emit("schedule.deleted", { scheduleId: req.id });
120
- return create(grackle.EmptySchema, {});
121
- }
122
- //# sourceMappingURL=schedule-handlers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"schedule-handlers.js","sourceRoot":"","sources":["../src/schedule-handlers.ts"],"names":[],"mappings":"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"}