@openge/forge-release-vercel 0.3.0 → 0.3.2
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 +2 -0
- package/dist/node/execution.d.ts +4 -1
- package/dist/node/execution.d.ts.map +1 -1
- package/dist/node/execution.js +8 -4
- package/dist/node/execution.js.map +1 -1
- package/dist/node/git.d.ts.map +1 -1
- package/dist/node/git.js +46 -5
- package/dist/node/git.js.map +1 -1
- package/dist/node/managed-checkout.d.ts.map +1 -1
- package/dist/node/managed-checkout.js +9 -7
- package/dist/node/managed-checkout.js.map +1 -1
- package/dist/node/managed-closure.d.ts +2 -0
- package/dist/node/managed-closure.d.ts.map +1 -1
- package/dist/node/managed-closure.js +15 -0
- package/dist/node/managed-closure.js.map +1 -1
- package/dist/node/managed-disposition.d.ts.map +1 -1
- package/dist/node/managed-disposition.js +2 -0
- package/dist/node/managed-disposition.js.map +1 -1
- package/dist/node/managed-execution.d.ts +5 -0
- package/dist/node/managed-execution.d.ts.map +1 -0
- package/dist/node/managed-execution.js +6 -0
- package/dist/node/managed-execution.js.map +1 -0
- package/dist/node/managed-observation.d.ts +7 -0
- package/dist/node/managed-observation.d.ts.map +1 -0
- package/dist/node/managed-observation.js +27 -0
- package/dist/node/managed-observation.js.map +1 -0
- package/dist/node/managed-paths.d.ts.map +1 -1
- package/dist/node/managed-paths.js +13 -36
- package/dist/node/managed-paths.js.map +1 -1
- package/dist/node/managed-process.d.ts.map +1 -1
- package/dist/node/managed-process.js +192 -82
- package/dist/node/managed-process.js.map +1 -1
- package/dist/node/managed-recovery-lock.js +2 -2
- package/dist/node/managed-recovery-lock.js.map +1 -1
- package/dist/node/managed-recovery.d.ts.map +1 -1
- package/dist/node/managed-recovery.js +9 -7
- package/dist/node/managed-recovery.js.map +1 -1
- package/dist/node/managed-release.d.ts.map +1 -1
- package/dist/node/managed-release.js +4 -3
- package/dist/node/managed-release.js.map +1 -1
- package/dist/node/managed-retirement.d.ts.map +1 -1
- package/dist/node/managed-retirement.js +4 -3
- package/dist/node/managed-retirement.js.map +1 -1
- package/dist/node/managed-state.d.ts +1 -1
- package/dist/node/managed-state.d.ts.map +1 -1
- package/dist/node/managed-state.js +26 -2
- package/dist/node/managed-state.js.map +1 -1
- package/dist/node/managed-terminal.d.ts.map +1 -1
- package/dist/node/managed-terminal.js +6 -2
- package/dist/node/managed-terminal.js.map +1 -1
- package/dist/node/process-identities.d.ts.map +1 -1
- package/dist/node/process-identities.js +2 -2
- package/dist/node/process-identities.js.map +1 -1
- package/dist/node/release-context.d.ts +7 -0
- package/dist/node/release-context.d.ts.map +1 -1
- package/package.json +4 -4
package/README.md
CHANGED
|
@@ -52,6 +52,8 @@ The default file is `release.config.json`, relative to `--cwd` (default: the cur
|
|
|
52
52
|
|
|
53
53
|
Both command arrays contain 1–32 entries. Each entry accepts only `command`, optional `args` (up to 128 arguments), and optional `timeoutMs`. Times are positive safe integers: commands and deployment waits are capped at one hour, requests at five minutes, and `pollMs` cannot exceed `deploymentMs`. Command-specific timeouts are capped by `commandMs`. Output is bounded per stream to `maxOutputBytes` (at most 1 MiB); configured job output may be truncated, while truncated Git/API protocol output fails closed. Add `.tmp/` to the consuming repository's ignore rules.
|
|
54
54
|
|
|
55
|
+
Process identity observation for both managed commands and read-only management checks has a maximum ten-second budget, capped by `commandMs`. The command's own timeout continues to cover observation and execution together. Identity failure and cancellation still stop the command; they do not trigger an automatic retry.
|
|
56
|
+
|
|
55
57
|
Prepare/check/acceptance commands receive protected `FORGE_RELEASE_COMMAND=check|publish|verify` and `FORGE_RELEASE_SHA`; acceptance also receives `FORGE_RELEASE_URL` and `FORGE_RELEASE_DEPLOYMENT_ID`. Inherited values cannot override this metadata. It describes intent, not business authorization. Consumers own business assertions and any idempotent remote preparation. The build marker must be deployed from source and contain the full SHA; do not fabricate it during verification.
|
|
56
58
|
|
|
57
59
|
## Managed commit mode
|
package/dist/node/execution.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
import type { ProcessIdentityReader } from '@openge/forge-process-control';
|
|
1
2
|
import type { ReleaseCheck, ReleaseConfig, ReleaseErrorCode, ReleaseStep } from '../contracts.js';
|
|
2
3
|
import type { ExecutionLifecycle } from './release-context.js';
|
|
4
|
+
export declare const foregroundGitArguments: string[];
|
|
3
5
|
export declare function resolveInvocation(command: string, args: readonly string[]): {
|
|
4
6
|
command: string;
|
|
5
7
|
args: readonly string[];
|
|
@@ -15,7 +17,8 @@ export declare class Execution {
|
|
|
15
17
|
readonly steps: ReleaseStep[];
|
|
16
18
|
private readonly lifecycle?;
|
|
17
19
|
private readonly runner;
|
|
18
|
-
|
|
20
|
+
observeCheckout<T>(operation: () => Promise<T>): Promise<T>;
|
|
21
|
+
constructor(cwd: string, config: Pick<ReleaseConfig, 'limits'>, signal: AbortSignal | undefined, steps: ReleaseStep[], lifecycle?: ExecutionLifecycle | undefined, selectedReader?: ProcessIdentityReader);
|
|
19
22
|
run(name: string, check: ReleaseCheck, errorCode: ReleaseErrorCode, values?: Readonly<Record<string, string>>, signal?: AbortSignal | undefined, captureStep?: boolean, onOutput?: (text: string) => void): Promise<string>;
|
|
20
23
|
git(args: readonly string[]): Promise<string>;
|
|
21
24
|
streamGit(args: readonly string[], onChunk: (chunk: Uint8Array) => void, allowedExitCodes?: readonly number[]): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execution.d.ts","sourceRoot":"","sources":["../../src/node/execution.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"execution.d.ts","sourceRoot":"","sources":["../../src/node/execution.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAE3E,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAGlG,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAI/D,eAAO,MAAM,sBAAsB,UAAsE,CAAC;AAE1G,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,CAmBxH;AACD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,CAGtG;AACD,qBAAa,SAAS;IAKR,QAAQ,CAAC,GAAG,EAAE,MAAM;IAAE,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC;IAAE,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS;IACxH,QAAQ,CAAC,KAAK,EAAE,WAAW,EAAE;IAAE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;IAL5D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA6C;IACpE,eAAe,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;gBAGtC,GAAG,EAAE,MAAM,EAAW,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,EAAW,MAAM,EAAE,WAAW,GAAG,SAAS,EAC/G,KAAK,EAAE,WAAW,EAAE,EAAmB,SAAS,CAAC,EAAE,kBAAkB,YAAA,EAAE,cAAc,CAAC,EAAE,qBAAqB;IAiBlH,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EACjH,MAAM,0BAAc,EAAE,WAAW,UAAO,EAAE,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC;IA+B/F,GAAG,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAGvC,SAAS,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,EAAE,gBAAgB,GAAE,SAAS,MAAM,EAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;CAmBzI"}
|
package/dist/node/execution.js
CHANGED
|
@@ -7,7 +7,7 @@ import { assertActive, redact, ReleaseError } from './errors.js';
|
|
|
7
7
|
import { LiveOutput } from './live-output.js';
|
|
8
8
|
import { managedOwnedScopeProvider } from './owned-command-runner.js';
|
|
9
9
|
// 自动维护也属于本次 Git 命令;通过单次配置保持前台,不修改宿主或仓库设置。
|
|
10
|
-
const foregroundGitArguments = ['-c', 'maintenance.autoDetach=false', '-c', 'gc.autoDetach=false'];
|
|
10
|
+
export const foregroundGitArguments = ['-c', 'maintenance.autoDetach=false', '-c', 'gc.autoDetach=false'];
|
|
11
11
|
export function resolveInvocation(command, args) {
|
|
12
12
|
if (command === 'node')
|
|
13
13
|
return { command: process.execPath, args };
|
|
@@ -45,14 +45,17 @@ export class Execution {
|
|
|
45
45
|
steps;
|
|
46
46
|
lifecycle;
|
|
47
47
|
runner;
|
|
48
|
-
|
|
48
|
+
observeCheckout(operation) {
|
|
49
|
+
return this.lifecycle?.observeCheckout ? this.lifecycle.observeCheckout(operation) : operation();
|
|
50
|
+
}
|
|
51
|
+
constructor(cwd, config, signal, steps, lifecycle, selectedReader) {
|
|
49
52
|
this.cwd = cwd;
|
|
50
53
|
this.config = config;
|
|
51
54
|
this.signal = signal;
|
|
52
55
|
this.steps = steps;
|
|
53
56
|
this.lifecycle = lifecycle;
|
|
54
57
|
const control = process.platform === 'win32' ? createWindowsProcessControl({ listenerBackend: 'netstat' }) : createPosixProcessControl({ listenerBackend: 'lsof' });
|
|
55
|
-
const reader = process.platform === 'win32' ? createWindowsProcessIdentityReader() : createPosixProcessIdentityReader();
|
|
58
|
+
const reader = selectedReader ?? (process.platform === 'win32' ? createWindowsProcessIdentityReader() : createPosixProcessIdentityReader());
|
|
56
59
|
this.runner = createNodeCommandRunner({ platform: process.platform === 'win32' ? 'win32' : 'posix',
|
|
57
60
|
...(lifecycle ? { ownedScopeProvider: managedOwnedScopeProvider() } : {}),
|
|
58
61
|
processControl: { ...control, listProcesses: async (request) => {
|
|
@@ -64,7 +67,8 @@ export class Execution {
|
|
|
64
67
|
return control.listProcesses(request);
|
|
65
68
|
} },
|
|
66
69
|
terminationPolicy: { mode: 'force' }, terminationTimeoutMs: 5000,
|
|
67
|
-
|
|
70
|
+
// 管理检查同样需要宿主身份观测;统一启动预算,但不得超过原有总命令时限。
|
|
71
|
+
identityAcquisition: { timeoutMs: Math.min(10_000, config.limits.commandMs), pollIntervalMs: 20 } });
|
|
68
72
|
}
|
|
69
73
|
async run(name, check, errorCode, values, signal = this.signal, captureStep = true, onOutput) {
|
|
70
74
|
assertActive(signal);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execution.js","sourceRoot":"","sources":["../../src/node/execution.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAC/D,OAAO,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;
|
|
1
|
+
{"version":3,"file":"execution.js","sourceRoot":"","sources":["../../src/node/execution.ts"],"names":[],"mappings":"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"}
|
package/dist/node/git.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../src/node/git.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAErD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../src/node/git.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAErD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAGhD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAYtE;AACD,wBAAsB,gBAAgB,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAiBjG;AACD,wBAAsB,eAAe,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAkChH;AACD,wBAAsB,UAAU,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAU7G;AACD,wBAAsB,yBAAyB,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAYzI"}
|
package/dist/node/git.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { isAbsolute, resolve } from 'node:path';
|
|
2
2
|
import { fileURLToPath } from 'node:url';
|
|
3
|
-
import { ReleaseError } from './errors.js';
|
|
3
|
+
import { redact, ReleaseError } from './errors.js';
|
|
4
|
+
import { gitRecords } from './git-stream.js';
|
|
4
5
|
export function normalizeRepository(value, cwd) {
|
|
5
6
|
const input = value.trim().replaceAll('\\', '/').replace(/\/$/u, '');
|
|
6
7
|
if (isAbsolute(input) || input.startsWith('./') || input.startsWith('../'))
|
|
@@ -39,12 +40,52 @@ export async function assertRepository(execution, config) {
|
|
|
39
40
|
}
|
|
40
41
|
}
|
|
41
42
|
export async function assertCandidate(execution, config, sha) {
|
|
42
|
-
|
|
43
|
+
// 同一次受管 status 读取分支、HEAD 与工作树,减少重复授权/持久化,不跨检查缓存。
|
|
44
|
+
let branch, head, dirty = '';
|
|
45
|
+
const invalid = () => new ReleaseError('GIT_FAILED', { reason: 'STATUS_PROTOCOL' });
|
|
46
|
+
try {
|
|
47
|
+
// 元数据增量解析沿用有界 NUL 协议,不能占用应用输出捕获预算而误拒绝长分支。
|
|
48
|
+
await gitRecords(execution, ['status', '--porcelain=v2', '--branch', '--no-ahead-behind', '-z', '--untracked-files=all'], entry => {
|
|
49
|
+
if (entry === '')
|
|
50
|
+
throw invalid();
|
|
51
|
+
// rename 的第二条 NUL 记录是路径,可能恰似 header;已知脏状态后不再解释路径为头部。
|
|
52
|
+
if (dirty !== '')
|
|
53
|
+
return;
|
|
54
|
+
if (entry.startsWith('# branch.oid ')) {
|
|
55
|
+
if (head !== undefined)
|
|
56
|
+
throw invalid();
|
|
57
|
+
head = entry.slice('# branch.oid '.length);
|
|
58
|
+
}
|
|
59
|
+
else if (entry.startsWith('# branch.head ')) {
|
|
60
|
+
if (branch !== undefined)
|
|
61
|
+
throw invalid();
|
|
62
|
+
branch = entry.slice('# branch.head '.length);
|
|
63
|
+
}
|
|
64
|
+
else if (!entry.startsWith('# ')) {
|
|
65
|
+
if (!/^(?:1 |2 |u |\? )/u.test(entry))
|
|
66
|
+
throw invalid();
|
|
67
|
+
dirty = entry;
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
catch (error) {
|
|
72
|
+
if (error instanceof ReleaseError) {
|
|
73
|
+
const reason = error.details.reason;
|
|
74
|
+
if (error.code === 'SOURCE_UNSUPPORTED' && typeof reason === 'string'
|
|
75
|
+
&& ['TREE_LIMIT', 'TREE_RECORD_LIMIT', 'INCOMPLETE_GIT_RECORD', 'INVALID_UTF8'].includes(reason)) {
|
|
76
|
+
throw new ReleaseError('GIT_FAILED', { reason: 'STATUS_PROTOCOL', protocolReason: reason });
|
|
77
|
+
}
|
|
78
|
+
if (error.code === 'GIT_FAILED' && error.details.termination === 'timeout')
|
|
79
|
+
throw new ReleaseError('COMMAND_TIMEOUT', { step: 'git' });
|
|
80
|
+
}
|
|
81
|
+
throw error;
|
|
82
|
+
}
|
|
83
|
+
if (!branch || !head || !/^[a-f0-9]{40}$/u.test(head))
|
|
84
|
+
throw invalid();
|
|
85
|
+
if (branch !== config.git.developmentBranch)
|
|
43
86
|
throw new ReleaseError('GIT_BRANCH');
|
|
44
|
-
const head = await execution.git(['rev-parse', 'HEAD']);
|
|
45
|
-
const dirty = await execution.git(['status', '--porcelain=v1', '--untracked-files=all']);
|
|
46
87
|
if (sha !== undefined && (head !== sha || dirty !== ''))
|
|
47
|
-
throw new ReleaseError('CANDIDATE_CHANGED', { reason: head !== sha ? 'HEAD_CHANGED' : 'WORKTREE_CHANGED', head, dirty });
|
|
88
|
+
throw new ReleaseError('CANDIDATE_CHANGED', { reason: head !== sha ? 'HEAD_CHANGED' : 'WORKTREE_CHANGED', head, dirty: redact(dirty) });
|
|
48
89
|
if (dirty !== '')
|
|
49
90
|
throw new ReleaseError('GIT_DIRTY');
|
|
50
91
|
return head;
|
package/dist/node/git.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/node/git.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/node/git.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"managed-checkout.d.ts","sourceRoot":"","sources":["../../src/node/managed-checkout.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAS3D,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"managed-checkout.d.ts","sourceRoot":"","sources":["../../src/node/managed-checkout.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAS3D,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAQjF;AACD,wBAAsB,eAAe,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CA+B5E;AACD,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAoB/E"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { readFile } from 'node:fs/promises';
|
|
2
2
|
import { resolve } from 'node:path';
|
|
3
|
-
import {
|
|
3
|
+
import { createManagedExecution } from './managed-execution.js';
|
|
4
4
|
import { assertCandidate, assertRepository } from './git.js';
|
|
5
5
|
import { assertSourceFrozen, readCommittedConfig } from './source.js';
|
|
6
6
|
import { assertManagedPaths } from './managed-paths.js';
|
|
@@ -11,15 +11,17 @@ export async function assertCheckoutFrozen(session) {
|
|
|
11
11
|
const { slot, execution } = session;
|
|
12
12
|
await assertManagedPaths(slot.paths);
|
|
13
13
|
await slot.lock.assertOwned();
|
|
14
|
-
await
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
14
|
+
await execution.observeCheckout(async () => {
|
|
15
|
+
await assertRepository(execution, slot.source.config);
|
|
16
|
+
await assertCandidate(execution, slot.source.config, slot.source.sha);
|
|
17
|
+
const committed = await readCommittedConfig(execution, slot.source.sha, slot.source.configPath);
|
|
18
|
+
if (committed.oid !== slot.source.configBlobOid || !(await readFile(resolve(slot.paths.checkoutRoot, slot.source.configPath))).equals(committed.bytes))
|
|
19
|
+
throw new ReleaseError('CANDIDATE_CHANGED', { reason: 'CHECKOUT_CONFIG' });
|
|
20
|
+
});
|
|
19
21
|
}
|
|
20
22
|
export async function prepareCheckout(session) {
|
|
21
23
|
const { slot, execution } = session, { source, paths } = slot;
|
|
22
|
-
const original =
|
|
24
|
+
const original = createManagedExecution(source.root, source.config, undefined, []);
|
|
23
25
|
session.state.stage = 'checkout';
|
|
24
26
|
await session.persist();
|
|
25
27
|
await assertSourceFrozen(source, original);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"managed-checkout.js","sourceRoot":"","sources":["../../src/node/managed-checkout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"managed-checkout.js","sourceRoot":"","sources":["../../src/node/managed-checkout.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,4 +3,6 @@ import type { ManagedCommand } from './release-context.js';
|
|
|
3
3
|
export declare function hasVerifiedManagedClosure(command: ManagedCommand): boolean;
|
|
4
4
|
/** 资源停止与正常关闭分别判断;受控终止不能升级历史命令结果。 */
|
|
5
5
|
export declare function hasVerifiedManagedStop(command: ManagedCommand): boolean;
|
|
6
|
+
/** 只供独立证明写入前核对内存事实;此判断本身不能用于释放或恢复槽。 */
|
|
7
|
+
export declare function hasObservationStopWitness(command: ManagedCommand): boolean;
|
|
6
8
|
//# sourceMappingURL=managed-closure.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"managed-closure.d.ts","sourceRoot":"","sources":["../../src/node/managed-closure.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D,yCAAyC;AACzC,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,
|
|
1
|
+
{"version":3,"file":"managed-closure.d.ts","sourceRoot":"","sources":["../../src/node/managed-closure.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D,yCAAyC;AACzC,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAU1E;AAED,oCAAoC;AACpC,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CASvE;AAED,uCAAuC;AACvC,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAO1E"}
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
/** 历史轮询见证保留可读;只有同一实例和绑定的 OS 关闭事实可以复用。 */
|
|
2
2
|
export function hasVerifiedManagedClosure(command) {
|
|
3
|
+
if (command.kind === 'checkout-observation')
|
|
4
|
+
return command.status === 'closed'
|
|
5
|
+
&& /^[a-f0-9]{64}$/u.test(command.terminalSha256 ?? '') && hasObservationStopWitness(command)
|
|
6
|
+
&& command.observations?.every(hasVerifiedManagedClosure) === true;
|
|
3
7
|
const closure = command.closure, owned = closure?.ownedScope;
|
|
4
8
|
return command.status === 'closed' && command.observationComplete && !!command.identity && !!command.scope && !!closure
|
|
5
9
|
&& closure.termination === 'exit' && closure.exitCode !== null && Number.isSafeInteger(closure.exitCode)
|
|
@@ -9,6 +13,8 @@ export function hasVerifiedManagedClosure(command) {
|
|
|
9
13
|
}
|
|
10
14
|
/** 资源停止与正常关闭分别判断;受控终止不能升级历史命令结果。 */
|
|
11
15
|
export function hasVerifiedManagedStop(command) {
|
|
16
|
+
if (command.kind === 'checkout-observation')
|
|
17
|
+
return /^[a-f0-9]{64}$/u.test(command.terminalSha256 ?? '') && hasObservationStopWitness(command);
|
|
12
18
|
if (hasVerifiedManagedClosure(command))
|
|
13
19
|
return true;
|
|
14
20
|
const closure = command.closure, owned = closure?.ownedScope;
|
|
@@ -18,4 +24,13 @@ export function hasVerifiedManagedStop(command) {
|
|
|
18
24
|
&& owned.scopeId === command.scope.scopeId && owned.binding === command.scope.binding
|
|
19
25
|
&& owned.rootIdentity?.pid === command.identity.pid && owned.rootIdentity.startToken === command.identity.startToken;
|
|
20
26
|
}
|
|
27
|
+
/** 只供独立证明写入前核对内存事实;此判断本身不能用于释放或恢复槽。 */
|
|
28
|
+
export function hasObservationStopWitness(command) {
|
|
29
|
+
return command.kind === 'checkout-observation' && ['closed', 'stopped'].includes(command.status)
|
|
30
|
+
&& command.observationComplete && command.identity === undefined && command.scope === undefined
|
|
31
|
+
&& command.pid === undefined && command.closure === undefined && command.descendants.length === 0
|
|
32
|
+
&& command.plan?.length === 5 && !!command.observations && command.observations.length <= 5
|
|
33
|
+
&& command.observations.every(item => item.kind === undefined && hasVerifiedManagedStop(item))
|
|
34
|
+
&& (command.status !== 'closed' || command.observations.every(hasVerifiedManagedClosure));
|
|
35
|
+
}
|
|
21
36
|
//# sourceMappingURL=managed-closure.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"managed-closure.js","sourceRoot":"","sources":["../../src/node/managed-closure.ts"],"names":[],"mappings":"AAEA,yCAAyC;AACzC,MAAM,UAAU,yBAAyB,CAAC,OAAuB;IAC/D,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,KAAK,GAAG,OAAO,EAAE,UAAU,CAAC;IAC7D,OAAO,OAAO,CAAC,MAAM,KAAK,QAAQ,IAAI,OAAO,CAAC,mBAAmB,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC,OAAO;WAClH,OAAO,CAAC,WAAW,KAAK,MAAM,IAAI,OAAO,CAAC,QAAQ,KAAK,IAAI,IAAI,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC;WACrG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,IAAI,KAAK,EAAE,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI;WAClI,KAAK,CAAC,OAAO,KAAK,OAAO,CAAC,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,KAAK,OAAO,CAAC,KAAK,CAAC,OAAO;WAClF,KAAK,CAAC,YAAY,CAAC,GAAG,KAAK,OAAO,CAAC,QAAQ,CAAC,GAAG,IAAI,KAAK,CAAC,YAAY,CAAC,UAAU,KAAK,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;AACxH,CAAC;AAED,oCAAoC;AACpC,MAAM,UAAU,sBAAsB,CAAC,OAAuB;IAC5D,IAAI,yBAAyB,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IACpD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,KAAK,GAAG,OAAO,EAAE,UAAU,CAAC;IAC7D,OAAO,OAAO,CAAC,MAAM,KAAK,SAAS,IAAI,OAAO,CAAC,mBAAmB,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC,OAAO;WACnH,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,oBAAoB,IAAI,EAAE,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;WACpH,KAAK,EAAE,MAAM,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,KAAK,YAAY,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI;WACpF,KAAK,CAAC,OAAO,KAAK,OAAO,CAAC,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,KAAK,OAAO,CAAC,KAAK,CAAC,OAAO;WAClF,KAAK,CAAC,YAAY,EAAE,GAAG,KAAK,OAAO,CAAC,QAAQ,CAAC,GAAG,IAAI,KAAK,CAAC,YAAY,CAAC,UAAU,KAAK,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;AACzH,CAAC"}
|
|
1
|
+
{"version":3,"file":"managed-closure.js","sourceRoot":"","sources":["../../src/node/managed-closure.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"managed-disposition.d.ts","sourceRoot":"","sources":["../../src/node/managed-disposition.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,0BAA0B,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACjF,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAGvE,OAAO,EAAgF,KAAK,YAAY,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"managed-disposition.d.ts","sourceRoot":"","sources":["../../src/node/managed-disposition.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,0BAA0B,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACjF,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAGvE,OAAO,EAAgF,KAAK,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAMxI,QAAA,MAAM,KAAK,GAAI,OAAO,YAAY;;;;;;;;CACyJ,CAAC;AAC5L,KAAK,KAAK,GAAG,MAAM,UAAU,CAAC,OAAO,KAAK,CAAC,CAAC;AAC5C,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,yBAAyB,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACrH,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC;IAC1D,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,CAAC,CAAC,CAAC;IAC7D,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;IAC/B,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC;IAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC7D,QAAQ,CAAC,WAAW,CAAC,EAAE,0BAA0B,CAAC;IAClD,QAAQ,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC;IACjC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AACD,eAAO,MAAM,eAAe,GAAI,OAAO,YAAY,EAAE,OAAO,MAAM,KAAG,MAA6D,CAAC;AACnI,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,kBAAkB,CAkC1E;AACD,wBAAsB,sBAAsB,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC,CAIxH;AACD,wBAAsB,yBAAyB,CAAC,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,kBAAkB,EAAE,WAAW,UAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAMpI;AACD,wBAAsB,qBAAqB,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,CAKtG;AACD,uCAAuC;AACvC,wBAAsB,yBAAyB,CAAC,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC,EAAE,0BAA0B,EAAE,QAAQ,UAAQ,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAsBhQ"}
|
|
@@ -4,6 +4,7 @@ import { record, ReleaseError } from './errors.js';
|
|
|
4
4
|
import { assertPathChain, atomicJson, readBoundedJson, readBoundedText } from './managed-io.js';
|
|
5
5
|
import { assertMetadataFile, assertMetadataPaths, inspectMetadataFile, metadataDigest } from './managed-metadata.js';
|
|
6
6
|
import { hasVerifiedManagedStop } from './managed-closure.js';
|
|
7
|
+
import { matchesObservationBinding } from './managed-observation.js';
|
|
7
8
|
import { parseManagedReceipt, parseManagedState, summarizeReport } from './managed-state.js';
|
|
8
9
|
const historyLimit = 8_388_608;
|
|
9
10
|
const names = (paths) => ({ state: paths.statePath, owner: paths.ownershipPath, anchor: paths.anchorPath,
|
|
@@ -43,6 +44,7 @@ export function parseManagedDisposition(value) {
|
|
|
43
44
|
if (index < original.processes.length - 1)
|
|
44
45
|
return JSON.stringify(command) === JSON.stringify(stopped);
|
|
45
46
|
return (command.scope === undefined || JSON.stringify(command.scope) === JSON.stringify(stopped.scope))
|
|
47
|
+
&& matchesObservationBinding(command, stopped)
|
|
46
48
|
&& (command.identity === undefined || JSON.stringify(command.identity) === JSON.stringify(stopped.identity))
|
|
47
49
|
&& (command.terminalSha256 === undefined || command.terminalSha256 === stopped.terminalSha256)
|
|
48
50
|
&& JSON.stringify(command.descendants) === JSON.stringify(stopped.descendants);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"managed-disposition.js","sourceRoot":"","sources":["../../src/node/managed-disposition.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"managed-disposition.js","sourceRoot":"","sources":["../../src/node/managed-disposition.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Execution } from './execution.js';
|
|
2
|
+
import type { ReleaseConfig, ReleaseStep } from '../contracts.js';
|
|
3
|
+
import type { ExecutionLifecycle } from './release-context.js';
|
|
4
|
+
export declare function createManagedExecution(cwd: string, config: Pick<ReleaseConfig, 'limits'>, signal: AbortSignal | undefined, steps: ReleaseStep[], lifecycle?: ExecutionLifecycle): Execution;
|
|
5
|
+
//# sourceMappingURL=managed-execution.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"managed-execution.d.ts","sourceRoot":"","sources":["../../src/node/managed-execution.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAClE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG/D,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,WAAW,GAAG,SAAS,EACxH,KAAK,EAAE,WAAW,EAAE,EAAE,SAAS,CAAC,EAAE,kBAAkB,GAAG,SAAS,CAEjE"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { Execution } from './execution.js';
|
|
2
|
+
import { identityReader } from './process-identities.js';
|
|
3
|
+
export function createManagedExecution(cwd, config, signal, steps, lifecycle) {
|
|
4
|
+
return new Execution(cwd, config, signal, steps, lifecycle, identityReader());
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=managed-execution.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"managed-execution.js","sourceRoot":"","sources":["../../src/node/managed-execution.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAG3C,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAEzD,MAAM,UAAU,sBAAsB,CAAC,GAAW,EAAE,MAAqC,EAAE,MAA+B,EACxH,KAAoB,EAAE,SAA8B;IACpD,OAAO,IAAI,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,CAAC;AAChF,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { FrozenSource, ManagedCommand, RecordedIdentity } from './release-context.js';
|
|
2
|
+
/** 仅固定 checkout 检查可声明此计划;逐条执行仍验证实际完整 argv。 */
|
|
3
|
+
export declare function checkoutObservationPlan(source: FrozenSource): NonNullable<ManagedCommand['plan']>;
|
|
4
|
+
/** 磁盘意图只能由同一有限计划的证明归并,旧批次及子项不能相互替代。 */
|
|
5
|
+
export declare function matchesObservationBinding(intent: ManagedCommand, proof: ManagedCommand): boolean;
|
|
6
|
+
export declare function managedCommandIdentities(command: ManagedCommand): RecordedIdentity[];
|
|
7
|
+
//# sourceMappingURL=managed-observation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"managed-observation.d.ts","sourceRoot":"","sources":["../../src/node/managed-observation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAE3F,8CAA8C;AAC9C,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,YAAY,GAAG,WAAW,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CASjG;AAED,uCAAuC;AACvC,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,cAAc,GAAG,OAAO,CAMhG;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,cAAc,GAAG,gBAAgB,EAAE,CAIpF"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/** 仅固定 checkout 检查可声明此计划;逐条执行仍验证实际完整 argv。 */
|
|
2
|
+
export function checkoutObservationPlan(source) {
|
|
3
|
+
const remote = source.config.git.remote.replaceAll('.', '\\.');
|
|
4
|
+
return [
|
|
5
|
+
{ name: 'git', args: ['rev-parse', '--show-toplevel'] },
|
|
6
|
+
{ name: 'git', args: ['config', '--get-regexp', `^remote\\.${remote}\\.(url|pushurl)$`] },
|
|
7
|
+
{ name: 'git-stream', args: ['status', '--porcelain=v2', '--branch', '--no-ahead-behind', '-z', '--untracked-files=all'] },
|
|
8
|
+
{ name: 'git', args: ['rev-parse', '--verify', '--quiet', `${source.sha}:${source.configPath}`] },
|
|
9
|
+
{ name: 'git-stream', args: ['cat-file', 'blob', source.configBlobOid] },
|
|
10
|
+
];
|
|
11
|
+
}
|
|
12
|
+
/** 磁盘意图只能由同一有限计划的证明归并,旧批次及子项不能相互替代。 */
|
|
13
|
+
export function matchesObservationBinding(intent, proof) {
|
|
14
|
+
if (intent.kind !== proof.kind)
|
|
15
|
+
return false;
|
|
16
|
+
if (intent.kind === undefined)
|
|
17
|
+
return true;
|
|
18
|
+
return JSON.stringify(intent.plan) === JSON.stringify(proof.plan)
|
|
19
|
+
&& !!intent.observations && !!proof.observations && intent.observations.length <= proof.observations.length
|
|
20
|
+
&& intent.observations.every((item, index) => JSON.stringify(item) === JSON.stringify(proof.observations?.[index]));
|
|
21
|
+
}
|
|
22
|
+
export function managedCommandIdentities(command) {
|
|
23
|
+
return command.kind === 'checkout-observation'
|
|
24
|
+
? (command.observations ?? []).flatMap(item => [...item.descendants, ...(item.identity ? [item.identity] : [])])
|
|
25
|
+
: [...command.descendants, ...(command.identity ? [command.identity] : [])];
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=managed-observation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"managed-observation.js","sourceRoot":"","sources":["../../src/node/managed-observation.ts"],"names":[],"mappings":"AAEA,8CAA8C;AAC9C,MAAM,UAAU,uBAAuB,CAAC,MAAoB;IAC1D,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC/D,OAAO;QACL,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,iBAAiB,CAAC,EAAE;QACvD,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,cAAc,EAAE,aAAa,MAAM,mBAAmB,CAAC,EAAE;QACzF,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,gBAAgB,EAAE,UAAU,EAAE,mBAAmB,EAAE,IAAI,EAAE,uBAAuB,CAAC,EAAE;QAC1H,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC,EAAE;QACjG,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,aAAa,CAAC,EAAE;KACzE,CAAC;AACJ,CAAC;AAED,uCAAuC;AACvC,MAAM,UAAU,yBAAyB,CAAC,MAAsB,EAAE,KAAqB;IACrF,IAAI,MAAM,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IAC7C,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IAC3C,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;WAC5D,CAAC,CAAC,MAAM,CAAC,YAAY,IAAI,CAAC,CAAC,KAAK,CAAC,YAAY,IAAI,MAAM,CAAC,YAAY,CAAC,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,MAAM;WACxG,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACxH,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,OAAuB;IAC9D,OAAO,OAAO,CAAC,IAAI,KAAK,sBAAsB;QAC5C,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAChH,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAChF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"managed-paths.d.ts","sourceRoot":"","sources":["../../src/node/managed-paths.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"managed-paths.d.ts","sourceRoot":"","sources":["../../src/node/managed-paths.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAG3C,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAapF,wBAAsB,yBAAyB,CAAC,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAgBzG;AAgBD,wBAAsB,mBAAmB,CAAC,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,CAe3G;AACD,wBAAsB,kBAAkB,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAY3E;AACD,wBAAsB,eAAe,CAAC,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,CAsDtG"}
|
|
@@ -2,6 +2,7 @@ import { randomUUID } from 'node:crypto';
|
|
|
2
2
|
import { lstat, mkdir, readdir, readFile, writeFile } from 'node:fs/promises';
|
|
3
3
|
import { dirname, relative, resolve } from 'node:path';
|
|
4
4
|
import { Execution } from './execution.js';
|
|
5
|
+
import { createManagedExecution } from './managed-execution.js';
|
|
5
6
|
import { record, ReleaseError } from './errors.js';
|
|
6
7
|
import { assertPathChain, fileIdentity, measureManagedUsage, pathExists, readBoundedJson, sameIdentity, within } from './managed-io.js';
|
|
7
8
|
import { gitBlob, gitRecords } from './git-stream.js';
|
|
@@ -18,43 +19,19 @@ export async function assertManagementUntracked(source, execution) {
|
|
|
18
19
|
assertNoGitContext();
|
|
19
20
|
if (source.config.source.mode !== 'managed-commit')
|
|
20
21
|
throw new ReleaseError('SOURCE_UNSUPPORTED');
|
|
22
|
+
const managementPaths = [source.config.source.slotPath, '.tmp/forge-vercel-release'];
|
|
23
|
+
const compare = (path) => process.platform === 'win32' ? path.toLowerCase() : path;
|
|
24
|
+
const protectedPaths = managementPaths.map(compare);
|
|
25
|
+
const roots = [...new Set(managementPaths.flatMap(path => path.split('/').slice(0, 1)))];
|
|
21
26
|
const pathspec = (path) => process.platform === 'win32' ? `:(icase,literal)${path}` : `:(literal)${path}`;
|
|
22
|
-
const managementPaths = [source.config.source.slotPath, '.tmp/forge-vercel-release'], paths = managementPaths.map(pathspec);
|
|
23
27
|
let tracked = false;
|
|
24
|
-
|
|
25
|
-
//
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
await gitRecords(execution, ['ls-tree', '-z', tree], record => {
|
|
32
|
-
const match = /^\d{6} (blob|tree|commit) ([a-f0-9]{40})\t([\s\S]+)$/u.exec(record);
|
|
33
|
-
if (!match?.[1] || !match[2] || !match[3])
|
|
34
|
-
throw new ReleaseError('SLOT_PATH', { reason: 'HEAD_TREE' });
|
|
35
|
-
values?.push({ type: match[1], oid: match[2], name: match[3] });
|
|
36
|
-
});
|
|
37
|
-
cache.set(tree, values);
|
|
38
|
-
}
|
|
39
|
-
return values;
|
|
40
|
-
};
|
|
41
|
-
for (const path of managementPaths) {
|
|
42
|
-
let trees = ['HEAD'];
|
|
43
|
-
const parts = path.split('/');
|
|
44
|
-
for (const [index, part] of parts.entries()) {
|
|
45
|
-
const next = [];
|
|
46
|
-
for (const tree of trees)
|
|
47
|
-
for (const entry of await entries(tree)) {
|
|
48
|
-
if ((process.platform === 'win32' ? entry.name.toLowerCase() : entry.name) !== (process.platform === 'win32' ? part.toLowerCase() : part))
|
|
49
|
-
continue;
|
|
50
|
-
if (index === parts.length - 1 || entry.type !== 'tree')
|
|
51
|
-
tracked = true;
|
|
52
|
-
else
|
|
53
|
-
next.push(entry.oid);
|
|
54
|
-
}
|
|
55
|
-
trees = next;
|
|
56
|
-
}
|
|
57
|
-
}
|
|
28
|
+
// HEAD 与索引取并集;包含祖先路径以捕获文件/gitlink 阻塞,逐条筛选而不误拒绝兄弟路径。
|
|
29
|
+
// 每次 guard 都重新查询,禁止跨检查缓存 HEAD 或索引;暂存删除不能隐藏 HEAD 中的受管路径。
|
|
30
|
+
await gitRecords(execution, ['ls-files', '--cached', '--with-tree=HEAD', '-z', '--', ...roots.map(pathspec)], value => {
|
|
31
|
+
const path = compare(value);
|
|
32
|
+
if (protectedPaths.some(target => path === target || path.startsWith(`${target}/`) || target.startsWith(`${path}/`)))
|
|
33
|
+
tracked = true;
|
|
34
|
+
});
|
|
58
35
|
if (tracked)
|
|
59
36
|
throw new ReleaseError('SLOT_PATH', { reason: 'TRACKED_MANAGEMENT_PATH' });
|
|
60
37
|
}
|
|
@@ -174,7 +151,7 @@ export async function openManagedSlot(source, execution) {
|
|
|
174
151
|
if (Buffer.byteLength(ownerJson) > 65_536 || usage.bytes + admissionBytes > budget.maxBytes || usage.freeBytes - admissionBytes < budget.minFreeBytes)
|
|
175
152
|
throw new ReleaseError('BUDGET_EXCEEDED', { reason: 'SLOT_ADMISSION' });
|
|
176
153
|
const rawLock = await acquireLock(paths.lockPath, { runId, identity: coordinator });
|
|
177
|
-
const management =
|
|
154
|
+
const management = createManagedExecution(source.root, source.config, undefined, []);
|
|
178
155
|
const assertOwned = async () => { await assertManagedPaths(paths); await assertManagementUntracked(source, management); await rawLock.assertOwned(); };
|
|
179
156
|
const lock = { assertOwned, release: async () => { await assertOwned(); await rawLock.release(); } };
|
|
180
157
|
try {
|