pi-harness-runtime 1.1.428 → 1.1.429

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.
Files changed (115) hide show
  1. package/package.json +1 -1
  2. package/packages/a2a-adapter/package.json +1 -1
  3. package/packages/agent-policy/package.json +1 -1
  4. package/packages/architecture-generator/package.json +1 -1
  5. package/packages/auth/package.json +1 -1
  6. package/packages/autonomous-refactor/package.json +1 -1
  7. package/packages/autonomous-runtime/package.json +1 -1
  8. package/packages/cache-strategy/package.json +1 -1
  9. package/packages/capability-registry/package.json +1 -1
  10. package/packages/checkpoint/package.json +1 -1
  11. package/packages/cli-plugin-sdk/package.json +1 -1
  12. package/packages/clipboard/package.json +1 -1
  13. package/packages/clipboard-plugin/dist/index.js +1 -1
  14. package/packages/clipboard-plugin/dist/index.js.map +1 -1
  15. package/packages/clipboard-plugin/package.json +1 -2
  16. package/packages/clipboard-plugin/src/index.ts +1 -1
  17. package/packages/code-generation/package.json +1 -1
  18. package/packages/code-review/package.json +1 -1
  19. package/packages/codex-adapter/package.json +1 -1
  20. package/packages/codex-watcher/package.json +1 -1
  21. package/packages/config-capture/package.json +1 -1
  22. package/packages/connection-runtime/package.json +1 -1
  23. package/packages/context-compiler/package.json +1 -1
  24. package/packages/context-discovery/package.json +1 -1
  25. package/packages/context-manager/package.json +1 -1
  26. package/packages/contracts/package.json +1 -1
  27. package/packages/cookie-sanitizer/package.json +1 -1
  28. package/packages/cost-optimizer/package.json +1 -1
  29. package/packages/dependency-analyzer/package.json +1 -1
  30. package/packages/django-plugin/package.json +1 -1
  31. package/packages/doc-generator/package.json +1 -1
  32. package/packages/durable-review/package.json +1 -1
  33. package/packages/e2e-tester/package.json +1 -1
  34. package/packages/evaluation-engine/package.json +1 -1
  35. package/packages/evaluation-runner/package.json +1 -1
  36. package/packages/event-bus/package.json +1 -1
  37. package/packages/event-sink/package.json +1 -1
  38. package/packages/event-store/package.json +1 -1
  39. package/packages/experience-replay/package.json +1 -1
  40. package/packages/feedback-collector/package.json +1 -1
  41. package/packages/file-copy-helper/package.json +1 -1
  42. package/packages/framework-detector/package.json +1 -1
  43. package/packages/framework-plugin-sdk/package.json +1 -1
  44. package/packages/frappe-plugin/package.json +1 -1
  45. package/packages/generic-web-plugin/package.json +1 -1
  46. package/packages/health-monitor/package.json +1 -1
  47. package/packages/intent-analyzer/package.json +1 -1
  48. package/packages/jev-judge/package.json +1 -1
  49. package/packages/knowledge-graph/package.json +1 -1
  50. package/packages/knowledge-retrieval/package.json +1 -1
  51. package/packages/laravel-plugin/package.json +1 -1
  52. package/packages/learning-engine/package.json +1 -1
  53. package/packages/logging/package.json +1 -1
  54. package/packages/mcp-adapter/package.json +1 -1
  55. package/packages/memory-engine/package.json +1 -1
  56. package/packages/milestone-manager/package.json +1 -1
  57. package/packages/model-registry/package.json +1 -1
  58. package/packages/nextjs-plugin/package.json +1 -1
  59. package/packages/notification/package.json +1 -1
  60. package/packages/observability/package.json +1 -1
  61. package/packages/okf-indexer/package.json +1 -1
  62. package/packages/paperclip-integration/package.json +1 -1
  63. package/packages/performance-optimizer/package.json +1 -1
  64. package/packages/permission-mode/package.json +1 -1
  65. package/packages/privilege-broker/package.json +1 -1
  66. package/packages/project-analyzer/package.json +1 -1
  67. package/packages/project-bootstrap/package.json +1 -1
  68. package/packages/projection-engine/package.json +1 -1
  69. package/packages/prompt-compiler/package.json +1 -1
  70. package/packages/prompt-versioning/package.json +1 -1
  71. package/packages/provider-adapter-sdk/package.json +1 -1
  72. package/packages/provider-router/package.json +1 -1
  73. package/packages/provider-selector/package.json +1 -1
  74. package/packages/providers/package.json +1 -1
  75. package/packages/qdrant-skills/package.json +1 -1
  76. package/packages/quota-manager/package.json +1 -1
  77. package/packages/rate-limiter/package.json +1 -1
  78. package/packages/react-vite-plugin/package.json +1 -1
  79. package/packages/relay/package.json +1 -1
  80. package/packages/release-manager/package.json +1 -1
  81. package/packages/requirement-compiler/package.json +1 -1
  82. package/packages/runtime/package.json +1 -1
  83. package/packages/scheduler/package.json +1 -1
  84. package/packages/scheduler-adapter/package.json +1 -1
  85. package/packages/session/package.json +1 -1
  86. package/packages/session-api/package.json +1 -1
  87. package/packages/session-export/package.json +1 -1
  88. package/packages/shared-context/package.json +1 -1
  89. package/packages/skill-mcp-client/package.json +1 -1
  90. package/packages/skill-registry/package.json +1 -1
  91. package/packages/skills/package.json +1 -1
  92. package/packages/sprint-planner/package.json +1 -1
  93. package/packages/subscription-engine/package.json +1 -1
  94. package/packages/task-compiler/package.json +1 -1
  95. package/packages/tencentdb-memory/package.json +1 -1
  96. package/packages/tencentdb-sync/package.json +1 -1
  97. package/packages/test-data-generator/package.json +1 -1
  98. package/packages/test-generator/package.json +1 -1
  99. package/packages/todo-bd-sync/package.json +1 -1
  100. package/packages/token-estimation/package.json +1 -1
  101. package/packages/token-optimizer/package.json +1 -1
  102. package/packages/tooling-preference/package.json +1 -1
  103. package/packages/trajectory/package.json +1 -1
  104. package/packages/tui/package.json +1 -1
  105. package/packages/two-phase-review/package.json +1 -1
  106. package/packages/types/package.json +1 -1
  107. package/packages/voice-api/package.json +1 -1
  108. package/packages/webmcp-tester/package.json +1 -1
  109. package/packages/wiki/package.json +1 -1
  110. package/packages/workflow-events/package.json +1 -1
  111. package/packages/workspace-scanner/package.json +1 -1
  112. package/packages/worktree/package.json +1 -1
  113. package/packages/write-review/package.json +1 -1
  114. package/scripts/lib/runtime-imports.ts +90 -26
  115. package/scripts/verify-package-contents.ts +42 -0
