@integrity-labs/agt-cli 0.28.773 → 0.28.774

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
@@ -40,12 +40,12 @@ import {
40
40
  success,
41
41
  table,
42
42
  warn
43
- } from "../chunk-UVA7VXG4.js";
43
+ } from "../chunk-BUCKLMKD.js";
44
44
  import {
45
45
  getProjectDir,
46
46
  isSessionResumeDisabled,
47
47
  readDirectChatSessionState
48
- } from "../chunk-UL2W5NY6.js";
48
+ } from "../chunk-SXTHAF3R.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-75UAJFJJ.js";
82
+ } from "../chunk-PMKI7ZTP.js";
83
83
  import "../chunk-XWVM4KPK.js";
84
84
 
85
85
  // src/bin/agt.ts
@@ -5467,7 +5467,7 @@ import { execFileSync, execSync } from "child_process";
5467
5467
  import { existsSync as existsSync11, realpathSync as realpathSync2 } from "fs";
5468
5468
  import chalk18 from "chalk";
5469
5469
  import ora16 from "ora";
5470
- var cliVersion = true ? "0.28.773" : "dev";
5470
+ var cliVersion = true ? "0.28.774" : "dev";
5471
5471
  async function fetchLatestVersion() {
5472
5472
  const host2 = getHost();
5473
5473
  if (!host2) return null;
@@ -6658,7 +6658,7 @@ function handleError(err) {
6658
6658
  }
6659
6659
 
6660
6660
  // src/bin/agt.ts
6661
- var cliVersion2 = true ? "0.28.773" : "dev";
6661
+ var cliVersion2 = true ? "0.28.774" : "dev";
6662
6662
  var program = new Command();
6663
6663
  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");
6664
6664
  program.hook("preAction", async (thisCommand, actionCommand) => {
@@ -14,7 +14,7 @@ import {
14
14
  parseEnvFileEntries,
15
15
  parseEnvIntegrations,
16
16
  shellQuote
17
- } from "./chunk-UL2W5NY6.js";
17
+ } from "./chunk-SXTHAF3R.js";
18
18
  import {
19
19
  BIND_FAILURE_QUARANTINE_THRESHOLD,
20
20
  INTEGRATIONS_SECTION_END,
@@ -66,7 +66,7 @@ import {
66
66
  sessionTranscriptDir,
67
67
  worseConnectivityOutcome,
68
68
  wrapScheduledTaskPrompt
69
- } from "./chunk-75UAJFJJ.js";
69
+ } from "./chunk-PMKI7ZTP.js";
70
70
  import {
71
71
  parsePsRows
72
72
  } from "./chunk-XWVM4KPK.js";
@@ -6388,7 +6388,7 @@ function exchangeFailureKind(err) {
6388
6388
  }
6389
6389
 
6390
6390
  // src/lib/api-client.ts
6391
- var agtCliVersion = true ? "0.28.773" : "dev";
6391
+ var agtCliVersion = true ? "0.28.774" : "dev";
6392
6392
  var lastConfigHash = null;
6393
6393
  function setConfigHash(hash) {
6394
6394
  lastConfigHash = hash && hash.length > 0 ? hash : null;
@@ -10590,4 +10590,4 @@ export {
10590
10590
  managerInstallSystemUnitCommand,
10591
10591
  managerUninstallSystemUnitCommand
10592
10592
  };
10593
- //# sourceMappingURL=chunk-UVA7VXG4.js.map
10593
+ //# sourceMappingURL=chunk-BUCKLMKD.js.map
@@ -6281,6 +6281,74 @@ var FLAG_REGISTRY = [
6281
6281
  // dominant callers. This is precisely the deliberate, audited flip ADR-0022
6282
6282
  // §4 reserves confirmation for.
6283
6283
  sensitive: true
6284
+ },
6285
+ {
6286
+ key: "artefact-export-jobs-serve",
6287
+ description: 'ADR-0077 / ENG-9729 \u2014 the MASTER switch for the async artefact-export lane. ON (default) = a route may resolve an export request to an artefact_export_jobs row: attach to one that is already rendering, or hand back the bytes of one that has completed. OFF = the job lane is invisible and every export renders synchronously, which is the pre-ADR-0077 behaviour. DEFAULT true DOES NOT MEAN ASYNC IS ON. Nothing CREATES a job unless artefact-export-jobs-start is also on, so with the shipped defaults this flag governs an empty table and no caller can tell it exists. WHY THE LANE IS TWO FLAGS AND NOT ONE. Disarming the start lever while renders are in flight must not strand the callers holding their job ids: those renders keep running (a Lambda invocation nobody awaits still runs to completion), and their bytes land in the private bucket regardless. A single flag would take the only door to them away at the moment it was most needed. So "stop creating new jobs" and "keep serving the ones that exist" are separate, and this is the second one. READ-ONLY BY CONSTRUCTION: with start off, the route looks up a REUSABLE row and nothing more \u2014 it never inserts, never requeues a terminal row, and never dispatches a renderer. A requeue mints an attempt and fires an invoke, so a serve lever that requeued would start new renders under a disarmed start lever, which is the exact thing disarming it was meant to stop. Evaluated server-side per request (org-scoped), so a flip applies within the evaluation cache TTL with no deploy and no host update. Deliberately NO envVar: the consumer is the API Lambda, whose environment block is at the AWS 4KB cap (ENG-7972), and a literal in sst.config.ts would pin every stage and make the admin control inert (ENG-8303).',
6288
+ flagType: "boolean",
6289
+ // ON is the no-op default here, which looks like the wrong direction until
6290
+ // you read it with the start lever: serving an empty table is
6291
+ // indistinguishable from not serving at all. Shipping it OFF would instead
6292
+ // mean that arming async later takes TWO flips, and that the second one is
6293
+ // the easy one to forget — leaving a fleet that creates jobs it refuses to
6294
+ // serve, i.e. every slow export failing while the flag page reads "async: on".
6295
+ defaultValue: true
6296
+ },
6297
+ {
6298
+ key: "artefact-export-jobs-start",
6299
+ description: "ADR-0077 / ENG-9729 \u2014 whether a route may CREATE an async artefact-export job: insert or requeue an artefact_export_jobs row, dispatch the worker, and answer a caller with a job id instead of bytes when the ~20s grace window is exceeded. OFF (default) = today's synchronous render on every export. THIS IS THE ROLLOUT GATE, AND IT IS ORDERED AGAINST A CLIENT, NOT A DEPLOY. The agent caller is `artefacts_download`, which ships inside the agt CLI to a permanently mixed-version fleet \u2014 hosts self-update overnight and some never do. Arming this against a CLI that cannot read a job-id body does not degrade an export, it BREAKS one: the pre-ENG-9729 tool does Buffer.from(data.base64) with no branch for any other shape, so a job id arrives as a TypeError deep in file-write logic. That is strictly worse than the 503 + Retry-After it would replace, which the tool already understands. A published CLI version is NOT evidence of convergence \u2014 measure hosts.agt_version across recently-seen hosts first. The procedure is docs/runbooks/async-export-rollout.md; arm this only after running it. Turning it back OFF stops new jobs and leaves artefact-export-jobs-serve delivering the in-flight ones, which is why the two are separate. Org-scoped, so it can be armed for one tenant at a time. Deliberately NO envVar (ENG-7972 4KB cap, ENG-8303 pin).",
6300
+ flagType: "boolean",
6301
+ // Dark. The client half of this change publishes with the same merge, and
6302
+ // the fleet has not converged on it at merge time by construction — see the
6303
+ // runbook. Arming is an operator action taken against a measurement.
6304
+ defaultValue: false,
6305
+ // Arming this changes the RESPONSE SHAPE of a route whose callers include a
6306
+ // binary we do not control the version of. ADR-0022 section 4 reserves
6307
+ // confirmation for exactly this: a flip that a single unguarded write should
6308
+ // not be able to make.
6309
+ sensitive: true,
6310
+ // `since` USED SLIGHTLY OFF-LABEL, AND THAT IS THE POINT.
6311
+ //
6312
+ // The field's docblock says it records the CLI whose build first shipped
6313
+ // this flag's HOST-SIDE READER, and this flag has none — it is evaluated
6314
+ // server-side in the export route, so every host "honors" a flip the instant
6315
+ // it is made. Read literally, `since` should therefore be undefined.
6316
+ //
6317
+ // Undefined is the dangerous answer. `classifyHostReach` returns `honors`
6318
+ // for every host when `since` is unset, so the flip-reach modal — the screen
6319
+ // an operator is looking at AT THE MOMENT OF THE FLIP — would report full
6320
+ // reach for the one flag whose entire purpose is "do not flip this until you
6321
+ // have measured the fleet". It would be telling the truth about the
6322
+ // mechanism (the flip does reach every host immediately) while giving
6323
+ // exactly the wrong answer to the question being asked (can those hosts
6324
+ // survive it). The dependency is real; it is on the CLI's ability to SURVIVE
6325
+ // the flag, not to READ it, and the modal cannot tell those apart.
6326
+ //
6327
+ // Pinned ABOVE every published release on purpose, the `agt-bin-path`
6328
+ // precedent: it classifies EVERY host as `stale`, so the modal reports no
6329
+ // reach rather than reach it has no basis for. A guessed number would be
6330
+ // worse than a placeholder, and the two directions are not symmetric —
6331
+ // too HIGH over-warns (annoying), too LOW promises reach to a build that
6332
+ // answers a job id with a TypeError inside file-write logic (a broken export
6333
+ // reported to the agent as "download failed").
6334
+ //
6335
+ // The exact version cannot be known here: the CLI auto-publishes ON MERGE of
6336
+ // this change, patch-bumping from whatever is current, so any pre-merge
6337
+ // value is a guess. Do NOT read it off `apps/cli/package.json`, and do NOT
6338
+ // trust a version produced by re-running a failed publish job (ENG-9647: a
6339
+ // re-run rebuilds the ORIGINAL tree under a HIGHER number, so the version
6340
+ // string would claim a capability the bytes do not carry).
6341
+ //
6342
+ // AND `since` IS ADVISORY, NOT A GUARD. It is read in exactly one place —
6343
+ // the flip-reach modal. Nothing in the evaluation or override-write path
6344
+ // consults it, so this changes what an operator is TOLD and does not stop a
6345
+ // flip on an under-`since` host. What holds the line is `defaultValue:
6346
+ // false` + `sensitive: true` + the runbook.
6347
+ //
6348
+ // REPLACING IT IS STEP 1 OF THE ARMING PROCEDURE in
6349
+ // docs/runbooks/async-export-rollout.md, so the placeholder has a named
6350
+ // owner and a named moment rather than being a deferral nobody holds.
6351
+ since: "0.29.0"
6284
6352
  }
6285
6353
  ];
6286
6354
  var REGISTRY_BY_KEY = new Map(FLAG_REGISTRY.map((definition) => [definition.key, definition]));
@@ -13414,4 +13482,4 @@ export {
13414
13482
  peekCurrentSession,
13415
13483
  readDailySessionPin
13416
13484
  };
13417
- //# sourceMappingURL=chunk-75UAJFJJ.js.map
13485
+ //# sourceMappingURL=chunk-PMKI7ZTP.js.map