@integrity-labs/agt-cli 0.28.1097 → 0.28.1099

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 (24) hide show
  1. package/dist/bin/agt.js +5 -5
  2. package/dist/{chunk-I7XCW4G6.js → chunk-AVM2BBSX.js} +25 -4
  3. package/dist/chunk-AVM2BBSX.js.map +1 -0
  4. package/dist/{chunk-EGVRUVOF.js → chunk-WQQGPPQW.js} +2 -2
  5. package/dist/{chunk-3RGBEI34.js → chunk-XLY3X6VS.js} +4 -4
  6. package/dist/{claude-pair-runtime-XXBIFMD5.js → claude-pair-runtime-MZXXBNGF.js} +2 -2
  7. package/dist/lib/manager-worker.js +33 -20
  8. package/dist/lib/manager-worker.js.map +1 -1
  9. package/dist/mcp/direct-chat-channel.js +11 -0
  10. package/dist/mcp/index.js +11 -0
  11. package/dist/mcp/origami.js +11 -0
  12. package/dist/mcp/slack-channel.js +11 -0
  13. package/dist/mcp/telegram-channel.js +11 -0
  14. package/dist/{persistent-session-VGORZUKN.js → persistent-session-WHEFQHXF.js} +3 -3
  15. package/dist/{responsiveness-probe-CWOTGPZC.js → responsiveness-probe-WHV2OHXM.js} +3 -3
  16. package/dist/{session-auth-dead-P3AXR4PR.js → session-auth-dead-H3YYJLPC.js} +2 -2
  17. package/package.json +1 -1
  18. package/dist/chunk-I7XCW4G6.js.map +0 -1
  19. /package/dist/{chunk-EGVRUVOF.js.map → chunk-WQQGPPQW.js.map} +0 -0
  20. /package/dist/{chunk-3RGBEI34.js.map → chunk-XLY3X6VS.js.map} +0 -0
  21. /package/dist/{claude-pair-runtime-XXBIFMD5.js.map → claude-pair-runtime-MZXXBNGF.js.map} +0 -0
  22. /package/dist/{persistent-session-VGORZUKN.js.map → persistent-session-WHEFQHXF.js.map} +0 -0
  23. /package/dist/{responsiveness-probe-CWOTGPZC.js.map → responsiveness-probe-WHV2OHXM.js.map} +0 -0
  24. /package/dist/{session-auth-dead-P3AXR4PR.js.map → session-auth-dead-H3YYJLPC.js.map} +0 -0
package/dist/bin/agt.js CHANGED
@@ -40,12 +40,12 @@ import {
40
40
  success,
41
41
  table,
42
42
  warn
43
- } from "../chunk-3RGBEI34.js";
43
+ } from "../chunk-XLY3X6VS.js";
44
44
  import {
45
45
  getProjectDir,
46
46
  isSessionResumeDisabled,
47
47
  readDirectChatSessionState
48
- } from "../chunk-EGVRUVOF.js";
48
+ } from "../chunk-WQQGPPQW.js";
49
49
  import {
50
50
  AnchorSessionClient,
51
51
  CHANNEL_REGISTRY,
@@ -79,7 +79,7 @@ import {
79
79
  serializeManifestForSlackCli,
80
80
  sessionFileExists,
81
81
  sessionTranscriptDir
82
- } from "../chunk-I7XCW4G6.js";
82
+ } from "../chunk-AVM2BBSX.js";
83
83
  import "../chunk-OCMJ5E6J.js";
84
84
  import "../chunk-XWVM4KPK.js";
85
85
  import "../chunk-EL5MWGGH.js";
@@ -5474,7 +5474,7 @@ import { execFileSync, execSync } from "child_process";
5474
5474
  import { existsSync as existsSync11, realpathSync as realpathSync2 } from "fs";
5475
5475
  import chalk18 from "chalk";
5476
5476
  import ora16 from "ora";
