glimmervoid 0.40.0 → 0.41.0

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 (42) hide show
  1. package/dist/bin/glimmervoid.js +18 -18
  2. package/dist/chunks/{adapters-CXQfLoyj.js → adapters-JDV45XpZ.js} +1 -1
  3. package/dist/chunks/{adapters-B6tbX3Aj.js → adapters-yVOK5me4.js} +293 -15
  4. package/dist/chunks/{agent-api-cli-BNHJTmNW.js → agent-api-cli-1xk9WryE.js} +12 -3
  5. package/dist/chunks/{agent-api-cli-BBech5lF.js → agent-api-cli-BSY2jR0P.js} +1 -1
  6. package/dist/chunks/{agent-api-core-DDrJQEdE.js → agent-api-core-syEPHs7j.js} +22 -4
  7. package/dist/chunks/{agent-setup-cli-CeBBwKuL.js → agent-setup-cli-py1gUMvJ.js} +1 -1
  8. package/dist/chunks/child-process-safe-CjVtRjDD.js +1 -0
  9. package/dist/chunks/{child-process-safe-CbQnyh7D.js → child-process-safe-D4hyVIXj.js} +4 -1
  10. package/dist/chunks/{config-store-DqMScSdg.js → config-store-BEaaXTd5.js} +38 -2
  11. package/dist/chunks/config-store-DE_r4DP8.js +1 -0
  12. package/dist/chunks/{contracts-CloExMlS.js → contracts-V_hfT23R.js} +167 -6
  13. package/dist/chunks/{control-messages-DpBaniJi.js → control-messages-Ci4g6gD1.js} +110 -2
  14. package/dist/chunks/{git-version-CJQMfxtZ.js → git-version-D_iXgYTZ.js} +2 -2
  15. package/dist/chunks/{grok-BLzhApwT.js → grok-BUGgQVE3.js} +1 -1
  16. package/dist/chunks/{guardrails-deps-CLxK4J-g.js → guardrails-deps-BjPzk1rE.js} +1 -1
  17. package/dist/chunks/{main-DDU8IvFD.js → main-Bbh8ky2x.js} +8458 -5740
  18. package/dist/chunks/{pair-cli-CsOVTQGJ.js → pair-cli-DkItUGpT.js} +2 -2
  19. package/dist/chunks/{remote-config-HlABuLTp.js → remote-config-DFwmHWed.js} +1 -1
  20. package/dist/chunks/{rtk-resolver-BgoPsEhT.js → rtk-resolver-BDHi6RMv.js} +1 -1
  21. package/dist/chunks/rtk-resolver-Dr4iJsiS.js +1 -0
  22. package/dist/chunks/{session-BwB43SCa.js → session-C8IpFmGQ.js} +39 -3
  23. package/dist/chunks/{session-routes-DNJzsckH.js → session-routes-nySS7DUE.js} +36 -2
  24. package/dist/chunks/{settings-cli-DkkbK-dj.js → settings-cli-CaYd3bUH.js} +5 -5
  25. package/dist/chunks/{settings-readout-core-DrXT4aWm.js → settings-readout-core-Du7n-zyD.js} +2 -2
  26. package/dist/chunks/{ssh-sign-cli-CYeKRevK.js → ssh-sign-cli-BLzmQ3Vh.js} +3 -3
  27. package/dist/chunks/{visions-cli-CYujESdJ.js → visions-cli-CVRB9IWA.js} +1 -1
  28. package/dist/chunks/{visions-setup-B-ZeRdsi.js → visions-setup-DB2P8JUL.js} +1 -1
  29. package/dist/client/assets/index-D7QFo-gy.js +176 -0
  30. package/dist/client/assets/index-DKnOk67Z.css +2 -0
  31. package/dist/client/index.html +2 -3
  32. package/dist/scripts/postinstall-path-check.js +1 -1
  33. package/dist/server/index.js +1 -1
  34. package/dist/session/guardrails-open-launcher.js +1 -1
  35. package/dist/session/hook-tool-relay.js +1 -1
  36. package/dist/session/statusline-relay.js +1 -1
  37. package/package.json +1 -1
  38. package/dist/chunks/child-process-safe-ChRmWAJP.js +0 -1
  39. package/dist/chunks/config-store-BZpN2djp.js +0 -1
  40. package/dist/chunks/rtk-resolver-BGE6Hd_L.js +0 -1
  41. package/dist/client/assets/index-BK9jLR47.js +0 -148
  42. package/dist/client/assets/index-CU_uqJmi.css +0 -2
@@ -1,10 +1,10 @@
1
1
  import { n as errorLabel, r as errorMessage } from "./text-DoirglWV.js";
2
2
  import { n as equalsIgnoringCaseOnWindows } from "./paths-Bu4eH1Yd.js";
3
- import { $ as USAGE_BUDGET_RANGE, A as FLYING_ANIMALS_DEFAULTS, B as POSTHOG_FIX_TIMEOUT_RANGE, F as MEMORY_RESERVE_MB_RANGE, I as NON_NEGATIVE_NUMBER_RANGE, J as POSTHOG_TRAFFIC_MIN_USERS_RANGE, K as POSTHOG_TRAFFIC_BASELINE_RANGE, L as PORT_RANGE, M as FLYING_ANIMALS_GAP_RANGE, N as FLYING_ANIMALS_SCALE_RANGE, P as KEEP_MERGEABLE_TIMEOUT_MINUTES_RANGE, Q as TASK_TITLE_TIMEOUT_RANGE, R as POSITIVE_NUMBER_RANGE, Y as POSTHOG_TRAFFIC_MULTIPLIER_RANGE, Z as REPLAY_BUFFER_KB_RANGE, et as USAGE_INTEGER_RANGES, j as FLYING_ANIMALS_DURATION_RANGE, k as CHANGE_MAP_NARRATOR_TIMEOUT_RANGE, lt as WORKFLOWS_MAX_ACTIONS_PER_POLL_RANGE, nt as USAGE_SCAN_INTERVAL_RANGE, tt as USAGE_RETAIN_DAYS_RANGE, ut as WORKFLOWS_MAX_CONCURRENT_SESSIONS_RANGE } from "./control-messages-DpBaniJi.js";
3
+ import { B as PORT_RANGE, F as FLYING_ANIMALS_GAP_RANGE, I as FLYING_ANIMALS_SCALE_RANGE, L as KEEP_MERGEABLE_TIMEOUT_MINUTES_RANGE, M as CHANGE_MAP_NARRATOR_TIMEOUT_RANGE, N as FLYING_ANIMALS_DEFAULTS, P as FLYING_ANIMALS_DURATION_RANGE, Q as POSTHOG_TRAFFIC_MULTIPLIER_RANGE, R as MEMORY_RESERVE_MB_RANGE, U as POSTHOG_FIX_TIMEOUT_RANGE, V as POSITIVE_NUMBER_RANGE, Y as POSTHOG_TRAFFIC_BASELINE_RANGE, Z as POSTHOG_TRAFFIC_MIN_USERS_RANGE, at as USAGE_SCAN_INTERVAL_RANGE, et as REPLAY_BUFFER_KB_RANGE, ft as WORKFLOWS_MAX_ACTIONS_PER_POLL_RANGE, it as USAGE_RETAIN_DAYS_RANGE, nt as USAGE_BUDGET_RANGE, pt as WORKFLOWS_MAX_CONCURRENT_SESSIONS_RANGE, rt as USAGE_INTEGER_RANGES, tt as TASK_TITLE_TIMEOUT_RANGE, z as NON_NEGATIVE_NUMBER_RANGE } from "./control-messages-Ci4g6gD1.js";
4
4
  import { n as glimmervoidHomeDir$1, t as decideConfigPath } from "./config-path-core-DFt-TemS.js";
