@integrity-labs/agt-cli 0.28.671 → 0.28.672

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 (27) hide show
  1. package/dist/bin/agt.js +6 -6
  2. package/dist/bin/agt.js.map +1 -1
  3. package/dist/{chunk-ZU2BHLUS.js → chunk-EX6INJDG.js} +20 -76
  4. package/dist/chunk-EX6INJDG.js.map +1 -0
  5. package/dist/{chunk-57XP5OG6.js → chunk-YAVWYI5S.js} +104 -5
  6. package/dist/chunk-YAVWYI5S.js.map +1 -0
  7. package/dist/{chunk-DWFN5PMF.js → chunk-YOID6KOQ.js} +22 -1
  8. package/dist/chunk-YOID6KOQ.js.map +1 -0
  9. package/dist/{claude-pair-runtime-ANNQRKO4.js → claude-pair-runtime-UZ2JB2KY.js} +2 -2
  10. package/dist/lib/manager-worker.js +52 -20
  11. package/dist/lib/manager-worker.js.map +1 -1
  12. package/dist/mcp/direct-chat-channel.js +21 -0
  13. package/dist/mcp/index.js +21 -0
  14. package/dist/mcp/origami.js +21 -0
  15. package/dist/mcp/slack-channel.js +21 -0
  16. package/dist/mcp/telegram-channel.js +21 -0
  17. package/dist/{persistent-session-LTFB4M53.js → persistent-session-PYAJ4VJW.js} +3 -3
  18. package/dist/{responsiveness-probe-P2S3UMRE.js → responsiveness-probe-5I2LIVCA.js} +3 -3
  19. package/dist/{session-auth-dead-YHSQBOB4.js → session-auth-dead-NUX643UJ.js} +2 -2
  20. package/package.json +1 -1
  21. package/dist/chunk-57XP5OG6.js.map +0 -1
  22. package/dist/chunk-DWFN5PMF.js.map +0 -1
  23. package/dist/chunk-ZU2BHLUS.js.map +0 -1
  24. /package/dist/{claude-pair-runtime-ANNQRKO4.js.map → claude-pair-runtime-UZ2JB2KY.js.map} +0 -0
  25. /package/dist/{persistent-session-LTFB4M53.js.map → persistent-session-PYAJ4VJW.js.map} +0 -0
  26. /package/dist/{responsiveness-probe-P2S3UMRE.js.map → responsiveness-probe-5I2LIVCA.js.map} +0 -0
  27. /package/dist/{session-auth-dead-YHSQBOB4.js.map → session-auth-dead-NUX643UJ.js.map} +0 -0
@@ -5526,6 +5526,27 @@ var FLAG_REGISTRY = [
5526
5526
  // consumed by the manager's own logic, not an in-container MCP, so no env materialization.
5527
5527
  defaultValue: false
5528
5528
  },
5529
+ {
5530
+ key: "spawn-inject-channel-secrets",
5531
+ description: "ENG-9350 (host key-management hardening, epic ENG-9347): deliver a managed agent's channel bot tokens (SLACK_BOT_TOKEN, SLACK_APP_TOKEN, TELEGRAM_BOT_TOKEN, MSTEAMS_CLIENT_SECRET) into the Claude Code spawn env via `tmux new-session -e KEY=VALUE` (the same posture as ANTHROPIC_API_KEY / AGT_API_KEY) instead of writing them as plaintext to the on-disk `.env.integrations` file. ON = the manager injects the four channel secrets at spawn and evicts them from `.env.integrations`; the `.mcp.json` `${VAR}` templates are unchanged and now resolve from the spawn env, so the value never touches persistent EBS (and, under Docker isolation, is name-only forwarded into the container the same way AGT_API_KEY is). OFF (default) = today's behaviour, byte-for-byte: the tokens are written to `.env.integrations` (0600) and the wrapper sources them. Resolved host-side by the manager via hostFlagStore().getBooleanForAgent \u2014 the manager owns the spawn path, so no in-container MCP reads this; it materializes the VALUES, not the flag. A channel- token rotation already forces a session respawn (ENG-6062), so the injected value is bound at the same moment the file value used to be \u2014 the two paths are behaviourally equivalent, this one just keeps the plaintext off disk. Ships dark; flip per-agent/ host to soak before fleet convergence, flip OFF to fall back to the file path instantly without a code rollback. Integration credentials + the OAuth remote-MCP live-read proxy deliberately stay on the file (later slices / a permanent bounded carve-out, ADR-0062 Part 5).",
5532
+ flagType: "boolean",
5533
+ // Declared safe value is `false`: the current on-disk `.env.integrations` delivery,
5534
+ // byte-for-byte. `false` is also the fail-safe direction — a flag-store read error must
5535
+ // never silently move a fleet onto the spawn-env path (a bug there = a channel with no
5536
+ // token = a silently dead channel). Net-new gate consumed by the manager's own spawn
5537
+ // logic, not an in-container MCP, so registry-only with NO envVar materialization
5538
+ // (mirrors scheduled-task-nudge-durable). Turning it ON removes plaintext at rest.
5539
+ defaultValue: false,
5540
+ // ENG-7997 flip-reach estimate: `since` is the first agt-cli build whose
5541
+ // dist carries this host-side reader. That build is the one THIS PR's merge
5542
+ // auto-publishes — unknown until then, and every already-published version
5543
+ // (0.28.x) demonstrably lacks the reader (CodeRabbit npm-pack check). An
5544
+ // UNREACHABLE placeholder is the fail-safe: the reach estimate counts zero
5545
+ // hosts as honoring the flip (rather than over-claiming that 0.28.x hosts do,
5546
+ // while they still write tokens to disk). MUST be updated to the actual
5547
+ // published version once the release lands (tracked on ENG-9350).
5548
+ since: "99.0.0"
5549
+ },
5529
5550
  {
5530
5551
  key: "scheduled-task-confirmation-card",
5531
5552
  description: `Post the \u{1F44D}/\u{1F44E} "Task complete?" kanban confirmation card for completed scheduled_task runs (ENG-4576 / ENG-6048). OFF (default) kills these cards fleet-wide: ENG-8072 found they mis-thread onto the run's captured slack_delivery, which in the persistent-session model is frequently a conversational reply rather than the task's own output - so a routine cron's confirmation card lands in an unrelated human thread (e.g. a half-hourly reconciliation card posted into a "you're back online" DM), and a clean cron emits a human \u{1F44D}/\u{1F44E} prompt on every tick regardless. The card was net-negative, so it is disabled by default. Turn it ON per org to restore scheduled-task ratings for a customer who wants them (e.g. a daily digest delivered to a channel). Evaluated per-org in the API (POST /host/runs/finish + the manager rating-prompt route) via getEvaluatedFlags(); the decision is passed into postScheduledTaskKanbanConfirmation. API-only gate - no host env materialization. Ships dark (cards off).`,
@@ -12453,4 +12474,4 @@ export {
12453
12474
  minutesSinceLocalMidnight,
12454
12475
  peekCurrentSession
12455
12476
  };
12456
- //# sourceMappingURL=chunk-DWFN5PMF.js.map
12477
+ //# sourceMappingURL=chunk-YOID6KOQ.js.map