pi-harness-runtime 1.1.327 → 1.1.329

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 (113) hide show
  1. package/harness/wiki-integration.ts +205 -0
  2. package/index.ts +7 -3
  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/durable-review/package.json +1 -1
  30. package/packages/e2e-tester/package.json +1 -1
  31. package/packages/evaluation-engine/package.json +1 -1
  32. package/packages/evaluation-runner/package.json +1 -1
  33. package/packages/event-bus/package.json +1 -1
  34. package/packages/event-store/package.json +1 -1
  35. package/packages/experience-replay/package.json +1 -1
  36. package/packages/feedback-collector/package.json +1 -1
  37. package/packages/file-copy-helper/package.json +1 -1
  38. package/packages/framework-detector/package.json +1 -1
  39. package/packages/framework-plugin-sdk/package.json +1 -1
  40. package/packages/frappe-plugin/package.json +1 -1
  41. package/packages/generic-web-plugin/package.json +1 -1
  42. package/packages/health-monitor/package.json +1 -1
  43. package/packages/intent-analyzer/package.json +1 -1
  44. package/packages/jev-judge/package.json +1 -1
  45. package/packages/knowledge-graph/package.json +1 -1
  46. package/packages/knowledge-retrieval/package.json +1 -1
  47. package/packages/laravel-plugin/package.json +1 -1
  48. package/packages/learning-engine/package.json +1 -1
  49. package/packages/mcp-adapter/package.json +1 -1
  50. package/packages/memory-engine/package.json +1 -1
  51. package/packages/milestone-manager/package.json +1 -1
  52. package/packages/model-registry/package.json +1 -1
  53. package/packages/nextjs-plugin/package.json +1 -1
  54. package/packages/notification/package.json +1 -1
  55. package/packages/observability/package.json +1 -1
  56. package/packages/okf-indexer/package.json +1 -1
  57. package/packages/paperclip-integration/package.json +1 -1
  58. package/packages/performance-optimizer/package.json +1 -1
  59. package/packages/privilege-broker/package.json +1 -1
  60. package/packages/project-analyzer/package.json +1 -1
  61. package/packages/project-bootstrap/package.json +1 -1
  62. package/packages/projection-engine/package.json +1 -1
  63. package/packages/prompt-compiler/package.json +1 -1
  64. package/packages/prompt-versioning/package.json +1 -1
  65. package/packages/provider-adapter-sdk/package.json +1 -1
  66. package/packages/provider-router/package.json +1 -1
  67. package/packages/provider-selector/package.json +1 -1
  68. package/packages/providers/package.json +1 -1
  69. package/packages/qdrant-skills/package.json +1 -1
  70. package/packages/quota-manager/package.json +1 -1
  71. package/packages/rate-limiter/package.json +1 -1
  72. package/packages/react-vite-plugin/package.json +1 -1
  73. package/packages/release-manager/package.json +1 -1
  74. package/packages/requirement-compiler/package.json +1 -1
  75. package/packages/runtime/package.json +1 -1
  76. package/packages/scheduler/package.json +1 -1
  77. package/packages/scheduler-adapter/package.json +1 -1
  78. package/packages/session/package.json +1 -1
  79. package/packages/session-api/package.json +1 -1
  80. package/packages/session-export/package.json +1 -1
  81. package/packages/shared-context/package.json +1 -1
  82. package/packages/skill-mcp-client/package.json +1 -1
  83. package/packages/skill-registry/package.json +1 -1
  84. package/packages/skills/package.json +1 -1
  85. package/packages/sprint-planner/package.json +1 -1
  86. package/packages/subscription-engine/package.json +1 -1
  87. package/packages/task-compiler/package.json +1 -1
  88. package/packages/telegram/package.json +1 -1
  89. package/packages/tencentdb-memory/package.json +1 -1
  90. package/packages/tencentdb-sync/package.json +1 -1
  91. package/packages/test-data-generator/package.json +1 -1
  92. package/packages/test-generator/package.json +1 -1
  93. package/packages/todo-bd-sync/package.json +1 -1
  94. package/packages/token-estimation/package.json +1 -1
  95. package/packages/token-optimizer/package.json +1 -1
  96. package/packages/trajectory/package.json +1 -1
  97. package/packages/tui/package.json +1 -1
  98. package/packages/types/package.json +1 -1
  99. package/packages/webmcp-tester/package.json +1 -1
  100. package/packages/wiki/dist/index.d.ts.map +1 -1
  101. package/packages/wiki/dist/index.js +39 -21
  102. package/packages/wiki/dist/index.js.map +1 -1
  103. package/packages/wiki/dist/storage.d.ts +27 -5
  104. package/packages/wiki/dist/storage.d.ts.map +1 -1
  105. package/packages/wiki/dist/storage.js +195 -56
  106. package/packages/wiki/dist/storage.js.map +1 -1
  107. package/packages/wiki/package.json +1 -1
  108. package/packages/wiki/src/index.ts +45 -24
  109. package/packages/wiki/src/storage.ts +216 -53
  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
