@rk0429/agentic-relay 3.4.0 → 3.5.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.
- package/README.md +14 -0
- package/dist/application/spawn-agents-service.js +6 -2
- package/dist/application/spawn-agents-service.js.map +1 -1
- package/dist/core/types.d.ts +4 -0
- package/dist/core/types.js.map +1 -1
- package/dist/domain/routing.d.ts +4 -1
- package/dist/domain/routing.js +25 -3
- package/dist/domain/routing.js.map +1 -1
- package/dist/infrastructure/store/relay-store.d.ts +3 -1
- package/dist/infrastructure/store/relay-store.js +22 -0
- package/dist/infrastructure/store/relay-store.js.map +1 -1
- package/dist/interfaces/mcp/relay-mcp-server.js +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -56,6 +56,20 @@ installed backend if the preferred one is unavailable. Only
|
|
|
56
56
|
`task_type="orchestration"` child agents receive `spawn_agents`; all other
|
|
57
57
|
task types are treated as leaf agents.
|
|
58
58
|
|
|
59
|
+
Routing can be customized through `.relay/config.json`:
|
|
60
|
+
|
|
61
|
+
```json
|
|
62
|
+
{
|
|
63
|
+
"routing": {
|
|
64
|
+
"research": "gemini",
|
|
65
|
+
"code_writing": "claude"
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
When a `routing` entry exists for a `task_type`, it overrides the built-in
|
|
71
|
+
default for backend auto-selection.
|
|
72
|
+
|
|
59
73
|
## Use From This Workspace
|
|
60
74
|
|
|
61
75
|
This workspace is configured to consume the published package via
|
|
@@ -2,7 +2,7 @@ import { randomUUID } from "node:crypto";
|
|
|
2
2
|
import { DepthLimitError } from "../core/errors.js";
|
|
3
3
|
import { getCurrentDepth, resolveMaxDepth, validateDepth } from "../domain/depth.js";
|
|
4
4
|
import { canSpawnAgents } from "../domain/redelegation.js";
|
|
5
|
-
import { resolveBackend } from "../domain/routing.js";
|
|
5
|
+
import { resolveBackend, validateRoutingRules } from "../domain/routing.js";
|
|
6
6
|
export class SpawnAgentsService {
|
|
7
7
|
dependencies;
|
|
8
8
|
constructor(dependencies) {
|
|
@@ -13,17 +13,20 @@ export class SpawnAgentsService {
|
|
|
13
13
|
const currentDepth = getCurrentDepth(env);
|
|
14
14
|
const maxDepth = resolveMaxDepth(input.max_depth, env);
|
|
15
15
|
validateDepth(currentDepth, maxDepth);
|
|
16
|
+
const relayConfig = await this.dependencies.store.readConfig();
|
|
17
|
+
const routingRules = validateRoutingRules(relayConfig?.routing);
|
|
16
18
|
const installedBackends = await this.dependencies.backendRegistry.detectInstalled();
|
|
17
19
|
return Promise.all(input.agents.map((agent) => this.spawnSingleAgent({
|
|
18
20
|
agent,
|
|
19
21
|
currentDepth,
|
|
20
22
|
maxDepth,
|
|
21
23
|
installedBackends,
|
|
24
|
+
routingRules,
|
|
22
25
|
signal: options.signal,
|
|
23
26
|
})));
|
|
24
27
|
}
|
|
25
28
|
async spawnSingleAgent(options) {
|
|
26
|
-
const { agent, currentDepth, maxDepth, installedBackends, signal } = options;
|
|
29
|
+
const { agent, currentDepth, maxDepth, installedBackends, routingRules, signal } = options;
|
|
27
30
|
const relaySessionId = randomUUID();
|
|
28
31
|
let routing;
|
|
29
32
|
try {
|
|
@@ -37,6 +40,7 @@ export class SpawnAgentsService {
|
|
|
37
40
|
explicitBackend: agent.backend ?? resumeMetadata?.backend,
|
|
38
41
|
taskType: agent.task_type,
|
|
39
42
|
installedBackends,
|
|
43
|
+
routingRules,
|
|
40
44
|
});
|
|
41
45
|
const handoff = createHandoffInfo({
|
|
42
46
|
requestedSessionId: agent.session_id,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spawn-agents-service.js","sourceRoot":"","sources":["../../src/application/spawn-agents-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAUzC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACrF,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"spawn-agents-service.js","sourceRoot":"","sources":["../../src/application/spawn-agents-service.ts"],"names":[],"mappings":"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"}
|
package/dist/core/types.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ export declare const BACKEND_TYPES: readonly ["claude", "codex", "gemini"];
|
|
|
2
2
|
export type BackendType = (typeof BACKEND_TYPES)[number];
|
|
3
3
|
export declare const TASK_TYPES: readonly ["orchestration", "research", "document_review", "code_writing", "document_writing", "code_review"];
|
|
4
4
|
export type TaskType = (typeof TASK_TYPES)[number];
|
|
5
|
+
export type RoutingRules = Partial<Record<TaskType, BackendType>>;
|
|
5
6
|
export type ExecutionStatus = "success" | "error";
|
|
6
7
|
export declare const TASK_STATUSES: readonly ["backlog", "ready", "in_progress", "review", "blocked", "done", "superseded", "archived"];
|
|
7
8
|
export type TaskStatus = (typeof TASK_STATUSES)[number];
|
|
@@ -145,6 +146,9 @@ export interface RelaySessionMetadata {
|
|
|
145
146
|
updatedAt: string;
|
|
146
147
|
handoffFrom?: HandoffInfo;
|
|
147
148
|
}
|
|
149
|
+
export interface RelayConfig {
|
|
150
|
+
routing?: RoutingRules;
|
|
151
|
+
}
|
|
148
152
|
export interface LogEntry {
|
|
149
153
|
timestamp: string;
|
|
150
154
|
session_id: string;
|
package/dist/core/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAU,CAAC;AAGpE,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,eAAe;IACf,UAAU;IACV,iBAAiB;IACjB,cAAc;IACd,kBAAkB;IAClB,aAAa;CACL,CAAC;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAU,CAAC;AAGpE,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,eAAe;IACf,UAAU;IACV,iBAAiB;IACjB,cAAc;IACd,kBAAkB;IAClB,aAAa;CACL,CAAC;AAMX,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,SAAS;IACT,OAAO;IACP,aAAa;IACb,QAAQ;IACR,SAAS;IACT,MAAM;IACN,YAAY;IACZ,UAAU;CACF,CAAC;AAGX,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,qBAAqB;IACrB,eAAe;IACf,iBAAiB;IACjB,cAAc;CACN,CAAC"}
|
package/dist/domain/routing.d.ts
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
|
-
import { type BackendType, type RoutingInfo, type TaskType } from "../core/types.js";
|
|
1
|
+
import { type BackendType, type RoutingRules, type RoutingInfo, type TaskType } from "../core/types.js";
|
|
2
|
+
export declare const DEFAULT_ROUTING: Record<TaskType, BackendType>;
|
|
2
3
|
export declare function assertValidBackend(backend: string | undefined): backend is BackendType;
|
|
3
4
|
export declare function assertValidTaskType(taskType: string | undefined): taskType is TaskType;
|
|
4
5
|
export declare function resolveBackend(options: {
|
|
5
6
|
explicitBackend?: string;
|
|
6
7
|
taskType?: string;
|
|
7
8
|
installedBackends: BackendType[];
|
|
9
|
+
routingRules?: RoutingRules;
|
|
8
10
|
}): RoutingInfo;
|
|
11
|
+
export declare function validateRoutingRules(value: unknown): RoutingRules;
|
package/dist/domain/routing.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { BACKEND_TYPES, TASK_TYPES, } from "../core/types.js";
|
|
2
2
|
import { BackendUnavailableError, ValidationError, } from "../core/errors.js";
|
|
3
|
-
const DEFAULT_ROUTING = {
|
|
3
|
+
export const DEFAULT_ROUTING = {
|
|
4
4
|
orchestration: "claude",
|
|
5
5
|
document_writing: "claude",
|
|
6
6
|
code_review: "claude",
|
|
@@ -16,7 +16,7 @@ export function assertValidTaskType(taskType) {
|
|
|
16
16
|
return taskType !== undefined && TASK_TYPES.includes(taskType);
|
|
17
17
|
}
|
|
18
18
|
export function resolveBackend(options) {
|
|
19
|
-
const { explicitBackend, taskType, installedBackends } = options;
|
|
19
|
+
const { explicitBackend, taskType, installedBackends, routingRules } = options;
|
|
20
20
|
if (installedBackends.length === 0) {
|
|
21
21
|
throw new BackendUnavailableError("No supported backend CLI is installed.");
|
|
22
22
|
}
|
|
@@ -38,7 +38,10 @@ export function resolveBackend(options) {
|
|
|
38
38
|
if (!taskType) {
|
|
39
39
|
throw new ValidationError("Either backend or task_type must be specified.");
|
|
40
40
|
}
|
|
41
|
-
const preferred =
|
|
41
|
+
const preferred = {
|
|
42
|
+
...DEFAULT_ROUTING,
|
|
43
|
+
...(routingRules ?? {}),
|
|
44
|
+
}[taskType];
|
|
42
45
|
if (installedBackends.includes(preferred)) {
|
|
43
46
|
return {
|
|
44
47
|
resolved: preferred,
|
|
@@ -55,4 +58,23 @@ export function resolveBackend(options) {
|
|
|
55
58
|
fallbackReason: `Preferred backend ${preferred} is not installed.`,
|
|
56
59
|
};
|
|
57
60
|
}
|
|
61
|
+
export function validateRoutingRules(value) {
|
|
62
|
+
if (value === undefined) {
|
|
63
|
+
return {};
|
|
64
|
+
}
|
|
65
|
+
if (typeof value !== "object" || value === null || Array.isArray(value)) {
|
|
66
|
+
throw new ValidationError("Routing config must be an object.");
|
|
67
|
+
}
|
|
68
|
+
const rules = {};
|
|
69
|
+
for (const [taskType, backend] of Object.entries(value)) {
|
|
70
|
+
if (!assertValidTaskType(taskType)) {
|
|
71
|
+
throw new ValidationError(`Unknown task_type in routing config: ${taskType}`);
|
|
72
|
+
}
|
|
73
|
+
if (typeof backend !== "string" || !assertValidBackend(backend)) {
|
|
74
|
+
throw new ValidationError(`Unknown backend in routing config for ${taskType}: ${String(backend)}`);
|
|
75
|
+
}
|
|
76
|
+
rules[taskType] = backend;
|
|
77
|
+
}
|
|
78
|
+
return rules;
|
|
79
|
+
}
|
|
58
80
|
//# sourceMappingURL=routing.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routing.js","sourceRoot":"","sources":["../../src/domain/routing.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,UAAU,
|
|
1
|
+
{"version":3,"file":"routing.js","sourceRoot":"","sources":["../../src/domain/routing.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,UAAU,GAKX,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,uBAAuB,EACvB,eAAe,GAChB,MAAM,mBAAmB,CAAC;AAE3B,MAAM,CAAC,MAAM,eAAe,GAAkC;IAC5D,aAAa,EAAE,QAAQ;IACvB,gBAAgB,EAAE,QAAQ;IAC1B,WAAW,EAAE,QAAQ;IACrB,QAAQ,EAAE,OAAO;IACjB,eAAe,EAAE,OAAO;IACxB,YAAY,EAAE,OAAO;CACtB,CAAC;AAEF,MAAM,cAAc,GAAkB,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;AAEpE,MAAM,UAAU,kBAAkB,CAChC,OAA2B;IAE3B,OAAO,OAAO,KAAK,SAAS,IAAI,aAAa,CAAC,QAAQ,CAAC,OAAsB,CAAC,CAAC;AACjF,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,QAA4B;IAE5B,OAAO,QAAQ,KAAK,SAAS,IAAI,UAAU,CAAC,QAAQ,CAAC,QAAoB,CAAC,CAAC;AAC7E,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,OAK9B;IACC,MAAM,EAAE,eAAe,EAAE,QAAQ,EAAE,iBAAiB,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC;IAE/E,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnC,MAAM,IAAI,uBAAuB,CAAC,wCAAwC,CAAC,CAAC;IAC9E,CAAC;IAED,IAAI,eAAe,KAAK,SAAS,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,EAAE,CAAC;QAC1E,MAAM,IAAI,eAAe,CAAC,oBAAoB,eAAe,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,IAAI,QAAQ,KAAK,SAAS,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7D,MAAM,IAAI,eAAe,CAAC,sBAAsB,QAAQ,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED,IAAI,eAAe,EAAE,CAAC;QACpB,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;YACjD,MAAM,IAAI,uBAAuB,CAC/B,WAAW,eAAe,oBAAoB,CAC/C,CAAC;QACJ,CAAC;QAED,OAAO;YACL,QAAQ,EAAE,eAAe;YACzB,QAAQ,EAAE,KAAK;SAChB,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,eAAe,CAAC,gDAAgD,CAAC,CAAC;IAC9E,CAAC;IAED,MAAM,SAAS,GAAG;QAChB,GAAG,eAAe;QAClB,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC;KACxB,CAAC,QAAQ,CAAC,CAAC;IACZ,IAAI,iBAAiB,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QAC1C,OAAO;YACL,QAAQ,EAAE,SAAS;YACnB,QAAQ,EAAE,KAAK;SAChB,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CACjD,iBAAiB,CAAC,QAAQ,CAAC,SAAS,CAAC,CACtC,CAAC;IAEF,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,uBAAuB,CAAC,oCAAoC,CAAC,CAAC;IAC1E,CAAC;IAED,OAAO;QACL,QAAQ,EAAE,QAAQ;QAClB,QAAQ,EAAE,IAAI;QACd,cAAc,EAAE,qBAAqB,SAAS,oBAAoB;KACnE,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,KAAc;IACjD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACxE,MAAM,IAAI,eAAe,CAAC,mCAAmC,CAAC,CAAC;IACjE,CAAC;IAED,MAAM,KAAK,GAAiB,EAAE,CAAC;IAC/B,KAAK,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACxD,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,EAAE,CAAC;YACnC,MAAM,IAAI,eAAe,CAAC,wCAAwC,QAAQ,EAAE,CAAC,CAAC;QAChF,CAAC;QACD,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC;YAChE,MAAM,IAAI,eAAe,CACvB,yCAAyC,QAAQ,KAAK,MAAM,CAAC,OAAO,CAAC,EAAE,CACxE,CAAC;QACJ,CAAC;QACD,KAAK,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC;IAC5B,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { LogEntry, RelaySessionMetadata, TaskRecord } from "../../core/types.js";
|
|
1
|
+
import type { LogEntry, RelayConfig, RelaySessionMetadata, TaskRecord } from "../../core/types.js";
|
|
2
2
|
export declare class RelayStore {
|
|
3
3
|
readonly rootDir: string;
|
|
4
4
|
constructor(rootDir: string);
|
|
@@ -7,6 +7,7 @@ export declare class RelayStore {
|
|
|
7
7
|
readResponse(sessionId: string): Promise<string | null>;
|
|
8
8
|
writeSessionMetadata(metadata: RelaySessionMetadata): Promise<void>;
|
|
9
9
|
readSessionMetadata(relaySessionId: string): Promise<RelaySessionMetadata | null>;
|
|
10
|
+
readConfig(): Promise<RelayConfig | null>;
|
|
10
11
|
appendLog(entry: LogEntry): Promise<void>;
|
|
11
12
|
writeTask(task: TaskRecord): Promise<void>;
|
|
12
13
|
readTask(taskId: string): Promise<TaskRecord | null>;
|
|
@@ -15,4 +16,5 @@ export declare class RelayStore {
|
|
|
15
16
|
private sessionsDir;
|
|
16
17
|
private logsDir;
|
|
17
18
|
private tasksDir;
|
|
19
|
+
private configPath;
|
|
18
20
|
}
|
|
@@ -44,6 +44,19 @@ export class RelayStore {
|
|
|
44
44
|
return null;
|
|
45
45
|
}
|
|
46
46
|
}
|
|
47
|
+
async readConfig() {
|
|
48
|
+
const targetPath = this.configPath();
|
|
49
|
+
try {
|
|
50
|
+
const raw = await readFile(targetPath, "utf8");
|
|
51
|
+
return JSON.parse(raw);
|
|
52
|
+
}
|
|
53
|
+
catch (error) {
|
|
54
|
+
if (isMissingFileError(error)) {
|
|
55
|
+
return null;
|
|
56
|
+
}
|
|
57
|
+
throw error;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
47
60
|
async appendLog(entry) {
|
|
48
61
|
await this.ensureLayout();
|
|
49
62
|
const date = entry.timestamp.slice(0, 10);
|
|
@@ -90,6 +103,9 @@ export class RelayStore {
|
|
|
90
103
|
tasksDir() {
|
|
91
104
|
return path.join(this.rootDir, "tasks");
|
|
92
105
|
}
|
|
106
|
+
configPath() {
|
|
107
|
+
return path.join(this.rootDir, "config.json");
|
|
108
|
+
}
|
|
93
109
|
}
|
|
94
110
|
async function writeJsonAtomic(targetPath, value) {
|
|
95
111
|
const tempPath = path.join(os.tmpdir(), `relay-${path.basename(targetPath)}-${process.pid}-${Date.now()}.tmp`);
|
|
@@ -97,4 +113,10 @@ async function writeJsonAtomic(targetPath, value) {
|
|
|
97
113
|
await rename(tempPath, targetPath);
|
|
98
114
|
await rm(tempPath, { force: true });
|
|
99
115
|
}
|
|
116
|
+
function isMissingFileError(error) {
|
|
117
|
+
return (typeof error === "object" &&
|
|
118
|
+
error !== null &&
|
|
119
|
+
"code" in error &&
|
|
120
|
+
error.code === "ENOENT");
|
|
121
|
+
}
|
|
100
122
|
//# sourceMappingURL=relay-store.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relay-store.js","sourceRoot":"","sources":["../../../src/infrastructure/store/relay-store.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,KAAK,EACL,OAAO,EACP,QAAQ,EACR,MAAM,EACN,EAAE,EACF,SAAS,GACV,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"relay-store.js","sourceRoot":"","sources":["../../../src/infrastructure/store/relay-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -73,7 +73,7 @@ const deleteTaskInputSchema = {
|
|
|
73
73
|
export function createRelayMcpServer(options) {
|
|
74
74
|
const server = new McpServer({
|
|
75
75
|
name: "agentic-relay",
|
|
76
|
-
version: "3.
|
|
76
|
+
version: "3.5.0",
|
|
77
77
|
});
|
|
78
78
|
if (options.allowSpawnAgents) {
|
|
79
79
|
server.tool("spawn_agents", "Launch one or more child agent CLI processes in parallel.", spawnAgentsInputSchema, async (args, extra) => {
|