@cleocode/contracts 2026.10.8 → 2026.10.9
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/branch-lock.d.ts +5 -2
- package/dist/branch-lock.d.ts.map +1 -1
- package/dist/branch-lock.js.map +1 -1
- package/dist/dispatch/operations-registry.d.ts.map +1 -1
- package/dist/dispatch/operations-registry.js +7 -1
- package/dist/dispatch/operations-registry.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/invariants/sync-write-invariants.d.ts.map +1 -1
- package/dist/invariants/sync-write-invariants.js +10 -1
- package/dist/invariants/sync-write-invariants.js.map +1 -1
- package/dist/nexus-cloud.d.ts +19 -1
- package/dist/nexus-cloud.d.ts.map +1 -1
- package/dist/nexus-cloud.js +4 -0
- package/dist/nexus-cloud.js.map +1 -1
- package/dist/nexus-vault.d.ts +155 -1
- package/dist/nexus-vault.d.ts.map +1 -1
- package/dist/operations/nexus.d.ts +4 -0
- package/dist/operations/nexus.d.ts.map +1 -1
- package/dist/operations/nexus.js.map +1 -1
- package/dist/operations/orchestrate.d.ts +7 -0
- package/dist/operations/orchestrate.d.ts.map +1 -1
- package/dist/operations/validate.d.ts +5 -0
- package/dist/operations/validate.d.ts.map +1 -1
- package/dist/operations/worktree.d.ts +61 -0
- package/dist/operations/worktree.d.ts.map +1 -1
- package/dist/project-context.d.ts +9 -0
- package/dist/project-context.d.ts.map +1 -1
- package/dist/project-hook-delivery.d.ts +137 -0
- package/dist/project-hook-delivery.d.ts.map +1 -0
- package/dist/project-hook-delivery.js +21 -0
- package/dist/project-hook-delivery.js.map +1 -0
- package/dist/project-hooks.d.ts +276 -0
- package/dist/project-hooks.d.ts.map +1 -0
- package/dist/project-hooks.js +113 -0
- package/dist/project-hooks.js.map +1 -0
- package/dist/release/channel.d.ts +1 -1
- package/dist/release/channel.d.ts.map +1 -1
- package/dist/release/hook-pilot.d.ts +179 -0
- package/dist/release/hook-pilot.d.ts.map +1 -0
- package/dist/release/hook-pilot.js +112 -0
- package/dist/release/hook-pilot.js.map +1 -0
- package/dist/release/plan.d.ts +12 -1
- package/dist/release/plan.d.ts.map +1 -1
- package/dist/release/plan.js +25 -2
- package/dist/release/plan.js.map +1 -1
- package/dist/release/plan.test.js +14 -3
- package/dist/release/plan.test.js.map +1 -1
- package/dist/row-identity.d.ts +7 -0
- package/dist/row-identity.d.ts.map +1 -1
- package/dist/task.d.ts +7 -0
- package/dist/task.d.ts.map +1 -1
- package/dist/tools/atomic.d.ts +6 -0
- package/dist/tools/atomic.d.ts.map +1 -1
- package/dist/tools/atomic.js.map +1 -1
- package/package.json +2 -2
- package/src/__tests__/__snapshots__/operations-registry.test.ts.snap +1 -1
- package/src/branch-lock.ts +5 -2
- package/src/dispatch/operations-registry.ts +7 -1
- package/src/index.ts +7 -0
- package/src/invariants/sync-write-invariants.ts +10 -1
- package/src/nexus-cloud.ts +13 -1
- package/src/nexus-vault.ts +138 -1
- package/src/operations/nexus.ts +4 -0
- package/src/operations/orchestrate.ts +7 -0
- package/src/operations/validate.ts +5 -0
- package/src/operations/worktree.ts +59 -0
- package/src/project-context.ts +9 -0
- package/src/project-hook-delivery.ts +144 -0
- package/src/project-hooks.ts +256 -0
- package/src/release/channel.ts +1 -1
- package/src/release/hook-pilot.ts +163 -0
- package/src/release/plan.test.ts +15 -3
- package/src/release/plan.ts +81 -56
- package/src/row-identity.ts +7 -0
- package/src/task.ts +7 -0
- package/src/tools/atomic.ts +8 -0
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
* @adr ADR-055
|
|
14
14
|
* @adr ADR-062
|
|
15
15
|
*/
|
|
16
|
+
import type { HookExecutor, HookOutcome } from '../project-hooks.js';
|
|
16
17
|
/**
|
|
17
18
|
* A declarative lifecycle hook definition for worktree events.
|
|
18
19
|
*
|
|
@@ -23,6 +24,8 @@
|
|
|
23
24
|
* @task T1161
|
|
24
25
|
*/
|
|
25
26
|
export interface WorktreeHook {
|
|
27
|
+
/** Shared hook identity when legacy wiring duplicates a tracked project definition. */
|
|
28
|
+
projectHookId?: string;
|
|
26
29
|
/** Shell command to run in the worktree dir (`/bin/sh -c` on POSIX, cmd.exe on Windows). */
|
|
27
30
|
command: string;
|
|
28
31
|
/**
|
|
@@ -213,6 +216,8 @@ export interface CreateWorktreeOptions {
|
|
|
213
216
|
reason?: 'subagent' | 'experiment' | 'parallel-wave';
|
|
214
217
|
/** Declarative hooks to run after creation. */
|
|
215
218
|
hooks?: WorktreeHook[];
|
|
219
|
+
/** Optional shared project executor injected by CLEO; never imports core into worktree. */
|
|
220
|
+
projectHookExecutor?: HookExecutor;
|
|
216
221
|
/**
|
|
217
222
|
* When true, read `.cleo/worktree-include` from the project root and apply
|
|
218
223
|
* any declared include patterns to the new worktree.
|
|
@@ -291,6 +296,52 @@ export interface CreateWorktreeOptions {
|
|
|
291
296
|
* @task T12506
|
|
292
297
|
*/
|
|
293
298
|
lockTtlMs?: number;
|
|
299
|
+
/**
|
|
300
|
+
* The git shim the caller installed for this worktree (T13522). Only when
|
|
301
|
+
* `installed` is the shim dir prepended to PATH and
|
|
302
|
+
* `CLEO_BRANCH_PROTECTION=strict` advertised; otherwise the env says
|
|
303
|
+
* `unavailable`, so nothing claims a fence that is not there.
|
|
304
|
+
*
|
|
305
|
+
* @task T13522
|
|
306
|
+
*/
|
|
307
|
+
gitShim?: {
|
|
308
|
+
readonly dir: string;
|
|
309
|
+
readonly installed: boolean;
|
|
310
|
+
};
|
|
311
|
+
/**
|
|
312
|
+
* Provision without installing dependencies (`--no-install`, T13524). The
|
|
313
|
+
* result's `install` says so, with the command the worker runs instead.
|
|
314
|
+
*
|
|
315
|
+
* @task T13524
|
|
316
|
+
*/
|
|
317
|
+
skipInstall?: boolean;
|
|
318
|
+
/**
|
|
319
|
+
* Admission for the dependency install (T13524): called before `pnpm install`
|
|
320
|
+
* runs; resolves to a release function once admitted, or `null` when the
|
|
321
|
+
* machine budget is busy, in which case the install is deferred to the
|
|
322
|
+
* worker rather than run outside the heavy-work queue. Absent: install
|
|
323
|
+
* unadmitted (legacy callers).
|
|
324
|
+
*
|
|
325
|
+
* @task T13524
|
|
326
|
+
*/
|
|
327
|
+
admitInstall?: () => Promise<(() => Promise<void>) | null>;
|
|
328
|
+
}
|
|
329
|
+
/**
|
|
330
|
+
* What happened to a worktree's dependency install (T13524).
|
|
331
|
+
*
|
|
332
|
+
* @task T13524
|
|
333
|
+
*/
|
|
334
|
+
export interface WorktreeInstallOutcome {
|
|
335
|
+
/**
|
|
336
|
+
* `installed`/`failed`: it ran. `skipped`: `--no-install`. `deferred`: the
|
|
337
|
+
* machine budget was busy, so the worker installs. `not-needed`: no
|
|
338
|
+
* lockfile, already installed, or a re-attached worktree.
|
|
339
|
+
*/
|
|
340
|
+
status: 'installed' | 'failed' | 'skipped' | 'deferred' | 'not-needed';
|
|
341
|
+
/** Why, for anything but `installed`. */
|
|
342
|
+
reason?: string;
|
|
343
|
+
/** The command the worker runs when the install did not happen here. */
|
|
344
|
+
command?: string;
|
|
294
345
|
}
|
|
295
346
|
/**
|
|
296
347
|
* Result of a successful worktree creation.
|
|
@@ -338,6 +389,8 @@ export interface CreateWorktreeResult {
|
|
|
338
389
|
preamble: string;
|
|
339
390
|
/** Results of any post-create hooks that were executed. */
|
|
340
391
|
hookResults: WorktreeHookResult[];
|
|
392
|
+
/** Results from activated project definitions for post-create. */
|
|
393
|
+
projectHookResults?: HookOutcome[];
|
|
341
394
|
/** Include patterns that were applied (empty if none). */
|
|
342
395
|
appliedPatterns: WorktreeIncludePattern[];
|
|
343
396
|
/**
|
|
@@ -351,7 +404,15 @@ export interface CreateWorktreeResult {
|
|
|
351
404
|
failedPaths: string[];
|
|
352
405
|
/** Results of post-start hooks. */
|
|
353
406
|
hookResults: WorktreeHookResult[];
|
|
407
|
+
/** Results from activated project definitions for post-start. */
|
|
408
|
+
projectHookResults?: HookOutcome[];
|
|
354
409
|
};
|
|
410
|
+
/**
|
|
411
|
+
* The dependency install outcome (T13524).
|
|
412
|
+
*
|
|
413
|
+
* @task T13524
|
|
414
|
+
*/
|
|
415
|
+
install?: WorktreeInstallOutcome;
|
|
355
416
|
}
|
|
356
417
|
/**
|
|
357
418
|
* Options for destroying a worktree.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worktree.d.ts","sourceRoot":"","sources":["../../src/operations/worktree.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;
|
|
1
|
+
{"version":3,"file":"worktree.d.ts","sourceRoot":"","sources":["../../src/operations/worktree.ts"],"names":[],"mappings":"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"}
|
|
@@ -63,6 +63,15 @@ export interface ProjectEvidenceContext {
|
|
|
63
63
|
* CLEO's own installed hook files are always excluded (T13135, gh#1805).
|
|
64
64
|
*/
|
|
65
65
|
scopeExcludes?: string[];
|
|
66
|
+
/**
|
|
67
|
+
* Globs of TRACKED files a harness rewrites while a run executes (a goal
|
|
68
|
+
* runtime's `run.json`, its ledger), left out of the evidence tree hash so
|
|
69
|
+
* the run cannot stale its own receipt; they stay tracked for history
|
|
70
|
+
* (T13554). Read from the default branch only. A glob that matches the
|
|
71
|
+
* project context, a `goal.yaml`, an oracle or a typed gate's input is
|
|
72
|
+
* refused (E_EVIDENCE_RUNTIME_PATH_PROTECTED). Default: none.
|
|
73
|
+
*/
|
|
74
|
+
runtimePaths?: string[];
|
|
66
75
|
}
|
|
67
76
|
/**
|
|
68
77
|
* A required check named in `release.prRequiredWorkflows`, optionally pinned to
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-context.d.ts","sourceRoot":"","sources":["../src/project-context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,6EAA6E;AAC7E,MAAM,MAAM,WAAW,GACnB,MAAM,GACN,QAAQ,GACR,MAAM,GACN,IAAI,GACJ,MAAM,GACN,MAAM,GACN,QAAQ,GACR,MAAM,GACN,QAAQ,GACR,KAAK,GACL,MAAM,GACN,KAAK,GACL,SAAS,CAAC;AAEd,+BAA+B;AAC/B,MAAM,MAAM,aAAa,GACrB,MAAM,GACN,QAAQ,GACR,OAAO,GACP,QAAQ,GACR,MAAM,GACN,OAAO,GACP,IAAI,GACJ,OAAO,GACP,OAAO,GACP,YAAY,GACZ,SAAS,GACT,KAAK,GACL,KAAK,GACL,KAAK,GACL,WAAW,GACX,MAAM,GACN,KAAK,GACL,QAAQ,GACR,SAAS,CAAC;AAEd,yDAAyD;AACzD,MAAM,MAAM,oBAAoB,GAAG,YAAY,GAAG,YAAY,GAAG,WAAW,GAAG,YAAY,CAAC;AAE5F,2BAA2B;AAC3B,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,UAAU,GAAG,OAAO,CAAC;AAEvD;;;;GAIG;AACH,MAAM,WAAW,sBAAsB;IACrC;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE;QACT,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;QACjB,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC;QACd,8EAA8E;QAC9E,IAAI,CAAC,EAAE;YAAE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAA;SAAE,CAAC;KAC5C,CAAC;IACF;;;;;OAKG;IACH,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"project-context.d.ts","sourceRoot":"","sources":["../src/project-context.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
/** Provider delivery contracts; runtime installers live in adapters and CAAMP. */
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import type { HookJsonValue } from './heavy-command-hook.js';
|
|
4
|
+
import type { HookInvocation } from './project-hooks.js';
|
|
5
|
+
/** Parsed JSON object used by surgical managed writers. */
|
|
6
|
+
export type HookConfigObject = {
|
|
7
|
+
readonly [key: string]: HookJsonValue;
|
|
8
|
+
};
|
|
9
|
+
/** One surgical edit; undefined removes exactly the addressed node. */
|
|
10
|
+
export interface HookConfigEdit {
|
|
11
|
+
/** JSON property/index path. */
|
|
12
|
+
path: (string | number)[];
|
|
13
|
+
/** Replacement value, or undefined for removal. */
|
|
14
|
+
value?: HookJsonValue;
|
|
15
|
+
/** Append/insert an array element without replacing its siblings. */
|
|
16
|
+
insert?: boolean;
|
|
17
|
+
}
|
|
18
|
+
/** Receipt authorizing management of one exact config entry. */
|
|
19
|
+
export declare const ProjectHookDeliveryReceiptSchema: z.ZodObject<{
|
|
20
|
+
schemaVersion: z.ZodLiteral<1>;
|
|
21
|
+
provider: z.ZodString;
|
|
22
|
+
configPath: z.ZodString;
|
|
23
|
+
entries: z.ZodArray<z.ZodObject<{
|
|
24
|
+
event: z.ZodString;
|
|
25
|
+
hash: z.ZodString;
|
|
26
|
+
command: z.ZodString;
|
|
27
|
+
}, z.core.$strict>>;
|
|
28
|
+
recordedAt: z.ZodISODateTime;
|
|
29
|
+
}, z.core.$strict>;
|
|
30
|
+
/** Machine-local source and entry ownership receipt. */
|
|
31
|
+
export type ProjectHookDeliveryReceipt = z.infer<typeof ProjectHookDeliveryReceiptSchema>;
|
|
32
|
+
/** Entry-level provenance without printing commands that may contain secrets. */
|
|
33
|
+
export interface ProjectHookEntryInspection {
|
|
34
|
+
/** Native provider event. */
|
|
35
|
+
event: string;
|
|
36
|
+
/** Index in the provider event's entry array. */
|
|
37
|
+
index: number;
|
|
38
|
+
/** Receipt proves project delivery ownership; other ownership remains unknown. */
|
|
39
|
+
owner: 'project' | 'unknown';
|
|
40
|
+
/** Generated entry is attributable only through its retained local receipt. */
|
|
41
|
+
provenance: 'cleo-receipt' | 'unknown';
|
|
42
|
+
/** Entry digest permits review without retaining its command text. */
|
|
43
|
+
hash: string;
|
|
44
|
+
/** Tracked source, only for receipt-owned project checks. */
|
|
45
|
+
source?: '.cleo/hooks.json';
|
|
46
|
+
}
|
|
47
|
+
/** Inspect/install result; a config file never proves native trust or live support. */
|
|
48
|
+
export interface ProjectHookDeliveryResult {
|
|
49
|
+
/** Harness identifier. */
|
|
50
|
+
provider: string;
|
|
51
|
+
/** Observed local binary version, when discoverable. */
|
|
52
|
+
version?: string;
|
|
53
|
+
/** Safe resolved project-local destination, absent when unsupported. */
|
|
54
|
+
configPath?: string;
|
|
55
|
+
/** Delivery state. */
|
|
56
|
+
state: 'planned' | 'current' | 'installed' | 'conflict' | 'unsupported' | 'disabled' | 'missing';
|
|
57
|
+
/** Independent capability evidence. */
|
|
58
|
+
capability: 'verified' | 'documented' | 'unverified';
|
|
59
|
+
/** Native project/definition trust is never granted by CLEO. */
|
|
60
|
+
nativeTrust: 'unverified';
|
|
61
|
+
/** Receipt-backed provenance; legacy config provenance remains unknown. */
|
|
62
|
+
provenance: 'cleo-receipt' | 'unknown';
|
|
63
|
+
/** Sanitized actionable findings. */
|
|
64
|
+
diagnostics: string[];
|
|
65
|
+
/** Reviewed team-config integration aid when automatic local delivery is ineligible. */
|
|
66
|
+
integrationSnippet?: string;
|
|
67
|
+
/** Per-entry attribution, deliberately excluding raw config command strings. */
|
|
68
|
+
entries?: ProjectHookEntryInspection[];
|
|
69
|
+
}
|
|
70
|
+
/** SDK-owned utilities injected into provider delivery without a runtime SDK dependency. */
|
|
71
|
+
export interface ProjectHookDeliveryServices {
|
|
72
|
+
/**
|
|
73
|
+
* Read bounded regular files through the canonical filesystem primitive.
|
|
74
|
+
* @remarks
|
|
75
|
+
* The caller supplies the SDK implementation, preserving special-file and racing-growth checks.
|
|
76
|
+
* @param path - Resolved file path selected by the delivery adapter.
|
|
77
|
+
* @param maxBytes - Maximum UTF-8 input size in bytes.
|
|
78
|
+
* @returns The file's text after its descriptor and allocation limit have been checked.
|
|
79
|
+
* @example
|
|
80
|
+
* ```typescript
|
|
81
|
+
* const readConfiguration = (services: ProjectHookDeliveryServices) =>
|
|
82
|
+
* services.readTextFile('/repo/.codex/hooks.json', 262144);
|
|
83
|
+
* ```
|
|
84
|
+
*/
|
|
85
|
+
readTextFile(path: string, maxBytes: number): Promise<string>;
|
|
86
|
+
/**
|
|
87
|
+
* Git discovery environment with ambient repository overrides removed.
|
|
88
|
+
* @defaultValue No implicit default; the caller supplies the snapshot.
|
|
89
|
+
*/
|
|
90
|
+
gitEnvironment: Readonly<Record<string, string | undefined>>;
|
|
91
|
+
}
|
|
92
|
+
/** Explicit cold-path provider sync inputs. */
|
|
93
|
+
export interface ProjectHookDeliveryOptions {
|
|
94
|
+
/** Canonical SDK utilities supplied by the caller through the contracts port. */
|
|
95
|
+
services: ProjectHookDeliveryServices;
|
|
96
|
+
/** Checkout root validated by the core context resolver. */
|
|
97
|
+
projectRoot: string;
|
|
98
|
+
/** Per-checkout Git-private receipt directory. */
|
|
99
|
+
stateDir: string;
|
|
100
|
+
/** Canonical agent events selected from the manifest. */
|
|
101
|
+
events: string[];
|
|
102
|
+
/** Activation was inspected fresh. */
|
|
103
|
+
enabled: boolean;
|
|
104
|
+
/** No files (including lock files) may be written in dry-run mode. */
|
|
105
|
+
dryRun: boolean;
|
|
106
|
+
/**
|
|
107
|
+
* Explicit provider selection; otherwise detect project-local configuration.
|
|
108
|
+
* @defaultValue Providers detected from local configuration and installed harness binaries.
|
|
109
|
+
*/
|
|
110
|
+
providers?: string[];
|
|
111
|
+
/**
|
|
112
|
+
* Remove only receipt-owned, unmodified additions instead of synchronizing.
|
|
113
|
+
* @defaultValue false
|
|
114
|
+
*/
|
|
115
|
+
rollback?: boolean;
|
|
116
|
+
}
|
|
117
|
+
/** Provider-normalized request awaiting checkout resolution by core. */
|
|
118
|
+
export interface ProjectHookNativeRequest {
|
|
119
|
+
/** Actual triggering directory, independent of harness-specific environment variables. */
|
|
120
|
+
cwd: string;
|
|
121
|
+
/** Provider wire protocol. */
|
|
122
|
+
provider: string;
|
|
123
|
+
/** Optional native event name from the provider input. */
|
|
124
|
+
nativeEvent?: string;
|
|
125
|
+
/** Shared input fields before Git resolves projectRoot and gitCommonDir. */
|
|
126
|
+
input: Omit<HookInvocation, 'projectRoot' | 'gitCommonDir'>;
|
|
127
|
+
}
|
|
128
|
+
/** Native stdout/stderr and adapter exit code; never an approval rewrite. */
|
|
129
|
+
export interface ProjectHookNativeResult {
|
|
130
|
+
/** Provider-format advisory output. */
|
|
131
|
+
stdout: string;
|
|
132
|
+
/** Safe current-invocation diagnostics. */
|
|
133
|
+
stderr: string;
|
|
134
|
+
/** Git verdict failure or zero for advisory/infra failure. */
|
|
135
|
+
exitCode: number;
|
|
136
|
+
}
|
|
137
|
+
//# sourceMappingURL=project-hook-delivery.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project-hook-delivery.d.ts","sourceRoot":"","sources":["../src/project-hook-delivery.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/** Provider delivery contracts; runtime installers live in adapters and CAAMP. */
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
/** Receipt authorizing management of one exact config entry. */
|
|
4
|
+
export const ProjectHookDeliveryReceiptSchema = z
|
|
5
|
+
.object({
|
|
6
|
+
schemaVersion: z.literal(1),
|
|
7
|
+
provider: z.string().min(1).max(128),
|
|
8
|
+
configPath: z.string().min(1).max(4096),
|
|
9
|
+
entries: z
|
|
10
|
+
.array(z
|
|
11
|
+
.object({
|
|
12
|
+
event: z.string().min(1).max(128),
|
|
13
|
+
hash: z.string().regex(/^[a-f0-9]{64}$/),
|
|
14
|
+
command: z.string().min(1).max(8192),
|
|
15
|
+
})
|
|
16
|
+
.strict())
|
|
17
|
+
.max(128),
|
|
18
|
+
recordedAt: z.iso.datetime(),
|
|
19
|
+
})
|
|
20
|
+
.strict();
|
|
21
|
+
//# sourceMappingURL=project-hook-delivery.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project-hook-delivery.js","sourceRoot":"","sources":["../src/project-hook-delivery.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAClF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAexB,gEAAgE;AAChE,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAC;KAC9C,MAAM,CAAC;IACN,aAAa,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IACpC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;IACvC,OAAO,EAAE,CAAC;SACP,KAAK,CACJ,CAAC;SACE,MAAM,CAAC;QACN,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;QACjC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC;QACxC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;KACrC,CAAC;SACD,MAAM,EAAE,CACZ;SACA,GAAG,CAAC,GAAG,CAAC;IACX,UAAU,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE;CAC7B,CAAC;KACD,MAAM,EAAE,CAAC"}
|
|
@@ -0,0 +1,276 @@
|
|
|
1
|
+
/** Project-owned checks shared by Git, harness and worktree adapters (T13343). */
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import type { HookJsonValue } from './heavy-command-hook.js';
|
|
4
|
+
/** Invocation origin; CI has stricter failure handling than local adapters. */
|
|
5
|
+
export declare const HookSourceSchema: z.ZodEnum<{
|
|
6
|
+
direct: "direct";
|
|
7
|
+
ci: "ci";
|
|
8
|
+
worktree: "worktree";
|
|
9
|
+
agent: "agent";
|
|
10
|
+
git: "git";
|
|
11
|
+
}>;
|
|
12
|
+
/** Shared invocation origin. */
|
|
13
|
+
export type HookSource = z.infer<typeof HookSourceSchema>;
|
|
14
|
+
/** A checkout-relative path; runtime validation also resolves symlinks. */
|
|
15
|
+
export declare const ProjectHookPathSchema: z.ZodString;
|
|
16
|
+
/** One project definition; CLEO IDs are reserved for shipped infrastructure. */
|
|
17
|
+
export declare const ProjectHookDefinitionSchema: z.ZodObject<{
|
|
18
|
+
id: z.ZodString;
|
|
19
|
+
owner: z.ZodLiteral<"project">;
|
|
20
|
+
bindings: z.ZodArray<z.ZodObject<{
|
|
21
|
+
source: z.ZodEnum<{
|
|
22
|
+
direct: "direct";
|
|
23
|
+
ci: "ci";
|
|
24
|
+
worktree: "worktree";
|
|
25
|
+
agent: "agent";
|
|
26
|
+
git: "git";
|
|
27
|
+
}>;
|
|
28
|
+
event: z.ZodString;
|
|
29
|
+
}, z.core.$strict>>;
|
|
30
|
+
executable: z.ZodString;
|
|
31
|
+
handler: z.ZodString;
|
|
32
|
+
args: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
33
|
+
dependencies: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
34
|
+
timeoutMs: z.ZodDefault<z.ZodNumber>;
|
|
35
|
+
checkerErrorPolicy: z.ZodDefault<z.ZodEnum<{
|
|
36
|
+
warn: "warn";
|
|
37
|
+
block: "block";
|
|
38
|
+
}>>;
|
|
39
|
+
}, z.core.$strict>;
|
|
40
|
+
/** Validated project checker configuration. Handler is executable's first argument. */
|
|
41
|
+
export type ProjectHookDefinition = z.infer<typeof ProjectHookDefinitionSchema>;
|
|
42
|
+
/** Tracked single source of truth; array order defines execution order. */
|
|
43
|
+
export declare const ProjectHooksManifestSchema: z.ZodObject<{
|
|
44
|
+
schemaVersion: z.ZodLiteral<1>;
|
|
45
|
+
hooks: z.ZodArray<z.ZodObject<{
|
|
46
|
+
id: z.ZodString;
|
|
47
|
+
owner: z.ZodLiteral<"project">;
|
|
48
|
+
bindings: z.ZodArray<z.ZodObject<{
|
|
49
|
+
source: z.ZodEnum<{
|
|
50
|
+
direct: "direct";
|
|
51
|
+
ci: "ci";
|
|
52
|
+
worktree: "worktree";
|
|
53
|
+
agent: "agent";
|
|
54
|
+
git: "git";
|
|
55
|
+
}>;
|
|
56
|
+
event: z.ZodString;
|
|
57
|
+
}, z.core.$strict>>;
|
|
58
|
+
executable: z.ZodString;
|
|
59
|
+
handler: z.ZodString;
|
|
60
|
+
args: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
61
|
+
dependencies: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
62
|
+
timeoutMs: z.ZodDefault<z.ZodNumber>;
|
|
63
|
+
checkerErrorPolicy: z.ZodDefault<z.ZodEnum<{
|
|
64
|
+
warn: "warn";
|
|
65
|
+
block: "block";
|
|
66
|
+
}>>;
|
|
67
|
+
}, z.core.$strict>>;
|
|
68
|
+
}, z.core.$strict>;
|
|
69
|
+
/** Validated tracked manifest. */
|
|
70
|
+
export type ProjectHooksManifest = z.infer<typeof ProjectHooksManifestSchema>;
|
|
71
|
+
/** Exact ref update supplied by Git pre-push, including zero object IDs. */
|
|
72
|
+
export interface HookRefUpdate {
|
|
73
|
+
/** Local ref name or deletion marker. */
|
|
74
|
+
localRef: string;
|
|
75
|
+
/** Exact local object ID. */
|
|
76
|
+
localOid: string;
|
|
77
|
+
/** Remote ref name. */
|
|
78
|
+
remoteRef: string;
|
|
79
|
+
/** Previous remote object ID. */
|
|
80
|
+
remoteOid: string;
|
|
81
|
+
}
|
|
82
|
+
/** Native input normalized by the adapter; no harness environment is required. */
|
|
83
|
+
export interface HookInvocation {
|
|
84
|
+
/** Protocol version. */
|
|
85
|
+
schemaVersion: 1;
|
|
86
|
+
/** Active checkout root, independently resolved through Git. */
|
|
87
|
+
projectRoot: string;
|
|
88
|
+
/** Git common directory, for attribution across linked checkouts. */
|
|
89
|
+
gitCommonDir: string;
|
|
90
|
+
/** Triggering adapter. */
|
|
91
|
+
source: HookSource;
|
|
92
|
+
/** Canonical event name. */
|
|
93
|
+
event: string;
|
|
94
|
+
/** Optional remote name and URL/path as Git supplies them. */
|
|
95
|
+
remote?: {
|
|
96
|
+
name: string;
|
|
97
|
+
location: string;
|
|
98
|
+
};
|
|
99
|
+
/** All pushed ref updates in original order. */
|
|
100
|
+
refs?: HookRefUpdate[];
|
|
101
|
+
/** Agent tool input, passed only to the checker and never persisted. */
|
|
102
|
+
toolInput?: HookJsonValue;
|
|
103
|
+
/** Optional worktree lifecycle identity. */
|
|
104
|
+
worktree?: {
|
|
105
|
+
taskId: string;
|
|
106
|
+
path: string;
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
/** Structured checker verdict written as one JSON object on stdout. */
|
|
110
|
+
export declare const ProjectHookVerdictSchema: z.ZodObject<{
|
|
111
|
+
status: z.ZodEnum<{
|
|
112
|
+
pass: "pass";
|
|
113
|
+
warn: "warn";
|
|
114
|
+
skip: "skip";
|
|
115
|
+
block: "block";
|
|
116
|
+
"checker-error": "checker-error";
|
|
117
|
+
}>;
|
|
118
|
+
message: z.ZodOptional<z.ZodString>;
|
|
119
|
+
}, z.core.$strict>;
|
|
120
|
+
/** Project checker's portable stdout contract. */
|
|
121
|
+
export type ProjectHookVerdict = z.infer<typeof ProjectHookVerdictSchema>;
|
|
122
|
+
/** Distinct executor result classes. */
|
|
123
|
+
export type HookOutcomeStatus = ProjectHookVerdict['status'] | 'timeout' | 'infrastructure-error';
|
|
124
|
+
/** Sanitized result: arbitrary child output and inputs are deliberately absent. */
|
|
125
|
+
export interface HookOutcome {
|
|
126
|
+
/** Project check ID, or CLEO infrastructure attribution. */
|
|
127
|
+
id: string;
|
|
128
|
+
/** Observed classification. */
|
|
129
|
+
status: HookOutcomeStatus;
|
|
130
|
+
/** Whether this adapter must prevent the operation. */
|
|
131
|
+
blocks: boolean;
|
|
132
|
+
/** Safe executor diagnostic code; child messages are not retained. */
|
|
133
|
+
code: string;
|
|
134
|
+
/** Project diagnostic for the current caller only; excluded from stored receipts. */
|
|
135
|
+
message?: string;
|
|
136
|
+
/** Child exit code; null when no normal exit occurred. */
|
|
137
|
+
exitCode: number | null;
|
|
138
|
+
/** Terminating signal, when present. */
|
|
139
|
+
signal: string | null;
|
|
140
|
+
/** Elapsed execution time in milliseconds. */
|
|
141
|
+
durationMs: number;
|
|
142
|
+
}
|
|
143
|
+
/** Dependency-injection port; worktree consumes this without importing core. */
|
|
144
|
+
export interface HookExecutor {
|
|
145
|
+
/** Execute all matching activated definitions in manifest order. */
|
|
146
|
+
execute(invocation: HookInvocation): Promise<HookOutcome[]>;
|
|
147
|
+
}
|
|
148
|
+
/** Content hashes approved explicitly on this machine. */
|
|
149
|
+
export declare const HookActivationSchema: z.ZodObject<{
|
|
150
|
+
schemaVersion: z.ZodLiteral<1>;
|
|
151
|
+
projectRoot: z.ZodString;
|
|
152
|
+
projectIdentity: z.ZodString;
|
|
153
|
+
manifestHash: z.ZodString;
|
|
154
|
+
files: z.ZodRecord<z.ZodString, z.ZodString>;
|
|
155
|
+
executables: z.ZodRecord<z.ZodString, z.ZodString>;
|
|
156
|
+
activatedAt: z.ZodString;
|
|
157
|
+
}, z.core.$strict>;
|
|
158
|
+
/** Activation record is local, excluded from Git and never replicated. */
|
|
159
|
+
export type HookActivation = z.infer<typeof HookActivationSchema>;
|
|
160
|
+
/** Local feature state; activation never confers native harness trust. */
|
|
161
|
+
export declare const ProjectHooksLocalStateSchema: z.ZodObject<{
|
|
162
|
+
hooks: z.ZodObject<{
|
|
163
|
+
project: z.ZodObject<{
|
|
164
|
+
enabled: z.ZodBoolean;
|
|
165
|
+
}, z.core.$strict>;
|
|
166
|
+
}, z.core.$strict>;
|
|
167
|
+
activation: z.ZodOptional<z.ZodObject<{
|
|
168
|
+
schemaVersion: z.ZodLiteral<1>;
|
|
169
|
+
projectRoot: z.ZodString;
|
|
170
|
+
projectIdentity: z.ZodString;
|
|
171
|
+
manifestHash: z.ZodString;
|
|
172
|
+
files: z.ZodRecord<z.ZodString, z.ZodString>;
|
|
173
|
+
executables: z.ZodRecord<z.ZodString, z.ZodString>;
|
|
174
|
+
activatedAt: z.ZodString;
|
|
175
|
+
}, z.core.$strict>>;
|
|
176
|
+
}, z.core.$strict>;
|
|
177
|
+
/** Local activation settings stored independently of tracked project configuration. */
|
|
178
|
+
export type ProjectHooksLocalState = z.infer<typeof ProjectHooksLocalStateSchema>;
|
|
179
|
+
/** Bounded last execution metadata; contains no input or arbitrary output. */
|
|
180
|
+
export interface HookExecutionReceipt {
|
|
181
|
+
/** Receipt format version. */
|
|
182
|
+
schemaVersion: 1;
|
|
183
|
+
/** Activated source digest. */
|
|
184
|
+
manifestHash: string;
|
|
185
|
+
/** Invocation origin. */
|
|
186
|
+
source: HookSource;
|
|
187
|
+
/** Event without payload. */
|
|
188
|
+
event: string;
|
|
189
|
+
/** Completion timestamp. */
|
|
190
|
+
recordedAt: string;
|
|
191
|
+
/** Sanitized outcomes. */
|
|
192
|
+
outcomes: HookOutcome[];
|
|
193
|
+
}
|
|
194
|
+
/** Validator for sanitized execution records, rejecting unexpected payload fields. */
|
|
195
|
+
export declare const HookExecutionReceiptSchema: z.ZodObject<{
|
|
196
|
+
schemaVersion: z.ZodLiteral<1>;
|
|
197
|
+
manifestHash: z.ZodString;
|
|
198
|
+
source: z.ZodEnum<{
|
|
199
|
+
direct: "direct";
|
|
200
|
+
ci: "ci";
|
|
201
|
+
worktree: "worktree";
|
|
202
|
+
agent: "agent";
|
|
203
|
+
git: "git";
|
|
204
|
+
}>;
|
|
205
|
+
event: z.ZodString;
|
|
206
|
+
recordedAt: z.ZodString;
|
|
207
|
+
outcomes: z.ZodArray<z.ZodObject<{
|
|
208
|
+
id: z.ZodString;
|
|
209
|
+
status: z.ZodEnum<{
|
|
210
|
+
pass: "pass";
|
|
211
|
+
warn: "warn";
|
|
212
|
+
skip: "skip";
|
|
213
|
+
block: "block";
|
|
214
|
+
timeout: "timeout";
|
|
215
|
+
"checker-error": "checker-error";
|
|
216
|
+
"infrastructure-error": "infrastructure-error";
|
|
217
|
+
}>;
|
|
218
|
+
blocks: z.ZodBoolean;
|
|
219
|
+
code: z.ZodString;
|
|
220
|
+
exitCode: z.ZodNullable<z.ZodNumber>;
|
|
221
|
+
signal: z.ZodNullable<z.ZodString>;
|
|
222
|
+
durationMs: z.ZodNumber;
|
|
223
|
+
}, z.core.$strict>>;
|
|
224
|
+
}, z.core.$strict>;
|
|
225
|
+
/** Checkout identity and machine-local receipt paths resolved by Git. */
|
|
226
|
+
export interface ProjectHookContext {
|
|
227
|
+
/** Active checkout root. */
|
|
228
|
+
projectRoot: string;
|
|
229
|
+
/** Common Git directory. */
|
|
230
|
+
gitCommonDir: string;
|
|
231
|
+
/** Effective Git hook directory. */
|
|
232
|
+
hooksDir: string;
|
|
233
|
+
/** Per-checkout Git-private CLEO state directory. */
|
|
234
|
+
stateDir: string;
|
|
235
|
+
}
|
|
236
|
+
/** Resolved handler attribution without executing project code. */
|
|
237
|
+
export interface ProjectHookResolution {
|
|
238
|
+
/** Project-owned definition identity. */
|
|
239
|
+
id: string;
|
|
240
|
+
/** Declared policy owner, separate from installer provenance. */
|
|
241
|
+
owner: 'project';
|
|
242
|
+
/** Manifest source path. */
|
|
243
|
+
sourceDefinition: string;
|
|
244
|
+
/** Whether Git currently tracks the manifest. */
|
|
245
|
+
sourceTracked: boolean;
|
|
246
|
+
/** Canonical handler path when it can be resolved safely. */
|
|
247
|
+
handlerPath?: string;
|
|
248
|
+
/** Canonical executable path when available. */
|
|
249
|
+
executablePath?: string;
|
|
250
|
+
/** Bounded diagnostic codes; contains no environment values. */
|
|
251
|
+
diagnostics: string[];
|
|
252
|
+
}
|
|
253
|
+
/** Read-only activation and ownership diagnostic. */
|
|
254
|
+
export interface ProjectHookInspection {
|
|
255
|
+
/** Git-resolved paths. */
|
|
256
|
+
context: ProjectHookContext;
|
|
257
|
+
/** Validated source definitions. */
|
|
258
|
+
manifest: ProjectHooksManifest;
|
|
259
|
+
/** Definition attribution and resolved executable paths. */
|
|
260
|
+
resolvedHooks: ProjectHookResolution[];
|
|
261
|
+
/** Machine-local opt-in flag. */
|
|
262
|
+
enabled: boolean;
|
|
263
|
+
/** Activation is absent, fresh or drifted; `unreleased` while this build has not released hooks-v1 (T13557), whatever the receipt says. */
|
|
264
|
+
activation: 'disabled' | 'missing' | 'active' | 'drifted' | 'unreleased';
|
|
265
|
+
/** Safe assessment codes. */
|
|
266
|
+
diagnostics: string[];
|
|
267
|
+
/** Native harness trust cannot be inferred from files on disk. */
|
|
268
|
+
nativeTrust: 'unverified';
|
|
269
|
+
/** Native project trust is independent of CLEO activation. */
|
|
270
|
+
nativeProjectTrust: 'unverified';
|
|
271
|
+
/** Exact native hook-definition trust is independent of project trust. */
|
|
272
|
+
nativeHookTrust: 'unverified';
|
|
273
|
+
/** Last bounded execution record when valid. */
|
|
274
|
+
lastExecution?: HookExecutionReceipt;
|
|
275
|
+
}
|
|
276
|
+
//# sourceMappingURL=project-hooks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project-hooks.d.ts","sourceRoot":"","sources":["../src/project-hooks.ts"],"names":[],"mappings":"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"}
|