5477
- var cliVersion = true ? "0.28.1097" : "dev";
5477
+ var cliVersion = true ? "0.28.1099" : "dev";
5478
5478
  async function fetchLatestVersion() {
5479
5479
  const host2 = getHost();
5480
5480
  if (!host2) return null;
@@ -6734,7 +6734,7 @@ function handleError(err) {
6734
6734
  }
6735
6735
 
6736
6736
  // src/bin/agt.ts
6737
- var cliVersion2 = true ? "0.28.1097" : "dev";
6737
+ var cliVersion2 = true ? "0.28.1099" : "dev";
6738
6738
  var program = new Command();
6739
6739
  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");
6740
6740
  program.hook("preAction", async (thisCommand, actionCommand) => {
@@ -341,6 +341,17 @@ function resolveCanBlock(definitionId, lookup) {
341
341
  }
342
342
  }
343
343
 
344
+ // ../../packages/core/dist/guardrails/email-domains.js
345
+ var EMAIL_GUARD_STAGES = ["shadow", "require_approval", "enforce"];
346
+ var EMAIL_GUARD_STAGE_LABELS = {
347
+ shadow: "Off",
348
+ require_approval: "Require approval",
349
+ enforce: "Block"
350
+ };
351
+ function isEmailGuardStage(value) {
352
+ return EMAIL_GUARD_STAGES.includes(value);
353
+ }
354
+
344
355
  // ../../packages/core/dist/provisioning/platform-storage.js
345
356
  var PLATFORM_STORAGE_RULE = "Store durable, reusable work you build (repeatable procedures, recurring responsibilities, scheduled automation, orchestration scripts) through the Ninjafy platform tools, never as loose local files, unless the user explicitly requests a different destination. Platform artifacts are versioned, reviewable, and survive re-provisioning; loose local files are wiped on the next provision rebuild, reach no one else, and bypass review. Ephemeral scratch files for the task at hand are fine on disk.";
346
357
 
@@ -1109,7 +1120,8 @@ function formatEmailDomainConfigLines(config) {
1109
1120
  const approvalLive = config.approval_live === true;
1110
1121
  const approvalCoveredActions = stringList(config.approval_covered_actions);
1111
1122
  if (stage) {
1112
- lines.push(` - stage: ${stage}`);
1123
+ const stageName = isEmailGuardStage(stage) ? EMAIL_GUARD_STAGE_LABELS[stage] : stage;
1124
+ lines.push(stageName === stage ? ` - setting: ${stage}` : ` - setting: ${stageName} (stage ${stage})`);
1113
1125
  if (stage === "require_approval" && approvalLive) {
1114
1126
  if (approvalCoveredActions.length > 0) {
1115
1127
  lines.push(` *SCOPE - read this before you rely on the hold below. It is not universal. It engages for these mail actions and no others: ${approvalCoveredActions.join(", ")}. Every other route to sending mail is UNHELD and fails open - a provider or tool not named here, a draft-send whose recipients the platform cannot read from the call, a mail rule or filter, or any new integration nobody has wired into the hold yet. Nothing catches those. For them, produce the draft, hand it to a human, and let them send it.*`);
@@ -1349,8 +1361,6 @@ function effectiveEmailEnforcement(g) {
1349
1361
  const enforceLive = g.config?.["enforce_live"] === true;
1350
1362
  if (stage === "enforce" && enforceLive)
1351
1363
  return g.enforcement;
1352
- if (stage === "warn")
1353
- return g.enforcement === "enforce" ? "warn" : g.enforcement;
1354
1364
  if (stage === "require_approval") {
1355
1365
  return g.enforcement === "enforce" ? "warn" : g.enforcement;
1356
1366
  }
@@ -7277,6 +7287,17 @@ var FLAG_REGISTRY = [
7277
7287
  // deliberate, audited per-org flip (ADR-0022 §4).
7278
7288
  sensitive: true
7279
7289
  },
7290
+ {
7291
+ key: "email-guard-sole-decider",
7292
+ description: "ENG-11190 PR1: make the email guardrail (`email.domain_restrict`) the ONLY decider for email sends. Today two gates judge every send: the email guard (by its stage) and the Composio tool-tier HITL (OUTLOOK_SEND_EMAIL / GMAIL_SEND_EMAIL resolve to `write_high_risk`, so every send is held whatever the guard says). Brad, 6 Oct (Two Tractors / Horatio): a guard set to Shadow must not still produce an approval card. When ON for an org, the tier gate stops re-deciding a registered composing email send for an agent that HAS an active email guardrail AND whose stage is in force: the guard, which already ran first in callIntegrationTool and holds or blocks by its own stage, is the verdict. A stage whose enable flag is off (Require approval or Block that is not yet enabled for the org) only observes, so it is NOT a verdict and the tier hold stays (Obi Wan on #6816). An agent with no email guardrail (or a disabled one) keeps the tier hold, so turning this on never removes the only hold an org has. Draft-sends (recipients on the stored draft) keep the tier hold in this slice. Every deferred send is still audited. Evaluated per-org. Ships dark.",
7293
+ flagType: "boolean",
7294
+ // Declared safe value is `false` (both gates, today's behaviour). A flag-DB read error
7295
+ // degrades here, so a flags outage keeps the tier hold rather than silently loosening it.
7296
+ defaultValue: false,
7297
+ // Turning it on lets external email go out WITHOUT the tier hold where the guard allows
7298
+ // it (e.g. Shadow), so it is a deliberate, audited per-org flip (ADR-0022 §4).
7299
+ sensitive: true
7300
+ },
7280
7301
  {
7281
7302
  key: "email-require-approval-enforcement",
7282
7303
  description: 'Enforcement gate for the `email.require_approval` guardrail (ENG-9611). That guardrail has been `default_for_new_orgs` since ~2026-05-03 and its display text promises "Require human approval before sending any email", but nothing ever read it: its only runtime path was toGuardrailForPrompt, i.e. a line in the agent CLAUDE.md. When ON for an org, a DISPATCHING email send (never a draft-create, ENG-7980) is held and routed to Human Approval regardless of recipient domain \u2014 which is what "any email" means, and is what distinguishes it from email-guard-require-approval-enabled, whose require_approval stage only intercepts a would-be DOMAIN block. Deliberately separate from the guardrail row: roughly four months of orgs already carry an inert `enforce`-level row, so reading the row alone would arm a blocking control across all of them on deploy. New orgs are no longer armed (ENG-11234). Orgs created while the ENG-9629/9675 new-org arm was live keep their org-scoped ON override until an operator flips them per org. Evaluated per-org. Ships dark.',
@@ -16519,4 +16540,4 @@ export {
16519
16540
  peekCurrentSession,
16520
16541
  readDailySessionPin
16521
16542
  };
16522
- //# sourceMappingURL=chunk-I7XCW4G6.js.map
16543
+ //# sourceMappingURL=chunk-AVM2BBSX.js.map