@grackle-ai/server 0.95.0 → 0.95.2

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/config.d.ts CHANGED
@@ -14,6 +14,12 @@ export interface ServerConfig {
14
14
  skipLocalPowerline: boolean;
15
15
  /** Skip auto-starting the root task when an environment connects (GRACKLE_SKIP_ROOT_AUTOSTART=1). */
16
16
  skipRootAutostart: boolean;
17
+ /** Override agent working directory (GRACKLE_WORKING_DIRECTORY). */
18
+ workingDirectory?: string;
19
+ /** Worktree base path (GRACKLE_WORKTREE_BASE). */
20
+ worktreeBase?: string;
21
+ /** Docker host for host mapping (GRACKLE_DOCKER_HOST). */
22
+ dockerHost?: string;
17
23
  }
18
24
  /**
19
25
  * Resolve and validate all server configuration from environment variables.
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAEA,0EAA0E;AAC1E,MAAM,WAAW,YAAY;IAC3B,uCAAuC;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,kDAAkD;IAClD,OAAO,EAAE,MAAM,CAAC;IAChB,0CAA0C;IAC1C,OAAO,EAAE,MAAM,CAAC;IAChB,sDAAsD;IACtD,aAAa,EAAE,MAAM,CAAC;IACtB,mDAAmD;IACnD,IAAI,EAAE,MAAM,CAAC;IACb,uFAAuF;IACvF,kBAAkB,EAAE,OAAO,CAAC;IAC5B,qGAAqG;IACrG,iBAAiB,EAAE,OAAO,CAAC;CAC5B;AA0BD;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,YAAY,CAUlD"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAEA,0EAA0E;AAC1E,MAAM,WAAW,YAAY;IAC3B,uCAAuC;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,kDAAkD;IAClD,OAAO,EAAE,MAAM,CAAC;IAChB,0CAA0C;IAC1C,OAAO,EAAE,MAAM,CAAC;IAChB,sDAAsD;IACtD,aAAa,EAAE,MAAM,CAAC;IACtB,mDAAmD;IACnD,IAAI,EAAE,MAAM,CAAC;IACb,uFAAuF;IACvF,kBAAkB,EAAE,OAAO,CAAC;IAC5B,qGAAqG;IACrG,iBAAiB,EAAE,OAAO,CAAC;IAC3B,oEAAoE;IACpE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,kDAAkD;IAClD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,0DAA0D;IAC1D,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AA0BD;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,YAAY,CAalD"}
package/dist/config.js CHANGED
@@ -32,6 +32,9 @@ export function resolveServerConfig() {
32
32
  host: process.env.GRACKLE_HOST || "127.0.0.1",
33
33
  skipLocalPowerline: parseFlag("GRACKLE_SKIP_LOCAL_POWERLINE"),
34
34
  skipRootAutostart: parseFlag("GRACKLE_SKIP_ROOT_AUTOSTART"),
35
+ workingDirectory: process.env.GRACKLE_WORKING_DIRECTORY || undefined,
36
+ worktreeBase: process.env.GRACKLE_WORKTREE_BASE || undefined,
37
+ dockerHost: process.env.GRACKLE_DOCKER_HOST || undefined,
35
38
  });
36
39
  }
37
40
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAoBrH;;;;GAIG;AACH,SAAS,SAAS,CAAC,OAAe,EAAE,YAAoB;IACtD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACjC,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,YAAY,CAAC;IACtB,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC3B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,IAAI,MAAM,GAAG,KAAK,EAAE,CAAC;QAC9D,MAAM,IAAI,KAAK,CACb,oBAAoB,OAAO,MAAM,GAAG,4CAA4C,CACjF,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,6FAA6F;AAC7F,SAAS,SAAS,CAAC,OAAe;IAChC,OAAO,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC;AACtC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB;IACjC,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,QAAQ,EAAE,SAAS,CAAC,cAAc,EAAE,mBAAmB,CAAC;QACxD,OAAO,EAAE,SAAS,CAAC,kBAAkB,EAAE,gBAAgB,CAAC;QACxD,OAAO,EAAE,SAAS,CAAC,kBAAkB,EAAE,gBAAgB,CAAC;QACxD,aAAa,EAAE,SAAS,CAAC,wBAAwB,EAAE,sBAAsB,CAAC;QAC1E,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,WAAW;QAC7C,kBAAkB,EAAE,SAAS,CAAC,8BAA8B,CAAC;QAC7D,iBAAiB,EAAE,SAAS,CAAC,6BAA6B,CAAC;KAC5D,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AA0BrH;;;;GAIG;AACH,SAAS,SAAS,CAAC,OAAe,EAAE,YAAoB;IACtD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACjC,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,YAAY,CAAC;IACtB,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC3B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,IAAI,MAAM,GAAG,KAAK,EAAE,CAAC;QAC9D,MAAM,IAAI,KAAK,CACb,oBAAoB,OAAO,MAAM,GAAG,4CAA4C,CACjF,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,6FAA6F;AAC7F,SAAS,SAAS,CAAC,OAAe;IAChC,OAAO,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC;AACtC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB;IACjC,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,QAAQ,EAAE,SAAS,CAAC,cAAc,EAAE,mBAAmB,CAAC;QACxD,OAAO,EAAE,SAAS,CAAC,kBAAkB,EAAE,gBAAgB,CAAC;QACxD,OAAO,EAAE,SAAS,CAAC,kBAAkB,EAAE,gBAAgB,CAAC;QACxD,aAAa,EAAE,SAAS,CAAC,wBAAwB,EAAE,sBAAsB,CAAC;QAC1E,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,WAAW;QAC7C,kBAAkB,EAAE,SAAS,CAAC,8BAA8B,CAAC;QAC7D,iBAAiB,EAAE,SAAS,CAAC,6BAA6B,CAAC;QAC3D,gBAAgB,EAAE,OAAO,CAAC,GAAG,CAAC,yBAAyB,IAAI,SAAS;QACpE,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,SAAS;QAC5D,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,SAAS;KACzD,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Core plugin — wraps all built-in Grackle handler groups, reconciliation
3
+ * phases, and event subscribers into a single GracklePlugin.
4
+ *
5
+ * Handler files remain in `@grackle-ai/core`. This plugin groups their
6
+ * contributions for the `loadPlugins()` loader.
7
+ *
8
+ * @module
9
+ */
10
+ import type { GracklePlugin } from "@grackle-ai/plugin-sdk";
11
+ /**
12
+ * Create the core plugin that contributes all built-in server capabilities.
13
+ *
14
+ * - **gRPC handlers**: All 12 handler groups (environments, sessions, tasks, etc.)
15
+ * - **Reconciliation phases**: dispatch, cron, lifecycle-cleanup, orphan-reparent,
16
+ * environment-reconciliation, and optionally knowledge-health
17
+ * - **Event subscribers**: SIGCHLD, escalation auto-detect, orphan reparent,
18
+ * lifecycle manager, and optionally root task boot
19
+ *
20
+ * @returns A GracklePlugin ready to pass to `loadPlugins()`.
21
+ */
22
+ export declare function createCorePlugin(): GracklePlugin;
23
+ //# sourceMappingURL=core-plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core-plugin.d.ts","sourceRoot":"","sources":["../src/core-plugin.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAM5D;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,IAAI,aAAa,CAahD"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Core plugin — wraps all built-in Grackle handler groups, reconciliation
3
+ * phases, and event subscribers into a single GracklePlugin.
4
+ *
5
+ * Handler files remain in `@grackle-ai/core`. This plugin groups their
6
+ * contributions for the `loadPlugins()` loader.
7
+ *
8
+ * @module
9
+ */
10
+ import { grackle } from "@grackle-ai/common";
11
+ import { createDefaultCollector } from "@grackle-ai/core";
12
+ import { createReconciliationPhases } from "./reconciliation-setup.js";
13
+ import { createEventSubscribers } from "./event-subscribers.js";
14
+ /**
15
+ * Create the core plugin that contributes all built-in server capabilities.
16
+ *
17
+ * - **gRPC handlers**: All 12 handler groups (environments, sessions, tasks, etc.)
18
+ * - **Reconciliation phases**: dispatch, cron, lifecycle-cleanup, orphan-reparent,
19
+ * environment-reconciliation, and optionally knowledge-health
20
+ * - **Event subscribers**: SIGCHLD, escalation auto-detect, orphan reparent,
21
+ * lifecycle manager, and optionally root task boot
22
+ *
23
+ * @returns A GracklePlugin ready to pass to `loadPlugins()`.
24
+ */
25
+ export function createCorePlugin() {
26
+ return {
27
+ name: "core",
28
+ grpcHandlers: () => [{
29
+ service: grackle.Grackle,
30
+ handlers: createDefaultCollector().getHandlers(grackle.Grackle),
31
+ }],
32
+ reconciliationPhases: () => createReconciliationPhases(),
33
+ eventSubscribers: (ctx) => createEventSubscribers(ctx),
34
+ };
35
+ }
36
+ //# sourceMappingURL=core-plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core-plugin.js","sourceRoot":"","sources":["../src/core-plugin.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAEhE;;;;;;;;;;GAUG;AACH,MAAM,UAAU,gBAAgB;IAC9B,OAAO;QACL,IAAI,EAAE,MAAM;QAEZ,YAAY,EAAE,GAAG,EAAE,CAAC,CAAC;gBACnB,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,QAAQ,EAAE,sBAAsB,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC;aAChE,CAAC;QAEF,oBAAoB,EAAE,GAAG,EAAE,CAAC,0BAA0B,EAAE;QAExD,gBAAgB,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,sBAAsB,CAAC,GAAG,CAAC;KACvD,CAAC;AACJ,CAAC"}
@@ -1,16 +1,30 @@
1
- import type { Disposable } from "@grackle-ai/core";
1
+ import type { Disposable, PluginContext } from "@grackle-ai/core";
2
2
  /**
3
- * Wire all event subscribers (SIGCHLD, escalation, orphan reparent, lifecycle)
4
- * and optionally the root task auto-boot handler.
3
+ * Context accepted by createEventSubscribers.
5
4
  *
6
- * Returns an array of Disposable handles so that all subscribers can be
7
- * cleanly unregistered during shutdown.
5
+ * Core's subscriber factories accept the narrow `PluginContext` (subscribe + emit).
6
+ * The SDK's wider `PluginContext` (with logger + config) is structurally compatible.
7
+ */
8
+ interface SubscriberContext extends PluginContext {
9
+ config?: {
10
+ skipRootAutostart?: boolean;
11
+ };
12
+ }
13
+ /**
14
+ * Create all event subscribers for the core plugin.
15
+ *
16
+ * @param ctx - Plugin context. Reads `ctx.config.skipRootAutostart` to decide
17
+ * whether to include the root task boot subscriber.
18
+ * @returns Array of disposables.
19
+ */
20
+ export declare function createEventSubscribers(ctx: SubscriberContext): Disposable[];
21
+ /**
22
+ * Wire all event subscribers (backward-compatible wrapper).
8
23
  *
9
- * @param options.skipRootAutostart - When true, skip wiring the root task boot
10
- * (used in E2E tests where the root session would conflict with test sessions).
11
- * @returns Array of disposables — call `.dispose()` on each to unsubscribe.
24
+ * @deprecated Use `createEventSubscribers(ctx)` with a PluginContext instead.
12
25
  */
