glimmervoid 0.37.0 → 0.38.1
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 +16 -14
- package/dist/chunks/{adapters-BmfVPxlH.js → adapters-B0EJp_oE.js} +19 -4
- package/dist/chunks/{adapters-CqFFmM2R.js → adapters-BIbF8RJB.js} +1 -1
- package/dist/chunks/{agent-api-cli-CBgOKXoO.js → agent-api-cli-B5Tm0wXO.js} +27 -8
- package/dist/chunks/{agent-api-cli-BTHEyJKS.js → agent-api-cli-BDu1CxZf.js} +1 -1
- package/dist/chunks/{agent-api-core-DzKhakCv.js → agent-api-core-B_mUSenR.js} +30 -7
- package/dist/chunks/{agent-setup-cli-C8DGxlA-.js → agent-setup-cli-C9MMiask.js} +2 -2
- package/dist/chunks/{config-BYc2z1Oc.js → browser-config-BrBT8269.js} +9 -223
- package/dist/chunks/config-CjawSOBk.js +219 -0
- package/dist/chunks/config-store-B6mX2phK.js +1 -0
- package/dist/chunks/{config-store-B7MpiYxG.js → config-store-CKcDJebD.js} +42 -64
- package/dist/chunks/{contracts-C6ipN_zw.js → contracts-HVCEJfxs.js} +23 -250
- package/dist/chunks/factory-D7ryES9n.js +240 -0
- package/dist/chunks/{git-version-6QFnKbWa.js → git-version-rWZjF2Px.js} +1 -1
- package/dist/chunks/{grok-CZ6kP_vD.js → grok-y65HOvlU.js} +1 -1
- package/dist/chunks/{json-file-BaxGcB2R.js → json-file-CIJf0Cel.js} +190 -9
- package/dist/chunks/{knowledge-graph-cli-DApeMzA8.js → knowledge-graph-cli-ByUJoKw_.js} +1 -1
- package/dist/chunks/{loopback-post-DJ6iYWuL.js → loopback-post-DZK7YibD.js} +1 -1
- package/dist/chunks/{main-BUfjroXE.js → main-DeiiNNI7.js} +1186 -475
- package/dist/chunks/{pair-cli-GZ9t1mIO.js → pair-cli-B9hHUHLl.js} +2 -2
- package/dist/chunks/{remote-config-D2Is89Kj.js → remote-config-DlquYoVe.js} +2 -2
- package/dist/chunks/{session-BZbariv5.js → session-BlT68ppa.js} +6 -3
- package/dist/chunks/{session-routes-C4t8O8yg.js → session-routes-CT1JrjoT.js} +1 -1
- package/dist/chunks/{settings-cli-DQOjmjev.js → settings-cli-C5i9v59a.js} +3 -3
- package/dist/chunks/{ssh-sign-cli-LIBP8ppO.js → ssh-sign-cli-C74BGTQS.js} +2 -2
- package/dist/client/assets/index-ChXRDbjt.js +275 -0
- package/dist/client/assets/index-DA251uL1.css +1 -0
- package/dist/client/index.html +11 -3
- package/dist/server/index.js +1 -1
- package/dist/session/command-hook-relay.js +1 -1
- package/dist/session/hook-relay.js +1 -1
- package/dist/session/statusline-relay.js +1 -1
- package/dist/session/visions-relay.js +7 -7
- package/package.json +3 -2
- package/scripts/recover-handoff.mjs +1 -1
- package/dist/chunks/config-store-CsUoy88Q.js +0 -1
- package/dist/client/assets/index-B_Qt7fbZ.css +0 -1
- package/dist/client/assets/index-D-upBor0.js +0 -265
package/dist/bin/glimmervoid.js
CHANGED
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
import { o as nodePtyRebuildHint, r as firstLine, t as probeNodePty } from "../chunks/node-pty-preflight-C8QIlrtU.js";
|
|
3
3
|
import { i as errorText } from "../chunks/text-DoirglWV.js";
|
|
4
4
|
import { a as packageRoot } from "../chunks/runtime-paths-BkeftE60.js";
|
|
5
|
-
import { t as AGENT_API_VERBS } from "../chunks/session-
|
|
5
|
+
import { t as AGENT_API_VERBS } from "../chunks/session-BlT68ppa.js";
|
|
6
6
|
import { i as execSync } from "../chunks/child-process-safe-CbQnyh7D.js";
|
|
7
7
|
import { t as renderTable } from "../chunks/ascii-figure-core-pDAwtlKO.js";
|
|
8
8
|
import { n as glimmervoidHomeDir, t as decideConfigPath } from "../chunks/config-path-core-DFt-TemS.js";
|
|
9
|
-
import { i as parseCommandLine, r as gitDoctorRows, t as probeGitVersion } from "../chunks/git-version-
|
|
9
|
+
import { i as parseCommandLine, r as gitDoctorRows, t as probeGitVersion } from "../chunks/git-version-rWZjF2Px.js";
|
|
10
10
|
import { i as guardrailsDoctorRows, r as probeGuardrailsDependencies } from "../chunks/guardrails-deps-Cb-ki4EU.js";
|
|
11
11
|
import { i as pnpmGlobalBinDir, n as npmGlobalBinDir, r as onPath, t as formatPathNotice } from "../chunks/path-doctor-C23VAqeu.js";
|
|
12
12
|
import fs from "node:fs";
|
|
@@ -43,6 +43,8 @@ Inside a Glimmervoid session:
|
|
|
43
43
|
limits List which of these commands answer here and what the guardrails block
|
|
44
44
|
factory status Print each factory intent's tickets, state, last reason and next action
|
|
45
45
|
factory retry <id> Reopen the parked tickets of a factory intent
|
|
46
|
+
factory setup Prove and save the factory checks of this session's repository
|
|
47
|
+
factory queue <file> Queue a factory intent (a spec cut.ts file or Factory tab request) on this session's repository
|
|
46
48
|
ssh-sign Sign a commit with the operator's forwarded ssh agent (git runs this)
|
|
47
49
|
|
|
48
50
|
Experimental:
|
|
@@ -74,19 +76,19 @@ var SUBCOMMAND_RUNNERS = new Map([
|
|
|
74
76
|
return 0;
|
|
75
77
|
}],
|
|
76
78
|
["pair", async (subcommandArgs) => {
|
|
77
|
-
const { runPairCli } = await import("../chunks/pair-cli-
|
|
79
|
+
const { runPairCli } = await import("../chunks/pair-cli-B9hHUHLl.js");
|
|
78
80
|
return runPairCli(subcommandArgs);
|
|
79
81
|
}],
|
|
80
82
|
["agent", async (subcommandArgs) => {
|
|
81
|
-
const { runAgentSetupCli } = await import("../chunks/agent-setup-cli-
|
|
83
|
+
const { runAgentSetupCli } = await import("../chunks/agent-setup-cli-C9MMiask.js");
|
|
82
84
|
return runAgentSetupCli(subcommandArgs);
|
|
83
85
|
}],
|
|
84
86
|
["kg", async (subcommandArgs) => {
|
|
85
|
-
const { runKnowledgeGraphCommand } = await import("../chunks/knowledge-graph-cli-
|
|
87
|
+
const { runKnowledgeGraphCommand } = await import("../chunks/knowledge-graph-cli-ByUJoKw_.js");
|
|
86
88
|
return runKnowledgeGraphCommand(subcommandArgs);
|
|
87
89
|
}],
|
|
88
90
|
["settings", async (subcommandArgs) => {
|
|
89
|
-
const { runSettingsCommand } = await import("../chunks/settings-cli-
|
|
91
|
+
const { runSettingsCommand } = await import("../chunks/settings-cli-C5i9v59a.js");
|
|
90
92
|
return runSettingsCommand(subcommandArgs);
|
|
91
93
|
}],
|
|
92
94
|
["visions", async (subcommandArgs) => {
|
|
@@ -94,21 +96,21 @@ var SUBCOMMAND_RUNNERS = new Map([
|
|
|
94
96
|
return runVisionsCli(subcommandArgs);
|
|
95
97
|
}],
|
|
96
98
|
["ssh-sign", async (subcommandArgs) => {
|
|
97
|
-
const { runSshSignCli } = await import("../chunks/ssh-sign-cli-
|
|
99
|
+
const { runSshSignCli } = await import("../chunks/ssh-sign-cli-C74BGTQS.js");
|
|
98
100
|
return runSshSignCli(subcommandArgs);
|
|
99
101
|
}],
|
|
100
102
|
["factory", async (subcommandArgs) => {
|
|
101
|
-
const { runAgentApiCli } = await import("../chunks/agent-api-cli-
|
|
103
|
+
const { runAgentApiCli } = await import("../chunks/agent-api-cli-BDu1CxZf.js");
|
|
102
104
|
return runAgentApiCli(["factory", ...subcommandArgs]);
|
|
103
105
|
}],
|
|
104
106
|
...AGENT_API_VERBS.map((verb) => [verb, async (subcommandArgs, subcommandName) => {
|
|
105
|
-
const { runAgentApiCli } = await import("../chunks/agent-api-cli-
|
|
107
|
+
const { runAgentApiCli } = await import("../chunks/agent-api-cli-BDu1CxZf.js");
|
|
106
108
|
return runAgentApiCli([subcommandName, ...subcommandArgs]);
|
|
107
109
|
}])
|
|
108
110
|
]);
|
|
109
111
|
async function printSessionLimits() {
|
|
110
112
|
if (!process.env["GLIMMERVOID_AGENT_URL"]) return;
|
|
111
|
-
const { sessionLimitsHelpLines } = await import("../chunks/agent-api-cli-
|
|
113
|
+
const { sessionLimitsHelpLines } = await import("../chunks/agent-api-cli-BDu1CxZf.js");
|
|
112
114
|
const limitsLines = await sessionLimitsHelpLines();
|
|
113
115
|
console.log(`\n${limitsLines.join("\n")}`);
|
|
114
116
|
}
|
|
@@ -165,7 +167,7 @@ async function readDeclaredCustomAgents() {
|
|
|
165
167
|
declared: [],
|
|
166
168
|
error: null
|
|
167
169
|
};
|
|
168
|
-
const { loadConfigFile } = await import("../chunks/config-store-
|
|
170
|
+
const { loadConfigFile } = await import("../chunks/config-store-B6mX2phK.js");
|
|
169
171
|
try {
|
|
170
172
|
const loaded = loadConfigFile(decided.path, { exitOnError: false });
|
|
171
173
|
if (!loaded.config) return {
|
|
@@ -241,7 +243,7 @@ async function runDoctor() {
|
|
|
241
243
|
}
|
|
242
244
|
switchSection("Agents");
|
|
243
245
|
try {
|
|
244
|
-
const { listAgentIds, describeAgentResolvability, setCustomAgents } = await import("../chunks/adapters-
|
|
246
|
+
const { listAgentIds, describeAgentResolvability, setCustomAgents } = await import("../chunks/adapters-BIbF8RJB.js");
|
|
245
247
|
const declaredCustomAgents = await readDeclaredCustomAgents();
|
|
246
248
|
if (declaredCustomAgents.error) line("config", declaredCustomAgents.error);
|
|
247
249
|
setCustomAgents(declaredCustomAgents.declared);
|
|
@@ -249,7 +251,7 @@ async function runDoctor() {
|
|
|
249
251
|
const { label, path: resolvedPath } = describeAgentResolvability(id);
|
|
250
252
|
line(`${id} (${label})`, resolvedPath ?? "not found on PATH");
|
|
251
253
|
}
|
|
252
|
-
const { inspectGrokAgentSetup } = await import("../chunks/agent-setup-cli-
|
|
254
|
+
const { inspectGrokAgentSetup } = await import("../chunks/agent-setup-cli-C9MMiask.js");
|
|
253
255
|
const grokSetup = inspectGrokAgentSetup();
|
|
254
256
|
line("grok hook setup", `${grokSetup.classification}: ${grokSetup.filePath}`);
|
|
255
257
|
} catch (err) {
|
|
@@ -266,7 +268,7 @@ async function runDoctor() {
|
|
|
266
268
|
try {
|
|
267
269
|
const { resolvePackageBin } = await import("../chunks/runtime-paths-DSmormp7.js");
|
|
268
270
|
const { execFileSync } = await import("../chunks/child-process-safe-ChRmWAJP.js");
|
|
269
|
-
const { inspectGrokAgentSetup } = await import("../chunks/agent-setup-cli-
|
|
271
|
+
const { inspectGrokAgentSetup } = await import("../chunks/agent-setup-cli-C9MMiask.js");
|
|
270
272
|
const binPath = resolvePackageBin("cc-safety-net", "cc-safety-net");
|
|
271
273
|
line("Sane YOLO", binPath || "not installed");
|
|
272
274
|
if (binPath) line("cc-safety-net version", execFileSync(process.execPath, [binPath, "--version"], {
|
|
@@ -3,10 +3,10 @@ import { r as execFileSync } from "./child-process-safe-CbQnyh7D.js";
|
|
|
3
3
|
import { n as resolveAgentCommand, t as buildAgentSpawnCommand } from "./spawn-command-Cc40FiZI.js";
|
|
4
4
|
import { s as rawTextOr } from "./coerce-NSst8oRP.js";
|
|
5
5
|
import { r as nextBackoffMs } from "./backoff-DjVpfHk7.js";
|
|
6
|
-
import { l as supervisionLine } from "./session-routes-
|
|
7
|
-
import { c as buildAgentEnv, i as isSpinnerChar, n as classifyAgentTitle, r as isBrailleChar, t as grok } from "./grok-
|
|
6
|
+
import { l as supervisionLine } from "./session-routes-CT1JrjoT.js";
|
|
7
|
+
import { c as buildAgentEnv, i as isSpinnerChar, n as classifyAgentTitle, r as isBrailleChar, t as grok } from "./grok-y65HOvlU.js";
|
|
8
8
|
import { t as buildHookCommand } from "./hook-command-core-qTNK-xMF.js";
|
|
9
|
-
import "./contracts-
|
|
9
|
+
import "./contracts-HVCEJfxs.js";
|
|
10
10
|
import { n as mergeCodexPreToolUse, t as HOOK_TOOLS } from "./hook-tools-BkxllUHE.js";
|
|
11
11
|
import fs from "node:fs";
|
|
12
12
|
import path from "node:path";
|
|
@@ -211,6 +211,21 @@ function laneSpendStatus({ isTrackingEnabled, scan }) {
|
|
|
211
211
|
if (!scan.isHistoryCaughtUp || scan.lastOutcome === null) return "catching-up";
|
|
212
212
|
return "known";
|
|
213
213
|
}
|
|
214
|
+
function scopedClaudeRoots(scopeDirs, claudeDirs) {
|
|
215
|
+
if (!scopeDirs || scopeDirs.length === 0) return null;
|
|
216
|
+
const isInside = (candidate, parent) => candidate.startsWith(`${parent}${path.sep}`);
|
|
217
|
+
const roots = [];
|
|
218
|
+
for (const scopeDir of [...new Set(scopeDirs.map((dir) => path.resolve(dir)))].sort((left, right) => left.length - right.length)) {
|
|
219
|
+
if (!claudeDirs.some((claudeDir) => isInside(scopeDir, claudeDir))) return null;
|
|
220
|
+
if (roots.some((root) => isInside(scopeDir, root))) continue;
|
|
221
|
+
roots.push(scopeDir);
|
|
222
|
+
}
|
|
223
|
+
return roots.map((dir) => ({
|
|
224
|
+
vendor: "claude",
|
|
225
|
+
dir,
|
|
226
|
+
kind: "active"
|
|
227
|
+
}));
|
|
228
|
+
}
|
|
214
229
|
function decideFileRead(prior, stat) {
|
|
215
230
|
if (!prior) return {
|
|
216
231
|
action: "restart",
|
|
@@ -775,4 +790,4 @@ function resetCommandCache() {
|
|
|
775
790
|
resolvedCommands.clear();
|
|
776
791
|
}
|
|
777
792
|
//#endregion
|
|
778
|
-
export {
|
|
793
|
+
export { shouldPersistWarehouse as A, isUsageFile as C, resolveProjectsDirs as D, projectDirCandidates as E, claudeCode as M, scopedClaudeRoots as O, grokRootCandidates as S, passOutcome as T, continuationDelayMs as _, describeAgentResolvability as a, expandTilde as b, isKnownAgentId as c, resolveAdapter as d, setCustomAgents as f, codexSessionIdFromPath as g, codexRootCandidates as h, customAgentFingerprint as i, splitLines as j, shouldEvaluateDespiteIoFailures as k, listAgentIds as l, codexHomes as m, cachedAgentResolvability as n, getAdapter as o, codexFallbackRoots as p, commandFor as r, hookProfileOf as s, DEFAULT_AGENT_ID as t, resetCommandCache as u, decideFileRead as v, laneSpendStatus as w, grokHomes as x, dedupeCodexFiles as y };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { a as describeAgentResolvability, l as listAgentIds, f as setCustomAgents } from "./adapters-
|
|
1
|
+
export { a as describeAgentResolvability, l as listAgentIds, f as setCustomAgents } from "./adapters-B0EJp_oE.js";
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { t as errorCode } from "./text-DoirglWV.js";
|
|
2
|
-
import { a as AgentDispatchRequest,
|
|
2
|
+
import { a as AgentDispatchRequest, f as AgentTicketRequest, l as AgentFactoryStatusRequest, n as AGENT_URL_ENV, s as AgentFactoryRetryRequest, u as AgentLimitsReply } from "./session-BlT68ppa.js";
|
|
3
3
|
import { i as resolveHookTarget } from "./hook-relay-core-DA_bz2KA.js";
|
|
4
4
|
import { n as decideGuardrailsProxy } from "./guardrails-proxy-core-BI3rdY-m.js";
|
|
5
|
+
import { n as isRecord } from "./coerce-NSst8oRP.js";
|
|
5
6
|
import { t as parseJsonOrNull } from "./json-core-dfa_7Fak.js";
|
|
6
|
-
import { a as formatSessionLimits } from "./session-routes-
|
|
7
|
-
import {
|
|
7
|
+
import { a as formatSessionLimits } from "./session-routes-CT1JrjoT.js";
|
|
8
|
+
import { g as isOrchestratorAgentVerb, h as isAgentApiVerb } from "./agent-api-core-B_mUSenR.js";
|
|
9
|
+
import { readFileSync } from "node:fs";
|
|
8
10
|
import path from "node:path";
|
|
9
11
|
import http from "node:http";
|
|
10
12
|
//#region server/agent-api-cli.ts
|
|
@@ -47,8 +49,25 @@ var BODY_BUILDERS = {
|
|
|
47
49
|
if (rest.length !== 1) return null;
|
|
48
50
|
const parsed = AgentFactoryRetryRequest.safeParse({ intentId: rest[0] });
|
|
49
51
|
return parsed.success ? parsed.data : null;
|
|
52
|
+
},
|
|
53
|
+
"factory-setup": (rest) => rest.length === 0 ? {} : null,
|
|
54
|
+
"factory-queue": (rest) => {
|
|
55
|
+
if (rest.length !== 1) return null;
|
|
56
|
+
const intent = parseJsonOrNull(readFileSync(rest[0], "utf8"));
|
|
57
|
+
if (!isRecord(intent)) return null;
|
|
58
|
+
const { name: _name, type: _type, requestId: _requestId, projectId: _projectId, ...request } = intent;
|
|
59
|
+
return request;
|
|
50
60
|
}
|
|
51
61
|
};
|
|
62
|
+
var FACTORY_USAGE = Object.freeze({
|
|
63
|
+
"factory-status": "status [--project <projectId>]",
|
|
64
|
+
"factory-retry": "retry <intentId>",
|
|
65
|
+
"factory-setup": "setup",
|
|
66
|
+
"factory-queue": "queue <intent.json>"
|
|
67
|
+
});
|
|
68
|
+
function isFactoryVerb(verb) {
|
|
69
|
+
return verb in FACTORY_USAGE;
|
|
70
|
+
}
|
|
52
71
|
function bodySaysOk(text) {
|
|
53
72
|
try {
|
|
54
73
|
const parsed = JSON.parse(text);
|
|
@@ -63,7 +82,7 @@ function limitsLines(replyText) {
|
|
|
63
82
|
return formatSessionLimits(limits.data);
|
|
64
83
|
}
|
|
65
84
|
function printableReply(verb, replyText) {
|
|
66
|
-
if (verb
|
|
85
|
+
if (isFactoryVerb(verb)) {
|
|
67
86
|
const reply = parseJsonOrNull(replyText);
|
|
68
87
|
if (typeof reply !== "object" || reply === null) return replyText;
|
|
69
88
|
if ("text" in reply && typeof reply.text === "string") return reply.text;
|
|
@@ -170,8 +189,8 @@ async function sessionLimitsHelpLines({ timeoutMs = HELP_LIMITS_TIMEOUT_MS } = {
|
|
|
170
189
|
}
|
|
171
190
|
async function runAgentApiCli(args) {
|
|
172
191
|
if (args[0] === "factory") {
|
|
173
|
-
if (args[1]
|
|
174
|
-
console.error(
|
|
192
|
+
if (!(`factory-${args[1]}` in FACTORY_USAGE)) {
|
|
193
|
+
console.error(`glimmervoid factory: expected ${Object.values(FACTORY_USAGE).join(", or ")}`);
|
|
175
194
|
return 1;
|
|
176
195
|
}
|
|
177
196
|
return runAgentApiCli([`factory-${args[1]}`, ...args.slice(2)]);
|
|
@@ -183,8 +202,8 @@ async function runAgentApiCli(args) {
|
|
|
183
202
|
}
|
|
184
203
|
const body = BODY_BUILDERS[verb](args.slice(1));
|
|
185
204
|
if (!body) {
|
|
186
|
-
if (verb
|
|
187
|
-
console.error(`glimmervoid factory: expected ${verb
|
|
205
|
+
if (isFactoryVerb(verb)) {
|
|
206
|
+
console.error(`glimmervoid factory: expected ${FACTORY_USAGE[verb]}`);
|
|
188
207
|
return 1;
|
|
189
208
|
}
|
|
190
209
|
if (isOrchestratorAgentVerb(verb)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { n as runAgentApiCli, r as sessionLimitsHelpLines } from "./agent-api-cli-
|
|
1
|
+
export { n as runAgentApiCli, r as sessionLimitsHelpLines } from "./agent-api-cli-B5Tm0wXO.js";
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { c as spawnRoute, i as editRoute, n as attentionRoute, s as pushRoute, t as NO_OWN_WORKTREE_REASON } from "./session-routes-
|
|
1
|
+
import { b as ORCHESTRATOR_AGENT_VERBS, c as AgentFactorySetupRequest, d as AgentSpawnRequest, i as AgentAttentionRequest, l as AgentFactoryStatusRequest, o as AgentEditRequest, s as AgentFactoryRetryRequest, t as AGENT_API_VERBS } from "./session-BlT68ppa.js";
|
|
2
|
+
import { c as spawnRoute, i as editRoute, n as attentionRoute, s as pushRoute, t as NO_OWN_WORKTREE_REASON } from "./session-routes-CT1JrjoT.js";
|
|
3
|
+
import { t as AgentFactoryQueueRequest } from "./factory-D7ryES9n.js";
|
|
4
|
+
import path from "node:path";
|
|
3
5
|
import crypto from "node:crypto";
|
|
4
6
|
var MAX_SPAWNS_IN_FLIGHT = 1;
|
|
5
7
|
var SPAWNABLE_DEPTH = 0;
|
|
@@ -81,7 +83,7 @@ function factoryControlRoute({ factoryRole, isEphemeral, isSpawnedChild }) {
|
|
|
81
83
|
if (!(factoryRole !== null || isEphemeral && !isSpawnedChild)) return { answers: true };
|
|
82
84
|
return {
|
|
83
85
|
answers: false,
|
|
84
|
-
reason: "only an operator session or a session it spawned may
|
|
86
|
+
reason: "only an operator session or a session it spawned may use the factory commands, so factory and lane sessions stay on their own task"
|
|
85
87
|
};
|
|
86
88
|
}
|
|
87
89
|
function decideFactoryControlAllowance(caller) {
|
|
@@ -165,8 +167,8 @@ function parseAgentVerb(verb, payload) {
|
|
|
165
167
|
request: parsed.data
|
|
166
168
|
};
|
|
167
169
|
}
|
|
168
|
-
if (verb === "
|
|
169
|
-
const parsed =
|
|
170
|
+
if (verb === "factory-setup") {
|
|
171
|
+
const parsed = AgentFactorySetupRequest.safeParse(payload);
|
|
170
172
|
if (!parsed.success) return refuseInvalidBody(parsed.error.issues);
|
|
171
173
|
return {
|
|
172
174
|
ok: true,
|
|
@@ -174,7 +176,16 @@ function parseAgentVerb(verb, payload) {
|
|
|
174
176
|
request: parsed.data
|
|
175
177
|
};
|
|
176
178
|
}
|
|
177
|
-
if (verb === "
|
|
179
|
+
if (verb === "factory-queue") {
|
|
180
|
+
const parsed = AgentFactoryQueueRequest.safeParse(payload);
|
|
181
|
+
if (!parsed.success) return refuseInvalidBody(parsed.error.issues);
|
|
182
|
+
return {
|
|
183
|
+
ok: true,
|
|
184
|
+
verb,
|
|
185
|
+
request: parsed.data
|
|
186
|
+
};
|
|
187
|
+
}
|
|
188
|
+
if (isOrchestratorAgentVerb(verb)) return {
|
|
178
189
|
ok: false,
|
|
179
190
|
status: 403,
|
|
180
191
|
error: `${verb} requires a live factory orchestrator`
|
|
@@ -314,5 +325,17 @@ function formatFactoryStatus(projects, buildDigest) {
|
|
|
314
325
|
}
|
|
315
326
|
return lines.join("\n") || "No factory projects.";
|
|
316
327
|
}
|
|
328
|
+
function findSessionProjectId(projects, sessionPath) {
|
|
329
|
+
const resolvedSessionPath = path.resolve(sessionPath);
|
|
330
|
+
return projects?.find((project) => path.resolve(project.path) === resolvedSessionPath)?.id ?? null;
|
|
331
|
+
}
|
|
332
|
+
var FACTORY_QUEUE_STEP = "glimmervoid factory queue <intent.json>, with an intent cut by the spec skill or written in the Factory tab request shape";
|
|
333
|
+
function describeFactorySetupProfile(profile, isFactoryProject) {
|
|
334
|
+
return [
|
|
335
|
+
`Factory checks: ${profile.checks?.join(", ") || "none"}`,
|
|
336
|
+
`Focused test command: ${profile.focusedTestCommand ?? "none proven, so every ticket runs the full checks"}`,
|
|
337
|
+
isFactoryProject ? `Next: ${FACTORY_QUEUE_STEP}` : `Next: commit a coherence.config.json holding {} at the repository root, land it with glimmervoid push, then ${FACTORY_QUEUE_STEP}`
|
|
338
|
+
].join("\n");
|
|
339
|
+
}
|
|
317
340
|
//#endregion
|
|
318
|
-
export { decideFactoryControlAllowance as a, deriveChildSessionName as c,
|
|
341
|
+
export { parseAgentVerb as _, decideFactoryControlAllowance as a, deriveChildSessionName as c, describePushRouteRefusal as d, describeUnavailableFactoryState as f, isOrchestratorAgentVerb as g, isAgentApiVerb as h, decideEditAllowance as i, describeFactorySetupProfile as l, formatFactoryStatus as m, decideAgentRequest as n, decideSpawnAllowance as o, findSessionProjectId as p, decideAttentionAllowance as r, decideTicketAction as s, REFUSAL_REASON as t, describePushLanding as u };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { a as isMissingFileError, r as errorMessage } from "./text-DoirglWV.js";
|
|
2
|
-
import { a as classifyGrokHooksFile, o as renderGrokHooksFile, t as grok } from "./grok-
|
|
3
|
-
import { p as writeTextAtomicSync } from "./json-file-
|
|
2
|
+
import { a as classifyGrokHooksFile, o as renderGrokHooksFile, t as grok } from "./grok-y65HOvlU.js";
|
|
3
|
+
import { p as writeTextAtomicSync } from "./json-file-CIJf0Cel.js";
|
|
4
4
|
import fs from "node:fs";
|
|
5
5
|
import path from "node:path";
|
|
6
6
|
//#region server/agent-setup-cli.ts
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { It as repoParts, Nt as GH_SEGMENT, et as repositoryName, q as MyPrSearchNode, tt as CommitSha } from "./session-BlT68ppa.js";
|
|
2
2
|
import { n as isRecord } from "./coerce-NSst8oRP.js";
|
|
3
|
-
import path from "node:path";
|
|
4
3
|
import { z } from "zod";
|
|
5
4
|
//#region shared/contracts/coherence.ts
|
|
6
5
|
var CoherenceRisk = z.enum([
|
|
@@ -178,6 +177,10 @@ var REPLAY_BUFFER_KB_RANGE = Object.freeze({
|
|
|
178
177
|
min: 64,
|
|
179
178
|
max: 16384
|
|
180
179
|
});
|
|
180
|
+
var MEMORY_RESERVE_MB_RANGE = Object.freeze({
|
|
181
|
+
min: 0,
|
|
182
|
+
max: 65536
|
|
183
|
+
});
|
|
181
184
|
var PORT_RANGE = Object.freeze({
|
|
182
185
|
min: 0,
|
|
183
186
|
max: 65535
|
|
@@ -280,6 +283,7 @@ Object.freeze({
|
|
|
280
283
|
POSTHOG_TRAFFIC_MIN_USERS_RANGE,
|
|
281
284
|
POSTHOG_TRAFFIC_MULTIPLIER_RANGE,
|
|
282
285
|
REPLAY_BUFFER_KB_RANGE,
|
|
286
|
+
MEMORY_RESERVE_MB_RANGE,
|
|
283
287
|
TASK_TITLE_TIMEOUT_RANGE,
|
|
284
288
|
USAGE_BUDGET_RANGE,
|
|
285
289
|
USAGE_RETAIN_DAYS_RANGE,
|
|
@@ -713,12 +717,11 @@ var TelemetrySettings = z.object(telemetryShape, { error: "telemetry must be an
|
|
|
713
717
|
var TelemetryFileSettings = z.object(telemetryShape, { error: "telemetry must be an object" }).passthrough().optional();
|
|
714
718
|
var createBrowserConfigShape = (isAbsolutePath) => ({
|
|
715
719
|
port: z.number().int().min(PORT_RANGE.min).max(PORT_RANGE.max).optional(),
|
|
716
|
-
autoRecoverSeconds: z.number().finite().nonnegative().optional(),
|
|
717
|
-
inputGraceSeconds: z.number().finite().nonnegative().optional(),
|
|
718
|
-
promptDetectionMs: z.number().finite().nonnegative().optional(),
|
|
719
720
|
notifyDebounceMs: z.number().finite().nonnegative().optional(),
|
|
720
721
|
phoneEscalationMs: z.number().finite().nonnegative().optional(),
|
|
721
722
|
replayBufferKB: optionalWholeNumber("replayBufferKB", REPLAY_BUFFER_KB_RANGE),
|
|
723
|
+
sessionMemoryReserveMB: optionalWholeNumber("sessionMemoryReserveMB", MEMORY_RESERVE_MB_RANGE),
|
|
724
|
+
checkMemoryReserveMB: optionalWholeNumber("checkMemoryReserveMB", MEMORY_RESERVE_MB_RANGE),
|
|
722
725
|
cursorBlink: optionalBoolean("cursorBlink"),
|
|
723
726
|
debugMode: optionalBoolean("debugMode"),
|
|
724
727
|
conversationView: optionalBoolean("conversationView"),
|
|
@@ -756,221 +759,4 @@ var createBrowserConfigShape = (isAbsolutePath) => ({
|
|
|
756
759
|
});
|
|
757
760
|
var createBrowserConfig = (isAbsolutePath) => z.object(createBrowserConfigShape(isAbsolutePath));
|
|
758
761
|
//#endregion
|
|
759
|
-
|
|
760
|
-
var BrowserConfig = createBrowserConfig(path.isAbsolute);
|
|
761
|
-
var BROWSER_CONFIG_SHAPE = BrowserConfig.shape;
|
|
762
|
-
var ConfigUpdate = z.object({
|
|
763
|
-
...BROWSER_CONFIG_SHAPE,
|
|
764
|
-
autoRecoverSeconds: z.number({ error: "autoRecoverSeconds must be a positive number" }).finite().positive({ error: "autoRecoverSeconds must be a positive number" }).optional(),
|
|
765
|
-
inputGraceSeconds: z.number({ error: "inputGraceSeconds must be a positive number" }).finite().positive({ error: "inputGraceSeconds must be a positive number" }).optional(),
|
|
766
|
-
promptDetectionMs: z.number({ error: "promptDetectionMs must be a positive number" }).finite().positive({ error: "promptDetectionMs must be a positive number" }).optional(),
|
|
767
|
-
notifyDebounceMs: z.number({ error: "notifyDebounceMs must be a positive number" }).finite().positive({ error: "notifyDebounceMs must be a positive number" }).optional(),
|
|
768
|
-
phoneEscalationMs: z.number({ error: "phoneEscalationMs must be a positive number" }).finite().positive({ error: "phoneEscalationMs must be a positive number" }).optional(),
|
|
769
|
-
branchGc: BranchGcControlSettings,
|
|
770
|
-
worktreeAutoRebase: optionalBoolean("worktreeAutoRebase"),
|
|
771
|
-
worktreeSyncOnStart: optionalBoolean("worktreeSyncOnStart"),
|
|
772
|
-
worktreeRerere: optionalBoolean("worktreeRerere"),
|
|
773
|
-
workflows: WorkflowsSettingsUpdate.optional()
|
|
774
|
-
}).omit({
|
|
775
|
-
port: true,
|
|
776
|
-
worktreeShare: true
|
|
777
|
-
}).strict();
|
|
778
|
-
var AGENT_ID_RE = /^[a-z][a-z0-9-]{1,31}$/;
|
|
779
|
-
var BUILTIN_AGENT_IDS = Object.freeze([
|
|
780
|
-
"claude-code",
|
|
781
|
-
"codex",
|
|
782
|
-
"grok"
|
|
783
|
-
]);
|
|
784
|
-
var AGENT_ID_SHAPE_MESSAGE = "an agent id of 2 to 32 characters of lowercase letters, digits and dashes, starting with a letter";
|
|
785
|
-
var AGENT_COMMAND_BASENAME_RE = /^[A-Za-z0-9._+-]+$/;
|
|
786
|
-
var AGENT_COMMAND_ABSOLUTE_RE = /^(?:\/|[A-Za-z]:[\\/])[A-Za-z0-9._+\-\\/]*[A-Za-z0-9._+-]$/;
|
|
787
|
-
var AGENT_COMMAND_SHAPE_MESSAGE = "a bare command name or an absolute path, built only from letters, digits, dot, underscore, plus, dash and path separators";
|
|
788
|
-
function isSpawnableCommand(command) {
|
|
789
|
-
if (AGENT_COMMAND_BASENAME_RE.test(command)) return true;
|
|
790
|
-
return AGENT_COMMAND_ABSOLUTE_RE.test(command);
|
|
791
|
-
}
|
|
792
|
-
var GIT_BRANCH_FORBIDDEN_PUNCTUATION_RE = /[~^:?*[\\]/;
|
|
793
|
-
var GIT_BRANCH_FORBIDDEN_SEQUENCES = [
|
|
794
|
-
"..",
|
|
795
|
-
"@{",
|
|
796
|
-
"//"
|
|
797
|
-
];
|
|
798
|
-
function isControlOrSpaceCharacter(character) {
|
|
799
|
-
const codePoint = character.charCodeAt(0);
|
|
800
|
-
return codePoint <= 32 || codePoint === 127;
|
|
801
|
-
}
|
|
802
|
-
function isGitBranchName(name) {
|
|
803
|
-
if (name === "" || name === "@" || name === "HEAD") return false;
|
|
804
|
-
if (name.startsWith("-") || name.startsWith("/") || name.endsWith("/") || name.endsWith(".")) return false;
|
|
805
|
-
if (GIT_BRANCH_FORBIDDEN_SEQUENCES.some((sequence) => name.includes(sequence))) return false;
|
|
806
|
-
if (GIT_BRANCH_FORBIDDEN_PUNCTUATION_RE.test(name) || [...name].some(isControlOrSpaceCharacter)) return false;
|
|
807
|
-
return name.split("/").every((component) => !component.startsWith(".") && !component.endsWith(".lock"));
|
|
808
|
-
}
|
|
809
|
-
var CustomAgentDeclaration = z.object({
|
|
810
|
-
id: z.string({ error: "customAgents[].id must be a string" }).regex(AGENT_ID_RE, { error: `customAgents[].id must be ${AGENT_ID_SHAPE_MESSAGE}` }),
|
|
811
|
-
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" }),
|
|
812
|
-
command: z.string({ error: "customAgents[].command must be a string" }).min(1, { error: "customAgents[].command must not be empty" }).refine((command) => command.trim().length > 0, { error: "customAgents[].command must not be blank" }).refine(isSpawnableCommand, { error: `customAgents[].command must be ${AGENT_COMMAND_SHAPE_MESSAGE}` }),
|
|
813
|
-
args: z.array(z.string({ error: "customAgents[].args must be an array of strings" }), { error: "customAgents[].args must be an array of strings" }).default([]),
|
|
814
|
-
idleTitle: z.string({ error: "customAgents[].idleTitle must be a string" }).optional(),
|
|
815
|
-
busyTitle: z.string({ error: "customAgents[].busyTitle must be a string" }).optional()
|
|
816
|
-
}).strict();
|
|
817
|
-
var CustomAgentDeclarations = z.array(CustomAgentDeclaration, { error: "customAgents must be an array" }).superRefine((declarations, ctx) => {
|
|
818
|
-
const claimedIds = new Set(BUILTIN_AGENT_IDS);
|
|
819
|
-
for (const [index, declaration] of declarations.entries()) {
|
|
820
|
-
if (!claimedIds.has(declaration.id)) {
|
|
821
|
-
claimedIds.add(declaration.id);
|
|
822
|
-
continue;
|
|
823
|
-
}
|
|
824
|
-
const message = BUILTIN_AGENT_IDS.some((builtinAgentId) => builtinAgentId === declaration.id) ? `customAgents[${index}].id "${declaration.id}" collides with the builtin agent of the same id` : `customAgents[${index}].id "${declaration.id}" is declared more than once`;
|
|
825
|
-
ctx.addIssue({
|
|
826
|
-
code: "custom",
|
|
827
|
-
path: [index, "id"],
|
|
828
|
-
message
|
|
829
|
-
});
|
|
830
|
-
}
|
|
831
|
-
});
|
|
832
|
-
var TaskTitleSources = z.object({
|
|
833
|
-
customTitle: TaskTitle.nullable().optional(),
|
|
834
|
-
pendingPromptTitle: TaskTitle.nullable().optional(),
|
|
835
|
-
refinedTitle: TaskTitle.nullable().optional(),
|
|
836
|
-
aiTitle: TaskTitle.nullable().optional(),
|
|
837
|
-
oscTitle: TaskTitle.nullable().optional(),
|
|
838
|
-
promptTitle: TaskTitle.nullable().optional()
|
|
839
|
-
}).strict();
|
|
840
|
-
var TASK_TITLE_SOURCE_PRIORITY = [
|
|
841
|
-
"customTitle",
|
|
842
|
-
"pendingPromptTitle",
|
|
843
|
-
"refinedTitle",
|
|
844
|
-
"aiTitle",
|
|
845
|
-
"oscTitle",
|
|
846
|
-
"promptTitle"
|
|
847
|
-
];
|
|
848
|
-
var PersistedTaskTitle = z.object({
|
|
849
|
-
taskTitle: TaskTitle.min(1),
|
|
850
|
-
isCustom: z.boolean(),
|
|
851
|
-
sources: TaskTitleSources
|
|
852
|
-
}).strict().refine(({ taskTitle, isCustom, sources }) => {
|
|
853
|
-
const source = TASK_TITLE_SOURCE_PRIORITY.find((candidate) => sources[candidate]?.trim());
|
|
854
|
-
if (!source) return false;
|
|
855
|
-
return sources[source]?.replace(/\s+/g, " ").trim() === taskTitle && isCustom === (source === "customTitle");
|
|
856
|
-
});
|
|
857
|
-
var ProjectConfig = z.object({
|
|
858
|
-
id: z.string().optional(),
|
|
859
|
-
name: z.string().optional(),
|
|
860
|
-
customTitle: TaskTitle.optional(),
|
|
861
|
-
taskTitleState: PersistedTaskTitle.optional().catch(void 0),
|
|
862
|
-
prLinks: SessionPrLinks.optional().catch(void 0),
|
|
863
|
-
path: z.string(),
|
|
864
|
-
repos: z.array(z.string()).min(2).optional(),
|
|
865
|
-
baseBranch: z.string().refine(isGitBranchName, { error: "projects[].baseBranch must be a git branch name" }).optional(),
|
|
866
|
-
agent: z.string({ error: "projects[].agent must be a string" }).regex(AGENT_ID_RE, { error: `projects[].agent must be ${AGENT_ID_SHAPE_MESSAGE}` }).optional(),
|
|
867
|
-
codexBypassHookTrust: z.boolean().optional(),
|
|
868
|
-
conversationView: z.boolean({ error: "projects[].conversationView must be a boolean" }).optional(),
|
|
869
|
-
dangerouslySkipPermissions: z.boolean({ error: "projects[].dangerouslySkipPermissions must be a boolean" }).optional(),
|
|
870
|
-
unguarded: z.boolean({ error: "projects[].unguarded must be a boolean" }).optional(),
|
|
871
|
-
factoryProfile: FactorySettings.unwrap().unwrap().extend({
|
|
872
|
-
focusedTestCommand: z.string().trim().min(1).optional(),
|
|
873
|
-
widenableScopes: z.array(z.string().trim().min(1)).optional()
|
|
874
|
-
}).optional()
|
|
875
|
-
}).passthrough();
|
|
876
|
-
var FILE_CONFIG_SHAPE = {
|
|
877
|
-
...BROWSER_CONFIG_SHAPE,
|
|
878
|
-
changeMap: ChangeMapSettings,
|
|
879
|
-
branchGc: optionalLooseObject("branchGc"),
|
|
880
|
-
coder: z.object({ appSlug: z.string().optional() }).loose().optional(),
|
|
881
|
-
visions: optionalLooseObject("visions"),
|
|
882
|
-
github: GithubSettings,
|
|
883
|
-
teamReview: optionalLooseObject("teamReview"),
|
|
884
|
-
benchmarks: optionalLooseObject("benchmarks"),
|
|
885
|
-
factory: FactorySettings,
|
|
886
|
-
knowledgeGraph: optionalLooseObject("knowledgeGraph"),
|
|
887
|
-
posthog: optionalLooseObject("posthog"),
|
|
888
|
-
usage: optionalLooseObject("usage"),
|
|
889
|
-
telegram: optionalLooseObject("telegram"),
|
|
890
|
-
ingest: optionalLooseObject("ingest"),
|
|
891
|
-
workflows: optionalLooseObject("workflows"),
|
|
892
|
-
guardrails: GuardrailsFileSettings,
|
|
893
|
-
telemetry: TelemetryFileSettings,
|
|
894
|
-
trace: TraceSettings,
|
|
895
|
-
planReview: PlanReviewSettings,
|
|
896
|
-
customAgents: CustomAgentDeclarations.optional()
|
|
897
|
-
};
|
|
898
|
-
var Config = z.object({
|
|
899
|
-
...FILE_CONFIG_SHAPE,
|
|
900
|
-
detectScheduledWakeups: optionalBoolean("detectScheduledWakeups"),
|
|
901
|
-
worktreeAutoRebase: optionalBoolean("worktreeAutoRebase"),
|
|
902
|
-
worktreeSyncOnStart: optionalBoolean("worktreeSyncOnStart"),
|
|
903
|
-
worktreeRerere: optionalBoolean("worktreeRerere"),
|
|
904
|
-
postTurnChecks: z.record(z.string(), z.unknown()).optional(),
|
|
905
|
-
hooks: z.unknown().optional(),
|
|
906
|
-
remote: z.object({
|
|
907
|
-
enabled: z.boolean().optional(),
|
|
908
|
-
port: z.number().int().min(1).max(65535).nullable().optional(),
|
|
909
|
-
publicHost: z.string().optional(),
|
|
910
|
-
allowedOrigins: z.array(z.string()).optional(),
|
|
911
|
-
ownerLogin: z.string().optional()
|
|
912
|
-
}).passthrough().optional(),
|
|
913
|
-
projects: z.array(ProjectConfig)
|
|
914
|
-
}).passthrough().superRefine((config, ctx) => {
|
|
915
|
-
if (!Array.isArray(config.projects)) return;
|
|
916
|
-
const declaredAgentIds = new Set(BUILTIN_AGENT_IDS);
|
|
917
|
-
for (const declaration of config.customAgents ?? []) declaredAgentIds.add(declaration.id);
|
|
918
|
-
for (const [index, project] of config.projects.entries()) {
|
|
919
|
-
const agent = project?.agent;
|
|
920
|
-
if (typeof agent !== "string" || !AGENT_ID_RE.test(agent)) continue;
|
|
921
|
-
if (declaredAgentIds.has(agent)) continue;
|
|
922
|
-
ctx.addIssue({
|
|
923
|
-
code: "custom",
|
|
924
|
-
path: [
|
|
925
|
-
"projects",
|
|
926
|
-
index,
|
|
927
|
-
"agent"
|
|
928
|
-
],
|
|
929
|
-
message: `projects[${index}].agent "${agent}" names no known agent; declare it under customAgents or use one of ${[...declaredAgentIds].join(", ")}`
|
|
930
|
-
});
|
|
931
|
-
}
|
|
932
|
-
});
|
|
933
|
-
var CONFIG_BLOCK_KEYS = Object.freeze([
|
|
934
|
-
"changeMap",
|
|
935
|
-
"taskTitle",
|
|
936
|
-
"branchGc",
|
|
937
|
-
"postTurnChecks",
|
|
938
|
-
"visions",
|
|
939
|
-
"github",
|
|
940
|
-
"teamReview",
|
|
941
|
-
"benchmarks",
|
|
942
|
-
"factory",
|
|
943
|
-
"knowledgeGraph",
|
|
944
|
-
"posthog",
|
|
945
|
-
"usage",
|
|
946
|
-
"telegram",
|
|
947
|
-
"ingest",
|
|
948
|
-
"guardrails",
|
|
949
|
-
"telemetry",
|
|
950
|
-
"workflows",
|
|
951
|
-
"coder"
|
|
952
|
-
]);
|
|
953
|
-
var CONFIG_SCALAR_KEYS = Object.freeze(Object.keys(BROWSER_CONFIG_SHAPE).filter((key) => {
|
|
954
|
-
if (CONFIG_BLOCK_KEYS.includes(key)) return false;
|
|
955
|
-
return key !== "port" && key !== "repoRoots" && key !== "worktreeShare";
|
|
956
|
-
}));
|
|
957
|
-
var RUNTIME_CONFIG_SCALAR_KEYS = Object.freeze([
|
|
958
|
-
...CONFIG_SCALAR_KEYS,
|
|
959
|
-
"worktreeAutoRebase",
|
|
960
|
-
"worktreeSyncOnStart",
|
|
961
|
-
"worktreeRerere"
|
|
962
|
-
]);
|
|
963
|
-
Object.freeze([
|
|
964
|
-
"detectScheduledWakeups",
|
|
965
|
-
"worktreeAutoRebase",
|
|
966
|
-
"worktreeSyncOnStart",
|
|
967
|
-
"worktreeRerere",
|
|
968
|
-
"hooks",
|
|
969
|
-
"remote",
|
|
970
|
-
"projects"
|
|
971
|
-
]);
|
|
972
|
-
function configIssueMessage(error) {
|
|
973
|
-
return error.issues[0]?.message || "settings are invalid";
|
|
974
|
-
}
|
|
975
|
-
//#endregion
|
|
976
|
-
export { CoherenceWorkInspect as $, FLYING_ANIMALS_GAP_RANGE as A, REPLAY_BUFFER_KB_RANGE as B, USAGE_COST_MODES as C, FACTORY_MAX_LIVE_WORKERS_RANGE as D, CHANGE_MAP_NARRATOR_TIMEOUT_RANGE as E, POSITIVE_NUMBER_RANGE as F, USAGE_SCAN_INTERVAL_RANGE as G, USAGE_BUDGET_RANGE as H, POSTHOG_FIX_TIMEOUT_RANGE as I, CoherenceOrient as J, WORKFLOWS_MAX_ACTIONS_PER_POLL_RANGE as K, POSTHOG_TRAFFIC_BASELINE_RANGE as L, KEEP_MERGEABLE_TIMEOUT_MINUTES_RANGE as M, NON_NEGATIVE_NUMBER_RANGE as N, FLYING_ANIMALS_DEFAULTS as O, PORT_RANGE as P, CoherenceWorkCreated as Q, POSTHOG_TRAFFIC_MIN_USERS_RANGE as R, WorkflowsState as S, normalizeLegacyConfigNumbers as T, USAGE_INTEGER_RANGES as U, TASK_TITLE_TIMEOUT_RANGE as V, USAGE_RETAIN_DAYS_RANGE as W, CoherenceRisk as X, CoherenceReadiness as Y, CoherenceTicketCreated as Z, UPDATE_CHANNELS as _, ConfigUpdate as a, WorkflowSearchNode as b, RUNTIME_CONFIG_SCALAR_KEYS as c, BranchGcFileSettings as d, CoherenceWorkState as et, CHANGE_MAP_NARRATOR_ENGINES as f, POST_TURN_CHECK_MODES as g, FactorySettings as h, Config as i, FLYING_ANIMALS_SCALE_RANGE as j, FLYING_ANIMALS_DURATION_RANGE as k, TASK_TITLE_SOURCE_PRIORITY as l, DEFAULT_FACTORY_PROTECTED_PATHS as m, BUILTIN_AGENT_IDS as n, PersistedTaskTitle as o, DEFAULT_FACTORY_CHECKS as p, WORKFLOWS_MAX_CONCURRENT_SESSIONS_RANGE as q, BrowserConfig as r, ProjectConfig as s, AGENT_ID_SHAPE_MESSAGE as t, configIssueMessage as u, WorkflowCommentBody as v, USAGE_VENDOR_KEYS as w, WorkflowsSettings as x, WorkflowLabelName as y, POSTHOG_TRAFFIC_MULTIPLIER_RANGE as z };
|
|
762
|
+
export { CoherenceTicketCreated as $, FLYING_ANIMALS_DURATION_RANGE as A, POSTHOG_TRAFFIC_MIN_USERS_RANGE as B, WorkflowsState as C, CHANGE_MAP_NARRATOR_TIMEOUT_RANGE as D, normalizeLegacyConfigNumbers as E, NON_NEGATIVE_NUMBER_RANGE as F, USAGE_INTEGER_RANGES as G, REPLAY_BUFFER_KB_RANGE as H, PORT_RANGE as I, WORKFLOWS_MAX_ACTIONS_PER_POLL_RANGE as J, USAGE_RETAIN_DAYS_RANGE as K, POSITIVE_NUMBER_RANGE as L, FLYING_ANIMALS_SCALE_RANGE as M, KEEP_MERGEABLE_TIMEOUT_MINUTES_RANGE as N, FACTORY_MAX_LIVE_WORKERS_RANGE as O, MEMORY_RESERVE_MB_RANGE as P, CoherenceRisk as Q, POSTHOG_FIX_TIMEOUT_RANGE as R, WorkflowsSettingsUpdate as S, USAGE_VENDOR_KEYS as T, TASK_TITLE_TIMEOUT_RANGE as U, POSTHOG_TRAFFIC_MULTIPLIER_RANGE as V, USAGE_BUDGET_RANGE as W, CoherenceOrient as X, WORKFLOWS_MAX_CONCURRENT_SESSIONS_RANGE as Y, CoherenceReadiness as Z, optionalLooseObject as _, DEFAULT_FACTORY_CHECKS as a, WorkflowSearchNode as b, GithubSettings as c, PlanReviewSettings as d, CoherenceWorkCreated as et, TelemetryFileSettings as f, optionalBoolean as g, createBrowserConfig as h, ChangeMapSettings as i, FLYING_ANIMALS_GAP_RANGE as j, FLYING_ANIMALS_DEFAULTS as k, GuardrailsFileSettings as l, UPDATE_CHANNELS as m, BranchGcFileSettings as n, CoherenceWorkState as nt, DEFAULT_FACTORY_PROTECTED_PATHS as o, TraceSettings as p, USAGE_SCAN_INTERVAL_RANGE as q, CHANGE_MAP_NARRATOR_ENGINES as r, FactorySettings as s, BranchGcControlSettings as t, CoherenceWorkInspect as tt, POST_TURN_CHECK_MODES as u, WorkflowCommentBody as v, USAGE_COST_MODES as w, WorkflowsSettings as x, WorkflowLabelName as y, POSTHOG_TRAFFIC_BASELINE_RANGE as z };
|