pi-codex-auto-review 0.1.0 → 0.1.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 CHANGED
@@ -1,17 +1,17 @@
1
1
  # pi-codex-auto-review
2
2
 
3
- Codex의 ‘Approve for me’에서 영감을 받은 Pi 자동 실행 승인 검토 확장입니다. Pi 도구 실행을 규칙과 현재 모델로 검토하고, 필요하면 사용자 승인을 요청합니다. Codex 공개 소스 [`rust-v0.160.0`](https://github.com/openai/codex/tree/a956835d020762cb2b570053af06f643a11c0ecc)의 실행 승인 동작을 참고한 독립 구현을 Pi 0.99.1의 공개 API와 운영체제 샌드박스에 연결했습니다. 설치·설정 방법은 [사용법](https://github.com/buYoung/pi-codex-auto-review/blob/HEAD/docs/usage.md) 문서에 있습니다.
3
+ Codex의 ‘Approve for me’에서 영감을 받은 Pi 자동 실행 승인 검토 확장입니다. Pi 도구 실행을 규칙과 현재 모델로 검토하고, 필요하면 사용자 승인을 요청합니다. Codex 공개 소스 [`rust-v0.160.0`](https://github.com/openai/codex/tree/a956835d020762cb2b570053af06f643a11c0ecc)의 실행 승인 동작을 참고한 독립 구현을 Pi 0.99.1·1.0.0의 공개 API와 운영체제 샌드박스에 연결했습니다. 설치·설정 방법은 [사용법](https://github.com/buYoung/pi-codex-auto-review/blob/HEAD/docs/usage.md) 문서에 있습니다.
4
4
 
5
5
  ## 설치
6
6
 
7
7
  npm에 게시된 버전은 Pi에서 설치합니다. 배포 패키지는 macOS ARM64와 Linux x64용 규칙 엔진을 포함하며, 설치할 때 Rust 빌드가 필요하지 않습니다.
8
8
 
9
9
  ```sh
10
- pi install npm:pi-codex-auto-review@0.1.0
10
+ pi install npm:pi-codex-auto-review@0.1.2
11
11
  pi list
12
12
  ```
13
13
 
14
- 확장 로딩 실패를 Pi가 무시할 수 있으므로 보호 시작이 필수인 실행은 [사용법](https://github.com/buYoung/pi-codex-auto-review/blob/HEAD/docs/usage.md)의 CLI·SDK 진입점을 사용합니다. npm 게시를 위한 빌드와 계정 작업은 [배포 안내](https://github.com/buYoung/pi-codex-auto-review/blob/HEAD/docs/publishing.md)에 있습니다.
14
+ 확장 로딩 실패를 Pi가 무시할 수 있으므로 보호 시작이 필수인 실행은 [사용법](https://github.com/buYoung/pi-codex-auto-review/blob/HEAD/docs/usage.md)의 CLI·SDK 진입점을 사용합니다. `pnpm release`의 버전 선택·Git 작업과 GitHub Actions의 자동 npm 게시 설정은 [배포 안내](https://github.com/buYoung/pi-codex-auto-review/blob/HEAD/docs/publishing.md)에 있습니다.
15
15
 
16
16
  ## 동작 흐름
17
17
 
@@ -25,7 +25,7 @@ pi list
25
25
  | 항목 | 요구 |
26
26
  | --- | --- |
27
27
  | Node.js | 22.19 이상 |
28
- | Pi | 0.99.1 (고정 버전) |
28
+ | Pi | 0.99.1 또는 1.0.0 |
29
29
  | Rust | 소스 빌드에만 1.95 이상 필요 |
30
30
  | 운영체제 | npm 배포 대상은 macOS ARM64와 Linux x64. Windows는 네이티브 격리를 지원하지 않습니다 |
31
31
 
@@ -67,7 +67,7 @@ npm run verify:guard
67
67
  ## 문서
68
68
 
69
69
  - [사용법](https://github.com/buYoung/pi-codex-auto-review/blob/HEAD/docs/usage.md) — 설치와 빌드, Pi 확장 등록, CLI·SDK, 정책 파일, 검증 활용
70
- - [배포 안내](https://github.com/buYoung/pi-codex-auto-review/blob/HEAD/docs/publishing.md) — 플랫폼별 패키지 준비와 수동 npm 게시
70
+ - [배포 안내](https://github.com/buYoung/pi-codex-auto-review/blob/HEAD/docs/publishing.md) — pnpm release, Trusted Publishing 설정과 GitHub Actions의 자동 npm 게시
71
71
  - [의존성 보안](https://github.com/buYoung/pi-codex-auto-review/blob/HEAD/docs/security/dependencies.md) — 높은 심각도 감사 항목의 적용 근거와 재생성 방법
72
72
  - [보호 경계 검증표](https://github.com/buYoung/pi-codex-auto-review/blob/HEAD/docs/testing/auto-review-protection.md) — 보호·허용·검토 실패·취소 사례와 검증하지 않은 범위
73
73
  - [인계 자료](https://github.com/buYoung/pi-codex-auto-review/tree/HEAD/docs/handoffs/auto-review) — 플랫폼·실모델 검증의 실행 근거와 소스 해시. 새 변경의 완료 여부는 이 기준으로 확인합니다.
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "platform": "darwin-arm64",
3
3
  "sourceDigest": "77a7cd21c340d5d5956164cc0ce32970097bc8f4180a2e373df56a1ff79b5088",
4
- "sha256": "c8dba8e1fa765135ff805a6c71707c706bfb193a6593552f334e256816942973"
4
+ "sha256": "660d7f76dec67a66b6e62d3e1c43fb01ae3e9b6912ff0b73645e0f87c22cd198"
5
5
  }
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "platform": "linux-x64",
3
3
  "sourceDigest": "77a7cd21c340d5d5956164cc0ce32970097bc8f4180a2e373df56a1ff79b5088",
4
- "sha256": "d969c9574db6c5c1c172b03bf440be0f3df9c96d0239159a71a78fecf9c4d958"
4
+ "sha256": "a08e8b8579986c6f0d17b6ef964e129ebf036df972b95a8510ea679802bfa1fb"
5
5
  }
@@ -0,0 +1,2 @@
1
+ /** Resolve the SDK supplied by Pi's extension loader, including global installs. */
2
+ export declare function getPiSDKEntryPath(): string;
@@ -0,0 +1,7 @@
1
+ import { resolve } from 'node:path';
2
+ import { getPackageDir } from '@earendil-works/pi-coding-agent';
3
+ /** Resolve the SDK supplied by Pi's extension loader, including global installs. */
4
+ export function getPiSDKEntryPath() {
5
+ return resolve(getPackageDir(), 'dist/index.js');
6
+ }
7
+ //# sourceMappingURL=pi-host.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pi-host.js","sourceRoot":"","sources":["../src/pi-host.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAEhE,oFAAoF;AACpF,MAAM,UAAU,iBAAiB;IAC/B,OAAO,OAAO,CAAC,aAAa,EAAE,EAAE,eAAe,CAAC,CAAC;AACnD,CAAC"}
@@ -2,6 +2,7 @@ import { spawn } from 'node:child_process';
2
2
  import { fileURLToPath } from 'node:url';
3
3
  import { StringDecoder } from 'node:string_decoder';
4
4
  import { randomUUID } from 'node:crypto';
5
+ import { isAbsolute } from 'node:path';
5
6
  import { SandboxManager } from '@anthropic-ai/sandbox-runtime';
6
7
  import { GuardError, validateWorkerFrame } from '../contracts.js';
7
8
  import { shellQuote, workloadEnvironment } from './config.js';
@@ -59,6 +60,9 @@ process.on('message', raw => {
59
60
  async function run({ commandId, config, job }) {
60
61
  if (!job || !['shell', 'tool', 'file'].includes(job.kind) || typeof job.cwd !== 'string')
61
62
  throw new GuardError('INVALID_IPC', 'Invalid workload');
63
+ const piSDKEntryPath = process.argv[2];
64
+ if (!piSDKEntryPath || !isAbsolute(piSDKEntryPath) || piSDKEntryPath.includes('\0'))
65
+ throw new GuardError('INVALID_IPC', 'Expected a trusted absolute Pi SDK entry');
62
66
  await SandboxManager.initialize(config, config.network.strictAllowlist === false ? async (destination) => {
63
67
  if (cancellation.signal.aborted || !process.connected || networkRequests.size >= 32)
64
68
  return false;
@@ -77,7 +81,7 @@ async function run({ commandId, config, job }) {
77
81
  const sockets = [SandboxManager.getLinuxHttpSocketPath(), SandboxManager.getLinuxSocksSocketPath()].filter((path) => !!path);
78
82
  SandboxManager.updateConfig({ ...config, filesystem: { ...config.filesystem, allowRead: [...(config.filesystem.allowRead ?? []), ...sockets] } });
79
83
  }
80
- const command = `${shellQuote(process.execPath)} ${shellQuote(fileURLToPath(new URL('./worker.js', import.meta.url)))}`;
84
+ const command = `${shellQuote(process.execPath)} ${shellQuote(fileURLToPath(new URL('./worker.js', import.meta.url)))} ${shellQuote(piSDKEntryPath)}`;
81
85
  const wrapped = await SandboxManager.wrapWithSandboxArgv(command, '/bin/bash', undefined, cancellation.signal, job.cwd, { commandId });
82
86
  cancellation.signal.throwIfAborted();
83
87
  if (!wrapped.argv.length || !wrapped.argv.some(arg => arg.includes('sandbox-exec') || arg.includes('bwrap')))
@@ -1 +1 @@
1
- {"version":3,"file":"broker.js","sourceRoot":"","sources":["../../src/sandbox/broker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"broker.js","sourceRoot":"","sources":["../../src/sandbox/broker.ts"],"names":[],"mappings":"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"}
@@ -2,4 +2,4 @@ import type { SandboxRuntimeConfig } from '@anthropic-ai/sandbox-runtime';
2
2
  import { type PermissionDelta, type PermissionProfile, type ExecutionAuthority } from '../contracts.js';
3
3
  export declare function shellQuote(text: string): string;
4
4
  export declare function workloadEnvironment(caller?: NodeJS.ProcessEnv, ambient?: NodeJS.ProcessEnv): NodeJS.ProcessEnv;
5
- export declare function nativeConfig(profile: PermissionProfile, delta: PermissionDelta, cwd: string, authority?: ExecutionAuthority): Promise<SandboxRuntimeConfig>;
5
+ export declare function nativeConfig(profile: PermissionProfile, delta: PermissionDelta, cwd: string, authority?: ExecutionAuthority, piSDKEntryPath?: string): Promise<SandboxRuntimeConfig>;
@@ -22,7 +22,7 @@ export function workloadEnvironment(caller = {}, ambient = process.env) {
22
22
  }
23
23
  return env;
24
24
  }
25
- export async function nativeConfig(profile, delta, cwd, authority) {
25
+ export async function nativeConfig(profile, delta, cwd, authority, piSDKEntryPath) {
26
26
  createProfile(profile);
27
27
  const resolved = { ...profile };
28
28
  for (const key of ['readRoots', 'writeRoots', 'denyRead', 'denyWrite'])
@@ -41,6 +41,7 @@ export async function nativeConfig(profile, delta, cwd, authority) {
41
41
  if (delta.domains.some(domain => !isNetworkHost(domain) || profile.deniedDomains.some(pattern => matchesDomain(domain, pattern))))
42
42
  throw new GuardError('HARD_DENY', 'Invalid or denied network domain');
43
43
  const isCommandAuthority = authority?.kind === 'command-rule' || authority?.kind === 'reviewed-command';
44
+ const hasFullRead = isCommandAuthority || profile.readRoots.includes('/');
44
45
  const baseProtected = await Promise.all((profile.readOnlyPaths ?? []).map(path => canonicalPath(path, cwd)));
45
46
  const lifted = baseProtected.filter(root => writes.some(path => isWithin(path, root)));
46
47
  // Removing a base metadata deny must not expose its siblings through the original workspace root.
@@ -51,8 +52,11 @@ export async function nativeConfig(profile, delta, cwd, authority) {
51
52
  const packageRoot = fileURLToPath(new URL('../../', import.meta.url));
52
53
  const nodeRoot = resolve(dirname(await realpath(process.execPath)), '..');
53
54
  const dependencyRoots = [];
54
- for (const name of ['@earendil-works/pi-coding-agent', '@anthropic-ai/sandbox-runtime']) {
55
- let current = dirname(await realpath(fileURLToPath(import.meta.resolve(name))));
55
+ for (const entry of [
56
+ piSDKEntryPath ?? fileURLToPath(import.meta.resolve('@earendil-works/pi-coding-agent')),
57
+ fileURLToPath(import.meta.resolve('@anthropic-ai/sandbox-runtime')),
58
+ ]) {
59
+ let current = dirname(await realpath(entry));
56
60
  let root = current;
57
61
  while (dirname(current) !== current) {
58
62
  if (basename(current) === 'node_modules' || basename(current) === '.pnpm')
@@ -61,14 +65,16 @@ export async function nativeConfig(profile, delta, cwd, authority) {
61
65
  }
62
66
  dependencyRoots.push(root);
63
67
  }
64
- const systemRead = ['/usr', '/bin', '/sbin', '/System', '/Library', '/opt/homebrew', '/private/etc', '/etc', '/dev', '/proc', '/sys', nodeRoot, packageRoot, ...dependencyRoots];
68
+ const systemRead = ['/usr', '/bin', '/sbin', '/System', '/Library', '/opt/homebrew', '/private/etc', '/etc', '/dev', '/proc', '/sys', nodeRoot];
69
+ const runtimeRead = [resolve(packageRoot, 'dist'), resolve(packageRoot, 'node_modules'), resolve(packageRoot, 'package.json'), ...dependencyRoots];
65
70
  const seccomp = seccompRuntime();
66
71
  const config = {
67
72
  ...(seccomp ? { seccomp: { applyPath: seccomp.applyPath } } : {}),
68
73
  filesystem: {
69
- // All user data starts unreadable; runtime/assets and the admitted roots are carve-outs.
70
- denyRead: ['/', ...profile.denyRead],
71
- allowRead: await linuxReadPaths([...systemRead, ...(isCommandAuthority ? ['/'] : profile.readRoots), ...reads, ...writes], writeRoots),
74
+ // A full-read profile needs only its explicit denies. Re-allowing "/" would
75
+ // make SRT's nested denies override runtime code installed inside the agent directory.
76
+ denyRead: [...(hasFullRead ? [] : ['/']), ...profile.denyRead],
77
+ allowRead: [...await linuxReadPaths([...systemRead, ...(hasFullRead ? [] : [...profile.readRoots, ...reads, ...writes])], writeRoots), ...runtimeRead],
72
78
  allowWrite: writeRoots,
73
79
  denyWrite: [...profile.denyWrite, ...profile.denyRead, ...unapprovedDefaults, ...(isCommandAuthority ? [] : baseProtected.filter(root => !lifted.includes(root))), ...dependencyRoots, resolve(packageRoot, 'dist'), resolve(packageRoot, 'node_modules'), resolve(packageRoot, 'package.json'), resolve(packageRoot, 'package-lock.json')],
74
80
  allowGitConfig: isCommandAuthority || writes.some(path => /[/\\]\.git(?:[/\\]config)?$/.test(path)),
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/sandbox/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/sandbox/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,32 @@
1
+ import { readFileSync, readdirSync } from 'node:fs';
2
+ import { join, sep } from 'node:path';
3
+ import { isWithin } from '../policy/paths.js';
4
+ // Internal metadata-only child. The parent supplies canonical, disjoint roots
5
+ // and owns cancellation, the time budget and the bounded output buffer.
6
+ const { roots, denied } = JSON.parse(readFileSync(0, 'utf8'));
7
+ const unlistable = [];
8
+ for (const root of roots) {
9
+ const exclusions = denied.filter(path => isWithin(path, root));
10
+ const pending = [root];
11
+ while (pending.length) {
12
+ const path = pending.pop();
13
+ if (exclusions.some(root => path === root || path.startsWith(root + sep)))
14
+ continue;
15
+ try {
16
+ for (const entry of readdirSync(path, { withFileTypes: true })) {
17
+ if (entry.isDirectory())
18
+ pending.push(join(path, entry.name));
19
+ }
20
+ }
21
+ catch (error) {
22
+ const code = error.code;
23
+ if (code === 'ENOENT' || code === 'ENOTDIR')
24
+ continue;
25
+ if (code !== 'EACCES' && code !== 'EPERM')
26
+ throw error;
27
+ unlistable.push(path);
28
+ }
29
+ }
30
+ }
31
+ process.stdout.write(JSON.stringify(unlistable));
32
+ //# sourceMappingURL=directory-scan.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"directory-scan.js","sourceRoot":"","sources":["../../src/sandbox/directory-scan.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,8EAA8E;AAC9E,wEAAwE;AACxE,MAAM,EAAC,KAAK,EAAC,MAAM,EAAC,GAAqC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,EAAC,MAAM,CAAC,CAAC,CAAC;AAC5F,MAAM,UAAU,GAAa,EAAE,CAAC;AAChC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;IACzB,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAC,IAAI,CAAC,CAAC,CAAC;IAC9D,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC;IACvB,OAAO,OAAO,CAAC,MAAM,EAAE,CAAC;QACtB,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,EAAG,CAAC;QAC5B,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC;YAAE,SAAS;QACpF,IAAI,CAAC;YACH,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,IAAI,EAAC,EAAC,aAAa,EAAC,IAAI,EAAC,CAAC,EAAE,CAAC;gBAC3D,IAAI,KAAK,CAAC,WAAW,EAAE;oBAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;YAC/D,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,GAAI,KAA+B,CAAC,IAAI,CAAC;YACnD,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,SAAS;gBAAE,SAAS;YACtD,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,OAAO;gBAAE,MAAM,KAAK,CAAC;YACvD,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;AACH,CAAC;AACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC"}
@@ -7,6 +7,7 @@ import { nativeConfig, workloadEnvironment } from './config.js';
7
7
  import { assertHardLinkBoundaries } from './hard-links.js';
8
8
  import { withSignal } from '../signals.js';
9
9
  import { matchesDomain, isNetworkHost, normalizeHost } from '../policy/domains.js';
10
+ import { getPiSDKEntryPath } from '../pi-host.js';
10
11
  export class NativeExecutor {
11
12
  transport;
12
13
  active = new Set();
@@ -33,7 +34,8 @@ export class NativeExecutor {
33
34
  const lifetime = new AbortController();
34
35
  const signal = AbortSignal.any([lifetime.signal, this.stop.signal, ...(options.signal ? [options.signal] : [])]);
35
36
  signal.throwIfAborted();
36
- const config = await nativeConfig(profile, delta, job.cwd, options.authority);
37
+ const piSDKEntryPath = getPiSDKEntryPath();
38
+ const config = await nativeConfig(profile, delta, job.cwd, options.authority, piSDKEntryPath);
37
39
  await assertHardLinkBoundaries(profile, delta, config, signal);
38
40
  if (options.onNetworkRequest)
39
41
  config.network.strictAllowlist = false;
@@ -43,7 +45,7 @@ export class NativeExecutor {
43
45
  if (!Number.isFinite(timeoutSeconds) || timeoutSeconds <= 0)
44
46
  throw new GuardError('INVALID_TIMEOUT', 'Execution timeout must be positive seconds');
45
47
  signal.throwIfAborted();
46
- const child = fork(fileURLToPath(new URL('./broker.js', import.meta.url)), [], {
48
+ const child = fork(fileURLToPath(new URL('./broker.js', import.meta.url)), [piSDKEntryPath], {
47
49
  execArgv: [], serialization: 'json', env: workloadEnvironment(), stdio: ['ignore', 'ignore', 'pipe', 'ipc'],
48
50
  });
49
51
  // Broker owns the workload process group and is never itself a workload child.
@@ -1 +1 @@
1
- {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../src/sandbox/executor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../src/sandbox/executor.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,13 @@
1
- import { access, lstat, readdir, realpath } from 'node:fs/promises';
1
+ import { access, lstat, realpath } from 'node:fs/promises';
2
2
  import { constants } from 'node:fs';
3
3
  import { execFile } from 'node:child_process';
4
4
  import { promisify } from 'node:util';
5
- import { join, parse } from 'node:path';
5
+ import { parse } from 'node:path';
6
+ import { fileURLToPath } from 'node:url';
6
7
  import { GuardError } from '../contracts.js';
7
8
  import { isWithin } from '../policy/paths.js';
8
9
  const MAX_SCAN_MS = 30000;
9
- const runFind = promisify(execFile);
10
+ const runScan = promisify(execFile);
10
11
  const isMissing = (error) => ['ENOENT', 'ENOTDIR'].includes(error.code ?? '');
11
12
  async function existingRoots(paths) {
12
13
  const values = [];
@@ -30,42 +31,42 @@ export async function assertHardLinkBoundaries(profile, delta, config, signal) {
30
31
  throw new GuardError('HARD_LINK_SCAN_LIMIT', 'The filesystem is too large to qualify hard-link boundaries safely');
31
32
  };
32
33
  const scanned = new Map();
34
+ const directoryScans = new Map();
33
35
  const opaqueDirectories = async (paths, exclusions) => {
34
- const pending = (await existingRoots(paths)).filter(root => root !== parse(root).root), denied = await existingRoots(exclusions), result = [], seen = new Set();
35
- while (pending.length) {
36
+ const denied = await existingRoots(exclusions);
37
+ const roots = (await existingRoots(paths)).filter(root => root !== parse(root).root && !denied.some(path => isWithin(root, path)));
38
+ if (!roots.length)
39
+ return [];
40
+ const prune = denied.filter(path => roots.some(root => isWithin(path, root)));
41
+ const key = JSON.stringify([roots.toSorted(), prune.toSorted()]);
42
+ if (directoryScans.has(key))
43
+ return directoryScans.get(key);
44
+ check();
45
+ // Synchronous directory I/O avoids a promise per directory. Keep it in an
46
+ // owned process so the shared deadline and caller cancellation stay effective.
47
+ const scan = runScan(process.execPath, [fileURLToPath(new URL('./directory-scan.js', import.meta.url))], { encoding: 'utf8', maxBuffer: 16 * 1024 * 1024, timeout: Math.max(1, deadlineMs - Date.now()), killSignal: 'SIGKILL', signal, env: {} });
48
+ scan.child.stdin.on('error', () => { });
49
+ scan.child.stdin.end(JSON.stringify({ roots, denied: prune }));
50
+ const { stdout } = await scan;
51
+ const unlistable = JSON.parse(stdout);
52
+ if (!Array.isArray(unlistable) || unlistable.some(path => typeof path !== 'string' || path.includes('\0') || !roots.some(root => isWithin(path, root))))
53
+ throw new GuardError('HARD_LINK_SCAN_FAILED', 'Invalid directory scan output');
54
+ const result = [];
55
+ for (const path of unlistable) {
36
56
  check();
37
- if (seen.size > 100000)
38
- throw new GuardError('HARD_LINK_SCAN_LIMIT', 'Directory metadata scope is too large to qualify safely');
39
- await Promise.all(pending.splice(-64).map(async (path) => {
40
- if (seen.has(path) || denied.some(root => isWithin(path, root)))
41
- return;
42
- seen.add(path);
43
- let entries;
44
- try {
45
- entries = await readdir(path, { withFileTypes: true });
46
- }
47
- catch (error) {
48
- if (isMissing(error))
49
- return;
50
- if (['EACCES', 'EPERM'].includes(error.code ?? '')) {
51
- const isSearchable = await access(path, constants.X_OK).then(() => true, error => { if (['EACCES', 'EPERM'].includes(error.code ?? ''))
52
- return false; throw error; });
53
- if (!isSearchable) {
54
- if (/[?*[\]{}]/.test(path))
55
- throw new GuardError('NATIVE_SCOPE_UNSUPPORTED', 'An opaque directory cannot be represented safely in the native profile');
56
- result.push(path);
57
- return;
58
- }
59
- }
60
- // An unlistable but searchable directory can still expose known filenames.
61
- throw error;
62
- }
63
- check();
64
- for (const entry of entries)
65
- if (entry.isDirectory())
66
- pending.push(join(path, entry.name));
67
- }));
57
+ const isSearchable = await access(path, constants.X_OK).then(() => true, error => {
58
+ if (['EACCES', 'EPERM'].includes(error.code ?? ''))
59
+ return false;
60
+ throw error;
61
+ });
62
+ // An unlistable but searchable directory can still expose known filenames.
63
+ if (isSearchable)
64
+ throw new GuardError('HARD_LINK_SCAN_FAILED', 'A searchable directory could not be inspected safely');
65
+ if (/[?*[\]{}]/.test(path))
66
+ throw new GuardError('NATIVE_SCOPE_UNSUPPORTED', 'An opaque directory cannot be represented safely in the native profile');
67
+ result.push(path);
68
68
  }
69
+ directoryScans.set(key, result);
69
70
  return result;
70
71
  };
71
72
  const inspect = async (paths, exclusions = []) => {
@@ -73,42 +74,51 @@ export async function assertHardLinkBoundaries(profile, delta, config, signal) {
73
74
  // Every name is already in scope when the filesystem root is admitted (or denied).
74
75
  if (roots.some(root => root === parse(root).root) && denied.length === 0)
75
76
  return;
76
- const key = JSON.stringify([roots, denied]);
77
+ const admitted = roots.filter(path => !denied.some(root => isWithin(path, root)));
78
+ if (!admitted.length)
79
+ return;
80
+ const prune = denied.filter(path => admitted.some(root => isWithin(path, root)));
81
+ // Read/write passes with the same effective subtree share one qualification.
82
+ const key = JSON.stringify([admitted.toSorted(), prune.toSorted()]);
77
83
  if (scanned.has(key))
78
84
  return scanned.get(key);
79
85
  const scan = async () => {
80
- const admitted = roots.filter(path => !denied.some(root => isWithin(path, root)));
81
- if (!admitted.length)
82
- return;
83
86
  // Native find performs the metadata traversal without one JS promise/stat per ordinary file.
84
87
  // Arguments are passed directly (no shell); NUL framing preserves spaces/newlines in names.
85
- const prune = denied.filter(path => admitted.some(root => isWithin(path, root)));
86
88
  const escapePattern = (path) => path.replace(/[?*\[\]\\]/g, '\\$&');
87
89
  const terms = prune.flatMap((path, index) => [...(index ? ['-o'] : []), '-path', escapePattern(path)]);
88
90
  const args = [...admitted, ...(terms.length ? ['(', ...terms, ')', '-prune', '-o'] : []), '-type', 'f', '-links', '+1', '-print0'];
89
91
  check();
90
- const { stdout } = await runFind('/usr/bin/find', args, { encoding: 'buffer', maxBuffer: 16 * 1024 * 1024, timeout: Math.max(1, deadlineMs - Date.now()), killSignal: 'SIGKILL', signal, env: {} });
92
+ const { stdout } = await runScan('/usr/bin/find', args, { encoding: 'buffer', maxBuffer: 16 * 1024 * 1024, timeout: Math.max(1, deadlineMs - Date.now()), killSignal: 'SIGKILL', signal, env: {} });
91
93
  const names = [];
92
94
  for (let start = 0, end = stdout.indexOf(0); end >= 0; start = end + 1, end = stdout.indexOf(0, start))
93
95
  names.push(stdout.subarray(start, end));
94
96
  if (stdout.length && stdout.at(-1) !== 0)
95
97
  throw new GuardError('HARD_LINK_SCAN_FAILED', 'Incomplete hard-link scan output');
96
98
  const links = new Map();
97
- for (const path of names) {
99
+ for (let start = 0; start < names.length; start += 64) {
98
100
  check();
99
- const info = await lstat(path);
100
- if (!info.isFile() || info.nlink < 2)
101
- throw new GuardError('HARD_LINK_CHANGED', 'Hard-link topology changed during qualification');
102
- const inode = `${info.dev}:${info.ino}`, prior = links.get(inode);
103
- if (prior && prior.nlink !== info.nlink)
104
- throw new GuardError('HARD_LINK_CHANGED', 'Hard-link topology changed during qualification');
105
- links.set(inode, { count: (prior?.count ?? 0) + 1, nlink: info.nlink, path });
101
+ const batch = names.slice(start, start + 64);
102
+ const metadata = await Promise.all(batch.map(path => lstat(path)));
103
+ for (const [index, info] of metadata.entries()) {
104
+ if (!info.isFile() || info.nlink < 2)
105
+ throw new GuardError('HARD_LINK_CHANGED', 'Hard-link topology changed during qualification');
106
+ const inode = `${info.dev}:${info.ino}`, prior = links.get(inode);
107
+ if (prior && prior.nlink !== info.nlink)
108
+ throw new GuardError('HARD_LINK_CHANGED', 'Hard-link topology changed during qualification');
109
+ links.set(inode, { count: (prior?.count ?? 0) + 1, nlink: info.nlink, path: batch[index] });
110
+ }
106
111
  }
107
- for (const value of links.values()) {
112
+ const values = [...links.values()];
113
+ for (let start = 0; start < values.length; start += 64) {
108
114
  check();
109
- const info = await lstat(value.path);
110
- if (value.count !== value.nlink || info.nlink !== value.nlink)
111
- throw new GuardError('HARD_LINK_BOUNDARY', 'A pre-existing hard link crosses the admitted filesystem boundary');
115
+ const batch = values.slice(start, start + 64);
116
+ const metadata = await Promise.all(batch.map(value => lstat(value.path)));
117
+ for (const [index, info] of metadata.entries()) {
118
+ const value = batch[index];
119
+ if (value.count !== value.nlink || info.nlink !== value.nlink)
120
+ throw new GuardError('HARD_LINK_BOUNDARY', 'A pre-existing hard link crosses the admitted filesystem boundary');
121
+ }
112
122
  }
113
123
  };
114
124
  const pending = scan();
@@ -119,7 +129,7 @@ export async function assertHardLinkBoundaries(profile, delta, config, signal) {
119
129
  // A protected inode with another name outside these denies must never be read.
120
130
  await inspect(profile.denyRead);
121
131
  const reads = [...profile.readRoots, ...delta.readPaths, ...delta.writePaths];
122
- const hasFullRead = (config.filesystem.allowRead ?? []).some(root => root === parse(root).root);
132
+ const hasFullRead = !config.filesystem.denyRead.includes('/') || (config.filesystem.allowRead ?? []).some(root => root === parse(root).root);
123
133
  const writes = config.filesystem.allowWrite ?? [], writeDenies = config.filesystem.denyWrite ?? [];
124
134
  const opaque = [...new Set([...(hasFullRead ? [] : await opaqueDirectories(reads, profile.denyRead)), ...await opaqueDirectories(writes, writeDenies)])];
125
135
  // Keep opaque subtrees inaccessible in the workload, including chmod and ancestor moves.
@@ -1 +1 @@
1
- {"version":3,"file":"hard-links.js","sourceRoot":"","sources":["../../src/sandbox/hard-links.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hard-links.js","sourceRoot":"","sources":["../../src/sandbox/hard-links.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,UAAU,EAAgD,MAAM,iBAAiB,CAAC;AAC3F,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,MAAM,WAAW,GAAG,KAAK,CAAC;AAC1B,MAAM,OAAO,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AACpC,MAAM,SAAS,GAAG,CAAC,KAAc,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAC,SAAS,CAAC,CAAC,QAAQ,CAAE,KAA+B,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;AACjH,KAAK,UAAU,aAAa,CAAC,KAAwB;IACnD,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC;YAAC,MAAM,CAAC,IAAI,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;QAAC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;gBAAE,MAAM,KAAK,CAAC;QAAC,CAAC;IAClG,CAAC;IACD,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,KAAK,IAAI,IAAI,QAAQ,CAAC,IAAI,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACtH,CAAC;AACD,yFAAyF;AACzF,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,OAA0B,EAAE,KAAsB,EAAE,MAA4B,EAAE,MAAmB;IAClJ,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,WAAW,CAAC;IAC5C,MAAM,KAAK,GAAG,GAAG,EAAE;QACjB,MAAM,CAAC,cAAc,EAAE,CAAC;QACxB,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,UAAU;YAAE,MAAM,IAAI,UAAU,CAAC,sBAAsB,EAAE,oEAAoE,CAAC,CAAC;IAClJ,CAAC,CAAC;IACF,MAAM,OAAO,GAAG,IAAI,GAAG,EAAyB,CAAC;IACjD,MAAM,cAAc,GAAG,IAAI,GAAG,EAAoB,CAAC;IACnD,MAAM,iBAAiB,GAAG,KAAK,EAAE,KAAwB,EAAE,UAA6B,EAAE,EAAE;QAC1F,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,UAAU,CAAC,CAAC;QAC/C,MAAM,KAAK,GAAG,CAAC,MAAM,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClI,IAAI,CAAC,KAAK,CAAC,MAAM;YAAE,OAAO,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC7E,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QAChE,IAAI,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,OAAO,cAAc,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC;QAC7D,KAAK,EAAE,CAAC;QACR,0EAA0E;QAC1E,+EAA+E;QAC/E,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAC,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,qBAAqB,EAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAC,EAAC,QAAQ,EAAC,MAAM,EAAC,SAAS,EAAC,EAAE,GAAC,IAAI,GAAC,IAAI,EAAC,OAAO,EAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAC,UAAU,GAAC,IAAI,CAAC,GAAG,EAAE,CAAC,EAAC,UAAU,EAAC,SAAS,EAAC,MAAM,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,CAAC;QAC7N,IAAI,CAAC,KAAK,CAAC,KAAM,CAAC,EAAE,CAAC,OAAO,EAAC,GAAE,EAAE,GAAC,CAAC,CAAC,CAAC;QACrC,IAAI,CAAC,KAAK,CAAC,KAAM,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAC,KAAK,EAAC,MAAM,EAAC,KAAK,EAAC,CAAC,CAAC,CAAC;QAC5D,MAAM,EAAC,MAAM,EAAC,GAAG,MAAM,IAAI,CAAC;QAC5B,MAAM,UAAU,GAAY,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC/C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAC,IAAI,CAAC,CAAC,CAAC;YAAE,MAAM,IAAI,UAAU,CAAC,uBAAuB,EAAC,+BAA+B,CAAC,CAAC;QACtO,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,KAAK,MAAM,IAAI,IAAI,UAAsB,EAAE,CAAC;YAC1C,KAAK,EAAE,CAAC;YACR,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,IAAI,EAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAE,EAAE,CAAA,IAAI,EAAC,KAAK,CAAA,EAAE;gBAC1E,IAAI,CAAC,QAAQ,EAAC,OAAO,CAAC,CAAC,QAAQ,CAAE,KAA+B,CAAC,IAAI,IAAE,EAAE,CAAC;oBAAE,OAAO,KAAK,CAAC;gBACzF,MAAM,KAAK,CAAC;YACd,CAAC,CAAC,CAAC;YACH,2EAA2E;YAC3E,IAAI,YAAY;gBAAE,MAAM,IAAI,UAAU,CAAC,uBAAuB,EAAC,sDAAsD,CAAC,CAAC;YACvH,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;gBAAE,MAAM,IAAI,UAAU,CAAC,0BAA0B,EAAC,wEAAwE,CAAC,CAAC;YACtJ,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpB,CAAC;QACD,cAAc,CAAC,GAAG,CAAC,GAAG,EAAC,MAAM,CAAC,CAAC;QAC/B,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;IACF,MAAM,OAAO,GAAG,KAAK,EAAE,KAAwB,EAAE,aAAgC,EAAE,EAAE,EAAE;QACrF,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,aAAa,CAAC,UAAU,CAAC,CAAC;QACnF,mFAAmF;QACnF,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QACjF,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjF,IAAI,CAAC,QAAQ,CAAC,MAAM;YAAE,OAAO;QAC7B,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAChF,6EAA6E;QAC7E,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QACnE,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,OAAO,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC9C,MAAM,IAAI,GAAG,KAAK,IAAI,EAAE;YACtB,6FAA6F;YAC7F,4FAA4F;YAC5F,MAAM,aAAa,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;YAC5E,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAC,KAAK,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACtG,MAAM,IAAI,GAAG,CAAC,GAAG,QAAQ,EAAE,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,EAAC,GAAG,KAAK,EAAC,GAAG,EAAC,QAAQ,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,EAAC,GAAG,EAAC,QAAQ,EAAC,IAAI,EAAC,SAAS,CAAC,CAAC;YAC3H,KAAK,EAAE,CAAC;YACR,MAAM,EAAC,MAAM,EAAC,GAAG,MAAM,OAAO,CAAC,eAAe,EAAC,IAAI,EAAC,EAAC,QAAQ,EAAC,QAAQ,EAAC,SAAS,EAAC,EAAE,GAAC,IAAI,GAAC,IAAI,EAAC,OAAO,EAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAC,UAAU,GAAC,IAAI,CAAC,GAAG,EAAE,CAAC,EAAC,UAAU,EAAC,SAAS,EAAC,MAAM,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,CAAC;YAC7K,MAAM,KAAK,GAAa,EAAE,CAAC;YAC3B,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,KAAK,GAAG,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,EAAC,KAAK,CAAC;gBAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAC,GAAG,CAAC,CAAC,CAAC;YAC9I,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;gBAAE,MAAM,IAAI,UAAU,CAAC,uBAAuB,EAAC,kCAAkC,CAAC,CAAC;YAC3H,MAAM,KAAK,GAAG,IAAI,GAAG,EAAoD,CAAC;YAC1E,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,IAAI,EAAE,EAAE,CAAC;gBACtD,KAAK,EAAE,CAAC;gBACR,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,EAAC,KAAK,GAAC,EAAE,CAAC,CAAC;gBAC1C,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACnE,KAAK,MAAM,CAAC,KAAK,EAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC;oBAC9C,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC;wBAAE,MAAM,IAAI,UAAU,CAAC,mBAAmB,EAAC,iDAAiD,CAAC,CAAC;oBAClI,MAAM,KAAK,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;oBAClE,IAAI,KAAK,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK;wBAAE,MAAM,IAAI,UAAU,CAAC,mBAAmB,EAAC,iDAAiD,CAAC,CAAC;oBACrI,KAAK,CAAC,GAAG,CAAC,KAAK,EAAC,EAAC,KAAK,EAAC,CAAC,KAAK,EAAE,KAAK,IAAI,CAAC,CAAC,GAAC,CAAC,EAAC,KAAK,EAAC,IAAI,CAAC,KAAK,EAAC,IAAI,EAAC,KAAK,CAAC,KAAK,CAAE,EAAC,CAAC,CAAC;gBACrF,CAAC;YACH,CAAC;YACD,MAAM,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;YACnC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,IAAI,EAAE,EAAE,CAAC;gBACvD,KAAK,EAAE,CAAC;gBACR,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,EAAC,KAAK,GAAC,EAAE,CAAC,CAAC;gBAC3C,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAC1E,KAAK,MAAM,CAAC,KAAK,EAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC;oBAC9C,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAE,CAAC;oBAC5B,IAAI,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK;wBAAE,MAAM,IAAI,UAAU,CAAC,oBAAoB,EAAE,mEAAmE,CAAC,CAAC;gBACjL,CAAC;YACH,CAAC;QACH,CAAC,CAAC;QACF,MAAM,OAAO,GAAG,IAAI,EAAE,CAAC;QAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAC,OAAO,CAAC,CAAC;QAAC,MAAM,OAAO,CAAC;IAClE,CAAC,CAAC;IACF,IAAI,CAAC;QACH,+EAA+E;QAC/E,MAAM,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAChC,MAAM,KAAK,GAAG,CAAC,GAAG,OAAO,CAAC,SAAS,EAAC,GAAG,KAAK,CAAC,SAAS,EAAC,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC;QAC5E,MAAM,WAAW,GAAC,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,IAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAA,EAAE,CAAA,IAAI,KAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;QACrI,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,UAAU,IAAI,EAAE,EAAE,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC,SAAS,IAAI,EAAE,CAAC;QACnG,MAAM,MAAM,GAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,WAAW,CAAA,CAAC,CAAA,EAAE,CAAA,CAAC,CAAA,MAAM,iBAAiB,CAAC,KAAK,EAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAC,GAAG,MAAM,iBAAiB,CAAC,MAAM,EAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QAChJ,yFAAyF;QACzF,8EAA8E;QAC9E,MAAM,CAAC,UAAU,CAAC,QAAQ,GAAC,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,IAAE,EAAE,CAAC,EAAC,GAAG,MAAM,CAAC,CAAC;QAC3E,MAAM,CAAC,UAAU,CAAC,SAAS,GAAC,CAAC,GAAG,WAAW,EAAC,GAAG,MAAM,CAAC,CAAC;QACvD,IAAI,CAAC,WAAW;YAAE,MAAM,OAAO,CAAC,KAAK,EAAC,CAAC,GAAG,OAAO,CAAC,QAAQ,EAAC,GAAG,MAAM,CAAC,CAAC,CAAC;QACvE,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClB,IAAI,CAAC,MAAM,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;gBAAE,MAAM,OAAO,CAAC,WAAW,CAAC,CAAC;;gBACjG,MAAM,OAAO,CAAC,MAAM,EAAC,CAAC,GAAG,WAAW,EAAC,GAAG,MAAM,CAAC,CAAC,CAAC;QACxD,CAAC;QACD,KAAK,EAAE,CAAC;IACV,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,UAAU,IAAI,MAAM,CAAC,OAAO;YAAE,MAAM,KAAK,CAAC;QAC/D,MAAM,IAAI,UAAU,CAAC,uBAAuB,EAAE,uEAAuE,EAAE,EAAC,KAAK,EAAC,KAAK,EAAC,CAAC,CAAC;IACxI,CAAC;AACH,CAAC"}
@@ -3,6 +3,8 @@ import { spawn } from 'node:child_process';
3
3
  import { access, readFile, writeFile, mkdir, stat, readdir } from 'node:fs/promises';
4
4
  import { constants } from 'node:fs';
5
5
  import { constants as osConstants } from 'node:os';
6
+ import { isAbsolute } from 'node:path';
7
+ import { pathToFileURL } from 'node:url';
6
8
  import { TOOL_NAMES, GuardError } from '../contracts.js';
7
9
  const send = (frame) => process.stdout.write(JSON.stringify(frame) + '\n');
8
10
  const input = createInterface({ input: process.stdin, crlfDelay: Infinity });
@@ -56,7 +58,10 @@ async function execute(job) {
56
58
  throw new GuardError('INVALID_IPC', 'Unknown local tool');
57
59
  // Running the public Pi definition inside the boundary also confines grep's rg process,
58
60
  // image MIME reads, find globbing, edit matching, access, mkdir and stat helpers.
59
- const pi = await import('@earendil-works/pi-coding-agent');
61
+ const piSDKEntryPath = process.argv[2];
62
+ if (!piSDKEntryPath || !isAbsolute(piSDKEntryPath) || piSDKEntryPath.includes('\0'))
63
+ throw new GuardError('INVALID_IPC', 'Expected a trusted absolute Pi SDK entry');
64
+ const pi = await import(pathToFileURL(piSDKEntryPath).href);
60
65
  const definitions = {
61
66
  bash: pi.createBashToolDefinition,
62
67
  read: pi.createReadToolDefinition,
@@ -1 +1 @@
1
- {"version":3,"file":"worker.js","sourceRoot":"","sources":["../../src/sandbox/worker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worker.js","sourceRoot":"","sources":["../../src/sandbox/worker.ts"],"names":[],"mappings":"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"}
package/dist/startup.js CHANGED
@@ -1,18 +1,18 @@
1
1
  import { readFile } from 'node:fs/promises';
2
2
  import { dirname, join, resolve } from 'node:path';
3
- import { fileURLToPath } from 'node:url';
4
3
  import { createAgentSessionRuntime, createAgentSessionServices, createAgentSessionFromServices, createCodemodeExtension, SessionManager, SettingsManager, ProjectTrustStore } from '@earendil-works/pi-coding-agent';
5
4
  import { GuardError } from './contracts.js';
6
5
  import { createGuardExtension } from './index.js';
6
+ import { getPiSDKEntryPath } from './pi-host.js';
7
7
  import { loadContextFiles } from './context-files.js';
8
8
  import { guardedExternalExtension } from './tools/mcp.js';
9
9
  export async function assertSupportedPi() {
10
- let path = dirname(fileURLToPath(import.meta.resolve('@earendil-works/pi-coding-agent')));
10
+ let path = dirname(getPiSDKEntryPath());
11
11
  for (let i = 0; i < 8; i++) {
12
12
  try {
13
13
  const pkg = JSON.parse(await readFile(join(path, 'package.json'), 'utf8'));
14
14
  if (pkg.name === '@earendil-works/pi-coding-agent') {
15
- if (pkg.version !== '0.99.1')
15
+ if (!['0.99.1', '1.0.0'].includes(pkg.version))
16
16
  throw new GuardError('UNSUPPORTED_PI', 'Pi APIs are not qualified for this version');
17
17
  return pkg.version;
18
18
  }
@@ -1 +1 @@
1
- {"version":3,"file":"startup.js","sourceRoot":"","sources":["../src/startup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"startup.js","sourceRoot":"","sources":["../src/startup.ts"],"names":[],"mappings":"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"}
package/dist/tools/mcp.js CHANGED
@@ -1,7 +1,9 @@
1
1
  import { randomUUID } from 'node:crypto';
2
2
  import { join } from 'node:path';
3
+ import { pathToFileURL } from 'node:url';
3
4
  import { createMcpExtension } from '@earendil-works/pi-coding-agent';
4
5
  import { canonicalJson, digest, GuardError } from '../contracts.js';
6
+ import { getPiSDKEntryPath } from '../pi-host.js';
5
7
  import { externalInvocations } from './external.js';
6
8
  export function guardedExternalExtension(input, controller) {
7
9
  const factory = typeof input.extension === 'function' ? input.extension : input.extension.factory;
@@ -133,7 +135,7 @@ function guardedTransport(base, server, registration, catalog, policies) {
133
135
  * This small, version-qualified seam preserves the SDK's transport, config and OAuth implementation.
134
136
  */
135
137
  export async function createGuardedMcpExtension(agentDir, controller, options = {}, policies = {}) {
136
- const sdk = new URL('./', import.meta.resolve('@earendil-works/pi-coding-agent'));
138
+ const sdk = new URL('./', pathToFileURL(getPiSDKEntryPath()));
137
139
  const [runtime, config, auth] = await Promise.all([
138
140
  import(new URL('extensions/mcp/runtime.js', sdk).href),
139
141
  import(new URL('extensions/mcp/config.js', sdk).href),
@@ -1 +1 @@
1
- {"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../src/tools/mcp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../src/tools/mcp.ts"],"names":[],"mappings":"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"}
@@ -1,73 +1,112 @@
1
1
  # npm 배포 안내
2
2
 
3
- macOS ARM64와 Linux x64에서 `pi install npm:pi-codex-auto-review`로 설치할 수 있는 압축 패키지를 준비하고 npm에 게시한다. 계정 로그인과 실제 게시는 배포자가 수행한다.
3
+ `pnpm release`에서 버전을 선택하고 커밋·태그·푸시를 확인하면 GitHub Actions가 macOS ARM64와 Linux x64 실행 파일을 빌드하고 npm에 게시합니다. 로컬 명령은 npm 자격 증명을 사용하지 않습니다.
4
4
 
5
- ## 배포 파일 준비
5
+ ## 처음 한 번 설정
6
6
 
7
- ### GitHub Actions에서 준비
7
+ ### 소스와 의존성
8
8
 
9
- 배포할 버전과 소스를 저장소에 반영한 뒤 GitHub Actions의 **npm 배포 패키지 준비** 워크플로를 해당 브랜치에서 실행한다.
9
+ 릴리스 설정, 스크립트, 패키지 수정 사항과 워크플로를 `master`에 커밋하고 원격 저장소에 반영합니다. 릴리스 브랜치는 `origin/master`를 추적해야 합니다. 수정된 파일이나 인덱스가 남아 있으면 릴리스 명령은 중단합니다.
10
10
 
11
- 1. `macos-14`와 `ubuntu-22.04`에서 Rust 1.95.0으로 규칙 엔진을 각각 빌드한다.
12
- 2. 같은 소스에서 만든 실행 파일과 소스·실행 파일 해시를 취합한다.
13
- 3. 잠금 파일로 의존성을 설치하고 TypeScript를 컴파일한다.
14
- 4. 두 플랫폼의 실행 파일 형식·CPU·해시, 설치된 `node-forge`의 보정 버전·소스 고정, 의존성 묶음과 필수 배포 파일을 확인한다.
15
- 5. 성공하면 `npm-package` 결과물에 `pi-codex-auto-review-<버전>.tgz`를 저장한다.
16
-
17
- 이 워크플로는 npm 인증이나 게시를 수행하지 않는다. Linux 실행 파일은 Ubuntu 22.04의 GNU 환경에서 빌드한다. Alpine 등 musl 환경과 macOS x64·Linux ARM64는 이 배포의 지원 대상에 포함하지 않는다. 격리·승인 동작의 플랫폼 전체 검증은 기존 운영체제 검증 절차로 별도 확인한다.
18
-
19
- ### 로컬에서 준비
20
-
21
- Node.js 22.19 이상과 Rust 1.95 이상이 있는 macOS ARM64 및 Linux x64 환경에서 **동일한 소스**를 사용한다. 각각 저장소 루트에서 실행한다.
11
+ Node.js 24.14.0과 pnpm 10을 사용할 수 있는 터미널에서 저장소 루트로 이동하고 의존성을 설치합니다.
22
12
 
23
13
  ```sh
24
14
  npm ci --ignore-scripts
25
- npm run build
26
15
  ```
27
16
 
28
- `dist/native/darwin-arm64/`와 `dist/native/linux-x64/`가 생성된다. 각 디렉터리에는 실행 파일과 `artifact.json`이 있어야 한다. 두 디렉터리를 패키지를 만들 저장소의 `dist/native/` 아래에 취합한 뒤 그 저장소 루트에서 실행한다.
17
+ 의존성 설치와 CI 빌드는 기존 `package-lock.json`을 사용합니다. `pnpm`은 릴리스 스크립트의 실행 진입점으로 사용하며, `pnpm-lock.yaml`로 설치 방식을 바꾸지 않습니다. 기존 npm 의존성 보정과 배포 시 의존성 묶음을 유지하기 위한 선택입니다.
18
+
19
+ ### npm Trusted Publisher
20
+
21
+ `pi-codex-auto-review`의 npm **Settings → Trusted publishing**에서 GitHub Actions 연결을 추가합니다.
22
+
23
+ | 항목 | 입력 값 |
24
+ |---|---|
25
+ | Organization or user | `buYoung` |
26
+ | Repository | `pi-codex-auto-review` |
27
+ | Workflow filename | `npm-package.yml` |
28
+ | Environment name | 비워 둠 |
29
+ | Allowed actions | 직접 게시하는 `npm publish` 허용 |
30
+
31
+ 워크플로 이름은 파일명만 입력합니다. `.github/workflows/` 경로를 붙이지 않습니다. 기본 `npm stage publish` 권한만 허용하면 이 워크플로의 직접 게시가 실패합니다.
32
+
33
+ 게시 작업에는 `id-token: write` 권한이 설정되어 있고 npm 11.5.1 이상인지 확인합니다. GitHub-hosted runner가 발급하는 OIDC 인증을 사용하므로 `NPM_TOKEN`을 GitHub Secret에 추가하지 않습니다. npm의 연결은 저장 시 검증되지 않으므로 실제 첫 게시에서 확인해야 합니다. [npm Trusted Publishing 공식 안내](https://docs.npmjs.com/trusted-publishers/)
34
+
35
+ ## 버전 선택과 릴리스
36
+
37
+ `master`의 변경 사항이 커밋된 상태에서 실행합니다.
29
38
 
30
39
  ```sh
31
- npm pack
40
+ pnpm release
32
41
  ```
33
42
 
34
- `prepack`은 TypeScript를 다시 컴파일하고 게시 전 검사를 실행한다. 성공하면 현재 `package.json` 버전의 `.tgz`가 생성된다. 실행 파일 하나가 없거나 다른 소스에서 빌드됐다면 중단하며, 문제를 해결하고 같은 명령을 다시 실행할 수 있다. 정상 배포에서는 `--ignore-scripts`로 이 검사를 생략하지 않는다.
43
+ 1. 현재 버전과 구체적인 다음 버전을 보고 하나를 선택합니다. `0.1.1`에서 `0.1.2`를 출시할 때는 **patch**를 선택합니다. 로컬 버전 태그가 없으면 **현재 준비 버전 출시**도 선택할 수 있습니다.
44
+ 2. 커밋 여부를 확인하고 릴리스 커밋을 만듭니다. 현재 버전을 그대로 출시할 때는 출시 기록을 남기는 빈 커밋을 만듭니다.
45
+ 3. `v<버전>` 태그 생성 여부를 확인하고 주석 태그를 만듭니다.
46
+ 4. `master`와 해당 태그의 푸시 여부를 확인합니다. 승인하면 두 참조를 원자적으로 함께 푸시하고 Actions의 npm 게시를 시작합니다.
47
+
48
+ 각 확인의 기본값은 승인입니다. `n`이나 `Ctrl+C`를 입력하면 해당 작업과 이후 흐름을 중단합니다. `--ci`, 버전 인자나 자동 응답으로 질문을 건너뛰는 방식은 지원하지 않습니다.
35
49
 
36
- ## npm 계정과 게시
50
+ 버전 선택은 자동으로 `0.1.2` 등을 적용하지 않습니다. `package.json`과 `package-lock.json`의 버전 변경은 release-it이 수행하며 npm 버전 수명 주기 스크립트는 실행하지 않습니다. 로컬에서는 실행 파일을 다시 빌드하거나 npm에 게시하지 않습니다.
37
51
 
38
- 현재 이름은 `pi-codex-auto-review`, 초기 버전은 `0.1.0`이다. 아래 이름 확인은 저장소 루트 또는 압축 파일을 내려받은 디렉터리에서 수행한다.
52
+ 같은 npm 버전은 다시 게시할 수 없습니다. 현재 준비 버전이 이미 npm에 게시됐다면 더 큰 버전을 선택합니다. 시험 버전은 npm의 `next` 태그로, 정식 버전은 `latest` 태그로 게시합니다.
53
+
54
+ ## GitHub Actions가 수행하는 작업
55
+
56
+ `v*` 태그의 푸시가 `.github/workflows/npm-package.yml`을 시작합니다.
57
+
58
+ 1. `macos-14` ARM64와 `ubuntu-22.04` x64에서 같은 커밋의 Rust 규칙 엔진을 Rust 1.95.0으로 빌드합니다.
59
+ 2. 패키지 작업은 태그와 `package.json` 버전이 일치하고 태그 커밋이 `origin/master`에 포함되는지 확인합니다.
60
+ 3. npm 잠금 파일로 의존성을 설치하고 두 실행 파일을 취합합니다. `npm pack`의 `prepack`이 TypeScript와 실행 파일 형식·CPU·소스 해시, 보정된 의존성 및 필수 배포 파일을 검사합니다.
61
+ 4. 검증한 `pi-codex-auto-review-<버전>.tgz`를 `npm-package` 결과물에 보관합니다.
62
+ 5. 별도 게시 작업이 같은 결과물을 내려받아 OIDC로 npm에 게시합니다.
63
+
64
+ **Actions → npm 배포 → Run workflow**로 수동 실행하면 압축 패키지 준비만 수행하며 게시 작업은 생략합니다. 태그 게시에는 같은 워크플로의 태그 실행을 사용합니다.
65
+
66
+ Linux 실행 파일은 Ubuntu 22.04의 GNU 환경에서 빌드합니다. Alpine 등 musl 환경과 macOS x64·Linux ARM64는 이 배포의 지원 대상에 포함하지 않습니다. 격리·승인 동작의 플랫폼 검증은 [검증 안내](testing/auto-review-protection.md)를 따릅니다.
67
+
68
+ ## 중단과 실패 후 확인
69
+
70
+ 로컬 명령은 종료 시 파일·인덱스 변경, 현재 HEAD, 로컬 태그 및 푸시 시도 상태를 출력합니다. 질문에서 거절하거나 취소해도 이미 변경한 버전·인덱스·커밋·태그는 보존합니다.
71
+
72
+ 푸시 실패 시 release-it은 원격 태그 정리를 시도할 수 있습니다. 출력만으로 원격 상태를 단정하지 말고 아래 결과를 확인합니다.
39
73
 
40
74
  ```sh
41
- npm view pi-codex-auto-review version --registry=https://registry.npmjs.org/
75
+ git status --short
76
+ git log -1
77
+ git ls-remote origin refs/heads/master 'refs/tags/v*'
42
78
  ```
43
79
 
44
- 패키지가 조회되면 해당 이름에 대한 게시 권한이 있어야 한다. `E404`는 조회되는 패키지가 없다는 뜻이며 최종 등록 가능 여부는 게시 시 확인된다. 이름을 바꾸면 `package.json`, 설치 예제와 SDK import 예제도 함께 바꾼다.
80
+ 태그 푸시 후 Actions가 실패하면 해당 실행의 로그를 확인하고 실패한 작업을 다시 실행합니다. 실제 npm 게시가 성공했는지 먼저 확인합니다. 이미 게시된 버전을 되풀이하지 않고 새 변경에는 새 버전을 사용합니다.
81
+
82
+ ## 게시 결과와 Pi 설치 확인
45
83
 
46
- npm 계정에서 2단계 인증을 준비하고 로그인한다. 게시 명령은 공개 레지스트리에 결과물을 공개한다. 검토한 압축 파일이 있는 디렉터리에서 현재 버전에 맞는 파일명을 사용한다.
84
+ `0.1.2` 게시 후 다음 명령으로 확인합니다.
47
85
 
48
86
  ```sh
49
- npm login --registry=https://registry.npmjs.org/
50
- npm whoami --registry=https://registry.npmjs.org/
51
- npm publish ./pi-codex-auto-review-0.1.0.tgz --access public --registry=https://registry.npmjs.org/
87
+ npm view pi-codex-auto-review@0.1.2 version --registry=https://registry.npmjs.org/
88
+ pi install npm:pi-codex-auto-review@0.1.2
89
+ pi list
90
+ pi
52
91
  ```
53
92
 
54
- 같은 이름·버전으로 다시 게시할 수 없으므로 수정 배포에는 새 버전을 사용한다. 시험 배포는 `package.json`과 잠금 파일의 버전을 `0.1.0-beta.1`처럼 지정하고 새 압축 패키지를 만든 다음 `--tag next`를 붙여 게시한다.
93
+ 다음 릴리스부터는 선택한 버전으로 명령을 바꿉니다. Pi 등록 성공만으로 보호 시작을 보장하지 않습니다. [사용법](usage.md)의 보호 CLI·SDK 진입점에서 규칙 엔진과 OS 샌드박스 준비가 성공하는지 확인합니다.
55
94
 
56
- ## 게시 결과 확인
95
+ ## 로컬에서 압축 패키지만 준비
57
96
 
58
- 게시한 버전이 조회되고 지원 환경의 Pi에서 설치·등록되는지 확인한다.
97
+ 게시용 압축 파일을 직접 확인해야 할 때 사용합니다. TypeScript와 같은 네이티브 소스로 만든 두 플랫폼의 실행 파일·메타데이터가 먼저 준비되어 있어야 합니다.
59
98
 
60
99
  ```sh
61
- npm view pi-codex-auto-review@0.1.0 version --registry=https://registry.npmjs.org/
62
- pi install npm:pi-codex-auto-review@0.1.0
63
- pi list
100
+ npm run build
101
+ mkdir -p tmp/npm-release
102
+ npm pack --pack-destination tmp/npm-release
64
103
  ```
65
104
 
66
- Pi 등록 성공만으로 보호 시작을 보장하지 않는다. [사용법](usage.md)의 보호 CLI·SDK 진입점에서 규칙 엔진과 OS 샌드박스 준비가 성공하는지 확인한다. 설치를 취소하려면 `pi remove npm:pi-codex-auto-review`를 실행한다.
105
+ `npm run build`는 현재 운영체제·아키텍처의 실행 파일만 만듭니다. 다른 플랫폼의 결과물은 Actions의 빌드 결과에서 가져와 `dist/native/<플랫폼>-<아키텍처>/`에 둡니다. 실행 파일이 없거나 소스 해시가 다르면 압축 패키지 검사는 중단합니다. 정상 게시 준비에서 `--ignore-scripts`로 `prepack`을 생략하지 않습니다.
67
106
 
68
107
  ## 관련 근거
69
108
 
109
+ - [release-it 21.0.1](https://github.com/release-it/release-it/tree/21.0.1)
110
+ - [npm Trusted Publishing](https://docs.npmjs.com/trusted-publishers/)
111
+ - [GitHub-hosted runner 종류](https://docs.github.com/en/actions/reference/runners/github-hosted-runners)
70
112
  - [Pi 패키지 등록](https://github.com/earendil-works/pi/blob/v0.99.1/packages/coding-agent/docs/packages.md)
71
- - [npm 의존성 묶음과 overrides](https://docs.npmjs.com/cli/v11/configuring-npm/package-json/)
72
- - [npm 공개 패키지 게시](https://docs.npmjs.com/creating-and-publishing-unscoped-public-packages/)
73
- - [의존성 보안 보정](security/dependencies.md)
package/docs/usage.md CHANGED
@@ -4,16 +4,22 @@ pi-codex-auto-review를 Pi 확장으로 등록하는 방법과 CLI·SDK·정책
4
4
 
5
5
  ## npm에서 설치
6
6
 
7
- npm에 게시된 버전은 Node.js 22.19 이상과 Pi 0.99.1에서 설치합니다. 배포 대상은 macOS ARM64와 Linux x64이며, 패키지에 두 플랫폼의 규칙 엔진을 포함하므로 설치할 때 Rust가 필요하지 않습니다. 운영체제 샌드박스가 사용할 수 있는 환경이어야 하며 Windows의 네이티브 격리는 지원하지 않습니다.
7
+ npm에 게시된 버전은 Node.js 22.19 이상과 Pi 0.99.1 또는 1.0.0에서 설치합니다. 배포 대상은 macOS ARM64와 Linux x64이며, 패키지에 두 플랫폼의 규칙 엔진을 포함하므로 설치할 때 Rust가 필요하지 않습니다. 운영체제 샌드박스가 사용할 수 있는 환경이어야 하며 Windows의 네이티브 격리는 지원하지 않습니다.
8
8
 
9
9
  ```sh
10
- pi install npm:pi-codex-auto-review@0.1.0
10
+ pi install npm:pi-codex-auto-review@0.1.2
11
11
  pi list
12
12
  pi remove npm:pi-codex-auto-review
13
13
  ```
14
14
 
15
15
  `--local`을 추가하면 현재 프로젝트의 `.pi/settings.json`에 등록합니다. 프로젝트 패키지는 해당 프로젝트의 신뢰 결정 후 로드됩니다. 버전을 명시한 설치는 그 버전으로 고정됩니다.
16
16
 
17
+ 0.1.0에서 `Cannot find package '@earendil-works/pi-coding-agent'`로 시작에 실패하면 0.1.2로 업데이트합니다. Pi는 관리하는 확장에 호스트 SDK의 물리적 복사본을 설치하지 않습니다. 0.1.1부터 Pi의 공개 경로 API로 호스트 SDK를 찾고, 그 절대 경로를 격리 워커에도 전달합니다. 별도의 SDK 복사본이나 심볼릭 링크를 추가할 필요가 없습니다.
18
+
19
+ 0.1.1에서 `Directory metadata scope is too large to qualify safely`로 시작에 실패해도 0.1.2로 업데이트합니다. 0.1.2는 별도 프로세스에서 디렉터리 메타데이터를 탐색하며, 10만 개 제한을 제거합니다. 기본 `/tmp`·`TMPDIR`의 쓰기 범위와 하드링크 보호, 30초 검사 제한 및 취소 처리는 유지합니다. 검사에 실패하거나 제한 시간을 초과하면 실행을 차단합니다.
20
+
21
+ 기본 설치 위치인 `.pi/agent/npm` 안에서도 실행에 필요한 확장 코드와 의존성을 읽을 수 있습니다. 에이전트 설정과 자격 증명 경로의 보호는 유지합니다.
22
+
17
23
  ## 소스에서 빌드
18
24
 
19
25
  소스 빌드에는 Rust 1.95 이상도 필요합니다. 저장소 루트에서 개발 의존성을 설치하고 빌드합니다. 이 명령은 현재 운영체제·아키텍처용 실행 파일을 `dist/native/<플랫폼>-<아키텍처>/`에 만듭니다. npm 게시용 패키지 준비는 [배포 안내](publishing.md)를 따릅니다.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pi-codex-auto-review",
3
- "version": "0.1.0",
3
+ "version": "0.1.2",
4
4
  "description": "Codex의 ‘Approve for me’에서 영감을 받은 Pi용 자동 실행 승인 검토 확장. 규칙과 Pi의 현재 모델로 도구 실행을 검토하고, 필요한 경우 사용자 승인을 요청합니다.",
5
5
  "license": "Apache-2.0",
6
6
  "keywords": [
@@ -37,6 +37,7 @@
37
37
  ]
38
38
  },
39
39
  "scripts": {
40
+ "release": "node scripts/release.mjs",
40
41
  "build": "tsc && node scripts/build-execpolicy.mjs",
41
42
  "prepack": "tsc && node scripts/check-package.mjs",
42
43
  "test:contracts": "node scripts/run-tests.mjs contracts",
@@ -59,13 +60,16 @@
59
60
  "@anthropic-ai/sandbox-runtime"
60
61
  ],
61
62
  "peerDependencies": {
62
- "@earendil-works/pi-coding-agent": "0.99.1"
63
+ "@earendil-works/pi-coding-agent": "0.99.1 || 1.0.0"
63
64
  },
64
65
  "devDependencies": {
65
66
  "@earendil-works/pi-coding-agent": "file:vendor/pi-coding-agent-0.99.1-security.1.tgz",
67
+ "@inquirer/prompts": "8.5.2",
66
68
  "@sinclair/typebox": "0.34.52",
67
69
  "@types/node": "24.0.0",
68
70
  "pi-ollama-cloud": "0.12.2",
71
+ "release-it": "21.0.1",
72
+ "semver": "7.8.5",
69
73
  "typescript": "6.0.3"
70
74
  },
71
75
  "overrides": {