@garuda-agent/garuda 0.16.0 → 0.16.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/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.16.1 (2026-10-06)
4
+
5
+ - `garuda acp` offers its sign-in (Terminal Auth) also to clients that declare the capability in
6
+ its older form, `_meta["terminal-auth"]`. The ACP Registry's checker sends only that form, so
7
+ 0.16.0 answered it with no sign-in method and failed the registry's auth check.
8
+
3
9
  ## 0.16.0 (2026-10-06)
4
10
 
5
11
  Setup for editors and the ACP Registry (design: [docs/lld/setup.md](docs/lld/setup.md)).
package/README.md CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  Website and docs: https://madhu-sv.github.io/garuda/
6
6
 
7
- Garuda is a terminal coding agent. This is version 0.16.0: `garuda setup` (choose a model and store
7
+ Garuda is a terminal coding agent. This is version 0.16.1: `garuda setup` (choose a model and store
8
8
  its key once) and the sign-in from editors, on top of 0.15.0 (Garuda in your editor over the Agent
9
9
  Client Protocol, `garuda acp`) and 0.14.1 (the 0.14–0.17 branches after the merge gate and Garuda's own
10
10
  review; see the notes under the status table). Release notes: [CHANGELOG.md](CHANGELOG.md).
@@ -52,7 +52,7 @@ headings below keep the branch labels (0.14–0.17).
52
52
  Before 0.14.0, Garuda reviewed its own code with Fable 5.1, one area at a time (knowledge,
53
53
  permissions, tools, sandbox, audit, loop, agents), in plan mode. 0.14.1 adds the cli and extensions
54
54
  areas and fixes the open findings of all nine areas (see [CHANGELOG.md](CHANGELOG.md)). Known limits
55
- in 0.16.0:
55
+ in 0.16.1:
56
56
 
57
57
  - G09: project language plugins are not loaded (no consent flow for their imports yet).
58
58
  - Subagents: each child has its own step and token budget (capped by the team policy); it does not
@@ -3,7 +3,7 @@ import {
3
3
  FileSessionStore,
4
4
  Runtime,
5
5
  auditDirFor
6
- } from "./chunk-WIJL72ZE.js";
6
+ } from "./chunk-TILFPYWO.js";
7
7
  import "./chunk-G2AX7MGS.js";
8
8
  import "./chunk-A2QAIRQL.js";
9
9
  import "./chunk-ULAJPMY7.js";
@@ -22,7 +22,7 @@ import {
22
22
  import "./chunk-23FXBNBB.js";
23
23
  import {
24
24
  VERSION
25
- } from "./chunk-XOK5OZOC.js";
25
+ } from "./chunk-VBZCNMUD.js";
26
26
  import "./chunk-5DEWP3YX.js";
27
27
  import "./chunk-ZAE25JM2.js";
28
28
  import "./chunk-ATW7BNIG.js";
@@ -50,7 +50,7 @@ async function acpCommand(options) {
50
50
  }
51
51
  const output = protocolOutput(process.stdout, process.stderr);
52
52
  const input = Readable.toWeb(process.stdin);
