@grackle-ai/core 0.92.0 → 0.92.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/grpc-service.d.ts +8 -0
- package/dist/grpc-service.d.ts.map +1 -1
- package/dist/grpc-service.js +24 -14
- package/dist/grpc-service.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/service-collector.d.ts +28 -0
- package/dist/service-collector.d.ts.map +1 -0
- package/dist/service-collector.js +22 -0
- package/dist/service-collector.js.map +1 -0
- package/dist/test-utils/integration-setup.d.ts +2 -2
- package/dist/test-utils/integration-setup.d.ts.map +1 -1
- package/dist/test-utils/integration-setup.js +6 -12
- package/dist/test-utils/integration-setup.js.map +1 -1
- package/package.json +7 -7
package/dist/grpc-service.d.ts
CHANGED
|
@@ -1,6 +1,14 @@
|
|
|
1
1
|
import type { ConnectRouter } from "@connectrpc/connect";
|
|
2
|
+
import { type ServiceCollector } from "./service-collector.js";
|
|
2
3
|
export { toDialableHost, resolveAncestorEnvironmentId } from "./grpc-shared.js";
|
|
3
4
|
export { buildMcpServersJson } from "./grpc-mcp-config.js";
|
|
5
|
+
/**
|
|
6
|
+
* Create a {@link ServiceCollector} pre-loaded with all built-in Grackle handler groups.
|
|
7
|
+
*
|
|
8
|
+
* Use this when you need access to the collector itself (e.g., for testing or
|
|
9
|
+
* to add plugin-contributed handlers before calling `buildRoutes()`).
|
|
10
|
+
*/
|
|
11
|
+
export declare function createDefaultCollector(): ServiceCollector;
|
|
4
12
|
/** Register all Grackle gRPC service handlers on the given ConnectRPC router. */
|
|
5
13
|
export declare function registerGrackleRoutes(router: ConnectRouter): void;
|
|
6
14
|
//# sourceMappingURL=grpc-service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grpc-service.d.ts","sourceRoot":"","sources":["../src/grpc-service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"grpc-service.d.ts","sourceRoot":"","sources":["../src/grpc-service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,OAAO,EAA0B,KAAK,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAiBvF,OAAO,EAAE,cAAc,EAAE,4BAA4B,EAAE,MAAM,kBAAkB,CAAC;AAChF,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAE3D;;;;;GAKG;AACH,wBAAgB,sBAAsB,IAAI,gBAAgB,CAezD;AAED,iFAAiF;AACjF,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,CAEjE"}
|
package/dist/grpc-service.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { grackle } from "@grackle-ai/common";
|
|
2
|
+
import { createServiceCollector } from "./service-collector.js";
|
|
2
3
|
import * as environments from "./environment-handlers.js";
|
|
3
4
|
import * as sessions from "./session-handlers.js";
|
|
4
5
|
import * as tasks from "./task-handlers.js";
|
|
@@ -16,21 +17,30 @@ import * as settings from "./settings-handlers.js";
|
|
|
16
17
|
// import directly from this module.
|
|
17
18
|
export { toDialableHost, resolveAncestorEnvironmentId } from "./grpc-shared.js";
|
|
18
19
|
export { buildMcpServersJson } from "./grpc-mcp-config.js";
|
|
20
|
+
/**
|
|
21
|
+
* Create a {@link ServiceCollector} pre-loaded with all built-in Grackle handler groups.
|
|
22
|
+
*
|
|
23
|
+
* Use this when you need access to the collector itself (e.g., for testing or
|
|
24
|
+
* to add plugin-contributed handlers before calling `buildRoutes()`).
|
|
25
|
+
*/
|
|
26
|
+
export function createDefaultCollector() {
|
|
27
|
+
const collector = createServiceCollector();
|
|
28
|
+
collector.addHandlers(grackle.Grackle, environments);
|
|
29
|
+
collector.addHandlers(grackle.Grackle, sessions);
|
|
30
|
+
collector.addHandlers(grackle.Grackle, tasks);
|
|
31
|
+
collector.addHandlers(grackle.Grackle, workspaces);
|
|
32
|
+
collector.addHandlers(grackle.Grackle, personas);
|
|
33
|
+
collector.addHandlers(grackle.Grackle, schedules);
|
|
34
|
+
collector.addHandlers(grackle.Grackle, tokens);
|
|
35
|
+
collector.addHandlers(grackle.Grackle, findings);
|
|
36
|
+
collector.addHandlers(grackle.Grackle, escalations);
|
|
37
|
+
collector.addHandlers(grackle.Grackle, codespaces);
|
|
38
|
+
collector.addHandlers(grackle.Grackle, knowledge);
|
|
39
|
+
collector.addHandlers(grackle.Grackle, settings);
|
|
40
|
+
return collector;
|
|
41
|
+
}
|
|
19
42
|
/** Register all Grackle gRPC service handlers on the given ConnectRPC router. */
|
|
20
43
|
export function registerGrackleRoutes(router) {
|
|
21
|
-
|
|
22
|
-
...environments,
|
|
23
|
-
...sessions,
|
|
24
|
-
...tasks,
|
|
25
|
-
...workspaces,
|
|
26
|
-
...personas,
|
|
27
|
-
...schedules,
|
|
28
|
-
...tokens,
|
|
29
|
-
...findings,
|
|
30
|
-
...escalations,
|
|
31
|
-
...codespaces,
|
|
32
|
-
...knowledge,
|
|
33
|
-
...settings,
|
|
34
|
-
});
|
|
44
|
+
createDefaultCollector().buildRoutes()(router);
|
|
35
45
|
}
|
|
36
46
|
//# sourceMappingURL=grpc-service.js.map
|
package/dist/grpc-service.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grpc-service.js","sourceRoot":"","sources":["../src/grpc-service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,KAAK,YAAY,MAAM,2BAA2B,CAAC;AAC1D,OAAO,KAAK,QAAQ,MAAM,uBAAuB,CAAC;AAClD,OAAO,KAAK,KAAK,MAAM,oBAAoB,CAAC;AAC5C,OAAO,KAAK,UAAU,MAAM,yBAAyB,CAAC;AACtD,OAAO,KAAK,QAAQ,MAAM,uBAAuB,CAAC;AAClD,OAAO,KAAK,SAAS,MAAM,wBAAwB,CAAC;AACpD,OAAO,KAAK,MAAM,MAAM,qBAAqB,CAAC;AAC9C,OAAO,KAAK,QAAQ,MAAM,uBAAuB,CAAC;AAClD,OAAO,KAAK,WAAW,MAAM,0BAA0B,CAAC;AACxD,OAAO,KAAK,UAAU,MAAM,yBAAyB,CAAC;AACtD,OAAO,KAAK,SAAS,MAAM,yBAAyB,CAAC;AACrD,OAAO,KAAK,QAAQ,MAAM,wBAAwB,CAAC;AAEnD,oDAAoD;AACpD,2DAA2D;AAC3D,oCAAoC;AACpC,OAAO,EAAE,cAAc,EAAE,4BAA4B,EAAE,MAAM,kBAAkB,CAAC;AAChF,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAE3D
|
|
1
|
+
{"version":3,"file":"grpc-service.js","sourceRoot":"","sources":["../src/grpc-service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,sBAAsB,EAAyB,MAAM,wBAAwB,CAAC;AACvF,OAAO,KAAK,YAAY,MAAM,2BAA2B,CAAC;AAC1D,OAAO,KAAK,QAAQ,MAAM,uBAAuB,CAAC;AAClD,OAAO,KAAK,KAAK,MAAM,oBAAoB,CAAC;AAC5C,OAAO,KAAK,UAAU,MAAM,yBAAyB,CAAC;AACtD,OAAO,KAAK,QAAQ,MAAM,uBAAuB,CAAC;AAClD,OAAO,KAAK,SAAS,MAAM,wBAAwB,CAAC;AACpD,OAAO,KAAK,MAAM,MAAM,qBAAqB,CAAC;AAC9C,OAAO,KAAK,QAAQ,MAAM,uBAAuB,CAAC;AAClD,OAAO,KAAK,WAAW,MAAM,0BAA0B,CAAC;AACxD,OAAO,KAAK,UAAU,MAAM,yBAAyB,CAAC;AACtD,OAAO,KAAK,SAAS,MAAM,yBAAyB,CAAC;AACrD,OAAO,KAAK,QAAQ,MAAM,wBAAwB,CAAC;AAEnD,oDAAoD;AACpD,2DAA2D;AAC3D,oCAAoC;AACpC,OAAO,EAAE,cAAc,EAAE,4BAA4B,EAAE,MAAM,kBAAkB,CAAC;AAChF,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAE3D;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB;IACpC,MAAM,SAAS,GAAG,sBAAsB,EAAE,CAAC;IAC3C,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IACrD,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACjD,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC9C,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IACnD,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACjD,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAClD,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC/C,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACjD,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IACpD,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IACnD,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAClD,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACjD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,qBAAqB,CAAC,MAAqB;IACzD,sBAAsB,EAAE,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC;AACjD,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
export { registerGrackleRoutes } from "./grpc-service.js";
|
|
1
|
+
export { registerGrackleRoutes, createDefaultCollector } from "./grpc-service.js";
|
|
2
|
+
export { createServiceCollector } from "./service-collector.js";
|
|
3
|
+
export type { ServiceCollector, HandlerGroup } from "./service-collector.js";
|
|
2
4
|
export { registerAdapter, getAdapter, setConnection, getConnection, removeConnection, listConnections, startHeartbeat, stopHeartbeat, } from "./adapter-manager.js";
|
|
3
5
|
export { parseAdapterConfig } from "./adapter-config.js";
|
|
4
6
|
export { emit, subscribe } from "./event-bus.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAClF,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,YAAY,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAG7E,OAAO,EACL,eAAe,EAAE,UAAU,EAC3B,aAAa,EAAE,aAAa,EAAE,gBAAgB,EAAE,eAAe,EAC/D,cAAc,EAAE,aAAa,GAC9B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAGzD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAGjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,4BAA4B,EAAE,MAAM,8BAA8B,CAAC;AAC5E,OAAO,EAAE,4BAA4B,EAAE,4BAA4B,EAAE,MAAM,8BAA8B,CAAC;AAC1G,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAG5F,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGtD,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC7E,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAG7D,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC1F,OAAO,EAAE,0BAA0B,EAAE,cAAc,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AAC/G,YAAY,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAG/F,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,YAAY,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,YAAY,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAChF,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,YAAY,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAChF,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,kBAAkB,EAAE,iBAAiB,EAAE,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAG/F,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAGrC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,cAAc,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAG1G,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
// ─── gRPC Service ───────────────────────────────────────────
|
|
2
|
-
export { registerGrackleRoutes } from "./grpc-service.js";
|
|
2
|
+
export { registerGrackleRoutes, createDefaultCollector } from "./grpc-service.js";
|
|
3
|
+
export { createServiceCollector } from "./service-collector.js";
|
|
3
4
|
// ─── Adapter Management ────────────────────────────────────
|
|
4
5
|
export { registerAdapter, getAdapter, setConnection, getConnection, removeConnection, listConnections, startHeartbeat, stopHeartbeat, } from "./adapter-manager.js";
|
|
5
6
|
export { parseAdapterConfig } from "./adapter-config.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAClF,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAGhE,8DAA8D;AAC9D,OAAO,EACL,eAAe,EAAE,UAAU,EAC3B,aAAa,EAAE,aAAa,EAAE,gBAAgB,EAAE,eAAe,EAC/D,cAAc,EAAE,aAAa,GAC9B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzD,8DAA8D;AAC9D,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEjD,8DAA8D;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,4BAA4B,EAAE,MAAM,8BAA8B,CAAC;AAC5E,OAAO,EAAE,4BAA4B,EAAE,4BAA4B,EAAE,MAAM,8BAA8B,CAAC;AAC1G,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAE5F,+DAA+D;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,8DAA8D;AAC9D,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC7E,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D,8DAA8D;AAC9D,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC1F,OAAO,EAAE,0BAA0B,EAAE,cAAc,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AAG/G,6DAA6D;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAEpE,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtD,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAChF,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzD,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAChF,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,oCAAoC,EAAE,MAAM,iCAAiC,CAAC;AAGvF,6DAA6D;AAC7D,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAsB,MAAM,oBAAoB,CAAC;AAE/F,8DAA8D;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,+DAA+D;AAC/D,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,cAAc,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAE1G,8DAA8D;AAC9D,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { ConnectRouter } from "@connectrpc/connect";
|
|
2
|
+
import type { DescService } from "@bufbuild/protobuf";
|
|
3
|
+
/**
|
|
4
|
+
* A record of handler method implementations for a gRPC service.
|
|
5
|
+
*
|
|
6
|
+
* Uses `any` because handler functions have concrete parameter types (e.g.,
|
|
7
|
+
* `(req: GetSettingRequest) => Promise<SettingResponse>`) that are not
|
|
8
|
+
* assignable to `(...args: unknown[]) => unknown` due to contravariance.
|
|
9
|
+
*/
|
|
10
|
+
export type HandlerGroup = Record<string, (...args: any[]) => any>;
|
|
11
|
+
/**
|
|
12
|
+
* Collects gRPC handler groups and produces ConnectRPC route registration.
|
|
13
|
+
*
|
|
14
|
+
* Plugins add their handlers via {@link addHandlers}, then the server calls
|
|
15
|
+
* {@link buildRoutes} to get the final `(router: ConnectRouter) => void`
|
|
16
|
+
* function for `connectNodeAdapter`.
|
|
17
|
+
*/
|
|
18
|
+
export interface ServiceCollector {
|
|
19
|
+
/** Add handler methods to a service. Multiple calls merge handlers (last-write-wins). */
|
|
20
|
+
addHandlers(service: DescService, handlers: HandlerGroup): void;
|
|
21
|
+
/** Build the route registration function for `connectNodeAdapter({ routes })`. */
|
|
22
|
+
buildRoutes(): (router: ConnectRouter) => void;
|
|
23
|
+
/** Get all collected handlers for a service. Returns `{}` if no handlers registered. */
|
|
24
|
+
getHandlers(service: DescService): HandlerGroup;
|
|
25
|
+
}
|
|
26
|
+
/** Create a new empty {@link ServiceCollector}. */
|
|
27
|
+
export declare function createServiceCollector(): ServiceCollector;
|
|
28
|
+
//# sourceMappingURL=service-collector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service-collector.d.ts","sourceRoot":"","sources":["../src/service-collector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD;;;;;;GAMG;AAEH,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,CAAC;AAEnE;;;;;;GAMG;AACH,MAAM,WAAW,gBAAgB;IAC/B,yFAAyF;IACzF,WAAW,CAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,GAAG,IAAI,CAAC;IAEhE,kFAAkF;IAClF,WAAW,IAAI,CAAC,MAAM,EAAE,aAAa,KAAK,IAAI,CAAC;IAE/C,wFAAwF;IACxF,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,YAAY,CAAC;CACjD;AAED,mDAAmD;AACnD,wBAAgB,sBAAsB,IAAI,gBAAgB,CAsBzD"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/** Create a new empty {@link ServiceCollector}. */
|
|
2
|
+
export function createServiceCollector() {
|
|
3
|
+
const registry = new Map();
|
|
4
|
+
return {
|
|
5
|
+
addHandlers(service, handlers) {
|
|
6
|
+
const existing = registry.get(service) ?? {};
|
|
7
|
+
registry.set(service, { ...existing, ...handlers });
|
|
8
|
+
},
|
|
9
|
+
buildRoutes() {
|
|
10
|
+
return (router) => {
|
|
11
|
+
for (const [service, handlers] of registry) {
|
|
12
|
+
router.service(service, handlers);
|
|
13
|
+
}
|
|
14
|
+
};
|
|
15
|
+
},
|
|
16
|
+
getHandlers(service) {
|
|
17
|
+
const handlers = registry.get(service);
|
|
18
|
+
return handlers ? { ...handlers } : {};
|
|
19
|
+
},
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=service-collector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service-collector.js","sourceRoot":"","sources":["../src/service-collector.ts"],"names":[],"mappings":"AA+BA,mDAAmD;AACnD,MAAM,UAAU,sBAAsB;IACpC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA6B,CAAC;IAEtD,OAAO;QACL,WAAW,CAAC,OAAoB,EAAE,QAAsB;YACtD,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAC7C,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,GAAG,QAAQ,EAAE,GAAG,QAAQ,EAAE,CAAC,CAAC;QACtD,CAAC;QAED,WAAW;YACT,OAAO,CAAC,MAAqB,EAAE,EAAE;gBAC/B,KAAK,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,QAAQ,EAAE,CAAC;oBAC3C,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,QAA8D,CAAC,CAAC;gBAC1F,CAAC;YACH,CAAC,CAAC;QACJ,CAAC;QAED,WAAW,CAAC,OAAoB;YAC9B,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACvC,OAAO,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzC,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
*/
|
|
5
5
|
export declare function initTestDatabase(): void;
|
|
6
6
|
/**
|
|
7
|
-
* Extract the service handler map
|
|
8
|
-
*
|
|
7
|
+
* Extract the service handler map for the Grackle service.
|
|
8
|
+
* Uses the {@link createDefaultCollector} to get all built-in handlers.
|
|
9
9
|
*/
|
|
10
10
|
export declare function getHandlers(): Record<string, (...args: unknown[]) => unknown>;
|
|
11
11
|
//# sourceMappingURL=integration-setup.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"integration-setup.d.ts","sourceRoot":"","sources":["../../src/test-utils/integration-setup.ts"],"names":[],"mappings":"AAUA;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAIvC;AAED;;;GAGG;AACH,wBAAgB,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"integration-setup.d.ts","sourceRoot":"","sources":["../../src/test-utils/integration-setup.ts"],"names":[],"mappings":"AAUA;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAIvC;AAED;;;GAGG;AACH,wBAAgB,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,CAE7E"}
|
|
@@ -2,10 +2,11 @@
|
|
|
2
2
|
* Shared setup for gRPC handler integration tests.
|
|
3
3
|
*
|
|
4
4
|
* Provides an in-memory SQLite database (real stores, no database mocks)
|
|
5
|
-
* and a helper to extract handler methods
|
|
5
|
+
* and a helper to extract handler methods via {@link createDefaultCollector}.
|
|
6
6
|
*/
|
|
7
7
|
import { openDatabase, initDatabase, sqlite, seedDatabase } from "@grackle-ai/database";
|
|
8
|
-
import {
|
|
8
|
+
import { grackle } from "@grackle-ai/common";
|
|
9
|
+
import { createDefaultCollector } from "../grpc-service.js";
|
|
9
10
|
/**
|
|
10
11
|
* Initialize an in-memory SQLite database with all tables and seed data.
|
|
11
12
|
* Call once in `beforeAll`.
|
|
@@ -16,17 +17,10 @@ export function initTestDatabase() {
|
|
|
16
17
|
seedDatabase(sqlite);
|
|
17
18
|
}
|
|
18
19
|
/**
|
|
19
|
-
* Extract the service handler map
|
|
20
|
-
*
|
|
20
|
+
* Extract the service handler map for the Grackle service.
|
|
21
|
+
* Uses the {@link createDefaultCollector} to get all built-in handlers.
|
|
21
22
|
*/
|
|
22
23
|
export function getHandlers() {
|
|
23
|
-
|
|
24
|
-
const fakeRouter = {
|
|
25
|
-
service(_def, impl) {
|
|
26
|
-
handlers = impl;
|
|
27
|
-
},
|
|
28
|
-
};
|
|
29
|
-
registerGrackleRoutes(fakeRouter);
|
|
30
|
-
return handlers;
|
|
24
|
+
return createDefaultCollector().getHandlers(grackle.Grackle);
|
|
31
25
|
}
|
|
32
26
|
//# sourceMappingURL=integration-setup.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"integration-setup.js","sourceRoot":"","sources":["../../src/test-utils/integration-setup.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACxF,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"integration-setup.js","sourceRoot":"","sources":["../../src/test-utils/integration-setup.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACxF,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAE5D;;;GAGG;AACH,MAAM,UAAU,gBAAgB;IAC9B,YAAY,CAAC,UAAU,CAAC,CAAC;IACzB,YAAY,EAAE,CAAC;IACf,YAAY,CAAC,MAAO,CAAC,CAAC;AACxB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW;IACzB,OAAO,sBAAsB,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAoD,CAAC;AAClH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@grackle-ai/core",
|
|
3
|
-
"version": "0.92.
|
|
3
|
+
"version": "0.92.2",
|
|
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,12 @@
|
|
|
36
36
|
"pino": "^10.3.1",
|
|
37
37
|
"ulid": "^2.3.0",
|
|
38
38
|
"uuid": "^11.0.0",
|
|
39
|
-
"@grackle-ai/auth": "0.92.
|
|
40
|
-
"@grackle-ai/
|
|
41
|
-
"@grackle-ai/
|
|
42
|
-
"@grackle-ai/knowledge": "0.92.
|
|
43
|
-
"@grackle-ai/
|
|
44
|
-
"@grackle-ai/prompt": "0.92.
|
|
39
|
+
"@grackle-ai/auth": "0.92.2",
|
|
40
|
+
"@grackle-ai/database": "0.92.2",
|
|
41
|
+
"@grackle-ai/common": "0.92.2",
|
|
42
|
+
"@grackle-ai/knowledge": "0.92.2",
|
|
43
|
+
"@grackle-ai/adapter-sdk": "0.92.2",
|
|
44
|
+
"@grackle-ai/prompt": "0.92.2"
|
|
45
45
|
},
|
|
46
46
|
"devDependencies": {
|
|
47
47
|
"@rushstack/heft": "1.2.7",
|