@ryanfw/prompt-orchestration-pipeline 0.7.0 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ryanfw/prompt-orchestration-pipeline",
3
- "version": "0.7.0",
3
+ "version": "0.8.0",
4
4
  "description": "A Prompt-orchestration pipeline (POP) is a framework for building, running, and experimenting with complex chains of LLM tasks.",
5
5
  "type": "module",
6
6
  "main": "src/ui/server.js",
@@ -257,12 +257,6 @@ async function appendLine(file, line) {
257
257
  await fs.appendFile(file, line);
258
258
  }
259
259
 
260
- async function atomicWrite(file, data) {
261
- const tmp = file + ".tmp";
262
- await fs.writeFile(tmp, data);
263
- await fs.rename(tmp, file);
264
- }
265
-
266
260
  function normalizeError(e) {
267
261
  // If it's already a structured error object with a message string, pass it through
268
262
  if (e && typeof e === "object" && typeof e.message === "string") {
@@ -4,9 +4,8 @@ import { ensureSymlink } from "./symlink-utils.js";
4
4
  /**
5
5
  * Creates a taskDir symlink bridge to ensure deterministic module resolution.
6
6
  *
7
- * This function creates three symlinks in the task directory:
8
- * - taskDir/node_modules -> {poRoot}/node_modules (for bare package specifiers)
9
- * - taskDir/project -> {poRoot} (optional convenience for absolute project paths)
7
+ * This function creates two symlinks in the task directory:
8
+ * - taskDir/node_modules -> adjacent to PO_ROOT/node_modules (for bare package specifiers)
10
9
  * - taskDir/_task_root -> dirname(taskModulePath) (for relative imports)
11
10
  *
12
11
  * @param {Object} options - Configuration options
@@ -31,15 +30,14 @@ export async function ensureTaskSymlinkBridge({
31
30
  fs.mkdir(normalizedTaskDir, { recursive: true })
32
31
  );
33
32
 
34
- // Create symlink for node_modules -> {poRoot}/node_modules
33
+ // Create symlink for node_modules -> adjacent to PO_ROOT
35
34
  const nodeModulesLink = path.join(normalizedTaskDir, "node_modules");
36
- const nodeModulesTarget = path.join(normalizedPoRoot, "node_modules");
35
+ const nodeModulesTarget = path.join(
36
+ path.resolve(normalizedPoRoot, ".."),
37
+ "node_modules"
38
+ );
37
39
  await ensureSymlink(nodeModulesLink, nodeModulesTarget, "dir");
38
40
 
39
- // Create symlink for project -> {poRoot}
40
- const projectLink = path.join(normalizedTaskDir, "project");
41
- await ensureSymlink(projectLink, normalizedPoRoot, "dir");
42
-
43
41
  // Create symlink for _task_root -> dirname(taskModulePath)
44
42
  const taskRootLink = path.join(normalizedTaskDir, "_task_root");
45
43
  const taskRootTarget = path.dirname(normalizedTaskModulePath);
package/src/ui/server.js CHANGED
@@ -1872,11 +1872,6 @@ async function startServer({ dataDir, port: customPort }) {
1872
1872
  const { initPATHS } = await import("./config-bridge.node.js");
1873
1873
  initPATHS(dataDir);
1874
1874
 
1875
- // Set the data directory environment variable
1876
- if (dataDir) {
1877
- process.env.PO_ROOT = dataDir;
1878
- }
1879
-
1880
1875
  // Require PO_ROOT for non-test runs
1881
1876
  if (!process.env.PO_ROOT) {
1882
1877
  if (process.env.NODE_ENV !== "test") {
package/src/ui/watcher.js CHANGED
@@ -37,7 +37,11 @@ export function start(paths, onChange, options = {}) {
37
37
 
38
38
  // Initialize chokidar watcher
39
39
  const watcher = chokidar.watch(paths, {
40
- ignored: /(^|[\/\\])(\.git|node_modules|dist)([\/\\]|$)/,
40
+ ignored: [
41
+ /(^|[\/\\])(\.git|node_modules|dist)([\/\\]|$)/,
42
+ /pipeline-data\/[^/]+\/[^/]+\/tasks\/[^/]+\/_task_root([\/\\]|$)/,
43
+ ],
44
+ followSymlinks: false,
41
45
  persistent: true,
42
46
  ignoreInitial: true,
43
47
  });