@integrity-labs/agt-cli 0.28.1168 → 0.28.1170

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 (31) hide show
  1. package/dist/bin/agt.js +6 -6
  2. package/dist/{chunk-7IAJXJ7C.js → chunk-47P33SZF.js} +8 -1
  3. package/dist/chunk-47P33SZF.js.map +1 -0
  4. package/dist/{chunk-Y4DBRVXD.js → chunk-6UXQEE6G.js} +5 -5
  5. package/dist/{chunk-AV4KD3HE.js → chunk-DJNCIWVG.js} +2 -2
  6. package/dist/{chunk-AJTF72A2.js → chunk-EK6JVOBH.js} +3 -3
  7. package/dist/{chunk-IV2UENRG.js → chunk-JB23A42P.js} +2 -2
  8. package/dist/{claude-code-updater-WD4NNWY5.js → claude-code-updater-PQYMHNQT.js} +3 -3
  9. package/dist/{claude-pair-runtime-JWXVVSSG.js → claude-pair-runtime-RKDNAYEU.js} +3 -3
  10. package/dist/lib/manager-worker.js +19 -19
  11. package/dist/mcp/direct-chat-channel.js +9 -0
  12. package/dist/mcp/index.js +9 -0
  13. package/dist/mcp/origami.js +7 -0
  14. package/dist/mcp/slack-channel.js +9 -0
  15. package/dist/mcp/telegram-channel.js +9 -0
  16. package/dist/mcp/whatsapp-channel.js +10937 -6790
  17. package/dist/mcp/whatsapp-link.js +10906 -6759
  18. package/dist/{persistent-session-LKJVSRHX.js → persistent-session-2365YL7P.js} +4 -4
  19. package/dist/{responsiveness-probe-ZEK2TD5E.js → responsiveness-probe-7HARR32R.js} +4 -4
  20. package/dist/{session-auth-dead-TSARKC55.js → session-auth-dead-2JJLKURE.js} +3 -3
  21. package/package.json +1 -1
  22. package/dist/chunk-7IAJXJ7C.js.map +0 -1
  23. /package/dist/{chunk-Y4DBRVXD.js.map → chunk-6UXQEE6G.js.map} +0 -0
  24. /package/dist/{chunk-AV4KD3HE.js.map → chunk-DJNCIWVG.js.map} +0 -0
  25. /package/dist/{chunk-AJTF72A2.js.map → chunk-EK6JVOBH.js.map} +0 -0
  26. /package/dist/{chunk-IV2UENRG.js.map → chunk-JB23A42P.js.map} +0 -0
  27. /package/dist/{claude-code-updater-WD4NNWY5.js.map → claude-code-updater-PQYMHNQT.js.map} +0 -0
  28. /package/dist/{claude-pair-runtime-JWXVVSSG.js.map → claude-pair-runtime-RKDNAYEU.js.map} +0 -0
  29. /package/dist/{persistent-session-LKJVSRHX.js.map → persistent-session-2365YL7P.js.map} +0 -0
  30. /package/dist/{responsiveness-probe-ZEK2TD5E.js.map → responsiveness-probe-7HARR32R.js.map} +0 -0
  31. /package/dist/{session-auth-dead-TSARKC55.js.map → session-auth-dead-2JJLKURE.js.map} +0 -0
@@ -16,11 +16,11 @@ import {
16
16
  parseEnvFileEntries,
17
17
  parseEnvIntegrations,
18
18
  shellQuote
19
- } from "./chunk-AJTF72A2.js";
19
+ } from "./chunk-EK6JVOBH.js";
20
20
  import {
21
21
  readDailySessionPin,
22
22
  sessionTranscriptDir
23
- } from "./chunk-AV4KD3HE.js";
23
+ } from "./chunk-DJNCIWVG.js";
24
24
  import {
25
25
  classifyUnanswerablePane,
26
26
  isConsumerTermsDialogVisible,
@@ -90,7 +90,7 @@ import {
90
90
  scanConfigForLiteralSecrets,
91
91
  worseConnectivityOutcome,
92
92
  wrapScheduledTaskPrompt
93
- } from "./chunk-7IAJXJ7C.js";
93
+ } from "./chunk-47P33SZF.js";
94
94
  import {
95
95
  claudeJsonPathFor,
96
96
  effectiveClaudeJsonPath,
@@ -8078,7 +8078,7 @@ function exchangeFailureKind(err) {
8078
8078
  }
8079
8079
 
8080
8080
  // src/lib/api-client.ts
8081
- var agtCliVersion = true ? "0.28.1168" : "dev";
8081
+ var agtCliVersion = true ? "0.28.1170" : "dev";
8082
8082
  var lastConfigHash = null;
8083
8083
  function setConfigHash(hash) {
8084
8084
  lastConfigHash = hash && hash.length > 0 ? hash : null;
@@ -13235,4 +13235,4 @@ export {
13235
13235
  managerInstallSystemUnitCommand,
13236
13236
  managerUninstallSystemUnitCommand
13237
13237
  };
13238
- //# sourceMappingURL=chunk-Y4DBRVXD.js.map
13238
+ //# sourceMappingURL=chunk-6UXQEE6G.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  encodeClaudeProjectPath
3
- } from "./chunk-7IAJXJ7C.js";
3
+ } from "./chunk-47P33SZF.js";
4
4
 
