@integrity-labs/agt-cli 0.28.237 → 0.28.239

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 CHANGED
@@ -38,7 +38,7 @@ import {
38
38
  success,
39
39
  table,
40
40
  warn
41
- } from "../chunk-DN4HSL6M.js";
41
+ } from "../chunk-O3MVFYYC.js";
42
42
  import {
43
43
  CHANNEL_REGISTRY,
44
44
  DEFAULT_FRAMEWORK,
@@ -67,7 +67,7 @@ import {
67
67
  renderTemplate,
68
68
  resolveChannels,
69
69
  serializeManifestForSlackCli
70
- } from "../chunk-PYVEJMY2.js";
70
+ } from "../chunk-GO4VMK2P.js";
71
71
  import "../chunk-XWVM4KPK.js";
72
72
 
73
73
  // src/bin/agt.ts
@@ -4826,7 +4826,7 @@ import { execFileSync, execSync } from "child_process";
4826
4826
  import { existsSync as existsSync10, realpathSync as realpathSync2 } from "fs";
4827
4827
  import chalk18 from "chalk";
4828
4828
  import ora16 from "ora";
4829
- var cliVersion = true ? "0.28.237" : "dev";
4829
+ var cliVersion = true ? "0.28.239" : "dev";
4830
4830
  async function fetchLatestVersion() {
4831
4831
  const host2 = getHost();
4832
4832
  if (!host2) return null;
@@ -5840,7 +5840,7 @@ function handleError(err) {
5840
5840
  }
5841
5841
 
5842
5842
  // src/bin/agt.ts
5843
- var cliVersion2 = true ? "0.28.237" : "dev";
5843
+ var cliVersion2 = true ? "0.28.239" : "dev";
5844
5844
  var program = new Command();
5845
5845
  program.name("agt").description("Augmented CLI \u2014 agent provisioning and management").version(cliVersion2).option("--json", "Emit machine-readable JSON output (suppress spinners and colors)").option("--skip-update-check", "Skip the automatic update check on startup");
5846
5846
  program.hook("preAction", async (thisCommand, actionCommand) => {
@@ -3872,11 +3872,12 @@ function resolveConnectivityProbe(input) {
3872
3872
  switch (sourceType) {
3873
3873
  case "mcp_server":
3874
3874
  return {
3875
- kind: "unsupported",
3875
+ kind: "mcp_stdio",
3876
3876
  sourceType: "mcp_server",
3877
3877
  readOnly: true,
3878
- label: `${definitionId}: local-stdio MCP \u2014 no host probe available`,
3879
- centralReachable: false
3878
+ label: `${definitionId}: local-stdio MCP handshake${input.connectivityTest?.tool ? ` + ${input.connectivityTest.tool}` : ""}`,
3879
+ centralReachable: false,
3880
+ ...mcpOverrideFrom(input.connectivityTest)
3880
3881
  };
3881
3882
  case "cli_tool":
3882
3883
  return {
@@ -6959,6 +6960,16 @@ var FLAG_REGISTRY = [
6959
6960
  // flipping it (esp. beyond the canary host) is worth an explicit confirm.
6960
6961
  sensitive: true
6961
6962
  },
6963
+ {
6964
+ key: "block-turn-end-all-markers",
6965
+ description: 'Multi-marker block-turn-end (ENG-7397 / WS3, cross-thread reply routing). Extends channel-block-turn-end from the LAST channel tag to EVERY pending marker across all sources: when ON, the ghost-reply Stop hook enumerates all obligated-and-unanswered inbounds and returns a single {"decision":"block"} listing each owed conversation by inbound_id + source + safe key, so a multi-thread agent is blocked until it answers ALL of them (with WS2 it answers each by inbound_id, no coordinate risk). Requires channel-block-turn-end also ON (the hook self-gates on both). Marker-semantics-neutral: it changes WHEN the hook blocks, arms/clears no markers. The env var AGT_BLOCK_TURN_END_ALL_MARKERS_ENABLED is the operator/canary override the bash hook reads directly (materialized by the manager). Ships dark; canary per host (agt-aws-1, where the multi-thread symptom is chronic) before any fleet flip. OFF (default) = the single-marker last-tag behavior, unchanged.',
6966
+ flagType: "boolean",
6967
+ defaultValue: false,
6968
+ envVar: "AGT_BLOCK_TURN_END_ALL_MARKERS_ENABLED",
6969
+ // Broadens a turn-completion gate across every thread; flipping it beyond the
6970
+ // canary is a high-blast-radius change worth an explicit confirm.
6971
+ sensitive: true
6972
+ },
6962
6973
  {
6963
6974
  key: "ghost-reply-intent-classifier",
6964
6975
  description: "Intentional-non-reply suppression on the ghost-reply RECOVERY path (ENG-7096). The recovery-outbox consumer in the channel MCP only ever fires for turns where the agent ended with text but did NOT call the matching reply tool for that conversation - a set that includes DELIBERATE non-replies (e.g. the agent narrating that the humans in the thread are talking among themselves and it is staying out). When ON, the consumer asks a cheap model (the conversation-eval backend, AGT_CONV_EVAL_*) whether the recovered text is a real message for the user (deliver) or an internal not-replying note (suppress), biased to DELIVER and fail-open, so a classifier outage degrades to today's behaviour, never to a dropped real reply. Boolean gate; ships dark. When OFF the consumer posts every recovered reply exactly as today.",
@@ -7209,6 +7220,19 @@ var FLAG_REGISTRY = [
7209
7220
  // safety control, so mutations require explicit confirmation.
7210
7221
  sensitive: true
7211
7222
  },
7223
+ {
7224
+ key: "slack-reply-binding",
7225
+ description: "Slack reply-target binding (ENG-7396 / WS2, cross-thread reply routing): the model names which inbound it answers (inbound_id) and the server resolves the destination from its own verified record. shadow = classify + count only, routing unchanged; warn = same routing plus a tool-result note so the model self-corrects; enforce = route a bound reply to the registry thread and REJECT a reply whose target matches no inbound this process delivered. The channel server can't evaluate flags, so the manager materializes the resolved value into the AGT_SLACK_REPLY_BINDING spawn env (the operator/canary override, ADR-0022). Ships shadow.",
7226
+ flagType: "enum",
7227
+ allowedValues: ["shadow", "warn", "enforce"],
7228
+ // Declared safe value is `shadow`: observe + count only, no behaviour change.
7229
+ // enforce is the deliberate, audited flip that actually blocks/reroutes.
7230
+ defaultValue: "shadow",
7231
+ envVar: "AGT_SLACK_REPLY_BINDING",
7232
+ // enforce blocks/reroutes egress, so weakening or flipping it is worth an
7233
+ // explicit confirm (ADR-0022 §4).
7234
+ sensitive: true
7235
+ },
7212
7236
  {
7213
7237
  key: "workflows-down-sync",
7214
7238
  description: "Down-sync active dynamic workflows to agents via /host/refresh (ADR-0012, ENG-6352). When on, the API populates the per-agent workflow set (team default \u222A agent override) and the claude-code adapter writes each as .claude/workflows/<name>.js. Boolean gate; ships dark.",
@@ -7320,6 +7344,15 @@ var FLAG_REGISTRY = [
7320
7344
  // Auto-creates an org-admin-equivalent agent in every new org; flipping it on
7321
7345
  // is fleet-shaping and worth an explicit confirm (ADR-0022 §4).
7322
7346
  sensitive: true
7347
+ },
7348
+ {
7349
+ key: "kanban-source-ambiguity-guard",
7350
+ description: "Kanban source ambiguity guard (ENG-7394 / WS1a, Slack cross-thread reply routing). The kanban add path auto-injects source_integration / source_external_id from the recent-inbound cache when the agent omits them. When ON for an org, that fallback only fires when EXACTLY ONE fresh inbound thread exists (read from agent_recent_inbound_sources within the freshness window); two or more live threads inject nothing instead of the most-recent thread, so a concurrent second user's card can't be attributed to the wrong thread. Off (default) = legacy single-slot last-inbound-wins. Evaluated per-org in POST /host/kanban via getEvaluatedFlags(); rollout is a per-org override (no env override - this is an API-route gate, like admin-live-pane). Ships dark.",
7351
+ flagType: "boolean",
7352
+ // Declared safe value is `false`: the fail-safe / absent-flag direction is the
7353
+ // current behaviour (single-slot injection). Turning it ON only makes the
7354
+ // fallback MORE conservative (injects less), so it removes no control.
7355
+ defaultValue: false
7323
7356
  }
7324
7357
  ];
7325
7358
  var REGISTRY_BY_KEY = new Map(FLAG_REGISTRY.map((definition) => [definition.key, definition]));
@@ -9053,4 +9086,4 @@ export {
9053
9086
  stopAllSessionsAndWait,
9054
9087
  getProjectDir
9055
9088
  };
9056
- //# sourceMappingURL=chunk-PYVEJMY2.js.map
9089
+ //# sourceMappingURL=chunk-GO4VMK2P.js.map