pi-harness-runtime 1.1.215 → 1.1.217

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 (102) hide show
  1. package/harness/honcho-memory.ts +42 -9
  2. package/index.ts +25 -21
  3. package/package.json +1 -1
  4. package/packages/a2a-adapter/package.json +1 -1
  5. package/packages/agent-policy/package.json +1 -1
  6. package/packages/architecture-generator/package.json +1 -1
  7. package/packages/auth/package.json +1 -1
  8. package/packages/autonomous-refactor/package.json +1 -1
  9. package/packages/autonomous-runtime/package.json +1 -1
  10. package/packages/cache-strategy/package.json +1 -1
  11. package/packages/capability-registry/package.json +1 -1
  12. package/packages/checkpoint/package.json +1 -1
  13. package/packages/cli-plugin-sdk/package.json +1 -1
  14. package/packages/clipboard/package.json +1 -1
  15. package/packages/clipboard-plugin/package.json +1 -1
  16. package/packages/code-generation/package.json +1 -1
  17. package/packages/code-review/package.json +1 -1
  18. package/packages/codex-adapter/package.json +1 -1
  19. package/packages/codex-watcher/package.json +1 -1
  20. package/packages/config-capture/package.json +1 -1
  21. package/packages/context-compiler/package.json +1 -1
  22. package/packages/context-discovery/package.json +1 -1
  23. package/packages/context-manager/package.json +1 -1
  24. package/packages/cookie-sanitizer/package.json +1 -1
  25. package/packages/cost-optimizer/package.json +1 -1
  26. package/packages/dependency-analyzer/package.json +1 -1
  27. package/packages/django-plugin/package.json +1 -1
  28. package/packages/doc-generator/package.json +1 -1
  29. package/packages/e2e-tester/package.json +1 -1
  30. package/packages/evaluation-engine/package.json +1 -1
  31. package/packages/evaluation-runner/package.json +1 -1
  32. package/packages/event-bus/package.json +1 -1
  33. package/packages/event-store/package.json +1 -1
  34. package/packages/experience-replay/package.json +1 -1
  35. package/packages/feedback-collector/package.json +1 -1
  36. package/packages/file-copy-helper/package.json +1 -1
  37. package/packages/framework-detector/package.json +1 -1
  38. package/packages/framework-plugin-sdk/package.json +1 -1
  39. package/packages/frappe-plugin/package.json +1 -1
  40. package/packages/generic-web-plugin/package.json +1 -1
  41. package/packages/health-monitor/package.json +1 -1
  42. package/packages/intent-analyzer/package.json +1 -1
  43. package/packages/jev-judge/package.json +1 -1
  44. package/packages/knowledge-graph/package.json +1 -1
  45. package/packages/knowledge-retrieval/package.json +1 -1
  46. package/packages/laravel-plugin/package.json +1 -1
  47. package/packages/learning-engine/package.json +1 -1
  48. package/packages/mcp-adapter/package.json +1 -1
  49. package/packages/memory-engine/package.json +1 -1
  50. package/packages/milestone-manager/package.json +1 -1
  51. package/packages/model-registry/package.json +1 -1
  52. package/packages/nextjs-plugin/package.json +1 -1
  53. package/packages/notification/package.json +1 -1
  54. package/packages/observability/package.json +1 -1
  55. package/packages/okf-indexer/package.json +1 -1
  56. package/packages/paperclip-integration/package.json +1 -1
  57. package/packages/performance-optimizer/package.json +1 -1
  58. package/packages/privilege-broker/package.json +1 -1
  59. package/packages/project-analyzer/package.json +1 -1
  60. package/packages/project-bootstrap/package.json +1 -1
  61. package/packages/projection-engine/package.json +1 -1
  62. package/packages/prompt-compiler/package.json +1 -1
  63. package/packages/prompt-versioning/package.json +1 -1
  64. package/packages/provider-adapter-sdk/package.json +1 -1
  65. package/packages/provider-router/package.json +1 -1
  66. package/packages/provider-selector/package.json +1 -1
  67. package/packages/providers/package.json +1 -1
  68. package/packages/qdrant-skills/package.json +1 -1
  69. package/packages/quota-manager/package.json +1 -1
  70. package/packages/rate-limiter/package.json +1 -1
  71. package/packages/react-vite-plugin/package.json +1 -1
  72. package/packages/release-manager/package.json +1 -1
  73. package/packages/requirement-compiler/package.json +1 -1
  74. package/packages/runtime/package.json +1 -1
  75. package/packages/scheduler/package.json +1 -1
  76. package/packages/scheduler-adapter/package.json +1 -1
  77. package/packages/session/package.json +1 -1
  78. package/packages/session-api/package.json +1 -1
  79. package/packages/session-export/package.json +1 -1
  80. package/packages/shared-context/package.json +1 -1
  81. package/packages/skill-mcp-client/package.json +1 -1
  82. package/packages/skill-registry/package.json +1 -1
  83. package/packages/skills/package.json +1 -1
  84. package/packages/sprint-planner/package.json +1 -1
  85. package/packages/subscription-engine/package.json +1 -1
  86. package/packages/task-compiler/package.json +1 -1
  87. package/packages/telegram/package.json +1 -1
  88. package/packages/tencentdb-memory/package.json +1 -1
  89. package/packages/tencentdb-sync/package.json +1 -1
  90. package/packages/test-data-generator/package.json +1 -1
  91. package/packages/test-generator/package.json +1 -1
  92. package/packages/todo-bd-sync/package.json +1 -1
  93. package/packages/token-estimation/package.json +1 -1
  94. package/packages/token-optimizer/package.json +1 -1
  95. package/packages/trajectory/package.json +1 -1
  96. package/packages/tui/package.json +1 -1
  97. package/packages/types/package.json +1 -1
  98. package/packages/webmcp-tester/package.json +1 -1
  99. package/packages/workflow-events/package.json +1 -1
  100. package/packages/workspace-scanner/package.json +1 -1
  101. package/packages/worktree/package.json +1 -1
  102. package/packages/write-review/package.json +1 -1
