create-principles-disciple 1.147.2 → 1.147.4

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.
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
3
  "productVersion": "2.8.0",
4
- "sourceCommit": "94d353a428b6fc27dd41ff63b767bf915b9ed147"
4
+ "sourceCommit": "49a91651ab6c755f9074a653998951f4f88c0f43"
5
5
  }
@@ -340,6 +340,26 @@ export interface GlobalPdShimResult {
340
340
  export declare function renderShForwardingShim(targetPath: string): string;
341
341
  export declare function installGlobalPdShim(): GlobalPdShimResult | boolean;
342
342
  export declare function tryUpgradePdCliFromNpm(installedPdCliDir: string): void;
343
+ /**
344
+ * G3 §10.5: materialize the INSTALLED pd-cli's `file:../` sibling links
345
+ * (core / host-runtime / codex-adapter / workbuddy-adapter / install-layout /
346
+ * principles-disciple) through the shared helper. Replaces the hand-rolled
347
+ * per-dependency blocks that used to live in syncPdCli(): those short-circuited
348
+ * on existsSync(), so an npm-materialized physical copy silently won over the
349
+ * intended runtime sibling.
350
+ *
351
+ * Ordering contract: MUST run after installPdCliDependencies() (the dependency
352
+ * stage is what can (re)materialize node_modules) AND after every sibling is
353
+ * deployed. A missing sibling fails the install loud (the helper).
354
+ */
355
+ export declare function ensurePdCliResolution(): void;
356
+ /**
357
+ * G3 §10.5: same contract for the INSTALLED pd-console (core / host-runtime /
358
+ * install-layout / principles-disciple / create-principles-disciple). Runs
359
+ * after installConsoleDependencies() so npm-materialized copies are corrected
360
+ * instead of silently kept.
361
+ */
362
+ export declare function ensureConsoleResolution(): void;
343
363
  /**
344
364
  * PRI-711: materialize node_modules links for the INSTALLED codex-adapter so
345
365
  * its declared `file:../<component>` dependencies resolve under ESM realpath
@@ -1 +1 @@
1
- {"version":3,"file":"installer.d.ts","sourceRoot":"","sources":["../src/installer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"installer.d.ts","sourceRoot":"","sources":["../src/installer.ts"],"names":[],"mappings":"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"}
package/dist/installer.js CHANGED
@@ -133,9 +133,6 @@ function installsOpenClaw(host) {
133
133
  function installsWorkbuddy(host) {
134
134
  return host === 'workbuddy' || host === 'all';
135
135
  }
136
- function installedPluginDir() {
137
- return getInstalledPluginDir();
138
- }
139
136
  function pluginInstallDirs() {
140
137
  return installsOpenClaw(activeHostTarget)
141
138
  ? [getInstalledPluginDir(), getPluginExtDir()]
@@ -1909,77 +1906,13 @@ function syncPdCli(pluginDir) {
1909
1906
  if (existsSync(bundledNodeModules)) {
1910
1907
  cpSync(bundledNodeModules, path.join(installedPdCliDir, 'node_modules'), { recursive: true });
1911
1908
  }
1912
- // Create node_modules/@principles/core symlink so pd-cli can resolve
1913
- // its @principles/core dependency (rewritten to "file:../core" by bundle-plugin.mjs).
1914
- // Without this, `node dist/index.js --version` fails because static imports
1915
- // from @principles/core/runtime-v2 cannot be resolved.
1916
- const coreLinkDir = path.join(installedPdCliDir, 'node_modules', '@principles');
1917
- const coreLinkTarget = path.join(getPdRuntimeDir(), 'core');
1918
- mkdirSync(coreLinkDir, { recursive: true });
1919
- const coreLinkPath = path.join(coreLinkDir, 'core');
1920
- if (!existsSync(coreLinkPath)) {
1921
- if (isWindows()) {
1922
- // On Windows, use a junction (directory symlink) which doesn't require elevated privileges
1923
- symlinkSync(coreLinkTarget, coreLinkPath, 'junction');
1924
- }
1925
- else {
1926
- // On Unix, use a relative symlink for portability
1927
- symlinkSync('../../../core', coreLinkPath, 'dir');
1928
- }
1929
- }
1930
- // Create node_modules/@principles/host-runtime symlink so pd-cli can resolve
1931
- // its @principles/host-runtime dependency (rewritten to "file:../host-runtime"
1932
- // by bundle-plugin.mjs). Without this, `pd --version` crashes with
1933
- // ERR_MODULE_NOT_FOUND because pd-cli statically imports createProductionHostRuntime.
1934
- // host-runtime's own better-sqlite3 / js-yaml / @principles/core dependencies
1935
- // resolve through the plugin's <ext>/node_modules/ (shared via Node's upward
1936
- // module resolution), so no separate npm install is needed.
1937
- const hostRuntimeLinkTarget = path.join(getPdRuntimeDir(), 'host-runtime');
1938
- const hostRuntimeLinkPath = path.join(coreLinkDir, 'host-runtime');
1939
- if (!existsSync(hostRuntimeLinkPath)) {
1940
- if (isWindows()) {
1941
- symlinkSync(hostRuntimeLinkTarget, hostRuntimeLinkPath, 'junction');
1942
- }
1943
- else {
1944
- symlinkSync('../../../host-runtime', hostRuntimeLinkPath, 'dir');
1945
- }
1946
- }
1947
- // Create node_modules/@principles/codex-adapter symlink so pd-cli can resolve
1948
- // its @principles/codex-adapter dependency (rewritten to
1949
- // "file:../codex-adapter" by bundle-plugin.mjs). Without this, `pd codex
1950
- // worker` crashes with ERR_MODULE_NOT_FOUND (PRI-624).
1951
- const codexAdapterLinkTarget = path.join(getPdRuntimeDir(), 'codex-adapter');
1952
- const codexAdapterLinkPath = path.join(coreLinkDir, 'codex-adapter');
1953
- if (!existsSync(codexAdapterLinkPath)) {
1954
- if (isWindows()) {
1955
- symlinkSync(codexAdapterLinkTarget, codexAdapterLinkPath, 'junction');
1956
- }
1957
- else {
1958
- symlinkSync('../../../codex-adapter', codexAdapterLinkPath, 'dir');
1959
- }
1960
- }
1961
- // Create node_modules/principles-disciple symlink so pd-cli can resolve
1962
- // its principles-disciple dependency (the plugin package, rewritten to
1963
- // "file:../plugin" by bundle-plugin.mjs). The plugin is installed at the
1964
- // extension dir root (getPluginExtDir()), so the symlink target is the
1965
- // ext dir itself — Node resolves `import 'principles-disciple'` via the
1966
- // plugin's package.json exports field.
1967
- // Without this, `pd runtime init` crashes with ERR_MODULE_NOT_FOUND
1968
- // because runtime-init.ts statically imports initTrajectorySchema.
1969
- const pdLinkDir = path.join(installedPdCliDir, 'node_modules');
1970
- const pdLinkTarget = installedPluginDir();
1971
- mkdirSync(pdLinkDir, { recursive: true });
1972
- const pdLinkPath = path.join(pdLinkDir, 'principles-disciple');
1973
- if (!existsSync(pdLinkPath)) {
1974
- if (isWindows()) {
1975
- symlinkSync(pdLinkTarget, pdLinkPath, 'junction');
1976
- }
1977
- else {
1978
- // Relative from <ext>/pd-cli/node_modules/ to <ext>/: go up twice
1979
- // (node_modules → pd-cli → ext)
1980
- symlinkSync('../../', pdLinkPath, 'dir');
1981
- }
1982
- }
1909
+ // G3 §10.5: the pd-cli sibling links (core / host-runtime / codex-adapter /
1910
+ // workbuddy-adapter / install-layout / principles-disciple) are NO LONGER
1911
+ // hand-rolled here. install() materializes them via
1912
+ // ensurePdCliResolution() AFTER installPdCliDependencies(), so a physical
1913
+ // copy produced by the dependency stage can never be silently kept — this
1914
+ // block used to short-circuit on existsSync() and leave npm-materialized
1915
+ // copies in place.
1983
1916
  tryUpgradePdCliFromNpm(installedPdCliDir);
1984
1917
  const installedBinDir = getInstalledBinDir();
1985
1918
  mkdirSync(installedBinDir, { recursive: true });
@@ -2157,29 +2090,11 @@ function installConsole(consoleDir) {
2157
2090
  }
2158
2091
  rmSync(consoleDest, { recursive: true, force: true });
2159
2092
  cpSync(consoleSrc, consoleDest, { recursive: true });
2160
- const pluginLinkPath = path.join(consoleDest, 'node_modules', 'principles-disciple');
2161
- mkdirSync(path.dirname(pluginLinkPath), { recursive: true });
2162
- if (!existsSync(pluginLinkPath)) {
2163
- if (isWindows()) {
2164
- symlinkSync(installedPluginDir(), pluginLinkPath, 'junction');
2165
- }
2166
- else {
2167
- symlinkSync(path.relative(path.dirname(pluginLinkPath), installedPluginDir()), pluginLinkPath, 'dir');
2168
- }
2169
- }
2170
- // PRI-672: console resolves its create-principles-disciple dependency (the
2171
- // ReleaseManager authority module, rewritten to file:../release-manager by
2172
- // bundle-plugin.mjs) through this link into ~/.pd/runtime.
2173
- const releaseManagerLinkPath = path.join(consoleDest, 'node_modules', 'create-principles-disciple');
2174
- if (!existsSync(releaseManagerLinkPath)) {
2175
- mkdirSync(path.dirname(releaseManagerLinkPath), { recursive: true });
2176
- if (isWindows()) {
2177
- symlinkSync(getInstalledReleaseManagerDir(), releaseManagerLinkPath, 'junction');
2178
- }
2179
- else {
2180
- symlinkSync(path.relative(path.dirname(releaseManagerLinkPath), getInstalledReleaseManagerDir()), releaseManagerLinkPath, 'dir');
2181
- }
2182
- }
2093
+ // G3 §10.5: the console's sibling links (core / host-runtime / install-layout
2094
+ // / principles-disciple / create-principles-disciple) are materialized by
2095
+ // ensureConsoleResolution() AFTER installConsoleDependencies() — see
2096
+ // ensurePdCliResolution() for why the old existsSync() short-circuit was
2097
+ // removed instead of kept.
2183
2098
  }
2184
2099
  function getInstalledCoreDir() {
2185
2100
  return path.join(getPdRuntimeDir(), 'core');
@@ -2272,6 +2187,101 @@ function installBundledCodexAdapter(pluginDir) {
2272
2187
  rmSync(codexAdapterDest, { recursive: true, force: true });
2273
2188
  cpSync(codexAdapterSrc, codexAdapterDest, { recursive: true });
2274
2189
  }
2190
+ /**
2191
+ * P1: structural package-name validation. Unscoped names have exactly one
2192
+ * segment; scoped names exactly `@scope/pkg`. This is deliberately NOT one
2193
+ * regex: "." / ".." pass a character-class test, yet path.join() normalizes
2194
+ * them onto node_modules / the scope parent / the component root.
2195
+ */
2196
+ function isSafeNameSegment(segment) {
2197
+ return segment.length > 0 && segment !== '.' && segment !== '..' && /^[A-Za-z0-9._-]+$/.test(segment);
2198
+ }
2199
+ function parseDependencyName(name) {
2200
+ const scoped = name.startsWith('@');
2201
+ const raw = (scoped ? name.slice(1) : name).split('/');
2202
+ if (scoped ? raw.length !== 2 : raw.length !== 1)
2203
+ return undefined;
2204
+ if (!raw.every(isSafeNameSegment))
2205
+ return undefined;
2206
+ if (!scoped)
2207
+ return raw;
2208
+ const [scope, packageName] = raw;
2209
+ return scope !== undefined && packageName !== undefined ? [`@${scope}`, packageName] : undefined;
2210
+ }
2211
+ /**
2212
+ * P1: `target` must be a STRICT descendant of `root` (never root itself, never
2213
+ * `..`, never an absolute escape). Applied to the lexical link path, the real
2214
+ * node_modules directory (which must stay inside the component) and any
2215
+ * symlinked ancestor we are about to create or delete through.
2216
+ */
2217
+ function assertStrictlyInside(root, target, componentLabel) {
2218
+ const relative = path.relative(root, target);
2219
+ if (relative === '' || relative === '..' || relative.startsWith(`..${path.sep}`) || path.isAbsolute(relative)) {
2220
+ throw new Error(`Installed ${componentLabel} dependency link path escapes the install tree (${target} is not strictly inside ${root}).`);
2221
+ }
2222
+ }
2223
+ /** P1: an existing path used as a link parent must be a real directory, not a symlink. */
2224
+ function assertRealParentDirectory(dir, componentLabel) {
2225
+ let stat;
2226
+ try {
2227
+ stat = lstatSync(dir);
2228
+ }
2229
+ catch (error) {
2230
+ throw new Error(`Installed ${componentLabel} dependency link parent is missing (${dir}): ${error instanceof Error ? error.message : String(error)}`, { cause: error });
2231
+ }
2232
+ if (stat.isSymbolicLink()) {
2233
+ throw new Error(`Installed ${componentLabel} dependency link parent must not be a symbolic link (${dir}).`);
2234
+ }
2235
+ if (!stat.isDirectory()) {
2236
+ throw new Error(`Installed ${componentLabel} dependency link parent must be a directory (${dir}).`);
2237
+ }
2238
+ }
2239
+ /**
2240
+ * P1 two-phase planning: resolve + validate every `file:../` dependency and
2241
+ * its final link path without mutating anything. Only a fully valid plan is
2242
+ * returned, so an invalid later entry cannot leave earlier links half-applied.
2243
+ */
2244
+ function planComponentFileDependencyLinks(componentDir, componentLabel, dependencies) {
2245
+ const runtimeDir = getPdRuntimeDir();
2246
+ const runtimeDirReal = realpathSync(runtimeDir);
2247
+ const nodeModulesDir = path.join(componentDir, 'node_modules');
2248
+ const operations = [];
2249
+ for (const [name, ref] of Object.entries(dependencies)) {
2250
+ if (typeof ref !== 'string' || !ref.startsWith('file:../'))
2251
+ continue;
2252
+ const siblingName = ref.slice('file:../'.length);
2253
+ // rc-1: only a single ordinary sibling segment; "." / ".." and separators
2254
+ // must not resolve the ref outside the runtime dir.
2255
+ if (!isSafeNameSegment(siblingName)) {
2256
+ throw new Error(`Installed ${componentLabel} declares an unsupported file dependency ref "${ref}" for ${name}.`);
2257
+ }
2258
+ const segments = parseDependencyName(name);
2259
+ if (segments === undefined) {
2260
+ throw new Error(`Installed ${componentLabel} declares an unsupported dependency name "${name}".`);
2261
+ }
2262
+ const siblingDir = path.join(runtimeDir, siblingName);
2263
+ if (!existsSync(siblingDir)) {
2264
+ throw new Error(`${componentLabel} depends on ${ref} but the sibling runtime component is missing: ${siblingDir}`);
2265
+ }
2266
+ const siblingReal = realpathSync(siblingDir);
2267
+ // The sibling must resolve to exactly <runtime>/<siblingName>: a symlink
2268
+ // that redirects the link target outside the runtime is not a sibling.
2269
+ if (path.relative(runtimeDirReal, siblingReal) !== siblingName) {
2270
+ throw new Error(`Installed ${componentLabel} declares a file dependency ref that resolves outside the runtime dir: "${ref}".`);
2271
+ }
2272
+ const linkPath = path.join(nodeModulesDir, ...segments);
2273
+ // Lexical boundary + segment-count: path.join() collapses "." / ".." and
2274
+ // repeated separators, so the normalized path must still have exactly the
2275
+ // declared number of segments and be a strict descendant of node_modules.
2276
+ const relative = path.relative(nodeModulesDir, linkPath);
2277
+ if (relative.split(path.sep).length !== segments.length) {
2278
+ throw new Error(`Installed ${componentLabel} declares an unsupported dependency name "${name}".`);
2279
+ }
2280
+ assertStrictlyInside(nodeModulesDir, linkPath, componentLabel);
2281
+ operations.push({ segments, siblingReal, linkPath });
2282
+ }
2283
+ return operations;
2284
+ }
2275
2285
  /**
2276
2286
  * PRI-711 (generalized for ADR-0020 host adapters): materialize node_modules
2277
2287
  * links for an INSTALLED runtime component so its declared `file:../<component>`
@@ -2298,21 +2308,40 @@ function ensureComponentFileDependencyLinks(componentDir, componentLabel) {
2298
2308
  if (manifest.dependencies !== undefined && !isRecord(manifest.dependencies)) {
2299
2309
  throw new Error(`Installed ${componentLabel} package.json dependencies must be an object (${manifestPath}).`);
2300
2310
  }
2301
- const runtimeDir = getPdRuntimeDir();
2302
- for (const [name, ref] of Object.entries(manifest.dependencies ?? {})) {
2303
- if (typeof ref !== 'string' || !ref.startsWith('file:../'))
2304
- continue;
2305
- const siblingName = ref.slice('file:../'.length);
2306
- // rc-1: the manifest is untrusted input — only accept single-path segment
2307
- // siblings so a crafted ref cannot escape the runtime dir.
2308
- if (!/^[A-Za-z0-9._-]+$/.test(siblingName) || siblingName === '.' || siblingName === '..') {
2309
- throw new Error(`Installed ${componentLabel} declares an unsupported file dependency ref "${ref}" for ${name}.`);
2310
- }
2311
- const siblingDir = path.join(runtimeDir, siblingName);
2312
- if (!existsSync(siblingDir)) {
2313
- throw new Error(`${componentLabel} depends on ${ref} but the sibling runtime component is missing: ${siblingDir}`);
2311
+ // P1: validate EVERYTHING before touching the filesystem. A manifest is
2312
+ // untrusted input, and a name that normalizes to node_modules / the scope
2313
+ // parent / the component root must never reach a recursive delete.
2314
+ const operations = planComponentFileDependencyLinks(componentDir, componentLabel, manifest.dependencies ?? {});
2315
+ if (operations.length === 0)
2316
+ return;
2317
+ const componentDirReal = realpathSync(componentDir);
2318
+ const nodeModulesDir = path.join(componentDir, 'node_modules');
2319
+ // P1: node_modules itself must be a real directory inside the component —
2320
+ // a symlinked parent would redirect every link/delete outside the install.
2321
+ mkdirSync(nodeModulesDir, { recursive: true });
2322
+ assertRealParentDirectory(nodeModulesDir, componentLabel);
2323
+ const nodeModulesReal = realpathSync(nodeModulesDir);
2324
+ assertStrictlyInside(componentDirReal, nodeModulesReal, componentLabel);
2325
+ for (const operation of operations) {
2326
+ const { segments, siblingReal, linkPath } = operation;
2327
+ if (segments.length === 2) {
2328
+ // scoped parent: create only when absent; never replace an existing
2329
+ // real directory (npm may legitimately share it) and never follow a
2330
+ // symlinked parent.
2331
+ const scopeSegment = segments[0];
2332
+ const scopeDir = path.join(nodeModulesDir, scopeSegment);
2333
+ let scopeStat;
2334
+ try {
2335
+ scopeStat = lstatSync(scopeDir);
2336
+ }
2337
+ catch {
2338
+ scopeStat = undefined;
2339
+ }
2340
+ if (scopeStat === undefined)
2341
+ mkdirSync(scopeDir);
2342
+ assertRealParentDirectory(scopeDir, componentLabel);
2343
+ assertStrictlyInside(nodeModulesReal, realpathSync(scopeDir), componentLabel);
2314
2344
  }
2315
- const linkPath = path.join(componentDir, 'node_modules', name);
2316
2345
  let stat;
2317
2346
  try {
2318
2347
  stat = lstatSync(linkPath);
@@ -2323,24 +2352,50 @@ function ensureComponentFileDependencyLinks(componentDir, componentLabel) {
2323
2352
  if (stat !== undefined) {
2324
2353
  if (stat.isSymbolicLink()) {
2325
2354
  try {
2326
- if (realpathSync(linkPath) === realpathSync(siblingDir))
2355
+ if (realpathSync(linkPath) === siblingReal)
2327
2356
  continue;
2328
2357
  }
2329
2358
  catch {
2330
2359
  // Unreadable link target — fall through to replace.
2331
2360
  }
2332
2361
  }
2362
+ // linkPath was proven to be a strict descendant of node_modules during
2363
+ // planning, and both parent levels were re-verified as real directories
2364
+ // above, so the only recursive delete stays inside the component tree.
2333
2365
  rmSync(linkPath, { recursive: stat.isDirectory() && !stat.isSymbolicLink(), force: true });
2334
2366
  }
2335
- mkdirSync(path.dirname(linkPath), { recursive: true });
2336
2367
  if (isWindows()) {
2337
- symlinkSync(siblingDir, linkPath, 'junction');
2368
+ symlinkSync(siblingReal, linkPath, 'junction');
2338
2369
  }
2339
2370
  else {
2340
- symlinkSync(path.relative(path.dirname(linkPath), siblingDir), linkPath, 'dir');
2371
+ symlinkSync(path.relative(path.dirname(linkPath), siblingReal), linkPath, 'dir');
2341
2372
  }
2342
2373
  }
2343
2374
  }
2375
+ /**
2376
+ * G3 §10.5: materialize the INSTALLED pd-cli's `file:../` sibling links
2377
+ * (core / host-runtime / codex-adapter / workbuddy-adapter / install-layout /
2378
+ * principles-disciple) through the shared helper. Replaces the hand-rolled
2379
+ * per-dependency blocks that used to live in syncPdCli(): those short-circuited
2380
+ * on existsSync(), so an npm-materialized physical copy silently won over the
2381
+ * intended runtime sibling.
2382
+ *
2383
+ * Ordering contract: MUST run after installPdCliDependencies() (the dependency
2384
+ * stage is what can (re)materialize node_modules) AND after every sibling is
2385
+ * deployed. A missing sibling fails the install loud (the helper).
2386
+ */
2387
+ export function ensurePdCliResolution() {
2388
+ ensureComponentFileDependencyLinks(getInstalledPdCliDir(), '@principles/pd-cli');
2389
+ }
2390
+ /**
2391
+ * G3 §10.5: same contract for the INSTALLED pd-console (core / host-runtime /
2392
+ * install-layout / principles-disciple / create-principles-disciple). Runs
2393
+ * after installConsoleDependencies() so npm-materialized copies are corrected
2394
+ * instead of silently kept.
2395
+ */
2396
+ export function ensureConsoleResolution() {
2397
+ ensureComponentFileDependencyLinks(getInstalledConsoleDir(), '@principles/pd-console');
2398
+ }
2344
2399
  /**
2345
2400
  * PRI-711: materialize node_modules links for the INSTALLED codex-adapter so
2346
2401
  * its declared `file:../<component>` dependencies resolve under ESM realpath
@@ -3805,6 +3860,10 @@ transaction) {
3805
3860
  if (pdCliSync.globalShim !== null)
3806
3861
  globalShimRecord = pdCliSync.globalShim;
3807
3862
  await installPdCliDependencies();
3863
+ // G3 §10.5: materialize the sibling links AFTER the dependency stage — every
3864
+ // sibling component is already deployed at this point, and a physical copy
3865
+ // the dependency stage produced is now corrected rather than silently kept.
3866
+ ensurePdCliResolution();
3808
3867
  stepIndex++;
3809
3868
  if (spinner)
3810
3869
  updateProgress(spinner, stepIndex, 'Preparing core library for pd-cli...');
@@ -3836,6 +3895,10 @@ transaction) {
3836
3895
  if (spinner)
3837
3896
  updateProgress(spinner, stepIndex, 'Validating bundled console dependencies...');
3838
3897
  await installConsoleDependencies();
3898
+ // G3 §10.5: same ordering contract as pd-cli — links after the dependency
3899
+ // stage, with every console sibling (plugin / release-manager / core /
3900
+ // host-runtime / install-layout) already deployed.
3901
+ ensureConsoleResolution();
3839
3902
  stepIndex++;
3840
3903
  // PRI-912 (SPEC-P1′-A): dedup the plugin's bundled @principles/core copy
3841
3904
  // into a canonical junction only after EVERY component is deployed, so a