pi-harness-runtime 1.1.397 → 1.1.398

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 (141) hide show
  1. package/harness/notification-events.ts +6 -6
  2. package/index.ts +1 -1
  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/connection-runtime/package.json +1 -1
  22. package/packages/context-compiler/package.json +1 -1
  23. package/packages/context-discovery/package.json +1 -1
  24. package/packages/context-manager/package.json +1 -1
  25. package/packages/contracts/package.json +1 -1
  26. package/packages/cookie-sanitizer/package.json +1 -1
  27. package/packages/cost-optimizer/package.json +1 -1
  28. package/packages/dependency-analyzer/package.json +1 -1
  29. package/packages/django-plugin/package.json +1 -1
  30. package/packages/doc-generator/package.json +1 -1
  31. package/packages/durable-review/package.json +1 -1
  32. package/packages/e2e-tester/package.json +1 -1
  33. package/packages/evaluation-engine/package.json +1 -1
  34. package/packages/evaluation-runner/package.json +1 -1
  35. package/packages/event-bus/package.json +1 -1
  36. package/packages/event-sink/package.json +1 -1
  37. package/packages/event-store/package.json +1 -1
  38. package/packages/experience-replay/package.json +1 -1
  39. package/packages/feedback-collector/package.json +1 -1
  40. package/packages/file-copy-helper/package.json +1 -1
  41. package/packages/framework-detector/package.json +1 -1
  42. package/packages/framework-plugin-sdk/package.json +1 -1
  43. package/packages/frappe-plugin/package.json +1 -1
  44. package/packages/generic-web-plugin/package.json +1 -1
  45. package/packages/health-monitor/package.json +1 -1
  46. package/packages/intent-analyzer/package.json +1 -1
  47. package/packages/jev-judge/package.json +1 -1
  48. package/packages/knowledge-graph/package.json +1 -1
  49. package/packages/knowledge-retrieval/package.json +1 -1
  50. package/packages/laravel-plugin/package.json +1 -1
  51. package/packages/learning-engine/package.json +1 -1
  52. package/packages/logging/package.json +1 -1
  53. package/packages/mcp-adapter/package.json +1 -1
  54. package/packages/memory-engine/package.json +1 -1
  55. package/packages/milestone-manager/package.json +1 -1
  56. package/packages/model-registry/package.json +1 -1
  57. package/packages/nextjs-plugin/package.json +1 -1
  58. package/packages/notification/dist/adapters/detail-format.d.ts +34 -0
  59. package/packages/notification/dist/adapters/detail-format.d.ts.map +1 -0
  60. package/packages/notification/dist/adapters/detail-format.js +55 -0
  61. package/packages/notification/dist/adapters/detail-format.js.map +1 -0
  62. package/packages/notification/dist/adapters/email-adapter.d.ts.map +1 -1
  63. package/packages/notification/dist/adapters/email-adapter.js +3 -2
  64. package/packages/notification/dist/adapters/email-adapter.js.map +1 -1
  65. package/packages/notification/dist/adapters/line-adapter.d.ts.map +1 -1
  66. package/packages/notification/dist/adapters/line-adapter.js +3 -2
  67. package/packages/notification/dist/adapters/line-adapter.js.map +1 -1
  68. package/packages/notification/dist/adapters/ntfy-adapter.d.ts.map +1 -1
  69. package/packages/notification/dist/adapters/ntfy-adapter.js +3 -2
  70. package/packages/notification/dist/adapters/ntfy-adapter.js.map +1 -1
  71. package/packages/notification/dist/adapters/telegram-adapter.d.ts +14 -0
  72. package/packages/notification/dist/adapters/telegram-adapter.d.ts.map +1 -1
  73. package/packages/notification/dist/adapters/telegram-adapter.js +83 -67
  74. package/packages/notification/dist/adapters/telegram-adapter.js.map +1 -1
  75. package/packages/notification/dist/notification-center.d.ts.map +1 -1
  76. package/packages/notification/dist/notification-center.js +1 -0
  77. package/packages/notification/dist/notification-center.js.map +1 -1
  78. package/packages/notification/dist/types.d.ts +3 -0
  79. package/packages/notification/dist/types.d.ts.map +1 -1
  80. package/packages/notification/package.json +1 -1
  81. package/packages/notification/src/adapters/detail-format.ts +74 -0
  82. package/packages/notification/src/adapters/email-adapter.ts +3 -2
  83. package/packages/notification/src/adapters/line-adapter.ts +3 -2
  84. package/packages/notification/src/adapters/ntfy-adapter.ts +3 -2
  85. package/packages/notification/src/adapters/telegram-adapter.ts +92 -74
  86. package/packages/notification/src/notification-center.ts +1 -0
  87. package/packages/notification/src/types.ts +3 -0
  88. package/packages/notification/test/detail-format.test.ts +106 -0
  89. package/packages/observability/package.json +1 -1
  90. package/packages/okf-indexer/package.json +1 -1
  91. package/packages/paperclip-integration/package.json +1 -1
  92. package/packages/performance-optimizer/package.json +1 -1
  93. package/packages/permission-mode/package.json +1 -1
  94. package/packages/privilege-broker/package.json +1 -1
  95. package/packages/project-analyzer/package.json +1 -1
  96. package/packages/project-bootstrap/package.json +1 -1
  97. package/packages/projection-engine/package.json +1 -1
  98. package/packages/prompt-compiler/package.json +1 -1
  99. package/packages/prompt-versioning/package.json +1 -1
  100. package/packages/provider-adapter-sdk/package.json +1 -1
  101. package/packages/provider-router/package.json +1 -1
  102. package/packages/provider-selector/package.json +1 -1
  103. package/packages/providers/package.json +1 -1
  104. package/packages/qdrant-skills/package.json +1 -1
  105. package/packages/quota-manager/package.json +1 -1
  106. package/packages/rate-limiter/package.json +1 -1
  107. package/packages/react-vite-plugin/package.json +1 -1
  108. package/packages/relay/package.json +1 -1
  109. package/packages/release-manager/package.json +1 -1
  110. package/packages/requirement-compiler/package.json +1 -1
  111. package/packages/runtime/package.json +1 -1
  112. package/packages/scheduler/package.json +1 -1
  113. package/packages/scheduler-adapter/package.json +1 -1
  114. package/packages/session/package.json +1 -1
  115. package/packages/session-api/package.json +1 -1
  116. package/packages/session-export/package.json +1 -1
  117. package/packages/shared-context/package.json +1 -1
  118. package/packages/skill-mcp-client/package.json +1 -1
  119. package/packages/skill-registry/package.json +1 -1
  120. package/packages/skills/package.json +1 -1
  121. package/packages/sprint-planner/package.json +1 -1
  122. package/packages/subscription-engine/package.json +1 -1
  123. package/packages/task-compiler/package.json +1 -1
  124. package/packages/telegram/package.json +1 -1
  125. package/packages/tencentdb-memory/package.json +1 -1
  126. package/packages/tencentdb-sync/package.json +1 -1
  127. package/packages/test-data-generator/package.json +1 -1
  128. package/packages/test-generator/package.json +1 -1
  129. package/packages/todo-bd-sync/package.json +1 -1
  130. package/packages/token-estimation/package.json +1 -1
  131. package/packages/token-optimizer/package.json +1 -1
  132. package/packages/trajectory/package.json +1 -1
  133. package/packages/tui/package.json +1 -1
  134. package/packages/types/package.json +1 -1
  135. package/packages/voice-api/package.json +1 -1
  136. package/packages/webmcp-tester/package.json +1 -1
  137. package/packages/wiki/package.json +1 -1
  138. package/packages/workflow-events/package.json +1 -1
  139. package/packages/workspace-scanner/package.json +1 -1
  140. package/packages/worktree/package.json +1 -1
  141. package/packages/write-review/package.json +1 -1