@@ -185,21 +185,41 @@ async function checkHonchoHealth(): Promise<void> {
185
185
  });
186
186
 
187
187
  if (response.status === 401 || response.status === 403) {
188
- console.warn("[honcho] WARNING: API key may be invalid or account suspended");
189
- console.warn("[honcho] Please reactivate at: https://app.honcho.dev");
188
+ logServiceEvent({
189
+ ts: new Date().toISOString(),
190
+ level: "warn",
191
+ service: "honcho",
192
+ operation: "health_check",
193
+ phase: "failed",
194
+ reason: "API key invalid or account suspended",
195
+ helpUrl: "https://app.honcho.dev",
196
+ });
190
197
  return;
191
198
  }
192
199
 
193
200
  const data = await response.json().catch(() => ({})) as HonchoHealthResponse;
194
201
 
195
202
  if (data.suspended || data.status === "suspended") {
196
- console.warn("[honcho] WARNING: Honcho account is suspended due to inactivity");
197
- console.warn("[honcho] Reactivate at: https://app.honcho.dev");
198
- console.warn("[honcho] Memory features will be unavailable until reactivated");
203
+ logServiceEvent({
204
+ ts: new Date().toISOString(),
205
+ level: "warn",
206
+ service: "honcho",
207
+ operation: "health_check",
208
+ phase: "failed",
209
+ reason: "account suspended due to inactivity",
210
+ helpUrl: "https://app.honcho.dev",
211
+ });
199
212
  }
200
213
  } catch (err) {
201
- // Network errors are not critical, just log
202
- console.debug("[honcho] Health check failed:", err instanceof Error ? err.message : String(err));
214
+ // Network errors are not critical - log to file
215
+ logServiceEvent({
216
+ ts: new Date().toISOString(),
217
+ level: "debug",
218
+ service: "honcho",
219
+ operation: "health_check",
220
+ phase: "failed",
221
+ reason: err instanceof Error ? err.message : String(err),
222
+ });
203
223
  }
204
224
  }
205
225
 
@@ -219,7 +239,14 @@ export function startHonchoHealthCheck(): void {
219
239
  void checkHonchoHealth();
220
240
  }, HONCHO_HEALTH_CHECK_INTERVAL);
221
241
 
222
- console.log("[honcho] Health check started (every 5 minutes)");
242
+ logServiceEvent({
243
+ ts: new Date().toISOString(),
244
+ level: "info",
245
+ service: "honcho",
246
+ operation: "health_check_start",
247
+ phase: "completed",
248
+ intervalMs: HONCHO_HEALTH_CHECK_INTERVAL,
249
+ });
223
250
  }
224
251
 
