@integrity-labs/agt-cli 0.27.33 → 0.27.34
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/bin/agt.js
CHANGED
|
@@ -27,7 +27,7 @@ import {
|
|
|
27
27
|
success,
|
|
28
28
|
table,
|
|
29
29
|
warn
|
|
30
|
-
} from "../chunk-
|
|
30
|
+
} from "../chunk-YC4QZFI4.js";
|
|
31
31
|
import {
|
|
32
32
|
CHANNEL_REGISTRY,
|
|
33
33
|
DEPLOYMENT_TEMPLATES,
|
|
@@ -4658,7 +4658,7 @@ import { execFileSync, execSync } from "child_process";
|
|
|
4658
4658
|
import { existsSync as existsSync10, realpathSync as realpathSync2 } from "fs";
|
|
4659
4659
|
import chalk18 from "chalk";
|
|
4660
4660
|
import ora16 from "ora";
|
|
4661
|
-
var cliVersion = true ? "0.27.
|
|
4661
|
+
var cliVersion = true ? "0.27.34" : "dev";
|
|
4662
4662
|
async function fetchLatestVersion() {
|
|
4663
4663
|
const host2 = getHost();
|
|
4664
4664
|
if (!host2) return null;
|
|
@@ -5190,7 +5190,7 @@ function handleError(err) {
|
|
|
5190
5190
|
}
|
|
5191
5191
|
|
|
5192
5192
|
// src/bin/agt.ts
|
|
5193
|
-
var cliVersion2 = true ? "0.27.
|
|
5193
|
+
var cliVersion2 = true ? "0.27.34" : "dev";
|
|
5194
5194
|
var program = new Command();
|
|
5195
5195
|
program.name("agt").description("Augmented CLI \u2014 agent provisioning and management").version(cliVersion2).option("--json", "Emit machine-readable JSON output (suppress spinners and colors)").option("--skip-update-check", "Skip the automatic update check on startup");
|
|
5196
5196
|
program.hook("preAction", (thisCommand) => {
|
|
@@ -136,6 +136,40 @@ var INTEGRATION_REGISTRY = [
|
|
|
136
136
|
docs_url: "https://docs.granola.ai/docs/api/mcp",
|
|
137
137
|
beta: true
|
|
138
138
|
},
|
|
139
|
+
{
|
|
140
|
+
id: "anchor-browser",
|
|
141
|
+
name: "Anchor Browser",
|
|
142
|
+
category: "workspace-productivity",
|
|
143
|
+
description: "Cloud browser for agents \u2014 drive any website that lacks an API (LinkedIn, Sales Navigator, supplier portals) via a hosted, stealth Chromium with persistent-login profiles. Wired as Anchor's HOSTED streamable-HTTP MCP at https://api.anchorbrowser.io/mcp.",
|
|
144
|
+
// ENG-5855: api-key header auth (NOT OAuth, NOT a local stdio package).
|
|
145
|
+
// The manager writes ANCHOR_BROWSER_API_KEY to .env.integrations from the
|
|
146
|
+
// stored api_key credential; the hosted MCP authenticates on the
|
|
147
|
+
// `anchor-api-key` header. The `anchor-session-id` header binds an
|
|
148
|
+
// authenticated profile session — its value is minted per-session by the
|
|
149
|
+
// manager (ENG-5857); until then `envDefaults` seeds it empty so
|
|
150
|
+
// stateless browsing works and no literal `${...}` placeholder ships.
|
|
151
|
+
// Tool surface (25 `anchor_*` tools) is the hosted MCP's, validated in
|
|
152
|
+
// the ENG-5854 spike (docs/spikes/eng-5854-anchor-browser-persistent-login.md).
|
|
153
|
+
supported_auth_types: ["api_key"],
|
|
154
|
+
capabilities: [
|
|
155
|
+
{ id: "anchor-browser:browse", name: "Browse & Read", description: "Navigate and read pages \u2014 snapshot, screenshot, page HTML, tabs, console, network requests, wait (anchor_navigate, anchor_snapshot, anchor_take_screenshot, anchor_get_body_html, anchor_tab_list, anchor_console_messages, anchor_network_requests, anchor_wait_for, anchor_navigate_back/forward)", access: "read" },
|
|
156
|
+
{ id: "anchor-browser:interact", name: "Interact", description: "Act on pages \u2014 click, type, hover, drag, select options, press keys, handle dialogs, upload files, resize, manage tabs (anchor_click, anchor_type, anchor_hover, anchor_drag, anchor_select_option, anchor_press_key, anchor_handle_dialog, anchor_file_upload, anchor_resize, anchor_tab_new/select/close, anchor_close)", access: "write" },
|
|
157
|
+
{ id: "anchor-browser:export", name: "Export & Codegen", description: "Save the current page as PDF and generate Playwright code for a scenario (anchor_pdf_save, anchor_generate_playwright_code)", access: "write" }
|
|
158
|
+
],
|
|
159
|
+
docs_url: "https://docs.anchorbrowser.io/introduction",
|
|
160
|
+
beta: true,
|
|
161
|
+
remoteMcp: {
|
|
162
|
+
type: "http",
|
|
163
|
+
url: "https://api.anchorbrowser.io/mcp",
|
|
164
|
+
headers: {
|
|
165
|
+
"anchor-api-key": "${ANCHOR_BROWSER_API_KEY}",
|
|
166
|
+
"anchor-session-id": "${ANCHOR_BROWSER_SESSION_ID}"
|
|
167
|
+
},
|
|
168
|
+
// ENG-5857 mints the real session id; default empty so the header
|
|
169
|
+
// resolves cleanly (no profile bound → ephemeral session) until then.
|
|
170
|
+
envDefaults: { ANCHOR_BROWSER_SESSION_ID: "" }
|
|
171
|
+
}
|
|
172
|
+
},
|
|
139
173
|
{
|
|
140
174
|
id: "postiz",
|
|
141
175
|
name: "Postiz",
|
|
@@ -3539,6 +3573,15 @@ function envVarForToken(definitionId) {
|
|
|
3539
3573
|
return `${definitionId.replace(/-/g, "_").toUpperCase()}_ACCESS_TOKEN`;
|
|
3540
3574
|
}
|
|
3541
3575
|
function buildRemoteMcpEntry(definitionId) {
|
|
3576
|
+
const def = INTEGRATION_REGISTRY.find((d) => d.id === definitionId);
|
|
3577
|
+
if (def?.remoteMcp) {
|
|
3578
|
+
const spec = def.remoteMcp;
|
|
3579
|
+
return {
|
|
3580
|
+
type: spec.type ?? "http",
|
|
3581
|
+
url: spec.url,
|
|
3582
|
+
...spec.headers ? { headers: { ...spec.headers } } : {}
|
|
3583
|
+
};
|
|
3584
|
+
}
|
|
3542
3585
|
const provider = OAUTH_PROVIDERS[definitionId];
|
|
3543
3586
|
if (!provider?.mcpUrl)
|
|
3544
3587
|
return null;
|
|
@@ -4626,7 +4669,7 @@ function mapScheduledTasks(tasks) {
|
|
|
4626
4669
|
};
|
|
4627
4670
|
});
|
|
4628
4671
|
}
|
|
4629
|
-
function buildUrlMcpServerEntry(url, headers) {
|
|
4672
|
+
function buildUrlMcpServerEntry(url, headers, type = "http") {
|
|
4630
4673
|
const hasHeaders = !!headers && Object.keys(headers).length > 0;
|
|
4631
4674
|
if (url.includes("composio.dev") && hasHeaders) {
|
|
4632
4675
|
return { type: "http", url, headers };
|
|
@@ -4649,7 +4692,7 @@ function buildUrlMcpServerEntry(url, headers) {
|
|
|
4649
4692
|
};
|
|
4650
4693
|
}
|
|
4651
4694
|
if (hasHeaders) {
|
|
4652
|
-
return { type
|
|
4695
|
+
return { type, url, headers };
|
|
4653
4696
|
}
|
|
4654
4697
|
return { command: "npx", args: ["-y", "mcp-remote", url, "--allow-http"] };
|
|
4655
4698
|
}
|
|
@@ -5367,6 +5410,17 @@ ${sections}`
|
|
|
5367
5410
|
}
|
|
5368
5411
|
}
|
|
5369
5412
|
}
|
|
5413
|
+
for (const integration of decryptedIntegrations) {
|
|
5414
|
+
const def = INTEGRATION_REGISTRY.find((d) => d.id === integration.definition_id);
|
|
5415
|
+
const defaults = def?.remoteMcp?.envDefaults;
|
|
5416
|
+
if (!defaults)
|
|
5417
|
+
continue;
|
|
5418
|
+
for (const [key, value] of Object.entries(defaults)) {
|
|
5419
|
+
if (envLines.some((line) => line.startsWith(`${key}=`)))
|
|
5420
|
+
continue;
|
|
5421
|
+
envLines.push(`${key}=${shellQuote(value)}`);
|
|
5422
|
+
}
|
|
5423
|
+
}
|
|
5370
5424
|
if (envLines.length > 1) {
|
|
5371
5425
|
const envPath = join4(agentDir, ".env.integrations");
|
|
5372
5426
|
writeFileSync5(envPath, envLines.join("\n") + "\n");
|
|
@@ -5515,7 +5569,7 @@ ${sections}`
|
|
|
5515
5569
|
const mcpServers = mcpConfig["mcpServers"];
|
|
5516
5570
|
let serverEntry;
|
|
5517
5571
|
if ("url" in config) {
|
|
5518
|
-
serverEntry = buildUrlMcpServerEntry(config.url, config.headers);
|
|
5572
|
+
serverEntry = buildUrlMcpServerEntry(config.url, config.headers, config.type);
|
|
5519
5573
|
} else {
|
|
5520
5574
|
serverEntry = { command: config.command };
|
|
5521
5575
|
if (config.args?.length)
|
|
@@ -6977,4 +7031,4 @@ export {
|
|
|
6977
7031
|
managerInstallSystemUnitCommand,
|
|
6978
7032
|
managerUninstallSystemUnitCommand
|
|
6979
7033
|
};
|
|
6980
|
-
//# sourceMappingURL=chunk-
|
|
7034
|
+
//# sourceMappingURL=chunk-YC4QZFI4.js.map
|