glimmervoid 0.31.0 → 0.32.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 (39) hide show
  1. package/dist/bin/glimmervoid.js +18 -14
  2. package/dist/chunks/{adapters-ClA_GbtA.js → adapters-BU74M4QZ.js} +1 -1
  3. package/dist/chunks/{adapters-gn7ulNO4.js → adapters-CoC18rdt.js} +28 -23
  4. package/dist/chunks/{agent-api-cli-DAA7Jx8N.js → agent-api-cli-V_BkYhBI.js} +12 -5
  5. package/dist/chunks/agent-api-core-B3YI8SYs.js +192 -0
  6. package/dist/chunks/{agent-setup-cli-CiJSDWSo.js → agent-setup-cli-D4956BfN.js} +1 -1
  7. package/dist/chunks/child-process-safe-B3zcPdFM.js +2 -0
  8. package/dist/chunks/{child-process-safe-Ch-Zgxqs.js → child-process-safe-DDELk9XC.js} +2 -1
  9. package/dist/chunks/{config-W1Sv-iPK.js → config-CZ4H51D0.js} +20 -6
  10. package/dist/chunks/{config-store-BCy4FHNG.js → config-store-BVtdHkDK.js} +14 -5
  11. package/dist/chunks/config-store-Cp62jN1O.js +2 -0
  12. package/dist/chunks/{contracts-3LkrilQX.js → contracts-DXujp-Zn.js} +60 -7
  13. package/dist/chunks/git-version-CrLW4a6r.js +58 -0
  14. package/dist/chunks/{grok-CXKeSt2z.js → grok-C4lzPFEg.js} +1 -2
  15. package/dist/chunks/{knowledge-graph-cli-D2tt5hPn.js → knowledge-graph-cli-Bjy9_kv5.js} +2 -2
  16. package/dist/chunks/{main-DyTCWIu2.js → main-DSbpYn2Y.js} +3337 -1965
  17. package/dist/chunks/{pair-cli-BbCBfd6l.js → pair-cli-CKn-wUw9.js} +2 -2
  18. package/dist/chunks/{remote-config-DKIH_VxM.js → remote-config-DP44Ybt9.js} +2 -2
  19. package/dist/chunks/rtk-resolver-CIVLE_xk.js +2 -0
  20. package/dist/chunks/{rtk-resolver-BGDzw5XK.js → rtk-resolver-jJxy_Mrt.js} +1 -1
  21. package/dist/chunks/{sandbox-deps-BPKE-ylr.js → sandbox-deps-DuaNFq7n.js} +1 -1
  22. package/dist/chunks/{session-fc4pFbon.js → session-B8fJb_Or.js} +19 -2
  23. package/dist/chunks/{visions-cli-CT5rjiwf.js → visions-cli-BhFdym5n.js} +1 -1
  24. package/dist/chunks/{visions-setup-BmOkI-QE.js → visions-setup-CfgNHiG3.js} +1 -1
  25. package/dist/client/assets/index-C_XKsDFx.css +1 -0
  26. package/dist/client/assets/index-CoqWjYxP.js +254 -0
  27. package/dist/client/index.html +2 -2
  28. package/dist/scripts/postinstall-path-check.js +1 -1
  29. package/dist/server/index.js +1 -1
  30. package/dist/session/hook-tool-relay.js +1 -1
  31. package/dist/session/sandbox-open-launcher.js +1 -1
  32. package/dist/session/statusline-relay.js +1 -1
  33. package/package.json +1 -1
  34. package/dist/chunks/agent-api-core-hVcT26JW.js +0 -112
  35. package/dist/chunks/child-process-safe-BKPZ-5qQ.js +0 -2
  36. package/dist/chunks/config-store-DbBp7LJZ.js +0 -2
  37. package/dist/chunks/rtk-resolver-D4Nke1Fr.js +0 -2
  38. package/dist/client/assets/index-C6KD8lgZ.css +0 -1
  39. package/dist/client/assets/index-CThQEAEy.js +0 -249
