llm-relay 0.69.0 → 0.69.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/setup-claude.d.ts +22 -2
- package/dist/setup-claude.js +17 -10
- package/dist/setup-claude.js.map +1 -1
- package/package.json +1 -1
- package/skills/llm-relay/SKILL.md +2 -0
package/dist/setup-claude.d.ts
CHANGED
|
@@ -31,8 +31,28 @@ export interface SetupOptions {
|
|
|
31
31
|
*/
|
|
32
32
|
out?: (line: string) => void;
|
|
33
33
|
}
|
|
34
|
-
|
|
35
|
-
|
|
34
|
+
/**
|
|
35
|
+
* Ownership test for an existing `relay.md` on disk: ANY versioned marker, not just the current
|
|
36
|
+
* one. `installRelayAgent` uses this (not the exact `RELAY_AGENT_MARKER`) to decide whether a
|
|
37
|
+
* file is ours, so a file carrying an OLDER marker (e.g. v1) is recognised as our own and
|
|
38
|
+
* upgraded in place rather than refused as foreign.
|
|
39
|
+
*/
|
|
40
|
+
export declare const RELAY_AGENT_MARKER_PREFIX = "<!-- llm-relay:relay-agent";
|
|
41
|
+
export declare const RELAY_AGENT_MARKER = "<!-- llm-relay:relay-agent v3 -->";
|
|
42
|
+
/**
|
|
43
|
+
* DEFECT, measured live 2026-09-04: the three mcp__llm-relay__dispatch* tools are DEFERRED in
|
|
44
|
+
* Claude Code — a subagent must call ToolSearch to load their schemas before it can call them.
|
|
45
|
+
* v2's `tools:` line omitted ToolSearch, so the installed relay agent could never load those
|
|
46
|
+
* schemas and made zero tool calls on every probe, answering the task itself instead — its own
|
|
47
|
+
* rule 1 ("load the schema with ToolSearch") was impossible to follow with the tools it was
|
|
48
|
+
* granted. v3 adds ToolSearch to the allow list and spells out the exact query.
|
|
49
|
+
*
|
|
50
|
+
* Also: Claude Code loads a custom agent definition ONCE when the file first appears and does
|
|
51
|
+
* NOT re-read edits during a session — measured 2026-09-04, after `setup` rewrote this file to
|
|
52
|
+
* v2 a running session still reported the v1 marker and the v1 tool list. A changed template
|
|
53
|
+
* needs a new session (or the file deleted and recreated) before it takes effect.
|
|
54
|
+
*/
|
|
55
|
+
export declare const RELAY_AGENT_TEMPLATE = "---\nname: relay\ndescription: Hands one self-contained task to llm-relay dispatch, free model pools or peer agent CLIs, and returns the lane's answer verbatim with its provenance. Use for any task another lane can do: a search, a sweep, a draft, a summary, a second opinion.\ntools: ToolSearch, mcp__llm-relay__dispatch, mcp__llm-relay__dispatch_status, mcp__llm-relay__dispatch_result\nmodel: haiku\n---\n<!-- llm-relay:relay-agent v3 -->\n\nYou have no knowledge of your own and no permission to answer any task yourself. The only\nlegitimate action available to you is exactly one `mcp__llm-relay__dispatch` call, plus polling\nits status and result. The caller is measuring the LANE that `dispatch` reaches, not you \u2014\ncomposing your own answer, however small, is never a valid response.\n\n1. The mcp__llm-relay__dispatch* tools are deferred: before your first call, load their schemas with ToolSearch, query `select:mcp__llm-relay__dispatch,mcp__llm-relay__dispatch_status,mcp__llm-relay__dispatch_result` \u2014 one call loads all three. Then call `mcp__llm-relay__dispatch` ONCE with the task text verbatim.\n2. This holds for EVERY task, even one that looks trivial \u2014 an echo, a one-word reply, a question you think you already know the answer to. Dispatch it anyway: a self-authored answer is indistinguishable from a lane's answer and would falsify the caller's measurement.\n3. If the tool's input schema lists a `mode` property: pass `mode: \"answer\"` when the task needs no file reads, edits, commands or working directory, otherwise omit it; a task that begins with `[answer]` or `[agent]` forces that mode and the tag is stripped. If the schema has no `mode` property, pass no mode.\n4. If the result is a jobId, poll `dispatch_status` about every 15 seconds, then call `dispatch_result`.\n5. Return the lane's answer VERBATIM, then one final line `provenance: lane=<id> spec=<spec> elapsed=<seconds>` copied from the tool result \u2014 never invented. A reply with no provenance line is a FAILURE: it means no lane ran.\n6. Add no analysis and no commentary.\n7. If the tool result says the lane FAILED, dispatch once more with `tier: \"high\"`; if that fails too, return exactly `RELAY_DISPATCH_FAILED: <reason>`.\n";
|
|
36
56
|
export declare function getRelayAgentPath(opts?: SetupOptions): string;
|
|
37
57
|
export declare function installRelayAgent(opts?: SetupOptions): {
|
|
38
58
|
success: boolean;
|
package/dist/setup-claude.js
CHANGED
|
@@ -1,21 +1,28 @@
|
|
|
1
1
|
import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
|
|
2
2
|
import { join, dirname } from "node:path";
|
|
3
3
|
import { homedir, platform } from "node:os";
|
|
4
|
-
export const
|
|
4
|
+
export const RELAY_AGENT_MARKER_PREFIX = "<!-- llm-relay:relay-agent";
|
|
5
|
+
export const RELAY_AGENT_MARKER = "<!-- llm-relay:relay-agent v3 -->";
|
|
5
6
|
export const RELAY_AGENT_TEMPLATE = `---
|
|
6
7
|
name: relay
|
|
7
8
|
description: Hands one self-contained task to llm-relay dispatch, free model pools or peer agent CLIs, and returns the lane's answer verbatim with its provenance. Use for any task another lane can do: a search, a sweep, a draft, a summary, a second opinion.
|
|
8
|
-
tools: mcp__llm-relay__dispatch, mcp__llm-relay__dispatch_status, mcp__llm-relay__dispatch_result
|
|
9
|
+
tools: ToolSearch, mcp__llm-relay__dispatch, mcp__llm-relay__dispatch_status, mcp__llm-relay__dispatch_result
|
|
9
10
|
model: haiku
|
|
10
11
|
---
|
|
11
|
-
<!-- llm-relay:relay-agent
|
|
12
|
+
<!-- llm-relay:relay-agent v3 -->
|
|
12
13
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
14
|
+
You have no knowledge of your own and no permission to answer any task yourself. The only
|
|
15
|
+
legitimate action available to you is exactly one \`mcp__llm-relay__dispatch\` call, plus polling
|
|
16
|
+
its status and result. The caller is measuring the LANE that \`dispatch\` reaches, not you —
|
|
17
|
+
composing your own answer, however small, is never a valid response.
|
|
18
|
+
|
|
19
|
+
1. The mcp__llm-relay__dispatch* tools are deferred: before your first call, load their schemas with ToolSearch, query \`select:mcp__llm-relay__dispatch,mcp__llm-relay__dispatch_status,mcp__llm-relay__dispatch_result\` — one call loads all three. Then call \`mcp__llm-relay__dispatch\` ONCE with the task text verbatim.
|
|
20
|
+
2. This holds for EVERY task, even one that looks trivial — an echo, a one-word reply, a question you think you already know the answer to. Dispatch it anyway: a self-authored answer is indistinguishable from a lane's answer and would falsify the caller's measurement.
|
|
21
|
+
3. If the tool's input schema lists a \`mode\` property: pass \`mode: "answer"\` when the task needs no file reads, edits, commands or working directory, otherwise omit it; a task that begins with \`[answer]\` or \`[agent]\` forces that mode and the tag is stripped. If the schema has no \`mode\` property, pass no mode.
|
|
22
|
+
4. If the result is a jobId, poll \`dispatch_status\` about every 15 seconds, then call \`dispatch_result\`.
|
|
23
|
+
5. Return the lane's answer VERBATIM, then one final line \`provenance: lane=<id> spec=<spec> elapsed=<seconds>\` copied from the tool result — never invented. A reply with no provenance line is a FAILURE: it means no lane ran.
|
|
24
|
+
6. Add no analysis and no commentary.
|
|
25
|
+
7. If the tool result says the lane FAILED, dispatch once more with \`tier: "high"\`; if that fails too, return exactly \`RELAY_DISPATCH_FAILED: <reason>\`.
|
|
19
26
|
`;
|
|
20
27
|
export function getRelayAgentPath(opts = {}) {
|
|
21
28
|
if (opts.agentPath)
|
|
@@ -32,7 +39,7 @@ export function installRelayAgent(opts = {}) {
|
|
|
32
39
|
try {
|
|
33
40
|
if (exists(agentPath)) {
|
|
34
41
|
const existing = read(agentPath, "utf8");
|
|
35
|
-
if (!existing.includes(
|
|
42
|
+
if (!existing.includes(RELAY_AGENT_MARKER_PREFIX)) {
|
|
36
43
|
return {
|
|
37
44
|
success: false,
|
|
38
45
|
path: agentPath,
|
package/dist/setup-claude.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup-claude.js","sourceRoot":"","sources":["../src/setup-claude.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"setup-claude.js","sourceRoot":"","sources":["../src/setup-claude.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -84,6 +84,8 @@ Claude Code workflows and subagents can delegate tasks to llm-relay lanes via th
|
|
|
84
84
|
- On the Agent tool: `subagent_type: relay`
|
|
85
85
|
- The `[answer]`/`[agent]` tag: a task that begins with `[answer]` or `[agent]` forces answer mode (`mode: "answer"`) when the task needs no file reads, edits, commands or working directory, and the tag is stripped before dispatch.
|
|
86
86
|
- Installation: `llm-relay setup claude-desktop` or `llm-relay setup claude-cli` installs the definition at `~/.claude/agents/relay.md`.
|
|
87
|
+
- The relay agent never answers a task itself, even a trivial one — it always dispatches and ends its reply with a `provenance: lane=<id> spec=<spec> elapsed=<seconds>` line, so a reply with no provenance line means no lane ran.
|
|
88
|
+
- A changed `relay.md` takes effect only in a new Claude Code session — the running session already loaded the agent definition and does not re-read edits to it.
|
|
87
89
|
|
|
88
90
|
## First use on a machine — ASK, do not assume
|
|
89
91
|
|