@@ -0,0 +1,205 @@
1
+ /**
2
+ * Wiki Integration for Pi
3
+ *
4
+ * Implements wiki commands per wiki/llm-wiki-integration-minimax-plan.md
5
+ */
6
+
7
+ import type { ExtensionAPI } from "@earendil-works/pi-coding-agent";
8
+
9
+ /**
10
+ * Initialize wiki integration
11
+ */
12
+ export async function initWiki(pi: ExtensionAPI): Promise<void> {
13
+ // Only initialize if feature flag is set
14
+ if (process.env.HARNESS_KNOWLEDGE_WIKI !== "1") {
15
+ return;
16
+ }
17
+
18
+ try {
19
+ const { createWikiManager, isWikiEnabled } = await import(
20
+ "../packages/wiki/dist/index.js"
21
+ );
22
+
23
+ // Get workspace from environment
24
+ const workspaceRoot = process.env.PWD || process.cwd();
25
+
26
+ // Create wiki manager lazily
27
+ let wikiManager: ReturnType<typeof createWikiManager> | null = null;
28
+
29
+ function getWiki() {
30
+ if (!wikiManager) {
31
+ wikiManager = createWikiManager(workspaceRoot, "pi-harness-runtime");
32
+ }
33
+ return wikiManager;
34
+ }
35
+
36
+ // Register /harness-wiki command
37
+ pi.registerCommand("harness-wiki", {
38
+ description: "Manage project wiki: search, read, ingest, lint",
39
+ handler: async (args: string, _ctx: unknown) => {
40
+ if (!isWikiEnabled()) {
41
+ console.log("Wiki feature is disabled. Set HARNESS_KNOWLEDGE_WIKI=1 to enable.");
42
+ return;
43
+ }
44
+
45
+ const wiki = getWiki();
46
+ const parts = args.trim().split(/\s+/);
47
+ const subcommand = parts[0] || "help";
48
+ const subargs = parts.slice(1).join(" ");
49
+
50
+ switch (subcommand) {
51
+ case "init":
52
+ try {
53
+ const result = wiki.initialize();
54
+ if (result.created) {
55
+ console.log("Wiki initialized.");
56
+ } else {
57
+ console.log("Wiki already exists.");
58
+ }
59
+ console.log(` Root: ${result.config.wikiRoot}`);
60
+ } catch (err) {
61
+ console.log(`Init failed: ${err}`);
62
+ }
63
+ break;
64
+
65
+ case "search":
66
+ if (!subargs) {
67
+ console.log("Usage: /harness-wiki search <query>");
68
+ return;
69
+ }
70
+ try {
71
+ const results = wiki.search(subargs);
72
+ if (results.length === 0) {
73
+ console.log("No results found.");
74
+ } else {
75
+ console.log(`Found ${results.length} result(s):`);
76
+ for (const r of results.slice(0, 5)) {
77
+ console.log(` - [${r.page.status}] ${r.page.title} (${r.page.kind})`);
78
+ }
79
+ }
80
+ } catch (err) {
81
+ console.log(`Search failed: ${err}`);
82
+ }
83
+ break;
84
+
85
+ case "read":
86
+ if (!subargs) {
87
+ console.log("Usage: /harness-wiki read <page-id>");
88
+ return;
89
+ }
90
+ try {
91
+ const page = wiki.loadPage(subargs);
92
+ if (!page) {
93
+ console.log(`Page not found: ${subargs}`);
94
+ } else {
95
+ console.log(`# ${page.frontmatter.title}`);
96
+ console.log(`Status: ${page.frontmatter.status}`);
97
+ console.log(`Kind: ${page.frontmatter.kind}`);
98
+ console.log(`Updated: ${page.frontmatter.updatedAt}`);
99
+ console.log("");
100
+ console.log(page.body.slice(0, 500) + (page.body.length > 500 ? "..." : ""));
101
+ }
102
+ } catch (err) {
103
+ console.log(`Read failed: ${err}`);
104
+ }
105
+ break;
106
+
107
+ case "ingest":
108
+ if (!subargs) {
109
+ console.log("Usage: /harness-wiki ingest <source-path>");
110
+ return;
111
+ }
112
+ try {
113
+ const { snapshot, existing } = wiki.ingestSource(subargs);
114
+ if (existing) {
115
+ console.log(`Already ingested: ${snapshot.id}`);
116
+ } else {
117
+ console.log(`Ingested: ${snapshot.id}`);
118
+ console.log(` Path: ${snapshot.originalPath}`);
119
+ console.log(` Hash: ${snapshot.contentHash.slice(0, 16)}...`);
120
+ }
121
+ } catch (err) {
122
+ console.log(`Ingest failed: ${err}`);
123
+ }
124
+ break;
125
+
126
+ case "lint":
127
+ try {
128
+ const findings = wiki.lint();
129
+ if (findings.length === 0) {
130
+ console.log("No issues found.");
131
+ } else {
132
+ const errors = findings.filter((f) => f.severity === "error");
133
+ const warnings = findings.filter((f) => f.severity === "warning");
134
+ console.log(`${errors.length} error(s), ${warnings.length} warning(s):`);
135
+ for (const f of findings.slice(0, 10)) {
136
+ console.log(` [${f.severity}] ${f.category}: ${f.message}`);
137
+ }
138
+ }
139
+ } catch (err) {
140
+ console.log(`Lint failed: ${err}`);
141
+ }
142
+ break;
143
+
144
+ case "status":
145
+ try {
146
+ const pages = wiki.getAllPages();
147
+ const index = wiki.getIndex();
148
+ const kinds: Record<string, number> = {};
149
+ const statuses: Record<string, number> = {};
150
+ for (const p of index) {
151
+ kinds[p.kind] = (kinds[p.kind] || 0) + 1;
152
+ statuses[p.status] = (statuses[p.status] || 0) + 1;
153
+ }
154
+ console.log("Wiki Status");
155
+ console.log(` Pages: ${pages.length}`);
156
+ console.log(` Kinds: ${JSON.stringify(kinds)}`);
157
+ console.log(` Statuses: ${JSON.stringify(statuses)}`);
158
+ } catch (err) {
159
+ console.log(`Status failed: ${err}`);
160
+ }
161
+ break;
162
+
163
+ case "help":
164
+ default:
165
+ console.log("Wiki Commands:");
166
+ console.log(" /harness-wiki init - Initialize wiki");
167
+ console.log(" /harness-wiki search <q> - Search pages");
168
+ console.log(" /harness-wiki read <id> - Read page");
169
+ console.log(" /harness-wiki ingest <p> - Ingest source file");
170
+ console.log(" /harness-wiki lint - Check for issues");
171
+ console.log(" /harness-wiki status - Show stats");
172
+ break;
173
+ }
174
+ },
175
+ });
176
+ } catch {
177
+ // Silently fail - wiki is optional
178
+ }
179
+ }
180
+
181
+ /**
182
+ * Get wiki context for injection into system prompt
183
+ */
184
+ export function getWikiInstruction(): string {
185
+ if (process.env.HARNESS_KNOWLEDGE_WIKI !== "1") {
186
+ return "";
187
+ }
188
+
189
+ return `
190
+ ## Project Wiki
191
+
192
+ Project knowledge is available via the wiki. Use /harness-wiki to:
193
+ - Search: /harness-wiki search <query>
194
+ - Read: /harness-wiki read <page-id>
195
+ - Ingest: /harness-wiki ingest <source-path>
196
+
197
+ The wiki contains:
198
+ - Design decisions with rationale
199
+ - Architecture concepts
200
+ - Incident records and lessons
201
+ - Implementation plans
202
+
203
+ Always cite wiki sources when providing project-specific information.
204
+ `;
205
+ }
package/index.ts CHANGED
@@ -70,6 +70,7 @@ import {
70
70
  createBlackboard,
71
71
  } from "./harness/blackboard.ts";
