pi-harness-runtime 1.1.29 → 1.1.30

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 (92) hide show
  1. package/package.json +1 -1
  2. package/packages/a2a-adapter/package.json +1 -1
  3. package/packages/architecture-generator/package.json +1 -1
  4. package/packages/auth/package.json +1 -1
  5. package/packages/autonomous-refactor/package.json +1 -1
  6. package/packages/autonomous-runtime/package.json +1 -1
  7. package/packages/cache-strategy/package.json +1 -1
  8. package/packages/capability-registry/package.json +1 -1
  9. package/packages/checkpoint/package.json +1 -1
  10. package/packages/cli-plugin-sdk/package.json +1 -1
  11. package/packages/clipboard/package.json +1 -1
  12. package/packages/clipboard-plugin/package.json +1 -1
  13. package/packages/code-generation/package.json +1 -1
  14. package/packages/code-review/package.json +1 -1
  15. package/packages/codex-adapter/package.json +1 -1
  16. package/packages/config-capture/package.json +1 -1
  17. package/packages/context-compiler/package.json +1 -1
  18. package/packages/context-discovery/package.json +1 -1
  19. package/packages/context-manager/package.json +1 -1
  20. package/packages/cookie-sanitizer/package.json +1 -1
  21. package/packages/cost-optimizer/package.json +1 -1
  22. package/packages/dependency-analyzer/package.json +1 -1
  23. package/packages/django-plugin/package.json +1 -1
  24. package/packages/doc-generator/package.json +1 -1
  25. package/packages/evaluation-engine/package.json +1 -1
  26. package/packages/evaluation-runner/package.json +1 -1
  27. package/packages/event-bus/package.json +1 -1
  28. package/packages/event-store/package.json +1 -1
  29. package/packages/experience-replay/package.json +1 -1
  30. package/packages/feedback-collector/package.json +1 -1
  31. package/packages/file-copy-helper/package.json +1 -1
  32. package/packages/file-copy-helper/src/extension.debug.ts +53 -16
  33. package/packages/file-copy-helper/src/extension.ts +48 -16
  34. package/packages/framework-detector/package.json +1 -1
  35. package/packages/framework-plugin-sdk/package.json +1 -1
  36. package/packages/frappe-plugin/package.json +1 -1
  37. package/packages/generic-web-plugin/package.json +1 -1
  38. package/packages/health-monitor/package.json +1 -1
  39. package/packages/intent-analyzer/package.json +1 -1
  40. package/packages/knowledge-graph/package.json +1 -1
  41. package/packages/knowledge-retrieval/package.json +1 -1
  42. package/packages/laravel-plugin/package.json +1 -1
  43. package/packages/learning-engine/package.json +1 -1
  44. package/packages/mcp-adapter/package.json +1 -1
  45. package/packages/memory-engine/package.json +1 -1
  46. package/packages/milestone-manager/package.json +1 -1
  47. package/packages/model-registry/package.json +1 -1
  48. package/packages/nextjs-plugin/package.json +1 -1
  49. package/packages/notification/package.json +1 -1
  50. package/packages/observability/package.json +1 -1
  51. package/packages/okf-indexer/package.json +1 -1
  52. package/packages/performance-optimizer/package.json +1 -1
  53. package/packages/privilege-broker/package.json +1 -1
  54. package/packages/project-analyzer/package.json +1 -1
  55. package/packages/project-bootstrap/package.json +1 -1
  56. package/packages/projection-engine/package.json +1 -1
  57. package/packages/prompt-compiler/package.json +1 -1
  58. package/packages/prompt-versioning/package.json +1 -1
  59. package/packages/provider-adapter-sdk/package.json +1 -1
  60. package/packages/provider-router/package.json +1 -1
  61. package/packages/provider-selector/package.json +1 -1
  62. package/packages/providers/package.json +1 -1
  63. package/packages/quota-manager/package.json +1 -1
  64. package/packages/rate-limiter/package.json +1 -1
  65. package/packages/react-vite-plugin/package.json +1 -1
  66. package/packages/release-manager/package.json +1 -1
  67. package/packages/requirement-compiler/package.json +1 -1
  68. package/packages/runtime/package.json +1 -1
  69. package/packages/scheduler/package.json +1 -1
  70. package/packages/scheduler-adapter/package.json +1 -1
  71. package/packages/session/package.json +1 -1
  72. package/packages/session-api/package.json +1 -1
  73. package/packages/session-export/package.json +1 -1
  74. package/packages/shared-context/package.json +1 -1
  75. package/packages/skill-mcp-client/package.json +1 -1
  76. package/packages/skill-registry/package.json +1 -1
  77. package/packages/sprint-planner/package.json +1 -1
  78. package/packages/subscription-engine/package.json +1 -1
  79. package/packages/task-compiler/package.json +1 -1
  80. package/packages/tencentdb-memory/package.json +1 -1
  81. package/packages/tencentdb-sync/package.json +1 -1
  82. package/packages/test-data-generator/package.json +1 -1
  83. package/packages/test-generator/package.json +1 -1
  84. package/packages/todo-bd-sync/package.json +1 -1
  85. package/packages/token-estimation/package.json +1 -1
  86. package/packages/token-optimizer/package.json +1 -1
  87. package/packages/tui/package.json +1 -1
  88. package/packages/types/package.json +1 -1
  89. package/packages/workflow-events/package.json +1 -1
  90. package/packages/workspace-scanner/package.json +1 -1
  91. package/packages/worktree/package.json +1 -1
  92. package/packages/write-review/package.json +1 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pi-harness-runtime",