53
- const { acpServer, setupNeeded } = await import("./server-KHHNHUYV.js");
53
+ const { acpServer, setupNeeded } = await import("./server-NGKVIQEV.js");
54
54
  const server = acpServer({
55
55
  version: VERSION,
56
56
  // Not on native Windows: the setup there could not keep a key private (no 0600).
@@ -188,4 +188,4 @@ export {
188
188
  prepare,
189
189
  protocolOutput
190
190
  };
191
- //# sourceMappingURL=acpCommand-AJJBKAE5.js.map
191
+ //# sourceMappingURL=acpCommand-OTAYW7BS.js.map
@@ -17,7 +17,7 @@ import {
17
17
  repoMapText,
18
18
  repoMapTool,
19
19
  verifyAuditFile
20
- } from "./chunk-WIJL72ZE.js";
20
+ } from "./chunk-TILFPYWO.js";
21
21
  import {
22
22
  WEB_SEARCH_USD,
23
23
  totalTokens
@@ -1244,4 +1244,4 @@ export {
1244
1244
  statusOf,
1245
1245
  CommandArgs
1246
1246
  };
1247
- //# sourceMappingURL=chunk-ENLDPN4S.js.map
1247
+ //# sourceMappingURL=chunk-BQTUOO4G.js.map
@@ -35,7 +35,7 @@ import {
35
35
  } from "./chunk-23FXBNBB.js";
36
36
  import {
37
37
  VERSION
38
- } from "./chunk-XOK5OZOC.js";
38
+ } from "./chunk-VBZCNMUD.js";
39
39
  import {
40
40
  TrustStore
41
41
  } from "./chunk-5DEWP3YX.js";
@@ -8993,7 +8993,7 @@ ${result.stderr.text}`)
8993
8993
  async startMcp(signal) {
8994
8994
  if (this.mcpServers.length === 0) return;
8995
8995
  this.mcpStarted ??= (async () => {
8996
- const { McpManager } = await import("./manager-AWU4NHHK.js");
8996
+ const { McpManager } = await import("./manager-773PUDFE.js");
8997
8997
  const { AuthStore } = await import("./oauth-W6OK6XXO.js");
8998
8998
  const manager = new McpManager({
8999
8999
  root: this.root,
@@ -9254,4 +9254,4 @@ export {
9254
9254
  modelFacts,
9255
9255
  Runtime
9256
9256
  };
9257
- //# sourceMappingURL=chunk-WIJL72ZE.js.map
9257
+ //# sourceMappingURL=chunk-TILFPYWO.js.map
@@ -0,0 +1,9 @@
1
+ #!/usr/bin/env node
2
+
3
+ // src/version.ts
4
+ var VERSION = "0.16.1";
5
+
6
+ export {
7
+ VERSION
8
+ };
9
+ //# sourceMappingURL=chunk-VBZCNMUD.js.map
package/dist/cli/index.js CHANGED
@@ -15,7 +15,7 @@ import {
15
15
  runCommand,
16
16
  runTurnInTerminal,
17
17
  stopMessage
18
- } from "../chunk-ENLDPN4S.js";
18
+ } from "../chunk-BQTUOO4G.js";
19
19
  import {
20
20
  PlainRenderer
21
21
  } from "../chunk-FARS4R67.js";
@@ -46,7 +46,7 @@ import {
46
46
  redoPoint,
47
47
  runAgent,
48
48
  signature
49
- } from "../chunk-WIJL72ZE.js";
49
+ } from "../chunk-TILFPYWO.js";
50
50
  import "../chunk-G2AX7MGS.js";
51
51
  import "../chunk-A2QAIRQL.js";
52
52
  import "../chunk-ULAJPMY7.js";
@@ -69,7 +69,7 @@ import {
69
69
  import "../chunk-EU7PA45O.js";
70
70
  import {
71
71
  VERSION
72
- } from "../chunk-XOK5OZOC.js";
72
+ } from "../chunk-VBZCNMUD.js";
73
73
  import "../chunk-5DEWP3YX.js";
74
74
  import "../chunk-ZAE25JM2.js";
75
75
  import "../chunk-ATW7BNIG.js";
@@ -772,7 +772,7 @@ async function main() {
772
772
  "--test-command <cmd>",
773
773
  "with --from-git: the test command; {files} takes the test files (default: detected)"
774
774
  ).action(async (options) => {
775
- const { runEvalCommand } = await import("../evalCommand-OX2LQYEK.js");
775
+ const { runEvalCommand } = await import("../evalCommand-RGMZRYDR.js");
776
776
  process.exitCode = await runEvalCommand({
777
777
  ...options,
778
778
  model: options.model ?? process.env.GARUDA_MODEL,
@@ -806,7 +806,7 @@ async function main() {
806
806
  program.command("acp").description(
807
807
  "run as an agent for an editor over the Agent Client Protocol (VS Code with an extension, Zed, JetBrains, Neovim, Emacs); the editor starts it"
808
808
  ).argument("[action]", "setup: run garuda setup (the editor's sign-in, ACP Terminal Auth)").option("-m, --model <id>", "model id (or set GARUDA_MODEL)").action(async (action, options) => {
809
- const { acpCommand } = await import("../acpCommand-AJJBKAE5.js");
809
+ const { acpCommand } = await import("../acpCommand-OTAYW7BS.js");
810
810
  process.exitCode = await acpCommand({
811
811
  ...options,
812
812
  ...action === void 0 ? {} : { action }
@@ -1156,7 +1156,7 @@ function wantsInk() {
1156
1156
  }
1157
1157
  async function loadInk(renderer) {
1158
1158
  try {
1159
- return await import("../inkChat-YMMMGU7Y.js");
1159
+ return await import("../inkChat-WEDGQMCY.js");
1160
1160
  } catch (error) {
1161
1161
  renderer.info(`Plain chat (Ink is not available: ${error.message.split("\n")[0]}).`);
1162
1162
  return void 0;
@@ -9,7 +9,7 @@ import {
9
9
  Runtime,
10
10
  detectProfiles,
11
11
  newSessionId
12
- } from "./chunk-WIJL72ZE.js";
12
+ } from "./chunk-TILFPYWO.js";
13
13
  import "./chunk-G2AX7MGS.js";
14
14
  import "./chunk-A2QAIRQL.js";
15
15
  import "./chunk-ULAJPMY7.js";
@@ -26,7 +26,7 @@ import {
26
26
  } from "./chunk-R7I2NBPX.js";
27
27
  import "./chunk-B25VL4RU.js";
28
28
  import "./chunk-23FXBNBB.js";
29
- import "./chunk-XOK5OZOC.js";
29
+ import "./chunk-VBZCNMUD.js";
30
30
  import "./chunk-5DEWP3YX.js";
31
31
  import "./chunk-ZAE25JM2.js";
32
32
  import "./chunk-ATW7BNIG.js";
@@ -2809,4 +2809,4 @@ export {
2809
2809
  BATCH_TASK_TIMEOUT_MS,
2810
2810
  runEvalCommand
2811
2811
  };
2812
- //# sourceMappingURL=evalCommand-OX2LQYEK.js.map
2812
+ //# sourceMappingURL=evalCommand-RGMZRYDR.js.map
@@ -6,7 +6,7 @@ import {
6
6
  fuzzyFiles,
7
7
  runChat,
8
8
  statusOf
9
- } from "./chunk-ENLDPN4S.js";
9
+ } from "./chunk-BQTUOO4G.js";
10
10
  import {
11
11
  retryText,
12
12
  serverToolOutput,
@@ -19,7 +19,7 @@ import {
19
19
  colorPreview,
20
20
  header
21
21
  } from "./chunk-4JSUUDFQ.js";
22
- import "./chunk-WIJL72ZE.js";
22
+ import "./chunk-TILFPYWO.js";
23
23
  import "./chunk-G2AX7MGS.js";
24
24
  import "./chunk-A2QAIRQL.js";
25
25
  import "./chunk-ULAJPMY7.js";
@@ -28,7 +28,7 @@ import "./chunk-R7I2NBPX.js";
28
28
  import "./chunk-B25VL4RU.js";
29
29
  import "./chunk-23FXBNBB.js";
30
30
  import "./chunk-EU7PA45O.js";
31
- import "./chunk-XOK5OZOC.js";
31
+ import "./chunk-VBZCNMUD.js";
32
32
  import "./chunk-5DEWP3YX.js";
33
33
  import "./chunk-ZAE25JM2.js";
34
34
  import "./chunk-ATW7BNIG.js";
@@ -1193,4 +1193,4 @@ async function runInkChat(runtime, approver, setEventTarget, banner, sessionPath
1193
1193
  export {
1194
1194
  runInkChat
1195
1195
  };
1196
- //# sourceMappingURL=inkChat-YMMMGU7Y.js.map
1196
+ //# sourceMappingURL=inkChat-WEDGQMCY.js.map
@@ -11,7 +11,7 @@ import {
11
11
  } from "./chunk-4P26OKTP.js";
12
12
  import {
13
13
  VERSION
14
- } from "./chunk-XOK5OZOC.js";
14
+ } from "./chunk-VBZCNMUD.js";
15
15
  import {
16
16
  USER_SCOPE
17
17
  } from "./chunk-5DEWP3YX.js";
@@ -845,4 +845,4 @@ export {
845
845
  changeLines,
846
846
  warnings
847
847
  };
848
- //# sourceMappingURL=manager-AWU4NHHK.js.map
848
+ //# sourceMappingURL=manager-773PUDFE.js.map
@@ -460,6 +460,9 @@ ${mark}`;
460
460
  // src/acp/server.ts
461
461
  var INTERNAL_ERROR = -32603;
462
462
  var SETUP_METHOD_ID = "garuda-setup";
463
+ function canRunTerminalAuth(capabilities) {
464
+ return capabilities?.auth?.terminal === true || capabilities?._meta?.["terminal-auth"] === true;
465
+ }
463
466
  function setupNeeded(message) {
464
467
  return Object.assign(new Error(message), { authRequired: true });
465
468
  }
@@ -499,7 +502,7 @@ function acpServer(options) {
499
502
  mcpCapabilities: { http: false, sse: false }
500
503
  },
501
504
  // Terminal Auth (0.16) only for an editor that can run it (the spec: never offer it else).
502
- authMethods: options.terminalAuth !== void 0 && c.params.clientCapabilities?.auth?.terminal === true ? [
505
+ authMethods: options.terminalAuth !== void 0 && canRunTerminalAuth(c.params.clientCapabilities) ? [
503
506
  {
504
507
  type: "terminal",
505
508
  id: SETUP_METHOD_ID,
@@ -689,6 +692,7 @@ function isFolder(path) {
689
692
  export {
690
693
  SETUP_METHOD_ID,
691
694
  acpServer,
695
+ canRunTerminalAuth,
692
696
  setupNeeded
693
697
  };
694
- //# sourceMappingURL=server-KHHNHUYV.js.map
698
+ //# sourceMappingURL=server-NGKVIQEV.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@garuda-agent/garuda",
3
- "version": "0.16.0",
3
+ "version": "0.16.1",
4
4
  "description": "Garuda: a terminal coding agent with an OS sandbox, approvals and an audit log.",
5
5
  "license": "Apache-2.0",
6
6
  "author": "Madhusudhan Vasanth Kumar",
@@ -1,9 +0,0 @@
1
- #!/usr/bin/env node
2
-
3
- // src/version.ts
4
- var VERSION = "0.16.0";
5
-
6
- export {
7
- VERSION
8
- };
9
- //# sourceMappingURL=chunk-XOK5OZOC.js.map