@integrity-labs/agt-cli 0.28.27 → 0.28.29

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
@@ -33,7 +33,7 @@ import {
33
33
  success,
34
34
  table,
35
35
  warn
36
- } from "../chunk-G6KRGRHY.js";
36
+ } from "../chunk-FIB2OQLF.js";
37
37
  import {
38
38
  CHANNEL_REGISTRY,
39
39
  DEPLOYMENT_TEMPLATES,
@@ -60,7 +60,7 @@ import {
60
60
  renderTemplate,
61
61
  resolveChannels,
62
62
  serializeManifestForSlackCli
63
- } from "../chunk-SN2G4B2Z.js";
63
+ } from "../chunk-VIIPFWE4.js";
64
64
 
65
65
  // src/bin/agt.ts
66
66
  import { join as join21 } from "path";
@@ -4773,7 +4773,7 @@ import { execFileSync, execSync } from "child_process";
4773
4773
  import { existsSync as existsSync10, realpathSync as realpathSync2 } from "fs";
4774
4774
  import chalk18 from "chalk";
4775
4775
  import ora16 from "ora";
4776
- var cliVersion = true ? "0.28.27" : "dev";
4776
+ var cliVersion = true ? "0.28.29" : "dev";
4777
4777
  async function fetchLatestVersion() {
4778
4778
  const host2 = getHost();
4779
4779
  if (!host2) return null;
@@ -5696,7 +5696,7 @@ function handleError(err) {
5696
5696
  }
5697
5697
 
5698
5698
  // src/bin/agt.ts
5699
- var cliVersion2 = true ? "0.28.27" : "dev";
5699
+ var cliVersion2 = true ? "0.28.29" : "dev";
5700
5700
  var program = new Command();
5701
5701
  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");
5702
5702
  program.hook("preAction", async (thisCommand, actionCommand) => {
@@ -14,7 +14,7 @@ import {
14
14
  registerFramework,
15
15
  resolveAvatarEnvUrl,
16
16
  wrapScheduledTaskPrompt
17
- } from "./chunk-SN2G4B2Z.js";
17
+ } from "./chunk-VIIPFWE4.js";
18
18
 
19
19
  // ../../packages/core/dist/integrations/registry.js
20
20
  var INTEGRATION_REGISTRY = [
@@ -8313,4 +8313,4 @@ export {
8313
8313
  managerInstallSystemUnitCommand,
8314
8314
  managerUninstallSystemUnitCommand
8315
8315
  };
8316
- //# sourceMappingURL=chunk-G6KRGRHY.js.map
8316
+ //# sourceMappingURL=chunk-FIB2OQLF.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  claudeModelAlias,
3
3
  isClaudeFastMode
4
- } from "./chunk-SN2G4B2Z.js";
4
+ } from "./chunk-VIIPFWE4.js";
5
5
  import {
6
6
  reapOrphanChannelMcps
7
7
  } from "./chunk-XWVM4KPK.js";
@@ -1487,4 +1487,4 @@ export {
1487
1487
  stopAllSessionsAndWait,
1488
1488
  getProjectDir
1489
1489
  };
1490
- //# sourceMappingURL=chunk-IHPN6AX7.js.map
1490
+ //# sourceMappingURL=chunk-SR6RHUAV.js.map
@@ -116,259 +116,6 @@ function stripPriorRunsBlock(wrappedPrompt) {
116
116
  return wrappedPrompt.slice(0, start) + wrappedPrompt.slice(stripEnd);
117
117
  }
118
118
 
119
- // ../../packages/core/dist/delivery/parse.js
120
- function parseDeliveryTarget(raw) {
121
- if (raw === null || typeof raw !== "object" || Array.isArray(raw)) {
122
- return {
123
- ok: false,
124
- code: "MALFORMED_DELIVERY_TARGET",
125
- detail: "delivery_to must be a JSON object"
126
- };
127
- }
128
- const obj = raw;
129
- const kind = obj["kind"];
130
- if (kind === "channel") {
131
- return parseChannelTarget(obj);
132
- }
133
- if (kind === "dm") {
134
- return parseDmTarget(obj);
135
- }
136
- return {
137
- ok: false,
138
- code: "UNKNOWN_KIND",
139
- detail: `delivery_to.kind must be 'channel' or 'dm' (got ${JSON.stringify(kind)})`
140
- };
141
- }
142
- function parseChannelTarget(obj) {
143
- const provider = obj["provider"];
144
- if (provider === "slack") {
145
- const channelId = obj["channel_id"];
146
- if (typeof channelId !== "string" || channelId.length === 0) {
147
- return {
148
- ok: false,
149
- code: "MISSING_CHANNEL_ID",
150
- detail: "channel:slack target requires a non-empty channel_id"
151
- };
152
- }
153
- const threadTs = obj["thread_ts"];
154
- if (threadTs !== void 0 && threadTs !== null) {
155
- if (typeof threadTs !== "string" || threadTs.length === 0) {
156
- return {
157
- ok: false,
158
- code: "MALFORMED_DELIVERY_TARGET",
159
- detail: "channel:slack thread_ts must be a non-empty string when present"
160
- };
161
- }
162
- return { kind: "channel", provider: "slack", channel_id: channelId, thread_ts: threadTs };
163
- }
164
- return { kind: "channel", provider: "slack", channel_id: channelId };
165
- }
166
- if (provider === "telegram") {
167
- const chatId = obj["chat_id"];
168
- if (typeof chatId !== "string" || chatId.length === 0) {
169
- return {
170
- ok: false,
171
- code: "MISSING_CHAT_ID",
172
- detail: "channel:telegram target requires a non-empty chat_id"
173
- };
174
- }
175
- return { kind: "channel", provider: "telegram", chat_id: chatId };
176
- }
177
- return {
178
- ok: false,
179
- code: "UNKNOWN_PROVIDER",
180
- detail: `channel.provider must be 'slack' or 'telegram' (got ${JSON.stringify(provider)})`
181
- };
182
- }
183
- var SUPPORTED_MEDIUMS = /* @__PURE__ */ new Set(["auto", "slack", "telegram"]);
184
- var RESERVED_MEDIUMS = /* @__PURE__ */ new Set(["teams", "whatsapp", "imessage"]);
185
- function parseDmTarget(obj) {
186
- const personId = obj["person_id"];
187
- if (typeof personId !== "string" || personId.length === 0) {
188
- return {
189
- ok: false,
190
- code: "MISSING_PERSON_ID",
191
- detail: "dm target requires a non-empty person_id"
192
- };
193
- }
194
- const followReportsTo = obj["follow_reports_to"];
195
- if (typeof followReportsTo !== "boolean") {
196
- return {
197
- ok: false,
198
- code: "MALFORMED_DELIVERY_TARGET",
199
- detail: "dm.follow_reports_to must be a boolean"
200
- };
201
- }
202
- const medium = obj["medium"];
203
- if (typeof medium !== "string") {
204
- return {
205
- ok: false,
206
- code: "MALFORMED_DELIVERY_TARGET",
207
- detail: "dm.medium must be a string"
208
- };
209
- }
210
- if (RESERVED_MEDIUMS.has(medium)) {
211
- return {
212
- ok: false,
213
- code: "DM_MEDIUM_NOT_SUPPORTED",
214
- detail: `dm.medium '${medium}' is reserved but not yet dispatchable (ENG-4427)`
215
- };
216
- }
217
- if (!SUPPORTED_MEDIUMS.has(medium)) {
218
- return {
219
- ok: false,
220
- code: "UNKNOWN_MEDIUM",
221
- detail: `dm.medium must be 'auto', 'slack', or 'telegram' (got ${JSON.stringify(medium)})`
222
- };
223
- }
224
- return {
225
- kind: "dm",
226
- person_id: personId,
227
- follow_reports_to: followReportsTo,
228
- medium
229
- };
230
- }
231
- function isParseError(v) {
232
- return typeof v === "object" && v !== null && "ok" in v && v.ok === false;
233
- }
234
-
235
- // ../../packages/core/dist/delivery/format.js
236
- function formatDmFooter(teamName, agentDisplayName) {
237
- const team = teamName?.trim() || "unassigned team";
238
- return `\u2014 scheduled by ${team} / ${agentDisplayName}`;
239
- }
240
- function appendDmFooter(body, teamName, agentDisplayName) {
241
- const footer = formatDmFooter(teamName, agentDisplayName);
242
- const trimmed = body.replace(/\s+$/, "");
243
- if (trimmed.endsWith(footer))
244
- return trimmed;
245
- return `${trimmed}
246
-
247
- ${footer}`;
248
- }
249
- function formatForOpenClawCli(target) {
250
- if (target.kind === "channel") {
251
- if (target.provider === "slack") {
252
- if (!target.channel_id) {
253
- throw new Error("INVALID_DELIVERY_TARGET: slack channel target is missing channel_id");
254
- }
255
- return `channel:${target.channel_id}`;
256
- }
257
- if (!target.chat_id) {
258
- throw new Error("INVALID_DELIVERY_TARGET: telegram channel target is missing chat_id");
259
- }
260
- return `chat:${target.chat_id}`;
261
- }
262
- throw new Error(`DM_NOT_SUPPORTED_ON_FRAMEWORK: dm targets can't be passed to openclaw cron add. See ENG-4423 \xA79.1 and the follow-up ENG-4431.`);
263
- }
264
-
265
- // ../../packages/core/dist/delivery/resolve.js
266
- function resolveDmTarget(target, agent, people) {
267
- if (target.kind === "channel") {
268
- if (target.provider === "slack") {
269
- return {
270
- ok: true,
271
- kind: "channel",
272
- provider: "slack",
273
- channel_id: target.channel_id ?? "",
274
- // ENG-6038: carry the originating-thread coordinate through to
275
- // dispatch. Absent → top-level post (pre-ENG-6038 behaviour).
276
- ...target.thread_ts ? { thread_ts: target.thread_ts } : {}
277
- };
278
- }
279
- return {
280
- ok: true,
281
- kind: "channel",
282
- provider: "telegram",
283
- chat_id: target.chat_id ?? ""
284
- };
285
- }
286
- const effectivePersonId = resolveEffectivePersonId(target, agent);
287
- if ("ok" in effectivePersonId)
288
- return effectivePersonId;
289
- const person = people.get(effectivePersonId.person_id);
290
- if (!person) {
291
- return {
292
- ok: false,
293
- code: "DM_TARGET_PERSON_NOT_FOUND",
294
- detail: `person ${effectivePersonId.person_id} not present in resolver people map`
295
- };
296
- }
297
- const FALLBACK_ORDER = ["slack", "telegram"];
298
- const preferredMedium = target.medium === "auto" ? null : target.medium;
299
- const chosenMedium = preferredMedium ? agent.dm_capable_mediums.includes(preferredMedium) && personHasMedium(person, preferredMedium) ? preferredMedium : null : FALLBACK_ORDER.find((m) => agent.dm_capable_mediums.includes(m) && personHasMedium(person, m)) ?? null;
300
- if (!chosenMedium) {
301
- return {
302
- ok: false,
303
- code: "DM_TARGET_NO_REACHABLE_MEDIUM",
304
- detail: `agent and person ${person.person_id} share no DM-capable medium`
305
- };
306
- }
307
- if (chosenMedium === "slack") {
308
- return {
309
- ok: true,
310
- kind: "dm",
311
- medium: "slack",
312
- slack_user_id: person.slack_user_id,
313
- recipient_person_id: person.person_id
314
- };
315
- }
316
- return {
317
- ok: true,
318
- kind: "dm",
319
- medium: "telegram",
320
- telegram_chat_id: person.telegram_chat_id,
321
- recipient_person_id: person.person_id
322
- };
323
- }
324
- function resolveEffectivePersonId(target, agent) {
325
- if (target.follow_reports_to) {
326
- if (agent.reports_to_type !== "person" || !agent.reports_to_person_id) {
327
- return {
328
- ok: false,
329
- code: "DM_FOLLOW_TARGET_NOT_PERSON",
330
- detail: "follow_reports_to=true but the agent has no person-typed reports_to at dispatch time"
331
- };
332
- }
333
- return { person_id: agent.reports_to_person_id };
334
- }
335
- return { person_id: target.person_id };
336
- }
337
- function personHasMedium(person, medium) {
338
- if (medium === "slack")
339
- return Boolean(person.slack_user_id);
340
- return Boolean(person.telegram_chat_id);
341
- }
342
- function isResolveError(v) {
343
- return "ok" in v && v.ok === false;
344
- }
345
-
346
- // ../../packages/core/dist/delivery/console-url.js
347
- function deriveConsoleUrl(apiUrl) {
348
- const trimmed = apiUrl?.trim();
349
- if (!trimmed)
350
- return null;
351
- let parsed;
352
- try {
353
- parsed = new URL(trimmed);
354
- } catch {
355
- return null;
356
- }
357
- const host = parsed.hostname;
358
- if (host === "api.agt.localhost") {
359
- parsed.hostname = "console.agt.localhost";
360
- return stripTrailingSlash(parsed.toString());
361
- }
362
- if (host.startsWith("api.")) {
363
- parsed.hostname = `app.${host.slice(4)}`;
364
- return stripTrailingSlash(parsed.toString());
365
- }
366
- return null;
367
- }
368
- function stripTrailingSlash(value) {
369
- return value.replace(/\/+$/, "");
370
- }
371
-
372
119
  // ../../packages/core/dist/types/models.js
373
120
  var DEFAULT_MODELS = {
374
121
  primary: "openrouter/anthropic/claude-opus-4-6",
@@ -4668,6 +4415,259 @@ function detectDrift(snapshot, liveState, agentId, codeName, riskTier) {
4668
4415
  };
4669
4416
  }
4670
4417
 
4418
+ // ../../packages/core/dist/delivery/parse.js
4419
+ function parseDeliveryTarget(raw) {
4420
+ if (raw === null || typeof raw !== "object" || Array.isArray(raw)) {
4421
+ return {
4422
+ ok: false,
4423
+ code: "MALFORMED_DELIVERY_TARGET",
4424
+ detail: "delivery_to must be a JSON object"
4425
+ };
4426
+ }
4427
+ const obj = raw;
4428
+ const kind = obj["kind"];
4429
+ if (kind === "channel") {
4430
+ return parseChannelTarget(obj);
4431
+ }
4432
+ if (kind === "dm") {
4433
+ return parseDmTarget(obj);
4434
+ }
4435
+ return {
4436
+ ok: false,
4437
+ code: "UNKNOWN_KIND",
4438
+ detail: `delivery_to.kind must be 'channel' or 'dm' (got ${JSON.stringify(kind)})`
4439
+ };
4440
+ }
4441
+ function parseChannelTarget(obj) {
4442
+ const provider = obj["provider"];
4443
+ if (provider === "slack") {
4444
+ const channelId = obj["channel_id"];
4445
+ if (typeof channelId !== "string" || channelId.length === 0) {
4446
+ return {
4447
+ ok: false,
4448
+ code: "MISSING_CHANNEL_ID",
4449
+ detail: "channel:slack target requires a non-empty channel_id"
4450
+ };
4451
+ }
4452
+ const threadTs = obj["thread_ts"];
4453
+ if (threadTs !== void 0 && threadTs !== null) {
4454
+ if (typeof threadTs !== "string" || threadTs.length === 0) {
4455
+ return {
4456
+ ok: false,
4457
+ code: "MALFORMED_DELIVERY_TARGET",
4458
+ detail: "channel:slack thread_ts must be a non-empty string when present"
4459
+ };
4460
+ }
4461
+ return { kind: "channel", provider: "slack", channel_id: channelId, thread_ts: threadTs };
4462
+ }
4463
+ return { kind: "channel", provider: "slack", channel_id: channelId };
4464
+ }
4465
+ if (provider === "telegram") {
4466
+ const chatId = obj["chat_id"];
4467
+ if (typeof chatId !== "string" || chatId.length === 0) {
4468
+ return {
4469
+ ok: false,
4470
+ code: "MISSING_CHAT_ID",
4471
+ detail: "channel:telegram target requires a non-empty chat_id"
4472
+ };
4473
+ }
4474
+ return { kind: "channel", provider: "telegram", chat_id: chatId };
4475
+ }
4476
+ return {
4477
+ ok: false,
4478
+ code: "UNKNOWN_PROVIDER",
4479
+ detail: `channel.provider must be 'slack' or 'telegram' (got ${JSON.stringify(provider)})`
4480
+ };
4481
+ }
4482
+ var SUPPORTED_MEDIUMS = /* @__PURE__ */ new Set(["auto", "slack", "telegram"]);
4483
+ var RESERVED_MEDIUMS = /* @__PURE__ */ new Set(["teams", "whatsapp", "imessage"]);
4484
+ function parseDmTarget(obj) {
4485
+ const personId = obj["person_id"];
4486
+ if (typeof personId !== "string" || personId.length === 0) {
4487
+ return {
4488
+ ok: false,
4489
+ code: "MISSING_PERSON_ID",
4490
+ detail: "dm target requires a non-empty person_id"
4491
+ };
4492
+ }
4493
+ const followReportsTo = obj["follow_reports_to"];
4494
+ if (typeof followReportsTo !== "boolean") {
4495
+ return {
4496
+ ok: false,
4497
+ code: "MALFORMED_DELIVERY_TARGET",
4498
+ detail: "dm.follow_reports_to must be a boolean"
4499
+ };
4500
+ }
4501
+ const medium = obj["medium"];
4502
+ if (typeof medium !== "string") {
4503
+ return {
4504
+ ok: false,
4505
+ code: "MALFORMED_DELIVERY_TARGET",
4506
+ detail: "dm.medium must be a string"
4507
+ };
4508
+ }
4509
+ if (RESERVED_MEDIUMS.has(medium)) {
4510
+ return {
4511
+ ok: false,
4512
+ code: "DM_MEDIUM_NOT_SUPPORTED",
4513
+ detail: `dm.medium '${medium}' is reserved but not yet dispatchable (ENG-4427)`
4514
+ };
4515
+ }
4516
+ if (!SUPPORTED_MEDIUMS.has(medium)) {
4517
+ return {
4518
+ ok: false,
4519
+ code: "UNKNOWN_MEDIUM",
4520
+ detail: `dm.medium must be 'auto', 'slack', or 'telegram' (got ${JSON.stringify(medium)})`
4521
+ };
4522
+ }
4523
+ return {
4524
+ kind: "dm",
4525
+ person_id: personId,
4526
+ follow_reports_to: followReportsTo,
4527
+ medium
4528
+ };
4529
+ }
4530
+ function isParseError(v) {
4531
+ return typeof v === "object" && v !== null && "ok" in v && v.ok === false;
4532
+ }
4533
+
4534
+ // ../../packages/core/dist/delivery/format.js
4535
+ function formatDmFooter(teamName, agentDisplayName) {
4536
+ const team = teamName?.trim() || "unassigned team";
4537
+ return `\u2014 scheduled by ${team} / ${agentDisplayName}`;
4538
+ }
4539
+ function appendDmFooter(body, teamName, agentDisplayName) {
4540
+ const footer = formatDmFooter(teamName, agentDisplayName);
4541
+ const trimmed = body.replace(/\s+$/, "");
4542
+ if (trimmed.endsWith(footer))
4543
+ return trimmed;
4544
+ return `${trimmed}
4545
+
4546
+ ${footer}`;
4547
+ }
4548
+ function formatForOpenClawCli(target) {
4549
+ if (target.kind === "channel") {
4550
+ if (target.provider === "slack") {
4551
+ if (!target.channel_id) {
4552
+ throw new Error("INVALID_DELIVERY_TARGET: slack channel target is missing channel_id");
4553
+ }
4554
+ return `channel:${target.channel_id}`;
4555
+ }
4556
+ if (!target.chat_id) {
4557
+ throw new Error("INVALID_DELIVERY_TARGET: telegram channel target is missing chat_id");
4558
+ }
4559
+ return `chat:${target.chat_id}`;
4560
+ }
4561
+ throw new Error(`DM_NOT_SUPPORTED_ON_FRAMEWORK: dm targets can't be passed to openclaw cron add. See ENG-4423 \xA79.1 and the follow-up ENG-4431.`);
4562
+ }
4563
+
4564
+ // ../../packages/core/dist/delivery/resolve.js
4565
+ function resolveDmTarget(target, agent, people) {
4566
+ if (target.kind === "channel") {
4567
+ if (target.provider === "slack") {
4568
+ return {
4569
+ ok: true,
4570
+ kind: "channel",
4571
+ provider: "slack",
4572
+ channel_id: target.channel_id ?? "",
4573
+ // ENG-6038: carry the originating-thread coordinate through to
4574
+ // dispatch. Absent → top-level post (pre-ENG-6038 behaviour).
4575
+ ...target.thread_ts ? { thread_ts: target.thread_ts } : {}
4576
+ };
4577
+ }
4578
+ return {
4579
+ ok: true,
4580
+ kind: "channel",
4581
+ provider: "telegram",
4582
+ chat_id: target.chat_id ?? ""
4583
+ };
4584
+ }
4585
+ const effectivePersonId = resolveEffectivePersonId(target, agent);
4586
+ if ("ok" in effectivePersonId)
4587
+ return effectivePersonId;
4588
+ const person = people.get(effectivePersonId.person_id);
4589
+ if (!person) {
4590
+ return {
4591
+ ok: false,
4592
+ code: "DM_TARGET_PERSON_NOT_FOUND",
4593
+ detail: `person ${effectivePersonId.person_id} not present in resolver people map`
4594
+ };
4595
+ }
4596
+ const FALLBACK_ORDER = ["slack", "telegram"];
4597
+ const preferredMedium = target.medium === "auto" ? null : target.medium;
4598
+ const chosenMedium = preferredMedium ? agent.dm_capable_mediums.includes(preferredMedium) && personHasMedium(person, preferredMedium) ? preferredMedium : null : FALLBACK_ORDER.find((m) => agent.dm_capable_mediums.includes(m) && personHasMedium(person, m)) ?? null;
4599
+ if (!chosenMedium) {
4600
+ return {
4601
+ ok: false,
4602
+ code: "DM_TARGET_NO_REACHABLE_MEDIUM",
4603
+ detail: `agent and person ${person.person_id} share no DM-capable medium`
4604
+ };
4605
+ }
4606
+ if (chosenMedium === "slack") {
4607
+ return {
4608
+ ok: true,
4609
+ kind: "dm",
4610
+ medium: "slack",
4611
+ slack_user_id: person.slack_user_id,
4612
+ recipient_person_id: person.person_id
4613
+ };
4614
+ }
4615
+ return {
4616
+ ok: true,
4617
+ kind: "dm",
4618
+ medium: "telegram",
4619
+ telegram_chat_id: person.telegram_chat_id,
4620
+ recipient_person_id: person.person_id
4621
+ };
4622
+ }
4623
+ function resolveEffectivePersonId(target, agent) {
4624
+ if (target.follow_reports_to) {
4625
+ if (agent.reports_to_type !== "person" || !agent.reports_to_person_id) {
4626
+ return {
4627
+ ok: false,
4628
+ code: "DM_FOLLOW_TARGET_NOT_PERSON",
4629
+ detail: "follow_reports_to=true but the agent has no person-typed reports_to at dispatch time"
4630
+ };
4631
+ }
4632
+ return { person_id: agent.reports_to_person_id };
4633
+ }
4634
+ return { person_id: target.person_id };
4635
+ }
4636
+ function personHasMedium(person, medium) {
4637
+ if (medium === "slack")
4638
+ return Boolean(person.slack_user_id);
4639
+ return Boolean(person.telegram_chat_id);
4640
+ }
4641
+ function isResolveError(v) {
4642
+ return "ok" in v && v.ok === false;
4643
+ }
4644
+
4645
+ // ../../packages/core/dist/delivery/console-url.js
4646
+ function deriveConsoleUrl(apiUrl) {
4647
+ const trimmed = apiUrl?.trim();
4648
+ if (!trimmed)
4649
+ return null;
4650
+ let parsed;
4651
+ try {
4652
+ parsed = new URL(trimmed);
4653
+ } catch {
4654
+ return null;
4655
+ }
4656
+ const host = parsed.hostname;
4657
+ if (host === "api.agt.localhost") {
4658
+ parsed.hostname = "console.agt.localhost";
4659
+ return stripTrailingSlash(parsed.toString());
4660
+ }
4661
+ if (host.startsWith("api.")) {
4662
+ parsed.hostname = `app.${host.slice(4)}`;
4663
+ return stripTrailingSlash(parsed.toString());
4664
+ }
4665
+ return null;
4666
+ }
4667
+ function stripTrailingSlash(value) {
4668
+ return value.replace(/\/+$/, "");
4669
+ }
4670
+
4671
4671
  // ../../packages/core/dist/liveness/agent-liveness.js
4672
4672
  var FRESH_HEARTBEAT_THRESHOLD_MS = 2 * 60 * 1e3;
4673
4673
 
@@ -5305,4 +5305,4 @@ export {
5305
5305
  coerceEnvValue,
5306
5306
  FLAGS_SCHEMA_VERSION
5307
5307
  };
5308
- //# sourceMappingURL=chunk-SN2G4B2Z.js.map
5308
+ //# sourceMappingURL=chunk-VIIPFWE4.js.map