@integrity-labs/agt-cli 0.28.859 → 0.28.861

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 (26) hide show
  1. package/dist/bin/agt.js +5 -5
  2. package/dist/{chunk-R2NHRLD7.js → chunk-G23CONQJ.js} +2 -2
  3. package/dist/{chunk-JTDX6A6V.js → chunk-IQROQ3XJ.js} +382 -130
  4. package/dist/chunk-IQROQ3XJ.js.map +1 -0
  5. package/dist/{chunk-FJ372WWE.js → chunk-USHD2L3F.js} +47 -10
  6. package/dist/chunk-USHD2L3F.js.map +1 -0
  7. package/dist/{claude-pair-runtime-SC2TO4SG.js → claude-pair-runtime-6FJOWTEX.js} +2 -2
  8. package/dist/lib/manager-worker.js +35 -16
  9. package/dist/lib/manager-worker.js.map +1 -1
  10. package/dist/mcp/augmented-admin.js +1 -1
  11. package/dist/mcp/direct-chat-channel.js +46 -9
  12. package/dist/mcp/index.js +46 -9
  13. package/dist/mcp/origami.js +46 -9
  14. package/dist/mcp/slack-channel.js +46 -9
  15. package/dist/mcp/telegram-channel.js +46 -9
  16. package/dist/{persistent-session-6ZJR4HYE.js → persistent-session-6DET4JLF.js} +3 -3
  17. package/dist/{responsiveness-probe-UIYBJC7G.js → responsiveness-probe-ZNKOWUIE.js} +3 -3
  18. package/dist/{session-auth-dead-S6QREVV3.js → session-auth-dead-XU7VC6HM.js} +2 -2
  19. package/package.json +1 -1
  20. package/dist/chunk-FJ372WWE.js.map +0 -1
  21. package/dist/chunk-JTDX6A6V.js.map +0 -1
  22. /package/dist/{chunk-R2NHRLD7.js.map → chunk-G23CONQJ.js.map} +0 -0
  23. /package/dist/{claude-pair-runtime-SC2TO4SG.js.map → claude-pair-runtime-6FJOWTEX.js.map} +0 -0
  24. /package/dist/{persistent-session-6ZJR4HYE.js.map → persistent-session-6DET4JLF.js.map} +0 -0
  25. /package/dist/{responsiveness-probe-UIYBJC7G.js.map → responsiveness-probe-ZNKOWUIE.js.map} +0 -0
  26. /package/dist/{session-auth-dead-S6QREVV3.js.map → session-auth-dead-XU7VC6HM.js.map} +0 -0
@@ -21693,7 +21693,7 @@ server.registerTool(
21693
21693
  );
