@integrity-labs/agt-cli 0.28.1076 → 0.28.1077

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.
@@ -24,7 +24,7 @@ import {
24
24
  rotateDailySession,
25
25
  sessionFileExists,
26
26
  todayLocalIso
27
- } from "./chunk-HE3ZAMGG.js";
27
+ } from "./chunk-4WAUXFY7.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-XNIN4UH6.js.map
6116
+ //# sourceMappingURL=chunk-QNS7N4QX.js.map
@@ -16,7 +16,7 @@ import {
16
16
  parseEnvFileEntries,
17
17
  parseEnvIntegrations,
18
18
  shellQuote
19
- } from "./chunk-XNIN4UH6.js";
19
+ } from "./chunk-QNS7N4QX.js";
20
20
  import {
21
21
  BIND_FAILURE_QUARANTINE_THRESHOLD,
22
22
  INTEGRATIONS_SECTION_END,
@@ -79,7 +79,7 @@ import {
79
79
  sessionTranscriptDir,
80
80
  worseConnectivityOutcome,
81
81
  wrapScheduledTaskPrompt
82
- } from "./chunk-HE3ZAMGG.js";
82
+ } from "./chunk-4WAUXFY7.js";
83
83
  import {
84
84
  classifyUnanswerablePane,
85
85
  isConsumerTermsDialogVisible,
@@ -7122,7 +7122,7 @@ function exchangeFailureKind(err) {
7122
7122
  }
7123
7123
 
7124
7124
  // src/lib/api-client.ts
7125
- var agtCliVersion = true ? "0.28.1076" : "dev";
7125
+ var agtCliVersion = true ? "0.28.1077" : "dev";
7126
7126
  var lastConfigHash = null;
7127
7127
  function setConfigHash(hash) {
7128
7128
  lastConfigHash = hash && hash.length > 0 ? hash : null;
@@ -12095,4 +12095,4 @@ export {
12095
12095
  managerInstallSystemUnitCommand,
12096
12096
  managerUninstallSystemUnitCommand
12097
12097
  };
12098
- //# sourceMappingURL=chunk-DSRPF6KS.js.map
12098
+ //# sourceMappingURL=chunk-RAIBOJ2A.js.map
@@ -266,7 +266,7 @@ async function spawnPairSession(session) {
266
266
  return { ok: true };
267
267
  } catch {
268
268
  }
269
- const { resolveClaudeBinary } = await import("./persistent-session-CZIGY7EZ.js");
269
+ const { resolveClaudeBinary } = await import("./persistent-session-E2NNUB3S.js");
270
270
  const claudeBin = resolveClaudeBinary();
271
271
  const pairEnv = {
272
272
  ...process.env,
@@ -734,4 +734,4 @@ export {
734
734
  startClaudePair,
735
735
  submitClaudePairCode
736
736
  };
737
- //# sourceMappingURL=claude-pair-runtime-JYYBSF2I.js.map
737
+ //# sourceMappingURL=claude-pair-runtime-ZRXCZHYJ.js.map
@@ -67,7 +67,7 @@ import {
67
67
  safeWriteJsonAtomic,
68
68
  setConfigHash,
69
69
  tripClass
70
- } from "../chunk-DSRPF6KS.js";
70
+ } from "../chunk-RAIBOJ2A.js";
71
71
  import {
72
72
  getProjectDir as getProjectDir2,
73
73
  getReadyTasks,
@@ -154,7 +154,7 @@ import {
154
154
  webFetchBaselineValue,
155
155
  webFetchRestartNeeded,
156
156
  writeEgressAllowlist
157
- } from "../chunk-XNIN4UH6.js";
157
+ } from "../chunk-QNS7N4QX.js";
158
158
  import {
159
159
  ACCOUNT_ENFORCEMENT_MARKER_FILENAME,
160
160
  AnchorSessionClient,
@@ -263,7 +263,7 @@ import {
263
263
  subagentActivityAgeSeconds,
264
264
  sumTranscriptUsageInWindow,
265
265
  transcriptActivityAgeSeconds
266
- } from "../chunk-HE3ZAMGG.js";
266
+ } from "../chunk-4WAUXFY7.js";
267
267
  import {
268
268
  classifyUnanswerablePane,
269
269
  paneRemedy
@@ -14141,7 +14141,7 @@ var pendingDayRolloverReset = /* @__PURE__ */ new Set();
14141
14141
  var dayRolloverInboundHold = /* @__PURE__ */ new Map();
14142
14142
  var INBOUND_HOLD_EPISODE_GAP_MS = 12e4;
14143
14143
  async function channelInboundActivityAgeSecondsFor(codeName) {
14144
- const { newestPendingInboundActivityMtimeMs } = await import("../responsiveness-probe-BLLF6RNK.js");
14144
+ const { newestPendingInboundActivityMtimeMs } = await import("../responsiveness-probe-JBERGTQ3.js");
14145
14145
  const newest = newestPendingInboundActivityMtimeMs(dirname11(paneLogPath(codeName)));
14146
14146
  if (newest === null) return null;
14147
14147
  return Math.max(0, Math.floor((Date.now() - newest) / 1e3));
@@ -14899,7 +14899,7 @@ var agentRestartTimezoneInputs = /* @__PURE__ */ new Map();
14899
14899
  var lastVersionCheckAt = 0;
14900
14900
  var VERSION_CHECK_INTERVAL_MS = 5 * 60 * 1e3;
14901
14901
  var lastResponsivenessProbeAt = 0;
14902
- var agtCliVersion = true ? "0.28.1076" : "dev";
14902
+ var agtCliVersion = true ? "0.28.1077" : "dev";
14903
14903
  function resolveBrewPath(execFileSync3) {
14904
14904
  try {
14905
14905
  const out = execFileSync3("which", ["brew"], { timeout: 5e3 }).toString().trim();
@@ -16516,7 +16516,7 @@ function flushRestartedAgentDiagnostics(hostId, codeNames) {
16516
16516
  if (codeNames.length === 0) return;
16517
16517
  void (async () => {
16518
16518
  try {
16519
- const { collectDiagnostics } = await import("../persistent-session-CZIGY7EZ.js");
16519
+ const { collectDiagnostics } = await import("../persistent-session-E2NNUB3S.js");
16520
16520
  await api.post("/host/heartbeat", {
16521
16521
  host_id: hostId,
16522
16522
  agent_diagnostics: collectDiagnostics(codeNames, quarantineEntriesFor, claudeMdSizeFor, spawnOutcomeForDiagnostics, pidPressureFor, forwardedToolsFor, runtimeVersionFor)
@@ -16658,7 +16658,7 @@ async function pollCycleInner() {
16658
16658
  }
16659
16659
  try {
16660
16660
  const { detectHostSecurity } = await import("../host-security-KQYYZZVW.js");
16661
- const { collectDiagnostics } = await import("../persistent-session-CZIGY7EZ.js");
16661
+ const { collectDiagnostics } = await import("../persistent-session-E2NNUB3S.js");
16662
16662
  const diagCodeNames = [...agentState.persistentSessionAgents];
16663
16663
  const agentDiagnostics = diagCodeNames.length > 0 ? collectDiagnostics(diagCodeNames, quarantineEntriesFor, claudeMdSizeFor, spawnOutcomeForDiagnostics, pidPressureFor, forwardedToolsFor, runtimeVersionFor) : void 0;
16664
16664
  let tailscaleHostname;
@@ -16866,7 +16866,7 @@ async function pollCycleInner() {
16866
16866
  collectPanelessActivityProbes,
16867
16867
  getResponsivenessIntervalMs,
16868
16868
  occupancyQualificationClassifications
16869
- } = await import("../responsiveness-probe-BLLF6RNK.js");
16869
+ } = await import("../responsiveness-probe-JBERGTQ3.js");
16870
16870
  const probeIntervalMs = getResponsivenessIntervalMs();
16871
16871
  if (now - lastResponsivenessProbeAt > probeIntervalMs) {
16872
16872
  const probeCodeNames = [...agentState.persistentSessionAgents];
@@ -16983,7 +16983,7 @@ async function pollCycleInner() {
16983
16983
  collectResponsivenessProbes,
16984
16984
  livePendingInboundOldestAgeSeconds,
16985
16985
  parkPendingInbound
16986
- } = await import("../responsiveness-probe-BLLF6RNK.js");
16986
+ } = await import("../responsiveness-probe-JBERGTQ3.js");
16987
16987
  const { getProjectDir: wedgeProjectDir } = await import("../scheduler-engine-M6AFZWNU.js");
16988
16988
  const wedgeNow = /* @__PURE__ */ new Date();
16989
16989
  const liveAgents = agentState.persistentSessionAgents;
@@ -17269,7 +17269,7 @@ async function pollCycleInner() {
17269
17269
  }
17270
17270
  }
17271
17271
  );
17272
- const { parkPendingInbound } = await import("../responsiveness-probe-BLLF6RNK.js");
17272
+ const { parkPendingInbound } = await import("../responsiveness-probe-JBERGTQ3.js");
17273
17273
  const { parked, deadLettered } = parkPendingInbound(codeName, new Date(fatalNowMs));
17274
17274
  paneFatalStreak.delete(codeName);
17275
17275
  paneFatalRestarts.set(codeName, [...history, fatalNowMs]);
@@ -17300,7 +17300,7 @@ async function pollCycleInner() {
17300
17300
  TRANSCRIPT_MOUNT_ESCALATION_REFRESH_MS,
17301
17301
  bindSourceEscalations
17302
17302
  } = await import("../transcript-mount-health-OHE6IVJV.js");
17303
- const { transcriptBindSourcesFor, ensureTranscriptBindSources } = await import("../persistent-session-CZIGY7EZ.js");
17303
+ const { transcriptBindSourcesFor, ensureTranscriptBindSources } = await import("../persistent-session-E2NNUB3S.js");
17304
17304
  const mountConfig = resolveTranscriptMountConfig();
17305
17305
  const liveAgents = agentState.persistentSessionAgents;
17306
17306
  for (const tracked of [
@@ -17465,7 +17465,7 @@ async function pollCycleInner() {
17465
17465
  }
17466
17466
  try {
17467
17467
  const { scrapeMcpFailedBannerCount } = await import("../pane-mcp-banner-scraper-VR5QGP3J.js");
17468
- const { probeSessionAuth } = await import("../session-auth-dead-OQFOVOPC.js");
17468
+ const { probeSessionAuth } = await import("../session-auth-dead-KKW23735.js");
17469
17469
  const observations = [];
17470
17470
  const pendingCacheCommits = [];
17471
17471
  const modelApiErrorReportingOn = hostFlagStore().getBoolean("model-api-error-reporting");
@@ -22030,7 +22030,7 @@ async function handleRestartDoorbell(agentId, requestedAt, restartReason) {
22030
22030
  try {
22031
22031
  const freshId = rotateSessionForWedge(codeName);
22032
22032
  consecutiveWedgeCycles.delete(codeName);
22033
- const { parkPendingInbound: parkForRestart } = await import("../responsiveness-probe-BLLF6RNK.js");
22033
+ const { parkPendingInbound: parkForRestart } = await import("../responsiveness-probe-JBERGTQ3.js");
22034
22034
  const { parked, deadLettered } = parkForRestart(codeName, /* @__PURE__ */ new Date());
22035
22035
  const parkNote = parked > 0 ? `, ${parked} inbound parked` : "";
22036
22036
  const deadNote = deadLettered > 0 ? `, ${deadLettered} undeliverable dead-lettered` : "";
@@ -22073,7 +22073,7 @@ async function handleRestartDoorbell(agentId, requestedAt, restartReason) {
22073
22073
  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}`));
22074
22074
  void (async () => {
22075
22075
  try {
22076
- const { collectDiagnostics } = await import("../persistent-session-CZIGY7EZ.js");
22076
+ const { collectDiagnostics } = await import("../persistent-session-E2NNUB3S.js");
22077
22077
  await api.post("/host/heartbeat", {
22078
22078
  host_id: hostId,
22079
22079
  agent_diagnostics: collectDiagnostics([codeName], quarantineEntriesFor, claudeMdSizeFor, spawnOutcomeForDiagnostics, pidPressureFor, forwardedToolsFor, runtimeVersionFor)
@@ -22124,7 +22124,7 @@ async function respawnAgentAfterMcpStop(codeName, reason) {
22124
22124
  }
22125
22125
  try {
22126
22126
  const hostId = await getHostId();
22127
- const { collectDiagnostics } = await import("../persistent-session-CZIGY7EZ.js");
22127
+ const { collectDiagnostics } = await import("../persistent-session-E2NNUB3S.js");
22128
22128
  await api.post("/host/heartbeat", {
22129
22129
  host_id: hostId,
22130
22130
  agent_diagnostics: collectDiagnostics([codeName], quarantineEntriesFor, claudeMdSizeFor, spawnOutcomeForDiagnostics, pidPressureFor, forwardedToolsFor, runtimeVersionFor)
@@ -22796,7 +22796,7 @@ async function processClaudePairSessions(agents) {
22796
22796
  // cannot take it for itself — by the time it runs, the write it is looking
22797
22797
  // for may already have happened.
22798
22798
  snapshotPairConfig
22799
- } = await import("../claude-pair-runtime-JYYBSF2I.js");
22799
+ } = await import("../claude-pair-runtime-ZRXCZHYJ.js");
22800
22800
  for (const pairId of pendingResp.cancelled_pair_ids ?? []) {
22801
22801
  log(`[claude-pair] sweeping orphan tmux session for pair ${pairId.slice(0, 8)}`);
22802
22802
  const killed = await killPairSession(pairTmuxSession(pairId));
@@ -35359,7 +35359,14 @@ var NOTICE_KIND_AUDIENCE = {
35359
35359
  // text is explicitly second-person to the machine ("you are the only party who
35360
35360
  // can check the fix"). Deliberately out of scope: messaging that end user
35361
35361
  // automatically.
35362
- feature_request_resolved: "agent"
35362
+ feature_request_resolved: "agent",
35363
+ // ENG-11195: a customer replied by email to a support request. 'agent': the
35364
+ // text is second-person to the machine ("decide whether a reply is needed"),
35365
+ // names a raw request id, and carries the customer's email as quoted
35366
+ // UNTRUSTED data. Shown to a human reader in direct chat, it would be
35367
+ // platform-authored instructions addressed to someone else, wrapped around
35368
+ // a stranger's text.
35369
+ support_email_reply: "agent"
35363
35370
  };
35364
35371
  var USER_FACING_KIND_SET = new Set(Object.entries(NOTICE_KIND_AUDIENCE).filter(([, audience]) => audience === "user").map(([kind]) => kind));
35365
35372
  var USER_FACING_NOTICE_KINDS = Object.freeze([
@@ -36714,7 +36721,7 @@ var FLAG_REGISTRY = [
36714
36721
  },
36715
36722
  {
36716
36723
  key: "live-team-only-default",
36717
- description: "Make a NEW Ninja Canvas (Augmented Live) page team-only by default (ENG-11089, ADR-0122): when on, a publish that names no visibility is readable only by signed-in members of the publishing agent's team, and sharing it wider is an explicit choice. Evaluated per-org. Chooses the DEFAULT only: it never changes an existing page, and turning it off never un-protects a page that is already team-only. INERT until ENG-11150 lands - until then every publish is public and a non-public request is refused. Boolean gate; ships dark.",
36724
+ description: "Make a NEW Ninja Canvas (Augmented Live) page team-only by default (ENG-11089, ADR-0122): when on, a publish that names no visibility is readable only by signed-in members of the publishing agent's team, and sharing it wider is an explicit choice. Evaluated per-org. Chooses the DEFAULT only: it never changes an existing page, and turning it off never un-protects a page that is already team-only, and an explicit visibility always wins. The edge can enforce it since ENG-11150; ENG-11094 wires it into the publish default. It is the PLATFORM default: an org's own canvas_default_visibility setting (ENG-11159) wins over it. Boolean gate; ships dark.",
36718
36725
  flagType: "boolean",
36719
36726
  defaultValue: false,
36720
36727
  // An org owner/admin must not arm a confidentiality default before the edge
package/dist/mcp/index.js CHANGED
@@ -27862,7 +27862,14 @@ var NOTICE_KIND_AUDIENCE = {
27862
27862
  // text is explicitly second-person to the machine ("you are the only party who
27863
27863
  // can check the fix"). Deliberately out of scope: messaging that end user
27864
27864
  // automatically.
27865
- feature_request_resolved: "agent"
27865
+ feature_request_resolved: "agent",
27866
+ // ENG-11195: a customer replied by email to a support request. 'agent': the
27867
+ // text is second-person to the machine ("decide whether a reply is needed"),
27868
+ // names a raw request id, and carries the customer's email as quoted
27869
+ // UNTRUSTED data. Shown to a human reader in direct chat, it would be
27870
+ // platform-authored instructions addressed to someone else, wrapped around
27871
+ // a stranger's text.
27872
+ support_email_reply: "agent"
27866
27873
  };
27867
27874
  var USER_FACING_KIND_SET = new Set(Object.entries(NOTICE_KIND_AUDIENCE).filter(([, audience]) => audience === "user").map(([kind]) => kind));
27868
27875
  var USER_FACING_NOTICE_KINDS = Object.freeze([
@@ -28932,7 +28939,7 @@ var FLAG_REGISTRY = [
28932
28939
  },
28933
28940
  {
28934
28941
  key: "live-team-only-default",
28935
- description: "Make a NEW Ninja Canvas (Augmented Live) page team-only by default (ENG-11089, ADR-0122): when on, a publish that names no visibility is readable only by signed-in members of the publishing agent's team, and sharing it wider is an explicit choice. Evaluated per-org. Chooses the DEFAULT only: it never changes an existing page, and turning it off never un-protects a page that is already team-only. INERT until ENG-11150 lands - until then every publish is public and a non-public request is refused. Boolean gate; ships dark.",
28942
+ description: "Make a NEW Ninja Canvas (Augmented Live) page team-only by default (ENG-11089, ADR-0122): when on, a publish that names no visibility is readable only by signed-in members of the publishing agent's team, and sharing it wider is an explicit choice. Evaluated per-org. Chooses the DEFAULT only: it never changes an existing page, and turning it off never un-protects a page that is already team-only, and an explicit visibility always wins. The edge can enforce it since ENG-11150; ENG-11094 wires it into the publish default. It is the PLATFORM default: an org's own canvas_default_visibility setting (ENG-11159) wins over it. Boolean gate; ships dark.",
28936
28943
  flagType: "boolean",
28937
28944
  defaultValue: false,
28938
28945
  // An org owner/admin must not arm a confidentiality default before the edge
@@ -47016,7 +47023,9 @@ function registerApprovalTools(server2, deps) {
47016
47023
  summary: external_exports.string().min(1).max(280).describe('One line describing the action you want approved (shown to the approver). E.g. "Send the Q3 report to the external auditor".'),
47017
47024
  reason: external_exports.string().min(1).max(280).describe("Why you need it / context for the approver. Keep it specific."),
47018
47025
  idempotency_key: external_exports.string().min(1).max(200).describe("A stable exactly-once key YOU choose for this ask (e.g. a task id + action). Retrying with the same key + same details re-attaches to the same request instead of filing a duplicate."),
47019
- detail: external_exports.record(external_exports.unknown()).optional().describe("Optional structured context for the approver (display + audit only; never executed)."),
47026
+ detail: external_exports.record(external_exports.unknown()).optional().describe(
47027
+ "Optional structured context for the approver (display + audit only; never executed). When the action is sending an email, include email: { to, from, subject } (to: an address or a list of them; from: the mailbox it goes out from) so the approval card shows From / To / Subject. Asking again with a different detail under the same idempotency_key is a different request."
47028
+ ),
47020
47029
  ttl_seconds: external_exports.number().int().optional().describe("How long the request stays open before it times out (default 3600; clamped to [60, 86400]).")
47021
47030
  },
47022
47031
  async (params) => {
@@ -41988,7 +41988,14 @@ var NOTICE_KIND_AUDIENCE = {
41988
41988
  // text is explicitly second-person to the machine ("you are the only party who
41989
41989
  // can check the fix"). Deliberately out of scope: messaging that end user
41990
41990
  // automatically.
41991
- feature_request_resolved: "agent"
41991
+ feature_request_resolved: "agent",
41992
+ // ENG-11195: a customer replied by email to a support request. 'agent': the
41993
+ // text is second-person to the machine ("decide whether a reply is needed"),
41994
+ // names a raw request id, and carries the customer's email as quoted
41995
+ // UNTRUSTED data. Shown to a human reader in direct chat, it would be
41996
+ // platform-authored instructions addressed to someone else, wrapped around
41997
+ // a stranger's text.
41998
+ support_email_reply: "agent"
41992
41999
  };
41993
42000
  var USER_FACING_KIND_SET = new Set(Object.entries(NOTICE_KIND_AUDIENCE).filter(([, audience]) => audience === "user").map(([kind]) => kind));
41994
42001
  var USER_FACING_NOTICE_KINDS = Object.freeze([
@@ -42855,7 +42862,7 @@ var FLAG_REGISTRY = [
42855
42862
  },
42856
42863
  {
42857
42864
  key: "live-team-only-default",
42858
- description: "Make a NEW Ninja Canvas (Augmented Live) page team-only by default (ENG-11089, ADR-0122): when on, a publish that names no visibility is readable only by signed-in members of the publishing agent's team, and sharing it wider is an explicit choice. Evaluated per-org. Chooses the DEFAULT only: it never changes an existing page, and turning it off never un-protects a page that is already team-only. INERT until ENG-11150 lands - until then every publish is public and a non-public request is refused. Boolean gate; ships dark.",
42865
+ description: "Make a NEW Ninja Canvas (Augmented Live) page team-only by default (ENG-11089, ADR-0122): when on, a publish that names no visibility is readable only by signed-in members of the publishing agent's team, and sharing it wider is an explicit choice. Evaluated per-org. Chooses the DEFAULT only: it never changes an existing page, and turning it off never un-protects a page that is already team-only, and an explicit visibility always wins. The edge can enforce it since ENG-11150; ENG-11094 wires it into the publish default. It is the PLATFORM default: an org's own canvas_default_visibility setting (ENG-11159) wins over it. Boolean gate; ships dark.",
42859
42866
  flagType: "boolean",
42860
42867
  defaultValue: false,
42861
42868
  // An org owner/admin must not arm a confidentiality default before the edge
@@ -36205,7 +36205,14 @@ var NOTICE_KIND_AUDIENCE = {
36205
36205
  // text is explicitly second-person to the machine ("you are the only party who
36206
36206
  // can check the fix"). Deliberately out of scope: messaging that end user
36207
36207
  // automatically.
36208
- feature_request_resolved: "agent"
36208
+ feature_request_resolved: "agent",
36209
+ // ENG-11195: a customer replied by email to a support request. 'agent': the
36210
+ // text is second-person to the machine ("decide whether a reply is needed"),
36211
+ // names a raw request id, and carries the customer's email as quoted
36212
+ // UNTRUSTED data. Shown to a human reader in direct chat, it would be
36213
+ // platform-authored instructions addressed to someone else, wrapped around
36214
+ // a stranger's text.
36215
+ support_email_reply: "agent"
36209
36216
  };
36210
36217
  var USER_FACING_KIND_SET = new Set(Object.entries(NOTICE_KIND_AUDIENCE).filter(([, audience]) => audience === "user").map(([kind]) => kind));
36211
36218
  var USER_FACING_NOTICE_KINDS = Object.freeze([
@@ -37485,7 +37492,7 @@ var FLAG_REGISTRY = [
37485
37492
  },
37486
37493
  {
37487
37494
  key: "live-team-only-default",
37488
- description: "Make a NEW Ninja Canvas (Augmented Live) page team-only by default (ENG-11089, ADR-0122): when on, a publish that names no visibility is readable only by signed-in members of the publishing agent's team, and sharing it wider is an explicit choice. Evaluated per-org. Chooses the DEFAULT only: it never changes an existing page, and turning it off never un-protects a page that is already team-only. INERT until ENG-11150 lands - until then every publish is public and a non-public request is refused. Boolean gate; ships dark.",
37495
+ description: "Make a NEW Ninja Canvas (Augmented Live) page team-only by default (ENG-11089, ADR-0122): when on, a publish that names no visibility is readable only by signed-in members of the publishing agent's team, and sharing it wider is an explicit choice. Evaluated per-org. Chooses the DEFAULT only: it never changes an existing page, and turning it off never un-protects a page that is already team-only, and an explicit visibility always wins. The edge can enforce it since ENG-11150; ENG-11094 wires it into the publish default. It is the PLATFORM default: an org's own canvas_default_visibility setting (ENG-11159) wins over it. Boolean gate; ships dark.",
37489
37496
  flagType: "boolean",
37490
37497
  defaultValue: false,
37491
37498
  // An org owner/admin must not arm a confidentiality default before the edge
@@ -36311,7 +36311,14 @@ var NOTICE_KIND_AUDIENCE = {
36311
36311
  // text is explicitly second-person to the machine ("you are the only party who
36312
36312
  // can check the fix"). Deliberately out of scope: messaging that end user
36313
36313
  // automatically.
36314
- feature_request_resolved: "agent"
36314
+ feature_request_resolved: "agent",
36315
+ // ENG-11195: a customer replied by email to a support request. 'agent': the
36316
+ // text is second-person to the machine ("decide whether a reply is needed"),
36317
+ // names a raw request id, and carries the customer's email as quoted
36318
+ // UNTRUSTED data. Shown to a human reader in direct chat, it would be
36319
+ // platform-authored instructions addressed to someone else, wrapped around
36320
+ // a stranger's text.
36321
+ support_email_reply: "agent"
36315
36322
  };
36316
36323
  var USER_FACING_KIND_SET = new Set(Object.entries(NOTICE_KIND_AUDIENCE).filter(([, audience]) => audience === "user").map(([kind]) => kind));
36317
36324
  var USER_FACING_NOTICE_KINDS = Object.freeze([
@@ -37591,7 +37598,7 @@ var FLAG_REGISTRY = [
37591
37598
  },
37592
37599
  {
37593
37600
  key: "live-team-only-default",
37594
- description: "Make a NEW Ninja Canvas (Augmented Live) page team-only by default (ENG-11089, ADR-0122): when on, a publish that names no visibility is readable only by signed-in members of the publishing agent's team, and sharing it wider is an explicit choice. Evaluated per-org. Chooses the DEFAULT only: it never changes an existing page, and turning it off never un-protects a page that is already team-only. INERT until ENG-11150 lands - until then every publish is public and a non-public request is refused. Boolean gate; ships dark.",
37601
+ description: "Make a NEW Ninja Canvas (Augmented Live) page team-only by default (ENG-11089, ADR-0122): when on, a publish that names no visibility is readable only by signed-in members of the publishing agent's team, and sharing it wider is an explicit choice. Evaluated per-org. Chooses the DEFAULT only: it never changes an existing page, and turning it off never un-protects a page that is already team-only, and an explicit visibility always wins. The edge can enforce it since ENG-11150; ENG-11094 wires it into the publish default. It is the PLATFORM default: an org's own canvas_default_visibility setting (ENG-11159) wins over it. Boolean gate; ships dark.",
37595
37602
  flagType: "boolean",
37596
37603
  defaultValue: false,
37597
37604
  // An org owner/admin must not arm a confidentiality default before the edge
@@ -68,8 +68,8 @@ import {
68
68
  writeDirectChatSessionState,
69
69
  writeEgressAllowlist,
70
70
  writePersistentClaudeWrapper
71
- } from "./chunk-XNIN4UH6.js";
72
- import "./chunk-HE3ZAMGG.js";
71
+ } from "./chunk-QNS7N4QX.js";
72
+ import "./chunk-4WAUXFY7.js";
73
73
  import "./chunk-OCMJ5E6J.js";
74
74
  import "./chunk-XWVM4KPK.js";
75
75
  import "./chunk-EL5MWGGH.js";
@@ -145,4 +145,4 @@ export {
145
145
  writeEgressAllowlist,
146
146
  writePersistentClaudeWrapper
147
147
  };
148
- //# sourceMappingURL=persistent-session-CZIGY7EZ.js.map
148
+ //# sourceMappingURL=persistent-session-E2NNUB3S.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  paneLogPath
3
- } from "./chunk-XNIN4UH6.js";
4
- import "./chunk-HE3ZAMGG.js";
3
+ } from "./chunk-QNS7N4QX.js";
4
+ import "./chunk-4WAUXFY7.js";
5
5
  import "./chunk-OCMJ5E6J.js";
6
6
  import "./chunk-XWVM4KPK.js";
7
7
  import "./chunk-EL5MWGGH.js";
@@ -802,4 +802,4 @@ export {
802
802
  readAndResetSlackReplyBindingClassifications,
803
803
  readAndResetSlackReplyTargetClassifications
804
804
  };
805
- //# sourceMappingURL=responsiveness-probe-BLLF6RNK.js.map
805
+ //# sourceMappingURL=responsiveness-probe-JBERGTQ3.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  sessionTranscriptDir
3
- } from "./chunk-HE3ZAMGG.js";
3
+ } from "./chunk-4WAUXFY7.js";
4
4
  import "./chunk-DGUM43GV.js";
5
5
 
6
6
  // src/lib/session-auth-dead.ts
@@ -204,4 +204,4 @@ export {
204
204
  decideSessionAuthState,
205
205
  probeSessionAuth
206
206
  };
207
- //# sourceMappingURL=session-auth-dead-OQFOVOPC.js.map
207
+ //# sourceMappingURL=session-auth-dead-KKW23735.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@integrity-labs/agt-cli",
3
- "version": "0.28.1076",
3
+ "version": "0.28.1077",
4
4
  "description": "Augmented Team CLI — agent provisioning and management",
5
5
  "type": "module",
6
6
  "engines": {