5
5
  import { n as isRecord } from "./coerce-NSst8oRP.js";
6
6
  import { d as writeJsonAtomicSync, f as writeTextAtomic, p as writeTextAtomicSync } from "./json-file-DFCTvPjj.js";
7
- import { C as UPDATE_CHANNELS, E as normalizeLegacyConfigNumbers, S as POST_TURN_CHECK_MODES, _ as RUNTIME_CONFIG_SCALAR_KEYS, b as BranchGcFileSettings, d as AGENT_ID_SHAPE_MESSAGE, f as BUILTIN_AGENT_IDS, l as TELEMETRY_KILL_SWITCH_FLAG, m as Config, o as FeatureFlagsResponse, w as USAGE_COST_MODES, x as CHANGE_MAP_NARRATOR_ENGINES, y as configIssueMessage } from "./contracts-CloExMlS.js";
7
+ import { C as POST_TURN_CHECK_MODES, D as normalizeLegacyConfigNumbers, S as CHANGE_MAP_NARRATOR_ENGINES, T as USAGE_COST_MODES, b as configIssueMessage, f as AGENT_ID_SHAPE_MESSAGE, h as Config, p as BUILTIN_AGENT_IDS, s as FeatureFlagsResponse, u as TELEMETRY_KILL_SWITCH_FLAG, v as RUNTIME_CONFIG_SCALAR_KEYS, w as UPDATE_CHANNELS, x as BranchGcFileSettings } from "./contracts-V_hfT23R.js";
8
8
  import fs from "node:fs";
9
9
  import path from "node:path";
10
10
  import os from "node:os";
@@ -1031,6 +1031,22 @@ var SECTIONS = Object.freeze([
1031
1031
  defaultValue: false,
1032
1032
  ...MACHINE_NOW
1033
1033
  },
1034
+ {
1035
+ id: "remote-sessions",
1036
+ path: "remoteSessions",
1037
+ title: "Remote Coder sessions (experimental)",
1038
+ description: "Offer the Coder environments in config.json when adding a session, so the session runs in its own Coder workspace instead of on this machine. Off refuses new remote sessions; ones already running keep working until closed.",
1039
+ control: "toggle",
1040
+ keywords: [
1041
+ "experimental",
1042
+ "coder",
1043
+ "remote",
1044
+ "workspace",
1045
+ "cloud"
1046
+ ],
1047
+ defaultValue: false,
1048
+ ...MACHINE_NOW
1049
+ },
1034
1050
  {
1035
1051
  id: "streamer-mode",
1036
1052
  path: "streamerMode",
@@ -1066,6 +1082,23 @@ var SECTIONS = Object.freeze([
1066
1082
  keywords: ["adapters", "cli"],
1067
1083
  status: "custom-agents",
1068
1084
  ...READOUT
1085
+ },
1086
+ {
1087
+ id: "agent-logins",
1088
+ path: "status:agent-logins",
1089
+ title: "Agent logins",
1090
+ description: "How Claude Code and Codex sign in inside a Coder workspace. Each uses the login already on this machine; Connect signs one in for Glimmervoid alone when there is none.",
1091
+ control: "readonly",
1092
+ keywords: [
1093
+ "claude",
1094
+ "codex",
1095
+ "sign in",
1096
+ "login",
1097
+ "coder",
1098
+ "remote"
1099
+ ],
1100
+ status: "agent-logins",
1101
+ ...READOUT
1069
1102
  }
1070
1103
  ]
1071
1104
  },
@@ -3370,6 +3403,7 @@ var DEFAULT_CONFIG = {
3370
3403
  conversationView: false,
3371
3404
  streamerMode: false,
3372
3405
  zenView: false,
3406
+ remoteSessions: false,
3373
3407
  detectBackgroundAgents: true,
3374
3408
  detectScheduledWakeups: true,
3375
3409
  replayBufferKB: 512,
@@ -3508,6 +3542,7 @@ function validateConfig(candidate) {
3508
3542
  if (field === "agent") return `projects[${index}].agent must be ${AGENT_ID_SHAPE_MESSAGE}`;
3509
3543
  if (field === "codexBypassHookTrust") return `projects[${index}].codexBypassHookTrust must be a boolean`;
3510
3544
  if (field === "conversationView") return `projects[${index}].conversationView must be a boolean`;
3545
+ if (field === "environment") return issue.message;
3511
3546
  return `projects[${index}].${String(field)} must be a string`;
3512
3547
  })
3513
3548
  };
