@wildorder/nightshift 0.13.0 → 0.14.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 +46 -19
- package/dist/agent-probe.d.ts +21 -2
- package/dist/agent-probe.d.ts.map +1 -1
- package/dist/agent-probe.js +76 -22
- package/dist/agent-probe.js.map +1 -1
- package/dist/agent-runner.d.ts +90 -2
- package/dist/agent-runner.d.ts.map +1 -1
- package/dist/agent-runner.js +382 -24
- package/dist/agent-runner.js.map +1 -1
- package/dist/agent-summary.d.ts +15 -0
- package/dist/agent-summary.d.ts.map +1 -1
- package/dist/agent-summary.js +32 -2
- package/dist/agent-summary.js.map +1 -1
- package/dist/as-built.d.ts +6 -0
- package/dist/as-built.d.ts.map +1 -1
- package/dist/as-built.js +7 -0
- package/dist/as-built.js.map +1 -1
- package/dist/author.d.ts +9 -0
- package/dist/author.d.ts.map +1 -1
- package/dist/author.js +118 -24
- package/dist/author.js.map +1 -1
- package/dist/ci-init.d.ts.map +1 -1
- package/dist/ci-init.js +17 -12
- package/dist/ci-init.js.map +1 -1
- package/dist/cli.js +71 -8
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +11 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +13 -0
- package/dist/config.js.map +1 -1
- package/dist/crash-report.d.ts +58 -0
- package/dist/crash-report.d.ts.map +1 -0
- package/dist/crash-report.js +115 -0
- package/dist/crash-report.js.map +1 -0
- package/dist/decide.js +1 -1
- package/dist/decide.js.map +1 -1
- package/dist/decider-review.d.ts +33 -5
- package/dist/decider-review.d.ts.map +1 -1
- package/dist/decider-review.js +55 -9
- package/dist/decider-review.js.map +1 -1
- package/dist/decision-ledger.d.ts +44 -1
- package/dist/decision-ledger.d.ts.map +1 -1
- package/dist/decision-ledger.js +46 -1
- package/dist/decision-ledger.js.map +1 -1
- package/dist/decision-view.d.ts +10 -1
- package/dist/decision-view.d.ts.map +1 -1
- package/dist/decision-view.js +41 -0
- package/dist/decision-view.js.map +1 -1
- package/dist/manifest.d.ts +21 -1
- package/dist/manifest.d.ts.map +1 -1
- package/dist/manifest.js +221 -11
- package/dist/manifest.js.map +1 -1
- package/dist/permits.d.ts +135 -0
- package/dist/permits.d.ts.map +1 -0
- package/dist/permits.js +397 -0
- package/dist/permits.js.map +1 -0
- package/dist/publish.d.ts +35 -0
- package/dist/publish.d.ts.map +1 -1
- package/dist/publish.js +149 -16
- package/dist/publish.js.map +1 -1
- package/dist/run-program.d.ts +53 -2
- package/dist/run-program.d.ts.map +1 -1
- package/dist/run-program.js +529 -54
- package/dist/run-program.js.map +1 -1
- package/dist/whole-program-review.d.ts +4 -0
- package/dist/whole-program-review.d.ts.map +1 -1
- package/dist/whole-program-review.js +9 -1
- package/dist/whole-program-review.js.map +1 -1
- package/package.json +2 -2
- package/dist/verify-allowlist.d.ts +0 -23
- package/dist/verify-allowlist.d.ts.map +0 -1
- package/dist/verify-allowlist.js +0 -46
- package/dist/verify-allowlist.js.map +0 -1
package/dist/manifest.js
CHANGED
|
@@ -144,15 +144,12 @@ export function specInputsHash(manifest, workstream) {
|
|
|
144
144
|
export function manifestPath(root, programId) {
|
|
145
145
|
return join(resolve(root), "docs", "programs", `${programId}-manifest.json`);
|
|
146
146
|
}
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
catch {
|
|
154
|
-
throw new Error(`No manifest at ${path}. Plan the program first with /plan-program.`);
|
|
155
|
-
}
|
|
147
|
+
/**
|
|
148
|
+
* Parse-and-validate body shared by `loadManifest` and the drift path in
|
|
149
|
+
* `saveManifest` — both need the identical diagnosis for the identical
|
|
150
|
+
* class of invalid content, so there is exactly one definition of "valid".
|
|
151
|
+
*/
|
|
152
|
+
function parseManifest(raw, path) {
|
|
156
153
|
let parsed;
|
|
157
154
|
try {
|
|
158
155
|
parsed = JSON.parse(raw);
|
|
@@ -194,7 +191,220 @@ export async function loadManifest(root, programId) {
|
|
|
194
191
|
}
|
|
195
192
|
return manifest;
|
|
196
193
|
}
|
|
197
|
-
|
|
198
|
-
|
|
194
|
+
// The exact bytes this process last read (loadManifest) or wrote
|
|
195
|
+
// (saveManifest) for each manifest path — the drift baseline. "Drift" is a
|
|
196
|
+
// byte-for-byte difference between this and what is on disk at save time, so
|
|
197
|
+
// a whitespace-only human edit is a real (harmless) merge and the comparison
|
|
198
|
+
// is deterministic without a model. Keyed by the resolved absolute manifest
|
|
199
|
+
// path so two programs, or two tmpdirs in tests, never collide.
|
|
200
|
+
const lastBytes = new Map();
|
|
201
|
+
// Total merged-on-drift saves performed this process for each path. Only
|
|
202
|
+
// ever incremented (never reset), so a run can snapshot it at start and
|
|
203
|
+
// compare at report time without a reload clearing history mid-run.
|
|
204
|
+
const mergeCount = new Map();
|
|
205
|
+
export async function loadManifest(root, programId) {
|
|
206
|
+
const path = manifestPath(root, programId);
|
|
207
|
+
let raw;
|
|
208
|
+
try {
|
|
209
|
+
raw = await readFile(path, "utf8");
|
|
210
|
+
}
|
|
211
|
+
catch {
|
|
212
|
+
throw new Error(`No manifest at ${path}. Plan the program first with /plan-program.`);
|
|
213
|
+
}
|
|
214
|
+
const manifest = parseManifest(raw, path);
|
|
215
|
+
lastBytes.set(path, raw);
|
|
216
|
+
return manifest;
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* Every field of a manifest has exactly one authoritative writer. The
|
|
220
|
+
* runner owns `program.status`; each workstream's `status`, `specHash`,
|
|
221
|
+
* `commit`, `dependencies`, and (see {@link mergeManifests}'s doc comment)
|
|
222
|
+
* `prerequisites`; and each prerequisite record's `status`. The human owns
|
|
223
|
+
* everything else, including which workstreams and prerequisite records
|
|
224
|
+
* exist at all. A save that finds the on-disk copy has drifted since this
|
|
225
|
+
* process last read or wrote it reloads that copy, overlays only the
|
|
226
|
+
* runner-owned fields from memory onto it, and writes the merge — never a
|
|
227
|
+
* blind whole-object overwrite. See `docs/programs/clear-backlog-manifest.json`
|
|
228
|
+
* (WS-02) for the full contract this implements.
|
|
229
|
+
*/
|
|
230
|
+
export async function saveManifest(root, programId, manifest, options) {
|
|
231
|
+
const path = manifestPath(root, programId);
|
|
232
|
+
const serialized = `${JSON.stringify(manifest, null, 2)}\n`;
|
|
233
|
+
let currentOnDisk;
|
|
234
|
+
try {
|
|
235
|
+
currentOnDisk = await readFile(path, "utf8");
|
|
236
|
+
}
|
|
237
|
+
catch {
|
|
238
|
+
currentOnDisk = undefined;
|
|
239
|
+
}
|
|
240
|
+
if (currentOnDisk === undefined) {
|
|
241
|
+
await writeFile(path, serialized, "utf8");
|
|
242
|
+
lastBytes.set(path, serialized);
|
|
243
|
+
return { merged: false };
|
|
244
|
+
}
|
|
245
|
+
const baseline = lastBytes.get(path);
|
|
246
|
+
if (baseline === undefined || currentOnDisk === baseline) {
|
|
247
|
+
await writeFile(path, serialized, "utf8");
|
|
248
|
+
lastBytes.set(path, serialized);
|
|
249
|
+
return { merged: false };
|
|
250
|
+
}
|
|
251
|
+
// Drift: the bytes on disk differ from what this process last read or
|
|
252
|
+
// wrote. The on-disk copy must still be valid to merge onto.
|
|
253
|
+
let disk;
|
|
254
|
+
try {
|
|
255
|
+
disk = parseManifest(currentOnDisk, path);
|
|
256
|
+
}
|
|
257
|
+
catch (error) {
|
|
258
|
+
throw new Error(`${path} was amended on disk since this run last read it, but the ` +
|
|
259
|
+
`amended copy could not be merged: ${error.message}`, { cause: error });
|
|
260
|
+
}
|
|
261
|
+
const { manifest: merged, removedWorkstreamIds, removedPrerequisiteIds } = mergeManifests(disk, manifest);
|
|
262
|
+
const mergedSerialized = `${JSON.stringify(merged, null, 2)}\n`;
|
|
263
|
+
try {
|
|
264
|
+
parseManifest(mergedSerialized, path);
|
|
265
|
+
}
|
|
266
|
+
catch (error) {
|
|
267
|
+
throw new Error(`${path} was amended on disk since this run last read it, and merging ` +
|
|
268
|
+
`the run's changes onto the amendment produced an invalid manifest: ` +
|
|
269
|
+
`${error.message}`, { cause: error });
|
|
270
|
+
}
|
|
271
|
+
await writeFile(path, mergedSerialized, "utf8");
|
|
272
|
+
lastBytes.set(path, mergedSerialized);
|
|
273
|
+
mergeCount.set(path, (mergeCount.get(path) ?? 0) + 1);
|
|
274
|
+
adoptMerged(manifest, merged);
|
|
275
|
+
options?.log?.(`manifest: on-disk copy was amended since this run loaded it; merged ` +
|
|
276
|
+
`the human's edits and kept the runner's status changes (${path})`);
|
|
277
|
+
for (const id of removedWorkstreamIds) {
|
|
278
|
+
options?.log?.(`manifest: workstream "${id}" was removed from the manifest by a ` +
|
|
279
|
+
`human edit; discarding this run's in-memory progress for it (${path})`);
|
|
280
|
+
}
|
|
281
|
+
for (const id of removedPrerequisiteIds) {
|
|
282
|
+
options?.log?.(`manifest: prerequisite "${id}" was removed from the manifest by a ` +
|
|
283
|
+
`human edit; discarding this run's in-memory progress for it (${path})`);
|
|
284
|
+
}
|
|
285
|
+
return { merged: true };
|
|
286
|
+
}
|
|
287
|
+
export function manifestMergeCount(root, programId) {
|
|
288
|
+
return mergeCount.get(manifestPath(root, programId)) ?? 0;
|
|
289
|
+
}
|
|
290
|
+
/**
|
|
291
|
+
* Field-level merge of a runner-held in-memory manifest onto a validated
|
|
292
|
+
* on-disk copy. `disk` is the base — every field the human owns comes from
|
|
293
|
+
* it, including roster membership. Only the runner-owned fields listed in
|
|
294
|
+
* the module doc comment are overlaid from `memory`. Returns a new object;
|
|
295
|
+
* does not mutate either input (the caller adopts the result into `memory`
|
|
296
|
+
* separately, preserving object identity — see `adoptMerged`). Does not log:
|
|
297
|
+
* the caller only logs once the merge has been validated and written.
|
|
298
|
+
*/
|
|
299
|
+
function mergeManifests(disk, memory) {
|
|
300
|
+
const memoryWorkstreamById = new Map(memory.workstreams.map((w) => [w.id, w]));
|
|
301
|
+
const diskWorkstreamIds = new Set(disk.workstreams.map((w) => w.id));
|
|
302
|
+
const diskPrerequisiteIds = new Set(disk.prerequisites.map((p) => p.id));
|
|
303
|
+
const mergedWorkstreams = disk.workstreams.map((diskWorkstream) => {
|
|
304
|
+
const memoryWorkstream = memoryWorkstreamById.get(diskWorkstream.id);
|
|
305
|
+
if (!memoryWorkstream)
|
|
306
|
+
return diskWorkstream;
|
|
307
|
+
const mergedDependencies = memoryWorkstream.dependencies.filter((id) => diskWorkstreamIds.has(id));
|
|
308
|
+
// Which prerequisites gate a workstream is treated as runner-owned, not
|
|
309
|
+
// human-owned like the rest of the workstream's structural fields: a
|
|
310
|
+
// from-disk merge here cannot tell a genuine human edit from an agent's
|
|
311
|
+
// own file write landing on disk mid-run, and the latter must never let
|
|
312
|
+
// a workstream strip its own gate (SC-11 — see
|
|
313
|
+
// test/run-program.test.ts's "self-satisfying HP-01" case, and the
|
|
314
|
+
// WS-02 decision log for the full reasoning).
|
|
315
|
+
const mergedPrerequisiteRefs = memoryWorkstream.prerequisites.filter((id) => diskPrerequisiteIds.has(id));
|
|
316
|
+
const merged = {
|
|
317
|
+
...diskWorkstream,
|
|
318
|
+
status: memoryWorkstream.status,
|
|
319
|
+
dependencies: mergedDependencies,
|
|
320
|
+
prerequisites: mergedPrerequisiteRefs,
|
|
321
|
+
};
|
|
322
|
+
if (memoryWorkstream.specHash === undefined) {
|
|
323
|
+
delete merged.specHash;
|
|
324
|
+
}
|
|
325
|
+
else {
|
|
326
|
+
merged.specHash = memoryWorkstream.specHash;
|
|
327
|
+
}
|
|
328
|
+
if (memoryWorkstream.commit === undefined) {
|
|
329
|
+
delete merged.commit;
|
|
330
|
+
}
|
|
331
|
+
else {
|
|
332
|
+
merged.commit = memoryWorkstream.commit;
|
|
333
|
+
}
|
|
334
|
+
return merged;
|
|
335
|
+
});
|
|
336
|
+
const removedWorkstreamIds = memory.workstreams
|
|
337
|
+
.map((w) => w.id)
|
|
338
|
+
.filter((id) => !diskWorkstreamIds.has(id));
|
|
339
|
+
const memoryPrerequisiteById = new Map(memory.prerequisites.map((p) => [p.id, p]));
|
|
340
|
+
const mergedPrerequisites = disk.prerequisites.map((diskPrerequisite) => {
|
|
341
|
+
const memoryPrerequisite = memoryPrerequisiteById.get(diskPrerequisite.id);
|
|
342
|
+
if (!memoryPrerequisite)
|
|
343
|
+
return diskPrerequisite;
|
|
344
|
+
return { ...diskPrerequisite, status: memoryPrerequisite.status };
|
|
345
|
+
});
|
|
346
|
+
const removedPrerequisiteIds = memory.prerequisites
|
|
347
|
+
.map((p) => p.id)
|
|
348
|
+
.filter((id) => !diskPrerequisiteIds.has(id));
|
|
349
|
+
const manifest = {
|
|
350
|
+
...disk,
|
|
351
|
+
program: { ...disk.program, status: memory.program.status },
|
|
352
|
+
workstreams: mergedWorkstreams,
|
|
353
|
+
prerequisites: mergedPrerequisites,
|
|
354
|
+
};
|
|
355
|
+
return { manifest, removedWorkstreamIds, removedPrerequisiteIds };
|
|
356
|
+
}
|
|
357
|
+
/**
|
|
358
|
+
* Replaces every enumerable key of `target` with `source`'s keys — not a
|
|
359
|
+
* shallow `Object.assign`, which would leave a key deleted on `source` (a
|
|
360
|
+
* human removing a workstream's optional `size`, or a top-level `.loose()`
|
|
361
|
+
* key) stranded on `target`. Preserves `target`'s object identity.
|
|
362
|
+
*/
|
|
363
|
+
function replaceContents(target, source) {
|
|
364
|
+
const targetBag = target;
|
|
365
|
+
const sourceBag = source;
|
|
366
|
+
for (const key of Object.keys(targetBag))
|
|
367
|
+
delete targetBag[key];
|
|
368
|
+
Object.assign(targetBag, sourceBag);
|
|
369
|
+
}
|
|
370
|
+
/**
|
|
371
|
+
* Adopts a merged manifest into the run's existing in-memory object by
|
|
372
|
+
* updating objects in place rather than swapping references — the build
|
|
373
|
+
* loop and topological order hold references to the original workstream
|
|
374
|
+
* objects, and swapping would detach them (see WS-02 decision: "Adopt the
|
|
375
|
+
* merged manifest by updating memory's objects in place").
|
|
376
|
+
*/
|
|
377
|
+
function adoptMerged(memory, merged) {
|
|
378
|
+
const mergedWorkstreamById = new Map(merged.workstreams.map((w) => [w.id, w]));
|
|
379
|
+
const survivingWorkstreams = memory.workstreams.filter((workstream) => {
|
|
380
|
+
const match = mergedWorkstreamById.get(workstream.id);
|
|
381
|
+
if (!match)
|
|
382
|
+
return false;
|
|
383
|
+
replaceContents(workstream, match);
|
|
384
|
+
return true;
|
|
385
|
+
});
|
|
386
|
+
const survivingWorkstreamIds = new Set(survivingWorkstreams.map((w) => w.id));
|
|
387
|
+
for (const mergedWorkstream of merged.workstreams) {
|
|
388
|
+
if (!survivingWorkstreamIds.has(mergedWorkstream.id)) {
|
|
389
|
+
survivingWorkstreams.push({ ...mergedWorkstream });
|
|
390
|
+
}
|
|
391
|
+
}
|
|
392
|
+
const mergedPrerequisiteById = new Map(merged.prerequisites.map((p) => [p.id, p]));
|
|
393
|
+
const survivingPrerequisites = memory.prerequisites.filter((prerequisite) => {
|
|
394
|
+
const match = mergedPrerequisiteById.get(prerequisite.id);
|
|
395
|
+
if (!match)
|
|
396
|
+
return false;
|
|
397
|
+
replaceContents(prerequisite, match);
|
|
398
|
+
return true;
|
|
399
|
+
});
|
|
400
|
+
const survivingPrerequisiteIds = new Set(survivingPrerequisites.map((p) => p.id));
|
|
401
|
+
for (const mergedPrerequisite of merged.prerequisites) {
|
|
402
|
+
if (!survivingPrerequisiteIds.has(mergedPrerequisite.id)) {
|
|
403
|
+
survivingPrerequisites.push({ ...mergedPrerequisite });
|
|
404
|
+
}
|
|
405
|
+
}
|
|
406
|
+
replaceContents(memory, merged);
|
|
407
|
+
memory.workstreams = survivingWorkstreams;
|
|
408
|
+
memory.prerequisites = survivingPrerequisites;
|
|
199
409
|
}
|
|
200
410
|
//# sourceMappingURL=manifest.js.map
|
package/dist/manifest.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
import type { AgentConfig, NightshiftConfig, PermitsConfig } from "./config.js";
|
|
2
|
+
/**
|
|
3
|
+
* The permission posture nightshift derives for each agent spawn — from the
|
|
4
|
+
* agent's role, the provider it runs, and the host it runs on — replacing
|
|
5
|
+
* the hand-written `--permission-mode`/`--allowedTools` flags an operator
|
|
6
|
+
* used to maintain by hand. See docs/programs's WS-01 spec for the full
|
|
7
|
+
* design: this module builds no judge of its own, it only chooses among
|
|
8
|
+
* containments the providers already ship (claude's `auto` classifier and
|
|
9
|
+
* OS sandbox, codex's workspace-write sandbox).
|
|
10
|
+
*/
|
|
11
|
+
/** The five spawn seats; postures are fixed, never configured. */
|
|
12
|
+
export type AgentRole = "agent" | "recoveryAgent" | "authorAgent" | "deciderAgent" | "reviewerAgent";
|
|
13
|
+
export type Posture = "workspace" | "read-only";
|
|
14
|
+
/**
|
|
15
|
+
* Fixed per-role postures — mirrors the write/exec split `agent-probe.ts`
|
|
16
|
+
* already encoded as WRITE_ROLES/EXEC_ROLES. Exported so the probe sources
|
|
17
|
+
* its write/read split from here rather than keeping a second copy that can
|
|
18
|
+
* drift.
|
|
19
|
+
*/
|
|
20
|
+
export declare const ROLE_POSTURE: Record<AgentRole, Posture>;
|
|
21
|
+
/**
|
|
22
|
+
* The containment/mode label rendered on the `permissions:` startup line and
|
|
23
|
+
* the doctor probe. `unmanaged` covers a provider this module has no flag
|
|
24
|
+
* vocabulary for (gemini, cursor-agent, …) — SC-07's seven labels are all
|
|
25
|
+
* claude/codex-specific; this is the honest label for everything else.
|
|
26
|
+
*/
|
|
27
|
+
export type ContainmentLabel = "ephemeral" | "auto+sandbox" | "auto" | "read-only" | "operator-configured" | "fallback (acceptEdits+verify)" | "fallback (detection failed)" | "read-only fallback (default+verify)" | "read-only fallback (detection failed)" | "unmanaged";
|
|
28
|
+
export interface DerivedInvocation {
|
|
29
|
+
/** Same command/promptMode; args carry the derived flags appended, or are untouched when operator-configured. */
|
|
30
|
+
agent: AgentConfig;
|
|
31
|
+
label: ContainmentLabel;
|
|
32
|
+
operatorConfigured: boolean;
|
|
33
|
+
/** The settings file this invocation reads, when one applies (claude only). */
|
|
34
|
+
settingsPath?: string;
|
|
35
|
+
/** An extra sentence for the startup line — e.g. codex's deny-rules caveat. */
|
|
36
|
+
note?: string;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* True when the agent's own args already carry a permission-bearing flag —
|
|
40
|
+
* `--flag value` and `--flag=value` both match. An agent that trips this is
|
|
41
|
+
* spawned untouched and labeled operator-configured; rewriting an operator's
|
|
42
|
+
* authored flags is the override the charter forbids.
|
|
43
|
+
*/
|
|
44
|
+
export declare function hasExplicitPermissionFlag(agent: AgentConfig): boolean;
|
|
45
|
+
/** One `--allowedTools`/settings allow entry per configured verify command. Relocated from verify-allowlist.ts. */
|
|
46
|
+
export declare function claudeVerifyAllowedTools(verify: Record<string, string>): string[];
|
|
47
|
+
/** The workspace settings file: verify rules + permits.allow/deny, plus a sandbox block on darwin/linux. */
|
|
48
|
+
export declare function workspaceSettingsContent(verify: Record<string, string>, permits: PermitsConfig | undefined, platform: NodeJS.Platform): string;
|
|
49
|
+
/** The read-only settings file: same allow/deny lists, never a sandbox block. */
|
|
50
|
+
export declare function readOnlySettingsContent(verify: Record<string, string>, permits: PermitsConfig | undefined): string;
|
|
51
|
+
export interface ClaudeCapabilities {
|
|
52
|
+
/** False when `--help` could not be run at all (not on PATH, spawn error). */
|
|
53
|
+
detected: boolean;
|
|
54
|
+
autoMode: boolean;
|
|
55
|
+
dontAskMode: boolean;
|
|
56
|
+
permissionPrompts: boolean;
|
|
57
|
+
}
|
|
58
|
+
/** Injectable boundary: resolves to the CLI's `--help` text, rejects on spawn failure. */
|
|
59
|
+
export type ClaudeHelpRunner = (command: string) => Promise<string>;
|
|
60
|
+
/**
|
|
61
|
+
* Turns a finished `--help` spawn into its text or a rejection. Exported so
|
|
62
|
+
* the nonzero-exit-code case (a `claude` on PATH that fails, rather than a
|
|
63
|
+
* missing command) is unit-testable without an actual child process: a
|
|
64
|
+
* nonzero exit must be reported as a detection failure, never parsed as if
|
|
65
|
+
* it were successful help output.
|
|
66
|
+
*/
|
|
67
|
+
export declare function helpRunnerOutcome(code: number | null, output: string): string;
|
|
68
|
+
export declare const defaultClaudeHelpRunner: ClaudeHelpRunner;
|
|
69
|
+
/** Parses `claude --help` text into capabilities. Exported for fixture-driven tests. */
|
|
70
|
+
export declare function parseClaudeHelp(helpText: string): ClaudeCapabilities;
|
|
71
|
+
export declare function detectClaudeCapabilities(command: string, helpRunner?: ClaudeHelpRunner): Promise<ClaudeCapabilities>;
|
|
72
|
+
/** Test-only: clears the process-wide capability cache between fixture scenarios. */
|
|
73
|
+
export declare function resetClaudeCapabilityCacheForTests(): void;
|
|
74
|
+
export interface DerivationInput {
|
|
75
|
+
role: AgentRole;
|
|
76
|
+
agent: AgentConfig;
|
|
77
|
+
/** Raw `NIGHTSHIFT_CONTAINMENT` value; only `"ephemeral"` has meaning. */
|
|
78
|
+
containmentEnv: string | undefined;
|
|
79
|
+
platform: NodeJS.Platform;
|
|
80
|
+
/** Undefined for a non-claude command — capabilities are claude-specific. */
|
|
81
|
+
claudeCapabilities: ClaudeCapabilities | undefined;
|
|
82
|
+
workspaceSettingsPath: string;
|
|
83
|
+
readOnlySettingsPath: string;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* The whole derivation, pure: role + posture + containment + capabilities +
|
|
87
|
+
* the agent's existing args -> the flags to spawn with. No I/O — capability
|
|
88
|
+
* detection and the settings-file write happen in the context builder below.
|
|
89
|
+
*/
|
|
90
|
+
export declare function deriveAgentInvocation(input: DerivationInput): DerivedInvocation;
|
|
91
|
+
export interface PermitsContext {
|
|
92
|
+
workspaceSettingsPath: string;
|
|
93
|
+
readOnlySettingsPath: string;
|
|
94
|
+
derive(role: AgentRole, agent: AgentConfig): Promise<DerivedInvocation>;
|
|
95
|
+
/**
|
|
96
|
+
* Removes the settings files this context wrote. The owner of a context
|
|
97
|
+
* (the command that built it) calls this when its spawns are done; a
|
|
98
|
+
* process-exit hook removes whatever an owner never got to, so a crash or
|
|
99
|
+
* an early return does not leave the pair behind in the OS temp directory.
|
|
100
|
+
* Optional so a test fake that only implements `derive` stays a valid
|
|
101
|
+
* context; owners call it as `permits.dispose?.()`.
|
|
102
|
+
*/
|
|
103
|
+
dispose?(): Promise<void>;
|
|
104
|
+
}
|
|
105
|
+
/** Injectable filesystem boundary for the settings-file write and removal. */
|
|
106
|
+
export interface PermitsFs {
|
|
107
|
+
writeFile(path: string, content: string): Promise<void>;
|
|
108
|
+
/** Optional so a write-capturing fake stays valid; removal is then a no-op. */
|
|
109
|
+
rm?(path: string): Promise<void>;
|
|
110
|
+
}
|
|
111
|
+
export interface BuildPermitsContextOptions {
|
|
112
|
+
config: NightshiftConfig;
|
|
113
|
+
platform?: NodeJS.Platform;
|
|
114
|
+
/** Defaults to `process.env.NIGHTSHIFT_CONTAINMENT`. */
|
|
115
|
+
containmentEnv?: string | undefined;
|
|
116
|
+
helpRunner?: ClaudeHelpRunner;
|
|
117
|
+
fs?: PermitsFs;
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Builds the run's (or doctor probe's, or as-built refresh's) one
|
|
121
|
+
* `PermitsContext`: writes the two settings files once under `os.tmpdir()`
|
|
122
|
+
* and returns a `derive` function that detects claude's capabilities on
|
|
123
|
+
* first use per command string and applies the pure derivation above.
|
|
124
|
+
*/
|
|
125
|
+
export declare function buildPermitsContext(options: BuildPermitsContextOptions): Promise<PermitsContext>;
|
|
126
|
+
/**
|
|
127
|
+
* A context that appends nothing and detects nothing — the injectable
|
|
128
|
+
* default for options that accept `permits` optionally, so a test exercising
|
|
129
|
+
* unrelated logic spawns exactly as it did before this workstream. Every
|
|
130
|
+
* real entry point (`run`, `doctor --agents`, `nightshift author`,
|
|
131
|
+
* `nightshift as-built`/`publish`) builds and passes a real context instead
|
|
132
|
+
* of relying on this default.
|
|
133
|
+
*/
|
|
134
|
+
export declare const NOOP_PERMITS_CONTEXT: PermitsContext;
|
|
135
|
+
//# sourceMappingURL=permits.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"permits.d.ts","sourceRoot":"","sources":["../src/permits.ts"],"names":[],"mappings":"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"}
|