21694
21694
  server.registerTool(
21695
21695
  "debug_list_alerts",
21696
- { description: "List recent platform alerts across authorized orgs (host-down, agent-stale, probe-timeout, auth-failed), including NULL-team host alerts. Returns a projection per alert (kind, severity, message, source, open/closed state), plus { count, total, truncated } \u2014 `total` is the matches before the 100-row cap, so `truncated: true` means you are NOT seeing everything. Filter with { kind, severity, open, limit }. **Use `kind` to find older alerts**: results are newest-first and hard-capped at 100, so on a busy board an alert below that cutoff is unreachable without it (ENG-8566: 12 slack_manifest_drift warnings sat unfindable for 48 days for exactly this reason).", inputSchema: listAlertsSchema },
21696
+ { description: "List recent platform alerts across authorized orgs (host-down, agent-stale, probe-timeout, auth-failed), including NULL-team host alerts. Returns a projection per alert (kind, severity, message, source, open/closed state), plus { count, total, truncated } \u2014 `total` is the matches before the 100-row cap, so `truncated: true` means you are NOT seeing everything. Filter with { kind, severity, open, limit }. **ENG-10030 \u2014 two fields that change how you read `message`.** `dedupe_key` is the alert's identity (`<kind>:<subject id>`), so it tells you which ROW an alert is about, not just which agent. `updated_at` tells you whether `message` is CURRENT: `open_alert` overwrites `message` on every re-raise but never touches `opened_at`, so a message is a snapshot unless the monitor re-raised that `(kind, dedupe_key)` since the alert opened \u2014 and it reads like live output either way. ONE DIRECTION IS PROOF, THE OTHER IS A HINT: `updated_at === opened_at` is CONCLUSIVE (never written since insert, so never re-raised, so `message` is frozen at `opened_at` \u2014 check this before proposing a fix for what a message describes, because the code may have moved since); `updated_at > opened_at` is SUGGESTIVE ONLY, because the `alerts_set_updated_at` trigger fires on EVERY write \u2014 an acknowledge, a snooze, a close, or a backfill migration. Compare against `acknowledged_at` / `snoozed_until` / `closed_at`: if `updated_at` matches one of them, that write was the human action, not a re-raise. Matching NONE of them is evidence of a re-raise but not proof, because a migration that touches the row leaves no timestamp of its own. Reading it as a biconditional is expensive: on one measured board 63 of 98 open alerts were acknowledged, so ~64% would falsely report current text. Two reads an hour apart remain the only unambiguous positive test. **Use `kind` to find older alerts**: results are newest-first and hard-capped at 100, so on a busy board an alert below that cutoff is unreachable without it (ENG-8566: 12 slack_manifest_drift warnings sat unfindable for 48 days for exactly this reason).", inputSchema: listAlertsSchema },
21697
21697
  async (args) => {
21698
21698
  try {
21699
21699
  const result = await client.listAlerts(args);
@@ -34792,6 +34792,42 @@ var STUCK_RESTART_THRESHOLD_SECONDS = 15 * 60;
34792
34792
  var DAILY_MEMORY_TTL_HOURS = 48;
34793
34793
  var DAILY_MEMORY_TTL_MS = DAILY_MEMORY_TTL_HOURS * 60 * 60 * 1e3;
34794
34794
 
34795
+ // ../core/dist/voice/grok-voices.js
34796
+ var GROK_VOICE_ORIGINAL = [
34797
+ { id: "eve", label: "Eve (Female)" },
34798
+ { id: "ara", label: "Ara (Female)" },
34799
+ { id: "rex", label: "Rex (Male)" },
34800
+ { id: "sal", label: "Sal (Neutral)" },
34801
+ { id: "leo", label: "Leo (Male)" }
34802
+ ];
34803
+ var GROK_VOICE_ADDED_2026_07 = [
34804
+ { id: "carina", label: "Carina" },
34805
+ { id: "zagan", label: "Zagan" },
34806
+ { id: "helix", label: "Helix" },
34807
+ { id: "orion", label: "Orion" },
34808
+ { id: "luna", label: "Luna" },
34809
+ { id: "iris", label: "Iris" },
34810
+ { id: "altair", label: "Altair" },
34811
+ { id: "zenith", label: "Zenith" },
34812
+ { id: "perseus", label: "Perseus" },
34813
+ { id: "helios", label: "Helios" },
34814
+ { id: "lux", label: "Lux" },
34815
+ { id: "kepler", label: "Kepler" },
34816
+ { id: "rigel", label: "Rigel" },
34817
+ { id: "cosmo", label: "Cosmo" },
34818
+ { id: "celeste", label: "Celeste" },
34819
+ { id: "ursa", label: "Ursa" },
34820
+ { id: "sirius", label: "Sirius" },
34821
+ { id: "lumen", label: "Lumen" },
34822
+ { id: "castor", label: "Castor" },
34823
+ { id: "naksh", label: "Naksh" },
34824
+ { id: "atlas", label: "Atlas" }
34825
+ ];
34826
+ var GROK_VOICE_OPTIONS = [
34827
+ ...GROK_VOICE_ORIGINAL,
34828
+ ...GROK_VOICE_ADDED_2026_07
34829
+ ];
34830
+
34795
34831
  // ../core/dist/scheduled-tasks/prompt-wrapper.js
34796
34832
  var PREAMBLE_HEAD = [
34797
34833
  "[SCHEDULED TASK \u2014 EXECUTION MODE]",
@@ -36753,15 +36789,16 @@ var FLAG_REGISTRY = [
36753
36789
  // pre-flags env gate to migrate (ADR-0022).
36754
36790
  defaultValue: false
36755
36791
  },
36756
- {
36757
- key: "skill-draft-review-notify",
36758
- description: "Pending skill-draft review nudge (ENG-6505): when a skill lands as a status=draft awaiting operator review, send a low-severity informational notification to the right reviewer(s) by scope \u2014 agent-scoped \u2192 the agent's manager (reports_to_person), falling back to team owners/admins; team-scoped \u2192 team owners/admins; org-scoped \u2192 org owners/admins \u2014 with a deep link to the Pending Skills card. Distinct from (and never doubles up on) the HIGH+ SkillSpector security alert. Covers both the agent-authored (ENG-4589) and skill-dreaming (ENG-6500) draft paths. Boolean gate; ships dark \u2014 when off no nudge is sent, so the steady state until an org is armed is silence.",
36759
- flagType: "boolean",
36760
- // Declared safe value is `false` (no nudge). Fail-safe direction: a flag-DB
36761
- // read error must never start DMing humans on its own. No envVar — net-new
36762
- // control with no pre-flags env gate to migrate (ADR-0022).
36763
- defaultValue: false
36764
- },
36792
+ // ENG-9849 (ADR-0081 decision 5): `skill-draft-review-notify` was archived
36793
+ // here. Its rail — a plain-text Slack DM nudge with no channel concept, no
36794
+ // platform discriminator and no approval lifecycle — is replaced by the
36795
+ // `skill.publish` approval verb, so skill review now has one rail rather than
36796
+ // two. Archived rather than deleted: migration 20260908000001 sets
36797
+ // `archived_at` on the prod row, which was globally `true` from 2026-06-21, so
36798
+ // the row stops resolving instead of silently continuing to evaluate against a
36799
+ // key no code reads. The reviewer resolution it owned survives in
36800
+ // `skill-review-recipients.ts` and is what the new rail falls back to when an
36801
+ // org has no `approval_routes` row.
36765
36802
  {
36766
36803
  key: "skill-fragments",
36767
36804
  description: "Agent-contributed additive skill fragments (ENG-6811, epic ENG-6805 P2a): when on, an agent can propose an additive fragment for a shared (team/org) skill via the skill_contribute_fragment MCP tool; accepted fragments compose into the parent skill's delivered body in one delimited region at /host/refresh. This is the per-org activation gate for the whole additive path - it gates BOTH the contribute tool (off = soft-refuse, no fragment is created) AND compose-at-refresh (off = agents receive the core body only), so flipping it off is a clean kill switch that reverts shared skills to operator-owned content. Boolean gate; ships dark.",
package/dist/mcp/index.js CHANGED
@@ -27288,6 +27288,42 @@ var STUCK_RESTART_THRESHOLD_SECONDS = 15 * 60;
27288
27288
  var DAILY_MEMORY_TTL_HOURS = 48;
27289
27289
  var DAILY_MEMORY_TTL_MS = DAILY_MEMORY_TTL_HOURS * 60 * 60 * 1e3;
27290
27290
 
27291
+ // ../core/dist/voice/grok-voices.js
27292
+ var GROK_VOICE_ORIGINAL = [
27293
+ { id: "eve", label: "Eve (Female)" },
27294
+ { id: "ara", label: "Ara (Female)" },
27295
+ { id: "rex", label: "Rex (Male)" },
27296
+ { id: "sal", label: "Sal (Neutral)" },
27297
+ { id: "leo", label: "Leo (Male)" }
27298
+ ];
27299
+ var GROK_VOICE_ADDED_2026_07 = [
27300
+ { id: "carina", label: "Carina" },
27301
+ { id: "zagan", label: "Zagan" },
27302
+ { id: "helix", label: "Helix" },
27303
+ { id: "orion", label: "Orion" },
27304
+ { id: "luna", label: "Luna" },
27305
+ { id: "iris", label: "Iris" },
27306
+ { id: "altair", label: "Altair" },
27307
+ { id: "zenith", label: "Zenith" },
27308
+ { id: "perseus", label: "Perseus" },
27309
+ { id: "helios", label: "Helios" },
27310
+ { id: "lux", label: "Lux" },
27311
+ { id: "kepler", label: "Kepler" },
27312
+ { id: "rigel", label: "Rigel" },
27313
+ { id: "cosmo", label: "Cosmo" },
27314
+ { id: "celeste", label: "Celeste" },
27315
+ { id: "ursa", label: "Ursa" },
27316
+ { id: "sirius", label: "Sirius" },
27317
+ { id: "lumen", label: "Lumen" },
27318
+ { id: "castor", label: "Castor" },
27319
+ { id: "naksh", label: "Naksh" },
27320
+ { id: "atlas", label: "Atlas" }
27321
+ ];
27322
+ var GROK_VOICE_OPTIONS = [
27323
+ ...GROK_VOICE_ORIGINAL,
27324
+ ...GROK_VOICE_ADDED_2026_07
27325
+ ];
27326
+
27291
27327
  // ../core/dist/cron-coverage.js
27292
27328
  function expandCronField(field, min, max) {
27293
27329
  const out = /* @__PURE__ */ new Set();
@@ -29048,15 +29084,16 @@ var FLAG_REGISTRY = [
29048
29084
  // pre-flags env gate to migrate (ADR-0022).
29049
29085
  defaultValue: false
29050
29086
  },
29051
- {
29052
- key: "skill-draft-review-notify",
29053
- description: "Pending skill-draft review nudge (ENG-6505): when a skill lands as a status=draft awaiting operator review, send a low-severity informational notification to the right reviewer(s) by scope \u2014 agent-scoped \u2192 the agent's manager (reports_to_person), falling back to team owners/admins; team-scoped \u2192 team owners/admins; org-scoped \u2192 org owners/admins \u2014 with a deep link to the Pending Skills card. Distinct from (and never doubles up on) the HIGH+ SkillSpector security alert. Covers both the agent-authored (ENG-4589) and skill-dreaming (ENG-6500) draft paths. Boolean gate; ships dark \u2014 when off no nudge is sent, so the steady state until an org is armed is silence.",
29054
- flagType: "boolean",
29055
- // Declared safe value is `false` (no nudge). Fail-safe direction: a flag-DB
29056
- // read error must never start DMing humans on its own. No envVar — net-new
29057
- // control with no pre-flags env gate to migrate (ADR-0022).
29058
- defaultValue: false
29059
- },
29087
+ // ENG-9849 (ADR-0081 decision 5): `skill-draft-review-notify` was archived
29088
+ // here. Its rail — a plain-text Slack DM nudge with no channel concept, no
29089
+ // platform discriminator and no approval lifecycle — is replaced by the
29090
+ // `skill.publish` approval verb, so skill review now has one rail rather than
29091
+ // two. Archived rather than deleted: migration 20260908000001 sets
29092
+ // `archived_at` on the prod row, which was globally `true` from 2026-06-21, so
29093
+ // the row stops resolving instead of silently continuing to evaluate against a
29094
+ // key no code reads. The reviewer resolution it owned survives in
29095
+ // `skill-review-recipients.ts` and is what the new rail falls back to when an
29096
+ // org has no `approval_routes` row.
29060
29097
  {
29061
29098
  key: "skill-fragments",
29062
29099
  description: "Agent-contributed additive skill fragments (ENG-6811, epic ENG-6805 P2a): when on, an agent can propose an additive fragment for a shared (team/org) skill via the skill_contribute_fragment MCP tool; accepted fragments compose into the parent skill's delivered body in one delimited region at /host/refresh. This is the per-org activation gate for the whole additive path - it gates BOTH the contribute tool (off = soft-refuse, no fragment is created) AND compose-at-refresh (off = agents receive the core body only), so flipping it off is a clean kill switch that reverts shared skills to operator-owned content. Boolean gate; ships dark.",
@@ -41419,6 +41419,42 @@ var STUCK_RESTART_THRESHOLD_SECONDS = 15 * 60;
41419
41419
  var DAILY_MEMORY_TTL_HOURS = 48;
41420
41420
  var DAILY_MEMORY_TTL_MS = DAILY_MEMORY_TTL_HOURS * 60 * 60 * 1e3;
41421
41421
 
41422
+ // ../core/dist/voice/grok-voices.js
41423
+ var GROK_VOICE_ORIGINAL = [
41424
+ { id: "eve", label: "Eve (Female)" },
41425
+ { id: "ara", label: "Ara (Female)" },
41426
+ { id: "rex", label: "Rex (Male)" },
41427
+ { id: "sal", label: "Sal (Neutral)" },
41428
+ { id: "leo", label: "Leo (Male)" }
41429
+ ];
41430
+ var GROK_VOICE_ADDED_2026_07 = [
41431
+ { id: "carina", label: "Carina" },
41432
+ { id: "zagan", label: "Zagan" },
41433
+ { id: "helix", label: "Helix" },
41434
+ { id: "orion", label: "Orion" },
41435
+ { id: "luna", label: "Luna" },
41436
+ { id: "iris", label: "Iris" },
41437
+ { id: "altair", label: "Altair" },
41438
+ { id: "zenith", label: "Zenith" },
41439
+ { id: "perseus", label: "Perseus" },
41440
+ { id: "helios", label: "Helios" },
41441
+ { id: "lux", label: "Lux" },
41442
+ { id: "kepler", label: "Kepler" },
41443
+ { id: "rigel", label: "Rigel" },
41444
+ { id: "cosmo", label: "Cosmo" },
41445
+ { id: "celeste", label: "Celeste" },
41446
+ { id: "ursa", label: "Ursa" },
41447
+ { id: "sirius", label: "Sirius" },
41448
+ { id: "lumen", label: "Lumen" },
41449
+ { id: "castor", label: "Castor" },
41450
+ { id: "naksh", label: "Naksh" },
41451
+ { id: "atlas", label: "Atlas" }
41452
+ ];
41453
+ var GROK_VOICE_OPTIONS = [
41454
+ ...GROK_VOICE_ORIGINAL,
41455
+ ...GROK_VOICE_ADDED_2026_07
41456
+ ];
41457
+
41422
41458
  // ../core/dist/scheduled-tasks/prompt-wrapper.js
41423
41459
  var PREAMBLE_HEAD = [
41424
41460
  "[SCHEDULED TASK \u2014 EXECUTION MODE]",
@@ -42976,15 +43012,16 @@ var FLAG_REGISTRY = [
42976
43012
  // pre-flags env gate to migrate (ADR-0022).
42977
43013
  defaultValue: false
42978
43014
  },
42979
- {
42980
- key: "skill-draft-review-notify",
42981
- description: "Pending skill-draft review nudge (ENG-6505): when a skill lands as a status=draft awaiting operator review, send a low-severity informational notification to the right reviewer(s) by scope \u2014 agent-scoped \u2192 the agent's manager (reports_to_person), falling back to team owners/admins; team-scoped \u2192 team owners/admins; org-scoped \u2192 org owners/admins \u2014 with a deep link to the Pending Skills card. Distinct from (and never doubles up on) the HIGH+ SkillSpector security alert. Covers both the agent-authored (ENG-4589) and skill-dreaming (ENG-6500) draft paths. Boolean gate; ships dark \u2014 when off no nudge is sent, so the steady state until an org is armed is silence.",
42982
- flagType: "boolean",
42983
- // Declared safe value is `false` (no nudge). Fail-safe direction: a flag-DB
42984
- // read error must never start DMing humans on its own. No envVar — net-new
42985
- // control with no pre-flags env gate to migrate (ADR-0022).
42986
- defaultValue: false
42987
- },
43015
+ // ENG-9849 (ADR-0081 decision 5): `skill-draft-review-notify` was archived
43016
+ // here. Its rail — a plain-text Slack DM nudge with no channel concept, no
43017
+ // platform discriminator and no approval lifecycle — is replaced by the
43018
+ // `skill.publish` approval verb, so skill review now has one rail rather than
43019
+ // two. Archived rather than deleted: migration 20260908000001 sets
43020
+ // `archived_at` on the prod row, which was globally `true` from 2026-06-21, so
43021
+ // the row stops resolving instead of silently continuing to evaluate against a
43022
+ // key no code reads. The reviewer resolution it owned survives in
43023
+ // `skill-review-recipients.ts` and is what the new rail falls back to when an
43024
+ // org has no `approval_routes` row.
42988
43025
  {
42989
43026
  key: "skill-fragments",
42990
43027
  description: "Agent-contributed additive skill fragments (ENG-6811, epic ENG-6805 P2a): when on, an agent can propose an additive fragment for a shared (team/org) skill via the skill_contribute_fragment MCP tool; accepted fragments compose into the parent skill's delivered body in one delimited region at /host/refresh. This is the per-org activation gate for the whole additive path - it gates BOTH the contribute tool (off = soft-refuse, no fragment is created) AND compose-at-refresh (off = agents receive the core body only), so flipping it off is a clean kill switch that reverts shared skills to operator-owned content. Boolean gate; ships dark.",
@@ -35567,6 +35567,42 @@ var STUCK_RESTART_THRESHOLD_SECONDS = 15 * 60;
35567
35567
  var DAILY_MEMORY_TTL_HOURS = 48;
35568
35568
  var DAILY_MEMORY_TTL_MS = DAILY_MEMORY_TTL_HOURS * 60 * 60 * 1e3;
35569
35569
 
35570
+ // ../core/dist/voice/grok-voices.js
35571
+ var GROK_VOICE_ORIGINAL = [
35572
+ { id: "eve", label: "Eve (Female)" },
35573
+ { id: "ara", label: "Ara (Female)" },
35574
+ { id: "rex", label: "Rex (Male)" },
35575
+ { id: "sal", label: "Sal (Neutral)" },
35576
+ { id: "leo", label: "Leo (Male)" }
35577
+ ];
35578
+ var GROK_VOICE_ADDED_2026_07 = [
35579
+ { id: "carina", label: "Carina" },
35580
+ { id: "zagan", label: "Zagan" },
35581
+ { id: "helix", label: "Helix" },
35582
+ { id: "orion", label: "Orion" },
35583
+ { id: "luna", label: "Luna" },
35584
+ { id: "iris", label: "Iris" },
35585
+ { id: "altair", label: "Altair" },
35586
+ { id: "zenith", label: "Zenith" },
35587
+ { id: "perseus", label: "Perseus" },
35588
+ { id: "helios", label: "Helios" },
35589
+ { id: "lux", label: "Lux" },
35590
+ { id: "kepler", label: "Kepler" },
35591
+ { id: "rigel", label: "Rigel" },
35592
+ { id: "cosmo", label: "Cosmo" },
35593
+ { id: "celeste", label: "Celeste" },
35594
+ { id: "ursa", label: "Ursa" },
35595
+ { id: "sirius", label: "Sirius" },
35596
+ { id: "lumen", label: "Lumen" },
35597
+ { id: "castor", label: "Castor" },
35598
+ { id: "naksh", label: "Naksh" },
35599
+ { id: "atlas", label: "Atlas" }
35600
+ ];
35601
+ var GROK_VOICE_OPTIONS = [
35602
+ ...GROK_VOICE_ORIGINAL,
35603
+ ...GROK_VOICE_ADDED_2026_07
35604
+ ];
35605
+
35570
35606
  // ../core/dist/scheduled-tasks/prompt-wrapper.js
35571
35607
  var PREAMBLE_HEAD = [
35572
35608
  "[SCHEDULED TASK \u2014 EXECUTION MODE]",
@@ -37531,15 +37567,16 @@ var FLAG_REGISTRY = [
37531
37567
  // pre-flags env gate to migrate (ADR-0022).
37532
37568
  defaultValue: false
37533
37569
  },
37534
- {
37535
- key: "skill-draft-review-notify",
37536
- description: "Pending skill-draft review nudge (ENG-6505): when a skill lands as a status=draft awaiting operator review, send a low-severity informational notification to the right reviewer(s) by scope \u2014 agent-scoped \u2192 the agent's manager (reports_to_person), falling back to team owners/admins; team-scoped \u2192 team owners/admins; org-scoped \u2192 org owners/admins \u2014 with a deep link to the Pending Skills card. Distinct from (and never doubles up on) the HIGH+ SkillSpector security alert. Covers both the agent-authored (ENG-4589) and skill-dreaming (ENG-6500) draft paths. Boolean gate; ships dark \u2014 when off no nudge is sent, so the steady state until an org is armed is silence.",
37537
- flagType: "boolean",
37538
- // Declared safe value is `false` (no nudge). Fail-safe direction: a flag-DB
37539
- // read error must never start DMing humans on its own. No envVar — net-new
37540
- // control with no pre-flags env gate to migrate (ADR-0022).
37541
- defaultValue: false
37542
- },
37570
+ // ENG-9849 (ADR-0081 decision 5): `skill-draft-review-notify` was archived
37571
+ // here. Its rail — a plain-text Slack DM nudge with no channel concept, no
37572
+ // platform discriminator and no approval lifecycle — is replaced by the
37573
+ // `skill.publish` approval verb, so skill review now has one rail rather than
37574
+ // two. Archived rather than deleted: migration 20260908000001 sets
37575
+ // `archived_at` on the prod row, which was globally `true` from 2026-06-21, so
37576
+ // the row stops resolving instead of silently continuing to evaluate against a
37577
+ // key no code reads. The reviewer resolution it owned survives in
37578
+ // `skill-review-recipients.ts` and is what the new rail falls back to when an
37579
+ // org has no `approval_routes` row.
37543
37580
  {
37544
37581
  key: "skill-fragments",
37545
37582
  description: "Agent-contributed additive skill fragments (ENG-6811, epic ENG-6805 P2a): when on, an agent can propose an additive fragment for a shared (team/org) skill via the skill_contribute_fragment MCP tool; accepted fragments compose into the parent skill's delivered body in one delimited region at /host/refresh. This is the per-org activation gate for the whole additive path - it gates BOTH the contribute tool (off = soft-refuse, no fragment is created) AND compose-at-refresh (off = agents receive the core body only), so flipping it off is a clean kill switch that reverts shared skills to operator-owned content. Boolean gate; ships dark.",
@@ -35699,6 +35699,42 @@ var STUCK_RESTART_THRESHOLD_SECONDS = 15 * 60;
35699
35699
  var DAILY_MEMORY_TTL_HOURS = 48;
35700
35700
  var DAILY_MEMORY_TTL_MS = DAILY_MEMORY_TTL_HOURS * 60 * 60 * 1e3;
35701
35701
 
35702
+ // ../core/dist/voice/grok-voices.js
35703
+ var GROK_VOICE_ORIGINAL = [
35704
+ { id: "eve", label: "Eve (Female)" },
35705
+ { id: "ara", label: "Ara (Female)" },
35706
+ { id: "rex", label: "Rex (Male)" },
35707
+ { id: "sal", label: "Sal (Neutral)" },
35708
+ { id: "leo", label: "Leo (Male)" }
35709
+ ];
35710
+ var GROK_VOICE_ADDED_2026_07 = [
35711
+ { id: "carina", label: "Carina" },
35712
+ { id: "zagan", label: "Zagan" },
35713
+ { id: "helix", label: "Helix" },
35714
+ { id: "orion", label: "Orion" },
35715
+ { id: "luna", label: "Luna" },
35716
+ { id: "iris", label: "Iris" },
35717
+ { id: "altair", label: "Altair" },
35718
+ { id: "zenith", label: "Zenith" },
35719
+ { id: "perseus", label: "Perseus" },
35720
+ { id: "helios", label: "Helios" },
35721
+ { id: "lux", label: "Lux" },
35722
+ { id: "kepler", label: "Kepler" },
35723
+ { id: "rigel", label: "Rigel" },
35724
+ { id: "cosmo", label: "Cosmo" },
35725
+ { id: "celeste", label: "Celeste" },
35726
+ { id: "ursa", label: "Ursa" },
35727
+ { id: "sirius", label: "Sirius" },
35728
+ { id: "lumen", label: "Lumen" },
35729
+ { id: "castor", label: "Castor" },
35730
+ { id: "naksh", label: "Naksh" },
35731
+ { id: "atlas", label: "Atlas" }
35732
+ ];
35733
+ var GROK_VOICE_OPTIONS = [
35734
+ ...GROK_VOICE_ORIGINAL,
35735
+ ...GROK_VOICE_ADDED_2026_07
35736
+ ];
35737
+
35702
35738
  // ../core/dist/scheduled-tasks/prompt-wrapper.js
35703
35739
  var PREAMBLE_HEAD = [
35704
35740
  "[SCHEDULED TASK \u2014 EXECUTION MODE]",
@@ -37663,15 +37699,16 @@ var FLAG_REGISTRY = [
37663
37699
  // pre-flags env gate to migrate (ADR-0022).
37664
37700
  defaultValue: false
37665
37701
  },
37666
- {
37667
- key: "skill-draft-review-notify",
37668
- description: "Pending skill-draft review nudge (ENG-6505): when a skill lands as a status=draft awaiting operator review, send a low-severity informational notification to the right reviewer(s) by scope \u2014 agent-scoped \u2192 the agent's manager (reports_to_person), falling back to team owners/admins; team-scoped \u2192 team owners/admins; org-scoped \u2192 org owners/admins \u2014 with a deep link to the Pending Skills card. Distinct from (and never doubles up on) the HIGH+ SkillSpector security alert. Covers both the agent-authored (ENG-4589) and skill-dreaming (ENG-6500) draft paths. Boolean gate; ships dark \u2014 when off no nudge is sent, so the steady state until an org is armed is silence.",
37669
- flagType: "boolean",
37670
- // Declared safe value is `false` (no nudge). Fail-safe direction: a flag-DB
37671
- // read error must never start DMing humans on its own. No envVar — net-new
37672
- // control with no pre-flags env gate to migrate (ADR-0022).
37673
- defaultValue: false
37674
- },
37702
+ // ENG-9849 (ADR-0081 decision 5): `skill-draft-review-notify` was archived
37703
+ // here. Its rail — a plain-text Slack DM nudge with no channel concept, no
37704
+ // platform discriminator and no approval lifecycle — is replaced by the
37705
+ // `skill.publish` approval verb, so skill review now has one rail rather than
37706
+ // two. Archived rather than deleted: migration 20260908000001 sets
37707
+ // `archived_at` on the prod row, which was globally `true` from 2026-06-21, so
37708
+ // the row stops resolving instead of silently continuing to evaluate against a
37709
+ // key no code reads. The reviewer resolution it owned survives in
37710
+ // `skill-review-recipients.ts` and is what the new rail falls back to when an
37711
+ // org has no `approval_routes` row.
37675
37712
  {
37676
37713
  key: "skill-fragments",
37677
37714
  description: "Agent-contributed additive skill fragments (ENG-6811, epic ENG-6805 P2a): when on, an agent can propose an additive fragment for a shared (team/org) skill via the skill_contribute_fragment MCP tool; accepted fragments compose into the parent skill's delivered body in one delimited region at /host/refresh. This is the per-org activation gate for the whole additive path - it gates BOTH the contribute tool (off = soft-refuse, no fragment is created) AND compose-at-refresh (off = agents receive the core body only), so flipping it off is a clean kill switch that reverts shared skills to operator-owned content. Boolean gate; ships dark.",
@@ -54,8 +54,8 @@ import {
54
54
  writeDirectChatSessionState,
55
55
  writeEgressAllowlist,
56
56
  writePersistentClaudeWrapper
57
- } from "./chunk-R2NHRLD7.js";
58
- import "./chunk-FJ372WWE.js";
57
+ } from "./chunk-G23CONQJ.js";
58
+ import "./chunk-USHD2L3F.js";
59
59
  import "./chunk-XWVM4KPK.js";
60
60
  export {
61
61
  EGRESS_BASELINE_DOMAINS,
@@ -114,4 +114,4 @@ export {
114
114
  writeEgressAllowlist,
115
115
  writePersistentClaudeWrapper
116
116
  };
117
- //# sourceMappingURL=persistent-session-6ZJR4HYE.js.map
117
+ //# sourceMappingURL=persistent-session-6DET4JLF.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  paneLogPath
3
- } from "./chunk-R2NHRLD7.js";
4
- import "./chunk-FJ372WWE.js";
3
+ } from "./chunk-G23CONQJ.js";
4
+ import "./chunk-USHD2L3F.js";
5
5
  import "./chunk-XWVM4KPK.js";
6
6
 
7
7
  // src/lib/responsiveness-probe.ts
@@ -764,4 +764,4 @@ export {
764
764
  readAndResetSlackReplyBindingClassifications,
765
765
  readAndResetSlackReplyTargetClassifications
766
766
  };
767
- //# sourceMappingURL=responsiveness-probe-UIYBJC7G.js.map
767
+ //# sourceMappingURL=responsiveness-probe-ZNKOWUIE.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  sessionTranscriptDir
3
- } from "./chunk-FJ372WWE.js";
3
+ } from "./chunk-USHD2L3F.js";
4
4
 
5
5
  // src/lib/session-auth-dead.ts
6
6
  import { closeSync, openSync, readSync, readdirSync, statSync } from "fs";
@@ -203,4 +203,4 @@ export {
203
203
  decideSessionAuthState,
204
204
  probeSessionAuth
205
205
  };
206
- //# sourceMappingURL=session-auth-dead-S6QREVV3.js.map
206
+ //# sourceMappingURL=session-auth-dead-XU7VC6HM.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@integrity-labs/agt-cli",
3
- "version": "0.28.859",
3
+ "version": "0.28.861",
4
4
  "description": "Augmented Team CLI — agent provisioning and management",
5
5
  "type": "module",
6
6
  "engines": {