@@ -3807,6 +3842,7 @@ function createConfigStore({ settingsDefaults } = {}) {
3807
3842
  conversationView: config.conversationView ?? effectiveDefaults.conversationView,
3808
3843
  streamerMode: config.streamerMode ?? effectiveDefaults.streamerMode,
3809
3844
  zenView: config.zenView ?? effectiveDefaults.zenView,
3845
+ remoteSessions: config.remoteSessions ?? effectiveDefaults.remoteSessions,
3810
3846
  detectBackgroundAgents: config.detectBackgroundAgents ?? effectiveDefaults.detectBackgroundAgents,
3811
3847
  recordSignals: config.recordSignals ?? effectiveDefaults.recordSignals,
3812
3848
  trace: pickBlock("trace", {
@@ -0,0 +1 @@
1
+ export { s as loadConfigFile } from "./config-store-BEaaXTd5.js";
@@ -1,5 +1,5 @@
1
- import { Bt as repoParts, F as TaskTitle, nt as SessionPrLinks } from "./session-BwB43SCa.js";
2
- import { B as POSTHOG_FIX_TIMEOUT_RANGE, D as BRANCH_GC_INTERVAL_MS_RANGE, F as MEMORY_RESERVE_MB_RANGE, G as POSTHOG_RECURRENCE_WINDOW_RANGE, H as POSTHOG_INVESTIGATION_TIMEOUT_RANGE, J as POSTHOG_TRAFFIC_MIN_USERS_RANGE, K as POSTHOG_TRAFFIC_BASELINE_RANGE, L as PORT_RANGE, O as BRANCH_GC_STALE_DAYS_RANGE, P as KEEP_MERGEABLE_TIMEOUT_MINUTES_RANGE, Q as TASK_TITLE_TIMEOUT_RANGE, R as POSITIVE_NUMBER_RANGE, T as WorkflowsSettingsUpdate, U as POSTHOG_MAX_CONCURRENT_RANGE, V as POSTHOG_INTERVAL_RANGE, W as POSTHOG_MIN_USERS_RANGE, X as POSTHOG_TRANSIENT_RECURRENCE_RANGE, Y as POSTHOG_TRAFFIC_MULTIPLIER_RANGE, Z as REPLAY_BUFFER_KB_RANGE, at as VISIONS_DISPATCH_TIMEOUT_RANGE, ct as VISIONS_QUIET_MS_RANGE, et as USAGE_INTEGER_RANGES, it as VISIONS_COOLDOWN_MS_RANGE, k as CHANGE_MAP_NARRATOR_TIMEOUT_RANGE, ot as VISIONS_INTENT_THREAD_TTL_MS_RANGE, q as POSTHOG_TRAFFIC_COOLDOWN_RANGE, rt as VISIONS_ACTIVITY_MAX_PER_HOUR_RANGE, st as VISIONS_MAX_PER_HOUR_RANGE, w as WorkflowsSettings, z as POSTHOG_ESCALATION_RANGE } from "./control-messages-DpBaniJi.js";
1
+ import { R as TaskTitle, Ut as repoParts, at as SessionPrLinks } from "./session-C8IpFmGQ.js";
2
+ import { $ as POSTHOG_TRANSIENT_RECURRENCE_RANGE, A as BRANCH_GC_INTERVAL_MS_RANGE, B as PORT_RANGE, D as WorkflowsSettings, G as POSTHOG_INVESTIGATION_TIMEOUT_RANGE, H as POSTHOG_ESCALATION_RANGE, J as POSTHOG_RECURRENCE_WINDOW_RANGE, K as POSTHOG_MAX_CONCURRENT_RANGE, L as KEEP_MERGEABLE_TIMEOUT_MINUTES_RANGE, M as CHANGE_MAP_NARRATOR_TIMEOUT_RANGE, O as WorkflowsSettingsUpdate, Q as POSTHOG_TRAFFIC_MULTIPLIER_RANGE, R as MEMORY_RESERVE_MB_RANGE, U as POSTHOG_FIX_TIMEOUT_RANGE, V as POSITIVE_NUMBER_RANGE, W as POSTHOG_INTERVAL_RANGE, X as POSTHOG_TRAFFIC_COOLDOWN_RANGE, Y as POSTHOG_TRAFFIC_BASELINE_RANGE, Z as POSTHOG_TRAFFIC_MIN_USERS_RANGE, ct as VISIONS_DISPATCH_TIMEOUT_RANGE, dt as VISIONS_QUIET_MS_RANGE, et as REPLAY_BUFFER_KB_RANGE, j as BRANCH_GC_STALE_DAYS_RANGE, lt as VISIONS_INTENT_THREAD_TTL_MS_RANGE, o as OPERATOR_ACTIONS_BY_SURFACE, ot as VISIONS_ACTIVITY_MAX_PER_HOUR_RANGE, q as POSTHOG_MIN_USERS_RANGE, r as DASHBOARD_VIEWS, rt as USAGE_INTEGER_RANGES, s as OPERATOR_SURFACES, st as VISIONS_COOLDOWN_MS_RANGE, tt as TASK_TITLE_TIMEOUT_RANGE, ut as VISIONS_MAX_PER_HOUR_RANGE } from "./control-messages-Ci4g6gD1.js";
3
3
  import { n as isRecord } from "./coerce-NSst8oRP.js";
4
4
  import path from "node:path";
5
5
  import { z } from "zod";
@@ -260,6 +260,7 @@ var createBrowserConfigShape = (isAbsolutePath) => ({
260
260
  conversationView: optionalBoolean("conversationView"),
261
261
  streamerMode: optionalBoolean("streamerMode"),
262
262
  zenView: optionalBoolean("zenView"),
263
+ remoteSessions: optionalBoolean("remoteSessions"),
263
264
  detectBackgroundAgents: optionalBoolean("detectBackgroundAgents"),
264
265
  recordSignals: optionalBoolean("recordSignals"),
265
266
  rtk: optionalBoolean("rtk"),
@@ -339,6 +340,42 @@ function isGitBranchName(name) {
339
340
  if (GIT_BRANCH_FORBIDDEN_PUNCTUATION_RE.test(name) || [...name].some(isControlOrSpaceCharacter)) return false;
340
341
  return name.split("/").every((component) => !component.startsWith(".") && !component.endsWith(".lock"));
341
342
  }
343
+ var CODER_WORKSPACE_NAME_RE = /^gv-[0-9a-f]{12}$/;
344
+ var CODER_ENVIRONMENT_NAME_RE = /^[a-z][a-z0-9-]{0,31}$/;
345
+ var CODER_STOP_AFTER_RE = /^[1-9][0-9]*[hm]$/;
346
+ var absolutePosixPath = (field) => z.string({ error: `${field} must be a string` }).refine((value) => path.posix.isAbsolute(value), { error: `${field} must be an absolute path` });
347
+ var positiveInteger = (field) => z.number({ error: `${field} must be a number` }).int({ error: `${field} must be a whole number` }).positive({ error: `${field} must be positive` });
348
+ var PARAMETERS_MESSAGE = "coder.environments[].parameters must map names to strings";
349
+ var CoderEnvironment = z.object({
350
+ name: z.string({ error: "coder.environments[].name must be a string" }).regex(CODER_ENVIRONMENT_NAME_RE, { error: "coder.environments[].name must be 1 to 32 lowercase letters, digits and dashes, starting with a letter" }),
351
+ template: z.string({ error: "coder.environments[].template must be a string" }).min(1, { error: "coder.environments[].template must not be empty" }).refine((value) => !value.startsWith("-"), { error: "coder.environments[].template must not start with a dash" }),
352
+ parameters: z.record(z.string(), z.string({ error: PARAMETERS_MESSAGE }), { error: PARAMETERS_MESSAGE }).optional(),
353
+ nodePath: absolutePosixPath("coder.environments[].nodePath"),
354
+ checkoutRoot: absolutePosixPath("coder.environments[].checkoutRoot"),
355
+ readyUrl: z.url({
356
+ protocol: /^https?$/,
357
+ error: "coder.environments[].readyUrl must be an http or https URL"
358
+ }).optional(),
359
+ idleStopMinutes: positiveInteger("coder.environments[].idleStopMinutes").optional(),
360
+ stopAfter: z.string().regex(CODER_STOP_AFTER_RE, { error: "coder.environments[].stopAfter must be a duration like 4h or 90m" }).optional(),
361
+ maxLive: positiveInteger("coder.environments[].maxLive").optional(),
362
+ deleteAfterStoppedDays: positiveInteger("coder.environments[].deleteAfterStoppedDays").optional(),
363
+ hourlyCostUsd: z.number({ error: "coder.environments[].hourlyCostUsd must be a number" }).nonnegative({ error: "coder.environments[].hourlyCostUsd must not be negative" }).optional()
364
+ }).strict();
365
+ var CoderSettings = z.object({
366
+ appSlug: z.string().optional(),
367
+ environments: z.array(CoderEnvironment).optional().refine((environments) => {
368
+ const names = (environments ?? []).map((environment) => environment.name);
369
+ return new Set(names).size === names.length;
370
+ }, { error: "coder.environments[].name must be unique" })
371
+ }).loose().optional();
372
+ var PORT_MESSAGE = "projects[].environment.remotePort must be a port from 1 to 65535";
373
+ var ProjectEnvironment = z.object({
374
+ name: z.string().regex(CODER_ENVIRONMENT_NAME_RE, { error: "projects[].environment.name must name a coder environment" }),
375
+ workspace: z.string().regex(CODER_WORKSPACE_NAME_RE, { error: "projects[].environment.workspace must be gv- and 12 hex digits" }),
376
+ remotePort: z.number({ error: PORT_MESSAGE }).int({ error: PORT_MESSAGE }).min(1, { error: PORT_MESSAGE }).max(65535, { error: PORT_MESSAGE }),
377
+ branch: z.string().refine(isGitBranchName, { error: "projects[].environment.branch must be a git branch name" })
378
+ }).strict();
342
379
  var CustomAgentDeclaration = z.object({
343
380
  id: z.string({ error: "customAgents[].id must be a string" }).regex(AGENT_ID_RE, { error: `customAgents[].id must be ${AGENT_ID_SHAPE_MESSAGE}` }),
344
381
  label: z.string({ error: "customAgents[].label must be a string" }).min(1, { error: "customAgents[].label must not be empty" }).max(60, { error: "customAgents[].label must be at most 60 characters" }),
@@ -400,13 +437,14 @@ var ProjectConfig = z.object({
400
437
  codexBypassHookTrust: z.boolean().optional(),
401
438
  conversationView: z.boolean({ error: "projects[].conversationView must be a boolean" }).optional(),
402
439
  dangerouslySkipPermissions: z.boolean({ error: "projects[].dangerouslySkipPermissions must be a boolean" }).optional(),
403
- unguarded: z.boolean({ error: "projects[].unguarded must be a boolean" }).optional()
440
+ unguarded: z.boolean({ error: "projects[].unguarded must be a boolean" }).optional(),
441
+ environment: ProjectEnvironment.optional()
404
442
  }).passthrough();
405
443
  var FILE_CONFIG_SHAPE = {
406
444
  ...BROWSER_CONFIG_SHAPE,
407
445
  changeMap: ChangeMapSettings,
408
446
  branchGc: optionalLooseObject("branchGc"),
409
- coder: z.object({ appSlug: z.string().optional() }).loose().optional(),
447
+ coder: CoderSettings,
410
448
  visions: optionalLooseObject("visions"),
411
449
  github: GithubSettings,
412
450
  teamReview: optionalLooseObject("teamReview"),
@@ -457,6 +495,21 @@ var Config = z.object({
457
495
  message: `projects[${index}].agent "${agent}" names no known agent; declare it under customAgents or use one of ${[...declaredAgentIds].join(", ")}`
458
496
  });
459
497
  }
498
+ const declaredEnvironmentNames = new Set((config.coder?.environments ?? []).map((environment) => environment.name));
499
+ for (const [index, project] of config.projects.entries()) {
500
+ const environmentName = project?.environment?.name;
501
+ if (environmentName === void 0 || declaredEnvironmentNames.has(environmentName)) continue;
502
+ ctx.addIssue({
503
+ code: "custom",
504
+ path: [
505
+ "projects",
506
+ index,
507
+ "environment",
508
+ "name"
509
+ ],
510
+ message: `projects[${index}].environment "${environmentName}" must be declared under coder.environments`
511
+ });
512
+ }
460
513
  });
461
514
  var CONFIG_BLOCK_KEYS = Object.freeze([
462
515
  "changeMap",
@@ -508,6 +561,51 @@ var SESSION_EXIT_KINDS = Object.freeze([
508
561
  "signal",
509
562
  "no_output"
510
563
  ]);
564
+ var TEAM_REVIEW_SETTLED_OUTCOMES = Object.freeze([
565
+ "approve",
566
+ "comment",
567
+ "approve-only",
568
+ "discarded"
569
+ ]);
570
+ var TEAM_REVIEW_POST_REFUSAL_REASONS = Object.freeze([
571
+ "unknown-action",
572
+ "not-postable",
573
+ "comments-already-posted",
574
+ "empty-comment",
575
+ "rate-limited",
576
+ "head-unreadable",
577
+ "head-moved",
578
+ "diff-unreadable",
579
+ "misplaced-comments",
580
+ "github-refused"
581
+ ]);
582
+ var RADAR_VERDICTS = Object.freeze([
583
+ "ROOT_CAUSE",
584
+ "FIXED",
585
+ "NEEDS_HUMAN",
586
+ "TRANSIENT",
587
+ "ERROR"
588
+ ]);
589
+ var RADAR_JOB_MODES = Object.freeze(["investigate", "fix"]);
590
+ var RADAR_ERROR_REASONS = Object.freeze([
591
+ "agent-reported",
592
+ "no-result",
593
+ "invalid-result",
594
+ "timed-out",
595
+ "no-verdict",
596
+ "crashed",
597
+ "aborted",
598
+ "empty-fix",
599
+ "handoff-failed"
600
+ ]);
601
+ var RADAR_HANDOFF_STEPS = Object.freeze([
602
+ "read-diff",
603
+ "count-commits",
604
+ "push-branch",
605
+ "resolve-repo",
606
+ "open-pr"
607
+ ]);
608
+ var OPERATOR_ACTIONS = Object.freeze([...new Set(Object.values(OPERATOR_ACTIONS_BY_SURFACE).flat())]);
511
609
  var nonNegativeInteger = z.number().int().nonnegative();
512
610
  var boundedText = z.string().max(512);
513
611
  var AppStartedProperties = z.object({}).strict();
@@ -518,6 +616,34 @@ var SessionEndedProperties = z.object({
518
616
  exit_kind: z.enum(SESSION_EXIT_KINDS),
519
617
  duration_seconds: nonNegativeInteger
520
618
  }).strict();
619
+ var ViewShownProperties = z.object({ view: z.enum(DASHBOARD_VIEWS) }).strict();
620
+ function isActionOfSurface({ surface, action }) {
621
+ return OPERATOR_ACTIONS_BY_SURFACE[surface].includes(action);
622
+ }
623
+ var OperatorActionProperties = z.object({
624
+ surface: z.enum(OPERATOR_SURFACES),
625
+ action: z.enum(OPERATOR_ACTIONS)
626
+ }).strict().refine(isActionOfSurface, { message: "action does not belong to its surface" });
627
+ var TeamReviewDraftedProperties = z.object({ inline_comment_count: nonNegativeInteger }).strict();
628
+ var TeamReviewSettledProperties = z.object({
629
+ outcome: z.enum(TEAM_REVIEW_SETTLED_OUTCOMES),
630
+ drafted_comment_count: nonNegativeInteger,
631
+ posted_comment_count: nonNegativeInteger
632
+ }).strict();
633
+ var TeamReviewPostRefusedProperties = z.object({ reason: z.enum(TEAM_REVIEW_POST_REFUSAL_REASONS) }).strict();
634
+ var RadarInvestigationFinishedProperties = z.object({
635
+ verdict: z.enum(RADAR_VERDICTS),
636
+ mode: z.enum(RADAR_JOB_MODES),
637
+ error_reason: z.enum(RADAR_ERROR_REASONS).optional()
638
+ }).strict();
639
+ var RadarFixHandoffFailedProperties = z.object({ step: z.enum(RADAR_HANDOFF_STEPS) }).strict();
640
+ var DashboardTelemetryReport = z.discriminatedUnion("event", [z.object({
641
+ event: z.literal("view_shown"),
642
+ properties: ViewShownProperties
643
+ }), z.object({
644
+ event: z.literal("operator_action"),
645
+ properties: OperatorActionProperties
646
+ })]);
521
647
  var ExceptionFrame = z.object({
522
648
  platform: z.enum(["node:javascript", "web:javascript"]),
523
649
  function: boundedText,
@@ -559,7 +685,14 @@ var TELEMETRY_EVENT_SCHEMAS = Object.freeze({
559
685
  session_started: SessionStartedProperties,
560
686
  session_ended: SessionEndedProperties,
561
687
  $exception: ExceptionProperties,
562
- $ai_generation: AiGenerationProperties
688
+ $ai_generation: AiGenerationProperties,
689
+ view_shown: ViewShownProperties,
690
+ operator_action: OperatorActionProperties,
691
+ team_review_drafted: TeamReviewDraftedProperties,
692
+ team_review_settled: TeamReviewSettledProperties,
693
+ team_review_post_refused: TeamReviewPostRefusedProperties,
694
+ radar_investigation_finished: RadarInvestigationFinishedProperties,
695
+ radar_fix_handoff_failed: RadarFixHandoffFailedProperties
563
696
  });
564
697
  Object.freeze([
565
698
  {
@@ -585,6 +718,34 @@ Object.freeze([
585
718
  {
586
719
  name: "$ai_generation",
587
720
  description: "Per agent session and model, after each usage scan, for usage recorded in the last 24 hours: token counts, the model name and estimated cost, under a one-way hash of the session. A model name outside the shipped pricing table is sent as unknown. No prompts or output."
721
+ },
722
+ {
723
+ name: "view_shown",
724
+ description: "A dashboard tab opened, on desktop or phone, with which tab. Sent on every open."
725
+ },
726
+ {
727
+ name: "operator_action",
728
+ description: "An action taken in the Usage, Issues, Radar or Reviews tab: which tab and which action, from a fixed list. Never which repository, pull request, issue or session it was taken on."
729
+ },
730
+ {
731
+ name: "team_review_drafted",
732
+ description: "A team review draft became ready, with how many inline comments it drafted."
733
+ },
734
+ {
735
+ name: "team_review_settled",
736
+ description: "A team review draft was posted (approve, comment or approve-only) or discarded, with how many inline comments were drafted and how many were posted."
737
+ },
738
+ {
739
+ name: "team_review_post_refused",
740
+ description: "Posting a team review was refused, with a reason from a fixed list. Never the error text."
741
+ },
742
+ {
743
+ name: "radar_investigation_finished",
744
+ description: "A Radar investigation or fix run finished, with its verdict and mode, plus a reason from a fixed list when it ended in ERROR. Never the summary text."
745
+ },
746
+ {
747
+ name: "radar_fix_handoff_failed",
748
+ description: "Handing a Radar fix over as a pull request failed, with which step failed. Never the branch or the error text."
588
749
  }
589
750
  ]);
590
751
  Object.freeze([
@@ -677,4 +838,4 @@ z.object({
677
838
  projects: z.array(z.string()).optional()
678
839
  }).passthrough();
679
840
  //#endregion
680
- export { UPDATE_CHANNELS as C, normalizeLegacyConfigNumbers as E, POST_TURN_CHECK_MODES as S, USAGE_VENDOR_KEYS as T, RUNTIME_CONFIG_SCALAR_KEYS as _, parseDataClientMessage as a, BranchGcFileSettings as b, TELEMETRY_EVENT_SCHEMAS as c, AGENT_ID_SHAPE_MESSAGE as d, BUILTIN_AGENT_IDS as f, PersistedTaskTitle as g, ConfigUpdate as h, parseDataAttachHistory as i, TELEMETRY_KILL_SWITCH_FLAG as l, Config as m, HookEnvelope as n, FeatureFlagsResponse as o, BrowserConfig as p, DEEP_HISTORY_SCROLLBACK_LINES as r, PendingCrashReport as s, HTTP_URL_RE as t, TelemetryState as u, TASK_TITLE_SOURCE_PRIORITY as v, USAGE_COST_MODES as w, CHANGE_MAP_NARRATOR_ENGINES as x, configIssueMessage as y };
841
+ export { POST_TURN_CHECK_MODES as C, normalizeLegacyConfigNumbers as D, USAGE_VENDOR_KEYS as E, CHANGE_MAP_NARRATOR_ENGINES as S, USAGE_COST_MODES as T, PersistedTaskTitle as _, parseDataClientMessage as a, configIssueMessage as b, PendingCrashReport as c, TelemetryState as d, AGENT_ID_SHAPE_MESSAGE as f, ConfigUpdate as g, Config as h, parseDataAttachHistory as i, TELEMETRY_EVENT_SCHEMAS as l, BrowserConfig as m, HookEnvelope as n, DashboardTelemetryReport as o, BUILTIN_AGENT_IDS as p, DEEP_HISTORY_SCROLLBACK_LINES as r, FeatureFlagsResponse as s, HTTP_URL_RE as t, TELEMETRY_KILL_SWITCH_FLAG as u, RUNTIME_CONFIG_SCALAR_KEYS as v, UPDATE_CHANNELS as w, BranchGcFileSettings as x, TASK_TITLE_SOURCE_PRIORITY as y };
@@ -1,4 +1,4 @@
1
- import { A as SessionSnapshot, Et as TeamReviewStatus, F as TaskTitle, G as MyPrMergeRequest, H as MyPrKeepMergeableResult, Ht as GithubPollingRefreshResult, I as LinkedPr, J as MyPrMergeWhenReadyRequest, K as MyPrMergeResult, L as MyPr, Lt as GH_SEGMENT, Mt as hasRequiredActionHead, St as TeamReviewActionResult, Ut as GithubPrsFreshness, V as MyPrKeepMergeableRequest, Vt as GithubPollingRefreshRequest, Wt as githubPollingShape, X as MyPrSearchNode, Y as MyPrMergeWhenReadyResult, _ as ConversationApproval, at as CommitSha, b as PendingWakeup, g as ConversationAnswers, h as CoherenceHooksState, it as repositoryName, j as SessionState, k as SessionDoc, lt as GithubReviewDecision, mt as ReviewChecksState, nt as SessionPrLinks, rt as pullRequestKeyFormat, tt as MyPrsStatus, v as ConversationApprovalDecision, w as SESSION_DOC_PATH_MAX_CHARS, xt as TeamReviewActionRequest, zt as REPO_SLUG_RE } from "./session-BwB43SCa.js";
1
+ import { $ as MyPrSearchNode, B as MyPr, Bt as GH_SEGMENT, C as PendingWakeup, D as SESSION_DOC_PATH_MAX_CHARS, Ft as hasRequiredActionHead, G as MyPrKeepMergeableResult, Gt as GithubPollingRefreshResult, Ht as REPO_SLUG_RE, J as MyPrMergeRequest, Kt as GithubPrsFreshness, M as SessionDoc, N as SessionSnapshot, P as SessionState, Q as MyPrMergeWhenReadyResult, R as TaskTitle, Tt as TeamReviewActionResult, W as MyPrKeepMergeableRequest, Wt as GithubPollingRefreshRequest, Y as MyPrMergeResult, Z as MyPrMergeWhenReadyRequest, _t as ReviewChecksState, at as SessionPrLinks, b as ConversationApproval, ct as CommitSha, ft as GithubReviewDecision, it as MyPrsStatus, kt as TeamReviewStatus, ot as pullRequestKeyFormat, qt as githubPollingShape, st as repositoryName, v as CoherenceHooksState, wt as TeamReviewActionRequest, x as ConversationApprovalDecision, y as ConversationAnswers, z as LinkedPr } from "./session-C8IpFmGQ.js";
2
2
  import { z } from "zod";
3
3
  //#region shared/contracts/issues.ts
4
4
  var IssueRepoSlug = z.string().regex(REPO_SLUG_RE);
@@ -1332,6 +1332,30 @@ z.object({
1332
1332
  args: z.array(z.string()),
1333
1333
  resolvable: z.boolean().nullable()
1334
1334
  }).strict();
1335
+ var CoderEnvironmentOffer = z.object({
1336
+ name: z.string(),
1337
+ template: z.string(),
1338
+ parameters: z.record(z.string(), z.string()),
1339
+ hourlyCostUsd: z.number().nullable(),
1340
+ idleStopMinutes: z.number()
1341
+ });
1342
+ z.array(CoderEnvironmentOffer).nullable();
1343
+ var ConnectableAgent = z.enum(["claude-code", "codex"]);
1344
+ var AgentLoginStatus = z.object({
1345
+ agent: ConnectableAgent,
1346
+ state: z.enum([
1347
+ "signed-in",
1348
+ "signed-out",
1349
+ "connecting",
1350
+ "failed"
1351
+ ]),
1352
+ source: z.enum(["host", "glimmervoid"]).nullable(),
1353
+ verificationUrl: z.string().nullable(),
1354
+ userCode: z.string().nullable(),
1355
+ needsPastedCode: z.boolean(),
1356
+ reason: z.string().nullable()
1357
+ }).strict();
1358
+ var AgentLoginStatuses = z.array(AgentLoginStatus);
1335
1359
  var TelegramDeliveryStatus = z.object({
1336
1360
  setupWarning: nullableString,
1337
1361
  lastFailure: z.object({
@@ -1356,6 +1380,7 @@ var SessionCardFields = z.object({
1356
1380
  guardrailsReleased: z.boolean().optional(),
1357
1381
  resumeSessionId: nullableString,
1358
1382
  ephemeral: z.boolean().optional(),
1383
+ ownerId: sessionId.optional(),
1359
1384
  linkedPrs: z.array(LinkedPr).optional()
1360
1385
  });
1361
1386
  var DIFF_ANNOTATION_NOTE_MAX_CHARS = 1e3;
@@ -1395,6 +1420,7 @@ var updateStatusShape = {
1395
1420
  channel: UpdateChannel,
1396
1421
  behindCount: z.number().int().nonnegative().nullable(),
1397
1422
  reason: nullableString,
1423
+ deprecation: nullableString,
1398
1424
  journalSummary: UpdateJournalSummary.nullable(),
1399
1425
  applyRefusal: UpdateApplyRefusal.nullable()
1400
1426
  };
@@ -1403,6 +1429,66 @@ var ClientErrorReport = z.object({
1403
1429
  name: z.string().max(128),
1404
1430
  stack: z.string().max(8192)
1405
1431
  }).strict();
1432
+ var DASHBOARD_TELEMETRY_EVENTS = Object.freeze(["view_shown", "operator_action"]);
1433
+ var DASHBOARD_VIEWS = Object.freeze([
1434
+ "focus",
1435
+ "zen",
1436
+ "prs",
1437
+ "issues",
1438
+ "usage",
1439
+ "radar",
1440
+ "visions",
1441
+ "hooks",
1442
+ "trace",
1443
+ "benchmarks",
1444
+ "settings"
1445
+ ]);
1446
+ var OPERATOR_ACTIONS_BY_SURFACE = Object.freeze({
1447
+ usage: [
1448
+ "sort",
1449
+ "range",
1450
+ "period",
1451
+ "expand",
1452
+ "refresh"
1453
+ ],
1454
+ issues: [
1455
+ "scope",
1456
+ "filter",
1457
+ "search",
1458
+ "filters-toggle",
1459
+ "select",
1460
+ "back",
1461
+ "go-to-session",
1462
+ "open-session",
1463
+ "refresh"
1464
+ ],
1465
+ radar: [
1466
+ "report",
1467
+ "open-session",
1468
+ "resolve",
1469
+ "suppress",
1470
+ "archive-investigation"
1471
+ ],
1472
+ reviews: [
1473
+ "open-session",
1474
+ "approve",
1475
+ "approve-only",
1476
+ "comment",
1477
+ "discard",
1478
+ "requeue",
1479
+ "resolve-thread",
1480
+ "merge",
1481
+ "keep-mergeable",
1482
+ "merge-when-ready",
1483
+ "refresh"
1484
+ ]
1485
+ });
1486
+ var OPERATOR_SURFACES = Object.freeze([
1487
+ "usage",
1488
+ "issues",
1489
+ "radar",
1490
+ "reviews"
1491
+ ]);
1406
1492
  var idOnlyClientTypes = [
1407
1493
  "remove-session",
1408
1494
  "kill",
@@ -1436,6 +1522,7 @@ var clientVariants = [
1436
1522
  dangerouslySkipPermissions: z.boolean().optional(),
1437
1523
  unguarded: z.boolean().optional(),
1438
1524
  runInPlace: z.boolean().optional(),
1525
+ environment: z.string().optional(),
1439
1526
  requestId
1440
1527
  }),
1441
1528
  loose("list-conversations", {
@@ -1473,6 +1560,17 @@ var clientVariants = [
1473
1560
  }),
1474
1561
  loose("ping", { requestId }),
1475
1562
  loose("get-settings", { requestId }),
1563
+ loose("get-agent-logins", { requestId }),
1564
+ loose("agent-connect", {
1565
+ agent: ConnectableAgent,
1566
+ action: z.enum(["start", "cancel"]),
1567
+ requestId
1568
+ }),
1569
+ loose("agent-connect-code", {
1570
+ agent: ConnectableAgent,
1571
+ code: z.string(),
1572
+ requestId
1573
+ }),
1476
1574
  loose("update-settings", {
1477
1575
  settings: z.record(z.string(), z.unknown()),
1478
1576
  requestId
@@ -1620,6 +1718,10 @@ var clientVariants = [
1620
1718
  requestId
1621
1719
  }),
1622
1720
  loose("client-error", ClientErrorReport.shape),
1721
+ loose("dashboard-telemetry", {
1722
+ event: z.enum(DASHBOARD_TELEMETRY_EVENTS),
1723
+ properties: z.record(z.string(), z.unknown())
1724
+ }),
1623
1725
  loose("dismiss", {
1624
1726
  id: sessionId,
1625
1727
  force: z.unknown().optional(),
@@ -1633,6 +1735,7 @@ Object.freeze([
1633
1735
  "hooks-report",
1634
1736
  "save-hook-result",
1635
1737
  "add-session-result",
1738
+ "agent-logins",
1636
1739
  "delete-hook-result",
1637
1740
  "workspace-repos",
1638
1741
  "set-workspace-repos-result",
@@ -1762,6 +1865,11 @@ var serverVariants = [
1762
1865
  error: optionalError,
1763
1866
  reason: z.enum(["not-git"]).optional()
1764
1867
  }),
1868
+ loose("agent-logins", {
1869
+ requestId,
1870
+ logins: AgentLoginStatuses,
1871
+ error: optionalError
1872
+ }),
1765
1873
  loose("delete-hook-result", {
1766
1874
  requestId,
1767
1875
  ok: z.boolean(),
@@ -2269,4 +2377,4 @@ var serverVariants = [
2269
2377
  ];
2270
2378
  z.discriminatedUnion("type", serverVariants);
2271
2379
  //#endregion
2272
- export { USAGE_BUDGET_RANGE as $, FLYING_ANIMALS_DEFAULTS as A, IssueKey as At, POSTHOG_FIX_TIMEOUT_RANGE as B, WorkflowLabelName as C, PLAN_TOOL_NAME as Ct, BRANCH_GC_INTERVAL_MS_RANGE as D, planTitle as Dt, WorkflowsState as E, parseExitPlanModeHookPayload as Et, MEMORY_RESERVE_MB_RANGE as F, issuePullRequestStateFromGithub as Ft, POSTHOG_RECURRENCE_WINDOW_RANGE as G, POSTHOG_INVESTIGATION_TIMEOUT_RANGE as H, NON_NEGATIVE_NUMBER_RANGE as I, POSTHOG_TRAFFIC_MIN_USERS_RANGE as J, POSTHOG_TRAFFIC_BASELINE_RANGE as K, PORT_RANGE as L, FLYING_ANIMALS_GAP_RANGE as M, IssuesSearchResponse as Mt, FLYING_ANIMALS_SCALE_RANGE as N, IssuesState as Nt, BRANCH_GC_STALE_DAYS_RANGE as O, GithubIssuePullRequestsRepository as Ot, KEEP_MERGEABLE_TIMEOUT_MINUTES_RANGE as P, IssuesStatus as Pt, TASK_TITLE_TIMEOUT_RANGE as Q, POSITIVE_NUMBER_RANGE as R, WorkflowCommentBody as S, PLAN_RESULT_HOOK_EVENT as St, WorkflowsSettingsUpdate as T, PlanRevision as Tt, POSTHOG_MAX_CONCURRENT_RANGE as U, POSTHOG_INTERVAL_RANGE as V, POSTHOG_MIN_USERS_RANGE as W, POSTHOG_TRANSIENT_RECURRENCE_RANGE as X, POSTHOG_TRAFFIC_MULTIPLIER_RANGE as Y, REPLAY_BUFFER_KB_RANGE as Z, GithubPrDetailNode as _, ChangeMap as _t, pullRequestKeyFromReference as a, VISIONS_DISPATCH_TIMEOUT_RANGE as at, GithubPrsFrame as b, PLAN_HOOK_EVENT as bt, BenchmarkId as c, VISIONS_QUIET_MS_RANGE as ct, BenchmarkStatus as d, UpdateJournal as dt, USAGE_INTEGER_RANGES as et, BenchmarkSuite as f, SessionSetup as ft, PrCheckoutCaseInput as g, CoherenceJournalOutput as gt, MinedPrReviewData as h, TraceRecord as ht, InstallFlavor as i, VISIONS_COOLDOWN_MS_RANGE as it, FLYING_ANIMALS_DURATION_RANGE as j, IssueUpdate as jt, CHANGE_MAP_NARRATOR_TIMEOUT_RANGE as k, GithubIssueResponse as kt, BenchmarkJudgement as l, WORKFLOWS_MAX_ACTIONS_PER_POLL_RANGE as lt, MergedPrListing as m, TraceCheckpoint as mt, ClientMessage as n, USAGE_SCAN_INTERVAL_RANGE as nt, BenchmarkActionRequest as o, VISIONS_INTENT_THREAD_TTL_MS_RANGE as ot, CommitComparison as p, MAX_RAW_LINE_CHARS as pt, POSTHOG_TRAFFIC_COOLDOWN_RANGE as q, DIFF_ANNOTATION_NOTE_MAX_CHARS as r, VISIONS_ACTIVITY_MAX_PER_HOUR_RANGE as rt, BenchmarkCase as s, VISIONS_MAX_PER_HOUR_RANGE as st, CONTROL_FRAME_MAX_BYTES as t, USAGE_RETAIN_DAYS_RANGE as tt, BenchmarkRun as u, WORKFLOWS_MAX_CONCURRENT_SESSIONS_RANGE as ut, GithubPrKey as v, changeMapFactId as vt, WorkflowsSettings as w, PlanDecision as wt, comparablePrKey as x, PLAN_HOOK_OUTPUT_MAX_CHARS as xt, GithubPrLightSearchNode as y, PLAN_BODY_CAP_BYTES as yt, POSTHOG_ESCALATION_RANGE as z };
2380
+ export { POSTHOG_TRANSIENT_RECURRENCE_RANGE as $, BRANCH_GC_INTERVAL_MS_RANGE as A, planTitle as At, PORT_RANGE as B, GithubPrsFrame as C, PLAN_HOOK_EVENT as Ct, WorkflowsSettings as D, PlanDecision as Dt, WorkflowLabelName as E, PLAN_TOOL_NAME as Et, FLYING_ANIMALS_GAP_RANGE as F, IssuesSearchResponse as Ft, POSTHOG_INVESTIGATION_TIMEOUT_RANGE as G, POSTHOG_ESCALATION_RANGE as H, FLYING_ANIMALS_SCALE_RANGE as I, IssuesState as It, POSTHOG_RECURRENCE_WINDOW_RANGE as J, POSTHOG_MAX_CONCURRENT_RANGE as K, KEEP_MERGEABLE_TIMEOUT_MINUTES_RANGE as L, IssuesStatus as Lt, CHANGE_MAP_NARRATOR_TIMEOUT_RANGE as M, GithubIssueResponse as Mt, FLYING_ANIMALS_DEFAULTS as N, IssueKey as Nt, WorkflowsSettingsUpdate as O, PlanRevision as Ot, FLYING_ANIMALS_DURATION_RANGE as P, IssueUpdate as Pt, POSTHOG_TRAFFIC_MULTIPLIER_RANGE as Q, MEMORY_RESERVE_MB_RANGE as R, issuePullRequestStateFromGithub as Rt, GithubPrLightSearchNode as S, PLAN_BODY_CAP_BYTES as St, WorkflowCommentBody as T, PLAN_RESULT_HOOK_EVENT as Tt, POSTHOG_FIX_TIMEOUT_RANGE as U, POSITIVE_NUMBER_RANGE as V, POSTHOG_INTERVAL_RANGE as W, POSTHOG_TRAFFIC_COOLDOWN_RANGE as X, POSTHOG_TRAFFIC_BASELINE_RANGE as Y, POSTHOG_TRAFFIC_MIN_USERS_RANGE as Z, MergedPrListing as _, TraceCheckpoint as _t, InstallFlavor as a, USAGE_SCAN_INTERVAL_RANGE as at, GithubPrDetailNode as b, ChangeMap as bt, pullRequestKeyFromReference as c, VISIONS_DISPATCH_TIMEOUT_RANGE as ct, BenchmarkId as d, VISIONS_QUIET_MS_RANGE as dt, REPLAY_BUFFER_KB_RANGE as et, BenchmarkJudgement as f, WORKFLOWS_MAX_ACTIONS_PER_POLL_RANGE as ft, CommitComparison as g, MAX_RAW_LINE_CHARS as gt, BenchmarkSuite as h, SessionSetup as ht, DIFF_ANNOTATION_NOTE_MAX_CHARS as i, USAGE_RETAIN_DAYS_RANGE as it, BRANCH_GC_STALE_DAYS_RANGE as j, GithubIssuePullRequestsRepository as jt, WorkflowsState as k, parseExitPlanModeHookPayload as kt, BenchmarkActionRequest as l, VISIONS_INTENT_THREAD_TTL_MS_RANGE as lt, BenchmarkStatus as m, UpdateJournal as mt, ClientMessage as n, USAGE_BUDGET_RANGE as nt, OPERATOR_ACTIONS_BY_SURFACE as o, VISIONS_ACTIVITY_MAX_PER_HOUR_RANGE as ot, BenchmarkRun as p, WORKFLOWS_MAX_CONCURRENT_SESSIONS_RANGE as pt, POSTHOG_MIN_USERS_RANGE as q, DASHBOARD_VIEWS as r, USAGE_INTEGER_RANGES as rt, OPERATOR_SURFACES as s, VISIONS_COOLDOWN_MS_RANGE as st, CONTROL_FRAME_MAX_BYTES as t, TASK_TITLE_TIMEOUT_RANGE as tt, BenchmarkCase as u, VISIONS_MAX_PER_HOUR_RANGE as ut, MinedPrReviewData as v, TraceRecord as vt, comparablePrKey as w, PLAN_HOOK_OUTPUT_MAX_CHARS as wt, GithubPrKey as x, changeMapFactId as xt, PrCheckoutCaseInput as y, CoherenceJournalOutput as yt, NON_NEGATIVE_NUMBER_RANGE as z };
@@ -1,5 +1,5 @@
1
- import { t as AGENT_API_VERBS } from "./session-BwB43SCa.js";
2
- import { r as execFileSync } from "./child-process-safe-CbQnyh7D.js";
1
+ import { t as AGENT_API_VERBS } from "./session-C8IpFmGQ.js";
2
+ import { r as execFileSync } from "./child-process-safe-D4hyVIXj.js";
3
3
  //#region server/core/command-line-core.ts
4
4
  var SUBCOMMANDS_HONORING_TRAILING_GLOBAL_OPTIONS = /* @__PURE__ */ new Set([
5
5
  "doctor",
@@ -1,6 +1,6 @@
1
1
  import { r as errorMessage } from "./text-DoirglWV.js";
2
2
  import { o as relayPath } from "./runtime-paths-BkeftE60.js";
3
- import { D as SIGN_URL_ENV, n as AGENT_URL_ENV } from "./session-BwB43SCa.js";
3
+ import { A as SIGN_URL_ENV, n as AGENT_URL_ENV } from "./session-C8IpFmGQ.js";
4
4
  import { t as HOOK_URL_ENV } from "./hook-relay-core-DA_bz2KA.js";
5
5
  import { n as isRecord } from "./coerce-NSst8oRP.js";
6
6
  import { a as SANE_YOLO_PATH_ENV, o as saneYoloEnv, r as RTK_PATH_ENV } from "./rtk-hook-core-B-MpzPin.js";
@@ -1,4 +1,4 @@
1
- import { i as execSync } from "./child-process-safe-CbQnyh7D.js";
1
+ import { i as execSync } from "./child-process-safe-D4hyVIXj.js";
2
2
  import { r as resolvePathCommandMatches } from "./spawn-command-Cc40FiZI.js";
3
3
  //#region server/guardrails/core/guardrails-deps-core.ts
4
4
  var LINUX_GUARDRAILS_BINARIES = Object.freeze([