13
26
  export declare function wireEventSubscribers(options: {
14
27
  skipRootAutostart: boolean;
15
28
  }): Disposable[];
29
+ export {};
16
30
  //# sourceMappingURL=event-subscribers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"event-subscribers.d.ts","sourceRoot":"","sources":["../src/event-subscribers.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,UAAU,EAAoC,MAAM,kBAAkB,CAAC;AAGrF;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE;IAC5C,iBAAiB,EAAE,OAAO,CAAC;CAC5B,GAAG,UAAU,EAAE,CAwBf"}
1
+ {"version":3,"file":"event-subscribers.d.ts","sourceRoot":"","sources":["../src/event-subscribers.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAqB,MAAM,kBAAkB,CAAC;AAGrF;;;;;GAKG;AACH,UAAU,iBAAkB,SAAQ,aAAa;IAC/C,MAAM,CAAC,EAAE;QAAE,iBAAiB,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;CAC1C;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,iBAAiB,GAAG,UAAU,EAAE,CAsB3E;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE;IAC5C,iBAAiB,EAAE,OAAO,CAAC;CAC5B,GAAG,UAAU,EAAE,CAMf"}
@@ -1,26 +1,21 @@
1
1
  import { createSigchldSubscriber, createEscalationAutoSubscriber, createOrphanReparentSubscriber, createLifecycleSubscriber, createRootTaskBootSubscriber, subscribe, emit, computeTaskStatus, findFirstConnectedEnvironment, startTaskSession, reanimateAgent, } from "@grackle-ai/core";
2
2
  import { taskStore, sessionStore, settingsStore } from "@grackle-ai/database";
3
3
  /**
4
- * Wire all event subscribers (SIGCHLD, escalation, orphan reparent, lifecycle)
5
- * and optionally the root task auto-boot handler.
4
+ * Create all event subscribers for the core plugin.
6
5
  *
7
- * Returns an array of Disposable handles so that all subscribers can be
8
- * cleanly unregistered during shutdown.
9
- *
10
- * @param options.skipRootAutostart - When true, skip wiring the root task boot
11
- * (used in E2E tests where the root session would conflict with test sessions).
12
- * @returns Array of disposables — call `.dispose()` on each to unsubscribe.
6
+ * @param ctx - Plugin context. Reads `ctx.config.skipRootAutostart` to decide
7
+ * whether to include the root task boot subscriber.
8
+ * @returns Array of disposables.
13
9
  */
14
- export function wireEventSubscribers(options) {
15
- const pluginContext = { subscribe, emit };
10
+ export function createEventSubscribers(ctx) {
16
11
  const factories = [
17
12
  createSigchldSubscriber,
18
13
  createEscalationAutoSubscriber,
19
14
  createOrphanReparentSubscriber,
20
15
  createLifecycleSubscriber,
21
16
  ];
22
- if (!options.skipRootAutostart) {
23
- factories.push((ctx) => createRootTaskBootSubscriber(ctx, {
17
+ if (!ctx.config?.skipRootAutostart) {
18
+ factories.push((pluginCtx) => createRootTaskBootSubscriber(pluginCtx, {
24
19
  getTask: taskStore.getTask,
25
20
  listSessionsForTask: sessionStore.listSessionsForTask,
26
21
  getLatestSessionForTask: sessionStore.getLatestSessionForTask,
@@ -31,6 +26,18 @@ export function wireEventSubscribers(options) {
31
26
  isOnboarded: () => settingsStore.getSetting("onboarding_completed") === "true",
32
27
  }));
33
28
  }
34
- return factories.map((factory) => factory(pluginContext));
29
+ return factories.map((factory) => factory(ctx));
30
+ }
31
+ /**
32
+ * Wire all event subscribers (backward-compatible wrapper).
33
+ *
34
+ * @deprecated Use `createEventSubscribers(ctx)` with a PluginContext instead.
35
+ */
36
+ export function wireEventSubscribers(options) {
37
+ return createEventSubscribers({
38
+ subscribe,
39
+ emit,
40
+ config: { skipRootAutostart: options.skipRootAutostart },
41
+ });
35
42
  }
36
43
  //# sourceMappingURL=event-subscribers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"event-subscribers.js","sourceRoot":"","sources":["../src/event-subscribers.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EAAE,8BAA8B,EACvD,8BAA8B,EAAE,yBAAyB,EACzD,4BAA4B,EAAE,SAAS,EAAE,IAAI,EAC7C,iBAAiB,EAAE,6BAA6B,EAChD,gBAAgB,EAAE,cAAc,GACjC,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE9E;;;;;;;;;;GAUG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAEpC;IACC,MAAM,aAAa,GAAkB,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;IAEzD,MAAM,SAAS,GAAwB;QACrC,uBAAuB;QACvB,8BAA8B;QAC9B,8BAA8B;QAC9B,yBAAyB;KAC1B,CAAC;IAEF,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC;QAC/B,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,4BAA4B,CAAC,GAAG,EAAE;YACxD,OAAO,EAAE,SAAS,CAAC,OAAO;YAC1B,mBAAmB,EAAE,YAAY,CAAC,mBAAmB;YACrD,uBAAuB,EAAE,YAAY,CAAC,uBAAuB;YAC7D,iBAAiB;YACjB,6BAA6B;YAC7B,gBAAgB;YAChB,cAAc;YACd,WAAW,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,UAAU,CAAC,sBAAsB,CAAC,KAAK,MAAM;SAC/E,CAAC,CAAC,CAAC;IACN,CAAC;IAED,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC;AAC5D,CAAC"}
1
+ {"version":3,"file":"event-subscribers.js","sourceRoot":"","sources":["../src/event-subscribers.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EAAE,8BAA8B,EACvD,8BAA8B,EAAE,yBAAyB,EACzD,4BAA4B,EAAE,SAAS,EAAE,IAAI,EAC7C,iBAAiB,EAAE,6BAA6B,EAChD,gBAAgB,EAAE,cAAc,GACjC,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAY9E;;;;;;GAMG;AACH,MAAM,UAAU,sBAAsB,CAAC,GAAsB;IAC3D,MAAM,SAAS,GAAwB;QACrC,uBAAuB;QACvB,8BAA8B;QAC9B,8BAA8B;QAC9B,yBAAyB;KAC1B,CAAC;IAEF,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,iBAAiB,EAAE,CAAC;QACnC,SAAS,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,4BAA4B,CAAC,SAAS,EAAE;YACpE,OAAO,EAAE,SAAS,CAAC,OAAO;YAC1B,mBAAmB,EAAE,YAAY,CAAC,mBAAmB;YACrD,uBAAuB,EAAE,YAAY,CAAC,uBAAuB;YAC7D,iBAAiB;YACjB,6BAA6B;YAC7B,gBAAgB;YAChB,cAAc;YACd,WAAW,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,UAAU,CAAC,sBAAsB,CAAC,KAAK,MAAM;SAC/E,CAAC,CAAC,CAAC;IACN,CAAC;IAED,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;AAClD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAEpC;IACC,OAAO,sBAAsB,CAAC;QAC5B,SAAS;QACT,IAAI;QACJ,MAAM,EAAE,EAAE,iBAAiB,EAAE,OAAO,CAAC,iBAAiB,EAAE;KACzD,CAAC,CAAC;AACL,CAAC"}
package/dist/index.js CHANGED
@@ -2,7 +2,8 @@ import { connectNodeAdapter } from "@connectrpc/connect-node";
2
2
  import { ConnectError, Code } from "@connectrpc/connect";
3
3
  import http2 from "node:http2";
4
4
  import { randomUUID } from "node:crypto";
5
- import { registerGrackleRoutes, startHeartbeat, getAdapter, setConnection, removeConnection, emit, pushToEnv, attemptReconnects, resetReconnectState, parseAdapterConfig, isKnowledgeEnabled, initKnowledge, getKnowledgeReadinessCheck, ReconciliationManager, logger, exec, detectLanIp, runWithTrace, isValidTraceId, wrapAsyncIterableWithTrace, } from "@grackle-ai/core";
5
+ import { createServiceCollector, startHeartbeat, getAdapter, setConnection, removeConnection, emit, subscribe, pushToEnv, attemptReconnects, resetReconnectState, parseAdapterConfig, isKnowledgeEnabled, initKnowledge, getKnowledgeReadinessCheck, ReconciliationManager, logger, exec, detectLanIp, runWithTrace, isValidTraceId, wrapAsyncIterableWithTrace, } from "@grackle-ai/core";
6
+ import { loadPlugins } from "@grackle-ai/plugin-sdk";
6
7
  import { envRegistry, sessionStore, settingsStore, personaStore, workspaceStore, taskStore, sqlite, grackleHome } from "@grackle-ai/database";
7
8
  import { reconnectOrProvision } from "@grackle-ai/adapter-sdk";
8
9
  import { LocalPowerLineManager } from "./local-powerline-manager.js";
@@ -15,8 +16,7 @@ import { createRequire } from "node:module";
15
16
  import { initializeDatabase } from "./database-init.js";
16
17
  import { registerAllAdapters } from "./adapter-registry.js";
17
18
  import { bootstrapLocalEnvironment } from "./local-environment.js";
18
- import { createReconciliationPhases } from "./reconciliation-setup.js";
19
- import { wireEventSubscribers } from "./event-subscribers.js";
19
+ import { createCorePlugin } from "./core-plugin.js";
20
20
  import { createShutdown } from "./shutdown.js";
21
21
  /** Require function for loading optional native modules (qrcode). */
22
22
  const esmRequire = createRequire(import.meta.url);
@@ -85,9 +85,34 @@ async function main() {
85
85
  startPairingCleanup();
86
86
  startSessionCleanup();
87
87
  startOAuthCleanup();
88
+ // --- Load plugins ---
89
+ const pluginContext = {
90
+ subscribe,
91
+ emit,
92
+ logger,
93
+ config: {
94
+ grpcPort: config.grpcPort,
95
+ webPort: config.webPort,
96
+ mcpPort: config.mcpPort,
97
+ powerlinePort: config.powerlinePort,
98
+ host: config.host,
99
+ grackleHome,
100
+ apiKey,
101
+ skipRootAutostart: config.skipRootAutostart,
102
+ workingDirectory: config.workingDirectory,
103
+ worktreeBase: config.worktreeBase,
104
+ dockerHost: config.dockerHost,
105
+ },
106
+ };
107
+ const loaded = await loadPlugins([createCorePlugin()], pluginContext);
108
+ // --- Wire gRPC handlers from plugins ---
109
+ const collector = createServiceCollector();
110
+ for (const reg of loaded.serviceRegistrations) {
111
+ collector.addHandlers(reg.service, reg.handlers);
112
+ }
113
+ const routes = collector.buildRoutes();
88
114
  // --- Reconciliation Manager ---
89
- const reconciliationPhases = createReconciliationPhases();
90
- const reconciliationManager = new ReconciliationManager(reconciliationPhases);
115
+ const reconciliationManager = new ReconciliationManager(loaded.reconciliationPhases);
91
116
  reconciliationManager.start();
92
117
  // --- gRPC server (HTTP/2) ---
93
118
  const grpcPort = config.grpcPort;
@@ -96,7 +121,7 @@ async function main() {
96
121
  /** Format bindHost for embedding in a URL — IPv6 literals need brackets per RFC 2732. */
97
122
  const urlHost = bindHost.includes(":") ? `[${bindHost}]` : bindHost;
98
123
  const grpcHandler = connectNodeAdapter({
99
- routes: registerGrackleRoutes,
124
+ routes,
100
125
  interceptors: [
101
126
  // Trace ID interceptor: extract or generate a trace ID for request correlation.
102
127
  // For streaming RPCs, wraps the response's message iterable so the generator
@@ -143,7 +168,7 @@ async function main() {
143
168
  apiKey,
144
169
  webPort,
145
170
  bindHost,
146
- connectRoutes: registerGrackleRoutes,
171
+ connectRoutes: routes,
147
172
  readinessCheck: () => {
148
173
  const checks = {};
149
174
  try {
@@ -164,8 +189,6 @@ async function main() {
164
189
  };
165
190
  },
166
191
  });
167
- // Wire event subscribers (SIGCHLD, escalation, orphan reparent, lifecycle, root task boot)
168
- const activeSubscribers = wireEventSubscribers({ skipRootAutostart: config.skipRootAutostart });
169
192
  webServer.on("error", (err) => {
170
193
  if (err.code === "EADDRINUSE") {
171
194
  logger.fatal({ port: webPort }, "Port %d is already in use. Is another Grackle server running?", webPort);
@@ -244,7 +267,7 @@ async function main() {
244
267
  reconciliationManager,
245
268
  localPowerLineManager,
246
269
  knowledgeCleanup,
247
- subscribers: activeSubscribers,
270
+ pluginShutdown: loaded.shutdown,
248
271
  });
249
272
  // eslint-disable-next-line @typescript-eslint/no-misused-promises
250
273
  process.on("SIGINT", shutdown);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"reconciliation-setup.d.ts","sourceRoot":"","sources":["../src/reconciliation-setup.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAM5D;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,IAAI,mBAAmB,EAAE,CAoFlE"}
1
+ {"version":3,"file":"reconciliation-setup.d.ts","sourceRoot":"","sources":["../src/reconciliation-setup.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAM5D;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,IAAI,mBAAmB,EAAE,CA8ElE"}
@@ -1,4 +1,4 @@
1
- import { createCronPhase, createOrphanPhase, createDispatchPhase, lifecycleCleanupPhase, createEnvironmentReconciliationPhase, listConnections, removeConnection, isKnowledgeEnabled, createKnowledgeHealthPhase, neo4jHealthCheck, startTaskSession, emit, findFirstConnectedEnvironment, hasCapacity, computeTaskStatus, } from "@grackle-ai/core";
1
+ import { createCronPhase, createOrphanPhase, createDispatchPhase, lifecycleCleanupPhase, createEnvironmentReconciliationPhase, listConnections, removeConnection, isKnowledgeEnabled, createKnowledgeHealthPhase, neo4jHealthCheck, startTaskSession, emit, hasCapacity, computeTaskStatus, } from "@grackle-ai/core";
2
2
  import { TASK_STATUS, ROOT_TASK_ID } from "@grackle-ai/common";
3
3
  import { scheduleStore, taskStore, workspaceStore, personaStore, envRegistry, sessionStore, settingsStore, dispatchQueueStore, } from "@grackle-ai/database";
4
4
  /**
@@ -16,16 +16,10 @@ export function createReconciliationPhases() {
16
16
  advanceSchedule: scheduleStore.advanceSchedule,
17
17
  createTask: taskStore.createTask,
18
18
  setTaskScheduleId: taskStore.setTaskScheduleId,
19
- startTaskSession,
19
+ enqueueForDispatch: dispatchQueueStore.enqueue,
20
20
  emit,
21
- findFirstConnectedEnvironment,
22
21
  getPersona: personaStore.getPersona,
23
- getTask: taskStore.getTask,
24
22
  setScheduleEnabled: scheduleStore.setScheduleEnabled,
25
- isEnvironmentConnected: (id) => {
26
- const env = envRegistry.getEnvironment(id);
27
- return env?.status === "connected";
28
- },
29
23
  });
30
24
  const orphanPhase = createOrphanPhase({
31
25
  listAllTasks: () => {
@@ -1 +1 @@
1
- {"version":3,"file":"reconciliation-setup.js","sourceRoot":"","sources":["../src/reconciliation-setup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reconciliation-setup.js","sourceRoot":"","sources":["../src/reconciliation-setup.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,3 @@
1
- import type { Disposable } from "@grackle-ai/core";
2
1
  /** Minimal server interface — only the `.close()` method is needed for shutdown. */
3
2
  interface Closeable {
4
3
  close: (cb: (err?: Error) => void) => void;
@@ -21,8 +20,8 @@ export interface ShutdownContext {
21
20
  };
22
21
  /** Optional knowledge graph cleanup function. */
23
22
  knowledgeCleanup?: () => Promise<void>;
24
- /** Active event subscribers to dispose on shutdown. */
25
- subscribers?: Disposable[];
23
+ /** Plugin shutdown function — disposes subscribers and calls plugin teardown hooks. */
24
+ pluginShutdown?: () => Promise<void>;
26
25
  }
27
26
  /**
28
27
  * Create a graceful shutdown function that closes all server resources.
@@ -1 +1 @@
1
- {"version":3,"file":"shutdown.d.ts","sourceRoot":"","sources":["../src/shutdown.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAQnD,oFAAoF;AACpF,UAAU,SAAS;IACjB,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,KAAK,IAAI,KAAK,IAAI,CAAC;CAC5C;AAED,kEAAkE;AAClE,MAAM,WAAW,eAAe;IAC9B,8BAA8B;IAC9B,UAAU,EAAE,SAAS,CAAC;IACtB,2CAA2C;IAC3C,SAAS,EAAE,SAAS,CAAC;IACrB,+BAA+B;IAC/B,SAAS,EAAE,SAAS,CAAC;IACrB,mEAAmE;IACnE,qBAAqB,EAAE;QAAE,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;KAAE,CAAC;IACrD,6DAA6D;IAC7D,qBAAqB,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;KAAE,CAAC;IACtD,iDAAiD;IACjD,gBAAgB,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,uDAAuD;IACvD,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC;CAC5B;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CA+E5E"}
1
+ {"version":3,"file":"shutdown.d.ts","sourceRoot":"","sources":["../src/shutdown.ts"],"names":[],"mappings":"AAQA,oFAAoF;AACpF,UAAU,SAAS;IACjB,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,KAAK,IAAI,KAAK,IAAI,CAAC;CAC5C;AAED,kEAAkE;AAClE,MAAM,WAAW,eAAe;IAC9B,8BAA8B;IAC9B,UAAU,EAAE,SAAS,CAAC;IACtB,2CAA2C;IAC3C,SAAS,EAAE,SAAS,CAAC;IACrB,+BAA+B;IAC/B,SAAS,EAAE,SAAS,CAAC;IACrB,mEAAmE;IACnE,qBAAqB,EAAE;QAAE,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;KAAE,CAAC;IACrD,6DAA6D;IAC7D,qBAAqB,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;KAAE,CAAC;IACtD,iDAAiD;IACjD,gBAAgB,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,uFAAuF;IACvF,cAAc,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACtC;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CA6E5E"}
package/dist/shutdown.js CHANGED
@@ -62,16 +62,14 @@ export function createShutdown(context) {
62
62
  resolve();
63
63
  });
64
64
  });
65
- // Dispose event subscribers after servers are closed so in-flight requests
66
- // are fully handled before unregistering handlers.
67
- if (context.subscribers) {
68
- for (const subscriber of context.subscribers) {
69
- try {
70
- subscriber.dispose();
71
- }
72
- catch (err) {
73
- logger.error({ err }, "Error while disposing subscriber during shutdown");
74
- }
65
+ // Run plugin shutdown (disposes subscribers + calls plugin teardown hooks)
66
+ // after servers are closed so in-flight requests are fully handled first.
67
+ if (context.pluginShutdown) {
68
+ try {
69
+ await context.pluginShutdown();
70
+ }
71
+ catch (err) {
72
+ logger.error({ err }, "Error during plugin shutdown");
75
73
  }
76
74
  }
77
75
  // Final WAL checkpoint (TRUNCATE) to fully flush pending writes before exit
@@ -1 +1 @@
1
- {"version":3,"file":"shutdown.js","sourceRoot":"","sources":["../src/shutdown.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shutdown.js","sourceRoot":"","sources":["../src/shutdown.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@grackle-ai/server",
3
- "version": "0.95.0",
3
+ "version": "0.95.2",
4
4
  "description": "Grackle server orchestrator — spawns and wires core (gRPC), web-server (HTTP), MCP, and PowerLine",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -31,18 +31,19 @@
31
31
  "@connectrpc/connect-node": "^2.0.0",
32
32
  "pino": "^10.3.1",
33
33
  "qrcode": "^1.5.4",
34
- "@grackle-ai/adapter-codespace": "0.95.0",
35
- "@grackle-ai/adapter-local": "0.95.0",
36
- "@grackle-ai/adapter-docker": "0.95.0",
37
- "@grackle-ai/adapter-ssh": "0.95.0",
38
- "@grackle-ai/adapter-sdk": "0.95.0",
39
- "@grackle-ai/common": "0.95.0",
40
- "@grackle-ai/core": "0.95.0",
41
- "@grackle-ai/database": "0.95.0",
42
- "@grackle-ai/mcp": "0.95.0",
43
- "@grackle-ai/auth": "0.95.0",
44
- "@grackle-ai/web-server": "0.95.0",
45
- "@grackle-ai/powerline": "0.95.0"
34
+ "@grackle-ai/adapter-codespace": "0.95.2",
35
+ "@grackle-ai/adapter-sdk": "0.95.2",
36
+ "@grackle-ai/adapter-docker": "0.95.2",
37
+ "@grackle-ai/adapter-ssh": "0.95.2",
38
+ "@grackle-ai/adapter-local": "0.95.2",
39
+ "@grackle-ai/common": "0.95.2",
40
+ "@grackle-ai/core": "0.95.2",
41
+ "@grackle-ai/auth": "0.95.2",
42
+ "@grackle-ai/database": "0.95.2",
43
+ "@grackle-ai/powerline": "0.95.2",
44
+ "@grackle-ai/mcp": "0.95.2",
45
+ "@grackle-ai/web-server": "0.95.2",
46
+ "@grackle-ai/plugin-sdk": "0.95.2"
46
47
  },
47
48
  "devDependencies": {
48
49
  "@rushstack/heft": "1.2.7",