@integrity-labs/agt-cli 0.28.506 → 0.28.508
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 +4 -4
- package/dist/{chunk-43UIRCO7.js → chunk-GK3TSZ4S.js} +243 -3
- package/dist/chunk-GK3TSZ4S.js.map +1 -0
- package/dist/{chunk-SMHHGXI5.js → chunk-LNPJI2AE.js} +83 -1
- package/dist/chunk-LNPJI2AE.js.map +1 -0
- package/dist/{claude-pair-runtime-7CZWWZJ2.js → claude-pair-runtime-YQ7V5TS6.js} +2 -2
- package/dist/lib/manager-worker.js +40 -14
- package/dist/lib/manager-worker.js.map +1 -1
- package/dist/mcp/direct-chat-channel.js +78 -0
- package/dist/mcp/origami.js +78 -0
- package/dist/mcp/slack-channel.js +78 -0
- package/dist/mcp/telegram-channel.js +78 -0
- package/dist/{persistent-session-RAXQFDPB.js → persistent-session-VX37ESOS.js} +2 -2
- package/dist/{responsiveness-probe-PBWABVLJ.js → responsiveness-probe-5MEW5XNI.js} +2 -2
- package/package.json +1 -1
- package/dist/chunk-43UIRCO7.js.map +0 -1
- package/dist/chunk-SMHHGXI5.js.map +0 -1
- /package/dist/{claude-pair-runtime-7CZWWZJ2.js.map → claude-pair-runtime-YQ7V5TS6.js.map} +0 -0
- /package/dist/{persistent-session-RAXQFDPB.js.map → persistent-session-VX37ESOS.js.map} +0 -0
- /package/dist/{responsiveness-probe-PBWABVLJ.js.map → responsiveness-probe-5MEW5XNI.js.map} +0 -0
|
@@ -9819,6 +9819,36 @@ var FLAG_REGISTRY = [
|
|
|
9819
9819
|
// AGT_RESUME_RECONCILER_ENABLED set keeps that value until the env is retired.
|
|
9820
9820
|
envVar: "AGT_RESUME_RECONCILER_ENABLED"
|
|
9821
9821
|
},
|
|
9822
|
+
{
|
|
9823
|
+
key: "auto-resume-enabled",
|
|
9824
|
+
description: "DO NOT ARM YET (ENG-8395): this flag has no `since` set until a follow-up bisects it from the published agt-cli dist, and an unset `since` makes the flip-reach estimate report FULL reach for a reader that is host-side \u2014 it will tell you a flip reached hosts that have no code to honour it. Arm only once that follow-up has landed. Bounded BLIND auto-resume for circuit-breaker pauses (ENG-6088): at most one unattended resume per trip cycle, fired once the trip driver has been quiet for the configured window and only for provisioning-reload trips (the ENG-7577 class gate \u2014 a crash-class trip still needs an operator). Superseded wherever `resume-reconciler` is on: that path proves the dependency recovered instead of assuming it, and the blind timer is its flag-off fallback. Boolean gate; ships dark. ENG-8395 promoted this from a raw host env var because AGT_AUTO_RESUME_ENABLED lives in the host env file, so its grain is per-HOST \u2014 one flip arms every agent that host runs (agt-aws-1 carries 14), which made the canary-then-fleet rollout its own documentation prescribes impossible. As a registry flag it resolves per org/team/host/AGENT, so one agent can genuinely be cut over first. Read host-side by the manager (agt-cli), not centrally.",
|
|
9825
|
+
flagType: "boolean",
|
|
9826
|
+
// Declared safe value is `false` — identical to today's behaviour on a host
|
|
9827
|
+
// that has never set the env var. Fail-safe direction on a flag-DB read
|
|
9828
|
+
// error is "no unattended resume of a paused agent".
|
|
9829
|
+
defaultValue: false,
|
|
9830
|
+
// Migration override (ADR-0022) — KEPT, not swapped (ENG-8395 is an addition).
|
|
9831
|
+
// The pre-flags env gate stays the highest-precedence operator override so a
|
|
9832
|
+
// host already running with AGT_AUTO_RESUME_ENABLED set keeps that value, and
|
|
9833
|
+
// so an operator retains a host-local escape hatch that needs no control-plane
|
|
9834
|
+
// round-trip. Note the host reader accepts a slightly WIDER truthy vocabulary
|
|
9835
|
+
// than coerceEnvValue (it also honours the legacy yes/on/no/off spellings);
|
|
9836
|
+
// both agree on true/1/false/0, and the reader is the authority for this gate.
|
|
9837
|
+
envVar: "AGT_AUTO_RESUME_ENABLED",
|
|
9838
|
+
// An unattended resume is a real availability change — the agent starts
|
|
9839
|
+
// spawning sessions again with no human in the loop — so arming it is a
|
|
9840
|
+
// deliberate, confirmed write (ADR-0022 sensitive-flag confirm).
|
|
9841
|
+
sensitive: true
|
|
9842
|
+
// ENG-8395 AC5: `since` is deliberately UNSET at merge. It must be bisected
|
|
9843
|
+
// from the PUBLISHED agt-cli dist once the artifact carrying the host-side
|
|
9844
|
+
// reader exists, never guessed — auto-resume.ts is host-side, so an
|
|
9845
|
+
// under-`since` host has no consumer for this flag and a guessed value makes
|
|
9846
|
+
// the flip-reach modal promise reach it does not have (the defect caught on
|
|
9847
|
+
// ENG-8344 / PR #4014). Precedent for the bisect method: slack-hot-thread-guard
|
|
9848
|
+
// = 0.28.339, slack-scheduled-channel-guard = 0.28.421. Setting it later is
|
|
9849
|
+
// safe: `since` is excluded from projectDefinition, so it does not roll
|
|
9850
|
+
// FLAGS_SCHEMA_VERSION.
|
|
9851
|
+
},
|
|
9822
9852
|
{
|
|
9823
9853
|
key: "memory-extraction",
|
|
9824
9854
|
description: "Host-side durable-memory extraction (ENG-6200): the manager extracts candidate memories from completed conversations and POSTs them to /host/memories/candidates, which writes dream_log via promoteCandidates. Post persistent-session cutover this is the ONLY live consolidation path. Boolean gate; ships dark \u2014 when off the manager runs no extraction, so 0 dream_log rows fleet-wide is the expected steady state until it is armed.",
|
|
@@ -10341,6 +10371,54 @@ var FLAG_REGISTRY = [
|
|
|
10341
10371
|
// Turning this on lets agents originate proposals that create customer
|
|
10342
10372
|
// infrastructure once approved — same posture as augmented-support-writes.
|
|
10343
10373
|
sensitive: true
|
|
10374
|
+
},
|
|
10375
|
+
{
|
|
10376
|
+
key: "github-broker-credentials",
|
|
10377
|
+
description: "Deliver GitHub App installation tokens to `git` and the `gh` CLI through the broker credential endpoint at USE time, instead of materializing them into the agent process environment at spawn (ENG-8344). A GitHub App installation token has a ~1h TTL, so the spawn-frozen GITHUB_ACCESS_TOKEN / GITHUB_TOKEN pair rotates hourly; the wrapper sources `.env.integrations` exactly once, so the only way a running agent sees the new value is a full session respawn (measured: 6 agents, ~144 kills/day). ENG-8343 stopped those kills landing mid-turn; this removes them. ON: `POST /host/agent-integrations` stops minting the installation token into the payload for auth_type=github_app rows (so computeIntegrationsHash stops seeing a rotating value) and marks the row credential_delivery=broker; the claudecode adapter then writes a git credential helper + a `gh` shim that fetch a fresh token per use from POST /host/agent-integrations/github/credential (ENG-8264 name addressing). OFF (default): byte-for-byte today's behaviour - the token is minted into the payload and materialized as GITHUB_ACCESS_TOKEN / GITHUB_TOKEN, no helper, no shim. NOTE the scope of the security claim: this removes the token from the agent's ENVIRONMENT, which is what stops the respawns. It does NOT make the token unreachable by a determined agent - the agent can invoke the helper itself. Strictly better than today, not a sandbox. Evaluated API-side only, per agent, in POST /host/agent-integrations; no host-side envVar. The host does not read this flag - it keys off the resulting credential_delivery marker on the row - so there is deliberately no host override that could put the token back on its own. Roll back from the flag.",
|
|
10378
|
+
flagType: "boolean",
|
|
10379
|
+
// Declared safe value is `false` = today's env delivery. Fail-safe direction:
|
|
10380
|
+
// a flag-DB read error must never strip `git`/`gh` credentials off a live
|
|
10381
|
+
// agent, which is what the ON path does when its host has no helper writer.
|
|
10382
|
+
defaultValue: false,
|
|
10383
|
+
// Flipping ON changes how every GitHub App agent on the scope authenticates
|
|
10384
|
+
// `git push` / `gh`. A bad flip takes those away, so it is a deliberate,
|
|
10385
|
+
// confirmed action (ADR-0022 §4).
|
|
10386
|
+
sensitive: true,
|
|
10387
|
+
// Set even though the flag is evaluated centrally, because `since` is a
|
|
10388
|
+
// REACH threshold ("a host this old has no consumer code for the flag") and
|
|
10389
|
+
// that is exactly the hazard here: the host does not read the flag, but it
|
|
10390
|
+
// does need the claudecode adapter's helper/shim writer and the wrapper PATH
|
|
10391
|
+
// prepend. On a host too old for those, the API would stop shipping the
|
|
10392
|
+
// token and NOTHING would replace it. Without `since` the flip-reach modal
|
|
10393
|
+
// reports FULL reach and hides that.
|
|
10394
|
+
//
|
|
10395
|
+
// DELIBERATE UNREACHABLE PLACEHOLDER - NOT A REAL THRESHOLD YET.
|
|
10396
|
+
// The sibling entries in this registry (`slack-hot-thread-guard` 0.28.339,
|
|
10397
|
+
// `slack-scheduled-channel-guard` 0.28.421) are BISECTED from published npm
|
|
10398
|
+
// artifacts, which is only possible AFTER this merges and publishes. A
|
|
10399
|
+
// pre-merge guess cannot be right, and the two directions are not
|
|
10400
|
+
// symmetric:
|
|
10401
|
+
// - too HIGH -> hosts classify `stale`, the modal over-warns. Annoying.
|
|
10402
|
+
// - too LOW -> hosts classify `honors` while carrying NO helper writer,
|
|
10403
|
+
// the modal promises full reach, and a flip strips `git`/
|
|
10404
|
+
// `gh` credentials with nothing replacing them. Outage.
|
|
10405
|
+
// So this is pinned ABOVE every published release on purpose: it classifies
|
|
10406
|
+
// EVERY host as `stale`, so the modal reports no reach rather than reach it
|
|
10407
|
+
// has no basis for. That is the intended pre-bisect state.
|
|
10408
|
+
//
|
|
10409
|
+
// BUT `since` IS ADVISORY, NOT A GUARD. It is read in exactly one place -
|
|
10410
|
+
// `computeFlagReach` behind GET /admin/reach, which renders the flip-reach
|
|
10411
|
+
// modal. `evaluate.ts` never reads it and neither does the override write
|
|
10412
|
+
// path. The placeholder therefore changes what an operator is TOLD; it does
|
|
10413
|
+
// not stop a flip on an under-`since` host. What actually holds the line
|
|
10414
|
+
// here is `defaultValue: false` plus `sensitive: true` plus the runbook.
|
|
10415
|
+
//
|
|
10416
|
+
// BEFORE THIS FLAG IS FLIPPED ANYWHERE: bisect the published dist for the
|
|
10417
|
+
// first agt-cli whose claudecode adapter writes agt-bin/ and whose wrapper
|
|
10418
|
+
// prepends it, then replace this with that exact version. The rollout
|
|
10419
|
+
// runbook gates on it. Leaving the placeholder in place is safe (nothing
|
|
10420
|
+
// flips); shipping a guessed number is not.
|
|
10421
|
+
since: "0.29.0"
|
|
10344
10422
|
}
|
|
10345
10423
|
];
|
|
10346
10424
|
var REGISTRY_BY_KEY = new Map(FLAG_REGISTRY.map((definition) => [definition.key, definition]));
|
|
@@ -13675,6 +13753,10 @@ function writePersistentClaudeWrapper(args) {
|
|
|
13675
13753
|
"set +a"
|
|
13676
13754
|
);
|
|
13677
13755
|
}
|
|
13756
|
+
const brokerBinDir = join6(projectDir, ".claude", "agt-bin");
|
|
13757
|
+
if (existsSync6(brokerBinDir)) {
|
|
13758
|
+
wrapperLines.push(`export PATH=${JSON.stringify(brokerBinDir)}:"$PATH"`);
|
|
13759
|
+
}
|
|
13678
13760
|
const initPromptArg = initPrompt ? `${JSON.stringify(initPrompt)} ` : "";
|
|
13679
13761
|
wrapperLines.push(
|
|
13680
13762
|
`exec ${JSON.stringify(claudeBin)} ${initPromptArg}${claudeArgsJoined}`
|
|
@@ -14826,4 +14908,4 @@ export {
|
|
|
14826
14908
|
stopAllSessionsAndWait,
|
|
14827
14909
|
getProjectDir
|
|
14828
14910
|
};
|
|
14829
|
-
//# sourceMappingURL=chunk-
|
|
14911
|
+
//# sourceMappingURL=chunk-LNPJI2AE.js.map
|