pi-harness-runtime 1.1.218 → 1.1.220

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 (101) hide show
  1. package/index.ts +33 -42
  2. package/package.json +1 -1
  3. package/packages/a2a-adapter/package.json +1 -1
  4. package/packages/agent-policy/package.json +1 -1
  5. package/packages/architecture-generator/package.json +1 -1
  6. package/packages/auth/package.json +1 -1
  7. package/packages/autonomous-refactor/package.json +1 -1
  8. package/packages/autonomous-runtime/package.json +1 -1
  9. package/packages/cache-strategy/package.json +1 -1
  10. package/packages/capability-registry/package.json +1 -1
  11. package/packages/checkpoint/package.json +1 -1
  12. package/packages/cli-plugin-sdk/package.json +1 -1
  13. package/packages/clipboard/package.json +1 -1
  14. package/packages/clipboard-plugin/package.json +1 -1
  15. package/packages/code-generation/package.json +1 -1
  16. package/packages/code-review/package.json +1 -1
  17. package/packages/codex-adapter/package.json +1 -1
  18. package/packages/codex-watcher/package.json +1 -1
  19. package/packages/config-capture/package.json +1 -1
  20. package/packages/context-compiler/package.json +1 -1
  21. package/packages/context-discovery/package.json +1 -1
  22. package/packages/context-manager/package.json +1 -1
  23. package/packages/cookie-sanitizer/package.json +1 -1
  24. package/packages/cost-optimizer/package.json +1 -1
  25. package/packages/dependency-analyzer/package.json +1 -1
  26. package/packages/django-plugin/package.json +1 -1
  27. package/packages/doc-generator/package.json +1 -1
  28. package/packages/e2e-tester/package.json +1 -1
  29. package/packages/evaluation-engine/package.json +1 -1
  30. package/packages/evaluation-runner/package.json +1 -1
  31. package/packages/event-bus/package.json +1 -1
  32. package/packages/event-store/package.json +1 -1
  33. package/packages/experience-replay/package.json +1 -1
  34. package/packages/feedback-collector/package.json +1 -1
  35. package/packages/file-copy-helper/package.json +1 -1
  36. package/packages/framework-detector/package.json +1 -1
  37. package/packages/framework-plugin-sdk/package.json +1 -1
  38. package/packages/frappe-plugin/package.json +1 -1
  39. package/packages/generic-web-plugin/package.json +1 -1
  40. package/packages/health-monitor/package.json +1 -1
  41. package/packages/intent-analyzer/package.json +1 -1
  42. package/packages/jev-judge/package.json +1 -1
  43. package/packages/knowledge-graph/package.json +1 -1
  44. package/packages/knowledge-retrieval/package.json +1 -1
  45. package/packages/laravel-plugin/package.json +1 -1
  46. package/packages/learning-engine/package.json +1 -1
  47. package/packages/mcp-adapter/package.json +1 -1
  48. package/packages/memory-engine/package.json +1 -1
  49. package/packages/milestone-manager/package.json +1 -1
  50. package/packages/model-registry/package.json +1 -1
  51. package/packages/nextjs-plugin/package.json +1 -1
  52. package/packages/notification/package.json +1 -1
  53. package/packages/observability/package.json +1 -1
  54. package/packages/okf-indexer/package.json +1 -1
  55. package/packages/paperclip-integration/package.json +1 -1
  56. package/packages/performance-optimizer/package.json +1 -1
  57. package/packages/privilege-broker/package.json +1 -1
  58. package/packages/project-analyzer/package.json +1 -1
  59. package/packages/project-bootstrap/package.json +1 -1
  60. package/packages/projection-engine/package.json +1 -1
  61. package/packages/prompt-compiler/package.json +1 -1
  62. package/packages/prompt-versioning/package.json +1 -1
  63. package/packages/provider-adapter-sdk/package.json +1 -1
  64. package/packages/provider-router/package.json +1 -1
  65. package/packages/provider-selector/package.json +1 -1
  66. package/packages/providers/package.json +1 -1
  67. package/packages/qdrant-skills/package.json +1 -1
  68. package/packages/quota-manager/package.json +1 -1
  69. package/packages/rate-limiter/package.json +1 -1
  70. package/packages/react-vite-plugin/package.json +1 -1
  71. package/packages/release-manager/package.json +1 -1
  72. package/packages/requirement-compiler/package.json +1 -1
  73. package/packages/runtime/package.json +1 -1
  74. package/packages/scheduler/package.json +1 -1
  75. package/packages/scheduler-adapter/package.json +1 -1
  76. package/packages/session/package.json +1 -1
  77. package/packages/session-api/package.json +1 -1
  78. package/packages/session-export/package.json +1 -1
  79. package/packages/shared-context/package.json +1 -1
  80. package/packages/skill-mcp-client/package.json +1 -1
  81. package/packages/skill-registry/package.json +1 -1
  82. package/packages/skills/package.json +1 -1
  83. package/packages/sprint-planner/package.json +1 -1
  84. package/packages/subscription-engine/package.json +1 -1
  85. package/packages/task-compiler/package.json +1 -1
  86. package/packages/telegram/package.json +1 -1
  87. package/packages/tencentdb-memory/package.json +1 -1
  88. package/packages/tencentdb-sync/package.json +1 -1
  89. package/packages/test-data-generator/package.json +1 -1
  90. package/packages/test-generator/package.json +1 -1
  91. package/packages/todo-bd-sync/package.json +1 -1
  92. package/packages/token-estimation/package.json +1 -1
  93. package/packages/token-optimizer/package.json +1 -1
  94. package/packages/trajectory/package.json +1 -1
  95. package/packages/tui/package.json +1 -1
  96. package/packages/types/package.json +1 -1
  97. package/packages/webmcp-tester/package.json +1 -1
  98. package/packages/workflow-events/package.json +1 -1
  99. package/packages/workspace-scanner/package.json +1 -1
  100. package/packages/worktree/package.json +1 -1
  101. package/packages/write-review/package.json +1 -1
