@integrity-labs/agt-cli 0.28.254 → 0.28.256
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 +4 -4
- package/dist/{chunk-UMXGONVE.js → chunk-GFX74FGP.js} +44 -1
- package/dist/chunk-GFX74FGP.js.map +1 -0
- package/dist/{chunk-GKHDPXML.js → chunk-YAPZYRH4.js} +3 -3
- package/dist/{claude-pair-runtime-S6LYZUEC.js → claude-pair-runtime-EE3MXQHY.js} +2 -2
- package/dist/lib/manager-worker.js +10 -10
- package/dist/mcp/index.js +64 -0
- package/dist/mcp/origami.js +43 -0
- package/dist/{persistent-session-CHYTU6HG.js → persistent-session-EKXNGE5B.js} +2 -2
- package/dist/{responsiveness-probe-D74I4CS6.js → responsiveness-probe-DE6TIHJZ.js} +2 -2
- package/package.json +1 -1
- package/dist/chunk-UMXGONVE.js.map +0 -1
- /package/dist/{chunk-GKHDPXML.js.map → chunk-YAPZYRH4.js.map} +0 -0
- /package/dist/{claude-pair-runtime-S6LYZUEC.js.map → claude-pair-runtime-EE3MXQHY.js.map} +0 -0
- /package/dist/{persistent-session-CHYTU6HG.js.map → persistent-session-EKXNGE5B.js.map} +0 -0
- /package/dist/{responsiveness-probe-D74I4CS6.js.map → responsiveness-probe-DE6TIHJZ.js.map} +0 -0
|
@@ -18,7 +18,7 @@ import {
|
|
|
18
18
|
resolveConnectivityProbe,
|
|
19
19
|
worseConnectivityOutcome,
|
|
20
20
|
wrapScheduledTaskPrompt
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-GFX74FGP.js";
|
|
22
22
|
import {
|
|
23
23
|
parsePsRows
|
|
24
24
|
} from "./chunk-XWVM4KPK.js";
|
|
@@ -5832,7 +5832,7 @@ function requireHost() {
|
|
|
5832
5832
|
}
|
|
5833
5833
|
|
|
5834
5834
|
// src/lib/api-client.ts
|
|
5835
|
-
var agtCliVersion = true ? "0.28.
|
|
5835
|
+
var agtCliVersion = true ? "0.28.256" : "dev";
|
|
5836
5836
|
var lastConfigHash = null;
|
|
5837
5837
|
function setConfigHash(hash) {
|
|
5838
5838
|
lastConfigHash = hash && hash.length > 0 ? hash : null;
|
|
@@ -8102,4 +8102,4 @@ export {
|
|
|
8102
8102
|
managerInstallSystemUnitCommand,
|
|
8103
8103
|
managerUninstallSystemUnitCommand
|
|
8104
8104
|
};
|
|
8105
|
-
//# sourceMappingURL=chunk-
|
|
8105
|
+
//# sourceMappingURL=chunk-YAPZYRH4.js.map
|
|
@@ -100,7 +100,7 @@ async function spawnPairSession(session) {
|
|
|
100
100
|
return { ok: true };
|
|
101
101
|
} catch {
|
|
102
102
|
}
|
|
103
|
-
const { resolveClaudeBinary } = await import("./persistent-session-
|
|
103
|
+
const { resolveClaudeBinary } = await import("./persistent-session-EKXNGE5B.js");
|
|
104
104
|
const claudeBin = resolveClaudeBinary();
|
|
105
105
|
const pairEnv = {
|
|
106
106
|
...process.env,
|
|
@@ -373,4 +373,4 @@ export {
|
|
|
373
373
|
startClaudePair,
|
|
374
374
|
submitClaudePairCode
|
|
375
375
|
};
|
|
376
|
-
//# sourceMappingURL=claude-pair-runtime-
|
|
376
|
+
//# sourceMappingURL=claude-pair-runtime-EE3MXQHY.js.map
|
|
@@ -37,7 +37,7 @@ import {
|
|
|
37
37
|
requireHost,
|
|
38
38
|
safeWriteJsonAtomic,
|
|
39
39
|
setConfigHash
|
|
40
|
-
} from "../chunk-
|
|
40
|
+
} from "../chunk-YAPZYRH4.js";
|
|
41
41
|
import {
|
|
42
42
|
getProjectDir as getProjectDir2,
|
|
43
43
|
getReadyTasks,
|
|
@@ -122,7 +122,7 @@ import {
|
|
|
122
122
|
takeZombieDetection,
|
|
123
123
|
transcriptActivityAgeSeconds,
|
|
124
124
|
writeEgressAllowlist
|
|
125
|
-
} from "../chunk-
|
|
125
|
+
} from "../chunk-GFX74FGP.js";
|
|
126
126
|
import {
|
|
127
127
|
reapOrphanChannelMcps
|
|
128
128
|
} from "../chunk-XWVM4KPK.js";
|
|
@@ -6669,7 +6669,7 @@ var agentRestartTimezoneInputs = /* @__PURE__ */ new Map();
|
|
|
6669
6669
|
var lastVersionCheckAt = 0;
|
|
6670
6670
|
var VERSION_CHECK_INTERVAL_MS = 5 * 60 * 1e3;
|
|
6671
6671
|
var lastResponsivenessProbeAt = 0;
|
|
6672
|
-
var agtCliVersion = true ? "0.28.
|
|
6672
|
+
var agtCliVersion = true ? "0.28.256" : "dev";
|
|
6673
6673
|
function resolveBrewPath(execFileSync2) {
|
|
6674
6674
|
try {
|
|
6675
6675
|
const out = execFileSync2("which", ["brew"], { timeout: 5e3 }).toString().trim();
|
|
@@ -7519,7 +7519,7 @@ function flushRestartedAgentDiagnostics(hostId, codeNames) {
|
|
|
7519
7519
|
if (codeNames.length === 0) return;
|
|
7520
7520
|
void (async () => {
|
|
7521
7521
|
try {
|
|
7522
|
-
const { collectDiagnostics } = await import("../persistent-session-
|
|
7522
|
+
const { collectDiagnostics } = await import("../persistent-session-EKXNGE5B.js");
|
|
7523
7523
|
await api.post("/host/heartbeat", {
|
|
7524
7524
|
host_id: hostId,
|
|
7525
7525
|
agent_diagnostics: collectDiagnostics(codeNames)
|
|
@@ -7617,7 +7617,7 @@ async function pollCycle() {
|
|
|
7617
7617
|
}
|
|
7618
7618
|
try {
|
|
7619
7619
|
const { detectHostSecurity } = await import("../host-security-6PDFG7F5.js");
|
|
7620
|
-
const { collectDiagnostics } = await import("../persistent-session-
|
|
7620
|
+
const { collectDiagnostics } = await import("../persistent-session-EKXNGE5B.js");
|
|
7621
7621
|
const diagCodeNames = [...agentState.persistentSessionAgents];
|
|
7622
7622
|
const agentDiagnostics = diagCodeNames.length > 0 ? collectDiagnostics(diagCodeNames) : void 0;
|
|
7623
7623
|
let tailscaleHostname;
|
|
@@ -7765,7 +7765,7 @@ async function pollCycle() {
|
|
|
7765
7765
|
const {
|
|
7766
7766
|
collectResponsivenessProbes,
|
|
7767
7767
|
getResponsivenessIntervalMs
|
|
7768
|
-
} = await import("../responsiveness-probe-
|
|
7768
|
+
} = await import("../responsiveness-probe-DE6TIHJZ.js");
|
|
7769
7769
|
const probeIntervalMs = getResponsivenessIntervalMs();
|
|
7770
7770
|
if (now - lastResponsivenessProbeAt > probeIntervalMs) {
|
|
7771
7771
|
const probeCodeNames = [...agentState.persistentSessionAgents];
|
|
@@ -7797,7 +7797,7 @@ async function pollCycle() {
|
|
|
7797
7797
|
collectResponsivenessProbes,
|
|
7798
7798
|
livePendingInboundOldestAgeSeconds,
|
|
7799
7799
|
parkPendingInbound
|
|
7800
|
-
} = await import("../responsiveness-probe-
|
|
7800
|
+
} = await import("../responsiveness-probe-DE6TIHJZ.js");
|
|
7801
7801
|
const { getProjectDir: wedgeProjectDir } = await import("../claude-scheduler-FATCLHDM.js");
|
|
7802
7802
|
const wedgeNow = /* @__PURE__ */ new Date();
|
|
7803
7803
|
const liveAgents = agentState.persistentSessionAgents;
|
|
@@ -10623,7 +10623,7 @@ async function handleRestartDoorbell(agentId, requestedAt, restartReason) {
|
|
|
10623
10623
|
void api.post("/host/restart-ack", { host_id: hostId, agent_id: agentId, restart_requested_at: requestedAt }).catch((err) => log(`[restart-lane] ack failed for '${codeName}': ${err.message}`));
|
|
10624
10624
|
void (async () => {
|
|
10625
10625
|
try {
|
|
10626
|
-
const { collectDiagnostics } = await import("../persistent-session-
|
|
10626
|
+
const { collectDiagnostics } = await import("../persistent-session-EKXNGE5B.js");
|
|
10627
10627
|
await api.post("/host/heartbeat", {
|
|
10628
10628
|
host_id: hostId,
|
|
10629
10629
|
agent_diagnostics: collectDiagnostics([codeName])
|
|
@@ -10673,7 +10673,7 @@ async function respawnAgentAfterMcpStop(codeName, reason) {
|
|
|
10673
10673
|
}
|
|
10674
10674
|
try {
|
|
10675
10675
|
const hostId = await getHostId();
|
|
10676
|
-
const { collectDiagnostics } = await import("../persistent-session-
|
|
10676
|
+
const { collectDiagnostics } = await import("../persistent-session-EKXNGE5B.js");
|
|
10677
10677
|
await api.post("/host/heartbeat", {
|
|
10678
10678
|
host_id: hostId,
|
|
10679
10679
|
agent_diagnostics: collectDiagnostics([codeName])
|
|
@@ -11064,7 +11064,7 @@ async function processClaudePairSessions(agents) {
|
|
|
11064
11064
|
killPairSession,
|
|
11065
11065
|
pairTmuxSession,
|
|
11066
11066
|
finalizeClaudePairOnboarding
|
|
11067
|
-
} = await import("../claude-pair-runtime-
|
|
11067
|
+
} = await import("../claude-pair-runtime-EE3MXQHY.js");
|
|
11068
11068
|
for (const pairId of pendingResp.cancelled_pair_ids ?? []) {
|
|
11069
11069
|
log(`[claude-pair] sweeping orphan tmux session for pair ${pairId.slice(0, 8)}`);
|
|
11070
11070
|
const killed = await killPairSession(pairTmuxSession(pairId));
|
package/dist/mcp/index.js
CHANGED
|
@@ -22746,6 +22746,68 @@ server.tool(
|
|
|
22746
22746
|
};
|
|
22747
22747
|
}
|
|
22748
22748
|
);
|
|
22749
|
+
server.tool(
|
|
22750
|
+
"routine_propose",
|
|
22751
|
+
"Propose a recurring ROUTINE the user just asked you to take on. The platform sends them an accept/decline offer; on acceptance it creates the routine and its schedule with full lifecycle (hand-back anytime, approval ramp). Prefer this over schedule_create for recurring responsibilities.",
|
|
22752
|
+
{
|
|
22753
|
+
name: external_exports.string().describe('Short routine name (e.g. "Morning inbox summary")'),
|
|
22754
|
+
description: external_exports.string().describe("What the routine does, self-contained (this text is shown to the user and becomes the routine prompt basis)"),
|
|
22755
|
+
cadence_guess: external_exports.enum(["daily", "weekdays", "weekly", "unknown"]).optional().describe("Best guess at the cadence the user asked for")
|
|
22756
|
+
},
|
|
22757
|
+
async ({ name, description, cadence_guess }) => {
|
|
22758
|
+
let data;
|
|
22759
|
+
try {
|
|
22760
|
+
data = await apiPost("/host/routines/propose", {
|
|
22761
|
+
agent_id: AGT_AGENT_ID,
|
|
22762
|
+
name,
|
|
22763
|
+
description,
|
|
22764
|
+
...cadence_guess ? { cadence_guess } : {}
|
|
22765
|
+
});
|
|
22766
|
+
} catch (err) {
|
|
22767
|
+
return { content: [{ type: "text", text: `Could not propose: ${err.message}` }] };
|
|
22768
|
+
}
|
|
22769
|
+
if (!data.ok) {
|
|
22770
|
+
return { content: [{ type: "text", text: data.error ?? data.message ?? "Could not propose the routine." }] };
|
|
22771
|
+
}
|
|
22772
|
+
return { content: [{ type: "text", text: data.message ?? `Offer ${data.offer_id} filed.` }] };
|
|
22773
|
+
}
|
|
22774
|
+
);
|
|
22775
|
+
server.tool(
|
|
22776
|
+
"submit_routine_output",
|
|
22777
|
+
"Submit a gated routine's drafted output for human approval. Use ONLY when your routine prompt says the routine is in its approval phase - the platform delivers the draft after sign-off; do not deliver it yourself.",
|
|
22778
|
+
{
|
|
22779
|
+
routine_id: external_exports.string().describe("The routine id from your routine prompt"),
|
|
22780
|
+
content: external_exports.string().describe("The drafted output, exactly as it should be delivered"),
|
|
22781
|
+
summary: external_exports.string().optional().describe("One-line summary shown on the approval card")
|
|
22782
|
+
},
|
|
22783
|
+
async ({ routine_id, content, summary }) => {
|
|
22784
|
+
let data;
|
|
22785
|
+
try {
|
|
22786
|
+
data = await apiPost("/host/routines/submit-output", {
|
|
22787
|
+
agent_id: AGT_AGENT_ID,
|
|
22788
|
+
routine_id,
|
|
22789
|
+
content,
|
|
22790
|
+
...summary ? { summary } : {}
|
|
22791
|
+
});
|
|
22792
|
+
} catch (err) {
|
|
22793
|
+
return {
|
|
22794
|
+
content: [{ type: "text", text: `Could not submit: ${err.message}` }]
|
|
22795
|
+
};
|
|
22796
|
+
}
|
|
22797
|
+
if (!data.ok) {
|
|
22798
|
+
return { content: [{ type: "text", text: `Could not submit: ${data.error ?? data.message ?? "unknown error"}` }] };
|
|
22799
|
+
}
|
|
22800
|
+
if (data.gated === false) {
|
|
22801
|
+
return { content: [{ type: "text", text: data.message ?? "This routine is not approval-gated - deliver the output yourself." }] };
|
|
22802
|
+
}
|
|
22803
|
+
return {
|
|
22804
|
+
content: [{
|
|
22805
|
+
type: "text",
|
|
22806
|
+
text: data.duplicate ? `Already submitted (request ${data.request_id}); the approval is still pending. Do not deliver the output yourself.` : `Submitted for approval (request ${data.request_id}). The platform will deliver it once approved - do NOT deliver it yourself, and do not wait around; continue other work.`
|
|
22807
|
+
}]
|
|
22808
|
+
};
|
|
22809
|
+
}
|
|
22810
|
+
);
|
|
22749
22811
|
server.tool(
|
|
22750
22812
|
"schedule_list",
|
|
22751
22813
|
"List your scheduled tasks (cron jobs, reminders, recurring work).",
|
|
@@ -23385,6 +23447,8 @@ var LOCAL_TOOL_NAMES = /* @__PURE__ */ new Set([
|
|
|
23385
23447
|
"schedule_create",
|
|
23386
23448
|
"schedule_delete",
|
|
23387
23449
|
"schedule_update",
|
|
23450
|
+
"submit_routine_output",
|
|
23451
|
+
"routine_propose",
|
|
23388
23452
|
"knowledge_list",
|
|
23389
23453
|
"knowledge_add",
|
|
23390
23454
|
"knowledge_update",
|
package/dist/mcp/origami.js
CHANGED
|
@@ -39048,6 +39048,49 @@ var INTEGRATION_REGISTRY = [
|
|
|
39048
39048
|
]
|
|
39049
39049
|
}
|
|
39050
39050
|
},
|
|
39051
|
+
{
|
|
39052
|
+
// ENG-7439: X Search is a PREMIUM, platform-managed integration on the
|
|
39053
|
+
// Deck / Firecrawl / ElevenLabs model (ADR-0031, epic ENG-6920): Augmented
|
|
39054
|
+
// holds ONE X (Twitter) developer app whose OAuth2 app-only bearer
|
|
39055
|
+
// (X_APP_BEARER_TOKEN) every customer agent's search bills back to, so the
|
|
39056
|
+
// key is a single platform-held secret, NOT a per-agent credential. Auth
|
|
39057
|
+
// type is `none` - customers never enter a key. The one read tool runs on
|
|
39058
|
+
// the Direct-HTTP broker lane (integration-broker-agent-tools.ts, seed
|
|
39059
|
+
// metadata.tools); usage is metered at that chokepoint per resource
|
|
39060
|
+
// RETURNED, mirroring X's own read pricing.
|
|
39061
|
+
//
|
|
39062
|
+
// No `installable` here on purpose: x-search is a Direct-HTTP SEED
|
|
39063
|
+
// integration (integration-definitions.json), so the seed catalog already
|
|
39064
|
+
// makes it picker-visible. This registry entry exists ONLY to carry the
|
|
39065
|
+
// `premium` descriptor that `isPremiumDefinition` reads - which arms the
|
|
39066
|
+
// per-org opt-in gate, the priced acknowledgement modal, and the admin
|
|
39067
|
+
// pricing tab. See docs/adr/0034-x-search-platform-held-credential.md.
|
|
39068
|
+
id: "x-search",
|
|
39069
|
+
name: "X Search",
|
|
39070
|
+
category: "social",
|
|
39071
|
+
description: "Read-only X (Twitter) search: recent public posts by keyword, hashtag, author, or any X search operator - for sentiment sweeps, topic monitoring, and trend research. Augmented Team manages X access for you - there is no key to enter.",
|
|
39072
|
+
supported_auth_types: ["none"],
|
|
39073
|
+
capabilities: [
|
|
39074
|
+
{ id: "x-search:read", name: "Search Posts", description: "Search recent public X posts (last ~7 days) via x_search_recent.", access: "read" }
|
|
39075
|
+
],
|
|
39076
|
+
docs_url: "https://docs.x.com/x-api/posts/recent-search",
|
|
39077
|
+
beta: true,
|
|
39078
|
+
// ENG-7439: premium (billable). X bills us PER RESOURCE returned in a read
|
|
39079
|
+
// response ($0.005/post, $0.010/user via the app-only bearer), so the
|
|
39080
|
+
// integration is usage-priced and metered per resource at the broker
|
|
39081
|
+
// chokepoint. `meters` declares WHAT is metered + the physical unit; the
|
|
39082
|
+
// priced rate card (integration_rate_cards) holds the per-unit amount. Each
|
|
39083
|
+
// event_type must match what the broker writes to integration_usage_events.
|
|
39084
|
+
// Until a rate row is seeded an event prices at 0 (budget gate inert).
|
|
39085
|
+
premium: {
|
|
39086
|
+
pricing: "usage",
|
|
39087
|
+
note: "Billed per resource returned - each post and each unique author in a search result, mirroring X API read pricing.",
|
|
39088
|
+
meters: [
|
|
39089
|
+
{ event_type: "post_read", unit: "post" },
|
|
39090
|
+
{ event_type: "user_read", unit: "user" }
|
|
39091
|
+
]
|
|
39092
|
+
}
|
|
39093
|
+
},
|
|
39051
39094
|
{
|
|
39052
39095
|
// Seed-catalog toolkit (composed by the ultimate-app-coder bundle). Registered
|
|
39053
39096
|
// here only so the manager's ensureToolkitCli installs the binary via the
|
|
@@ -36,7 +36,7 @@ import {
|
|
|
36
36
|
writeDirectChatSessionState,
|
|
37
37
|
writeEgressAllowlist,
|
|
38
38
|
writePersistentClaudeWrapper
|
|
39
|
-
} from "./chunk-
|
|
39
|
+
} from "./chunk-GFX74FGP.js";
|
|
40
40
|
import "./chunk-XWVM4KPK.js";
|
|
41
41
|
export {
|
|
42
42
|
EGRESS_BASELINE_DOMAINS,
|
|
@@ -77,4 +77,4 @@ export {
|
|
|
77
77
|
writeEgressAllowlist,
|
|
78
78
|
writePersistentClaudeWrapper
|
|
79
79
|
};
|
|
80
|
-
//# sourceMappingURL=persistent-session-
|
|
80
|
+
//# sourceMappingURL=persistent-session-EKXNGE5B.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
paneLogPath
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-GFX74FGP.js";
|
|
4
4
|
import "./chunk-XWVM4KPK.js";
|
|
5
5
|
|
|
6
6
|
// src/lib/responsiveness-probe.ts
|
|
@@ -418,4 +418,4 @@ export {
|
|
|
418
418
|
readAndResetSlackReplyBindingClassifications,
|
|
419
419
|
readAndResetSlackReplyTargetClassifications
|
|
420
420
|
};
|
|
421
|
-
//# sourceMappingURL=responsiveness-probe-
|
|
421
|
+
//# sourceMappingURL=responsiveness-probe-DE6TIHJZ.js.map
|