@@ -105,7 +105,7 @@ export class HarnessNotificationEvents {
105
105
  */
106
106
  async emitQuotaPaused(resumeAt?: string): Promise<void> {
107
107
  await this.emit("QuotaPaused", {
108
- error: resumeAt ? `Resumes at ${resumeAt}` : undefined,
108
+ reason: resumeAt ? `Resumes at ${resumeAt}` : undefined,
109
109
  });
110
110
  }
111
111
 
@@ -113,7 +113,7 @@ export class HarnessNotificationEvents {
113
113
  * Emit ResumeScheduled event
114
114
  */
115
115
  async emitResumeScheduled(resumeAt: string): Promise<void> {
116
- await this.emit("ResumeScheduled", { error: resumeAt });
116
+ await this.emit("ResumeScheduled", { reason: resumeAt });
117
117
  }
118
118
 
119
119
  /**
@@ -121,7 +121,7 @@ export class HarnessNotificationEvents {
121
121
  */
122
122
  async emitContextCompacted(tokensCompacted?: number): Promise<void> {
123
123
  await this.emit("ContextCompacted", {
124
- error: tokensCompacted
124
+ reason: tokensCompacted
125
125
  ? `Compacted ${tokensCompacted.toLocaleString()} tokens`
126
126
  : undefined,
127
127
  });
@@ -132,7 +132,7 @@ export class HarnessNotificationEvents {
132
132
  */
133
133
  async emitOutputLimitContinued(attempt: number): Promise<void> {
134
134
  await this.emit("OutputLimitContinued", {
135
- error: `Attempt ${attempt}`,
135
+ reason: `Attempt ${attempt}`,
136
136
  });
137
137
  }
138
138
 
@@ -149,7 +149,7 @@ export class HarnessNotificationEvents {
149
149
  * Emit HumanReviewNeeded event
150
150
  */
151
151
  async emitHumanReviewNeeded(taskId: string, reason: string): Promise<void> {
152
- await this.emit("HumanReviewNeeded", { taskId, error: reason });
152
+ await this.emit("HumanReviewNeeded", { taskId, reason });
153
153
  }
154
154
 
155
155
  /**
@@ -163,7 +163,7 @@ export class HarnessNotificationEvents {
163
163
  * Emit JobCancelled event
164
164
  */
165
165
  async emitJobCancelled(reason?: string): Promise<void> {
166
- await this.emit("JobCancelled", { error: reason });
166
+ await this.emit("JobCancelled", { reason });
167
167
  }
168
168
 
169
169
  /**
package/index.ts CHANGED
@@ -5610,7 +5610,7 @@ Run \`bd ready\` to see current bd issues.
5610
5610
  pi.sendUserMessage(content, { deliverAs });
5611
5611
  await nc("ResumeScheduled", {
5612
5612
  requirement: "Session auto-resume",
5613
- error: reason,
5613
+ reason,
5614
5614
  });
5615
5615
  } catch (error) {
5616
5616
  logToFile(
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pi-harness-runtime",
3
- "version": "1.1.397",
3
+ "version": "1.1.398",
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.397",
3
+ "version": "1.1.398",
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.397",
3
+ "version": "1.1.398",
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.397",
3
+ "version": "1.1.398",
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.397",
3
+ "version": "1.1.398",
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.397",
3
+ "version": "1.1.398",
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.397",
3
+ "version": "1.1.398",
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.397",
3
+ "version": "1.1.398",
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.397",
3
+ "version": "1.1.398",
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.397",
3
+ "version": "1.1.398",
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.397",
3
+ "version": "1.1.398",
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.397",
3
+ "version": "1.1.398",
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.397",
3
+ "version": "1.1.398",
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.397",
3
+ "version": "1.1.398",
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.397",
3
+ "version": "1.1.398",
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.397",
3
+ "version": "1.1.398",
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.397",
3
+ "version": "1.1.398",
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.397",
3
+ "version": "1.1.398",
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-harness/connection-runtime",
3
- "version": "1.1.397",
3
+ "version": "1.1.398",
4
4
  "type": "module",
5
5
  "description": "Connection management with jittered exponential backoff for pi-harness",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/context-compiler",
3
- "version": "1.1.397",
3
+ "version": "1.1.398",
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.397",
3
+ "version": "1.1.398",
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.397",
3
+ "version": "1.1.398",
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/contracts",
3
- "version": "1.1.397",
3
+ "version": "1.1.398",
4
4
  "type": "module",
5
5
  "description": "RPC schema definitions for pi-harness runtime",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/cookie-sanitizer",
3
- "version": "1.1.397",
3
+ "version": "1.1.398",
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.397",
3
+ "version": "1.1.398",
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.397",
3
+ "version": "1.1.398",
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.397",
3
+ "version": "1.1.398",
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.397",
3
+ "version": "1.1.398",
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.397",
3
+ "version": "1.1.398",
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.397",
3
+ "version": "1.1.398",
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.397",
3
+ "version": "1.1.398",
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.397",
3
+ "version": "1.1.398",
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.397",
3
+ "version": "1.1.398",
4
4
  "type": "module",
5
5
  "main": "src/index.ts",
6
6
  "exports": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/event-sink",
3
- "version": "1.1.397",
3
+ "version": "1.1.398",
4
4
  "type": "module",
5
5
  "description": "Atomic event sourcing with SQLite transactions for pi-harness",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/event-store",
3
- "version": "1.1.397",
3
+ "version": "1.1.398",
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.397",
3
+ "version": "1.1.398",
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.397",
3
+ "version": "1.1.398",
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.397",
3
+ "version": "1.1.398",
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.397",
3
+ "version": "1.1.398",
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.397",
3
+ "version": "1.1.398",
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.397",
3
+ "version": "1.1.398",
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.397",
3
+ "version": "1.1.398",
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.397",
3
+ "version": "1.1.398",
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.397",
3
+ "version": "1.1.398",
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.397",
3
+ "version": "1.1.398",
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.397",
3
+ "version": "1.1.398",
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.397",
3
+ "version": "1.1.398",
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.397",
3
+ "version": "1.1.398",
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.397",
3
+ "version": "1.1.398",
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-harness/logging",
3
- "version": "1.1.397",
3
+ "version": "1.1.398",
4
4
  "type": "module",
5
5
  "description": "Centralized structured application logging with buffered Cloudflare R2 and webhook transports",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/mcp-adapter",
3
- "version": "1.1.397",
3
+ "version": "1.1.398",
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.397",
3
+ "version": "1.1.398",
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.397",
3
+ "version": "1.1.398",
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.397",
3
+ "version": "1.1.398",
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.397",
3
+ "version": "1.1.398",
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",
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Shared rendering of the notification detail fields.
3
+ *
4
+ * `details.error` is reserved for events that represent an actual failure. A
5
+ * resume trigger ("provider-overload", "post-compact") or a quota detail is a
6
+ * reason, not an error, and must never be rendered under the "Error:" footer.
7
+ *
8
+ * Every adapter renders the detail fields through this module so the labels
9
+ * stay consistent across Telegram, LINE, ntfy and email.
10
+ */
11
+ import type { NotificationEvent, NotificationPayload } from "../types.js";
12
+ /** Events whose `details.error` really is an error. */
13
+ export declare const ERROR_EVENTS: ReadonlySet<NotificationEvent>;
14
+ export declare function isErrorEvent(event: NotificationEvent): boolean;
15
+ export interface DetailLine {
16
+ /** "Error" for a real failure, "Reason" for a trigger or a detail. */
17
+ label: "Error" | "Reason";
18
+ value: string;
19
+ }
20
+ /**
21
+ * Render the detail fields of a payload as footer lines.
22
+ *
23
+ * - `details.reason` becomes "Reason: ..." for every event.
24
+ * - `details.error` becomes "Error: ..." for the error events only.
25
+ * - A legacy `details.error` on a non-error event becomes "Reason: ..." so the
26
+ * information survives when a producer still uses the old field.
27
+ */
28
+ export declare function formatDetailLines(details: NotificationPayload["details"], event: NotificationEvent): DetailLine[];
29
+ /**
30
+ * The same lines as a plain text block, one per line.
31
+ * An empty string when there is nothing to render.
32
+ */
33
+ export declare function formatDetailText(details: NotificationPayload["details"], event: NotificationEvent): string;
34
+ //# sourceMappingURL=detail-format.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detail-format.d.ts","sourceRoot":"","sources":["../../src/adapters/detail-format.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAE1E,uDAAuD;AACvD,eAAO,MAAM,YAAY,EAAE,WAAW,CAAC,iBAAiB,CAItD,CAAC;AAEH,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAE9D;AAED,MAAM,WAAW,UAAU;IAC1B,sEAAsE;IACtE,KAAK,EAAE,OAAO,GAAG,QAAQ,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;CACd;AAQD;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAChC,OAAO,EAAE,mBAAmB,CAAC,SAAS,CAAC,EACvC,KAAK,EAAE,iBAAiB,GACtB,UAAU,EAAE,CAad;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC/B,OAAO,EAAE,mBAAmB,CAAC,SAAS,CAAC,EACvC,KAAK,EAAE,iBAAiB,GACtB,MAAM,CAIR"}