3
- "version": "1.1.29",
3
+ "version": "1.1.30",
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.29",
3
+ "version": "1.1.30",
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-harness/architecture-generator",
3
- "version": "1.1.29",
3
+ "version": "1.1.30",
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.29",
3
+ "version": "1.1.30",
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.29",
3
+ "version": "1.1.30",
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.29",
3
+ "version": "1.1.30",
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.29",
3
+ "version": "1.1.30",
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.29",
3
+ "version": "1.1.30",
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.29",
3
+ "version": "1.1.30",
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.29",
3
+ "version": "1.1.30",
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.29",
3
+ "version": "1.1.30",
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.29",
3
+ "version": "1.1.30",
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.29",
3
+ "version": "1.1.30",
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.29",
3
+ "version": "1.1.30",
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.29",
3
+ "version": "1.1.30",
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": "@moocoding/config-capture",
3
- "version": "1.1.29",
3
+ "version": "1.1.30",
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.29",
3
+ "version": "1.1.30",
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.29",
3
+ "version": "1.1.30",
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.29",
3
+ "version": "1.1.30",
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.29",
3
+ "version": "1.1.30",
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.29",
3
+ "version": "1.1.30",
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.29",
3
+ "version": "1.1.30",
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.29",
3
+ "version": "1.1.30",
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.29",
3
+ "version": "1.1.30",
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/evaluation-engine",
3
- "version": "1.1.29",
3
+ "version": "1.1.30",
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.29",
3
+ "version": "1.1.30",
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.29",
3
+ "version": "1.1.30",
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.29",
3
+ "version": "1.1.30",
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.29",
3
+ "version": "1.1.30",
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.29",
3
+ "version": "1.1.30",
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.29",
3
+ "version": "1.1.30",
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",
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * Injects "use cp instead of writing from scratch" reminder when user
5
5
  * asks to mimic, copy, clone, or replicate files/folders between locations.
6
- *
6
+ *
7
7
  * DEBUG: All events and rule evaluations logged to /tmp/file-copy-helper-debug.log
8
8
  */
9
9
 
@@ -113,42 +113,65 @@ sudo cp /source/path/components/notifications-provider.tsx /dest/path/components
113
113
  * Check if text contains copy-related keywords