225
252
  /**
@@ -229,7 +256,13 @@ export function stopHonchoHealthCheck(): void {
229
256
  if (_honchoHealthInterval) {
230
257
  clearInterval(_honchoHealthInterval);
231
258
  _honchoHealthInterval = null;
232
- console.log("[honcho] Health check stopped");
259
+ logServiceEvent({
260
+ ts: new Date().toISOString(),
261
+ level: "info",
262
+ service: "honcho",
263
+ operation: "health_check_stop",
264
+ phase: "completed",
265
+ });
233
266
  }
234
267
  }
235
268
 
package/index.ts CHANGED
@@ -543,19 +543,19 @@ async function initTelegram(pi: ExtensionAPI): Promise<void> {
543
543
  );
544
544
  center.setCallbackHandler(async (data: string, _query: { id: string }) => {
545
545
  const parsed = parseCallbackData(data);
546
- console.log(`[TelegramCallback] action=${parsed.action} target=${parsed.targetId}`);
546
+ logToFile("[TelegramCallback]", `action=${parsed.action} target=${parsed.targetId}`);
547
547
 
548
548
  switch (parsed.action) {
549
549
  case CallbackActions.APPROVE:
550
550
  // TODO: Resume auto-continue waiting state
551
- console.log("[TelegramCallback] Approved - user clicked Continue");
551
+ logToFile("[TelegramCallback] Approved - user clicked Continue");
552
552
  break;
553
553
  case CallbackActions.REJECT:
554
554
  // TODO: Dismiss notification, don't resume
555
- console.log("[TelegramCallback] Rejected - user clicked Not yet");
555
+ logToFile("[TelegramCallback] Rejected - user clicked Not yet");
556
556
  break;
557
557
  default:
558
- console.warn(`[TelegramCallback] Unknown action: ${parsed.action}`);
558
+ logToFile("[TelegramCallback]", `Unknown action: ${parsed.action}`);
559
559
  }
560
560
  });
561
561
 
@@ -1165,21 +1165,25 @@ const HARNESS_ROOT_DIR = join(homedir(), ".pi-harness-runtime");
1165
1165
 
1166
1166
  /** Startup messages collected during init — shown on session_start via ctx.ui.notify */
1167
1167
  const startupMessages: string[] = [];
1168
- const STARTUP_LOG_FILE = "/tmp/pi-harness-startup.log";
1168
+ const HARNESS_LOG_FILE = "/tmp/pi-harness.log";
1169
1169
 
1170
- /** Log a harness startup message to file (not stderr - stderr bypasses Pi's cursor tracking) */
1171
- function logStartup(...parts: string[]): void {
1170
+ /** Log a harness message to file (not stderr - bypasses Pi's cursor tracking) */
1171
+ function logToFile(...parts: string[]): void {
1172
1172
  const msg = parts.join(" ");
1173
- startupMessages.push(msg);
1174
- // Write to file using synchronous appendFileSync to avoid overlapping input field
1175
- // Pi's renderer handles scrolling for managed content
1176
1173
  try {
1177
- appendFileSync(STARTUP_LOG_FILE, msg + "\n");
1174
+ appendFileSync(HARNESS_LOG_FILE, msg + "\n");
1178
1175
  } catch {
1179
1176
  // Ignore file write errors
1180
1177
  }
1181
1178
  }
1182
1179
 
1180
+ /** Log a harness startup message to file and track for UI */
1181
+ function logStartup(...parts: string[]): void {
1182
+ const msg = parts.join(" ");
1183
+ startupMessages.push(msg);
1184
+ logToFile("[pi-harness]", ...parts);
1185
+ }
1186
+
1183
1187
  interface HarnessSession {
1184
1188
  jobId: string;
1185
1189
  requirement: string;
@@ -1229,22 +1233,22 @@ async function nc(event: string, ctx: Record<string, unknown>): Promise<void> {
1229
1233
  results = await nc.center.notify(event as never, ctx as never);
1230
1234
  }
1231
1235
 
1232
- // Log delivery outcomes
1236
+ // Log delivery outcomes to file
1233
1237
  if (Array.isArray(results)) {
1234
1238
  for (const result of results) {
1235
1239
  if (result && typeof result === "object" && "success" in result) {
1236
1240
  const r = result as { success: boolean; channel: string; error?: string };
1237
1241
  if (r.success) {
1238
- console.log(`[TelegramNotification] ${event} sent to ${r.channel}`);
1242
+ logToFile("[TelegramNotification]", `${event} sent to ${r.channel}`);
1239
1243
  } else {
1240
- console.warn(`[TelegramNotification] ${event} failed: ${r.error ?? "unknown"}`);
1244
+ logToFile("[TelegramNotification]", `${event} failed: ${r.error ?? "unknown"}`);
1241
1245
  }
1242
1246
  }
1243
1247
  }
1244
1248
  }
1245
1249
  } catch (err) {
1246
- // Never crash runtime on notification failure
1247
- console.warn(`[TelegramNotification] ${event} threw: ${err instanceof Error ? err.message : String(err)}`);
1250
+ // Never crash runtime on notification failure - log to file
1251
+ logToFile("[TelegramNotification]", `${event} threw: ${err instanceof Error ? err.message : String(err)}`);
1248
1252
  }
1249
1253
  }
