@integrity-labs/agt-cli 0.28.1187 → 0.28.1189

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.
Files changed (29) hide show
  1. package/dist/bin/agt.js +6 -6
  2. package/dist/{chunk-RSEWKUE2.js → chunk-6C22ELAZ.js} +5 -5
  3. package/dist/{chunk-B7EHZTCU.js → chunk-BG7IPLTE.js} +2 -2
  4. package/dist/{chunk-KKK3S2RS.js → chunk-CJ3KE25W.js} +3 -3
  5. package/dist/{chunk-2HMIFOZU.js → chunk-GYY5LC6U.js} +2 -2
  6. package/dist/{chunk-TKFPMB6F.js → chunk-M5QY6SXB.js} +7 -1
  7. package/dist/chunk-M5QY6SXB.js.map +1 -0
  8. package/dist/{claude-code-updater-F2Q5CM6R.js → claude-code-updater-CQ2SWFEJ.js} +3 -3
  9. package/dist/{claude-pair-runtime-AAK4N5Z6.js → claude-pair-runtime-N54HX4ZR.js} +3 -3
  10. package/dist/lib/manager-worker.js +19 -19
  11. package/dist/mcp/direct-chat-channel.js +6 -0
  12. package/dist/mcp/index.js +6 -0
  13. package/dist/mcp/origami.js +71 -47
  14. package/dist/mcp/slack-channel.js +6 -0
  15. package/dist/mcp/telegram-channel.js +6 -0
  16. package/dist/{persistent-session-KW4SEBXV.js → persistent-session-NL7N3MA4.js} +4 -4
  17. package/dist/{responsiveness-probe-34V4HLOQ.js → responsiveness-probe-BMLAPOIY.js} +4 -4
  18. package/dist/{session-auth-dead-AGNAALKZ.js → session-auth-dead-PTHDHHK4.js} +3 -3
  19. package/package.json +1 -1
  20. package/dist/chunk-TKFPMB6F.js.map +0 -1
  21. /package/dist/{chunk-RSEWKUE2.js.map → chunk-6C22ELAZ.js.map} +0 -0
  22. /package/dist/{chunk-B7EHZTCU.js.map → chunk-BG7IPLTE.js.map} +0 -0
  23. /package/dist/{chunk-KKK3S2RS.js.map → chunk-CJ3KE25W.js.map} +0 -0
  24. /package/dist/{chunk-2HMIFOZU.js.map → chunk-GYY5LC6U.js.map} +0 -0
  25. /package/dist/{claude-code-updater-F2Q5CM6R.js.map → claude-code-updater-CQ2SWFEJ.js.map} +0 -0
  26. /package/dist/{claude-pair-runtime-AAK4N5Z6.js.map → claude-pair-runtime-N54HX4ZR.js.map} +0 -0
  27. /package/dist/{persistent-session-KW4SEBXV.js.map → persistent-session-NL7N3MA4.js.map} +0 -0
  28. /package/dist/{responsiveness-probe-34V4HLOQ.js.map → responsiveness-probe-BMLAPOIY.js.map} +0 -0
  29. /package/dist/{session-auth-dead-AGNAALKZ.js.map → session-auth-dead-PTHDHHK4.js.map} +0 -0
@@ -13,9 +13,9 @@ import {
13
13
  probeClaudeInstalls,
14
14
  readsAsNativeInstall,
15
15
  shouldRunClaudeCodeUpdater
16
- } from "./chunk-B7EHZTCU.js";
16
+ } from "./chunk-BG7IPLTE.js";
17
17
  import "./chunk-XWVM4KPK.js";
18
- import "./chunk-TKFPMB6F.js";
18
+ import "./chunk-M5QY6SXB.js";
19
19
  import "./chunk-AIUIMEUS.js";
20
20
  import "./chunk-DGUM43GV.js";