114
114
  * Requires: explicit intent (mimic/copy/clone/replicate) AND destination context
115
115
  */
116
- function shouldInjectCopyRule(text: string): { triggered: boolean; reason: string } {
116
+ function shouldInjectCopyRule(text: string): {
117
+ triggered: boolean;
118
+ reason: string;
119
+ } {
117
120
  const lower = text.toLowerCase();
118
121
 
119
122
  // Must have explicit mimic/copy/clone/replicate intent
120
123
  const hasIntent = COPY_KEYWORDS.some((keyword) => lower.includes(keyword));
121
124
  if (!hasIntent) {
122
- return { triggered: false, reason: `No intent keyword found. Keywords: ${COPY_KEYWORDS.join(", ")}` };
125
+ return {
126
+ triggered: false,
127
+ reason: `No intent keyword found. Keywords: ${COPY_KEYWORDS.join(", ")}`,
128
+ };
123
129
  }
124
130
 
125
131
  // Must have destination context (avoids false positives on "copy this code" etc)
126
132
  const hasDest = COPY_DEST_CONTEXT.some((ctx) => lower.includes(ctx));
127
133
  if (!hasDest) {
128
- return { triggered: false, reason: `No destination context found. Dest contexts: ${COPY_DEST_CONTEXT.join(", ")}` };
134
+ return {
135
+ triggered: false,
136
+ reason: `No destination context found. Dest contexts: ${COPY_DEST_CONTEXT.join(", ")}`,
137
+ };
129
138
  }
130
139
 
131
140
  // Should have source context for full mimic behavior
132
141
  const hasSource = COPY_SOURCE_CONTEXT.some((ctx) => lower.includes(ctx));
133
142
  if (!hasSource) {
134
- return { triggered: false, reason: `No source context found. Source contexts: ${COPY_SOURCE_CONTEXT.join(", ")}` };
143
+ return {
144
+ triggered: false,
145
+ reason: `No source context found. Source contexts: ${COPY_SOURCE_CONTEXT.join(", ")}`,
146
+ };
135
147
  }
136
148
 
137
- return { triggered: true, reason: `All conditions met: hasIntent=${hasIntent}, hasDest=${hasDest}, hasSource=${hasSource}` };
149
+ return {
150
+ triggered: true,
151
+ reason: `All conditions met: hasIntent=${hasIntent}, hasDest=${hasDest}, hasSource=${hasSource}`,
152
+ };
138
153
  }
139
154
 
140
155
  /**
141
156
  * Check if text contains import error triggers
142
157
  */
143
- function shouldInjectImportErrorRule(text: string): { triggered: boolean; reason: string } {
158
+ function shouldInjectImportErrorRule(text: string): {
159
+ triggered: boolean;
160
+ reason: string;
161
+ } {
144
162
  const lower = text.toLowerCase();
145
- const matchingTriggers = IMPORT_ERROR_TRIGGERS.filter((t) => lower.includes(t));
146
-
163
+ const matchingTriggers = IMPORT_ERROR_TRIGGERS.filter((t) =>
164
+ lower.includes(t),
165
+ );
166
+
147
167
  if (matchingTriggers.length === 0) {
148
168
  return { triggered: false, reason: "No import error triggers found" };
149
169
  }
150
170
 
151
- return { triggered: true, reason: `Matched triggers: ${matchingTriggers.join(", ")}` };
171
+ return {
172
+ triggered: true,
173
+ reason: `Matched triggers: ${matchingTriggers.join(", ")}`,
174
+ };
152
175
  }
153
176
 
154
177
  /**
@@ -156,7 +179,10 @@ function shouldInjectImportErrorRule(text: string): { triggered: boolean; reason
156
179
  */
157
180
  export function registerFileCopyHelper(pi: ExtensionAPI): void {
158
181
  // Clear debug log on startup
159
- fs.writeFileSync(DEBUG_LOG, `[${new Date().toISOString()}] === DEBUG SESSION STARTED ===\n`);
182
+ fs.writeFileSync(
183
+ DEBUG_LOG,
184
+ `[${new Date().toISOString()}] === DEBUG SESSION STARTED ===\n`,
185
+ );
160
186
 
161
187
  pi.on("input", (event: InputEvent): InputEventResult | undefined => {
162
188
  // DEBUG: Log what we receive
@@ -190,9 +216,15 @@ export function registerFileCopyHelper(pi: ExtensionAPI): void {
190
216
  debugLog("COPY_RULE_CHECK", {
191
217
  triggered: copyCheck.triggered,
192
218
  reason: copyCheck.reason,
193
- matchingKeywords: COPY_KEYWORDS.filter(k => text.toLowerCase().includes(k)),
194
- matchingDest: COPY_DEST_CONTEXT.filter(ctx => text.toLowerCase().includes(ctx)),
195
- matchingSource: COPY_SOURCE_CONTEXT.filter(ctx => text.toLowerCase().includes(ctx)),
219
+ matchingKeywords: COPY_KEYWORDS.filter((k) =>
220
+ text.toLowerCase().includes(k),
221
+ ),
222
+ matchingDest: COPY_DEST_CONTEXT.filter((ctx) =>
223
+ text.toLowerCase().includes(ctx),
224
+ ),
225
+ matchingSource: COPY_SOURCE_CONTEXT.filter((ctx) =>
226
+ text.toLowerCase().includes(ctx),
227
+ ),
196
228
  });
197
229
 
198
230
  if (copyCheck.triggered) {
@@ -208,11 +240,16 @@ export function registerFileCopyHelper(pi: ExtensionAPI): void {
208
240
  debugLog("IMPORT_ERROR_CHECK", {
209
241
  triggered: importCheck.triggered,
210
242
  reason: importCheck.reason,
211
- matchingTriggers: IMPORT_ERROR_TRIGGERS.filter(t => text.toLowerCase().includes(t)),
243
+ matchingTriggers: IMPORT_ERROR_TRIGGERS.filter((t) =>
244
+ text.toLowerCase().includes(t),
245
+ ),
212
246
  });
213
247
 
214
248
  if (importCheck.triggered) {
215
- debugLog("INJECT", { rule: "IMPORT_ERROR_RULE", reason: importCheck.reason });
249
+ debugLog("INJECT", {
250
+ rule: "IMPORT_ERROR_RULE",
251
+ reason: importCheck.reason,
252
+ });
216
253
  return {
217
254
  action: "transform",
218
255
  text: text + IMPORT_ERROR_RULE,
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * Injects "use cp instead of writing from scratch" reminder when user
5
5
  * asks to mimic, copy, clone, or replicate files/folders between locations.
6
- *
6
+ *
7
7
  * DEBUG: All events and rule evaluations logged to /tmp/file-copy-helper-debug.log
8
8
  */
9
9
 
@@ -113,43 +113,61 @@ sudo cp /source/path/components/notifications-provider.tsx /dest/path/components
113
113
  * Check if text contains copy-related keywords
114
114
  * Requires: explicit intent (mimic/copy/clone/replicate) AND destination context
115
115
  */
116
- function shouldInjectCopyRule(text: string): { triggered: boolean; reason: string } {
116
+ function shouldInjectCopyRule(text: string): {
117
+ triggered: boolean;
118
+ reason: string;
119
+ } {
117
120
  const lower = text.toLowerCase();
118
121
 
119
122
  // Must have explicit mimic/copy/clone/replicate intent
120
123
  const hasIntent = COPY_KEYWORDS.some((keyword) => lower.includes(keyword));
121
124
  if (!hasIntent) {
122
- return { triggered: false, reason: `No intent keyword found. Keywords: ${COPY_KEYWORDS.join(", ")}` };
125
+ return {
126
+ triggered: false,
127
+ reason: `No intent keyword found. Keywords: ${COPY_KEYWORDS.join(", ")}`,
128
+ };
123
129
  }
124
130
 
125
131
  // Must have destination context (avoids false positives on "copy this code" etc)
126
132
  const hasDest = COPY_DEST_CONTEXT.some((ctx) => lower.includes(ctx));
127
133
  if (!hasDest) {
128
- return { triggered: false, reason: `No destination context found. Dest contexts: ${COPY_DEST_CONTEXT.join(", ")}` };
134
+ return {
135
+ triggered: false,
136
+ reason: `No destination context found. Dest contexts: ${COPY_DEST_CONTEXT.join(", ")}`,
137
+ };
129
138
  }
130
139
 
131
140
  // Should have source context for full mimic behavior
132
141
  const hasSource = COPY_SOURCE_CONTEXT.some((ctx) => lower.includes(ctx));
133
142
  if (!hasSource) {
134
- return { triggered: false, reason: `No source context found. Source contexts: ${COPY_SOURCE_CONTEXT.join(", ")}` };
143
+ return {
144
+ triggered: false,
145
+ reason: `No source context found. Source contexts: ${COPY_SOURCE_CONTEXT.join(", ")}`,
146
+ };
135
147
  }
136
148
 
137
- return { triggered: true, reason: `All conditions met: hasIntent=${hasIntent}, hasDest=${hasDest}, hasSource=${hasSource}` };
149
+ return {
150
+ triggered: true,
151
+ reason: `All conditions met: hasIntent=${hasIntent}, hasDest=${hasDest}, hasSource=${hasSource}`,
152
+ };
138
153
  }
139
154
 
140
155
  /**
141
156
  * Check if text contains import error triggers
142
157
  * Requires BOTH: import error context + copy/deploy context
143
158
  */
144
- function shouldInjectImportErrorRule(text: string): { triggered: boolean; reason: string } {
159
+ function shouldInjectImportErrorRule(text: string): {
160
+ triggered: boolean;
161
+ reason: string;
162
+ } {
145
163
  const lower = text.toLowerCase();
146
-
164
+
147
165
  // Must have import error context
148
166
  const hasImportError = IMPORT_ERROR_TRIGGERS.some((t) => lower.includes(t));
149
167
  if (!hasImportError) {
150
168
  return { triggered: false, reason: "No import error triggers found" };
151
169
  }
152
-
170
+
153
171
  // Must have copy/deploy context
154
172
  const hasCopyContext = COPY_CONTEXT.some((ctx) => lower.includes(ctx));
155
173
  if (!hasCopyContext) {
@@ -164,7 +182,10 @@ function shouldInjectImportErrorRule(text: string): { triggered: boolean; reason
164
182
  */
165
183
  export function registerFileCopyHelper(pi: ExtensionAPI): void {
166
184
  // Clear debug log on startup
167
- fs.writeFileSync(DEBUG_LOG, `[${new Date().toISOString()}] === DEBUG SESSION STARTED ===\n`);
185
+ fs.writeFileSync(
186
+ DEBUG_LOG,
187
+ `[${new Date().toISOString()}] === DEBUG SESSION STARTED ===\n`,
188
+ );
168
189
 
169
190
  pi.on("input", (event: InputEvent): InputEventResult | undefined => {
170
191
  // DEBUG: Log what we receive
@@ -198,9 +219,15 @@ export function registerFileCopyHelper(pi: ExtensionAPI): void {
198
219
  debugLog("COPY_RULE_CHECK", {
199
220
  triggered: copyCheck.triggered,
200
221
  reason: copyCheck.reason,
201
- matchingKeywords: COPY_KEYWORDS.filter(k => text.toLowerCase().includes(k)),
202
- matchingDest: COPY_DEST_CONTEXT.filter(ctx => text.toLowerCase().includes(ctx)),
203
- matchingSource: COPY_SOURCE_CONTEXT.filter(ctx => text.toLowerCase().includes(ctx)),
222
+ matchingKeywords: COPY_KEYWORDS.filter((k) =>
223
+ text.toLowerCase().includes(k),
224
+ ),
225
+ matchingDest: COPY_DEST_CONTEXT.filter((ctx) =>
226
+ text.toLowerCase().includes(ctx),
227
+ ),
228
+ matchingSource: COPY_SOURCE_CONTEXT.filter((ctx) =>
229
+ text.toLowerCase().includes(ctx),
230
+ ),
204
231
  });
205
232
 
206
233
  if (copyCheck.triggered) {
@@ -216,12 +243,17 @@ export function registerFileCopyHelper(pi: ExtensionAPI): void {
216
243
  debugLog("IMPORT_ERROR_CHECK", {
217
244
  triggered: importCheck.triggered,
218
245
  reason: importCheck.reason,
219
- hasImportError: IMPORT_ERROR_TRIGGERS.some(t => text.toLowerCase().includes(t)),
220
- hasCopyContext: COPY_CONTEXT.some(ctx => text.toLowerCase().includes(ctx)),
246
+ hasImportError: IMPORT_ERROR_TRIGGERS.some((t) =>
247
+ text.toLowerCase().includes(t),
248
+ ),
249
+ hasCopyContext: COPY_CONTEXT.some((ctx) => text.toLowerCase().includes(ctx)),
221
250
  });
222
251
 
223
252
  if (importCheck.triggered) {
224
- debugLog("INJECT", { rule: "IMPORT_ERROR_RULE", reason: importCheck.reason });
253
+ debugLog("INJECT", {
254
+ rule: "IMPORT_ERROR_RULE",
255
+ reason: importCheck.reason,
256
+ });
225
257
  return {
226
258
  action: "transform",
227
259
  text: text + IMPORT_ERROR_RULE,
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/framework-detector",
3
- "version": "1.1.29",
3
+ "version": "1.1.30",
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.29",
3
+ "version": "1.1.30",
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.29",
3
+ "version": "1.1.30",
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.29",
3
+ "version": "1.1.30",
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.29",
3
+ "version": "1.1.30",
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.29",
3
+ "version": "1.1.30",
4
4
  "type": "module",
5
5
  "main": "src/index.ts",
6
6
  "exports": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/knowledge-graph",
3
- "version": "1.1.29",
3
+ "version": "1.1.30",
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.29",
3
+ "version": "1.1.30",
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.29",
3
+ "version": "1.1.30",
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.29",
3
+ "version": "1.1.30",
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.29",
3
+ "version": "1.1.30",
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.29",
3
+ "version": "1.1.30",
4
4
  "description": "Memory engine with OKF integration for durable knowledge management (RFC-0060)",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/milestone-manager",
3
- "version": "1.1.29",
3
+ "version": "1.1.30",
4
4
  "description": "Track milestones and alerts when items are at risk",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/model-registry",
3
- "version": "1.1.29",
3
+ "version": "1.1.30",
4
4
  "description": "Model Registry for pi-harness-runtime — centralized model metadata with pricing",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/nextjs-plugin",
3
- "version": "1.1.29",
3
+ "version": "1.1.30",
4
4
  "description": "Next.js framework detection and analysis for pi-harness-runtime (RFC-0062)",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/notification",
3
- "version": "1.1.29",
3
+ "version": "1.1.30",
4
4
  "description": "pi-harness-runtime — notification",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/observability",
3
- "version": "1.1.29",
3
+ "version": "1.1.30",
4
4
  "description": "Comprehensive observability system with structured logging, tracing, metrics, and alerting",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/okf-indexer",
3
- "version": "1.1.29",
3
+ "version": "1.1.30",
4
4
  "description": "OKF document indexer for SKILL.md files (RFC-0106)",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/performance-optimizer",
3
- "version": "1.1.29",
3
+ "version": "1.1.30",
4
4
  "description": "Performance optimization analyzer for pi-harness runtime (RFC-0056)",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/privilege-broker",
3
- "version": "1.1.29",
3
+ "version": "1.1.30",
4
4
  "description": "Privilege Broker — capability registry and command executor for autonomous runtime (RFC-0101 §7)",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/project-analyzer",
3
- "version": "1.1.29",
3
+ "version": "1.1.30",
4
4
  "description": "Project analysis system for pi-harness-runtime - detects frameworks, rules, and project structure",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/project-bootstrap",
3
- "version": "1.1.29",
3
+ "version": "1.1.30",
4
4
  "description": "Project scaffolding from typed ProjectSpec",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/projection-engine",
3
- "version": "1.1.29",
3
+ "version": "1.1.30",
4
4
  "type": "module",
5
5
  "main": "src/index.ts",
6
6
  "exports": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/prompt-compiler",
3
- "version": "1.1.29",
3
+ "version": "1.1.30",
4
4
  "description": "Deterministic prompt compiler for pi-harness-runtime",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/prompt-versioning",
3
- "version": "1.1.29",
3
+ "version": "1.1.30",
4
4
  "type": "module",
5
5
  "description": "Version control for prompts with rollback support (RFC-0019)",
6
6
  "main": "dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/provider-adapter-sdk",
3
- "version": "1.1.29",
3
+ "version": "1.1.30",
4
4
  "description": "SDK for building, testing, and registering AI provider adapters",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/provider-router",
3
- "version": "1.1.29",
3
+ "version": "1.1.30",
4
4
  "description": "Enhanced Provider Router for pi-harness-runtime — intelligent routing with capabilities, costs, and quotas",
5
5
  "type": "module",
6
6
  "main": "./dist/provider-router.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/provider-selector",
3
- "version": "1.1.29",
3
+ "version": "1.1.30",
4
4
  "description": "Multi-Provider Selector — route requests by cost, quality, and latency (RFC-0012)",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/providers",
3
- "version": "1.1.29",
3
+ "version": "1.1.30",
4
4
  "description": "pi-harness-runtime — providers",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/quota-manager",
3
- "version": "1.1.29",
3
+ "version": "1.1.30",
4
4
  "description": "pi-harness-runtime — quota-manager",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/rate-limiter",
3
- "version": "1.1.29",
3
+ "version": "1.1.30",
4
4
  "type": "module",
5
5
  "description": "Rate limiting with token bucket algorithm (RFC-0023)",
6
6
  "main": "dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/react-vite-plugin",
3
- "version": "1.1.29",
3
+ "version": "1.1.30",
4
4
  "description": "React/Vite framework analysis — components, config, TypeScript setup",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/release-manager",
3
- "version": "1.1.29",
3
+ "version": "1.1.30",
4
4
  "type": "module",
5
5
  "description": "Release management for pi-harness",
6
6
  "main": "dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/requirement-compiler",
3
- "version": "1.1.29",
3
+ "version": "1.1.30",
4
4
  "description": "Compiles raw requirements into validated CompiledRequirement with ambiguity detection and risk tagging",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/runtime",
3
- "version": "1.1.29",
3
+ "version": "1.1.30",
4
4
  "description": "pi-harness-runtime — runtime",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/scheduler",
3
- "version": "1.1.29",
3
+ "version": "1.1.30",
4
4
  "description": "pi-harness-runtime — scheduler",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/scheduler-adapter",
3
- "version": "1.1.29",
3
+ "version": "1.1.30",
4
4
  "description": "Scheduler Adapter — cron, systemd, launchd, internal adapters for autonomous runtime (RFC-0101 §6)",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/session",
3
- "version": "1.1.29",
3
+ "version": "1.1.30",
4
4
  "description": "Session management 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/session-api",
3
- "version": "1.1.29",
3
+ "version": "1.1.30",
4
4
  "type": "module",
5
5
  "main": "src/index.ts",
6
6
  "exports": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/session-export",
3
- "version": "1.1.29",
3
+ "version": "1.1.30",
4
4
  "type": "module",
5
5
  "main": "src/index.ts",
6
6
  "exports": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/shared-context",
3
- "version": "1.1.29",
3
+ "version": "1.1.30",
4
4
  "description": "pi-harness-runtime — shared-context",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/skill-mcp-client",
3
- "version": "1.1.29",
3
+ "version": "1.1.30",
4
4
  "description": "MCP client for Skills SaaS backend",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/skill-registry",
3
- "version": "1.1.29",
3
+ "version": "1.1.30",
4
4
  "description": "Skill Registry for pi-harness-runtime — dynamic skill discovery and invocation",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/sprint-planner",
3
- "version": "1.1.29",
3
+ "version": "1.1.30",
4
4
  "type": "module",
5
5
  "description": "Sprint planning engine for pi-harness",
6
6
  "main": "dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/subscription-engine",
3
- "version": "1.1.29",
3
+ "version": "1.1.30",
4
4
  "type": "module",
5
5
  "main": "src/index.ts",
6
6
  "exports": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/task-compiler",
3
- "version": "1.1.29",
3
+ "version": "1.1.30",
4
4
  "description": "Task Compiler for pi-harness-runtime — produces deterministic task DAG from CompiledRequirement",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@moocoding/tencentdb-memory",
3
- "version": "1.1.29",
3
+ "version": "1.1.30",
4
4
  "description": "TencentDB Agent Memory client - sync skills to centralized knowledge base",
5
5
  "type": "module",
6
6
  "main": "src/index.ts",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/tencentdb-sync",
3
- "version": "1.1.29",
3
+ "version": "1.1.30",
4
4
  "description": "Sync SKILL.md skills to TencentDB-Agent-Memory server (RFC-0105/0106)",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/test-data-generator",
3
- "version": "1.1.29",
3
+ "version": "1.1.30",
4
4
  "description": "Test data generation for pi-harness-runtime",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/test-generator",
3
- "version": "1.1.29",
3
+ "version": "1.1.30",
4
4
  "description": "Auto-Test Generator — generate unit and E2E tests from source code (RFC-0013)",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@moocoding/todo-bd-sync",
3
- "version": "1.1.29",
3
+ "version": "1.1.30",
4
4
  "description": "Two-way sync between rpiv-todo overlay and bd issue tracker",
5
5
  "type": "module",
6
6
  "main": "src/index.ts",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/token-estimation",
3
- "version": "1.1.29",
3
+ "version": "1.1.30",
4
4
  "description": "pi-harness-runtime — token-estimation",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/token-optimizer",
3
- "version": "1.1.29",
3
+ "version": "1.1.30",
4
4
  "description": "Token Budget Optimizer — maximize prompt value within token limits (RFC-0011)",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/tui",
3
- "version": "1.1.29",
3
+ "version": "1.1.30",
4
4
  "description": "pi-harness-runtime — tui",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/types",
3
- "version": "1.1.29",
3
+ "version": "1.1.30",
4
4
  "description": "Shared TypeScript types for pi-harness-runtime packages",
5
5
  "type": "module",
6
6
  "main": "./src/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/workflow-events",
3
- "version": "1.1.29",
3
+ "version": "1.1.30",
4
4
  "type": "module",
5
5
  "main": "src/index.ts",
6
6
  "exports": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/workspace-scanner",
3
- "version": "1.1.29",
3
+ "version": "1.1.30",
4
4
  "type": "module",
5
5
  "main": "src/index.ts",
6
6
  "exports": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/worktree",
3
- "version": "1.1.29",
3
+ "version": "1.1.30",
4
4
  "description": "pi-harness-runtime — worktree",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@moocoding/write-review",
3
- "version": "1.1.29",
3
+ "version": "1.1.30",
4
4
  "description": "Two-agent write-review loop with blackboard coordination",
5
5
  "type": "module",
6
6
  "main": "src/index.ts",