1250
1254
 
@@ -1305,7 +1309,7 @@ const HARNESS_VERSION = (() => {
1305
1309
  })();
1306
1310
 
1307
1311
  function printBanner(): void {
1308
- console.error(`[Harness] v${HARNESS_VERSION}`);
1312
+ logToFile(`[Harness] v${HARNESS_VERSION}`);
1309
1313
  }
1310
1314
 
1311
1315
  function ensureHarnessDir() {
@@ -1447,23 +1451,23 @@ function initJobPipeWatcher(pi: ExtensionAPI): void {
1447
1451
  };
1448
1452
 
1449
1453
  const processCommand = (cmd: { command: string; jobId: string; userId: number }) => {
1450
- console.error(`[JobPipe] Received: ${cmd.command} ${cmd.jobId} from user ${cmd.userId}`);
1454
+ logToFile("[JobPipe]", `Received: ${cmd.command} ${cmd.jobId} from user ${cmd.userId}`);
1451
1455
 
1452
1456
  switch (cmd.command) {
1453
1457
  case "resume": {
1454
1458
  // Inject "resume" into agent conversation (same as auto-resume)
1455
1459
  pi.sendUserMessage("resume", { deliverAs: "steer" });
1456
- console.error(`[JobPipe] Injected resume via steer`);
1460
+ logToFile("[JobPipe]", "Injected resume via steer");
1457
1461
  break;
1458
1462
  }
1459
1463
  case "cancel": {
1460
1464
  // Cancel the current job
1461
1465
  pi.sendUserMessage("/harness-cancel", { deliverAs: "steer" });
1462
- console.error(`[JobPipe] Injected /harness-cancel via steer`);
1466
+ logToFile("[JobPipe]", "Injected /harness-cancel via steer");
1463
1467
  break;
1464
1468
  }
1465
1469
  default:
1466
- console.error(`[JobPipe] Unknown command: ${cmd.command}`);
1470
+ logToFile("[JobPipe]", `Unknown command: ${cmd.command}`);
1467
1471
  }
1468
1472
  };
1469
1473
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pi-harness-runtime",
3
- "version": "1.1.215",
3
+ "version": "1.1.217",
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.215",
3
+ "version": "1.1.217",
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.215",
3
+ "version": "1.1.217",
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.215",
3
+ "version": "1.1.217",
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.215",
3
+ "version": "1.1.217",
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.215",
3
+ "version": "1.1.217",
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.215",
3
+ "version": "1.1.217",
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.215",
3
+ "version": "1.1.217",
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.215",
3
+ "version": "1.1.217",
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.215",
3
+ "version": "1.1.217",
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.215",
3
+ "version": "1.1.217",
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.215",
3
+ "version": "1.1.217",
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.215",
3
+ "version": "1.1.217",
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.215",
3
+ "version": "1.1.217",
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.215",
3
+ "version": "1.1.217",
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.215",
3
+ "version": "1.1.217",
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.215",
3
+ "version": "1.1.217",
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.215",
3
+ "version": "1.1.217",
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.215",
3
+ "version": "1.1.217",
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.215",
3
+ "version": "1.1.217",
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.215",
3
+ "version": "1.1.217",
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.215",
3
+ "version": "1.1.217",
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.215",
3
+ "version": "1.1.217",
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.215",
3
+ "version": "1.1.217",
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.215",
3
+ "version": "1.1.217",
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.215",
3
+ "version": "1.1.217",
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.215",
3
+ "version": "1.1.217",
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.215",
3
+ "version": "1.1.217",
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.215",
3
+ "version": "1.1.217",
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.215",
3
+ "version": "1.1.217",
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.215",
3
+ "version": "1.1.217",
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.215",
3
+ "version": "1.1.217",
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.215",
3
+ "version": "1.1.217",
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.215",
3
+ "version": "1.1.217",
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.215",
3
+ "version": "1.1.217",
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.215",
3
+ "version": "1.1.217",
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.215",
3
+ "version": "1.1.217",
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.215",
3
+ "version": "1.1.217",
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.215",
3
+ "version": "1.1.217",
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.215",
3
+ "version": "1.1.217",
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.215",
3
+ "version": "1.1.217",
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.215",
3
+ "version": "1.1.217",
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.215",
3
+ "version": "1.1.217",
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.215",
3
+ "version": "1.1.217",
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.215",
3
+ "version": "1.1.217",
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.215",
3
+ "version": "1.1.217",
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",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/memory-engine",
3
- "version": "1.1.215",
3
+ "version": "1.1.217",
4
4
  "description": "Memory engine with OKF integration for durable knowledge management (RFC-0060)",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",