glimmervoid 0.43.4 → 0.44.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.
- package/dist/bin/glimmervoid.js +13 -13
- package/dist/chunks/{adapters-Du4HJLMG.js → adapters-CSRTLFiZ.js} +5 -5
- package/dist/chunks/{adapters-C7wGqlhU.js → adapters-DjDtNufj.js} +1 -1
- package/dist/chunks/{agent-api-cli-DRTVOR2W.js → agent-api-cli-CVgij_62.js} +17 -3
- package/dist/chunks/{agent-api-cli-BC2i4XNI.js → agent-api-cli-ep_5T7Hx.js} +1 -1
- package/dist/chunks/{agent-api-core-9mdbvlfc.js → agent-api-core-DmPT6Hc_.js} +13 -6
- package/dist/chunks/{agent-setup-cli-DAPHGpRA.js → agent-setup-cli-7hG401Io.js} +1 -1
- package/dist/chunks/{config-D0YwCXFd.js → config-CGRYpcBQ.js} +28 -5
- package/dist/chunks/{config-store-BpsH_oWP.js → config-store-B1u3WA5t.js} +3 -3
- package/dist/chunks/config-store-D4vUBcUX.js +1 -0
- package/dist/chunks/{contracts-Dxc9Gp0Y.js → contracts-Fup4hhP9.js} +34 -12
- package/dist/chunks/{git-version-ByOV7a_h.js → git-version-C3lznLS_.js} +1 -1
- package/dist/chunks/{grok-2z-LqPHN.js → grok-Di4aQGre.js} +1 -1
- package/dist/chunks/{main-Bzy6xXUF.js → main-DPtmg7Bn.js} +4381 -3932
- package/dist/chunks/{pair-cli-DSZFFEkT.js → pair-cli-BwOTWShx.js} +2 -2
- package/dist/chunks/{remote-config-Cd_FC7bd.js → remote-config-DWWnz5dP.js} +1 -1
- package/dist/chunks/{session-BUcx9uJa.js → session-CUc6d7aS.js} +24 -4
- package/dist/chunks/{session-routes-BQPy81dm.js → session-routes--hrsvv7a.js} +2 -1
- package/dist/chunks/{settings-cli-DOpMn6-A.js → settings-cli-C_owm3rw.js} +5 -5
- package/dist/chunks/{settings-readout-core-D1ZP4UIs.js → settings-readout-core-C_JzSeF7.js} +2 -2
- package/dist/chunks/{ssh-sign-cli-ynkhYkLs.js → ssh-sign-cli-CDjUtDKa.js} +2 -2
- package/dist/client/assets/index-BedqDfKJ.js +177 -0
- package/dist/client/assets/index-o9J4_Orv.css +2 -0
- package/dist/client/index.html +3 -3
- package/dist/server/index.js +1 -1
- package/package.json +6 -5
- package/dist/chunks/config-store-DcJKvInM.js +0 -1
- package/dist/client/assets/index-583DiM8X.css +0 -2
- package/dist/client/assets/index-CsyFNXR2.js +0 -177
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { r as errorMessage } from "./text-DoirglWV.js";
|
|
2
|
-
import { c as resolveConfigPath } from "./config-store-
|
|
3
|
-
import { c as defaultPairingsPath, i as REVOCATION_PROPAGATION_SECONDS, l as defaultSeenPath, n as normalizeRemoteConfig, o as createPairingsStore, s as createSeenStore } from "./remote-config-
|
|
2
|
+
import { c as resolveConfigPath } from "./config-store-B1u3WA5t.js";
|
|
3
|
+
import { c as defaultPairingsPath, i as REVOCATION_PROPAGATION_SECONDS, l as defaultSeenPath, n as normalizeRemoteConfig, o as createPairingsStore, s as createSeenStore } from "./remote-config-DWWnz5dP.js";
|
|
4
4
|
import fs from "node:fs";
|
|
5
5
|
//#region server/text-format.ts
|
|
6
6
|
function trimIso(iso) {
|
|
@@ -3,7 +3,7 @@ import { n as equalsIgnoringCaseOnWindows } from "./paths-Bu4eH1Yd.js";
|
|
|
3
3
|
import { n as isRecord } from "./coerce-NSst8oRP.js";
|
|
4
4
|
import { n as unrefTimer, t as DEFAULT_TIMER_FNS } from "./timer-deps-u2DAQLok.js";
|
|
5
5
|
import { a as jsonStateLoadError, d as writeJsonAtomicSync, l as sleepSync, s as loadJsonStateFileSync, u as writeJsonAtomic } from "./json-file-DFCTvPjj.js";
|
|
6
|
-
import { o as glimmervoidHomeDir, ot as canonicalizePath } from "./config-store-
|
|
6
|
+
import { o as glimmervoidHomeDir, ot as canonicalizePath } from "./config-store-B1u3WA5t.js";
|
|
7
7
|
import fs from "node:fs";
|
|
8
8
|
import path from "node:path";
|
|
9
9
|
import crypto from "node:crypto";
|
|
@@ -75,9 +75,12 @@ function repoParts(repo) {
|
|
|
75
75
|
if (parts.length !== 2 || !parts.every((part) => GH_SEGMENT.test(part))) return null;
|
|
76
76
|
return [parts[0], parts[1]];
|
|
77
77
|
}
|
|
78
|
+
//#endregion
|
|
79
|
+
//#region shared/git-text.ts
|
|
80
|
+
var SHORT_SHA_CHARS = 7;
|
|
78
81
|
var HEX_SHA_RE = /^[0-9a-f]{7,40}$/i;
|
|
79
82
|
var FULL_SHA_RE = /^[0-9a-f]{40}$/;
|
|
80
|
-
function shortSha(sha, { chars =
|
|
83
|
+
function shortSha(sha, { chars = SHORT_SHA_CHARS, validate = false } = {}) {
|
|
81
84
|
if (typeof sha !== "string" || !sha) return "";
|
|
82
85
|
if (!validate) return sha.slice(0, chars);
|
|
83
86
|
const text = sha.trim();
|
|
@@ -154,11 +157,17 @@ var ReviewFinding = z.object({
|
|
|
154
157
|
]).nullable(),
|
|
155
158
|
body: z.string().min(1)
|
|
156
159
|
});
|
|
160
|
+
var HandCheck = z.object({
|
|
161
|
+
text: z.string().min(1),
|
|
162
|
+
paths: z.array(z.string()),
|
|
163
|
+
isFallback: z.boolean().default(false)
|
|
164
|
+
});
|
|
157
165
|
var ReviewAssessment = z.object({
|
|
158
166
|
goal: z.string().default(""),
|
|
159
167
|
change: z.string(),
|
|
160
168
|
checked: z.array(z.string()),
|
|
161
|
-
gaps: z.array(z.string())
|
|
169
|
+
gaps: z.array(z.string()),
|
|
170
|
+
handChecks: z.array(HandCheck).default([])
|
|
162
171
|
});
|
|
163
172
|
var ReviewResult = z.object({
|
|
164
173
|
verdict: ReviewVerdict,
|
|
@@ -992,7 +1001,11 @@ var SESSION_COMMANDS = [
|
|
|
992
1001
|
"link-pr",
|
|
993
1002
|
"settings"
|
|
994
1003
|
];
|
|
995
|
-
var AGENT_API_VERBS = [
|
|
1004
|
+
var AGENT_API_VERBS = [
|
|
1005
|
+
...SESSION_COMMANDS,
|
|
1006
|
+
"limits",
|
|
1007
|
+
"answer"
|
|
1008
|
+
];
|
|
996
1009
|
var AgentSpawnRequest = z.object({
|
|
997
1010
|
prompt: z.string({ error: "prompt must be a string" }).min(1, { error: "prompt must not be empty" }).max(2e4, { error: "prompt must be at most 20000 characters" }).refine((prompt) => !prompt.trimStart().startsWith("-"), { message: "prompt must not start with a dash, which the agent CLI would read as an option" }),
|
|
998
1011
|
name: z.string({ error: "name must be a string" }).min(1, { error: "name must not be empty" }).max(200, { error: "name must be at most 200 characters" }).optional(),
|
|
@@ -1005,6 +1018,13 @@ var AgentCloseRequest = z.object({
|
|
|
1005
1018
|
child: SessionTarget,
|
|
1006
1019
|
discard: z.boolean().optional()
|
|
1007
1020
|
}).strict();
|
|
1021
|
+
var AgentAnswerRequest = z.union([z.object({
|
|
1022
|
+
child: SessionTarget,
|
|
1023
|
+
answers: z.record(z.string(), z.string().min(1))
|
|
1024
|
+
}).strict(), z.object({
|
|
1025
|
+
child: SessionTarget,
|
|
1026
|
+
toOperator: z.literal(true)
|
|
1027
|
+
}).strict()]);
|
|
1008
1028
|
var AgentChannelEntry = z.object({
|
|
1009
1029
|
from: z.enum([
|
|
1010
1030
|
"parent",
|
|
@@ -1124,4 +1144,4 @@ var AgentLimitsReply = z.object({
|
|
|
1124
1144
|
}).strict())
|
|
1125
1145
|
}).strict().extend({ ok: z.literal(true) }).strict();
|
|
1126
1146
|
//#endregion
|
|
1127
|
-
export {
|
|
1147
|
+
export { MyPrMergeWhenReadyRequest as $, RESTARTABLE_STATES as $t, SESSION_NAME_RULE_TEXT as A, TeamReviewStateEntry as At, UnseenOutcome as B, HEX_SHA_RE as Bt, ConversationQuestion as C, ReviewResult as Ct, SESSION_DOC_BODY_CAP_BYTES as D, TeamReviewActionResult as Dt, SESSION_COMMANDS as E, TeamReviewActionRequest as Et, SessionState as F, canApproveAfterComment as Ft, MyPrCheckContextsResponse as G, repoParts as Gt, MyPr as H, GH_SEGMENT as Ht, SshSignReply as I, decisionAsIfApprovalRequired as It, MyPrLaneEntry as J, GithubPrsFreshness as Jt, MyPrKeepMergeableRequest as K, GithubPollingRefreshRequest as Kt, SshSignRequest as L, hasRequiredActionHead as Lt, SSH_SIGN_BODY_CAP_BYTES as M, TeamReviewThreadCommentsResponse as Mt, SessionDoc as N, TeamReviewThreadResult as Nt, SESSION_DOC_PATH_MAX_CHARS as O, TeamReviewCompareFiles as Ot, SessionSnapshot as P, TeamReviewThreadsRepository as Pt, MyPrMergeStateResponse as Q, MERGEABLE_LIVE_STATES as Qt, TASK_TITLE_CONTROL_CHARACTERS as R, hasStandingViewerApproval as Rt, ConversationApprovalDecision as S, ReviewFinding as St, RefinedTaskTitle as T, ReviewVerdict as Tt, MyPrAutoRebase as U, NODE_ID_RE as Ut, LinkedPr as V, shortSha as Vt, MyPrCheckContext as W, REPO_SLUG_RE as Wt, MyPrMergeRequest as X, BADGE_LABELS as Xt, MyPrMergeMethod as Y, githubPollingShape as Yt, MyPrMergeResult as Z, KILLABLE_STATES as Zt, CONVERSATION_PERMISSION_HOOK_EVENT as _, PrDetail as _t, AgentAttentionRequest as a, MyPrsState as at, ConversationAnswers as b, ReviewComment as bt, AgentLimitsReply as c, pullRequestKeyFormat as ct, AgentSendRequest as d, DECIDING_REVIEW_STATES as dt, STATES as en, MyPrMergeWhenReadyResult as et, AgentSettingsReply as f, EarlierReview as ft, CONVERSATION_APPROVAL_SUMMARY_MAX_CHARS as g, PostingPlan as gt, COHERENCE_HOOKS_INACTIVE as h, GithubReviewState as ht, AgentAnswerRequest as i, MyPrsSnapshot as it, SIGN_URL_ENV as j, TeamReviewStatus as jt, SESSION_NAME_PATTERN as k, TeamReviewResolveResponse as kt, AgentPullRequestRequest as l, repositoryName as lt, AgentSpawnRequest as m, GithubReviewDecision as mt, AGENT_URL_ENV as n, MyPrThreadNode as nt, AgentCloseRequest as o, MyPrsStatus as ot, AgentSettingsRequest as p, FindingSeverity as pt, MyPrKeepMergeableResult as q, GithubPollingRefreshResult as qt, ASK_USER_QUESTION_TOOL_NAME as r, MyPrThreadsResponse as rt, AgentEditRequest as s, SessionPrLinks as st, AGENT_API_VERBS as t, MyPrSearchNode as tt, AgentReadRequest as u, CommitSha as ut, CONVERSATION_TOOL_RESULT_HOOK_EVENT as v, QueuedReview as vt, PendingWakeup as w, ReviewThreadId as wt, ConversationApproval as x, ReviewDraft as xt, CoherenceHooksState as y, ReviewChecksState as yt, TaskTitle as z, FULL_SHA_RE as zt };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { E as SESSION_COMMANDS } from "./session-CUc6d7aS.js";
|
|
2
2
|
//#region session/core/session-routes.ts
|
|
3
3
|
var SUPERVISION_LINE = "Glimmervoid supervises this session. Run glimmervoid --help for the commands it gives you and this session's limits.";
|
|
4
4
|
var SPAWN_LINE = "To delegate work that edits files or runs long, use glimmervoid spawn rather than an in-process subagent: the spawned session gets its own dashboard card the operator can watch. An in-process subagent stays fine for a quick read-only lookup.";
|
|
@@ -111,6 +111,7 @@ var COMMAND_ROUTES = Object.freeze({
|
|
|
111
111
|
send: channelRoute,
|
|
112
112
|
read: channelRoute,
|
|
113
113
|
close: closeRoute,
|
|
114
|
+
answer: closeRoute,
|
|
114
115
|
attention: attentionRoute,
|
|
115
116
|
board: () => ANSWERS,
|
|
116
117
|
edit: editRoute,
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { r as errorMessage, t as errorCode } from "./text-DoirglWV.js";
|
|
2
|
-
import {
|
|
3
|
-
import { r as BrowserConfig } from "./config-
|
|
2
|
+
import { f as AgentSettingsReply } from "./session-CUc6d7aS.js";
|
|
3
|
+
import { r as BrowserConfig } from "./config-CGRYpcBQ.js";
|
|
4
4
|
import { n as isRecord } from "./coerce-NSst8oRP.js";
|
|
5
5
|
import { t as renderTable } from "./ascii-figure-core-pDAwtlKO.js";
|
|
6
6
|
import { n as glimmervoidHomeDir, t as decideConfigPath } from "./config-path-core-DFt-TemS.js";
|
|
7
|
-
import { C as deleteValueAtPath, D as scoreSettingsSearch, E as parsePosthogProjectSelection, N as SETTINGS_REGISTRY, O as setValueAtPath, Q as withEnvSecrets, S as cloneValue, X as readEnvSecrets, Y as ENV_SECRET_BINDINGS, j as valueAtPath, l as saveConfigFileOnce, s as loadConfigFile, u as validateConfig } from "./config-store-
|
|
8
|
-
import { a as fail, c as listSettings, d as renderSectionTables, f as requireConfigFileSetting, g as valueText, h as succeed, i as describeSetting, l as readSetting, m as settingsRequestForServer, n as configFileViewOf, o as fitColumn, p as sectionOf, r as defaultText, s as getSetting, t as ALL_SETTINGS } from "./settings-readout-core-
|
|
7
|
+
import { C as deleteValueAtPath, D as scoreSettingsSearch, E as parsePosthogProjectSelection, N as SETTINGS_REGISTRY, O as setValueAtPath, Q as withEnvSecrets, S as cloneValue, X as readEnvSecrets, Y as ENV_SECRET_BINDINGS, j as valueAtPath, l as saveConfigFileOnce, s as loadConfigFile, u as validateConfig } from "./config-store-B1u3WA5t.js";
|
|
8
|
+
import { a as fail, c as listSettings, d as renderSectionTables, f as requireConfigFileSetting, g as valueText, h as succeed, i as describeSetting, l as readSetting, m as settingsRequestForServer, n as configFileViewOf, o as fitColumn, p as sectionOf, r as defaultText, s as getSetting, t as ALL_SETTINGS } from "./settings-readout-core-C_JzSeF7.js";
|
|
9
9
|
import fs from "node:fs";
|
|
10
10
|
import os from "node:os";
|
|
11
11
|
import { parseArgs } from "node:util";
|
|
@@ -329,7 +329,7 @@ function processIo() {
|
|
|
329
329
|
async function runSettingsCli(commandArguments, io = processIo()) {
|
|
330
330
|
const serverRequest = settingsRequestForServer(commandArguments, process.env);
|
|
331
331
|
if (!serverRequest) return runSettingsCommand(commandArguments, io);
|
|
332
|
-
const { askAgentApi } = await import("./agent-api-cli-
|
|
332
|
+
const { askAgentApi } = await import("./agent-api-cli-ep_5T7Hx.js");
|
|
333
333
|
const reply = AgentSettingsReply.safeParse(await askAgentApi("settings", serverRequest).catch((error) => ({
|
|
334
334
|
ok: false,
|
|
335
335
|
error: errorMessage(error)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { p as AgentSettingsRequest } from "./session-CUc6d7aS.js";
|
|
2
2
|
import { t as renderTable } from "./ascii-figure-core-pDAwtlKO.js";
|
|
3
|
-
import { A as settingsOf, M as FILE_ONLY_GROUPS, N as SETTINGS_REGISTRY, S as cloneValue, T as hasScaledUnit, X as readEnvSecrets, j as valueAtPath, k as settingsGroupOf, w as displayText, x as SETTINGS_INDEX } from "./config-store-
|
|
3
|
+
import { A as settingsOf, M as FILE_ONLY_GROUPS, N as SETTINGS_REGISTRY, S as cloneValue, T as hasScaledUnit, X as readEnvSecrets, j as valueAtPath, k as settingsGroupOf, w as displayText, x as SETTINGS_INDEX } from "./config-store-B1u3WA5t.js";
|
|
4
4
|
import { parseArgs } from "node:util";
|
|
5
5
|
//#region server/core/settings-readout-core.ts
|
|
6
6
|
var VALUE_COLUMN_WIDTH = 40;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { r as errorMessage } from "./text-DoirglWV.js";
|
|
2
|
-
import {
|
|
2
|
+
import { I as SshSignReply, j as SIGN_URL_ENV } from "./session-CUc6d7aS.js";
|
|
3
3
|
import { n as execFileAsync, o as spawn } from "./child-process-safe-D4hyVIXj.js";
|
|
4
4
|
import { a as isLoopbackHostname } from "./hook-relay-core-DA_bz2KA.js";
|
|
5
|
-
import { n as postToAgentIngress } from "./agent-api-cli-
|
|
5
|
+
import { n as postToAgentIngress } from "./agent-api-cli-CVgij_62.js";
|
|
6
6
|
import { l as parseSshPublicKey } from "./ssh-signing-core-CRhVVWNW.js";
|
|
7
7
|
import path from "node:path";
|
|
8
8
|
import fs from "node:fs/promises";
|