@garuda-agent/garuda 0.16.1 → 0.17.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/CHANGELOG.md +182 -0
- package/README.md +56 -1074
- package/SECURITY.md +9 -2
- package/dist/{acpCommand-OTAYW7BS.js → acpCommand-7EY3NHPG.js} +18 -16
- package/dist/{anthropic-NQDBCHJU.js → anthropic-NQIZLD64.js} +12 -6
- package/dist/{chunk-TILFPYWO.js → chunk-2DYMJMRQ.js} +1880 -982
- package/dist/{chunk-YQTGMCU6.js → chunk-3MRQJKUO.js} +29 -5
- package/dist/{chunk-WMOLXTBU.js → chunk-4LFJFDCF.js} +2 -1
- package/dist/{chunk-44QN5SWZ.js → chunk-55CFEEIN.js} +22 -2
- package/dist/{chunk-USCUXCAU.js → chunk-5B5HDTUR.js} +3 -3
- package/dist/{chunk-TUUEBHG2.js → chunk-6XHON3Q6.js} +2 -2
- package/dist/chunk-735BKABA.js +472 -0
- package/dist/{chunk-B6FA4I7Q.js → chunk-7TH3NHCQ.js} +2 -2
- package/dist/{chunk-OUCV3FCT.js → chunk-AOGFYUKG.js} +3 -3
- package/dist/{chunk-GXZACJUI.js → chunk-B4SJY7KT.js} +322 -39
- package/dist/{chunk-3EQU2GUX.js → chunk-BHZ6G65V.js} +5 -1
- package/dist/chunk-BSK5T2ZG.js +9 -0
- package/dist/chunk-J4346IDH.js +156 -0
- package/dist/{chunk-NP6RIC25.js → chunk-JRVWH27M.js} +7 -7
- package/dist/{chunk-HUIK3WXO.js → chunk-P6XWWIEK.js} +20 -3
- package/dist/{chunk-HE2K657U.js → chunk-TJIWD7R7.js} +47 -16
- package/dist/chunk-U65DQZDB.js +143 -0
- package/dist/chunk-UIRJOQQS.js +118 -0
- package/dist/{chunk-KKB5W47S.js → chunk-VTMD5IHD.js} +26 -2
- package/dist/{chunk-BQTUOO4G.js → chunk-Z66BWTMD.js} +81 -32
- package/dist/cli/index.js +99 -41
- package/dist/{create-VXIH2GUZ.js → create-W6BV75QX.js} +18 -12
- package/dist/{deadline-F5RJJ2QW.js → deadline-TP7ZGLT2.js} +4 -2
- package/dist/{evalCommand-RGMZRYDR.js → evalCommand-YVQAWUZE.js} +50 -29
- package/dist/{export-HN3CT7AV.js → export-SJ3DUP6W.js} +2 -2
- package/dist/{inkChat-WEDGQMCY.js → inkChat-FNUBK43U.js} +14 -13
- package/dist/install-TKWN5AYH.js +19 -0
- package/dist/{job-3NYDMP2M.js → job-7JOI4YIQ.js} +6 -2
- package/dist/jobCommand-FE6XN3YD.js +33 -0
- package/dist/{launchd-SSX362VG.js → launchd-3A3ONEW5.js} +9 -8
- package/dist/{lspCommand-JRXKRSL7.js → lspCommand-ZZ6R4PA2.js} +7 -6
- package/dist/{manager-773PUDFE.js → manager-73MPYFTP.js} +7 -6
- package/dist/{nightCommand-65MUEV32.js → nightCommand-OODJNWDT.js} +26 -20
- package/dist/{openaiCompatible-CJWVJP5M.js → openaiCompatible-6TLDDW5U.js} +29 -15
- package/dist/{policy-EJPLEEXP.js → policy-ZJ7RMOFN.js} +10 -4
- package/dist/{remove-6GDSTAIO.js → remove-42WQNVPX.js} +8 -7
- package/dist/{server-NGKVIQEV.js → server-VEYIJHEU.js} +2 -2
- package/dist/{setupCommand-VA7D5MZK.js → setupCommand-GBQIVYJC.js} +45 -13
- package/dist/text-LS35WSRL.js +17 -0
- package/native/bin/garuda-reap +0 -0
- package/native/garuda-reap.c +113 -0
- package/package.json +39 -13
- package/dist/chunk-EIXUSVFX.js +0 -116
- package/dist/chunk-R7I2NBPX.js +0 -71
- package/dist/chunk-ULAJPMY7.js +0 -107
- package/dist/chunk-VBZCNMUD.js +0 -9
- package/dist/install-EWDSPFFZ.js +0 -18
- package/dist/jobCommand-ACSGSBQ4.js +0 -32
- package/dist/text-J2GD647J.js +0 -11
package/SECURITY.md
CHANGED
|
@@ -6,9 +6,15 @@ Garuda runs commands and edits files for a model, so we take security reports se
|
|
|
6
6
|
|
|
7
7
|
| Version | Supported |
|
|
8
8
|
| --- | --- |
|
|
9
|
-
| 0.
|
|
9
|
+
| 0.17.x | Yes |
|
|
10
10
|
| Older | No |
|
|
11
11
|
|
|
12
|
+
## Node and dependencies
|
|
13
|
+
|
|
14
|
+
Run Garuda on Node 22.23.4, 24.22.1 or 26.12.1, or a later release of the same line. Garuda warns
|
|
15
|
+
at start on an older Node. CI, the release workflow and the dependency audit refuse a Node or a
|
|
16
|
+
package with a known security fix missing. See [docs/security-deps.md](docs/security-deps.md).
|
|
17
|
+
|
|
12
18
|
## Report a vulnerability
|
|
13
19
|
|
|
14
20
|
Do not open a public issue. Use GitHub's private vulnerability reporting: in this repository, open
|
|
@@ -28,5 +34,6 @@ In scope: the permission engine and the team policy, the OS sandbox (Seatbelt, b
|
|
|
28
34
|
network allowlist and its proxy, secret redaction, the audit log, and the consent for project
|
|
29
35
|
content (hooks, MCP servers, settings, commands, skills, agents).
|
|
30
36
|
|
|
31
|
-
Known limits are listed in
|
|
37
|
+
Known limits are listed in [docs/guide/status.md](docs/guide/status.md) and the
|
|
38
|
+
[issue register](docs/quality-baseline/issue-register.md). A report about one of them is still
|
|
32
39
|
welcome when it shows a new way to reach the same effect.
|
|
@@ -1,37 +1,39 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
|
-
FileSessionStore,
|
|
4
3
|
Runtime,
|
|
5
4
|
auditDirFor
|
|
6
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-2DYMJMRQ.js";
|
|
7
6
|
import "./chunk-G2AX7MGS.js";
|
|
8
7
|
import "./chunk-A2QAIRQL.js";
|
|
9
|
-
import
|
|
8
|
+
import {
|
|
9
|
+
FileSessionStore
|
|
10
|
+
} from "./chunk-735BKABA.js";
|
|
10
11
|
import {
|
|
11
12
|
chooseModel,
|
|
12
13
|
keepProviderKeys,
|
|
13
14
|
loadModelsConfig,
|
|
14
15
|
providerKeySource,
|
|
15
16
|
resolveModel
|
|
16
|
-
} from "./chunk-
|
|
17
|
-
import "./chunk-
|
|
18
|
-
import "./chunk-
|
|
17
|
+
} from "./chunk-JRVWH27M.js";
|
|
18
|
+
import "./chunk-U65DQZDB.js";
|
|
19
|
+
import "./chunk-J4346IDH.js";
|
|
19
20
|
import {
|
|
20
21
|
loadSearchConfig
|
|
21
22
|
} from "./chunk-B25VL4RU.js";
|
|
22
23
|
import "./chunk-23FXBNBB.js";
|
|
23
24
|
import {
|
|
24
25
|
VERSION
|
|
25
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-BSK5T2ZG.js";
|
|
26
27
|
import "./chunk-5DEWP3YX.js";
|
|
27
28
|
import "./chunk-ZAE25JM2.js";
|
|
28
29
|
import "./chunk-ATW7BNIG.js";
|
|
29
30
|
import "./chunk-PZS3V6P3.js";
|
|
30
|
-
import "./chunk-
|
|
31
|
-
import "./chunk-
|
|
32
|
-
import "./chunk-
|
|
33
|
-
import "./chunk-
|
|
34
|
-
import "./chunk-
|
|
31
|
+
import "./chunk-AOGFYUKG.js";
|
|
32
|
+
import "./chunk-B4SJY7KT.js";
|
|
33
|
+
import "./chunk-BHZ6G65V.js";
|
|
34
|
+
import "./chunk-P6XWWIEK.js";
|
|
35
|
+
import "./chunk-UIRJOQQS.js";
|
|
36
|
+
import "./chunk-4LFJFDCF.js";
|
|
35
37
|
import "./chunk-3NJNVZTK.js";
|
|
36
38
|
|
|
37
39
|
// src/cli/acpCommand.ts
|
|
@@ -45,12 +47,12 @@ async function acpCommand(options) {
|
|
|
45
47
|
`);
|
|
46
48
|
return 1;
|
|
47
49
|
}
|
|
48
|
-
const { setupCommand, terminalIO } = await import("./setupCommand-
|
|
50
|
+
const { setupCommand, terminalIO } = await import("./setupCommand-GBQIVYJC.js");
|
|
49
51
|
return setupCommand({}, { io: await terminalIO() });
|
|
50
52
|
}
|
|
51
53
|
const output = protocolOutput(process.stdout, process.stderr);
|
|
52
54
|
const input = Readable.toWeb(process.stdin);
|
|
53
|
-
const { acpServer, setupNeeded } = await import("./server-
|
|
55
|
+
const { acpServer, setupNeeded } = await import("./server-VEYIJHEU.js");
|
|
54
56
|
const server = acpServer({
|
|
55
57
|
version: VERSION,
|
|
56
58
|
// Not on native Windows: the setup there could not keep a key private (no 0600).
|
|
@@ -114,7 +116,7 @@ async function prepare(options, from = {}) {
|
|
|
114
116
|
const why = credentialsWarning === void 0 ? "" : ` ${credentialsWarning}`;
|
|
115
117
|
return fail(`Garuda has no key for ${resolved.spec} (${keyName}).${why} ${SETUP_HINT}`, true);
|
|
116
118
|
}
|
|
117
|
-
const { loadTeamPolicy } = await import("./policy-
|
|
119
|
+
const { loadTeamPolicy } = await import("./policy-ZJ7RMOFN.js");
|
|
118
120
|
let team;
|
|
119
121
|
try {
|
|
120
122
|
team = await loadTeamPolicy("managed" in from ? { home, managed: from.managed } : { home });
|
|
@@ -188,4 +190,4 @@ export {
|
|
|
188
190
|
prepare,
|
|
189
191
|
protocolOutput
|
|
190
192
|
};
|
|
191
|
-
//# sourceMappingURL=acpCommand-
|
|
193
|
+
//# sourceMappingURL=acpCommand-7EY3NHPG.js.map
|
|
@@ -14,10 +14,12 @@ var AnthropicClient = class {
|
|
|
14
14
|
this.client = options.client ?? new Anthropic(clientOptions(options.apiKey));
|
|
15
15
|
}
|
|
16
16
|
async *stream(request, options) {
|
|
17
|
-
const stream = this.client.messages.stream(
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
17
|
+
const stream = this.client.messages.stream(toWireParams(this.model, request), {
|
|
18
|
+
...options?.signal === void 0 ? {} : { signal: options.signal },
|
|
19
|
+
// Under the token budget (0.17) the SDK must not send the request again on its own: the loop
|
|
20
|
+
// retries, and each of its attempts reserves first.
|
|
21
|
+
...options?.meter === void 0 ? {} : { maxRetries: 0 }
|
|
22
|
+
});
|
|
21
23
|
for await (const event of stream) {
|
|
22
24
|
if (event.type === "content_block_delta" && event.delta.type === "text_delta") {
|
|
23
25
|
yield { type: "text_delta", text: event.delta.text };
|
|
@@ -238,7 +240,11 @@ var AnthropicBatchClient = class {
|
|
|
238
240
|
);
|
|
239
241
|
const batch = await this.client.messages.batches.create(
|
|
240
242
|
{ requests: [{ custom_id: "garuda", params }] },
|
|
241
|
-
|
|
243
|
+
{
|
|
244
|
+
...signal === void 0 ? {} : { signal },
|
|
245
|
+
// Batch submission is a generation attempt too. The loop, not the SDK, owns retries.
|
|
246
|
+
...options?.meter === void 0 ? {} : { maxRetries: 0 }
|
|
247
|
+
}
|
|
242
248
|
);
|
|
243
249
|
const started = Date.now();
|
|
244
250
|
this.onWait?.({ batchId: batch.id, waitedMs: 0, status: "created" });
|
|
@@ -324,4 +330,4 @@ export {
|
|
|
324
330
|
toWireTools,
|
|
325
331
|
withHiddenThinking
|
|
326
332
|
};
|
|
327
|
-
//# sourceMappingURL=anthropic-
|
|
333
|
+
//# sourceMappingURL=anthropic-NQIZLD64.js.map
|