21
21
  export {
@@ -34,4 +34,4 @@ export {
34
34
  readsAsNativeInstall,
35
35
  shouldRunClaudeCodeUpdater
36
36
  };
37
- //# sourceMappingURL=claude-code-updater-F2Q5CM6R.js.map
37
+ //# sourceMappingURL=claude-code-updater-CQ2SWFEJ.js.map
@@ -8,7 +8,7 @@ import {
8
8
  import {
9
9
  redactPaneFrame,
10
10
  sanitizeTerminalFrame
11
- } from "./chunk-TKFPMB6F.js";
11
+ } from "./chunk-M5QY6SXB.js";
12
12
  import {
13
13
  CLAUDE_CONFIG_DIR_ENV,
14
14
  claudeConfigDirFor,
@@ -321,7 +321,7 @@ async function spawnPairSession(session) {
321
321
  return { ok: true };
322
322
  } catch {
323
323
  }
324
- const { resolveClaudeBinary } = await import("./persistent-session-KW4SEBXV.js");
324
+ const { resolveClaudeBinary } = await import("./persistent-session-NL7N3MA4.js");
325
325
  const claudeBin = resolveClaudeBinary();
326
326
  const pairEnv = {
327
327
  ...process.env,
@@ -836,4 +836,4 @@ export {
836
836
  startClaudePair,
837
837
  submitClaudePairCode
838
838
  };
839
- //# sourceMappingURL=claude-pair-runtime-AAK4N5Z6.js.map
839
+ //# sourceMappingURL=claude-pair-runtime-N54HX4ZR.js.map
@@ -82,7 +82,7 @@ import {
82
82
  tripClass,
83
83
  writeEtcEnvironment,
84
84
  writeProfileDScript
85
- } from "../chunk-RSEWKUE2.js";
85
+ } from "../chunk-6C22ELAZ.js";
86
86
  import {
87
87
  CLAUDE_CODE_SECURITY_FLOOR,
88
88
  SELF_UPDATE_TIMEOUTS,
@@ -96,7 +96,7 @@ import {
96
96
  runSafeCleanup,
97
97
  tightestDiskStat,
98
98
  withPackageCacheLock
99
- } from "../chunk-B7EHZTCU.js";
99
+ } from "../chunk-BG7IPLTE.js";
100
100
  import {
101
101
  rewriteSupervisorApiKey,
102
102
  supervisorChannelsRefusing
@@ -189,7 +189,7 @@ import {
189
189
  webFetchBaselineValue,
190
190
  webFetchRestartNeeded,
191
191
  writeEgressAllowlist
192
- } from "../chunk-KKK3S2RS.js";
192
+ } from "../chunk-CJ3KE25W.js";
193
193
  import {
194
194
  isAgentIdle,
195
195
  isStaleForToday,
@@ -199,7 +199,7 @@ import {
199
199
  sessionTranscriptDir,
200
200
  subagentActivityAgeSeconds,
201
201
  transcriptActivityAgeSeconds
202
- } from "../chunk-2HMIFOZU.js";
202
+ } from "../chunk-GYY5LC6U.js";
203
203
  import {
204
204
  classifyUnanswerablePane,
205
205
  focusedConfirmDialogBlock,
@@ -325,7 +325,7 @@ import {
325
325
  stabiliseResetInstant,
326
326
  sumTranscriptUsageInWindow,
327
327
  summarizeTranscriptActivity
328
- } from "../chunk-TKFPMB6F.js";
328
+ } from "../chunk-M5QY6SXB.js";
329
329
  import {
330
330
  CLAUDE_CONFIG_DIR_ENV,
331
331
  claudeConfigDirFor,
@@ -15481,7 +15481,7 @@ var pendingDayRolloverReset = /* @__PURE__ */ new Set();
15481
15481
  var dayRolloverInboundHold = /* @__PURE__ */ new Map();
15482
15482
  var INBOUND_HOLD_EPISODE_GAP_MS = 12e4;
15483
15483
  async function channelInboundActivityAgeSecondsFor(codeName) {
15484
- const { newestPendingInboundActivityMtimeMs } = await import("../responsiveness-probe-34V4HLOQ.js");
15484
+ const { newestPendingInboundActivityMtimeMs } = await import("../responsiveness-probe-BMLAPOIY.js");
15485
15485
  const newest = newestPendingInboundActivityMtimeMs(dirname11(paneLogPath(codeName)));
15486
15486
  if (newest === null) return null;
15487
15487
  return Math.max(0, Math.floor((Date.now() - newest) / 1e3));
@@ -16278,7 +16278,7 @@ var agentRestartTimezoneInputs = /* @__PURE__ */ new Map();
16278
16278
  var lastVersionCheckAt = 0;
16279
16279
  var VERSION_CHECK_INTERVAL_MS = 5 * 60 * 1e3;
16280
16280
  var lastResponsivenessProbeAt = 0;
16281
- var agtCliVersion = true ? "0.28.1187" : "dev";
16281
+ var agtCliVersion = true ? "0.28.1189" : "dev";
16282
16282
  function resolveBrewPath(execFileSync3) {
16283
16283
  try {
16284
16284
  const out = execFileSync3("which", ["brew"], { timeout: 5e3 }).toString().trim();
@@ -18182,7 +18182,7 @@ function flushRestartedAgentDiagnostics(hostId, codeNames) {
18182
18182
  if (codeNames.length === 0) return;
18183
18183
  void (async () => {
18184
18184
  try {
18185
- const { collectDiagnostics } = await import("../persistent-session-KW4SEBXV.js");
18185
+ const { collectDiagnostics } = await import("../persistent-session-NL7N3MA4.js");
18186
18186
  await api.post("/host/heartbeat", {
18187
18187
  host_id: hostId,
18188
18188
  agent_diagnostics: collectDiagnostics(codeNames, quarantineEntriesFor, claudeMdSizeFor, spawnOutcomeForDiagnostics, pidPressureFor, forwardedToolsFor, runtimeVersionFor, sessionActivityFor)
@@ -18325,7 +18325,7 @@ async function pollCycleInner() {
18325
18325
  }
18326
18326
  try {
18327
18327
  const { detectHostSecurity } = await import("../host-security-KQYYZZVW.js");
18328
- const { collectDiagnostics } = await import("../persistent-session-KW4SEBXV.js");
18328
+ const { collectDiagnostics } = await import("../persistent-session-NL7N3MA4.js");
18329
18329
  const diagCodeNames = [...agentState.persistentSessionAgents];
18330
18330
  const agentDiagnostics = diagCodeNames.length > 0 ? collectDiagnostics(diagCodeNames, quarantineEntriesFor, claudeMdSizeFor, spawnOutcomeForDiagnostics, pidPressureFor, forwardedToolsFor, runtimeVersionFor, sessionActivityFor) : void 0;
18331
18331
  let tailscaleHostname;
@@ -18580,7 +18580,7 @@ async function pollCycleInner() {
18580
18580
  }
18581
18581
  try {
18582
18582
  const desiredClaudeCodeVersion = hbResp?.desired_claude_code_version?.trim();
18583
- const { maybeUpdateClaudeCode, shouldRunClaudeCodeUpdater } = await import("../claude-code-updater-F2Q5CM6R.js");
18583
+ const { maybeUpdateClaudeCode, shouldRunClaudeCodeUpdater } = await import("../claude-code-updater-CQ2SWFEJ.js");
18584
18584
  const securityFloor = currentSecurityFloor();
18585
18585
  claudeUpdaterInFlight = true;
18586
18586
  if (desiredClaudeCodeVersion && (claudePairLoop.busy || claudePairingInProgress())) {
@@ -18615,7 +18615,7 @@ async function pollCycleInner() {
18615
18615
  collectPanelessActivityProbes,
18616
18616
  getResponsivenessIntervalMs,
18617
18617
  occupancyQualificationClassifications
18618
- } = await import("../responsiveness-probe-34V4HLOQ.js");
18618
+ } = await import("../responsiveness-probe-BMLAPOIY.js");
18619
18619
  const probeIntervalMs = getResponsivenessIntervalMs();
18620
18620
  if (now - lastResponsivenessProbeAt > probeIntervalMs) {
18621
18621
  const probeCodeNames = [...agentState.persistentSessionAgents];
@@ -18732,7 +18732,7 @@ async function pollCycleInner() {
18732
18732
  collectResponsivenessProbes,
18733
18733
  livePendingInboundOldestAgeSeconds,
18734
18734
  parkPendingInbound
18735
- } = await import("../responsiveness-probe-34V4HLOQ.js");
18735
+ } = await import("../responsiveness-probe-BMLAPOIY.js");
18736
18736
  const { getProjectDir: wedgeProjectDir } = await import("../scheduler-engine-M6AFZWNU.js");
18737
18737
  const wedgeNow = /* @__PURE__ */ new Date();
18738
18738
  const liveAgents = agentState.persistentSessionAgents;
@@ -19018,7 +19018,7 @@ async function pollCycleInner() {
19018
19018
  }
19019
19019
  }
19020
19020
  );
19021
- const { parkPendingInbound } = await import("../responsiveness-probe-34V4HLOQ.js");
19021
+ const { parkPendingInbound } = await import("../responsiveness-probe-BMLAPOIY.js");
19022
19022
  const { parked, deadLettered } = parkPendingInbound(codeName, new Date(fatalNowMs));
19023
19023
  paneFatalStreak.delete(codeName);
19024
19024
  paneFatalRestarts.set(codeName, [...history, fatalNowMs]);
@@ -19049,7 +19049,7 @@ async function pollCycleInner() {
19049
19049
  TRANSCRIPT_MOUNT_ESCALATION_REFRESH_MS,
19050
19050
  bindSourceEscalations
19051
19051
  } = await import("../transcript-mount-health-OHE6IVJV.js");
19052
- const { transcriptBindSourcesFor, ensureTranscriptBindSources } = await import("../persistent-session-KW4SEBXV.js");
19052
+ const { transcriptBindSourcesFor, ensureTranscriptBindSources } = await import("../persistent-session-NL7N3MA4.js");
19053
19053
  const mountConfig = resolveTranscriptMountConfig();
19054
19054
  const liveAgents = agentState.persistentSessionAgents;
19055
19055
  for (const tracked of [
@@ -19214,7 +19214,7 @@ async function pollCycleInner() {
19214
19214
  }
19215
19215
  try {
19216
19216
  const { scrapeMcpFailedBannerCount } = await import("../pane-mcp-banner-scraper-VR5QGP3J.js");
19217
- const { probeSessionAuth } = await import("../session-auth-dead-AGNAALKZ.js");
19217
+ const { probeSessionAuth } = await import("../session-auth-dead-PTHDHHK4.js");
19218
19218
  const observations = [];
19219
19219
  const pendingCacheCommits = [];
19220
19220
  const modelApiErrorReportingOn = hostFlagStore().getBoolean("model-api-error-reporting");
@@ -23916,7 +23916,7 @@ async function handleRestartDoorbell(agentId, requestedAt, restartReason) {
23916
23916
  try {
23917
23917
  const freshId = rotateSessionForWedge(codeName);
23918
23918
  consecutiveWedgeCycles.delete(codeName);
23919
- const { parkPendingInbound: parkForRestart } = await import("../responsiveness-probe-34V4HLOQ.js");
23919
+ const { parkPendingInbound: parkForRestart } = await import("../responsiveness-probe-BMLAPOIY.js");
23920
23920
  const { parked, deadLettered } = parkForRestart(codeName, /* @__PURE__ */ new Date());
23921
23921
  const parkNote = parked > 0 ? `, ${parked} inbound parked` : "";
23922
23922
  const deadNote = deadLettered > 0 ? `, ${deadLettered} undeliverable dead-lettered` : "";
@@ -23959,7 +23959,7 @@ async function handleRestartDoorbell(agentId, requestedAt, restartReason) {
23959
23959
  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}`));
23960
23960
  void (async () => {
23961
23961
  try {
23962
- const { collectDiagnostics } = await import("../persistent-session-KW4SEBXV.js");
23962
+ const { collectDiagnostics } = await import("../persistent-session-NL7N3MA4.js");
23963
23963
  await api.post("/host/heartbeat", {
23964
23964
  host_id: hostId,
23965
23965
  agent_diagnostics: collectDiagnostics([codeName], quarantineEntriesFor, claudeMdSizeFor, spawnOutcomeForDiagnostics, pidPressureFor, forwardedToolsFor, runtimeVersionFor, sessionActivityFor)
@@ -24010,7 +24010,7 @@ async function respawnAgentAfterMcpStop(codeName, reason) {
24010
24010
  }
24011
24011
  try {
24012
24012
  const hostId = await getHostId();
24013
- const { collectDiagnostics } = await import("../persistent-session-KW4SEBXV.js");
24013
+ const { collectDiagnostics } = await import("../persistent-session-NL7N3MA4.js");
24014
24014
  await api.post("/host/heartbeat", {
24015
24015
  host_id: hostId,
24016
24016
  agent_diagnostics: collectDiagnostics([codeName], quarantineEntriesFor, claudeMdSizeFor, spawnOutcomeForDiagnostics, pidPressureFor, forwardedToolsFor, runtimeVersionFor, sessionActivityFor)
@@ -24712,7 +24712,7 @@ async function processClaudePairSessions(agents) {
24712
24712
  snapshotPairConfig,
24713
24713
  // ENG-11659: result -> report body + the manager.log line that records it.
24714
24714
  planPairStartReport
24715
- } = await import("../claude-pair-runtime-AAK4N5Z6.js");
24715
+ } = await import("../claude-pair-runtime-N54HX4ZR.js");
24716
24716
  const { resetClaudeSignin, describeSigninResetForLog, describeSigninResetFailure } = await import("../claude-signin-reset-6IJMMVYG.js");
24717
24717
  for (const pairId of pendingResp.cancelled_pair_ids ?? []) {
24718
24718
  log(`[claude-pair] sweeping orphan tmux session for pair ${pairId.slice(0, 8)}`);
@@ -39205,6 +39205,12 @@ var MARKUP_BRIDGE_SCRIPT = `<script>(function(){
39205
39205
  });
39206
39206
  })();</script>`;
39207
39207
 
39208
+ // ../core/dist/integrations/augmented-live/live-hosts.js
39209
+ function linkOpenerScript(frameId) {
39210
+ return 'function alOpenBar(u){var o=document.getElementById("al-open");if(o)o.parentNode.removeChild(o);var b=document.createElement("div");b.id="al-open";b.setAttribute("role","status");b.appendChild(document.createTextNode("Open link to "));var a=document.createElement("a");a.href=u.href;a.target="_blank";a.rel="noopener noreferrer";a.textContent=u.host;a.addEventListener("click",function(){setTimeout(function(){if(b.parentNode)b.parentNode.removeChild(b);},0);});b.appendChild(a);var x=document.createElement("button");x.type="button";x.setAttribute("aria-label","Dismiss");x.textContent="\xD7";x.addEventListener("click",function(){if(b.parentNode)b.parentNode.removeChild(b);});b.appendChild(x);document.body.appendChild(b);}window.addEventListener("message",function(e){var f=document.getElementById(' + JSON.stringify(frameId) + ');if(!f||e.source!==f.contentWindow||e.origin!=="null")return;var d=e.data;if(!d||d.type!=="al-open"||typeof d.url!=="string")return;var u;try{u=new URL(d.url);}catch(x){return;}if(u.protocol!=="https:"||u.username||u.password)return;var w=window.open(u.href,"_blank");if(w){try{w.opener=null;}catch(x){}}else{alOpenBar(u);}});';
39211
+ }
39212
+ var WRAPPER_LINK_OPENER = linkOpenerScript("al-doc");
39213
+
39208
39214
  // ../core/dist/integrations/augmented-live/publisher.js
39209
39215
  var PRESENTER_CHROME_SELECTORS = "#al-download, #al-vis, .al-launcher, .al-stats-btn, .al-edit-btn";
39210
39216
  var presenterChromeCss = `
package/dist/mcp/index.js CHANGED
@@ -25247,6 +25247,12 @@ var MARKUP_BRIDGE_SCRIPT = `<script>(function(){
25247
25247
  });
25248
25248
  })();</script>`;
25249
25249
 
25250
+ // ../core/dist/integrations/augmented-live/live-hosts.js
25251
+ function linkOpenerScript(frameId) {
25252
+ return 'function alOpenBar(u){var o=document.getElementById("al-open");if(o)o.parentNode.removeChild(o);var b=document.createElement("div");b.id="al-open";b.setAttribute("role","status");b.appendChild(document.createTextNode("Open link to "));var a=document.createElement("a");a.href=u.href;a.target="_blank";a.rel="noopener noreferrer";a.textContent=u.host;a.addEventListener("click",function(){setTimeout(function(){if(b.parentNode)b.parentNode.removeChild(b);},0);});b.appendChild(a);var x=document.createElement("button");x.type="button";x.setAttribute("aria-label","Dismiss");x.textContent="\xD7";x.addEventListener("click",function(){if(b.parentNode)b.parentNode.removeChild(b);});b.appendChild(x);document.body.appendChild(b);}window.addEventListener("message",function(e){var f=document.getElementById(' + JSON.stringify(frameId) + ');if(!f||e.source!==f.contentWindow||e.origin!=="null")return;var d=e.data;if(!d||d.type!=="al-open"||typeof d.url!=="string")return;var u;try{u=new URL(d.url);}catch(x){return;}if(u.protocol!=="https:"||u.username||u.password)return;var w=window.open(u.href,"_blank");if(w){try{w.opener=null;}catch(x){}}else{alOpenBar(u);}});';
25253
+ }
25254
+ var WRAPPER_LINK_OPENER = linkOpenerScript("al-doc");
25255
+
25250
25256
  // ../core/dist/integrations/augmented-live/publisher.js
25251
25257
  var PRESENTER_CHROME_SELECTORS = "#al-download, #al-vis, .al-launcher, .al-stats-btn, .al-edit-btn";
25252
25258
  var presenterChromeCss = `
@@ -39377,6 +39377,12 @@ var MARKUP_BRIDGE_SCRIPT = `<script>(function(){
39377
39377
  });
39378
39378
  })();</script>`;
39379
39379
 
39380
+ // ../core/dist/integrations/augmented-live/live-hosts.js
39381
+ function linkOpenerScript(frameId) {
39382
+ return 'function alOpenBar(u){var o=document.getElementById("al-open");if(o)o.parentNode.removeChild(o);var b=document.createElement("div");b.id="al-open";b.setAttribute("role","status");b.appendChild(document.createTextNode("Open link to "));var a=document.createElement("a");a.href=u.href;a.target="_blank";a.rel="noopener noreferrer";a.textContent=u.host;a.addEventListener("click",function(){setTimeout(function(){if(b.parentNode)b.parentNode.removeChild(b);},0);});b.appendChild(a);var x=document.createElement("button");x.type="button";x.setAttribute("aria-label","Dismiss");x.textContent="\xD7";x.addEventListener("click",function(){if(b.parentNode)b.parentNode.removeChild(b);});b.appendChild(x);document.body.appendChild(b);}window.addEventListener("message",function(e){var f=document.getElementById(' + JSON.stringify(frameId) + ');if(!f||e.source!==f.contentWindow||e.origin!=="null")return;var d=e.data;if(!d||d.type!=="al-open"||typeof d.url!=="string")return;var u;try{u=new URL(d.url);}catch(x){return;}if(u.protocol!=="https:"||u.username||u.password)return;var w=window.open(u.href,"_blank");if(w){try{w.opener=null;}catch(x){}}else{alOpenBar(u);}});';
39383
+ }
39384
+ var WRAPPER_LINK_OPENER = linkOpenerScript("al-doc");
39385
+
39380
39386
  // ../core/dist/integrations/augmented-live/publisher.js
39381
39387
  var PRESENTER_CHROME_SELECTORS = "#al-download, #al-vis, .al-launcher, .al-stats-btn, .al-edit-btn";
39382
39388
  var presenterChromeCss = `
@@ -46415,86 +46421,107 @@ function supportsProjectScoping(tool) {
46415
46421
  }
46416
46422
  var ORG_SCOPED_TOOLS = [
46417
46423
  // ==========================================================================
46418
- // v1 DATA PLANE
46424
+ // DATA PLANE (v3 leads and jobs; tool names kept from v1)
46419
46425
  // ==========================================================================
46420
46426
  {
46421
46427
  name: "list_tables",
46422
- description: "List enrichment tables in the org with column metadata (v1). Use this to discover available tables and column slugs before inserting rows or reading results.",
46428
+ description: "List lead lists in the org. Use this to discover what is available and to get list ids. FREE (no credits). Returns { items, next_cursor }.",
46423
46429
  risk_tier: "Low",
46424
- input_schema: { type: "object", properties: {} },
46425
- http: { method: "GET", path_template: "/api/v1/tables" }
46430
+ input_schema: {
46431
+ type: "object",
46432
+ properties: {
46433
+ cursor: { type: "string", description: "Opaque cursor: the `next_cursor` from a previous page." },
46434
+ limit: { type: "integer", minimum: 1, maximum: 100, description: "Lists per page. Max 100." },
46435
+ name: { type: "string", description: "Optional exact, case-insensitive name filter." }
46436
+ }
46437
+ },
46438
+ http: {
46439
+ method: "GET",
46440
+ path_template: "/api/v3/leads/lists",
46441
+ query_template: { cursor: "{cursor}", limit: "{limit}", name: "{name}" }
46442
+ }
46426
46443
  },
46427
46444
  {
46428
46445
  name: "list_table_rows",
46429
- description: "Read the ROWS (records) of a table - the actual lead / cell data, not just structure. FREE (no credits consumed). Paginated: `page` is zero-based, `pageSize` defaults 50 (max 500). Returns { columns (slug -> display name), rows (flat objects keyed by column slug; empty cells omitted), total, page, pageSize }. Optional: `columns` (comma-separated slugs to project), `filters` / `sort` (JSON strings). Discover the tableId + column slugs first via list_tables / get_table. If get_table shows cells.running > 0 the table is still enriching, so rows may be incomplete.",
46446
+ description: "Read the ROWS (records) of a lead list - the actual lead / cell data, not just structure. FREE (no credits). Returns { items, next_cursor }. Pages by cursor, not page number.",
46430
46447
  risk_tier: "Low",
46431
46448
  input_schema: {
46432
46449
  type: "object",
46433
46450
  properties: {
46434
- tableId: { type: "string", minLength: 1, description: "Table id from list_tables / get_table." },
46435
- page: { type: "integer", minimum: 0, description: "Zero-based page index. Default 0." },
46436
- pageSize: { type: "integer", minimum: 1, maximum: 500, description: "Rows per page. Default 50, max 500." },
46437
- columns: { type: "string", description: "Optional: comma-separated column slugs to return (default: all columns)." },
46438
- filters: { type: "string", description: "Optional: JSON array of { column, op, value } filter objects." },
46439
- sort: { type: "string", description: 'Optional: JSON { column, direction } where direction is "asc" or "desc".' }
46451
+ tableId: { type: "string", minLength: 1, description: "List id from list_tables / get_table." },
46452
+ cursor: { type: "string", description: "Opaque cursor: the `next_cursor` from a previous page." },
46453
+ limit: { type: "integer", minimum: 1, maximum: 100, description: "Rows per page. Max 100." },
46454
+ ids: { type: "string", description: "Optional: only these row ids, comma-separated." },
46455
+ min_relevance_score: { type: "number", description: "Optional: drop rows scored below this." },
46456
+ sort: { type: "string", description: "Optional: field to sort by." },
46457
+ order: { type: "string", description: "Optional: sort direction." }
46440
46458
  },
46441
46459
  required: ["tableId"]
46442
46460
  },
46443
46461
  http: {
46444
46462
  method: "GET",
46445
- path_template: "/api/v1/tables/{tableId}/rows",
46463
+ path_template: "/api/v3/leads/lists/{tableId}/rows",
46446
46464
  query_template: {
46447
- page: "{page}",
46448
- pageSize: "{pageSize}",
46449
- columns: "{columns}",
46450
- filters: "{filters}",
46451
- sort: "{sort}"
46465
+ cursor: "{cursor}",
46466
+ limit: "{limit}",
46467
+ ids: "{ids}",
46468
+ min_relevance_score: "{min_relevance_score}",
46469
+ sort: "{sort}",
46470
+ order: "{order}"
46452
46471
  }
46453
46472
  }
46454
46473
  },
46455
46474
  {
46456
46475
  name: "submit_enrichment",
46457
- description: "Insert raw rows into an enrichment table (v1). Returns a batchId immediately - poll poll_batch for progress + enriched results. Consumes credits per row; requires reviewer approval.",
46476
+ description: "Add or update rows in a lead list and enrich them. Rows matching `match_columns` are updated, others are added. Returns an embedded `enrichment_job`: poll its id with poll_batch. CONSUMES CREDITS per row. Max 100 rows per call.",
46458
46477
  risk_tier: "Medium",
46459
46478
  input_schema: {
46460
46479
  type: "object",
46461
46480
  properties: {
46462
- tableId: { type: "string", minLength: 1, description: "Target table id from list_tables." },
46481
+ tableId: { type: "string", minLength: 1, description: "Target list id from list_tables." },
46463
46482
  rows: {
46464
46483
  type: "array",
46465
46484
  minItems: 1,
46466
46485
  maxItems: 100,
46467
46486
  items: { type: "object" },
46468
- description: "Array of input-column rows (keys are input column slugs from list_tables). Max 100 per call."
46487
+ description: "Array of rows, keyed by column slug. Max 100."
46488
+ },
46489
+ match_columns: {
46490
+ type: "array",
46491
+ minItems: 1,
46492
+ maxItems: 10,
46493
+ items: { type: "string", minLength: 1 },
46494
+ description: 'Column slugs that identify an existing row, for example ["domain"].'
46469
46495
  }
46470
46496
  },
46471
- required: ["tableId", "rows"]
46497
+ required: ["tableId", "rows", "match_columns"]
46472
46498
  },
46473
46499
  http: {
46474
46500
  method: "POST",
46475
- path_template: "/api/v1/tables/{tableId}/rows",
46476
- body_template: { rows: "{rows}" }
46501
+ path_template: "/api/v3/leads/lists/{tableId}/rows/upsert",
46502
+ // enrich is fixed on: this tool has always meant "insert and enrich".
46503
+ body_template: { rows: "{rows}", match_columns: "{match_columns}", enrich: true }
46477
46504
  }
46478
46505
  },
46479
46506
  {
46480
46507
  name: "poll_batch",
46481
- description: "Poll a v1 enrichment batch for status + enriched results. Docs recommend 2-5s intervals for fast results, 30-60s for background processing. status is processing | complete | errored.",
46508
+ description: "Read an enrichment job for status and results. Honor `next_poll_at`. A job stays running until enrichment is done, so `succeeded` means the counts are final. Ids from before the move to the v3 API will not be found.",
46482
46509
  risk_tier: "Low",
46483
46510
  input_schema: {
46484
46511
  type: "object",
46485
46512
  properties: {
46486
- batchId: { type: "string", minLength: 1, description: "Batch id returned by submit_enrichment." }
46513
+ batchId: { type: "string", minLength: 1, description: "The job id from the `enrichment_job` submit_enrichment returned." }
46487
46514
  },
46488
46515
  required: ["batchId"]
46489
46516
  },
46490
- http: { method: "GET", path_template: "/api/v1/batches/{batchId}" }
46517
+ http: { method: "GET", path_template: "/api/v3/jobs/{batchId}" }
46491
46518
  },
46492
46519
  {
46493
46520
  name: "get_credit_balance",
46494
- description: "Return the org credit balance ({ balance, currency }). Use to budget enrichment volume / agent runs before any credit-consuming call.",
46521
+ description: "Return the credit wallet balance. Use to budget enrichment volume before a credit-consuming call. The wallet is shared across the parent org, even for a project.",
46495
46522
  risk_tier: "Low",
46496
46523
  input_schema: { type: "object", properties: {} },
46497
- http: { method: "GET", path_template: "/api/v1/credits" }
46524
+ http: { method: "GET", path_template: "/api/v3/account/credits" }
46498
46525
  },
46499
46526
  // ==========================================================================
46500
46527
  // v2 AGENT PLANE
@@ -46658,21 +46685,16 @@ var ORG_SCOPED_TOOLS = [
46658
46685
  },
46659
46686
  {
46660
46687
  name: "get_table",
46661
- description: 'Get a v2 table: name, leadCount, columns, lifetime credits, and cell liveness. Pass include=stats for economics (creditsPerLead, qualification, funnel, lead sources). For programmatic row reads use the v1 read path. cells.running > 0 means enrichment is still in flight - do not conclude "no data" yet.',
46688
+ description: "Get one lead list: its name, columns and status.",
46662
46689
  risk_tier: "Low",
46663
46690
  input_schema: {
46664
46691
  type: "object",
46665
46692
  properties: {
46666
- tableId: { type: "string", minLength: 1, description: "Table id (uuid)." },
46667
- include: { type: "string", description: 'Optional: pass "stats" to attach the economics block.' }
46693
+ tableId: { type: "string", minLength: 1, description: "List id (uuid)." }
46668
46694
  },
46669
46695
  required: ["tableId"]
46670
46696
  },
46671
- http: {
46672
- method: "GET",
46673
- path_template: "/api/v2/tables/{tableId}",
46674
- query_template: { include: "{include}" }
46675
- }
46697
+ http: { method: "GET", path_template: "/api/v3/leads/lists/{tableId}" }
46676
46698
  },
46677
46699
  {
46678
46700
  name: "list_agent_tables",
@@ -46696,39 +46718,41 @@ var ORG_SCOPED_TOOLS = [
46696
46718
  var PROJECT_TOOLS = [
46697
46719
  {
46698
46720
  name: "list_projects",
46699
- description: "List the projects (child orgs) under the API key's parent org, newest first. Use this to discover the project id to pass as `project_id` on any other tool - without it every call resolves against the parent org, so a project's agents and tables are invisible. Cursor-paginated: pass the previous response's `nextCursor` as `cursor`; `nextCursor: null` means the last page. Optional `search` is a case-insensitive substring match on project name. Returns { object, items[{ id, name, monthlyCredits, usage{spent,reserved}, createdAt }], nextCursor }. Always acts on the parent org - `project_id` is not accepted here.",
46721
+ description: "List the projects (child orgs) under the API key's parent org. Use this to discover a project id. Returns { items, next_cursor }.",
46700
46722
  risk_tier: "Low",
46701
46723
  input_schema: {
46702
46724
  type: "object",
46703
46725
  properties: {
46704
- cursor: { type: "string", description: "Opaque pagination cursor - the `nextCursor` from a previous page. Omit for the first page." },
46705
- limit: { type: "integer", minimum: 1, maximum: 100, description: "Projects per page. Default 50, max 100." },
46706
- search: { type: "string", description: "Optional case-insensitive substring match on project name." }
46726
+ cursor: { type: "string", description: "Opaque cursor: the `next_cursor` from a previous page." },
46727
+ limit: { type: "integer", minimum: 1, maximum: 100, description: "Projects per page. Max 100." }
46707
46728
  }
46708
46729
  },
46709
46730
  http: {
46710
46731
  method: "GET",
46711
- path_template: "/api/v2/projects",
46712
- query_template: { cursor: "{cursor}", limit: "{limit}", search: "{search}" }
46732
+ path_template: "/api/v3/account/projects",
46733
+ query_template: { cursor: "{cursor}", limit: "{limit}" }
46713
46734
  }
46714
46735
  },
46715
46736
  {
46716
46737
  name: "get_project",
46717
- description: "Fetch a single project (child org) by id: name, optional monthlyCredits budget cap, current-period usage { spent, reserved } and createdAt. Use it to confirm a project id before scoping calls to it, or to check its remaining budget. Always acts on the parent org - `project_id` is not accepted here.",
46738
+ description: "Fetch one project (child org) by id: its name, optional monthly credit cap and usage.",
46718
46739
  risk_tier: "Low",
46719
46740
  input_schema: {
46720
46741
  type: "object",
46721
46742
  properties: {
46722
- projectId: { type: "string", minLength: 1, description: "The project (child org) id (uuid), from list_projects." }
46743
+ projectId: { type: "string", minLength: 1, description: "The project id (uuid), from list_projects." }
46723
46744
  },
46724
46745
  required: ["projectId"]
46725
46746
  },
46726
- http: { method: "GET", path_template: "/api/v2/projects/{projectId}" }
46747
+ http: { method: "GET", path_template: "/api/v3/account/projects/{projectId}" }
46727
46748
  }
46728
46749
  ];
46750
+ var NEEDS_CUSTOMER_KEY_NOTE = " Needs a customer-supplied Origami key: on a platform-managed install this returns 403.";
46751
+ var REACHABLE_WITH_BOUND_KEY_PREFIXES = ["/api/v3/leads/", "/api/v3/jobs/"];
46752
+ var withCustomerKeyNote = (tool) => REACHABLE_WITH_BOUND_KEY_PREFIXES.some((prefix) => tool.http.path_template.startsWith(prefix)) ? tool : { ...tool, description: `${tool.description}${NEEDS_CUSTOMER_KEY_NOTE}` };
46729
46753
  var ORIGAMI_TOOLS = [
46730
- ...ORG_SCOPED_TOOLS.map(withProjectScoping),
46731
- ...PROJECT_TOOLS
46754
+ ...ORG_SCOPED_TOOLS.map(withProjectScoping).map(withCustomerKeyNote),
46755
+ ...PROJECT_TOOLS.map(withCustomerKeyNote)
46732
46756
  ];
46733
46757
 
46734
46758
  // src/server.ts
@@ -33786,6 +33786,12 @@ var MARKUP_BRIDGE_SCRIPT = `<script>(function(){
33786
33786
  });
33787
33787
  })();</script>`;
33788
33788
 
33789
+ // ../core/dist/integrations/augmented-live/live-hosts.js
33790
+ function linkOpenerScript(frameId) {
33791
+ return 'function alOpenBar(u){var o=document.getElementById("al-open");if(o)o.parentNode.removeChild(o);var b=document.createElement("div");b.id="al-open";b.setAttribute("role","status");b.appendChild(document.createTextNode("Open link to "));var a=document.createElement("a");a.href=u.href;a.target="_blank";a.rel="noopener noreferrer";a.textContent=u.host;a.addEventListener("click",function(){setTimeout(function(){if(b.parentNode)b.parentNode.removeChild(b);},0);});b.appendChild(a);var x=document.createElement("button");x.type="button";x.setAttribute("aria-label","Dismiss");x.textContent="\xD7";x.addEventListener("click",function(){if(b.parentNode)b.parentNode.removeChild(b);});b.appendChild(x);document.body.appendChild(b);}window.addEventListener("message",function(e){var f=document.getElementById(' + JSON.stringify(frameId) + ');if(!f||e.source!==f.contentWindow||e.origin!=="null")return;var d=e.data;if(!d||d.type!=="al-open"||typeof d.url!=="string")return;var u;try{u=new URL(d.url);}catch(x){return;}if(u.protocol!=="https:"||u.username||u.password)return;var w=window.open(u.href,"_blank");if(w){try{w.opener=null;}catch(x){}}else{alOpenBar(u);}});';
33792
+ }
33793
+ var WRAPPER_LINK_OPENER = linkOpenerScript("al-doc");
33794
+
33789
33795
  // ../core/dist/integrations/augmented-live/publisher.js
33790
33796
  var PRESENTER_CHROME_SELECTORS = "#al-download, #al-vis, .al-launcher, .al-stats-btn, .al-edit-btn";
33791
33797
  var presenterChromeCss = `
@@ -34003,6 +34003,12 @@ var MARKUP_BRIDGE_SCRIPT = `<script>(function(){
34003
34003
  });
34004
34004
  })();</script>`;
34005
34005
 
34006
+ // ../core/dist/integrations/augmented-live/live-hosts.js
34007
+ function linkOpenerScript(frameId) {
34008
+ return 'function alOpenBar(u){var o=document.getElementById("al-open");if(o)o.parentNode.removeChild(o);var b=document.createElement("div");b.id="al-open";b.setAttribute("role","status");b.appendChild(document.createTextNode("Open link to "));var a=document.createElement("a");a.href=u.href;a.target="_blank";a.rel="noopener noreferrer";a.textContent=u.host;a.addEventListener("click",function(){setTimeout(function(){if(b.parentNode)b.parentNode.removeChild(b);},0);});b.appendChild(a);var x=document.createElement("button");x.type="button";x.setAttribute("aria-label","Dismiss");x.textContent="\xD7";x.addEventListener("click",function(){if(b.parentNode)b.parentNode.removeChild(b);});b.appendChild(x);document.body.appendChild(b);}window.addEventListener("message",function(e){var f=document.getElementById(' + JSON.stringify(frameId) + ');if(!f||e.source!==f.contentWindow||e.origin!=="null")return;var d=e.data;if(!d||d.type!=="al-open"||typeof d.url!=="string")return;var u;try{u=new URL(d.url);}catch(x){return;}if(u.protocol!=="https:"||u.username||u.password)return;var w=window.open(u.href,"_blank");if(w){try{w.opener=null;}catch(x){}}else{alOpenBar(u);}});';
34009
+ }
34010
+ var WRAPPER_LINK_OPENER = linkOpenerScript("al-doc");
34011
+
34006
34012
  // ../core/dist/integrations/augmented-live/publisher.js
34007
34013
  var PRESENTER_CHROME_SELECTORS = "#al-download, #al-vis, .al-launcher, .al-stats-btn, .al-edit-btn";
34008
34014
  var presenterChromeCss = `
@@ -68,12 +68,12 @@ import {
68
68
  writeDirectChatSessionState,
69
69
  writeEgressAllowlist,
70
70
  writePersistentClaudeWrapper
71
- } from "./chunk-KKK3S2RS.js";
72
- import "./chunk-2HMIFOZU.js";
71
+ } from "./chunk-CJ3KE25W.js";
72
+ import "./chunk-GYY5LC6U.js";
73
73
  import "./chunk-OO36JBFI.js";
74
74
  import "./chunk-6HBXEJHO.js";
75
75
  import "./chunk-XWVM4KPK.js";
76
- import "./chunk-TKFPMB6F.js";
76
+ import "./chunk-M5QY6SXB.js";
77
77
  import "./chunk-AIUIMEUS.js";
78
78
  import "./chunk-DGUM43GV.js";
79
79
  export {
@@ -147,4 +147,4 @@ export {
147
147
  writeEgressAllowlist,
148
148
  writePersistentClaudeWrapper
149
149
  };
150
- //# sourceMappingURL=persistent-session-KW4SEBXV.js.map
150
+ //# sourceMappingURL=persistent-session-NL7N3MA4.js.map
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  paneLogPath
3
- } from "./chunk-KKK3S2RS.js";
4
- import "./chunk-2HMIFOZU.js";
3
+ } from "./chunk-CJ3KE25W.js";
4
+ import "./chunk-GYY5LC6U.js";
5
5
  import "./chunk-OO36JBFI.js";
6
6
  import "./chunk-6HBXEJHO.js";
7
7
  import "./chunk-XWVM4KPK.js";
8
- import "./chunk-TKFPMB6F.js";
8
+ import "./chunk-M5QY6SXB.js";
9
9
  import "./chunk-AIUIMEUS.js";
10
10
  import "./chunk-DGUM43GV.js";
11
11
 
@@ -804,4 +804,4 @@ export {
804
804
  readAndResetSlackReplyBindingClassifications,
805
805
  readAndResetSlackReplyTargetClassifications
806
806
  };
807
- //# sourceMappingURL=responsiveness-probe-34V4HLOQ.js.map
807
+ //# sourceMappingURL=responsiveness-probe-BMLAPOIY.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  sessionTranscriptDir
3
- } from "./chunk-2HMIFOZU.js";
4
- import "./chunk-TKFPMB6F.js";
3
+ } from "./chunk-GYY5LC6U.js";
4
+ import "./chunk-M5QY6SXB.js";
5
5
  import "./chunk-DGUM43GV.js";
6
6
 
7
7
  // src/lib/session-auth-dead.ts
@@ -205,4 +205,4 @@ export {
205
205
  decideSessionAuthState,
206
206
  probeSessionAuth
207
207
  };
208
- //# sourceMappingURL=session-auth-dead-AGNAALKZ.js.map
208
+ //# sourceMappingURL=session-auth-dead-PTHDHHK4.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@integrity-labs/agt-cli",
3
- "version": "0.28.1187",
3
+ "version": "0.28.1189",
4
4
  "description": "Augmented Team CLI — agent provisioning and management",
5
5
  "type": "module",
6
6
  "engines": {