@@ -1,5 +1,5 @@
1
- import { c as PendingPromptDetail, f as SessionSnapshot, h as TaskTitle, p as SessionState, u as PendingWakeup } from "./session-fc4pFbon.js";
2
- import { D as MyPrMergeWhenReadyRequest, Dt as CoherenceRisk, Et as CoherenceReadiness, F as CommitSha, O as MyPrMergeWhenReadyResult, P as MyPrsStatus, Q as TeamReviewActionResult, S as MyPrKeepMergeableResult, T as MyPrMergeResult, Tt as CoherenceOrient, Z as TeamReviewActionRequest, _t as ReviewsRefreshResult, gt as ReviewsRefreshRequest, jt as CoherenceWorkState, mt as REPO_SLUG_RE, n as BUILTIN_AGENT_IDS, nt as TeamReviewStatus, vt as reviewsPollingShape, w as MyPrMergeRequest, x as MyPrKeepMergeableRequest } from "./config-W1Sv-iPK.js";
1
+ import { _ as TaskTitle, f as PendingWakeup, h as SessionState, m as SessionSnapshot, u as PendingPromptDetail } from "./session-B8fJb_Or.js";
2
+ import { D as MyPrMergeWhenReadyRequest, Dt as CoherenceRisk, Et as CoherenceReadiness, F as CommitSha, O as MyPrMergeWhenReadyResult, P as MyPrsStatus, Q as TeamReviewActionResult, S as MyPrKeepMergeableResult, T as MyPrMergeResult, Tt as CoherenceOrient, Z as TeamReviewActionRequest, _t as ReviewsRefreshResult, gt as ReviewsRefreshRequest, jt as CoherenceWorkState, mt as REPO_SLUG_RE, n as BUILTIN_AGENT_IDS, nt as TeamReviewStatus, vt as reviewsPollingShape, w as MyPrMergeRequest, x as MyPrKeepMergeableRequest } from "./config-CZ4H51D0.js";
3
3
  import { z } from "zod";
4
4
  //#region shared/contracts/factory.ts
5
5
  var FactoryIssue = z.object({
@@ -84,13 +84,25 @@ var FactoryProjectState = z.object({
84
84
  right: z.string(),
85
85
  scope: z.string()
86
86
  })),
87
- unverifiedCompletedWork: z.array(z.string())
87
+ unverifiedCompletedWork: z.array(z.string()),
88
+ observedRun: z.object({
89
+ recordDirectory: z.string(),
90
+ outcome: z.string().nullable()
91
+ }).optional()
88
92
  });
89
93
  var FactoryState = z.object({
90
94
  type: z.literal("factory-state"),
91
95
  ts: z.number().finite(),
92
96
  projects: z.array(FactoryProjectState)
93
97
  });
98
+ var FactoryHarnessStateLine = z.object({
99
+ arrivedAt: z.string(),
100
+ state: FactoryState
101
+ });
102
+ var FactoryHarnessVerdict = z.looseObject({
103
+ outcome: z.enum(["pass", "fail"]),
104
+ failureClass: z.string().nullable().optional()
105
+ });
94
106
  var FACTORY_ERROR_MAX_CHARS = 16384;
