@sjawhar/claude-envoy 1.4.0 → 1.5.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/.omp-plugin/plugin.json
CHANGED
package/dist/envoy-channel.js
CHANGED
|
@@ -52558,8 +52558,8 @@ function createLegionDaemonClient(baseUrl, fetchFn = fetch) {
|
|
|
52558
52558
|
return parsed.value;
|
|
52559
52559
|
};
|
|
52560
52560
|
const post = (path, request, response, body) => read("POST", path, response, request.parse(body));
|
|
52561
|
-
const acknowledge = async (path, body) => {
|
|
52562
|
-
const { status, text } = await call("POST", path, body);
|
|
52561
|
+
const acknowledge = async (path, body, signal) => {
|
|
52562
|
+
const { status, text } = await call("POST", path, body, signal);
|
|
52563
52563
|
if (status !== 204 || text !== "") {
|
|
52564
52564
|
throw new LegionDaemonContractError("POST", path, status, "the route answers 204 with no body");
|
|
52565
52565
|
}
|
|
@@ -52568,7 +52568,7 @@ function createLegionDaemonClient(baseUrl, fetchFn = fetch) {
|
|
|
52568
52568
|
state: (options) => read("GET", "/legion/v1/state", LegionStateResponse, undefined, options?.signal),
|
|
52569
52569
|
register: (input) => read("POST", "/legion/v1/claims/register", LegionRegisterResponse, input),
|
|
52570
52570
|
registerController: (input) => read("POST", "/legion/v1/claims/register", LegionControllerRegisterResponse, input),
|
|
52571
|
-
ready: (input) => acknowledge("/legion/v1/claims/ready", input),
|
|
52571
|
+
ready: (input, options) => acknowledge("/legion/v1/claims/ready", input, options?.signal),
|
|
52572
52572
|
readyForUpdate: (input) => acknowledge("/legion/v1/claims/ready-for-update", input),
|
|
52573
52573
|
exit: (input) => acknowledge("/legion/v1/claims/exit", input),
|
|
52574
52574
|
activity: (input) => acknowledge("/legion/v1/claims/activity", input),
|
|
@@ -55082,7 +55082,7 @@ var import_nats2 = __toESM(require_mod4(), 1);
|
|
|
55082
55082
|
|
|
55083
55083
|
// package.json
|
|
55084
55084
|
var name = "@sjawhar/claude-envoy";
|
|
55085
|
-
var version2 = "1.
|
|
55085
|
+
var version2 = "1.5.1";
|
|
55086
55086
|
var legion = {
|
|
55087
55087
|
daemonApiVersion: 51
|
|
55088
55088
|
};
|
|
@@ -55921,11 +55921,6 @@ async function bootLegionClaim(host) {
|
|
|
55921
55921
|
host.stop();
|
|
55922
55922
|
return;
|
|
55923
55923
|
}
|
|
55924
|
-
const { measure } = host;
|
|
55925
|
-
const measuring = measure === undefined ? undefined : Promise.resolve().then(() => measure(claim)).catch((error) => {
|
|
55926
|
-
host.log(`capability measurement failed; ready carries no report: ${messageFor(error)}`);
|
|
55927
|
-
return;
|
|
55928
|
-
});
|
|
55929
55924
|
try {
|
|
55930
55925
|
await host.afterRegister?.(claim);
|
|
55931
55926
|
host.setCapability({
|
|
@@ -55935,16 +55930,15 @@ async function bootLegionClaim(host) {
|
|
|
55935
55930
|
tree: claim.tree,
|
|
55936
55931
|
issue: claim.issue,
|
|
55937
55932
|
role: claim.role,
|
|
55938
|
-
secret: claim.secret
|
|
55933
|
+
secret: claim.secret,
|
|
55934
|
+
promptAgents: claim.promptAgents
|
|
55939
55935
|
});
|
|
55940
55936
|
await host.claimRole(claim.claimToken);
|
|
55941
|
-
const capabilities = await measuring;
|
|
55942
55937
|
const ready = {
|
|
55943
55938
|
claimToken: claim.claimToken,
|
|
55944
55939
|
sessionId: host.registration.sessionId,
|
|
55945
55940
|
secret: claim.secret,
|
|
55946
|
-
generation: claim.generation
|
|
55947
|
-
...capabilities === undefined ? {} : { capabilities }
|
|
55941
|
+
generation: claim.generation
|
|
55948
55942
|
};
|
|
55949
55943
|
await callReadyWithRetry("claims/ready", () => daemon.ready(ready));
|
|
55950
55944
|
host.onRoleRegained(async (role, reason) => {
|
|
@@ -611,15 +611,16 @@ something to count.
|
|
|
611
611
|
gVisor follows with no error. So code that walks a path one component at a time and opens each
|
|
612
612
|
with `O_NOFOLLOW` is defeated there while every leaf check still passes, and its tests stay
|
|
613
613
|
green on a developer's kernel. A whole block of such tests failing in a pod is that one
|
|
614
|
-
property of the environment, not one defect per test. The fix shape holds on both kernels:
|
|
615
|
-
walk cannot trust
|
|
616
|
-
`
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
614
|
+
property of the environment, not one defect per test. The fix shape holds on both kernels:
|
|
615
|
+
the walk cannot trust `O_DIRECTORY|O_NOFOLLOW` there, so it opens each component with
|
|
616
|
+
`O_PATH|O_NOFOLLOW|O_CLOEXEC`, which opens the entry itself on both kernels, and reads the
|
|
617
|
+
kind from fstat of that handle. The repository's own instance is `mountPointBeneath` in
|
|
618
|
+
`packages/daemon/internal/launcher/roleinit_linux.go`. `openat2` is not the alternative
|
|
619
|
+
there: a lane measured it returning `ENOSYS` under gVisor for every flag combination it
|
|
620
|
+
tried, so the handle rule above is the portable check rather than a fallback. The question
|
|
621
|
+
is not which tool to use but whether anything you run calls `openat2`, which you can read off
|
|
622
|
+
the binary (two builds of one tool reporting an identical `--version` differed here, and only
|
|
623
|
+
the package version and the checksum told them apart):
|
|
623
624
|
|
|
624
625
|
```sh
|
|
625
626
|
b=$(readlink -f "$(command -v <tool>)")
|