@qodeca/xezar 0.11.2 → 0.13.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/README.md +69 -18
- package/dist/agent-config/catalog.d.ts +10 -0
- package/dist/agent-config/catalog.js.map +1 -1
- package/dist/automations/coordinator.js +8 -0
- package/dist/automations/coordinator.js.map +1 -1
- package/dist/automations/types.d.ts +2 -0
- package/dist/contract/automations.d.ts +8 -0
- package/dist/contract/events.test.d.ts +1 -0
- package/dist/contract/index.js +87 -3
- package/dist/contract/runs.d.ts +25 -0
- package/dist/contract/runs.test.d.ts +1 -0
- package/dist/contract/skills.d.ts +1 -0
- package/dist/contract/workflows.d.ts +6 -0
- package/dist/contract/workspace.d.ts +37 -4
- package/dist/core/agent-env.js +8 -1
- package/dist/core/agent-env.js.map +1 -1
- package/dist/core/agent-runner.d.ts +13 -0
- package/dist/core/agent-runner.js +22 -0
- package/dist/core/agent-runner.js.map +1 -1
- package/dist/core/backend-detect.js +11 -1
- package/dist/core/backend-detect.js.map +1 -1
- package/dist/core/claude-cli-runner.js +8 -2
- package/dist/core/claude-cli-runner.js.map +1 -1
- package/dist/core/codex-app-server-runner.js +6 -2
- package/dist/core/codex-app-server-runner.js.map +1 -1
- package/dist/core/opencode-server-runner.d.ts +12 -0
- package/dist/core/opencode-server-runner.js +326 -17
- package/dist/core/opencode-server-runner.js.map +1 -1
- package/dist/core/pi-model-catalog.d.ts +52 -0
- package/dist/core/pi-model-catalog.js +135 -0
- package/dist/core/pi-model-catalog.js.map +1 -0
- package/dist/core/pi-runner.d.ts +3 -0
- package/dist/core/pi-runner.js +139 -12
- package/dist/core/pi-runner.js.map +1 -1
- package/dist/core/pi-ui-mapper.js +39 -3
- package/dist/core/pi-ui-mapper.js.map +1 -1
- package/dist/core/runner-model-catalog.js +11 -2
- package/dist/core/runner-model-catalog.js.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/paths.d.ts +7 -0
- package/dist/paths.js +8 -0
- package/dist/paths.js.map +1 -1
- package/dist/runs/event-corrections.d.ts +12 -0
- package/dist/runs/event-corrections.js +141 -0
- package/dist/runs/event-corrections.js.map +1 -0
- package/dist/runs/event-history.d.ts +5 -1
- package/dist/runs/event-history.js +66 -5
- package/dist/runs/event-history.js.map +1 -1
- package/dist/runs/project-writer.d.ts +11 -0
- package/dist/runs/project-writer.js +115 -0
- package/dist/runs/project-writer.js.map +1 -0
- package/dist/runs/store.d.ts +2 -0
- package/dist/runs/store.js +13 -2
- package/dist/runs/store.js.map +1 -1
- package/dist/runs/task-markers.d.ts +4 -0
- package/dist/runs/task-markers.js +63 -5
- package/dist/runs/task-markers.js.map +1 -1
- package/dist/server/capabilities.d.ts +7 -5
- package/dist/server/capabilities.js +11 -7
- package/dist/server/capabilities.js.map +1 -1
- package/dist/server/project-context.js +2 -0
- package/dist/server/project-context.js.map +1 -1
- package/dist/server/server.d.ts +199 -47
- package/dist/server/server.js +195 -11
- package/dist/server/server.js.map +1 -1
- package/dist/workflows/run.d.ts +67 -2
- package/dist/workflows/run.js +190 -44
- package/dist/workflows/run.js.map +1 -1
- package/dist/workflows/types.d.ts +41 -0
- package/dist/workflows/types.js +72 -0
- package/dist/workflows/types.js.map +1 -1
- package/dist/workspace/config.d.ts +42 -0
- package/dist/workspace/config.js +132 -3
- package/dist/workspace/config.js.map +1 -1
- package/dist/workspace/semaphore.d.ts +63 -3
- package/dist/workspace/semaphore.js +76 -3
- package/dist/workspace/semaphore.js.map +1 -1
- package/package.json +3 -3
- package/web/dist/assets/{alert-dialog-CGskMvgc.js → alert-dialog-BVsVcbFy.js} +1 -1
- package/web/dist/assets/arrow-down-CYgAlZtW.js +1 -0
- package/web/dist/assets/arrow-left-BOqE0a3k.js +1 -0
- package/web/dist/assets/{centered-state-B_V_Ai2h.js → centered-state-Djgly6Ni.js} +1 -1
- package/web/dist/assets/chevron-right-Cc9BWnbN.js +1 -0
- package/web/dist/assets/{collapsible-B_8uYwHb.js → collapsible-DZ4D-DHG.js} +1 -1
- package/web/dist/assets/{commit-list-C4Dv6vUL.js → commit-list-B-z1JL9G.js} +1 -1
- package/web/dist/assets/{compare-variants-et0mplGi.js → compare-variants-CdS8r8E2.js} +1 -1
- package/web/dist/assets/{diff-CbozNUJq.js → diff-BKew9rQX.js} +2 -2
- package/web/dist/assets/{diff-stat-btAmKFJr.js → diff-stat-D0mc5V6Z.js} +1 -1
- package/web/dist/assets/{diff-view-BpFTcG3R.js → diff-view-xpIcuLIC.js} +1 -1
- package/web/dist/assets/{dropdown-menu-Z80KMInL.js → dropdown-menu-CEQziH7X.js} +1 -1
- package/web/dist/assets/editable-title-BCX3T2BY.js +1 -0
- package/web/dist/assets/{ellipsis-vertical-Bmi2u2TG.js → ellipsis-vertical-ByVdDc4z.js} +1 -1
- package/web/dist/assets/{file-DKoYWRsv.js → file-xBSB5hXO.js} +1 -1
- package/web/dist/assets/{folder-u01HScRT.js → folder-CldgbZ5A.js} +1 -1
- package/web/dist/assets/{git-toolbar-Q2kk2F7v.js → git-toolbar-BYlnf4qf.js} +1 -1
- package/web/dist/assets/github-CqGK62Lw.js +1 -0
- package/web/dist/assets/{image-preview-BR3iIIhf.js → image-preview-Cv5mZr0n.js} +1 -1
- package/web/dist/assets/index-3nxVmdn5.css +2 -0
- package/web/dist/assets/index-qX7n11FX.js +9 -0
- package/web/dist/assets/{markdown-5FuCZDA4.js → markdown-CgEEE2ND.js} +1 -1
- package/web/dist/assets/{new-task-form-BydHBbef.js → new-task-form-1r2bgsdD.js} +1 -1
- package/web/dist/assets/{pill-vNzaaYxj.js → pill-q-x22_ej.js} +1 -1
- package/web/dist/assets/{project-router-BbCzrHKs.js → project-router-VDN4jQM8.js} +1 -1
- package/web/dist/assets/{prompt-templates-B7Fs2b1S.js → prompt-templates-BmZtCe-L.js} +1 -1
- package/web/dist/assets/{refresh-cw-DGliez3E.js → refresh-cw-DcNCj2nu.js} +1 -1
- package/web/dist/assets/{repo-git-h1RFfly3.js → repo-git-C2On8SlI.js} +1 -1
- package/web/dist/assets/{run-diff-Bq9vkSNK.js → run-diff-vguEMJzh.js} +1 -1
- package/web/dist/assets/{run-header-Cd8mSKBG.js → run-header-DM7MiKj9.js} +1 -1
- package/web/dist/assets/{search-x-69n_672Y.js → search-x-QmhaAbg5.js} +1 -1
- package/web/dist/assets/{skill-empty-hint-CL0g7WBL.js → skill-empty-hint-BrzUwByZ.js} +1 -1
- package/web/dist/assets/{skills-BqAzyGS3.js → skills-Bj-uG_Hz.js} +1 -1
- package/web/dist/assets/{sparkles-B8agSxBZ.js → sparkles-CP8QDOgX.js} +1 -1
- package/web/dist/assets/{square-terminal-Cf4Og6ct.js → square-terminal-CGypshSD.js} +1 -1
- package/web/dist/assets/{tab-link-Cp2-CJS8.js → tab-link-D4lFzzI1.js} +1 -1
- package/web/dist/assets/{task-changes-DwXPFXqG.js → task-changes-6aopqAmV.js} +1 -1
- package/web/dist/assets/{task-commits-Bessua-c.js → task-commits-u-dwaCyw.js} +1 -1
- package/web/dist/assets/{task-files-DxFIhRPP.js → task-files-IMOZnIUK.js} +1 -1
- package/web/dist/assets/task-thread-CbMPmrWq.js +9 -0
- package/web/dist/assets/{textarea--cpYshee.js → textarea-CyBCyKIk.js} +1 -1
- package/web/dist/assets/{thread-loading-ZhJref0J.js → thread-loading-Cuq2jchC.js} +1 -1
- package/web/dist/assets/{trash-2--ZtrzUx3.js → trash-2-B6Dp3ZNs.js} +1 -1
- package/web/dist/assets/{triangle-alert-D5tJwRD2.js → triangle-alert-xBya8FUp.js} +1 -1
- package/web/dist/assets/{upload-SnwVxKOA.js → upload-D6MXEB9p.js} +1 -1
- package/web/dist/assets/{use-desktop-Sr1QlxhT.js → use-desktop-fLDKEJoB.js} +1 -1
- package/web/dist/assets/{use-submit-shortcut-JY8M_MPL.js → use-submit-shortcut-JTpNzU-u.js} +1 -1
- package/web/dist/assets/{utils-Bb8ohcr3.js → utils--z9hRtl3.js} +1 -1
- package/web/dist/assets/{workflows-9HC240Wx.js → workflows-BY3KTkFw.js} +3 -3
- package/web/dist/assets/{zoomable-image-0G3IBXWC.js → zoomable-image-GTYwLtkS.js} +1 -1
- package/web/dist/index.html +23 -23
- package/web/dist/assets/arrow-down-G8adPhbu.js +0 -1
- package/web/dist/assets/arrow-left-BJsIW6A0.js +0 -1
- package/web/dist/assets/chevron-right-CFzn-von.js +0 -1
- package/web/dist/assets/editable-title-wS5NWwob.js +0 -1
- package/web/dist/assets/github-DjEYCxwt.js +0 -1
- package/web/dist/assets/index-BcI5hug3.css +0 -2
- package/web/dist/assets/index-Cz4GSAqV.js +0 -7
- package/web/dist/assets/task-thread-Dhkupf1-.js +0 -9
package/dist/workflows/types.js
CHANGED
|
@@ -1,5 +1,40 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { RUNNER_IDS } from '../core/agent-runner.js';
|
|
3
|
+
/**
|
|
4
|
+
* Node's `setTimeout` ceiling (2^31-1 ms ≈ 24.8 days). A longer delay does not
|
|
5
|
+
* mean "later" — it overflows and fires almost immediately, so a step asking
|
|
6
|
+
* for `1000h` would be killed at once. Refused at load time instead (#22).
|
|
7
|
+
*/
|
|
8
|
+
export const MAX_STEP_TIMEOUT_MS = 2_147_483_647;
|
|
9
|
+
const STEP_TIMEOUT_RE = /^(\d+)(s|m|h)$/;
|
|
10
|
+
const STEP_TIMEOUT_UNIT_MS = { s: 1_000, m: 60_000, h: 3_600_000 };
|
|
11
|
+
/** The one message every surface shows for a `timeout` it cannot read (#22). */
|
|
12
|
+
export const STEP_TIMEOUT_HINT = 'timeout must be "none" or a positive duration like "45s", "90m", "2h" (at most 24d)';
|
|
13
|
+
/**
|
|
14
|
+
* A step's own wall-clock cap (#22), in milliseconds — or null when the string
|
|
15
|
+
* is not one this project accepts, which is a load-time error, never a silent
|
|
16
|
+
* fallback.
|
|
17
|
+
*
|
|
18
|
+
* `none` is the ONLY spelling for "no cap": it maps to 0, which is the value
|
|
19
|
+
* every runner already reads as "arm no deadline" (`limitMs > 0` guards the
|
|
20
|
+
* timer in all four). A zero-length duration (`0s`, `0m`) is refused rather
|
|
21
|
+
* than folded into that meaning — "0 seconds" reads as "kill it at once", and
|
|
22
|
+
* a field whose most literal reading is the opposite of what it does is worse
|
|
23
|
+
* than no field.
|
|
24
|
+
*/
|
|
25
|
+
export function parseStepTimeout(value) {
|
|
26
|
+
if (value === 'none')
|
|
27
|
+
return 0;
|
|
28
|
+
const match = STEP_TIMEOUT_RE.exec(value);
|
|
29
|
+
if (!match)
|
|
30
|
+
return null;
|
|
31
|
+
const ms = Number(match[1]) * STEP_TIMEOUT_UNIT_MS[match[2]];
|
|
32
|
+
return ms > 0 && ms <= MAX_STEP_TIMEOUT_MS ? ms : null;
|
|
33
|
+
}
|
|
34
|
+
/** The authored `timeout` scalar: `none`, or `<digits><s|m|h>`. */
|
|
35
|
+
export const stepTimeoutSchema = z
|
|
36
|
+
.string()
|
|
37
|
+
.refine((v) => parseStepTimeout(v) !== null, { message: STEP_TIMEOUT_HINT });
|
|
3
38
|
/**
|
|
4
39
|
* A workflow is an ordered list of steps. Two step kinds:
|
|
5
40
|
* - `agent` — one claude CLI run (prompt + optional skill + model + tools);
|
|
@@ -29,6 +64,14 @@ export const workflowStepSchema = z
|
|
|
29
64
|
runner: z.enum(RUNNER_IDS).optional(),
|
|
30
65
|
allowedTools: z.array(z.string()).optional(),
|
|
31
66
|
bashAllowlist: z.array(z.string()).optional(),
|
|
67
|
+
/** This step's own wall-clock cap (#22): `45s` / `90m` / `2h`, or `none` for
|
|
68
|
+
* no cap. ABSENT is the zero-config default and is not the same as `none`:
|
|
69
|
+
* absent leaves the behaviour exactly as it was before this field existed —
|
|
70
|
+
* the workflow's last step (which stays open for follow-ups) is uncapped,
|
|
71
|
+
* and every earlier agent step inherits the runner's 30-minute
|
|
72
|
+
* `DEFAULT_RUN_TIMEOUT_MS`. Non-final steps are what #22 is about: a long
|
|
73
|
+
* investigate/implement step was killed mid-work with nothing committed. */
|
|
74
|
+
timeout: stepTimeoutSchema.optional(),
|
|
32
75
|
// check step
|
|
33
76
|
command: z.string().optional(),
|
|
34
77
|
onFail: z
|
|
@@ -40,6 +83,11 @@ export const workflowStepSchema = z
|
|
|
40
83
|
})
|
|
41
84
|
.refine((s) => Boolean(s.command) !== Boolean(s.prompt ?? s.skill), {
|
|
42
85
|
message: 'a step is either an agent step (prompt/skill) or a check step (command), not both',
|
|
86
|
+
})
|
|
87
|
+
// A check step is a shell command, not an agent session; nothing reads a wall
|
|
88
|
+
// clock there. Saying so at load time beats a key that quietly does nothing.
|
|
89
|
+
.refine((s) => !(s.command && s.timeout !== undefined), {
|
|
90
|
+
message: 'timeout applies to an agent step; a check step (command) has no wall clock',
|
|
43
91
|
});
|
|
44
92
|
/**
|
|
45
93
|
* A workflow file names either full `steps` or the portable `skills` shorthand
|
|
@@ -106,6 +154,8 @@ export function skillStackOf(steps) {
|
|
|
106
154
|
return null;
|
|
107
155
|
if (s.model || s.runner || s.allowedTools || s.bashAllowlist || s.onFail)
|
|
108
156
|
return null;
|
|
157
|
+
if (s.timeout !== undefined)
|
|
158
|
+
return null; // the compact form cannot carry it
|
|
109
159
|
skills.push(s.skill);
|
|
110
160
|
}
|
|
111
161
|
return skills.length ? skills : null;
|
|
@@ -113,6 +163,28 @@ export function skillStackOf(steps) {
|
|
|
113
163
|
export function stepKind(step) {
|
|
114
164
|
return step.command ? 'check' : 'agent';
|
|
115
165
|
}
|
|
166
|
+
/**
|
|
167
|
+
* The `AgentRunSpec.timeoutMs` an agent step spawns with (#22) — the single
|
|
168
|
+
* place that decision is made, so `run.ts` reads one call instead of a
|
|
169
|
+
* conditional it could get subtly different in a second construction site.
|
|
170
|
+
*
|
|
171
|
+
* Absent `timeout` reproduces the pre-#22 expression byte for byte:
|
|
172
|
+
* `interactive ? 0 : undefined`, where `undefined` falls through to the
|
|
173
|
+
* runner's own `DEFAULT_RUN_TIMEOUT_MS` (30 minutes). That is the zero-config
|
|
174
|
+
* default and this change must not move it.
|
|
175
|
+
*
|
|
176
|
+
* An unparseable string cannot reach here — `stepTimeoutSchema` rejects it at
|
|
177
|
+
* load time, on every surface that authors a step — but if one ever did, the
|
|
178
|
+
* fallback is today's behaviour rather than a crash or an arbitrary cap.
|
|
179
|
+
*/
|
|
180
|
+
export function stepTimeoutMs(step, interactive) {
|
|
181
|
+
if (step.timeout !== undefined) {
|
|
182
|
+
const ms = parseStepTimeout(step.timeout);
|
|
183
|
+
if (ms !== null)
|
|
184
|
+
return ms;
|
|
185
|
+
}
|
|
186
|
+
return interactive ? 0 : undefined;
|
|
187
|
+
}
|
|
116
188
|
/**
|
|
117
189
|
* A guard note prepended to an agent step's prompt when the workflow chains
|
|
118
190
|
* 2+ AGENT steps (#410): every step gets the SAME `input.task` text and shares
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/workflows/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/workflows/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -44,17 +44,59 @@ export type WorkspaceProject = z.infer<typeof workspaceProjectSchema>;
|
|
|
44
44
|
* agree. `null` (explicit park) is a user choice and is never replaced by it.
|
|
45
45
|
*/
|
|
46
46
|
export declare const DEFAULT_MONITORING_WAKE_MINUTES = 5;
|
|
47
|
+
/**
|
|
48
|
+
* Zero-config wall clock, in minutes, for a session parked at `waiting` with nothing
|
|
49
|
+
* from the user. The single source of truth for that default — the schema below and
|
|
50
|
+
* `WorkspaceSemaphore`'s fallback both read it.
|
|
51
|
+
*
|
|
52
|
+
* 15 minutes is what `IDLE_TIMEOUT_MS` hard-coded before this key existed, and it stays
|
|
53
|
+
* the default deliberately: the timer is the only thing that reclaims an interactive
|
|
54
|
+
* session nobody is talking to. What was missing was the ability to RAISE it — a task
|
|
55
|
+
* doing genuinely long work that ends a turn in prose instead of a marker reads as
|
|
56
|
+
* "waiting for the human", and 15 minutes later its session is gone.
|
|
57
|
+
*
|
|
58
|
+
* `null` is a real user choice meaning "never close on idle"; see the getter in
|
|
59
|
+
* `WorkspaceSemaphore` for why it is never replaced by this default.
|
|
60
|
+
*/
|
|
61
|
+
export declare const DEFAULT_IDLE_TIMEOUT_MINUTES = 15;
|
|
62
|
+
/**
|
|
63
|
+
* The zero-config per-task memory ceiling, derived from this host (B1).
|
|
64
|
+
*
|
|
65
|
+
* It shipped as `null` — no guard at all — and that made the zero-config default the
|
|
66
|
+
* UNSAFE one: a first-time user who never opens Settings gets the OS OOM-killer instead
|
|
67
|
+
* of the engine pausing one run. AGENTS.md § Zero config is explicit that the zero-config
|
|
68
|
+
* default must also be the safe default, so the guard is now on out of the box.
|
|
69
|
+
*
|
|
70
|
+
* `floor(totalMiB * 0.6 / 2)`, clamped to [1024, 8192]:
|
|
71
|
+
* - 4 GiB host → 1228 MiB - 16 GiB host → 4915 MiB
|
|
72
|
+
* - 8 GiB host → 2457 MiB - 128 GiB host → 8192 MiB (ceiling)
|
|
73
|
+
*
|
|
74
|
+
* The 0.6 leaves 40% of the machine for the OS, the cockpit, a browser and the user's own
|
|
75
|
+
* editor. The divisor is the SHIPPED `maxParallel` (2), deliberately not the user's
|
|
76
|
+
* current value: this is a per-run ceiling, and re-deriving it downwards behind someone
|
|
77
|
+
* who raised `maxParallel` would start pausing work they had no reason to expect to be
|
|
78
|
+
* paused. Someone who raises the cap can lower the ceiling in the same Settings pane.
|
|
79
|
+
*
|
|
80
|
+
* An explicit `null` in the file still means "no limit" and is never replaced by this.
|
|
81
|
+
*/
|
|
82
|
+
export declare function deriveDefaultMemoryLimitMb(totalBytes?: number): number;
|
|
83
|
+
/** Resolved once per process — `totalmem()` does not change, and the schema needs a value,
|
|
84
|
+
* not a thunk. */
|
|
85
|
+
export declare const DEFAULT_MEMORY_LIMIT_MB: number;
|
|
47
86
|
declare const workspaceConfigSchema: z.ZodObject<{
|
|
48
87
|
schemaVersion: z.ZodCatch<z.ZodDefault<z.ZodNumber>>;
|
|
49
88
|
browseRoot: z.ZodCatch<z.ZodDefault<z.ZodString>>;
|
|
50
89
|
projectsDir: z.ZodCatch<z.ZodDefault<z.ZodString>>;
|
|
51
90
|
skillsAutoUpdate: z.ZodCatch<z.ZodOptional<z.ZodBoolean>>;
|
|
52
91
|
modelsLocked: z.ZodCatch<z.ZodOptional<z.ZodBoolean>>;
|
|
92
|
+
followups: z.ZodCatch<z.ZodOptional<z.ZodBoolean>>;
|
|
93
|
+
agentEnvPassthrough: z.ZodCatch<z.ZodOptional<z.ZodArray<z.ZodString>>>;
|
|
53
94
|
resources: z.ZodCatch<z.ZodPrefault<z.ZodObject<{
|
|
54
95
|
maxParallel: z.ZodCatch<z.ZodDefault<z.ZodNumber>>;
|
|
55
96
|
maxMonitoringSessions: z.ZodCatch<z.ZodDefault<z.ZodNumber>>;
|
|
56
97
|
monitoringWakeIntervalMinutes: z.ZodCatch<z.ZodDefault<z.ZodNullable<z.ZodNumber>>>;
|
|
57
98
|
autoResumeOnUsageLimit: z.ZodCatch<z.ZodDefault<z.ZodBoolean>>;
|
|
99
|
+
idleTimeoutMinutes: z.ZodCatch<z.ZodDefault<z.ZodNullable<z.ZodNumber>>>;
|
|
58
100
|
memoryLimitMb: z.ZodCatch<z.ZodDefault<z.ZodNullable<z.ZodNumber>>>;
|
|
59
101
|
worktreeRetentionDefault: z.ZodCatch<z.ZodDefault<z.ZodNumber>>;
|
|
60
102
|
}, z.core.$loose>>>;
|
package/dist/workspace/config.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { randomBytes } from 'node:crypto';
|
|
2
2
|
import { chmodSync, mkdirSync, renameSync, writeFileSync } from 'node:fs';
|
|
3
3
|
import { readFile } from 'node:fs/promises';
|
|
4
|
+
import { totalmem } from 'node:os';
|
|
4
5
|
import { dirname } from 'node:path';
|
|
5
6
|
import { z } from 'zod';
|
|
6
7
|
// Contract VALUES, like `workspaceUiStateSchema` in workspace/migrations.ts: the tag bounds this
|
|
@@ -69,6 +70,68 @@ const workspaceProjectSchema = z
|
|
|
69
70
|
* agree. `null` (explicit park) is a user choice and is never replaced by it.
|
|
70
71
|
*/
|
|
71
72
|
export const DEFAULT_MONITORING_WAKE_MINUTES = 5;
|
|
73
|
+
/**
|
|
74
|
+
* Zero-config wall clock, in minutes, for a session parked at `waiting` with nothing
|
|
75
|
+
* from the user. The single source of truth for that default — the schema below and
|
|
76
|
+
* `WorkspaceSemaphore`'s fallback both read it.
|
|
77
|
+
*
|
|
78
|
+
* 15 minutes is what `IDLE_TIMEOUT_MS` hard-coded before this key existed, and it stays
|
|
79
|
+
* the default deliberately: the timer is the only thing that reclaims an interactive
|
|
80
|
+
* session nobody is talking to. What was missing was the ability to RAISE it — a task
|
|
81
|
+
* doing genuinely long work that ends a turn in prose instead of a marker reads as
|
|
82
|
+
* "waiting for the human", and 15 minutes later its session is gone.
|
|
83
|
+
*
|
|
84
|
+
* `null` is a real user choice meaning "never close on idle"; see the getter in
|
|
85
|
+
* `WorkspaceSemaphore` for why it is never replaced by this default.
|
|
86
|
+
*/
|
|
87
|
+
export const DEFAULT_IDLE_TIMEOUT_MINUTES = 15;
|
|
88
|
+
/**
|
|
89
|
+
* Ceiling and floor for the DERIVED per-task memory default below.
|
|
90
|
+
*
|
|
91
|
+
* The ceiling exists because above ~8 GiB the guard stops protecting anything real: an
|
|
92
|
+
* agent process tree that large is runaway whatever the host's size, and a higher ceiling
|
|
93
|
+
* only buys false pauses on big builds. The floor exists because below ~1 GiB a normal
|
|
94
|
+
* agent plus one `npm ci` would trip the guard constantly, which is worse than no guard.
|
|
95
|
+
*/
|
|
96
|
+
const MEMORY_LIMIT_CEILING_MB = 8192;
|
|
97
|
+
const MEMORY_LIMIT_FLOOR_MB = 1024;
|
|
98
|
+
/** Share of host RAM the agent fleet may hold before the guard starts pausing runs. */
|
|
99
|
+
const MEMORY_LIMIT_HOST_SHARE = 0.6;
|
|
100
|
+
/** The `maxParallel` the derivation divides by — the shipped default, not the user's
|
|
101
|
+
* current value. See `deriveDefaultMemoryLimitMb`. */
|
|
102
|
+
const MEMORY_LIMIT_DIVISOR = 2;
|
|
103
|
+
/**
|
|
104
|
+
* The zero-config per-task memory ceiling, derived from this host (B1).
|
|
105
|
+
*
|
|
106
|
+
* It shipped as `null` — no guard at all — and that made the zero-config default the
|
|
107
|
+
* UNSAFE one: a first-time user who never opens Settings gets the OS OOM-killer instead
|
|
108
|
+
* of the engine pausing one run. AGENTS.md § Zero config is explicit that the zero-config
|
|
109
|
+
* default must also be the safe default, so the guard is now on out of the box.
|
|
110
|
+
*
|
|
111
|
+
* `floor(totalMiB * 0.6 / 2)`, clamped to [1024, 8192]:
|
|
112
|
+
* - 4 GiB host → 1228 MiB - 16 GiB host → 4915 MiB
|
|
113
|
+
* - 8 GiB host → 2457 MiB - 128 GiB host → 8192 MiB (ceiling)
|
|
114
|
+
*
|
|
115
|
+
* The 0.6 leaves 40% of the machine for the OS, the cockpit, a browser and the user's own
|
|
116
|
+
* editor. The divisor is the SHIPPED `maxParallel` (2), deliberately not the user's
|
|
117
|
+
* current value: this is a per-run ceiling, and re-deriving it downwards behind someone
|
|
118
|
+
* who raised `maxParallel` would start pausing work they had no reason to expect to be
|
|
119
|
+
* paused. Someone who raises the cap can lower the ceiling in the same Settings pane.
|
|
120
|
+
*
|
|
121
|
+
* An explicit `null` in the file still means "no limit" and is never replaced by this.
|
|
122
|
+
*/
|
|
123
|
+
export function deriveDefaultMemoryLimitMb(totalBytes = totalmem()) {
|
|
124
|
+
// A host that cannot report its memory (0/NaN) must not silently produce a 0 = "no
|
|
125
|
+
// limit" ceiling — fall back to the floor, which is the safe direction.
|
|
126
|
+
if (!Number.isFinite(totalBytes) || totalBytes <= 0)
|
|
127
|
+
return MEMORY_LIMIT_FLOOR_MB;
|
|
128
|
+
const totalMb = totalBytes / (1024 * 1024);
|
|
129
|
+
const derived = Math.floor((totalMb * MEMORY_LIMIT_HOST_SHARE) / MEMORY_LIMIT_DIVISOR);
|
|
130
|
+
return Math.min(MEMORY_LIMIT_CEILING_MB, Math.max(MEMORY_LIMIT_FLOOR_MB, derived));
|
|
131
|
+
}
|
|
132
|
+
/** Resolved once per process — `totalmem()` does not change, and the schema needs a value,
|
|
133
|
+
* not a thunk. */
|
|
134
|
+
export const DEFAULT_MEMORY_LIMIT_MB = deriveDefaultMemoryLimitMb();
|
|
72
135
|
const resourcesSchema = z
|
|
73
136
|
.object({
|
|
74
137
|
/** Workspace-wide parallel-task cap (moved from per-repo config.json). */
|
|
@@ -105,9 +168,48 @@ const resourcesSchema = z
|
|
|
105
168
|
* it off leaves the run `failed` with its Continue button, exactly as before the feature.
|
|
106
169
|
*/
|
|
107
170
|
autoResumeOnUsageLimit: z.boolean().default(true).catch(true),
|
|
108
|
-
/**
|
|
109
|
-
*
|
|
110
|
-
|
|
171
|
+
/**
|
|
172
|
+
* Wall clock, in minutes, for a session parked at `waiting` with nothing from the user
|
|
173
|
+
* before xezar closes it. `null` means "never close on idle".
|
|
174
|
+
*
|
|
175
|
+
* Default ON at 15 minutes — the value `IDLE_TIMEOUT_MS` hard-coded before this key
|
|
176
|
+
* existed, kept deliberately: the timer is the only thing that reclaims an interactive
|
|
177
|
+
* session nobody is talking to, and removing it would trade a working default for a
|
|
178
|
+
* knob. What this key adds is the ability to RAISE it, which is the real defect: a task
|
|
179
|
+
* doing genuinely long work that ends a turn in prose instead of a marker reads as
|
|
180
|
+
* "waiting for the human", and its session is gone 15 minutes later.
|
|
181
|
+
*
|
|
182
|
+
* `null` is offered because the failure it prevents is lost work, which is not
|
|
183
|
+
* recoverable, while what it costs is a session nothing reclaims, which the user can
|
|
184
|
+
* end with Cancel. Unlike the `XEZ:MONITORING` dead end of #810, a run parked at
|
|
185
|
+
* `waiting` renders as an attention state and holds no `maxParallel` slot, so it is
|
|
186
|
+
* visible and harmless rather than silently stuck. The UI states the trade-off.
|
|
187
|
+
*/
|
|
188
|
+
idleTimeoutMinutes: z
|
|
189
|
+
.number()
|
|
190
|
+
.int()
|
|
191
|
+
.min(1)
|
|
192
|
+
.max(1440)
|
|
193
|
+
.nullable()
|
|
194
|
+
.default(DEFAULT_IDLE_TIMEOUT_MINUTES)
|
|
195
|
+
.catch(DEFAULT_IDLE_TIMEOUT_MINUTES),
|
|
196
|
+
/**
|
|
197
|
+
* Per-task memory ceiling in MiB; explicit `null` = no limit.
|
|
198
|
+
*
|
|
199
|
+
* ABSENT now derives a host-sized default (`DEFAULT_MEMORY_LIMIT_MB`) rather than
|
|
200
|
+
* `null` (B1). It shipped as `null` and that made the zero-config default the unsafe
|
|
201
|
+
* one — the OS OOM-killer instead of the engine pausing one run — which § Zero config
|
|
202
|
+
* forbids. An explicit `null` written by a user who wants no guard is still honoured:
|
|
203
|
+
* zod's `.default()` fills `undefined` only, never `null`.
|
|
204
|
+
*/
|
|
205
|
+
memoryLimitMb: z
|
|
206
|
+
.number()
|
|
207
|
+
.int()
|
|
208
|
+
.min(0)
|
|
209
|
+
.max(1_048_576)
|
|
210
|
+
.nullable()
|
|
211
|
+
.default(DEFAULT_MEMORY_LIMIT_MB)
|
|
212
|
+
.catch(DEFAULT_MEMORY_LIMIT_MB),
|
|
111
213
|
/** Default worktree retention for projects that don't override it. */
|
|
112
214
|
worktreeRetentionDefault: z.number().int().min(0).max(1000).default(10).catch(10),
|
|
113
215
|
})
|
|
@@ -180,6 +282,33 @@ const workspaceConfigSchema = z
|
|
|
180
282
|
/** Global opt-in model policy. The native coding-agent model becomes
|
|
181
283
|
* authoritative while runner choice remains available. */
|
|
182
284
|
modelsLocked: z.boolean().optional().catch(undefined),
|
|
285
|
+
/**
|
|
286
|
+
* The follow-up **Inbox** switch, as a persisted setting (F).
|
|
287
|
+
*
|
|
288
|
+
* `XEZ_FOLLOWUPS=1` is boot-time only in practice, so a plain restart silently loses
|
|
289
|
+
* the Inbox. This key is the stored override: present wins, absent falls back to the
|
|
290
|
+
* env exactly as before. Optional with no default, because absent has to stay
|
|
291
|
+
* distinguishable from a value someone chose — the same tri-state shape
|
|
292
|
+
* `skillsAutoUpdate` and `modelsLocked` already use.
|
|
293
|
+
*
|
|
294
|
+
* Workspace-level, not per-repo, because the Inbox is a process-wide capability the
|
|
295
|
+
* cockpit reports once (`resolveCapabilities`), not a property of one checkout.
|
|
296
|
+
*/
|
|
297
|
+
followups: z.boolean().optional().catch(undefined),
|
|
298
|
+
/**
|
|
299
|
+
* Extra host env vars forwarded to spawned agents, as a persisted setting (F) — the
|
|
300
|
+
* stored counterpart of `XEZ_ENV_PASSTHROUGH=A,B,C`.
|
|
301
|
+
*
|
|
302
|
+
* Present wins over the env (an empty array is a real choice meaning "forward
|
|
303
|
+
* nothing"); absent falls back to the env. Names only — never values, so this file
|
|
304
|
+
* never becomes a place a secret can be typed. Bounded like every other string here
|
|
305
|
+
* because it is parsed on every boot.
|
|
306
|
+
*/
|
|
307
|
+
agentEnvPassthrough: z
|
|
308
|
+
.array(z.string().trim().min(1).max(200))
|
|
309
|
+
.max(64)
|
|
310
|
+
.optional()
|
|
311
|
+
.catch(undefined),
|
|
183
312
|
// Function-form default/catch: mutators (step 1.3's registerProject) edit
|
|
184
313
|
// these objects in place, so parses must never share one reference.
|
|
185
314
|
resources: resourcesSchema.prefault(() => ({})).catch(() => resourcesSchema.parse({})),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/workspace/config.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/workspace/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -23,9 +23,14 @@
|
|
|
23
23
|
* calls it after a write — it re-reads the file and pumps every manager so
|
|
24
24
|
* a raised cap starts queued runs without a restart.
|
|
25
25
|
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
26
|
+
* The per-repo `maxParallel` key stays ignored by enforcement post-migration (the
|
|
27
|
+
* workspace cap plus each registry entry's own `maxParallel` is the running ceiling).
|
|
28
|
+
* The per-repo `memoryLimitMb` key is NOT ignored any more (B2): it used to save
|
|
29
|
+
* successfully and then do nothing, which is the one outcome a setting must never have,
|
|
30
|
+
* and `BACKWARD_COMPATIBILITY.md` §2 promises the route keeps accepting it. It is now
|
|
31
|
+
* cached here alongside the registry's `maxParallel` overrides — same lookup shape
|
|
32
|
+
* (`projectMemoryLimitMb`), same no-per-tick-file-read invariant — so the more specific
|
|
33
|
+
* value wins for runs in that repo, exactly as per-project `maxParallel` already does.
|
|
29
34
|
*/
|
|
30
35
|
/** The cached `resources` slice run enforcement consults. */
|
|
31
36
|
export interface WorkspaceResourceLimits {
|
|
@@ -39,8 +44,31 @@ export interface WorkspaceResourceLimits {
|
|
|
39
44
|
monitoringWakeIntervalMinutes?: number | null;
|
|
40
45
|
/** Resume a run stopped by a provider usage limit when that limit resets. Default ON. */
|
|
41
46
|
autoResumeOnUsageLimit?: boolean;
|
|
47
|
+
/** Wall clock for a session parked at `waiting`, in minutes; `null` = never close on
|
|
48
|
+
* idle. Absent means "this loader predates the key" and reads as the default. */
|
|
49
|
+
idleTimeoutMinutes?: number | null;
|
|
42
50
|
/** Per-task process-tree memory ceiling in MiB; null = no limit. */
|
|
43
51
|
memoryLimitMb: number | null;
|
|
52
|
+
/**
|
|
53
|
+
* Per-project memory ceilings in MiB, keyed by realpath-normalized project root — the
|
|
54
|
+
* repo's own `.xezar/config.json` `memoryLimitMb` (B2). A root absent from the map
|
|
55
|
+
* inherits the workspace ceiling. Optional for the same reason `projectLimits` is: an
|
|
56
|
+
* older `load` stub that returns only the resource slice keeps working.
|
|
57
|
+
*/
|
|
58
|
+
projectMemoryLimits?: ReadonlyMap<string, number>;
|
|
59
|
+
/**
|
|
60
|
+
* Stored follow-up **Inbox** override, or `undefined` when the workspace config says
|
|
61
|
+
* nothing and the `XEZ_FOLLOWUPS` env decides (F). Cached here so the per-request
|
|
62
|
+
* capability answer and every per-run read are live without a restart: `refresh()` is
|
|
63
|
+
* the one reload hook, and `PUT /api/v1/workspace/config` already calls it.
|
|
64
|
+
*/
|
|
65
|
+
followups?: boolean;
|
|
66
|
+
/**
|
|
67
|
+
* Stored extra agent env-passthrough names, or `undefined` when the workspace config
|
|
68
|
+
* says nothing and `XEZ_ENV_PASSTHROUGH` decides (F). An empty array is a real stored
|
|
69
|
+
* choice ("forward nothing"), which is why this is not spelled `string[] | null`.
|
|
70
|
+
*/
|
|
71
|
+
agentEnvPassthrough?: readonly string[];
|
|
44
72
|
/**
|
|
45
73
|
* Per-project concurrency ceilings, keyed by realpath-normalized project
|
|
46
74
|
* root (the registry stores normalized `root`). A root absent from the map
|
|
@@ -126,6 +154,38 @@ export declare class WorkspaceSemaphore {
|
|
|
126
154
|
autoResumeOnUsageLimit(): boolean;
|
|
127
155
|
/** Cached per-task memory ceiling (MiB), or null for no limit. */
|
|
128
156
|
memoryLimitMb(): number | null;
|
|
157
|
+
/**
|
|
158
|
+
* Wall clock for a session parked at `waiting`, in minutes, or `null` when the operator
|
|
159
|
+
* chose "never close on idle".
|
|
160
|
+
*
|
|
161
|
+
* Deliberately NOT `?? DEFAULT`, for the same reason as `monitoringWakeIntervalMinutes`
|
|
162
|
+
* (#810): `null` is a real user choice and `null ?? 15` would silently override it. Only
|
|
163
|
+
* an ABSENT key — an older `load` stub, a partial `initial` — reads as the default.
|
|
164
|
+
*/
|
|
165
|
+
idleTimeoutMinutes(): number | null;
|
|
166
|
+
/**
|
|
167
|
+
* The effective per-task memory ceiling for a manager's repo root (B2): the repo's own
|
|
168
|
+
* `.xezar/config.json` `memoryLimitMb` when it sets one, else the workspace ceiling.
|
|
169
|
+
* The more specific value wins, which is exactly how `projectMaxParallel` already
|
|
170
|
+
* behaves; a root with no entry inherits.
|
|
171
|
+
*/
|
|
172
|
+
projectMemoryLimitMb(repoRoot: string): number | null;
|
|
173
|
+
/**
|
|
174
|
+
* Whether the follow-up Inbox is on, given the stored setting and the env fallback (F).
|
|
175
|
+
* The stored value wins whenever the workspace config sets one; absent falls back to the
|
|
176
|
+
* historical `XEZ_FOLLOWUPS=1` behaviour, unchanged.
|
|
177
|
+
*/
|
|
178
|
+
/** The STORED Inbox override alone, or `undefined` when the workspace config says nothing
|
|
179
|
+
* and the env still decides. `resolveCapabilities` needs the tri-state, not the resolved
|
|
180
|
+
* boolean, so that "no opinion" keeps falling through to `XEZ_FOLLOWUPS`. */
|
|
181
|
+
storedFollowups(): boolean | undefined;
|
|
182
|
+
followupsEnabled(env?: NodeJS.ProcessEnv): boolean;
|
|
183
|
+
/**
|
|
184
|
+
* Extra env-var NAMES forwarded to spawned agents (F). The stored list wins whenever the
|
|
185
|
+
* workspace config sets one — including an empty list, a real "forward nothing" choice —
|
|
186
|
+
* and absence falls back to parsing `XEZ_ENV_PASSTHROUGH` exactly as before.
|
|
187
|
+
*/
|
|
188
|
+
agentEnvPassthrough(env?: NodeJS.ProcessEnv): readonly string[];
|
|
129
189
|
/**
|
|
130
190
|
* Every agent account held across the WHOLE workspace, by kind — the union of what each manager
|
|
131
191
|
* reports (spec 2026-08-03-auto-resume-after-usage-limit). A `pump()` consults this before
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { realpathSync } from 'node:fs';
|
|
2
2
|
import { resolve } from 'node:path';
|
|
3
|
-
import { DEFAULT_MONITORING_WAKE_MINUTES, loadWorkspaceConfig } from './config.js';
|
|
3
|
+
import { DEFAULT_IDLE_TIMEOUT_MINUTES, DEFAULT_MEMORY_LIMIT_MB, DEFAULT_MONITORING_WAKE_MINUTES, loadWorkspaceConfig, } from './config.js';
|
|
4
|
+
import { loadConfig } from '../config.js';
|
|
4
5
|
/** Realpath-normalize a root the same way the registry does
|
|
5
6
|
* (`workspace/projects.ts` `normalizeRoot`), but synchronously — this answers
|
|
6
7
|
* a manager's hot-path lookup and must not `await`. A path that cannot be
|
|
@@ -18,7 +19,8 @@ const DEFAULT_LIMITS = {
|
|
|
18
19
|
maxMonitoringSessions: 2,
|
|
19
20
|
monitoringWakeIntervalMinutes: DEFAULT_MONITORING_WAKE_MINUTES,
|
|
20
21
|
autoResumeOnUsageLimit: true,
|
|
21
|
-
|
|
22
|
+
idleTimeoutMinutes: DEFAULT_IDLE_TIMEOUT_MINUTES,
|
|
23
|
+
memoryLimitMb: DEFAULT_MEMORY_LIMIT_MB,
|
|
22
24
|
};
|
|
23
25
|
/** Production loader: the `resources` slice of `~/.xezar/config.json`
|
|
24
26
|
* (schema-defaulted, so a missing/corrupt file yields the zero-config
|
|
@@ -27,19 +29,37 @@ const DEFAULT_LIMITS = {
|
|
|
27
29
|
* The registry `root` is already realpath-normalized (`registerProject`), so
|
|
28
30
|
* the keys match `normalizeRootSync`'s output at lookup time. */
|
|
29
31
|
async function loadResourceLimits() {
|
|
30
|
-
const
|
|
32
|
+
const config = await loadWorkspaceConfig();
|
|
33
|
+
const { resources, projects } = config;
|
|
31
34
|
const projectLimits = new Map();
|
|
32
35
|
for (const project of projects) {
|
|
33
36
|
if (typeof project.maxParallel === 'number')
|
|
34
37
|
projectLimits.set(project.root, project.maxParallel);
|
|
35
38
|
}
|
|
39
|
+
// B2: each registered repo's OWN `memoryLimitMb`, read here rather than per tick. This is
|
|
40
|
+
// N small file reads per refresh (boot, and a config PUT), not N per 2-second sample — the
|
|
41
|
+
// invariant this class exists to hold. A repo that cannot be read contributes nothing and
|
|
42
|
+
// inherits the workspace ceiling, which is the safe direction.
|
|
43
|
+
const projectMemoryLimits = new Map();
|
|
44
|
+
await Promise.all(projects.map(async (project) => {
|
|
45
|
+
const own = await loadConfig(project.root).catch(() => null);
|
|
46
|
+
if (typeof own?.memoryLimitMb === 'number' && own.memoryLimitMb > 0) {
|
|
47
|
+
projectMemoryLimits.set(project.root, own.memoryLimitMb);
|
|
48
|
+
}
|
|
49
|
+
}));
|
|
36
50
|
return {
|
|
37
51
|
maxParallel: resources.maxParallel,
|
|
38
52
|
maxMonitoringSessions: resources.maxMonitoringSessions,
|
|
39
53
|
monitoringWakeIntervalMinutes: resources.monitoringWakeIntervalMinutes,
|
|
40
54
|
autoResumeOnUsageLimit: resources.autoResumeOnUsageLimit,
|
|
55
|
+
idleTimeoutMinutes: resources.idleTimeoutMinutes,
|
|
41
56
|
memoryLimitMb: resources.memoryLimitMb,
|
|
42
57
|
projectLimits,
|
|
58
|
+
projectMemoryLimits,
|
|
59
|
+
...(config.followups !== undefined ? { followups: config.followups } : {}),
|
|
60
|
+
...(config.agentEnvPassthrough !== undefined
|
|
61
|
+
? { agentEnvPassthrough: config.agentEnvPassthrough }
|
|
62
|
+
: {}),
|
|
43
63
|
};
|
|
44
64
|
}
|
|
45
65
|
export class WorkspaceSemaphore {
|
|
@@ -93,6 +113,59 @@ export class WorkspaceSemaphore {
|
|
|
93
113
|
memoryLimitMb() {
|
|
94
114
|
return this.limits.memoryLimitMb;
|
|
95
115
|
}
|
|
116
|
+
/**
|
|
117
|
+
* Wall clock for a session parked at `waiting`, in minutes, or `null` when the operator
|
|
118
|
+
* chose "never close on idle".
|
|
119
|
+
*
|
|
120
|
+
* Deliberately NOT `?? DEFAULT`, for the same reason as `monitoringWakeIntervalMinutes`
|
|
121
|
+
* (#810): `null` is a real user choice and `null ?? 15` would silently override it. Only
|
|
122
|
+
* an ABSENT key — an older `load` stub, a partial `initial` — reads as the default.
|
|
123
|
+
*/
|
|
124
|
+
idleTimeoutMinutes() {
|
|
125
|
+
const configured = this.limits.idleTimeoutMinutes;
|
|
126
|
+
return configured === undefined ? DEFAULT_IDLE_TIMEOUT_MINUTES : configured;
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* The effective per-task memory ceiling for a manager's repo root (B2): the repo's own
|
|
130
|
+
* `.xezar/config.json` `memoryLimitMb` when it sets one, else the workspace ceiling.
|
|
131
|
+
* The more specific value wins, which is exactly how `projectMaxParallel` already
|
|
132
|
+
* behaves; a root with no entry inherits.
|
|
133
|
+
*/
|
|
134
|
+
projectMemoryLimitMb(repoRoot) {
|
|
135
|
+
const override = this.limits.projectMemoryLimits?.get(normalizeRootSync(repoRoot));
|
|
136
|
+
return override ?? this.memoryLimitMb();
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Whether the follow-up Inbox is on, given the stored setting and the env fallback (F).
|
|
140
|
+
* The stored value wins whenever the workspace config sets one; absent falls back to the
|
|
141
|
+
* historical `XEZ_FOLLOWUPS=1` behaviour, unchanged.
|
|
142
|
+
*/
|
|
143
|
+
/** The STORED Inbox override alone, or `undefined` when the workspace config says nothing
|
|
144
|
+
* and the env still decides. `resolveCapabilities` needs the tri-state, not the resolved
|
|
145
|
+
* boolean, so that "no opinion" keeps falling through to `XEZ_FOLLOWUPS`. */
|
|
146
|
+
storedFollowups() {
|
|
147
|
+
return this.limits.followups;
|
|
148
|
+
}
|
|
149
|
+
followupsEnabled(env = process.env) {
|
|
150
|
+
const stored = this.limits.followups;
|
|
151
|
+
if (stored !== undefined)
|
|
152
|
+
return stored;
|
|
153
|
+
return env.XEZ_FOLLOWUPS === '1';
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Extra env-var NAMES forwarded to spawned agents (F). The stored list wins whenever the
|
|
157
|
+
* workspace config sets one — including an empty list, a real "forward nothing" choice —
|
|
158
|
+
* and absence falls back to parsing `XEZ_ENV_PASSTHROUGH` exactly as before.
|
|
159
|
+
*/
|
|
160
|
+
agentEnvPassthrough(env = process.env) {
|
|
161
|
+
const stored = this.limits.agentEnvPassthrough;
|
|
162
|
+
if (stored !== undefined)
|
|
163
|
+
return stored;
|
|
164
|
+
return (env.XEZ_ENV_PASSTHROUGH ?? '')
|
|
165
|
+
.split(',')
|
|
166
|
+
.map((name) => name.trim())
|
|
167
|
+
.filter(Boolean);
|
|
168
|
+
}
|
|
96
169
|
/**
|
|
97
170
|
* Every agent account held across the WHOLE workspace, by kind — the union of what each manager
|
|
98
171
|
* reports (spec 2026-08-03-auto-resume-after-usage-limit). A `pump()` consults this before
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"semaphore.js","sourceRoot":"","sources":["../../src/workspace/semaphore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,
|
|
1
|
+
{"version":3,"file":"semaphore.js","sourceRoot":"","sources":["../../src/workspace/semaphore.ts"],"names":[],"mappings":"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"}
|