@@ -31,7 +31,9 @@ import { execFile, spawnSync } from "node:child_process";
31
31
  import { join, resolve, dirname, relative } from "node:path";
32
32
  import { fileURLToPath } from "node:url";
33
33
  import {
34
+ extractBareImports,
34
35
  extractRelativeValueImports,
36
+ packageNameOf,
35
37
  resolveRelativeImport,
36
38
  } from "./lib/runtime-imports.js";
37
39
 
@@ -445,6 +447,34 @@ async function packFileList(): Promise<string[]> {
445
447
  }
446
448
  }
447
449
 
450
+ /**
451
+ * The names of the workspace packages.
452
+ *
453
+ * The workspace packages ship inside this one tarball and are never
454
+ * installed as separate packages, so a bare import that names one of them
455
+ * cannot resolve at runtime - not in a consumer's installation, and not in
456
+ * the repository either, because the workspace is never linked into
457
+ * `node_modules` under its own name.
458
+ */
459
+ function workspacePackageNames(): Set<string> {
460
+ const names = new Set<string>();
461
+ const packagesDir = join(ROOT, "packages");
462
+ if (!existsSync(packagesDir)) return names;
463
+ for (const name of readdirSync(packagesDir)) {
464
+ const manifestPath = join(packagesDir, name, "package.json");
465
+ if (!existsSync(manifestPath)) continue;
466
+ try {
467
+ const manifest = JSON.parse(readFileSync(manifestPath, "utf8")) as {
468
+ name?: string;
469
+ };
470
+ if (manifest.name) names.add(manifest.name);
471
+ } catch {
472
+ // A manifest that cannot be read names no package.
473
+ }
474
+ }
475
+ return names;
476
+ }
477
+
448
478
  /**
449
479
  * Every relative import of a published file must resolve.
450
480
  *
@@ -461,6 +491,7 @@ async function packFileList(): Promise<string[]> {
461
491
  */
462
492
  function checkRelativeImports(files: string[]): void {
463
493
  const published = new Set(files);
494
+ const workspaceNames = workspacePackageNames();
464
495
  for (const path of files) {
465
496
  if (!/\.(ts|mts|cts|mjs|js|cjs)$/.test(path)) continue;
466
497
  if (path.endsWith(".d.ts") || path.endsWith(".d.mts")) continue;
@@ -481,6 +512,17 @@ function checkRelativeImports(files: string[]): void {
481
512
  detail: `${path} imports ${specifier} but ${result.reason}`,
482
513
  });
483
514
  }
515
+ // A bare import that names a workspace package names something that
516
+ // is never installed: the workspace packages are inside this one
517
+ // tarball. Such an import has to point at the built artifact.
518
+ for (const specifier of extractBareImports(content)) {
519
+ const name = packageNameOf(specifier);
520
+ if (!workspaceNames.has(name)) continue;
521
+ problems.push({
522
+ kind: "broken-import",
523
+ detail: `${path} imports ${specifier} but ${name} is a workspace package: it ships inside this tarball and is never installed, so the name cannot resolve`,
524
+ });
525
+ }
484
526
  }
485
527
  }
486
528