@oddessentials/agent-guild 1.21.2 → 1.22.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/bin/agent-guild.mjs +2 -0
- package/bin/native/win32-arm64/agent-guild-report.exe +0 -0
- package/bin/native/win32-x64/agent-guild-report.exe +0 -0
- package/bin/windows/arm64/agent-guild-start.exe +0 -0
- package/bin/windows/x64/agent-guild-start.exe +0 -0
- package/config/providers.default.json +4 -0
- package/docs/api.md +34 -3
- package/examples/terminal-ai-chat.json +27 -0
- package/node_modules/node-pty/prebuilds/win32-arm64/conpty.node +0 -0
- package/node_modules/node-pty/prebuilds/win32-arm64/conpty_console_list.node +0 -0
- package/node_modules/node-pty/prebuilds/win32-x64/conpty.node +0 -0
- package/node_modules/node-pty/prebuilds/win32-x64/conpty_console_list.node +0 -0
- package/node_modules/smol-toml/LICENSE +24 -0
- package/node_modules/smol-toml/README.md +605 -0
- package/node_modules/smol-toml/dist/date.d.ts +41 -0
- package/node_modules/smol-toml/dist/date.js +156 -0
- package/node_modules/smol-toml/dist/error.d.ts +37 -0
- package/node_modules/smol-toml/dist/error.js +67 -0
- package/node_modules/smol-toml/dist/extract.js +293 -0
- package/node_modules/smol-toml/dist/index.cjs +771 -0
- package/node_modules/smol-toml/dist/index.d.ts +44 -0
- package/node_modules/smol-toml/dist/index.js +34 -0
- package/node_modules/smol-toml/dist/parse.d.ts +73 -0
- package/node_modules/smol-toml/dist/parse.js +164 -0
- package/node_modules/smol-toml/dist/primitive.js +151 -0
- package/node_modules/smol-toml/dist/stringify.d.ts +32 -0
- package/node_modules/smol-toml/dist/stringify.js +219 -0
- package/node_modules/smol-toml/dist/struct.js +156 -0
- package/node_modules/smol-toml/dist/util.d.ts +43 -0
- package/node_modules/smol-toml/dist/util.js +57 -0
- package/node_modules/smol-toml/package.json +68 -0
- package/package.json +2 -1
- package/src/manager/config.mjs +10 -10
- package/src/manager/install-channels.mjs +3 -0
- package/src/manager/main.mjs +4 -0
- package/src/manager/mcp-connect.mjs +483 -0
- package/src/manager/providers.mjs +23 -4
- package/src/manager/server.mjs +16 -1
- package/src/manager/session-manager.mjs +2 -2
- package/web/app.js +92 -2
- package/web/index.html +11 -1
- package/web/styles.css +13 -2
- package/web/yard/art.json +1 -1
- package/web/yard/renderer.js +110 -36
- package/web/yard/view.js +13 -3
package/bin/agent-guild.mjs
CHANGED
|
@@ -360,6 +360,8 @@ async function main() {
|
|
|
360
360
|
}
|
|
361
361
|
case 'mcp': {
|
|
362
362
|
// stdout carries only protocol messages from here on.
|
|
363
|
+
const home = args.find((a) => a.startsWith('--home='))?.slice('--home='.length);
|
|
364
|
+
if (home) process.env.AGENT_GUILD_HOME = home;
|
|
363
365
|
const { serveMcp } = await import('../src/mcp/server.mjs');
|
|
364
366
|
await serveMcp({ allowInput: flags.has('--allow-input') });
|
|
365
367
|
return undefined;
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
"memory": "claude",
|
|
13
13
|
"instructions": "claude",
|
|
14
14
|
"reporting": "claude",
|
|
15
|
+
"mcp": "claude",
|
|
15
16
|
"homeVar": "CLAUDE_CONFIG_DIR",
|
|
16
17
|
"accountEnv": { "CLAUDE_SECURESTORAGE_CONFIG_DIR": "{dir}" },
|
|
17
18
|
"hooks": { "path": "settings.json", "example": "claude-code-settings.json" },
|
|
@@ -55,6 +56,7 @@
|
|
|
55
56
|
"memory": "codex",
|
|
56
57
|
"instructions": "codex",
|
|
57
58
|
"reporting": "codex",
|
|
59
|
+
"mcp": "codex",
|
|
58
60
|
"homeVar": "CODEX_HOME",
|
|
59
61
|
"hooks": { "path": "hooks.json", "example": "codex-hooks.json" },
|
|
60
62
|
"modelPattern": "\\bgpt-\\d[a-z0-9.-]*",
|
|
@@ -93,6 +95,7 @@
|
|
|
93
95
|
"history": "antigravity",
|
|
94
96
|
"instructions": "google",
|
|
95
97
|
"reporting": "antigravity",
|
|
98
|
+
"mcp": "antigravity",
|
|
96
99
|
"modelPattern": "\\bgemini-\\d[a-z0-9.-]*",
|
|
97
100
|
"args": [],
|
|
98
101
|
"resumeArgs": ["--conversation", "{id}"],
|
|
@@ -126,6 +129,7 @@
|
|
|
126
129
|
"memory": "grok",
|
|
127
130
|
"instructions": "grok",
|
|
128
131
|
"reporting": "grok",
|
|
132
|
+
"mcp": "grok",
|
|
129
133
|
"homeVar": "GROK_HOME",
|
|
130
134
|
"hooks": { "path": "hooks/agent-guild.json", "example": "grok-hooks.json" },
|
|
131
135
|
"modelPattern": "\\bgrok-(?:build|\\d)[a-z0-9.-]*",
|
package/docs/api.md
CHANGED
|
@@ -123,8 +123,10 @@ whether its folder is on PATH. `uninstall` is null when Agent Guild cannot
|
|
|
123
123
|
remove that copy, and `uninstallGuidance` then says how to remove it instead.
|
|
124
124
|
`POST /providers/:id/uninstall` removes one copy.
|
|
125
125
|
|
|
126
|
-
|
|
127
|
-
|
|
126
|
+
`installCommand` is the command **Install** and **Update** run for a tool that
|
|
127
|
+
is a Docker CLI plugin (Docker Agent), or that a configured install command
|
|
128
|
+
updates by running again, and null otherwise. `plugin` names the Docker CLI
|
|
129
|
+
plugin the tool is, or is null. `pluginError` says why docker could not
|
|
128
130
|
list the plugin's copies, or is null; `pluginPending` is true until docker has
|
|
129
131
|
listed them once.
|
|
130
132
|
|
|
@@ -151,7 +153,35 @@ leaves the multiplexer's own session running, and
|
|
|
151
153
|
|
|
152
154
|
For a tool whose agent or model reporting has to be turned on,
|
|
153
155
|
`reportingEnabled` says whether it is, and `reportingNote` says why that switch
|
|
154
|
-
cannot be used, or is null.
|
|
156
|
+
cannot be used, or is null.
|
|
157
|
+
|
|
158
|
+
`mcp` is null unless the tool is installed and Agent Guild can add its own MCP
|
|
159
|
+
server (`agent-guild mcp`, see [mcp.md](mcp.md)) to the tool's settings:
|
|
160
|
+
Claude Code, Codex CLI, Antigravity CLI and Grok Build. Otherwise it is
|
|
161
|
+
`{ mode, accounts }`: `mode` is `claude`, `codex`, `antigravity` or `grok`, and
|
|
162
|
+
`accounts` has one `{ id, label, state, managed, from, command, allowInput,
|
|
163
|
+
detail, fingerprint }` per account, read from that account's settings. A
|
|
164
|
+
settings file the tool keeps as JSON is read again when it changes; a tool
|
|
165
|
+
asked through its CLI is asked again after a minute.
|
|
166
|
+
|
|
167
|
+
`state` is `checking` before the first read, `off`, `on`, `disabled` (turned
|
|
168
|
+
off in the tool), `conflict` or `error`. `on` and `disabled` mean the entry
|
|
169
|
+
named agent-guild starts Agent Guild's MCP server (`agent-guild mcp`, `npx
|
|
170
|
+
@oddessentials/agent-guild mcp` or Node running its `bin/agent-guild.mjs mcp`)
|
|
171
|
+
and reaches this manager's data folder, as the tool would start it: from
|
|
172
|
+
the first `--home=` when it names a folder, else the entry's `AGENT_GUILD_HOME`, else `APPDATA`,
|
|
173
|
+
`XDG_CONFIG_HOME` or the home folder from the tool's environment.
|
|
174
|
+
`conflict` is any other entry of that name, including one whose data folder
|
|
175
|
+
depends on an `AGENT_GUILD_HOME` set where the tool starts; `error` means the
|
|
176
|
+
tool's settings could not be read. `detail` says why for both. `managed` is
|
|
177
|
+
true for the entry Agent Guild adds itself. `from` names the other tool whose
|
|
178
|
+
settings the entry comes from (Grok Build loads Claude Code's and Cursor's), or
|
|
179
|
+
is null. `command` is the entry's command line. `fingerprint` identifies the
|
|
180
|
+
whole entry as read, or is null for `checking` and `error`. An account whose
|
|
181
|
+
home folder does not exist yet reads `off`, and turning the server on makes
|
|
182
|
+
the folder.
|
|
183
|
+
|
|
184
|
+
`usageUrl`, `billingUrl` and `cloudUrl` are
|
|
155
185
|
`https://` links to the vendor's usage and billing pages and web app, or null.
|
|
156
186
|
|
|
157
187
|
### Manager environment
|
|
@@ -622,6 +652,7 @@ All paths are under `/api/v1`.
|
|
|
622
652
|
| PATCH | `/providers/:id/accounts/:account` | `{ label, revision }` | `{ account, dir, providers, revision }`: renames an account, including `default`. |
|
|
623
653
|
| DELETE | `/providers/:id/accounts/:account?revision=` | | `{ account, dir, providers, revision }`: removes an account from `providers.json`. Its home folder, `dir`, stays on disk. 409 `default_account` for `default`; 409 `account_in_use` while a running session uses it. |
|
|
624
654
|
| POST | `/providers/:id/reporting` | `{ enabled }` | `{ provider }`: turns agent or model reporting on or off for a tool that has `reportingEnabled`. |
|
|
655
|
+
| POST | `/providers/:id/mcp` | `{ account, action, expect }` | `{ provider, result }`: changes Agent Guild's MCP server in one account's settings. `action` is `on` (add it, or turn it on in the tool), `off` (remove Agent Guild's entry, or turn off one that comes from another tool's settings) or `replace` (put Agent Guild's own entry in place of the one there). `expect` is the account's `fingerprint`: the account is read again first, and nothing changes unless the entry is still that one. `result` is `{ outcome, state, detail? }`, `outcome` `changed`, `unchanged` or `failed`. 400 `not_applicable` for a tool without `mcp`; 404 `unknown_account`; 409 `provider_unavailable` when it is not installed, `busy` while a change for that tool is running, `changed` when the entry is no longer `expect`, `unreadable` when the settings cannot be read, `conflict` for `on` or `off` on another server of that name, `needs_replace` for `on` on a Codex CLI entry Agent Guild did not add. |
|
|
625
656
|
| POST | `/providers/:id/install` | `{ force? }` | `201 { session }`: a session that installs or updates the tool. 409 `provider_in_use` (with `running`, the session count) while the provider's sessions are running; retry with `force: true` after the user confirms. |
|
|
626
657
|
| POST | `/providers/:id/uninstall` | `{ path, force? }` | `201 { session }`: a session that removes the copy at `path`, one of the provider's `installs`. `force` as for `install`. |
|
|
627
658
|
| GET | `/environment?scope=&cwd=&id=` | | An environment snapshot; see [Manager environment](#manager-environment). |
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
{
|
|
2
|
+
"providers": [
|
|
3
|
+
{
|
|
4
|
+
"id": "terminal-ai-chat",
|
|
5
|
+
"vendor": "Odd Essentials",
|
|
6
|
+
"tool": "Terminal AI Chat",
|
|
7
|
+
"command": "terminal-ai-chat",
|
|
8
|
+
"versionArgs": ["--version"],
|
|
9
|
+
"color": "#E11D48",
|
|
10
|
+
"monogram": "T",
|
|
11
|
+
"releases": "https://github.com/oddessentials/terminal-ai-chat-releases/releases/latest",
|
|
12
|
+
"install": "curl -fsSL https://github.com/oddessentials/terminal-ai-chat-releases/releases/latest/download/install.sh | sh",
|
|
13
|
+
"docs": "https://github.com/oddessentials/terminal-ai-chat-releases",
|
|
14
|
+
"channels": {
|
|
15
|
+
"native": { "paths": ["~/.local/bin/terminal-ai-chat"], "remove": ["~/.local/bin/terminal-ai-chat"], "reinstall": true, "versionEnv": "TAC_VERSION" },
|
|
16
|
+
"brew": { "names": ["terminal-ai-chat"] }
|
|
17
|
+
},
|
|
18
|
+
"win32": {
|
|
19
|
+
"install": "irm https://github.com/oddessentials/terminal-ai-chat-releases/releases/latest/download/install.ps1 | iex",
|
|
20
|
+
"channels": {
|
|
21
|
+
"native": { "paths": ["~/AppData/Local/Programs/terminal-ai-chat"], "remove": ["~/AppData/Local/Programs/terminal-ai-chat"], "reinstall": true, "versionEnv": "TAC_VERSION" },
|
|
22
|
+
"winget": { "id": "OddEssentials.TerminalAIChat" }
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
]
|
|
27
|
+
}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
Copyright (c) Squirrel Chat et al., All rights reserved.
|
|
2
|
+
|
|
3
|
+
Redistribution and use in source and binary forms, with or without
|
|
4
|
+
modification, are permitted provided that the following conditions are met:
|
|
5
|
+
|
|
6
|
+
1. Redistributions of source code must retain the above copyright notice, this
|
|
7
|
+
list of conditions and the following disclaimer.
|
|
8
|
+
2. Redistributions in binary form must reproduce the above copyright notice,
|
|
9
|
+
this list of conditions and the following disclaimer in the
|
|
10
|
+
documentation and/or other materials provided with the distribution.
|
|
11
|
+
3. Neither the name of the copyright holder nor the names of its contributors
|
|
12
|
+
may be used to endorse or promote products derived from this software without
|
|
13
|
+
specific prior written permission.
|
|
14
|
+
|
|
15
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
|
16
|
+
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
17
|
+
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
18
|
+
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
|
19
|
+
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
20
|
+
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
|
21
|
+
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
22
|
+
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
|
23
|
+
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
24
|
+
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|