5
5
  // src/lib/daily-session.ts
6
6
  import { randomUUID } from "crypto";
@@ -235,4 +235,4 @@ export {
235
235
  peekCurrentSession,
236
236
  readDailySessionPin
237
237
  };
238
- //# sourceMappingURL=chunk-AV4KD3HE.js.map
238
+ //# sourceMappingURL=chunk-DJNCIWVG.js.map
@@ -4,7 +4,7 @@ import {
4
4
  rotateDailySession,
5
5
  sessionFileExists,
6
6
  todayLocalIso
7
- } from "./chunk-AV4KD3HE.js";
7
+ } from "./chunk-DJNCIWVG.js";
8
8
  import {
9
9
  classifyUnanswerablePane,
10
10
  findUsageLimitResetHint,
@@ -47,7 +47,7 @@ import {
47
47
  remoteMcpConnectionEnvInfix,
48
48
  remoteMcpConnectionLabel,
49
49
  remoteMcpConnectionScopedEnvVar
50
- } from "./chunk-7IAJXJ7C.js";
50
+ } from "./chunk-47P33SZF.js";
51
51
  import {
52
52
  CLAUDE_CONFIG_DIR_ENV,
53
53
  archiveLegacyClaudeJson,
@@ -6130,4 +6130,4 @@ export {
6130
6130
  stopAllSessionsAndWait,
6131
6131
  getProjectDir
6132
6132
  };
6133
- //# sourceMappingURL=chunk-AJTF72A2.js.map
6133
+ //# sourceMappingURL=chunk-EK6JVOBH.js.map
@@ -4,7 +4,7 @@ import {
4
4
  } from "./chunk-XWVM4KPK.js";
5
5
  import {
6
6
  FORCED_UPDATE_HARD_DEADLINE_MS
7
- } from "./chunk-7IAJXJ7C.js";
7
+ } from "./chunk-47P33SZF.js";
8
8
  import {
9
9
  effectiveClaudeJsonPath
10
10
  } from "./chunk-EL5MWGGH.js";
@@ -722,4 +722,4 @@ export {
722
722
  probeClaudeInstalls,
723
723
  maybeUpdateClaudeCode
724
724
  };
725
- //# sourceMappingURL=chunk-IV2UENRG.js.map
725
+ //# sourceMappingURL=chunk-JB23A42P.js.map
@@ -13,9 +13,9 @@ import {
13
13
  probeClaudeInstalls,
14
14
  readsAsNativeInstall,
15
15
  shouldRunClaudeCodeUpdater
16
- } from "./chunk-IV2UENRG.js";
16
+ } from "./chunk-JB23A42P.js";
17
17
  import "./chunk-XWVM4KPK.js";
18
- import "./chunk-7IAJXJ7C.js";
18
+ import "./chunk-47P33SZF.js";
19
19
  import "./chunk-EL5MWGGH.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-WD4NNWY5.js.map