package/index.ts CHANGED
@@ -140,9 +140,7 @@ async function initAutoContinue(pi: ExtensionAPI): Promise<void> {
140
140
  readFileSync(`${keysDir}/jev-api-key.txt`, "utf8").trim().length > 10;
141
141
 
142
142
  if (!hasEnvKey && !hasFileKey) {
143
- console.error(
144
- "[auto-continue] No Jev API key found. Set TYPESAFE_API_KEY run: echo \"{api_key}\" > ~/.pi-harness-runtime/keys/jev-api-key.txt"
145
- );
143
+ logToFile("[auto-continue]", "No Jev API key found. Set TYPESAFE_API_KEY run: echo \"{api_key}\" > ~/.pi-harness-runtime/keys/jev-api-key.txt");
146
144
  return;
147
145
  }
148
146
 
@@ -888,12 +886,8 @@ function initMoocodingSyncHint(): void {
888
886
  if (benchEntries.length === 0) return;
889
887
 
890
888
  const targetPath = join(homedir(), ".pi-harness-runtime", "skills");
891
- console.error(
892
- `[pi-harness] ${benchEntries.length} moocoding skill(s) found in frappe-bench`
893
- );
894
- console.error(
895
- `[pi-harness] Run /sync-skills --from ${benchPath} --to ${targetPath}`
896
- );
889
+ logToFile("[pi-harness]", `${benchEntries.length} moocoding skill(s) found in frappe-bench`);
890
+ logToFile("[pi-harness]", `Run /sync-skills --from ${benchPath} --to ${targetPath}`);
897
891
  } catch {
898
892
  // Non-fatal — ignore errors
899
893
  }
@@ -1527,7 +1521,7 @@ function initJobPipeWatcher(pi: ExtensionAPI): void {
1527
1521
 
1528
1522
  // Poll every 60 seconds for new commands (user approval doesn't need sub-second latency)
1529
1523
  setInterval(startWatcher, 60_000);
1530
- console.error(`[JobPipe] Watching for Telegram approval commands via API (polling every 60s)`);
1524
+ logToFile("[JobPipe]", "Watching for Telegram approval commands via API (polling every 60s)");
1531
1525
  }
1532
1526
 
1533
1527
  export default function (pi: ExtensionAPI) {
@@ -1582,7 +1576,7 @@ export default function (pi: ExtensionAPI) {
1582
1576
  maxIdlePolls: Infinity,
1583
1577
  onSessionChange: (session) => {
1584
1578
  if (session) {
1585
- console.error(`[codex] Session started: ${session.threadName}`);
1579
+ logToFile("[codex]", `Session started: ${session.threadName}`);
1586
1580
  nc("CodexSessionStarted", {
1587
1581
  requirement: session.threadName || "Codex session",
1588
1582
  taskTitle: session.id,
@@ -1673,9 +1667,7 @@ ${planPreview}`,
1673
1667
  // pi.on("session_end", () => watcher.stop()); // Removed - type error
1674
1668
  }
1675
1669
  } else {
1676
- console.error(
1677
- "[paperclip] Not configured. Set PAPERCLIP_API_KEY or write API key to ~/.pi-harness-runtime/keys/paperclip-api-key.txt",
1678
- );
1670
+ logToFile("[paperclip]", "Not configured. Set PAPERCLIP_API_KEY or write API key to ~/.pi-harness-runtime/keys/paperclip-api-key.txt");
1679
1671
  }
1680
1672
 
1681
1673
  // --- loop-completions: Watch daemon completions → agent TUI todos --------
@@ -1935,13 +1927,13 @@ Run \`bd ready\` to see current bd issues.
1935
1927
  )
1936
1928
  ) {
1937
1929
  providerOverloadResumeAttempts += 1;
1938
- console.error(`[pi-harness] Scheduling provider overload resume #${providerOverloadResumeAttempts}`);
1930
+ logToFile("[pi-harness]", `Scheduling provider overload resume #${providerOverloadResumeAttempts}`);
1939
1931
  scheduleProviderOverloadResume(() => ctx.hasPendingMessages());
1940
1932
  } else if (m.stopReason === "stop") {
1941
1933
  outputLimitResumeAttempts = 0;
1942
1934
  pendingOutputLimitResumeAfterSettled = false;
1943
1935
  if (providerOverloadResumeAttempts > 0) {
1944
- console.error(`[pi-harness] Counter reset (stopReason=stop), was=${providerOverloadResumeAttempts}`);
1936
+ logToFile("[pi-harness]", `Counter reset (stopReason=stop), was=${providerOverloadResumeAttempts}`);
1945
1937
  }
1946
1938
  providerOverloadResumeAttempts = 0;
1947
1939
  clearProviderOverloadResume();
@@ -2055,8 +2047,7 @@ Run \`bd ready\` to see current bd issues.
2055
2047
  resets_at: signal.resetsAt,
2056
2048
  });
2057
2049
  } catch (e) {
2058
- console.error(
2059
- "[pi-harness] tui-signal write failed:",
2050
+ logToFile("[pi-harness] tui-signal write failed:",
2060
2051
  e instanceof Error ? e.message : String(e),
2061
2052
  );
2062
2053
  }
@@ -2099,7 +2090,7 @@ Run \`bd ready\` to see current bd issues.
2099
2090
  } catch (e) {
2100
2091
  const msg = e instanceof Error ? e.message : String(e);
2101
2092
  if (msg.includes("ENOSPC")) {
2102
- console.error(
2093
+ logToFile(
2103
2094
  "[pi-harness] cookie-sanitizer watcher: ENOSPC — " +
2104
2095
  "inotify watcher limit reached.\n" +
2105
2096
  "Fix (once, as root):\n" +
@@ -2108,7 +2099,7 @@ Run \`bd ready\` to see current bd issues.
2108
2099
  "Drop folder sync still works — polling will resume automatically.",
2109
2100
  );
2110
2101
  } else {
2111
- console.error("[pi-harness] cookie-sanitizer watcher failed to start:", msg);
2102
+ logToFile("[pi-harness] cookie-sanitizer watcher failed to start:", msg);
2112
2103
  }
2113
2104
  }
2114
2105
 
@@ -2287,8 +2278,9 @@ Run \`bd ready\` to see current bd issues.
2287
2278
  };
2288
2279
  } catch (error) {
2289
2280
  if (!suppressErrors) {
2290
- console.error(
2291
- "[pi-harness] Browser-profile quota fetch skipped:",
2281
+ logToFile(
2282
+ "[pi-harness]",
2283
+ "Browser-profile quota fetch skipped:",
2292
2284
  error instanceof Error ? error.message : String(error),
2293
2285
  );
2294
2286
  }
@@ -2333,8 +2325,9 @@ Run \`bd ready\` to see current bd issues.
2333
2325
  return true;
2334
2326
  } catch (error) {
2335
2327
  if (!suppressErrors) {
2336
- console.error(
2337
- "[pi-harness] Quota auto-fetch skipped:",
2328
+ logToFile(
2329
+ "[pi-harness]",
2330
+ "Quota auto-fetch skipped:",
2338
2331
  error instanceof Error ? error.message : String(error),
2339
2332
  );
2340
2333
  }
@@ -2381,8 +2374,9 @@ Run \`bd ready\` to see current bd issues.
2381
2374
  return true;
2382
2375
  } catch (error) {
2383
2376
  if (!suppressErrors) {
2384
- console.error(
2385
- "[pi-harness] OpenAI quota auto-fetch skipped:",
2377
+ logToFile(
2378
+ "[pi-harness]",
2379
+ "OpenAI quota auto-fetch skipped:",
2386
2380
  error instanceof Error ? error.message : String(error),
2387
2381
  );
2388
2382
  }
@@ -2403,7 +2397,7 @@ Run \`bd ready\` to see current bd issues.
2403
2397
  const data = await _glmQuotaScraper.fetchUsage();
2404
2398
  if (!data) {
2405
2399
  if (!suppressErrors) {
2406
- console.error("[pi-harness] GLM quota auto-fetch: no data returned");
2400
+ logToFile("[pi-harness]", "GLM quota auto-fetch: no data returned");
2407
2401
  }
2408
2402
  return false;
2409
2403
  }
@@ -2460,16 +2454,13 @@ Run \`bd ready\` to see current bd issues.
2460
2454
  const resetTime = resetAt
2461
2455
  ? `resets at ${new Date(resetAt).toLocaleString()}`
2462
2456
  : "resets soon";
2463
- console.error(`[pi-harness] GLM 5h quota exhausted! ${resetTime}`);
2457
+ logToFile("[pi-harness]", `GLM 5h quota exhausted! ${resetTime}`);
2464
2458
  }
2465
2459
  return true;
2466
2460
  }
2467
2461
 
2468
2462
  if (!suppressErrors) {
2469
- console.error(
2470
- "[pi-harness] GLM quota auto-fetch skipped:",
2471
- errorMsg,
2472
- );
2463
+ logToFile("[pi-harness]", "GLM quota auto-fetch skipped:", errorMsg);
2473
2464
  }
2474
2465
  return false;
2475
2466
  }
@@ -3272,14 +3263,15 @@ Run \`bd ready\` to see current bd issues.
3272
3263
  clearProviderOverloadResume();
3273
3264
  const delayMs = getProviderOverloadResumeDelayMs();
3274
3265
  const delayMinutes = Math.max(1, Math.round(delayMs / 60_000));
3275
- console.error(
3276
- `[pi-harness] Provider overloaded; scheduling resume in ${delayMinutes} min (${delayMs}ms) attempt=${providerOverloadResumeAttempts}`,
3266
+ logToFile(
3267
+ "[pi-harness]",
3268
+ `Provider overloaded; scheduling resume in ${delayMinutes} min (${delayMs}ms) attempt=${providerOverloadResumeAttempts}`,
3277
3269
  );
3278
3270
  providerOverloadResumeTimer = setTimeout(() => {
3279
3271
  providerOverloadResumeTimer = null;
3280
- console.error(`[pi-harness] Provider resume timer fired, sending "resume"`);
3272
+ logToFile("[pi-harness]", 'Provider resume timer fired, sending "resume"');
3281
3273
  if (hasPendingMessages()) {
3282
- console.error(`[pi-harness] Resume skipped: hasPendingMessages=true`);
3274
+ logToFile("[pi-harness]", "Resume skipped: hasPendingMessages=true");
3283
3275
  return;
3284
3276
  }
3285
3277
  void queueAutoResume(
@@ -3302,8 +3294,9 @@ Run \`bd ready\` to see current bd issues.
3302
3294
  error: reason,
3303
3295
  });
3304
3296
  } catch (error) {
3305
- console.error(
3306
- `[pi-harness] Failed to queue ${reason} auto-resume:`,
3297
+ logToFile(
3298
+ "[pi-harness]",
3299
+ `Failed to queue ${reason} auto-resume:`,
3307
3300
  error instanceof Error ? error.message : String(error),
3308
3301
  );
3309
3302
  }
@@ -3316,9 +3309,7 @@ Run \`bd ready\` to see current bd issues.
3316
3309
  if (consecutiveCompactFailures >= MAX_PROACTIVE_COMPACT_FAILURES) {
3317
3310
  if (!proactiveCompactCircuitReported) {
3318
3311
  proactiveCompactCircuitReported = true;
3319
- console.error(
3320
- `[pi-harness] Proactive compact disabled after ${consecutiveCompactFailures} consecutive failures`,
3321
- );
3312
+ logToFile("[pi-harness]", `Proactive compact disabled after ${consecutiveCompactFailures} consecutive failures`);
3322
3313
  }
3323
3314
  return;
3324
3315
  }
@@ -3353,7 +3344,7 @@ Run \`bd ready\` to see current bd issues.
3353
3344
  onError: (error) => {
3354
3345
  proactiveCompactInFlight = false;
3355
3346
  consecutiveCompactFailures += 1;
3356
- console.error("[pi-harness] Proactive compact failed:", error.message);
3347
+ logToFile("[pi-harness]", "Proactive compact failed:", error.message);
3357
3348
  },
3358
3349
  };
3359
3350
  ctx.compact(compactOptions);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pi-harness-runtime",
3
- "version": "1.1.218",
3
+ "version": "1.1.220",
4
4
  "description": "[BETA] Codex-style /usage status + autonomous coding harness for pi. Not production ready — expect breaking changes.",
5
5
  "type": "module",
6
6
  "scripts": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/a2a-adapter",
3
- "version": "1.1.218",
3
+ "version": "1.1.220",
4
4
  "type": "module",
5
5
  "description": "Google Agent-to-Agent (A2A) protocol adapter for pi-harness",
6
6
  "main": "dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/agent-policy",
3
- "version": "1.1.218",
3
+ "version": "1.1.220",
4
4
  "description": "Agent policy runtime for pi-harness - enforces mandatory rule delivery and mutation gating",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/architecture-generator",
3
- "version": "1.1.218",
3
+ "version": "1.1.220",
4
4
  "description": "Generate ADR and Mermaid diagrams from project analysis",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/auth",
3
- "version": "1.1.218",
3
+ "version": "1.1.220",
4
4
  "description": "pi-harness-runtime — auth",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/autonomous-refactor",
3
- "version": "1.1.218",
3
+ "version": "1.1.220",
4
4
  "type": "module",
5
5
  "description": "Autonomous refactoring engine",
6
6
  "main": "dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/autonomous-runtime",
3
- "version": "1.1.218",
3
+ "version": "1.1.220",
4
4
  "description": "Autonomous Operations Runtime — task inbox, lease management, and worker lifecycle (RFC-0101)",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/cache-strategy",
3
- "version": "1.1.218",
3
+ "version": "1.1.220",
4
4
  "type": "module",
5
5
  "description": "Smart caching with TTL and invalidation strategies (RFC-0022)",
6
6
  "main": "dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/capability-registry",
3
- "version": "1.1.218",
3
+ "version": "1.1.220",
4
4
  "description": "Capability Registry for pi-harness-runtime — tracks model capabilities and enables capability-based routing",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/checkpoint",
3
- "version": "1.1.218",
3
+ "version": "1.1.220",
4
4
  "description": "Enhanced checkpoint system with incremental snapshots, diff-based storage, and recovery strategies",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/cli-plugin-sdk",
3
- "version": "1.1.218",
3
+ "version": "1.1.220",
4
4
  "type": "module",
5
5
  "description": "CLI Plugin SDK for pi-harness — install, list, remove, update, invoke plugins",
6
6
  "main": "dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/clipboard",
3
- "version": "1.1.218",
3
+ "version": "1.1.220",
4
4
  "type": "module",
5
5
  "main": "src/index.ts",
6
6
  "exports": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/clipboard-plugin",
3
- "version": "1.1.218",
3
+ "version": "1.1.220",
4
4
  "type": "module",
5
5
  "main": "src/index.ts",
6
6
  "exports": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/code-generation",
3
- "version": "1.1.218",
3
+ "version": "1.1.220",
4
4
  "description": "Code generation pipeline for pi-harness-runtime",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/code-review",
3
- "version": "1.1.218",
3
+ "version": "1.1.220",
4
4
  "description": "Automated code review engine for pi-harness-runtime",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/codex-adapter",
3
- "version": "1.1.218",
3
+ "version": "1.1.220",
4
4
  "type": "module",
5
5
  "description": "OpenAI Codex provider adapter for pi-harness",
6
6
  "main": "dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/codex-watcher",
3
- "version": "1.1.218",
3
+ "version": "1.1.220",
4
4
  "description": "Watches Codex CLI sessions and emits visible messages for PING-PONG monitoring",
5
5
  "type": "module",
6
6
  "main": "./dist/src/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@moocoding/config-capture",
3
- "version": "1.1.218",
3
+ "version": "1.1.220",
4
4
  "description": "Auto-capture API-fetched configuration values to AGENTS.md",
5
5
  "type": "module",
6
6
  "main": "src/index.ts",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/context-compiler",
3
- "version": "1.1.218",
3
+ "version": "1.1.220",
4
4
  "description": "Bounded context selection engine for pi-harness-runtime",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/context-discovery",
3
- "version": "1.1.218",
3
+ "version": "1.1.220",
4
4
  "type": "module",
5
5
  "main": "src/index.ts",
6
6
  "exports": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/context-manager",
3
- "version": "1.1.218",
3
+ "version": "1.1.220",
4
4
  "description": "Context Window Manager — prevents model context overflow via compaction and resume prompts (RFC-0010)",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/cookie-sanitizer",
3
- "version": "1.1.218",
3
+ "version": "1.1.220",
4
4
  "description": "pi-harness-runtime — cookie sanitizer (provider-quota cookie file normaliser)",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/cost-optimizer",
3
- "version": "1.1.218",
3
+ "version": "1.1.220",
4
4
  "description": "Cost Optimizer for pi-harness-runtime — budget tracking, forecasting, and model selection optimization",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/dependency-analyzer",
3
- "version": "1.1.218",
3
+ "version": "1.1.220",
4
4
  "type": "module",
5
5
  "main": "src/index.ts",
6
6
  "exports": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/django-plugin",
3
- "version": "1.1.218",
3
+ "version": "1.1.220",
4
4
  "description": "Django framework analysis — models, management commands, settings",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/doc-generator",
3
- "version": "1.1.218",
3
+ "version": "1.1.220",
4
4
  "description": "Auto-Doc Generator — generate documentation from source code (RFC-0014)",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/e2e-tester",
3
- "version": "1.1.218",
3
+ "version": "1.1.220",
4
4
  "description": "WebMCP-powered E2E testing for pi-harness - natural language test scenarios",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/evaluation-engine",
3
- "version": "1.1.218",
3
+ "version": "1.1.220",
4
4
  "description": "Evaluation engine for pi-harness runtime (RFC-0057)",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/evaluation-runner",
3
- "version": "1.1.218",
3
+ "version": "1.1.220",
4
4
  "type": "module",
5
5
  "description": "Framework-agnostic evaluation framework for AI outputs (RFC-0020)",
6
6
  "main": "dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/event-bus",
3
- "version": "1.1.218",
3
+ "version": "1.1.220",
4
4
  "type": "module",
5
5
  "main": "src/index.ts",
6
6
  "exports": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/event-store",
3
- "version": "1.1.218",
3
+ "version": "1.1.220",
4
4
  "type": "module",
5
5
  "main": "src/index.ts",
6
6
  "exports": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/experience-replay",
3
- "version": "1.1.218",
3
+ "version": "1.1.220",
4
4
  "description": "Experience replay for debugging and reproducibility (RFC-0059)",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/feedback-collector",
3
- "version": "1.1.218",
3
+ "version": "1.1.220",
4
4
  "type": "module",
5
5
  "description": "Collect and aggregate human/automated feedback (RFC-0021)",
6
6
  "main": "dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@moocoding/file-copy-helper",
3
- "version": "1.1.218",
3
+ "version": "1.1.220",
4
4
  "description": "Injects cp/sudo cp rule when user asks to mimic/copy files",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/framework-detector",
3
- "version": "1.1.218",
3
+ "version": "1.1.220",
4
4
  "description": "Framework detection system for pi-harness-runtime",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/framework-plugin-sdk",
3
- "version": "1.1.218",
3
+ "version": "1.1.220",
4
4
  "description": "Framework plugin SDK for pi-harness-runtime",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/frappe-plugin",
3
- "version": "1.1.218",
3
+ "version": "1.1.220",
4
4
  "description": "Frappe/ERPNext framework analysis — DocTypes, hooks, bench sites, site config",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/generic-web-plugin",
3
- "version": "1.1.218",
3
+ "version": "1.1.220",
4
4
  "description": "Generic web framework analysis — REST/GraphQL endpoints, OpenAPI, auth",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/health-monitor",
3
- "version": "1.1.218",
3
+ "version": "1.1.220",
4
4
  "type": "module",
5
5
  "description": "Health monitoring and auto-healing",
6
6
  "main": "dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/intent-analyzer",
3
- "version": "1.1.218",
3
+ "version": "1.1.220",
4
4
  "type": "module",
5
5
  "main": "src/index.ts",
6
6
  "exports": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/jev-judge",
3
- "version": "1.1.218",
3
+ "version": "1.1.220",
4
4
  "description": "Jev Judge - Structured decision model for agent routing, E2E testing, and automated decisions",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/knowledge-graph",
3
- "version": "1.1.218",
3
+ "version": "1.1.220",
4
4
  "description": "Knowledge Graph extraction and provenance linking for SKILL.md files",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/knowledge-retrieval",
3
- "version": "1.1.218",
3
+ "version": "1.1.220",
4
4
  "description": "Knowledge retrieval via TencentDB-Agent-Memory MCP (RFC-0105)",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/laravel-plugin",
3
- "version": "1.1.218",
3
+ "version": "1.1.220",
4
4
  "description": "Laravel framework analysis — artisan commands, Eloquent models, Blade",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/learning-engine",
3
- "version": "1.1.218",
3
+ "version": "1.1.220",
4
4
  "description": "Learning engine for extracting lessons from runtime execution (RFC-0058)",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/mcp-adapter",
3
- "version": "1.1.218",
3
+ "version": "1.1.220",
4
4
  "type": "module",
5
5
  "description": "MCP server adapter for pi-harness — exposes harness capabilities as MCP tools/resources/prompts (RFC-0068)",
6
6
  "main": "dist/index.js",