glimmervoid 0.43.2 → 0.43.4
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/glimmervoid.js +14 -14
- package/dist/chunks/{adapters-Ce0I__TH.js → adapters-C7wGqlhU.js} +1 -1
- package/dist/chunks/{adapters-CjtgWEdg.js → adapters-Du4HJLMG.js} +16 -10
- package/dist/chunks/{agent-api-cli-DYwXyAmN.js → agent-api-cli-BC2i4XNI.js} +1 -1
- package/dist/chunks/{agent-api-cli-B0fpc41n.js → agent-api-cli-DRTVOR2W.js} +2 -2
- package/dist/chunks/agent-api-core-9mdbvlfc.js +782 -0
- package/dist/chunks/{agent-setup-cli-NfJQxNdp.js → agent-setup-cli-DAPHGpRA.js} +1 -1
- package/dist/chunks/{control-messages-CD99vE0V.js → config-D0YwCXFd.js} +557 -2
- package/dist/chunks/{config-store-2noiIsTg.js → config-store-BpsH_oWP.js} +59 -5
- package/dist/chunks/config-store-DcJKvInM.js +1 -0
- package/dist/chunks/contracts-Dxc9Gp0Y.js +295 -0
- package/dist/chunks/{grok-DPmX1ozS.js → grok-2z-LqPHN.js} +2 -2
- package/dist/chunks/{main-BGJ7PAA2.js → main-Bzy6xXUF.js} +248 -468
- package/dist/chunks/{pair-cli-CPv7mDTg.js → pair-cli-DSZFFEkT.js} +2 -2
- package/dist/chunks/{remote-config-DZWZ5fVJ.js → remote-config-Cd_FC7bd.js} +1 -1
- package/dist/chunks/runtime-paths-Cc0_ZR6V.js +1 -0
- package/dist/chunks/{runtime-paths-BkeftE60.js → runtime-paths-ghcH9CeW.js} +1 -1
- package/dist/chunks/{session-routes-DdeSkLqC.js → session-routes-BQPy81dm.js} +6 -3
- package/dist/chunks/{settings-cli-4fX1olS3.js → settings-cli-DOpMn6-A.js} +5 -5
- package/dist/chunks/{settings-readout-core-NoTHBGL6.js → settings-readout-core-D1ZP4UIs.js} +1 -1
- package/dist/chunks/{ssh-sign-cli-CvqtQNQe.js → ssh-sign-cli-ynkhYkLs.js} +1 -1
- package/dist/chunks/{visions-cli-CVRB9IWA.js → visions-cli-COYRIdXy.js} +1 -1
- package/dist/chunks/{visions-setup-DB2P8JUL.js → visions-setup-VMMyqOpl.js} +2 -2
- package/dist/client/assets/{index-DEbBUagP.css → index-583DiM8X.css} +1 -1
- package/dist/client/assets/index-CsyFNXR2.js +177 -0
- package/dist/client/index.html +2 -2
- package/dist/server/index.js +2 -2
- package/dist/session/remote-setup/SKILL.md +120 -0
- package/dist/session/remote-setup/glimmervoid.service +20 -0
- package/dist/session/statusline-relay.js +1 -1
- package/dist/session/visions-relay.js +1 -1
- package/package.json +1 -1
- package/dist/chunks/agent-api-core-BeSecYrA.js +0 -336
- package/dist/chunks/config-store-DW0ONWV5.js +0 -1
- package/dist/chunks/contracts-CFm0dprb.js +0 -835
- package/dist/chunks/runtime-paths-DSmormp7.js +0 -1
- package/dist/client/assets/index-CNDdyYn0.js +0 -177
|
@@ -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
|
|
4
|
-
import { n as glimmervoidHomeDir$1, t as decideConfigPath } from "./config-path-core-DFt-TemS.js";
|
|
3
|
+
import { $ as POSTHOG_TRAFFIC_BASELINE_RANGE, G as FLYING_ANIMALS_GAP_RANGE, J as MEMORY_RESERVE_MB_RANGE, K as FLYING_ANIMALS_SCALE_RANGE, Q as POSTHOG_FIX_TIMEOUT_RANGE, U as FLYING_ANIMALS_DEFAULTS, W as FLYING_ANIMALS_DURATION_RANGE, X as PORT_RANGE, Y as NON_NEGATIVE_NUMBER_RANGE, Z as POSITIVE_NUMBER_RANGE, at as USAGE_INTEGER_RANGES, ct as WORKFLOWS_MAX_ACTIONS_PER_POLL_RANGE, d as POST_TURN_CHECK_MODES, et as POSTHOG_TRAFFIC_MIN_USERS_RANGE, f as UPDATE_CHANNELS, h as normalizeLegacyConfigNumbers, i as Config, it as USAGE_BUDGET_RANGE, l as configIssueMessage, lt as WORKFLOWS_MAX_CONCURRENT_SESSIONS_RANGE, n as BUILTIN_AGENT_IDS, nt as REPLAY_BUFFER_KB_RANGE, ot as USAGE_RETAIN_DAYS_RANGE, p as USAGE_COST_MODES, q as KEEP_MERGEABLE_TIMEOUT_MINUTES_RANGE, rt as TASK_TITLE_TIMEOUT_RANGE, s as RUNTIME_CONFIG_SCALAR_KEYS, st as USAGE_SCAN_INTERVAL_RANGE, t as AGENT_ID_SHAPE_MESSAGE, tt as POSTHOG_TRAFFIC_MULTIPLIER_RANGE, u as BranchGcFileSettings } from "./config-D0YwCXFd.js";
|
|
5
4
|
import { n as isRecord } from "./coerce-NSst8oRP.js";
|
|
5
|
+
import { n as glimmervoidHomeDir$1, t as decideConfigPath } from "./config-path-core-DFt-TemS.js";
|
|
6
6
|
import { d as writeJsonAtomicSync, f as writeTextAtomic, p as writeTextAtomicSync } from "./json-file-DFCTvPjj.js";
|
|
7
|
-
import {
|
|
7
|
+
import { s as FeatureFlagsResponse, u as TELEMETRY_KILL_SWITCH_FLAG } from "./contracts-Dxc9Gp0Y.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,24 @@ var SECTIONS = Object.freeze([
|
|
|
1031
1031
|
defaultValue: false,
|
|
1032
1032
|
...MACHINE_NOW
|
|
1033
1033
|
},
|
|
1034
|
+
{
|
|
1035
|
+
id: "tab-order",
|
|
1036
|
+
path: "viewTabOrder",
|
|
1037
|
+
title: "Tab order",
|
|
1038
|
+
description: "The order of the dashboard tabs in every browser: the header on desktop and the More menu on a phone. You can also drag a tab in the desktop header.",
|
|
1039
|
+
control: "tab-order",
|
|
1040
|
+
keywords: [
|
|
1041
|
+
"tabs",
|
|
1042
|
+
"order",
|
|
1043
|
+
"rearrange",
|
|
1044
|
+
"reorder",
|
|
1045
|
+
"header",
|
|
1046
|
+
"more",
|
|
1047
|
+
"menu"
|
|
1048
|
+
],
|
|
1049
|
+
defaultValue: [],
|
|
1050
|
+
...MACHINE_NOW
|
|
1051
|
+
},
|
|
1034
1052
|
{
|
|
1035
1053
|
id: "remote-sessions",
|
|
1036
1054
|
path: "remoteSessions",
|
|
@@ -1099,6 +1117,24 @@ var SECTIONS = Object.freeze([
|
|
|
1099
1117
|
],
|
|
1100
1118
|
status: "agent-logins",
|
|
1101
1119
|
...READOUT
|
|
1120
|
+
},
|
|
1121
|
+
{
|
|
1122
|
+
id: "remote-setup",
|
|
1123
|
+
path: "status:remote-setup",
|
|
1124
|
+
title: "Remote host setup",
|
|
1125
|
+
description: "Start a session that walks you through running Glimmervoid on another Linux machine you reach by ssh, as a service you open from your laptop and phone.",
|
|
1126
|
+
control: "readonly",
|
|
1127
|
+
keywords: [
|
|
1128
|
+
"remote",
|
|
1129
|
+
"ssh",
|
|
1130
|
+
"server",
|
|
1131
|
+
"devbox",
|
|
1132
|
+
"tailscale",
|
|
1133
|
+
"pair",
|
|
1134
|
+
"host"
|
|
1135
|
+
],
|
|
1136
|
+
status: "remote-setup",
|
|
1137
|
+
...READOUT
|
|
1102
1138
|
}
|
|
1103
1139
|
]
|
|
1104
1140
|
},
|
|
@@ -1815,9 +1851,25 @@ var SECTIONS = Object.freeze([
|
|
|
1815
1851
|
id: "browser-shortcuts",
|
|
1816
1852
|
level: "browser",
|
|
1817
1853
|
title: "Shortcuts and about",
|
|
1818
|
-
description: "Keyboard reference and build information.",
|
|
1854
|
+
description: "Keyboard shortcuts, their reference and build information.",
|
|
1819
1855
|
legacyIds: ["shortcuts"],
|
|
1820
|
-
settings: [
|
|
1856
|
+
settings: [{
|
|
1857
|
+
id: "next-attention-key",
|
|
1858
|
+
path: "pref:nextAttentionKeyCode",
|
|
1859
|
+
title: "Jump to the next session needing you",
|
|
1860
|
+
description: "The key held with Cmd on a Mac, or Alt elsewhere, that jumps to the next session needing you. Record a new one by pressing the whole shortcut.",
|
|
1861
|
+
control: "shortcut-key",
|
|
1862
|
+
keywords: [
|
|
1863
|
+
"shortcut",
|
|
1864
|
+
"keyboard",
|
|
1865
|
+
"hotkey",
|
|
1866
|
+
"jump",
|
|
1867
|
+
"next",
|
|
1868
|
+
"attention"
|
|
1869
|
+
],
|
|
1870
|
+
defaultValue: "KeyJ",
|
|
1871
|
+
...BROWSER_NOW
|
|
1872
|
+
}]
|
|
1821
1873
|
}
|
|
1822
1874
|
]);
|
|
1823
1875
|
var FILE_ONLY_SETTINGS = Object.freeze([
|
|
@@ -3344,6 +3396,7 @@ var DEFAULT_CONFIG = {
|
|
|
3344
3396
|
conversationView: false,
|
|
3345
3397
|
streamerMode: false,
|
|
3346
3398
|
zenView: false,
|
|
3399
|
+
viewTabOrder: [],
|
|
3347
3400
|
remoteSessions: false,
|
|
3348
3401
|
detectBackgroundAgents: true,
|
|
3349
3402
|
detectScheduledWakeups: true,
|
|
@@ -3777,6 +3830,7 @@ function createConfigStore({ settingsDefaults } = {}) {
|
|
|
3777
3830
|
conversationView: config.conversationView ?? effectiveDefaults.conversationView,
|
|
3778
3831
|
streamerMode: config.streamerMode ?? effectiveDefaults.streamerMode,
|
|
3779
3832
|
zenView: config.zenView ?? effectiveDefaults.zenView,
|
|
3833
|
+
viewTabOrder: config.viewTabOrder ?? DEFAULT_CONFIG.viewTabOrder,
|
|
3780
3834
|
remoteSessions: config.remoteSessions ?? effectiveDefaults.remoteSessions,
|
|
3781
3835
|
detectBackgroundAgents: config.detectBackgroundAgents ?? effectiveDefaults.detectBackgroundAgents,
|
|
3782
3836
|
recordSignals: config.recordSignals ?? effectiveDefaults.recordSignals,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { s as loadConfigFile } from "./config-store-BpsH_oWP.js";
|
|
@@ -0,0 +1,295 @@
|
|
|
1
|
+
import "./session-BUcx9uJa.js";
|
|
2
|
+
import { b as OPERATOR_ACTIONS_BY_SURFACE, n as BUILTIN_AGENT_IDS, v as DASHBOARD_VIEWS, x as OPERATOR_SURFACES } from "./config-D0YwCXFd.js";
|
|
3
|
+
import { z } from "zod";
|
|
4
|
+
//#region shared/contracts/telemetry.ts
|
|
5
|
+
var TELEMETRY_ADAPTERS = Object.freeze([...BUILTIN_AGENT_IDS, "custom"]);
|
|
6
|
+
var SESSION_EXIT_KINDS = Object.freeze([
|
|
7
|
+
"clean",
|
|
8
|
+
"error",
|
|
9
|
+
"signal",
|
|
10
|
+
"no_output"
|
|
11
|
+
]);
|
|
12
|
+
var TEAM_REVIEW_SETTLED_OUTCOMES = Object.freeze([
|
|
13
|
+
"approve",
|
|
14
|
+
"comment",
|
|
15
|
+
"approve-only",
|
|
16
|
+
"discarded"
|
|
17
|
+
]);
|
|
18
|
+
var TEAM_REVIEW_POST_REFUSAL_REASONS = Object.freeze([
|
|
19
|
+
"unknown-action",
|
|
20
|
+
"not-postable",
|
|
21
|
+
"comments-already-posted",
|
|
22
|
+
"empty-comment",
|
|
23
|
+
"rate-limited",
|
|
24
|
+
"head-unreadable",
|
|
25
|
+
"head-moved",
|
|
26
|
+
"diff-unreadable",
|
|
27
|
+
"misplaced-comments",
|
|
28
|
+
"github-refused"
|
|
29
|
+
]);
|
|
30
|
+
var RADAR_VERDICTS = Object.freeze([
|
|
31
|
+
"ROOT_CAUSE",
|
|
32
|
+
"FIXED",
|
|
33
|
+
"NEEDS_HUMAN",
|
|
34
|
+
"TRANSIENT",
|
|
35
|
+
"ERROR"
|
|
36
|
+
]);
|
|
37
|
+
var RADAR_JOB_MODES = Object.freeze(["investigate", "fix"]);
|
|
38
|
+
var RADAR_ERROR_REASONS = Object.freeze([
|
|
39
|
+
"agent-reported",
|
|
40
|
+
"no-result",
|
|
41
|
+
"invalid-result",
|
|
42
|
+
"timed-out",
|
|
43
|
+
"no-verdict",
|
|
44
|
+
"crashed",
|
|
45
|
+
"aborted",
|
|
46
|
+
"empty-fix",
|
|
47
|
+
"handoff-failed"
|
|
48
|
+
]);
|
|
49
|
+
var RADAR_HANDOFF_STEPS = Object.freeze([
|
|
50
|
+
"read-diff",
|
|
51
|
+
"count-commits",
|
|
52
|
+
"push-branch",
|
|
53
|
+
"resolve-repo",
|
|
54
|
+
"open-pr"
|
|
55
|
+
]);
|
|
56
|
+
var OPERATOR_ACTIONS = Object.freeze([...new Set(Object.values(OPERATOR_ACTIONS_BY_SURFACE).flat())]);
|
|
57
|
+
var nonNegativeInteger = z.number().int().nonnegative();
|
|
58
|
+
var boundedText = z.string().max(512);
|
|
59
|
+
var AppStartedProperties = z.object({}).strict();
|
|
60
|
+
var AppActiveProperties = z.object({ active_session_count: nonNegativeInteger }).strict();
|
|
61
|
+
var SessionStartedProperties = z.object({ adapter: z.enum(TELEMETRY_ADAPTERS) }).strict();
|
|
62
|
+
var SessionEndedProperties = z.object({
|
|
63
|
+
adapter: z.enum(TELEMETRY_ADAPTERS),
|
|
64
|
+
exit_kind: z.enum(SESSION_EXIT_KINDS),
|
|
65
|
+
duration_seconds: nonNegativeInteger
|
|
66
|
+
}).strict();
|
|
67
|
+
var ViewShownProperties = z.object({ view: z.enum(DASHBOARD_VIEWS) }).strict();
|
|
68
|
+
function isActionOfSurface({ surface, action }) {
|
|
69
|
+
return OPERATOR_ACTIONS_BY_SURFACE[surface].includes(action);
|
|
70
|
+
}
|
|
71
|
+
var OperatorActionProperties = z.object({
|
|
72
|
+
surface: z.enum(OPERATOR_SURFACES),
|
|
73
|
+
action: z.enum(OPERATOR_ACTIONS)
|
|
74
|
+
}).strict().refine(isActionOfSurface, { message: "action does not belong to its surface" });
|
|
75
|
+
var TeamReviewDraftedProperties = z.object({ inline_comment_count: nonNegativeInteger }).strict();
|
|
76
|
+
var TeamReviewSettledProperties = z.object({
|
|
77
|
+
duration_ms: nonNegativeInteger,
|
|
78
|
+
outcome: z.enum(TEAM_REVIEW_SETTLED_OUTCOMES),
|
|
79
|
+
drafted_comment_count: nonNegativeInteger,
|
|
80
|
+
posted_comment_count: nonNegativeInteger
|
|
81
|
+
}).strict();
|
|
82
|
+
var TeamReviewPostRefusedProperties = z.object({
|
|
83
|
+
duration_ms: nonNegativeInteger,
|
|
84
|
+
reason: z.enum(TEAM_REVIEW_POST_REFUSAL_REASONS)
|
|
85
|
+
}).strict();
|
|
86
|
+
var RadarInvestigationFinishedProperties = z.object({
|
|
87
|
+
verdict: z.enum(RADAR_VERDICTS),
|
|
88
|
+
mode: z.enum(RADAR_JOB_MODES),
|
|
89
|
+
error_reason: z.enum(RADAR_ERROR_REASONS).optional()
|
|
90
|
+
}).strict();
|
|
91
|
+
var RadarFixHandoffFailedProperties = z.object({ step: z.enum(RADAR_HANDOFF_STEPS) }).strict();
|
|
92
|
+
var DashboardTelemetryReport = z.discriminatedUnion("event", [z.object({
|
|
93
|
+
event: z.literal("view_shown"),
|
|
94
|
+
properties: ViewShownProperties
|
|
95
|
+
}), z.object({
|
|
96
|
+
event: z.literal("operator_action"),
|
|
97
|
+
properties: OperatorActionProperties
|
|
98
|
+
})]);
|
|
99
|
+
var ExceptionFrame = z.object({
|
|
100
|
+
platform: z.enum(["node:javascript", "web:javascript"]),
|
|
101
|
+
function: boundedText,
|
|
102
|
+
filename: boundedText,
|
|
103
|
+
lineno: nonNegativeInteger,
|
|
104
|
+
colno: nonNegativeInteger,
|
|
105
|
+
in_app: z.boolean()
|
|
106
|
+
}).strict();
|
|
107
|
+
var ExceptionProperties = z.object({
|
|
108
|
+
$exception_list: z.array(z.object({
|
|
109
|
+
type: boundedText,
|
|
110
|
+
value: boundedText,
|
|
111
|
+
mechanism: z.object({
|
|
112
|
+
handled: z.boolean(),
|
|
113
|
+
synthetic: z.boolean(),
|
|
114
|
+
type: z.literal("generic")
|
|
115
|
+
}).strict(),
|
|
116
|
+
stacktrace: z.object({
|
|
117
|
+
type: z.literal("raw"),
|
|
118
|
+
frames: z.array(ExceptionFrame).max(64)
|
|
119
|
+
}).strict()
|
|
120
|
+
}).strict()).length(1),
|
|
121
|
+
$exception_level: z.enum(["error", "fatal"])
|
|
122
|
+
}).strict();
|
|
123
|
+
var AiGenerationProperties = z.object({
|
|
124
|
+
$ai_trace_id: z.string().regex(/^[0-9a-f]{64}$/),
|
|
125
|
+
$ai_provider: z.string().max(64),
|
|
126
|
+
$ai_model: z.string().max(128),
|
|
127
|
+
$ai_input_tokens: nonNegativeInteger,
|
|
128
|
+
$ai_output_tokens: nonNegativeInteger,
|
|
129
|
+
$ai_cache_read_input_tokens: nonNegativeInteger.optional(),
|
|
130
|
+
$ai_cache_creation_input_tokens: nonNegativeInteger.optional(),
|
|
131
|
+
$ai_total_cost_usd: z.number().finite().nonnegative().optional(),
|
|
132
|
+
agent_adapter: z.enum(TELEMETRY_ADAPTERS)
|
|
133
|
+
}).strict();
|
|
134
|
+
var TELEMETRY_EVENT_SCHEMAS = Object.freeze({
|
|
135
|
+
app_started: AppStartedProperties,
|
|
136
|
+
app_active: AppActiveProperties,
|
|
137
|
+
session_started: SessionStartedProperties,
|
|
138
|
+
session_ended: SessionEndedProperties,
|
|
139
|
+
$exception: ExceptionProperties,
|
|
140
|
+
$ai_generation: AiGenerationProperties,
|
|
141
|
+
view_shown: ViewShownProperties,
|
|
142
|
+
operator_action: OperatorActionProperties,
|
|
143
|
+
team_review_drafted: TeamReviewDraftedProperties,
|
|
144
|
+
team_review_settled: TeamReviewSettledProperties,
|
|
145
|
+
team_review_post_refused: TeamReviewPostRefusedProperties,
|
|
146
|
+
radar_investigation_finished: RadarInvestigationFinishedProperties,
|
|
147
|
+
radar_fix_handoff_failed: RadarFixHandoffFailedProperties
|
|
148
|
+
});
|
|
149
|
+
Object.freeze([
|
|
150
|
+
{
|
|
151
|
+
name: "app_started",
|
|
152
|
+
description: "The server started listening."
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
name: "app_active",
|
|
156
|
+
description: "Once a day while the server runs, with how many sessions are live."
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
name: "session_started",
|
|
160
|
+
description: "A session spawned, with which kind of agent (any custom agent counts as `custom`)."
|
|
161
|
+
},
|
|
162
|
+
{
|
|
163
|
+
name: "session_ended",
|
|
164
|
+
description: "A session exited: how it exited and how long it ran, in whole seconds."
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
name: "$exception",
|
|
168
|
+
description: "An error in the server or the dashboard: its type, an error code when it has one, and stack frames with file paths cut to the package or URL path. Never the error message. Each distinct error is sent once per run, and a crash is sent on the next start."
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
name: "$ai_generation",
|
|
172
|
+
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."
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
name: "view_shown",
|
|
176
|
+
description: "A dashboard tab opened, on desktop or phone, with which tab. Sent on every open."
|
|
177
|
+
},
|
|
178
|
+
{
|
|
179
|
+
name: "operator_action",
|
|
180
|
+
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."
|
|
181
|
+
},
|
|
182
|
+
{
|
|
183
|
+
name: "team_review_drafted",
|
|
184
|
+
description: "A team review draft became ready, with how many inline comments it drafted."
|
|
185
|
+
},
|
|
186
|
+
{
|
|
187
|
+
name: "team_review_settled",
|
|
188
|
+
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, plus the total action duration in milliseconds."
|
|
189
|
+
},
|
|
190
|
+
{
|
|
191
|
+
name: "team_review_post_refused",
|
|
192
|
+
description: "Posting a team review was refused, with a reason from a fixed list and the total action duration in milliseconds. Never the error text."
|
|
193
|
+
},
|
|
194
|
+
{
|
|
195
|
+
name: "radar_investigation_finished",
|
|
196
|
+
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."
|
|
197
|
+
},
|
|
198
|
+
{
|
|
199
|
+
name: "radar_fix_handoff_failed",
|
|
200
|
+
description: "Handing a Radar fix over as a pull request failed, with which step failed. Never the branch or the error text."
|
|
201
|
+
}
|
|
202
|
+
]);
|
|
203
|
+
Object.freeze([
|
|
204
|
+
"app_version",
|
|
205
|
+
"os_platform",
|
|
206
|
+
"node_major",
|
|
207
|
+
"install_flavor",
|
|
208
|
+
"is_bundled",
|
|
209
|
+
"is_dev_install"
|
|
210
|
+
]);
|
|
211
|
+
Object.freeze(["$release_id"]);
|
|
212
|
+
var TELEMETRY_KILL_SWITCH_FLAG = "telemetry-enabled";
|
|
213
|
+
var FeatureFlagsResponse = z.object({
|
|
214
|
+
flags: z.object({ [TELEMETRY_KILL_SWITCH_FLAG]: z.object({ enabled: z.boolean() }).passthrough().optional() }).passthrough(),
|
|
215
|
+
errorsWhileComputingFlags: z.boolean().optional()
|
|
216
|
+
}).passthrough();
|
|
217
|
+
var PendingCrashReport = z.object({
|
|
218
|
+
timestamp: z.string(),
|
|
219
|
+
properties: ExceptionProperties
|
|
220
|
+
}).strict();
|
|
221
|
+
var TelemetryState = z.object({
|
|
222
|
+
installId: z.uuid(),
|
|
223
|
+
noticeShownAt: z.string().nullable().optional(),
|
|
224
|
+
remoteDisabled: z.boolean().optional()
|
|
225
|
+
});
|
|
226
|
+
var viewerCols = z.number().int().min(1).max(500);
|
|
227
|
+
var viewerRows = z.number().int().min(1).max(200);
|
|
228
|
+
var DataClientMessage = z.discriminatedUnion("type", [
|
|
229
|
+
z.object({
|
|
230
|
+
type: z.literal("input"),
|
|
231
|
+
data: z.string()
|
|
232
|
+
}),
|
|
233
|
+
z.object({
|
|
234
|
+
type: z.literal("claim"),
|
|
235
|
+
cols: viewerCols,
|
|
236
|
+
rows: viewerRows
|
|
237
|
+
}),
|
|
238
|
+
z.object({ type: z.literal("unview") }),
|
|
239
|
+
z.object({ type: z.literal("pause-output") }),
|
|
240
|
+
z.object({ type: z.literal("resume-output") })
|
|
241
|
+
]);
|
|
242
|
+
z.object({
|
|
243
|
+
type: z.literal("pty-size"),
|
|
244
|
+
cols: viewerCols,
|
|
245
|
+
rows: viewerRows,
|
|
246
|
+
seq: z.number().int().nonnegative()
|
|
247
|
+
});
|
|
248
|
+
var DATA_ATTACH_HISTORY_PARAM = "history";
|
|
249
|
+
var DEEP_HISTORY_SCROLLBACK_LINES = 5e3;
|
|
250
|
+
var DataAttachHistory = z.enum(["screen", "deep"]);
|
|
251
|
+
function decodeJson(raw) {
|
|
252
|
+
try {
|
|
253
|
+
return JSON.parse(raw);
|
|
254
|
+
} catch {
|
|
255
|
+
return null;
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
function parseDataClientMessage(raw) {
|
|
259
|
+
const parsed = DataClientMessage.safeParse(decodeJson(raw));
|
|
260
|
+
if (!parsed.success) return null;
|
|
261
|
+
return parsed.data;
|
|
262
|
+
}
|
|
263
|
+
function parseDataAttachHistory(rawUrl) {
|
|
264
|
+
if (typeof rawUrl !== "string") return "screen";
|
|
265
|
+
const queryAt = rawUrl.indexOf("?");
|
|
266
|
+
if (queryAt === -1) return "screen";
|
|
267
|
+
const query = new URLSearchParams(rawUrl.slice(queryAt + 1).split("#")[0]);
|
|
268
|
+
const parsed = DataAttachHistory.safeParse(query.get(DATA_ATTACH_HISTORY_PARAM));
|
|
269
|
+
if (!parsed.success) return "screen";
|
|
270
|
+
return parsed.data;
|
|
271
|
+
}
|
|
272
|
+
//#endregion
|
|
273
|
+
//#region shared/contracts/hooks.ts
|
|
274
|
+
var HTTP_URL_RE = /^https?:\/\/\S+$/i;
|
|
275
|
+
var HookPayload = z.record(z.string(), z.unknown());
|
|
276
|
+
var HookEnvelope = z.object({
|
|
277
|
+
glimmervoidId: z.string().min(1),
|
|
278
|
+
event: z.string().min(1),
|
|
279
|
+
token: z.string().nullable().optional(),
|
|
280
|
+
payload: HookPayload
|
|
281
|
+
});
|
|
282
|
+
z.object({
|
|
283
|
+
id: z.string().min(1),
|
|
284
|
+
name: z.string().min(1),
|
|
285
|
+
event: z.string().min(1),
|
|
286
|
+
matcher: z.string().optional(),
|
|
287
|
+
type: z.enum(["command", "http"]),
|
|
288
|
+
command: z.string().optional(),
|
|
289
|
+
url: z.string().optional(),
|
|
290
|
+
timeout: z.number().int().positive().optional(),
|
|
291
|
+
enabled: z.boolean(),
|
|
292
|
+
projects: z.array(z.string()).optional()
|
|
293
|
+
}).passthrough();
|
|
294
|
+
//#endregion
|
|
295
|
+
export { parseDataClientMessage as a, PendingCrashReport as c, TelemetryState as d, parseDataAttachHistory as i, TELEMETRY_EVENT_SCHEMAS as l, HookEnvelope as n, DashboardTelemetryReport as o, DEEP_HISTORY_SCROLLBACK_LINES as r, FeatureFlagsResponse as s, HTTP_URL_RE as t, TELEMETRY_KILL_SWITCH_FLAG as u };
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { r as errorMessage } from "./text-DoirglWV.js";
|
|
2
|
-
import {
|
|
2
|
+
import { s as relayPath } from "./runtime-paths-ghcH9CeW.js";
|
|
3
3
|
import { A as SIGN_URL_ENV, n as AGENT_URL_ENV } from "./session-BUcx9uJa.js";
|
|
4
|
-
import { t as HOOK_URL_ENV } from "./hook-relay-core-DA_bz2KA.js";
|
|
5
4
|
import { n as isRecord } from "./coerce-NSst8oRP.js";
|
|
5
|
+
import { t as HOOK_URL_ENV } from "./hook-relay-core-DA_bz2KA.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";
|
|
7
7
|
import { t as buildHookCommand } from "./hook-command-core-qTNK-xMF.js";
|
|
8
8
|
import fs from "node:fs";
|