95
107
  function isSingleFactoryPathSegment(value) {
96
108
  return value !== "." && value !== ".." && !/[/\\]/.test(value);
@@ -100,6 +112,31 @@ var intentText = z.string().trim().min(1).max(4096);
100
112
  var scopeText = z.string().trim().min(1).max(1024);
101
113
  var FACTORY_INTENT_TICKET_LIMIT = 32;
102
114
  var ticketKey = z.string().trim().min(1).max(64);
115
+ var FACTORY_PROTECTED_PATH_FLOOR = [
116
+ "**/package.json",
117
+ "**/package-lock.json",
118
+ "**/npm-shrinkwrap.json",
119
+ "**/yarn.lock",
120
+ "**/pnpm-lock.yaml",
121
+ "**/bun.lock",
122
+ "**/bun.lockb",
123
+ "**/.npmrc",
124
+ "**/.yarnrc",
125
+ "**/.yarnrc.yml",
126
+ "**/pnpm-workspace.yaml",
127
+ "**/.pnpmfile.cjs",
128
+ "**/tsconfig*.json",
129
+ "**/biome.json",
130
+ "**/biome.jsonc",
131
+ "**/vite.config.*",
132
+ "**/vitest.config.*",
133
+ "**/vitest.workspace.*",
134
+ "**/jest.config.*",
135
+ "**/.mocharc*",
136
+ "**/playwright.config.*"
137
+ ];
138
+ var FactoryFloorAllowance = z.enum(FACTORY_PROTECTED_PATH_FLOOR);
139
+ var floorAllowances = z.array(FactoryFloorAllowance).max(FACTORY_PROTECTED_PATH_FLOOR.length);
103
140
  var FactoryIntentTicket = z.object({
104
141
  id: ticketKey,
105
142
  objective: intentText,
@@ -114,7 +151,8 @@ var FactoryQueueIntentRequest = z.object({
114
151
  risk: CoherenceRisk,
115
152
  boundary: intentText,
116
153
  writeScopes: z.array(scopeText).max(32),
117
- tickets: z.array(FactoryIntentTicket).min(1).max(FACTORY_INTENT_TICKET_LIMIT).optional()
154
+ tickets: z.array(FactoryIntentTicket).min(1).max(FACTORY_INTENT_TICKET_LIMIT).optional(),
155
+ floorAllowances: floorAllowances.optional()
118
156
  });
119
157
  var FactoryQueueIntentResult = z.object({
120
158
  projectId: z.string().max(128),
@@ -142,6 +180,11 @@ var FactoryReviewerOutput = z.object({
142
180
  is_error: z.literal(false),
143
181
  structured_output: FactoryReviewVerdict
144
182
  });
183
+ var FactoryUnlandedRecord = z.object({
184
+ id: z.string().min(1).max(1024),
185
+ path: z.string().min(1).max(4096),
186
+ line: z.string().min(1).regex(/^[^\n]*$/)
187
+ });
145
188
  var FactoryLaneState = z.object({
146
189
  ledgerPath: z.string().min(1).max(4096).nullable(),
147
190
  ledgerBranch: z.string().min(1).max(1024).nullable(),
@@ -152,8 +195,14 @@ var FactoryLaneState = z.object({
152
195
  sha: z.string().regex(/^[a-f0-9]{40,64}$/)
153
196
  })).optional(),
154
197
  trustedIntentCloses: z.array(z.string().min(1)).optional(),
198
+ pendingVerifierTrusts: z.array(z.object({
199
+ intentId: z.string().min(1),
200
+ sha: z.string().regex(/^[a-f0-9]{40,64}$/),
201
+ records: z.array(FactoryUnlandedRecord).min(1)
202
+ })).optional(),
155
203
  trustedIntentIds: z.array(z.string().min(1)).optional(),
156
204
  intentWriteScopes: z.record(z.string().min(1), z.array(z.string().min(1))).optional(),
205
+ intentFloorAllowances: z.record(z.string().min(1), floorAllowances).optional(),
157
206
  ticketedIntentIds: z.array(z.string().min(1)).optional(),
158
207
  pendingIntentTickets: z.record(z.string().min(1), z.object({
159
208
  risk: CoherenceRisk,
@@ -162,7 +211,10 @@ var FactoryLaneState = z.object({
162
211
  })).optional(),
163
212
  intentBaseShas: z.record(z.string().min(1), z.string().regex(/^[a-f0-9]{40,64}$/)).optional(),
164
213
  filedBreaches: z.array(z.string().min(1)).optional(),
165
- factoryLandedShas: z.array(z.string().regex(/^[a-f0-9]{40,64}$/)).optional()
214
+ factoryLandedShas: z.array(z.string().regex(/^[a-f0-9]{40,64}$/)).optional(),
215
+ unlandedFactoryRecords: z.array(FactoryUnlandedRecord).optional(),
216
+ ticketBlockCounts: z.record(z.string().min(1), z.number().int().nonnegative()).optional(),
217
+ intentCapCancelCounts: z.record(z.string().min(1), z.number().int().nonnegative()).optional()
166
218
  });
167
219
  var FactoryWorkerEvent = z.object({
168
220
  workId: z.string().min(1),
@@ -1340,7 +1392,8 @@ var clientVariants = [
1340
1392
  path: z.string(),
1341
1393
  repos: z.array(z.string()).optional(),
1342
1394
  agent: z.string().optional(),
1343
- dangerouslySkipPermissions: z.boolean().optional()
1395
+ dangerouslySkipPermissions: z.boolean().optional(),
1396
+ unconfined: z.boolean().optional()
1344
1397
  }),
1345
1398
  loose("list-conversations", {
1346
1399
  id: sessionId,
@@ -2075,4 +2128,4 @@ z.object({
2075
2128
  projects: z.array(z.string()).optional()
2076
2129
  }).passthrough();
2077
2130
  //#endregion
2078
- export { FactoryIssueQueryRow as $, BenchmarkActionRequest as A, PrCheckoutCaseInput as B, IssueKey as C, IssuesStatus as D, IssuesState as E, BenchmarkStatus as F, TelemetryState as G, PendingCrashReport as H, BenchmarkSuite as I, FACTORY_ERROR_MAX_CHARS as J, FACTORY_DECISION_OUTPUT_MAX_BYTES as K, CommitComparison as L, BenchmarkId as M, BenchmarkJudgement as N, ChangeMap as O, BenchmarkRun as P, FactoryIssue as Q, MergedPrListing as R, GithubIssueResponse as S, IssuesSearchResponse as T, TELEMETRY_EVENT_SCHEMAS as U, FeatureFlagsResponse as V, TELEMETRY_KILL_SWITCH_FLAG as W, FactoryControlRequest as X, FactoryConsequences as Y, FactoryHogQLResponse as Z, PlanDecision as _, ClientMessage as a, FactoryWorkerEvent as at, planTitle as b, UpdateJournal as c, TraceRecord as d, FactoryLaneState as et, PLAN_BODY_CAP_BYTES as f, PLAN_TOOL_NAME as g, PLAN_RESULT_HOOK_EVENT as h, CONTROL_FRAME_MAX_BYTES as i, FactoryReviewerOutput as it, BenchmarkCase as j, changeMapFactId as k, MAX_RAW_LINE_CHARS as l, PLAN_HOOK_OUTPUT_MAX_CHARS as m, HookEnvelope as n, FactoryQueueIntentRequest as nt, DIFF_ANNOTATION_NOTE_MAX_CHARS as o, isSingleFactoryPathSegment as ot, PLAN_HOOK_EVENT as p, FactoryDecisionLogLine as q, parseDataClientMessage as r, FactoryReviewVerdict as rt, InstallFlavor as s, HTTP_URL_RE as t, FactoryProjectState as tt, TraceCheckpoint as u, PlanRevision as v, IssueUpdate as w, GithubIssuePullRequestsRepository as x, parseExitPlanModeHookPayload as y, MinedPrReviewData as z };
2131
+ export { FactoryHarnessVerdict as $, BenchmarkActionRequest as A, PrCheckoutCaseInput as B, IssueKey as C, IssuesStatus as D, IssuesState as E, BenchmarkStatus as F, TelemetryState as G, PendingCrashReport as H, BenchmarkSuite as I, FACTORY_ERROR_MAX_CHARS as J, FACTORY_DECISION_OUTPUT_MAX_BYTES as K, CommitComparison as L, BenchmarkId as M, BenchmarkJudgement as N, ChangeMap as O, BenchmarkRun as P, FactoryHarnessStateLine as Q, MergedPrListing as R, GithubIssueResponse as S, IssuesSearchResponse as T, TELEMETRY_EVENT_SCHEMAS as U, FeatureFlagsResponse as V, TELEMETRY_KILL_SWITCH_FLAG as W, FactoryConsequences as X, FACTORY_PROTECTED_PATH_FLOOR as Y, FactoryControlRequest as Z, PlanDecision as _, ClientMessage as a, FactoryQueueIntentRequest as at, planTitle as b, UpdateJournal as c, FactoryWorkerEvent as ct, TraceRecord as d, FactoryHogQLResponse as et, PLAN_BODY_CAP_BYTES as f, PLAN_TOOL_NAME as g, PLAN_RESULT_HOOK_EVENT as h, CONTROL_FRAME_MAX_BYTES as i, FactoryProjectState as it, BenchmarkCase as j, changeMapFactId as k, MAX_RAW_LINE_CHARS as l, isSingleFactoryPathSegment as lt, PLAN_HOOK_OUTPUT_MAX_CHARS as m, HookEnvelope as n, FactoryIssueQueryRow as nt, DIFF_ANNOTATION_NOTE_MAX_CHARS as o, FactoryReviewVerdict as ot, PLAN_HOOK_EVENT as p, FactoryDecisionLogLine as q, parseDataClientMessage as r, FactoryLaneState as rt, InstallFlavor as s, FactoryReviewerOutput as st, HTTP_URL_RE as t, FactoryIssue as tt, TraceCheckpoint as u, PlanRevision as v, IssueUpdate as w, GithubIssuePullRequestsRepository as x, parseExitPlanModeHookPayload as y, MinedPrReviewData as z };
@@ -0,0 +1,58 @@
1
+ import { r as execFileSync } from "./child-process-safe-DDELk9XC.js";
2
+ //#region server/core/git-version-core.ts
3
+ var NEW_WORK_ISOLATION_FLOOR = Object.freeze({
4
+ major: 2,
5
+ minor: 48
6
+ });
7
+ var NEW_WORK_ISOLATION_FLOOR_LABEL = `${NEW_WORK_ISOLATION_FLOOR.major}.${NEW_WORK_ISOLATION_FLOOR.minor}`;
8
+ var WHOLE_RANGE_CONSEQUENCE = "a team re-review cannot single out the author's new work and reviews the whole pull request range";
9
+ var GIT_UPDATE_HINT = `Update git to ${NEW_WORK_ISOLATION_FLOOR_LABEL} or newer`;
10
+ var UNKNOWN_GIT_VERSION = Object.freeze({
11
+ version: null,
12
+ isTooOldToIsolateNewWork: false
13
+ });
14
+ function gitVersionReport(versionOutput) {
15
+ const match = /^git version (\d+)\.(\d+)(?:\.(\d+))?/.exec(versionOutput?.trim() ?? "");
16
+ if (!match) return UNKNOWN_GIT_VERSION;
17
+ const [, major = "", minor = "", patch] = match;
18
+ const isBelowFloorMajor = Number(major) < NEW_WORK_ISOLATION_FLOOR.major;
19
+ const isBelowFloorMinor = Number(major) === NEW_WORK_ISOLATION_FLOOR.major && Number(minor) < NEW_WORK_ISOLATION_FLOOR.minor;
20
+ return {
21
+ version: [
22
+ major,
23
+ minor,
24
+ patch
25
+ ].filter((part) => part !== void 0).join("."),
26
+ isTooOldToIsolateNewWork: isBelowFloorMajor || isBelowFloorMinor
27
+ };
28
+ }
29
+ function gitBootWarning(report) {
30
+ if (!report.isTooOldToIsolateNewWork) return null;
31
+ return `[git] git ${report.version} is older than ${NEW_WORK_ISOLATION_FLOOR_LABEL}, so ${WHOLE_RANGE_CONSEQUENCE}. ${GIT_UPDATE_HINT}.`;
32
+ }
33
+ function gitDoctorRows(report) {
34
+ const versionRow = ["git", report.version ?? "unknown"];
35
+ if (!report.isTooOldToIsolateNewWork) return [versionRow];
36
+ return [versionRow, ["hint", `${GIT_UPDATE_HINT}: on an older one ${WHOLE_RANGE_CONSEQUENCE}`]];
37
+ }
38
+ //#endregion
39
+ //#region server/git-version.ts
40
+ function readGitVersionOutput() {
41
+ return execFileSync("git", ["--version"], {
42
+ encoding: "utf8",
43
+ timeout: 3e3
44
+ });
45
+ }
46
+ function probeGitVersion({ readVersionOutput = readGitVersionOutput } = {}) {
47
+ try {
48
+ return gitVersionReport(readVersionOutput());
49
+ } catch {
50
+ return gitVersionReport(null);
51
+ }
52
+ }
53
+ function warnWhenGitIsTooOld({ probe = probeGitVersion, log = console } = {}) {
54
+ const warning = gitBootWarning(probe());
55
+ if (warning !== null) log.warn(warning);
56
+ }
57
+ //#endregion
58
+ export { warnWhenGitIsTooOld as n, gitDoctorRows as r, probeGitVersion as t };
@@ -1,6 +1,6 @@
1
1
  import { r as errorMessage } from "./text-DoirglWV.js";
2
2
  import { o as relayPath } from "./runtime-paths-BPoxENmK.js";
3
- import { n as AGENT_URL_ENV } from "./session-fc4pFbon.js";
3
+ import { n as AGENT_URL_ENV } from "./session-B8fJb_Or.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, n as RTK_PATH_ENV, o as saneYoloEnv } from "./rtk-hook-core-BmEz2aq9.js";
@@ -430,7 +430,6 @@ var grok = {
430
430
  statusLine: false,
431
431
  rtk: false,
432
432
  saneYolo: true,
433
- antiSlop: false,
434
433
  compactQuiet: false,
435
434
  skipPermissionsFlag: true,
436
435
  headless: true
@@ -1,8 +1,8 @@
1
1
  import { r as errorMessage } from "./text-DoirglWV.js";
2
2
  import { s as resolvePackageBin } from "./runtime-paths-BPoxENmK.js";
3
- import { r as execFileSync } from "./child-process-safe-Ch-Zgxqs.js";
3
+ import { r as execFileSync } from "./child-process-safe-DDELk9XC.js";
4
4
  import { n as glimmervoidHomeDir, t as decideConfigPath } from "./config-path-core-DFt-TemS.js";
5
- import { r as BrowserConfig } from "./config-W1Sv-iPK.js";
5
+ import { r as BrowserConfig } from "./config-CZ4H51D0.js";
6
6
  import fs, { closeSync, constants, existsSync, fstatSync, lstatSync, mkdirSync, openSync, readFileSync, readdirSync, realpathSync } from "node:fs";
7
7
  import path, { dirname, join, posix, resolve, win32 } from "node:path";
8
8
  import { parseArgs } from "node:util";