72
72
  import { scheduleAutoResume, cancelAutoResume, getGLMQuotaCountdown } from "./harness/index.js";
73
+ import { initWiki } from "./harness/wiki-integration.js";
73
74
  import { startWatcher, classifyMessage, detectReviewMarker } from "./packages/codex-watcher/dist/src/index.js";
74
75
  import {
75
76
  getPaperclipConfig,
@@ -1998,7 +1999,7 @@ function processCompletionFile(filePath: string, pi: ExtensionAPI): void {
1998
1999
  // --- Debug logging (file only, no console override) ---------------
1999
2000
  // Logs written to file only. Real console output preserved for pi's TUI.
2000
2001
  import { homedir } from "node:os";
2001
- import { existsSync, mkdirSync, readFileSync, symlinkSync, appendFileSync, realpathSync } from "node:fs";
2002
+ import { existsSync, mkdirSync, readFileSync, symlinkSync, appendFileSync, realpathSync, statSync } from "node:fs";
2002
2003
  import { truncateToWidth } from "@earendil-works/pi-tui";
2003
2004
  import { join, dirname } from "node:path";
2004
2005
 
@@ -2411,6 +2412,9 @@ export default async function (pi: ExtensionAPI) {
2411
2412
  // --- memory: Inject MEMORY.md and USER.md into system prompt -------------
2412
2413
  void initMemory(pi);
2413
2414
 
2415
+ // --- wiki: Knowledge wiki with search/ingest/lint commands ------------
2416
+ void initWiki(pi);
2417
+
2414
2418
  // --- ssh-detach-interceptor: Auto-fix bare ssh & → nohup pattern ---------
2415
2419
  void initSshDetachInterceptor(pi);
2416
2420
 
@@ -2553,7 +2557,7 @@ export default async function (pi: ExtensionAPI) {
2553
2557
  // the first session to appear afterward is treated as new and greeted.
2554
2558
  let firstPollDone = false;
2555
2559
  try {
2556
- const { getLatestSession } = await import("./packages/codex-watcher/dist/index.js");
2560
+ const { getLatestSession } = await import("./packages/codex-watcher/dist/src/index.js");
2557
2561
  const baseline = getLatestSession();
2558
2562
  if (baseline) {
2559
2563
  codexSessionState.greetingBaselineSessionId = baseline.id;
@@ -2691,7 +2695,7 @@ export default async function (pi: ExtensionAPI) {
2691
2695
  if (classification !== "plan" && classification !== "mixed" && !hasReviewMarker) continue;
2692
2696
 
2693
2697
  // Determine stage (for future use in event metadata)
2694
- const _stage = hasReviewMarker ? "review" : classification;
2698
+ void classification; // used for classification only
2695
2699
 
2696
2700
  // Only start settle timer for plans (not reviews)
2697
2701
  // Reviews don't have a file to watch
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pi-harness-runtime",
3
- "version": "1.1.327",
3
+ "version": "1.1.329",
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.327",
3
+ "version": "1.1.329",
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.327",
3
+ "version": "1.1.329",
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.327",
3
+ "version": "1.1.329",
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.327",
3
+ "version": "1.1.329",
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.327",
3
+ "version": "1.1.329",
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.327",
3
+ "version": "1.1.329",
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.327",
3
+ "version": "1.1.329",
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.327",
3
+ "version": "1.1.329",
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.327",
3
+ "version": "1.1.329",
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.327",
3
+ "version": "1.1.329",
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.327",
3
+ "version": "1.1.329",
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.327",
3
+ "version": "1.1.329",
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.327",
3
+ "version": "1.1.329",
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.327",
3
+ "version": "1.1.329",
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.327",
3
+ "version": "1.1.329",
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.327",
3
+ "version": "1.1.329",
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.327",
3
+ "version": "1.1.329",
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.327",
3
+ "version": "1.1.329",
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.327",
3
+ "version": "1.1.329",
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.327",
3
+ "version": "1.1.329",
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.327",
3
+ "version": "1.1.329",
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.327",
3
+ "version": "1.1.329",
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.327",
3
+ "version": "1.1.329",
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.327",
3
+ "version": "1.1.329",
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.327",
3
+ "version": "1.1.329",
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": "@moocoding/durable-review",
3
- "version": "1.1.327",
3
+ "version": "1.1.329",
4
4
  "description": "SQLite-backed durable reviewer using @earendil-works/pi-durable",
5
5
  "type": "module",
6
6
  "main": "src/index.ts",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/e2e-tester",
3
- "version": "1.1.327",
3
+ "version": "1.1.329",
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.327",
3
+ "version": "1.1.329",
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.327",
3
+ "version": "1.1.329",
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.327",
3
+ "version": "1.1.329",
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.327",
3
+ "version": "1.1.329",
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.327",
3
+ "version": "1.1.329",
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.327",
3
+ "version": "1.1.329",
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.327",
3
+ "version": "1.1.329",
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.327",
3
+ "version": "1.1.329",
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.327",
3
+ "version": "1.1.329",
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.327",
3
+ "version": "1.1.329",
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.327",
3
+ "version": "1.1.329",
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.327",
3
+ "version": "1.1.329",
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.327",
3
+ "version": "1.1.329",
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.327",
3
+ "version": "1.1.329",
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.327",
3
+ "version": "1.1.329",
4
4
  "description": "Knowledge Graph extraction and provenance linking for SKILL.md files",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",