@integrity-labs/agt-cli 0.28.1111 → 0.28.1113
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 +5 -5
- package/dist/{chunk-4PTXGOVO.js → chunk-JX7ZXCNZ.js} +2 -2
- package/dist/{chunk-TZM6YVE7.js → chunk-OBZB6MUE.js} +105 -9
- package/dist/chunk-OBZB6MUE.js.map +1 -0
- package/dist/{chunk-2UHVPGB3.js → chunk-TXNVB3DN.js} +4 -4
- package/dist/{claude-pair-runtime-L7KXG3DD.js → claude-pair-runtime-GL67TYXC.js} +2 -2
- package/dist/lib/manager-worker.js +16 -16
- package/dist/mcp/direct-chat-channel.js +332 -14
- package/dist/mcp/index.js +340 -38
- package/dist/mcp/origami.js +104 -8
- package/dist/mcp/slack-channel.js +340 -14
- package/dist/mcp/telegram-channel.js +472 -70
- package/dist/{persistent-session-HSYN3SQ2.js → persistent-session-6KIQF4O7.js} +3 -3
- package/dist/{responsiveness-probe-MO4L5O6F.js → responsiveness-probe-GGJNITME.js} +3 -3
- package/dist/{session-auth-dead-ZKI4XCSI.js → session-auth-dead-LMCPZJ4K.js} +2 -2
- package/package.json +1 -1
- package/dist/chunk-TZM6YVE7.js.map +0 -1
- /package/dist/{chunk-4PTXGOVO.js.map → chunk-JX7ZXCNZ.js.map} +0 -0
- /package/dist/{chunk-2UHVPGB3.js.map → chunk-TXNVB3DN.js.map} +0 -0
- /package/dist/{claude-pair-runtime-L7KXG3DD.js.map → claude-pair-runtime-GL67TYXC.js.map} +0 -0
- /package/dist/{persistent-session-HSYN3SQ2.js.map → persistent-session-6KIQF4O7.js.map} +0 -0
- /package/dist/{responsiveness-probe-MO4L5O6F.js.map → responsiveness-probe-GGJNITME.js.map} +0 -0
- /package/dist/{session-auth-dead-ZKI4XCSI.js.map → session-auth-dead-LMCPZJ4K.js.map} +0 -0
package/dist/bin/agt.js
CHANGED
|
@@ -40,12 +40,12 @@ import {
|
|
|
40
40
|
success,
|
|
41
41
|
table,
|
|
42
42
|
warn
|
|
43
|
-
} from "../chunk-
|
|
43
|
+
} from "../chunk-TXNVB3DN.js";
|
|
44
44
|
import {
|
|
45
45
|
getProjectDir,
|
|
46
46
|
isSessionResumeDisabled,
|
|
47
47
|
readDirectChatSessionState
|
|
48
|
-
} from "../chunk-
|
|
48
|
+
} from "../chunk-JX7ZXCNZ.js";
|
|
49
49
|
import {
|
|
50
50
|
AnchorSessionClient,
|
|
51
51
|
CHANNEL_REGISTRY,
|
|
@@ -79,7 +79,7 @@ import {
|
|
|
79
79
|
serializeManifestForSlackCli,
|
|
80
80
|
sessionFileExists,
|
|
81
81
|
sessionTranscriptDir
|
|
82
|
-
} from "../chunk-
|
|
82
|
+
} from "../chunk-OBZB6MUE.js";
|
|
83
83
|
import "../chunk-OCMJ5E6J.js";
|
|
84
84
|
import "../chunk-XWVM4KPK.js";
|
|
85
85
|
import "../chunk-EL5MWGGH.js";
|
|
@@ -5474,7 +5474,7 @@ import { execFileSync, execSync } from "child_process";
|
|
|
5474
5474
|
import { existsSync as existsSync11, realpathSync as realpathSync2 } from "fs";
|
|
5475
5475
|
import chalk18 from "chalk";
|
|
5476
5476
|
import ora16 from "ora";
|
|
5477
|
-
var cliVersion = true ? "0.28.
|
|
5477
|
+
var cliVersion = true ? "0.28.1113" : "dev";
|
|
5478
5478
|
async function fetchLatestVersion() {
|
|
5479
5479
|
const host2 = getHost();
|
|
5480
5480
|
if (!host2) return null;
|
|
@@ -6734,7 +6734,7 @@ function handleError(err) {
|
|
|
6734
6734
|
}
|
|
6735
6735
|
|
|
6736
6736
|
// src/bin/agt.ts
|
|
6737
|
-
var cliVersion2 = true ? "0.28.
|
|
6737
|
+
var cliVersion2 = true ? "0.28.1113" : "dev";
|
|
6738
6738
|
var program = new Command();
|
|
6739
6739
|
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");
|
|
6740
6740
|
program.hook("preAction", async (thisCommand, actionCommand) => {
|
|
@@ -24,7 +24,7 @@ import {
|
|
|
24
24
|
rotateDailySession,
|
|
25
25
|
sessionFileExists,
|
|
26
26
|
todayLocalIso
|
|
27
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-OBZB6MUE.js";
|
|
28
28
|
import {
|
|
29
29
|
classifyUnanswerablePane,
|
|
30
30
|
findUsageLimitResetHint,
|
|
@@ -6113,4 +6113,4 @@ export {
|
|
|
6113
6113
|
stopAllSessionsAndWait,
|
|
6114
6114
|
getProjectDir
|
|
6115
6115
|
};
|
|
6116
|
-
//# sourceMappingURL=chunk-
|
|
6116
|
+
//# sourceMappingURL=chunk-JX7ZXCNZ.js.map
|
|
@@ -2049,6 +2049,34 @@ var INTEGRATION_REGISTRY = [
|
|
|
2049
2049
|
docs_url: "https://help.kajabi.com/articles/api-integrations/connect-kajabi-to-claude-or-chatgpt",
|
|
2050
2050
|
beta: true
|
|
2051
2051
|
},
|
|
2052
|
+
{
|
|
2053
|
+
id: "otter",
|
|
2054
|
+
name: "Otter.ai",
|
|
2055
|
+
category: "knowledge",
|
|
2056
|
+
description: "Read Otter.ai meetings: search recordings by date, attendee or topic, and read summaries, action items and full speaker-attributed transcripts.",
|
|
2057
|
+
// CS-2029: same remote streamable-HTTP MCP + OAuth pattern as Granola/Kajabi.
|
|
2058
|
+
// Otter's server implements the MCP discovery chain (RFC 9728 protected-
|
|
2059
|
+
// resource metadata at mcp.otter.ai → RFC 8414 AS metadata at otter.ai →
|
|
2060
|
+
// RFC 7591 registration); auth is OAuth 2.0 authorization-code with PKCE
|
|
2061
|
+
// (S256) and a public client registered via one-time Dynamic Client
|
|
2062
|
+
// Registration (scripts/dcr-register.ts against https://otter.ai/oauth/register
|
|
2063
|
+
// → OAUTH_OTTER_CLIENT_ID, --scope 'profile:read conversations:read').
|
|
2064
|
+
// Consent is brokered by the webapp through the shared
|
|
2065
|
+
// /integrations/oauth/authorize → /callback path, and the access_token
|
|
2066
|
+
// reaches the host via the generic remote-oauth-proxy
|
|
2067
|
+
// (OAUTH_PROVIDERS.otter.mcpUrl). Read-only by construction: Otter
|
|
2068
|
+
// advertises no write scope.
|
|
2069
|
+
supported_auth_types: ["oauth2"],
|
|
2070
|
+
capabilities: [
|
|
2071
|
+
{ id: "otter:read", name: "Read Meetings & Transcripts", description: "Find recorded meetings by date, attendee, topic or title, and read their summaries, action items, outlines and full transcripts (otter_get_user_info, otter_search, otter_fetch)", access: "read" }
|
|
2072
|
+
],
|
|
2073
|
+
// Otter's own Help Center article for the MCP server (CodeRabbit, #6906). It
|
|
2074
|
+
// exists even though help.otter.ai answers 403 to non-browser clients; the
|
|
2075
|
+
// help-centre API confirmed it (title "Otter MCP Server"). The MCP endpoint
|
|
2076
|
+
// itself is a JSON-RPC URL, not a page (Obi Wan 8305072d5414).
|
|
2077
|
+
docs_url: "https://help.otter.ai/hc/en-us/articles/35287607569687-Otter-MCP-Server",
|
|
2078
|
+
beta: true
|
|
2079
|
+
},
|
|
2052
2080
|
{
|
|
2053
2081
|
id: "anchor-browser",
|
|
2054
2082
|
name: "Anchor Browser",
|
|
@@ -7575,14 +7603,37 @@ var FLAG_REGISTRY = [
|
|
|
7575
7603
|
},
|
|
7576
7604
|
{
|
|
7577
7605
|
key: "platform-maintenance-mode",
|
|
7578
|
-
description: 'Platform-wide maintenance mode (ENG-6506)
|
|
7579
|
-
flagType: "
|
|
7580
|
-
|
|
7581
|
-
//
|
|
7582
|
-
//
|
|
7583
|
-
//
|
|
7584
|
-
//
|
|
7585
|
-
|
|
7606
|
+
description: 'Platform-wide maintenance mode (ENG-6506; widened to modes by ENG-11436). off = normal operation (ships dark; channels behave exactly as today). tools-offline = every agent KEEPS conversing but every Augmented tool that WRITES to the control plane refuses with a reason, so nothing is created during a window whose database restore would discard it; reads are untouched. fleet-offline = the previous boolean-true behaviour AND the write gate: admitted human inbound gets a "we are offline for maintenance" notice instead of being dispatched, for whole-platform downtime such as DB upgrades. The modes are CUMULATIVE \u2014 fleet-offline gates writes too, because silencing channel inbound does not stop a /loop or a scheduled task filing work. Read host-side per inbound and per tool call from the flags cache (no MCP restart). (Proactive "back online" follow-up is the ENG-6508 fast-follow, not this flag.)',
|
|
7607
|
+
flagType: "enum",
|
|
7608
|
+
allowedValues: ["off", "tools-offline", "fleet-offline"],
|
|
7609
|
+
// Declared safe value is `off` (normal operation). Fail-safe direction: a
|
|
7610
|
+
// flag-DB read error or absent flag map must never silence the fleet OR take
|
|
7611
|
+
// its write tools away on its own — agents stay fully functional unless an
|
|
7612
|
+
// operator deliberately sets a mode from the admin Feature Flags page. No
|
|
7613
|
+
// envVar: net-new control, no pre-flags env gate to migrate.
|
|
7614
|
+
//
|
|
7615
|
+
// ENG-11436 widened this from a boolean rather than adding a second flag, so
|
|
7616
|
+
// there is ONE operator control whose modes are mutually exclusive by type
|
|
7617
|
+
// instead of two similar booleans with four combinations.
|
|
7618
|
+
//
|
|
7619
|
+
// The host resolver GRANDFATHERS a boolean-shaped cache value
|
|
7620
|
+
// (true -> fleet-offline, false -> off), and the DIRECTION it protects is
|
|
7621
|
+
// narrower than an earlier version of this comment claimed (Obi Wan
|
|
7622
|
+
// `e3f0d2c154b9` on #6903). It said "an older manager still writing a boolean
|
|
7623
|
+
// must not make a central flip a silent no-op". That situation cannot arise:
|
|
7624
|
+
// once this registry change deploys, normalizeFlagValue only ever yields one
|
|
7625
|
+
// of the three strings, feature-flags-host.ts writes the heartbeat map
|
|
7626
|
+
// verbatim, so no manager writes a boolean again. What grandfathering
|
|
7627
|
+
// actually covers is a NEW MCP reading a STALE PRE-DEPLOY cache that still
|
|
7628
|
+
// holds one.
|
|
7629
|
+
//
|
|
7630
|
+
// The direction that DOES happen is not handled and cannot be: an OLD MCP
|
|
7631
|
+
// reads the new string with resolveHostBooleanFlag, gets undefined, and keeps
|
|
7632
|
+
// dispatching. That is a real regression against ENG-6506 until the fleet
|
|
7633
|
+
// converges, and it is why the runbook makes convergence a deploy-order
|
|
7634
|
+
// PRECONDITION rather than offering a boolean fallback — there is none, since
|
|
7635
|
+
// an enum flag rejects `{value: true}` with a 400.
|
|
7636
|
+
defaultValue: "off",
|
|
7586
7637
|
// Flipping this takes the ENTIRE fleet offline to end users; a mis-flip is a
|
|
7587
7638
|
// platform-wide availability incident, so mutations require explicit
|
|
7588
7639
|
// confirmation (the admin flip-reach modal).
|
|
@@ -11702,6 +11753,51 @@ var OAUTH_PROVIDERS = {
|
|
|
11702
11753
|
}
|
|
11703
11754
|
]
|
|
11704
11755
|
},
|
|
11756
|
+
"otter": {
|
|
11757
|
+
// CS-2029: Otter.ai's official MCP — remote streamable-HTTP at
|
|
11758
|
+
// https://mcp.otter.ai/mcp. Same Granola/Kajabi shape: OAuth 2.0
|
|
11759
|
+
// authorization-code with PKCE (S256) and a public client
|
|
11760
|
+
// (token_endpoint_auth_method 'none') issued via Dynamic Client
|
|
11761
|
+
// Registration (RFC 7591). Values below are taken verbatim from the
|
|
11762
|
+
// metadata, not inferred:
|
|
11763
|
+
// - https://mcp.otter.ai/.well-known/oauth-protected-resource names the
|
|
11764
|
+
// AS as https://otter.ai/ and advertises scopes profile:read,
|
|
11765
|
+
// conversations:read;
|
|
11766
|
+
// - https://otter.ai/.well-known/oauth-authorization-server gives
|
|
11767
|
+
// authorize /oauth2/authorize, token /oauth/token, revoke
|
|
11768
|
+
// /oauth/revoke_token, register /oauth/register, PKCE S256, `none`,
|
|
11769
|
+
// and the refresh_token grant.
|
|
11770
|
+
// NOTE the authorize path is /oauth2/authorize while token/revoke live
|
|
11771
|
+
// under /oauth/ — that is Otter's own split, do not "normalise" it.
|
|
11772
|
+
// The prod client was registered 2026-10-10 against /oauth/register with
|
|
11773
|
+
// scope 'profile:read conversations:read' and BOTH API callbacks,
|
|
11774
|
+
// https://api.augmented.team/... and https://api.ninjafy.com/integrations/oauth/callback,
|
|
11775
|
+
// because redirect_uri follows API_PUBLIC_URL and the ENG-11060 flip makes
|
|
11776
|
+
// the ninjafy name canonical; Otter returns no RFC 7592 handle, so a redirect
|
|
11777
|
+
// cannot be added later without a new client and a re-consent per connection.
|
|
11778
|
+
// OAUTH_OTTER_CLIENT_ID is set from its output (docs/runbooks/otter-dogfood.md). Otter advertises ONLY
|
|
11779
|
+
// read scopes, so this integration is read-only by construction: there is
|
|
11780
|
+
// no write scope to request even by mistake.
|
|
11781
|
+
definitionId: "otter",
|
|
11782
|
+
authorizeUrl: "https://otter.ai/oauth2/authorize",
|
|
11783
|
+
tokenUrl: "https://otter.ai/oauth/token",
|
|
11784
|
+
revokeUrl: "https://otter.ai/oauth/revoke_token",
|
|
11785
|
+
defaultScopes: ["profile:read", "conversations:read"],
|
|
11786
|
+
supportsRefresh: true,
|
|
11787
|
+
extraAuthorizeParams: {},
|
|
11788
|
+
clientAuthMethod: "body",
|
|
11789
|
+
pkce: "S256",
|
|
11790
|
+
publicClient: true,
|
|
11791
|
+
mcpUrl: "https://mcp.otter.ai/mcp",
|
|
11792
|
+
// Curated surface (matches the catalog seed's defined_scopes[].tools).
|
|
11793
|
+
// These are the server's three tools, all read-only. The names are
|
|
11794
|
+
// Otter's own, quoted from the tools' descriptions ("use `otter_search`
|
|
11795
|
+
// first", "call otter_get_user_info() first"), not Composio's wrapped
|
|
11796
|
+
// OTTER_AI_MCP_* slugs. An allowlisted name the server does not advertise
|
|
11797
|
+
// is logged and SKIPPED by the proxy, so confirm against the first live
|
|
11798
|
+
// tools/list after a real consent (runbook Step 3).
|
|
11799
|
+
toolAllowlist: ["otter_get_user_info", "otter_search", "otter_fetch"]
|
|
11800
|
+
},
|
|
11705
11801
|
"notion-cli": {
|
|
11706
11802
|
// Notion's public OAuth app. Tokens are workspace-scoped and long-lived —
|
|
11707
11803
|
// Notion does not issue refresh_tokens, so `supportsRefresh: false` and
|
|
@@ -16603,4 +16699,4 @@ export {
|
|
|
16603
16699
|
peekCurrentSession,
|
|
16604
16700
|
readDailySessionPin
|
|
16605
16701
|
};
|
|
16606
|
-
//# sourceMappingURL=chunk-
|
|
16702
|
+
//# sourceMappingURL=chunk-OBZB6MUE.js.map
|