37
+ //# sourceMappingURL=claude-code-updater-PQYMHNQT.js.map
@@ -8,7 +8,7 @@ import {
8
8
  import {
9
9
  redactPaneFrame,
10
10
  sanitizeTerminalFrame
11
- } from "./chunk-7IAJXJ7C.js";
11
+ } from "./chunk-47P33SZF.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-LKJVSRHX.js");
324
+ const { resolveClaudeBinary } = await import("./persistent-session-2365YL7P.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-JWXVVSSG.js.map
839
+ //# sourceMappingURL=claude-pair-runtime-RKDNAYEU.js.map
@@ -77,7 +77,7 @@ import {
77
77
  setConfigHash,
78
78
  shellGuard,
79
79
  tripClass
80
- } from "../chunk-Y4DBRVXD.js";
80
+ } from "../chunk-6UXQEE6G.js";
81
81
  import {
82
82
  CLAUDE_CODE_SECURITY_FLOOR,
83
83
  SELF_UPDATE_TIMEOUTS,
@@ -91,7 +91,7 @@ import {
91
91
  runSafeCleanup,
92
92
  tightestDiskStat,
93
93
  withPackageCacheLock
94
- } from "../chunk-IV2UENRG.js";
94
+ } from "../chunk-JB23A42P.js";
95
95
  import {
96
96
  getProjectDir as getProjectDir2,
97
97
  getReadyTasks,
@@ -178,7 +178,7 @@ import {
178
178
  webFetchBaselineValue,
179
179
  webFetchRestartNeeded,
180
180
  writeEgressAllowlist
181
- } from "../chunk-AJTF72A2.js";
181
+ } from "../chunk-EK6JVOBH.js";
182
182
  import {
183
183
  isAgentIdle,
184
184
  isStaleForToday,
@@ -187,7 +187,7 @@ import {
187
187
  sessionTranscriptDir,
188
188
  subagentActivityAgeSeconds,
189
189
  transcriptActivityAgeSeconds
190
- } from "../chunk-AV4KD3HE.js";
190
+ } from "../chunk-DJNCIWVG.js";
191
191
  import {
192
192
  classifyUnanswerablePane,
193
193
  focusedConfirmDialogBlock,
@@ -305,7 +305,7 @@ import {
305
305
  serializeAccountEnforcementMarker,
306
306
  stabiliseResetInstant,
307
307
  sumTranscriptUsageInWindow
308
- } from "../chunk-7IAJXJ7C.js";
308
+ } from "../chunk-47P33SZF.js";
309
309
  import {
310
310
  CLAUDE_CONFIG_DIR_ENV,
311
311
  claudeConfigDirFor,
@@ -15082,7 +15082,7 @@ var pendingDayRolloverReset = /* @__PURE__ */ new Set();
15082
15082
  var dayRolloverInboundHold = /* @__PURE__ */ new Map();
15083
15083
  var INBOUND_HOLD_EPISODE_GAP_MS = 12e4;
15084
15084
  async function channelInboundActivityAgeSecondsFor(codeName) {
15085
- const { newestPendingInboundActivityMtimeMs } = await import("../responsiveness-probe-ZEK2TD5E.js");
15085
+ const { newestPendingInboundActivityMtimeMs } = await import("../responsiveness-probe-7HARR32R.js");
15086
15086
  const newest = newestPendingInboundActivityMtimeMs(dirname11(paneLogPath(codeName)));
15087
15087
  if (newest === null) return null;
15088
15088
  return Math.max(0, Math.floor((Date.now() - newest) / 1e3));
@@ -15878,7 +15878,7 @@ var agentRestartTimezoneInputs = /* @__PURE__ */ new Map();
15878
15878
  var lastVersionCheckAt = 0;
15879
15879
  var VERSION_CHECK_INTERVAL_MS = 5 * 60 * 1e3;
15880
15880
  var lastResponsivenessProbeAt = 0;
15881
- var agtCliVersion = true ? "0.28.1168" : "dev";
15881
+ var agtCliVersion = true ? "0.28.1170" : "dev";
15882
15882
  function resolveBrewPath(execFileSync3) {
15883
15883
  try {
15884
15884
  const out = execFileSync3("which", ["brew"], { timeout: 5e3 }).toString().trim();
@@ -17678,7 +17678,7 @@ function flushRestartedAgentDiagnostics(hostId, codeNames) {
17678
17678
  if (codeNames.length === 0) return;
17679
17679
  void (async () => {
17680
17680
  try {
17681
- const { collectDiagnostics } = await import("../persistent-session-LKJVSRHX.js");
17681
+ const { collectDiagnostics } = await import("../persistent-session-2365YL7P.js");
17682
17682
  await api.post("/host/heartbeat", {
17683
17683
  host_id: hostId,
17684
17684
  agent_diagnostics: collectDiagnostics(codeNames, quarantineEntriesFor, claudeMdSizeFor, spawnOutcomeForDiagnostics, pidPressureFor, forwardedToolsFor, runtimeVersionFor)
@@ -17821,7 +17821,7 @@ async function pollCycleInner() {
17821
17821
  }
17822
17822
  try {
17823
17823
  const { detectHostSecurity } = await import("../host-security-KQYYZZVW.js");
17824
- const { collectDiagnostics } = await import("../persistent-session-LKJVSRHX.js");
17824
+ const { collectDiagnostics } = await import("../persistent-session-2365YL7P.js");
17825
17825
  const diagCodeNames = [...agentState.persistentSessionAgents];
17826
17826
  const agentDiagnostics = diagCodeNames.length > 0 ? collectDiagnostics(diagCodeNames, quarantineEntriesFor, claudeMdSizeFor, spawnOutcomeForDiagnostics, pidPressureFor, forwardedToolsFor, runtimeVersionFor) : void 0;
17827
17827
  let tailscaleHostname;
@@ -18025,7 +18025,7 @@ async function pollCycleInner() {
18025
18025
  setConfigHash(hbResp?.config_hash ?? null);
18026
18026
  try {
18027
18027
  const desiredClaudeCodeVersion = hbResp?.desired_claude_code_version?.trim();
18028
- const { maybeUpdateClaudeCode, shouldRunClaudeCodeUpdater } = await import("../claude-code-updater-WD4NNWY5.js");
18028
+ const { maybeUpdateClaudeCode, shouldRunClaudeCodeUpdater } = await import("../claude-code-updater-PQYMHNQT.js");
18029
18029
  const securityFloor = currentSecurityFloor();
18030
18030
  claudeUpdaterInFlight = true;
18031
18031
  if (desiredClaudeCodeVersion && (claudePairLoop.busy || claudePairingInProgress())) {
@@ -18060,7 +18060,7 @@ async function pollCycleInner() {
18060
18060
  collectPanelessActivityProbes,
18061
18061
  getResponsivenessIntervalMs,
18062
18062
  occupancyQualificationClassifications
18063
- } = await import("../responsiveness-probe-ZEK2TD5E.js");
18063
+ } = await import("../responsiveness-probe-7HARR32R.js");
18064
18064
  const probeIntervalMs = getResponsivenessIntervalMs();
18065
18065
  if (now - lastResponsivenessProbeAt > probeIntervalMs) {
18066
18066
  const probeCodeNames = [...agentState.persistentSessionAgents];
@@ -18177,7 +18177,7 @@ async function pollCycleInner() {
18177
18177
  collectResponsivenessProbes,
18178
18178
  livePendingInboundOldestAgeSeconds,
18179
18179
  parkPendingInbound
18180
- } = await import("../responsiveness-probe-ZEK2TD5E.js");
18180
+ } = await import("../responsiveness-probe-7HARR32R.js");
18181
18181
  const { getProjectDir: wedgeProjectDir } = await import("../scheduler-engine-M6AFZWNU.js");
18182
18182
  const wedgeNow = /* @__PURE__ */ new Date();
18183
18183
  const liveAgents = agentState.persistentSessionAgents;
@@ -18463,7 +18463,7 @@ async function pollCycleInner() {
18463
18463
  }
18464
18464
  }
18465
18465
  );
18466
- const { parkPendingInbound } = await import("../responsiveness-probe-ZEK2TD5E.js");
18466
+ const { parkPendingInbound } = await import("../responsiveness-probe-7HARR32R.js");
18467
18467
  const { parked, deadLettered } = parkPendingInbound(codeName, new Date(fatalNowMs));
18468
18468
  paneFatalStreak.delete(codeName);
18469
18469
  paneFatalRestarts.set(codeName, [...history, fatalNowMs]);
@@ -18494,7 +18494,7 @@ async function pollCycleInner() {
18494
18494
  TRANSCRIPT_MOUNT_ESCALATION_REFRESH_MS,
18495
18495
  bindSourceEscalations
18496
18496
  } = await import("../transcript-mount-health-OHE6IVJV.js");
18497
- const { transcriptBindSourcesFor, ensureTranscriptBindSources } = await import("../persistent-session-LKJVSRHX.js");
18497
+ const { transcriptBindSourcesFor, ensureTranscriptBindSources } = await import("../persistent-session-2365YL7P.js");
18498
18498
  const mountConfig = resolveTranscriptMountConfig();
18499
18499
  const liveAgents = agentState.persistentSessionAgents;
18500
18500
  for (const tracked of [
@@ -18659,7 +18659,7 @@ async function pollCycleInner() {
18659
18659
  }
18660
18660
  try {
18661
18661
  const { scrapeMcpFailedBannerCount } = await import("../pane-mcp-banner-scraper-VR5QGP3J.js");
18662
- const { probeSessionAuth } = await import("../session-auth-dead-TSARKC55.js");
18662
+ const { probeSessionAuth } = await import("../session-auth-dead-2JJLKURE.js");
18663
18663
  const observations = [];
18664
18664
  const pendingCacheCommits = [];
18665
18665
  const modelApiErrorReportingOn = hostFlagStore().getBoolean("model-api-error-reporting");
@@ -23329,7 +23329,7 @@ async function handleRestartDoorbell(agentId, requestedAt, restartReason) {
23329
23329
  try {
23330
23330
  const freshId = rotateSessionForWedge(codeName);
23331
23331
  consecutiveWedgeCycles.delete(codeName);
23332
- const { parkPendingInbound: parkForRestart } = await import("../responsiveness-probe-ZEK2TD5E.js");
23332
+ const { parkPendingInbound: parkForRestart } = await import("../responsiveness-probe-7HARR32R.js");
23333
23333
  const { parked, deadLettered } = parkForRestart(codeName, /* @__PURE__ */ new Date());
23334
23334
  const parkNote = parked > 0 ? `, ${parked} inbound parked` : "";
23335
23335
  const deadNote = deadLettered > 0 ? `, ${deadLettered} undeliverable dead-lettered` : "";
@@ -23372,7 +23372,7 @@ async function handleRestartDoorbell(agentId, requestedAt, restartReason) {
23372
23372
  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}`));
23373
23373
  void (async () => {
23374
23374
  try {
23375
- const { collectDiagnostics } = await import("../persistent-session-LKJVSRHX.js");
23375
+ const { collectDiagnostics } = await import("../persistent-session-2365YL7P.js");
23376
23376
  await api.post("/host/heartbeat", {
23377
23377
  host_id: hostId,
23378
23378
  agent_diagnostics: collectDiagnostics([codeName], quarantineEntriesFor, claudeMdSizeFor, spawnOutcomeForDiagnostics, pidPressureFor, forwardedToolsFor, runtimeVersionFor)
@@ -23423,7 +23423,7 @@ async function respawnAgentAfterMcpStop(codeName, reason) {
23423
23423
  }
23424
23424
  try {
23425
23425
  const hostId = await getHostId();
23426
- const { collectDiagnostics } = await import("../persistent-session-LKJVSRHX.js");
23426
+ const { collectDiagnostics } = await import("../persistent-session-2365YL7P.js");
23427
23427
  await api.post("/host/heartbeat", {
23428
23428
  host_id: hostId,
23429
23429
  agent_diagnostics: collectDiagnostics([codeName], quarantineEntriesFor, claudeMdSizeFor, spawnOutcomeForDiagnostics, pidPressureFor, forwardedToolsFor, runtimeVersionFor)
@@ -24117,7 +24117,7 @@ async function processClaudePairSessions(agents) {
24117
24117
  snapshotPairConfig,
24118
24118
  // ENG-11659: result -> report body + the manager.log line that records it.
24119
24119
  planPairStartReport
24120
- } = await import("../claude-pair-runtime-JWXVVSSG.js");
24120
+ } = await import("../claude-pair-runtime-RKDNAYEU.js");
24121
24121
  const { resetClaudeSignin, describeSigninResetForLog, describeSigninResetFailure } = await import("../claude-signin-reset-EF3UO5IK.js");
24122
24122
  for (const pairId of pendingResp.cancelled_pair_ids ?? []) {
24123
24123
  log(`[claude-pair] sweeping orphan tmux session for pair ${pairId.slice(0, 8)}`);
@@ -41953,6 +41953,9 @@ var INTEGRATION_REGISTRY = [
41953
41953
  {
41954
41954
  id: "custom",
41955
41955
  name: "Custom Integration",
41956
+ // ENG-11767: no toolkit_definitions row, so agents were offering a Connect
41957
+ // card that can only fail.
41958
+ no_connect_path: true,
41956
41959
  category: "custom",
41957
41960
  description: "Connect to any service via API key or webhook",
41958
41961
  supported_auth_types: ["api_key", "webhook", "none"],
@@ -42506,6 +42509,10 @@ var NOTICE_KIND_AUDIENCE = {
42506
42509
  // Second-person instructions to the agent ("Tell the user...", "do not
42507
42510
  // republish"); the user learns the outcome from the agent, not this row.
42508
42511
  canvas_public_approval_resolved: "agent",
42512
+ // ENG-11580: integration.budget.raise approved / denied / approved-but-not-
42513
+ // applied. Addressed to the agent that asked, in that request's session; the
42514
+ // person learns the outcome from the agent (or from the card they tapped).
42515
+ integration_budget_raise_resolved: "agent",
42509
42516
  // A routine fired; the agent picks the work up.
42510
42517
  routine_firing_result: "agent",
42511
42518
  // Live-advisor wake: "Call `live_read` with escalation_id …" — a literal tool
@@ -54000,6 +54007,8 @@ var MAINTENANCE_GATED_TOOLS = /* @__PURE__ */ new Set([
54000
54007
  "onboarding_record_manager_contact",
54001
54008
  "request_batch_approval",
54002
54009
  "request_integration_access",
54010
+ // ENG-11580: files an integration.budget.raise approval row and card.
54011
+ "request_budget_raise",
54003
54012
  "skill_contribute_fragment",
54004
54013
  "skill_create",
54005
54014
  "skill_delete",
package/dist/mcp/index.js CHANGED
@@ -27980,6 +27980,9 @@ var INTEGRATION_REGISTRY = [
27980
27980
  {
27981
27981
  id: "custom",
27982
27982
  name: "Custom Integration",
27983
+ // ENG-11767: no toolkit_definitions row, so agents were offering a Connect
27984
+ // card that can only fail.
27985
+ no_connect_path: true,
27983
27986
  category: "custom",
27984
27987
  description: "Connect to any service via API key or webhook",
27985
27988
  supported_auth_types: ["api_key", "webhook", "none"],
@@ -28370,6 +28373,10 @@ var NOTICE_KIND_AUDIENCE = {
28370
28373
  // Second-person instructions to the agent ("Tell the user...", "do not
28371
28374
  // republish"); the user learns the outcome from the agent, not this row.
28372
28375
  canvas_public_approval_resolved: "agent",
28376
+ // ENG-11580: integration.budget.raise approved / denied / approved-but-not-
28377
+ // applied. Addressed to the agent that asked, in that request's session; the
28378
+ // person learns the outcome from the agent (or from the card they tapped).
28379
+ integration_budget_raise_resolved: "agent",
28373
28380
  // A routine fired; the agent picks the work up.
28374
28381
  routine_firing_result: "agent",
28375
28382
  // Live-advisor wake: "Call `live_read` with escalation_id …" — a literal tool
@@ -47273,6 +47280,8 @@ var MAINTENANCE_GATED_TOOLS = /* @__PURE__ */ new Set([
47273
47280
  "onboarding_record_manager_contact",
47274
47281
  "request_batch_approval",
47275
47282
  "request_integration_access",
47283
+ // ENG-11580: files an integration.budget.raise approval row and card.
47284
+ "request_budget_raise",
47276
47285
  "skill_contribute_fragment",
47277
47286
  "skill_create",
47278
47287
  "skill_delete",
@@ -42110,6 +42110,9 @@ var INTEGRATION_REGISTRY = [
42110
42110
  {
42111
42111
  id: "custom",
42112
42112
  name: "Custom Integration",
42113
+ // ENG-11767: no toolkit_definitions row, so agents were offering a Connect
42114
+ // card that can only fail.
42115
+ no_connect_path: true,
42113
42116
  category: "custom",
42114
42117
  description: "Connect to any service via API key or webhook",
42115
42118
  supported_auth_types: ["api_key", "webhook", "none"],
@@ -42500,6 +42503,10 @@ var NOTICE_KIND_AUDIENCE = {
42500
42503
  // Second-person instructions to the agent ("Tell the user...", "do not
42501
42504
  // republish"); the user learns the outcome from the agent, not this row.
42502
42505
  canvas_public_approval_resolved: "agent",
42506
+ // ENG-11580: integration.budget.raise approved / denied / approved-but-not-
42507
+ // applied. Addressed to the agent that asked, in that request's session; the
42508
+ // person learns the outcome from the agent (or from the card they tapped).
42509
+ integration_budget_raise_resolved: "agent",
42503
42510
  // A routine fired; the agent picks the work up.
42504
42511
  routine_firing_result: "agent",
42505
42512
  // Live-advisor wake: "Call `live_read` with escalation_id …" — a literal tool
@@ -30993,6 +30993,8 @@ var MAINTENANCE_GATED_TOOLS = /* @__PURE__ */ new Set([
30993
30993
  "onboarding_record_manager_contact",
30994
30994
  "request_batch_approval",
30995
30995
  "request_integration_access",
30996
+ // ENG-11580: files an integration.budget.raise approval row and card.
30997
+ "request_budget_raise",
30996
30998
  "skill_contribute_fragment",
30997
30999
  "skill_create",
30998
31000
  "skill_delete",
@@ -36515,6 +36517,9 @@ var INTEGRATION_REGISTRY = [
36515
36517
  {
36516
36518
  id: "custom",
36517
36519
  name: "Custom Integration",
36520
+ // ENG-11767: no toolkit_definitions row, so agents were offering a Connect
36521
+ // card that can only fail.
36522
+ no_connect_path: true,
36518
36523
  category: "custom",
36519
36524
  description: "Connect to any service via API key or webhook",
36520
36525
  supported_auth_types: ["api_key", "webhook", "none"],
@@ -36914,6 +36919,10 @@ var NOTICE_KIND_AUDIENCE = {
36914
36919
  // Second-person instructions to the agent ("Tell the user...", "do not
36915
36920
  // republish"); the user learns the outcome from the agent, not this row.
36916
36921
  canvas_public_approval_resolved: "agent",
36922
+ // ENG-11580: integration.budget.raise approved / denied / approved-but-not-
36923
+ // applied. Addressed to the agent that asked, in that request's session; the
36924
+ // person learns the outcome from the agent (or from the card they tapped).
36925
+ integration_budget_raise_resolved: "agent",
36917
36926
  // A routine fired; the agent picks the work up.
36918
36927
  routine_firing_result: "agent",
36919
36928
  // Live-advisor wake: "Call `live_read` with escalation_id …" — a literal tool
@@ -31210,6 +31210,8 @@ var MAINTENANCE_GATED_TOOLS = /* @__PURE__ */ new Set([
31210
31210
  "onboarding_record_manager_contact",
31211
31211
  "request_batch_approval",
31212
31212
  "request_integration_access",
31213
+ // ENG-11580: files an integration.budget.raise approval row and card.
31214
+ "request_budget_raise",
31213
31215
  "skill_contribute_fragment",
31214
31216
  "skill_create",
31215
31217
  "skill_delete",
@@ -36732,6 +36734,9 @@ var INTEGRATION_REGISTRY = [
36732
36734
  {
36733
36735
  id: "custom",
36734
36736
  name: "Custom Integration",
36737
+ // ENG-11767: no toolkit_definitions row, so agents were offering a Connect
36738
+ // card that can only fail.
36739
+ no_connect_path: true,
36735
36740
  category: "custom",
36736
36741
  description: "Connect to any service via API key or webhook",
36737
36742
  supported_auth_types: ["api_key", "webhook", "none"],
@@ -37125,6 +37130,10 @@ var NOTICE_KIND_AUDIENCE = {
37125
37130
  // Second-person instructions to the agent ("Tell the user...", "do not
37126
37131
  // republish"); the user learns the outcome from the agent, not this row.
37127
37132
  canvas_public_approval_resolved: "agent",
37133
+ // ENG-11580: integration.budget.raise approved / denied / approved-but-not-
37134
+ // applied. Addressed to the agent that asked, in that request's session; the
37135
+ // person learns the outcome from the agent (or from the card they tapped).
37136
+ integration_budget_raise_resolved: "agent",
37128
37137
  // A routine fired; the agent picks the work up.
37129
37138
  routine_firing_result: "agent",
37130
37139
  // Live-advisor wake: "Call `live_read` with escalation_id …" — a literal tool