pi-harness-runtime 1.1.160 → 1.1.162

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 (115) hide show
  1. package/harness/telegram-auth.ts +150 -0
  2. package/harness/telegram-content-filter.ts +223 -0
  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/evaluation-engine/package.json +1 -1
  30. package/packages/evaluation-runner/package.json +1 -1
  31. package/packages/event-bus/package.json +1 -1
  32. package/packages/event-store/package.json +1 -1
  33. package/packages/experience-replay/package.json +1 -1
  34. package/packages/feedback-collector/package.json +1 -1
  35. package/packages/file-copy-helper/package.json +1 -1
  36. package/packages/framework-detector/package.json +1 -1
  37. package/packages/framework-plugin-sdk/package.json +1 -1
  38. package/packages/frappe-plugin/package.json +1 -1
  39. package/packages/generic-web-plugin/package.json +1 -1
  40. package/packages/health-monitor/package.json +1 -1
  41. package/packages/intent-analyzer/package.json +1 -1
  42. package/packages/jev-judge/package.json +1 -1
  43. package/packages/knowledge-graph/package.json +1 -1
  44. package/packages/knowledge-retrieval/package.json +1 -1
  45. package/packages/laravel-plugin/package.json +1 -1
  46. package/packages/learning-engine/package.json +1 -1
  47. package/packages/mcp-adapter/package.json +1 -1
  48. package/packages/memory-engine/package.json +1 -1
  49. package/packages/milestone-manager/package.json +1 -1
  50. package/packages/model-registry/package.json +1 -1
  51. package/packages/nextjs-plugin/package.json +1 -1
  52. package/packages/notification/dist/adapters/telegram-adapter.d.ts.map +1 -1
  53. package/packages/notification/dist/adapters/telegram-adapter.js +20 -9
  54. package/packages/notification/dist/adapters/telegram-adapter.js.map +1 -1
  55. package/packages/notification/dist/index.d.ts +1 -0
  56. package/packages/notification/dist/index.d.ts.map +1 -1
  57. package/packages/notification/dist/index.js +1 -0
  58. package/packages/notification/dist/index.js.map +1 -1
  59. package/packages/notification/dist/mask-secrets.d.ts +31 -0
  60. package/packages/notification/dist/mask-secrets.d.ts.map +1 -0
  61. package/packages/notification/dist/mask-secrets.js +141 -0
  62. package/packages/notification/dist/mask-secrets.js.map +1 -0
  63. package/packages/notification/package.json +1 -1
  64. package/packages/notification/src/adapters/telegram-adapter.ts +22 -9
  65. package/packages/notification/src/index.ts +7 -0
  66. package/packages/notification/src/mask-secrets.ts +160 -0
  67. package/packages/observability/package.json +1 -1
  68. package/packages/okf-indexer/package.json +1 -1
  69. package/packages/paperclip-integration/package.json +1 -1
  70. package/packages/performance-optimizer/package.json +1 -1
  71. package/packages/privilege-broker/package.json +1 -1
  72. package/packages/project-analyzer/package.json +1 -1
  73. package/packages/project-bootstrap/package.json +1 -1
  74. package/packages/projection-engine/package.json +1 -1
  75. package/packages/prompt-compiler/package.json +1 -1
  76. package/packages/prompt-versioning/package.json +1 -1
  77. package/packages/provider-adapter-sdk/package.json +1 -1
  78. package/packages/provider-router/package.json +1 -1
  79. package/packages/provider-selector/package.json +1 -1
  80. package/packages/providers/package.json +1 -1
  81. package/packages/qdrant-skills/package.json +1 -1
  82. package/packages/quota-manager/package.json +1 -1
  83. package/packages/rate-limiter/package.json +1 -1
  84. package/packages/react-vite-plugin/package.json +1 -1
  85. package/packages/release-manager/package.json +1 -1
  86. package/packages/requirement-compiler/package.json +1 -1
  87. package/packages/runtime/package.json +1 -1
  88. package/packages/scheduler/package.json +1 -1
  89. package/packages/scheduler-adapter/package.json +1 -1
  90. package/packages/session/package.json +1 -1
  91. package/packages/session-api/package.json +1 -1
  92. package/packages/session-export/package.json +1 -1
  93. package/packages/shared-context/package.json +1 -1
  94. package/packages/skill-mcp-client/package.json +1 -1
  95. package/packages/skill-registry/package.json +1 -1
  96. package/packages/skills/package.json +1 -1
  97. package/packages/sprint-planner/package.json +1 -1
  98. package/packages/subscription-engine/package.json +1 -1
  99. package/packages/task-compiler/package.json +1 -1
  100. package/packages/tencentdb-memory/package.json +1 -1
  101. package/packages/tencentdb-sync/package.json +1 -1
  102. package/packages/test-data-generator/package.json +1 -1
  103. package/packages/test-generator/package.json +1 -1
  104. package/packages/todo-bd-sync/package.json +1 -1
  105. package/packages/token-estimation/package.json +1 -1
  106. package/packages/token-optimizer/package.json +1 -1
  107. package/packages/trajectory/package.json +1 -1
  108. package/packages/tui/package.json +1 -1
  109. package/packages/types/package.json +1 -1
  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
  114. package/scripts/telegram-webhook-server.ts +85 -6
  115. package/scripts/tsconfig.json +9 -0
@@ -0,0 +1,160 @@
1
+ /**
2
+ * Secret Masking Utility
3
+ *
4
+ * Masks sensitive values in strings before sending to Telegram/other channels.
5
+ * Shows first 4 + last 4 characters for identification.
6
+ */
7
+
8
+ /**
9
+ * Patterns that match sensitive values
10
+ */
11
+ const SENSITIVE_PATTERNS: RegExp[] = [
12
+ // Telegram bot tokens: format is \d+:[-A-Za-z0-9_]{35,}
13
+ /\d+:[-A-Za-z0-9_]{35,}/g,
14
+ // Generic API keys, tokens, secrets
15
+ /[a-zA-Z0-9_-]{32,}/g, // Long alphanumeric strings (likely keys)
16
+ /[A-Fa-f0-9]{32,}/g, // Hex strings (likely hashes/keys)
17
+ /sk-[a-zA-Z0-9]{20,}/g, // OpenAI-style keys
18
+ /Bearer\s+[a-zA-Z0-9_-]{20,}/gi, // Bearer tokens
19
+ /token[=:]\s*[a-zA-Z0-9_-]{20,}/gi, // token=xxx patterns
20
+ /secret[=:]\s*[a-zA-Z0-9_-]{20,}/gi, // secret=xxx patterns
21
+ /key[=:]\s*[a-zA-Z0-9_-]{20,}/gi, // key=xxx patterns
22
+ /password[=:]\s*[^\s,}]+/gi, // password=xxx patterns
23
+ /client[_-]?secret[=:]\s*[^\s,}]+/gi, // client_secret=xxx
24
+ /client[_-]?id[=:]\s*[a-zA-Z0-9_-]{20,}/gi, // client_id=xxx
25
+ /infisical[_-]?(client[_-])?(secret|id)[=:]\s*[a-zA-Z0-9_-]{20,}/gi,
26
+ ];
27
+
28
+ // Specific Infisical field names to mask
29
+ const INFISICAL_FIELDS = [
30
+ "infisical_client_secret",
31
+ "infisical_client_id",
32
+ "infisical_project_id",
33
+ "INFISICAL_CLIENT_SECRET",
34
+ "INFISICAL_CLIENT_ID",
35
+ "INFISICAL_PROJECT_ID",
36
+ ];
37
+
38
+ // General sensitive field patterns
39
+ const SENSITIVE_FIELD_PATTERNS = [
40
+ /_api_key$/i,
41
+ /_secret$/i,
42
+ /_token$/i,
43
+ /_password$/i,
44
+ /_credential$/i,
45
+ /_auth$/i,
46
+ ];
47
+
48
+ /**
49
+ * Mask a value showing first and last characters
50
+ */
51
+ export function maskValue(value: string): string {
52
+ // Telegram bot tokens use the format \d+:[-A-Za-z0-9_]{35,}
53
+ // Mask these completely - no prefix/suffix preserved
54
+ if (/^\d+:[-A-Za-z0-9_]+$/.test(value)) {
55
+ return "[REDACTED]";
56
+ }
57
+
58
+ // For other values, show first 4 + last 4
59
+ if (!value || value.length <= 8) {
60
+ return "****";
61
+ }
62
+ return `${value.slice(0, 4)}...${value.slice(-4)}`;
63
+ }
64
+
65
+ /**
66
+ * Check if a field name is sensitive
67
+ */
68
+ export function isSensitiveField(fieldName: string): boolean {
69
+ const lower = fieldName.toLowerCase();
70
+
71
+ // Check specific Infisical fields
72
+ if (INFISICAL_FIELDS.some(f => lower === f.toLowerCase())) {
73
+ return true;
74
+ }
75
+
76
+ // Check general patterns
77
+ return SENSITIVE_FIELD_PATTERNS.some(pattern => pattern.test(lower));
78
+ }
79
+
80
+ /**
81
+ * Mask a string value
82
+ */
83
+ function maskStringValue(input: string): string {
84
+ let result = input;
85
+
86
+ // First, mask any field=value patterns for sensitive fields
87
+ for (const field of INFISICAL_FIELDS) {
88
+ const escapedField = field.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
89
+ const pattern = new RegExp(`(${escapedField})\\s*[=:]\\s*([a-zA-Z0-9_-]+)`, "gi");
90
+ result = result.replace(pattern, (_match, _field, value) => `${field}: ${maskValue(value)}`);
91
+ }
92
+
93
+ // Then mask generic patterns
94
+ for (const pattern of SENSITIVE_PATTERNS) {
95
+ result = result.replace(pattern, (match) => maskValue(match));
96
+ }
97
+
98
+ return result;
99
+ }
100
+
101
+ /**
102
+ * Mask sensitive patterns in a string
103
+ */
104
+ export function maskString(input: string): string {
105
+ return maskStringValue(input);
106
+ }
107
+
108
+ /**
109
+ * Mask JSON object fields that are sensitive
110
+ */
111
+ export function maskObject(obj: unknown, depth: number = 0): Record<string, unknown> | unknown[] | string | number | boolean | null {
112
+ // Prevent infinite recursion
113
+ if (depth > 10 || obj === null || obj === undefined) {
114
+ return obj as null;
115
+ }
116
+
117
+ if (typeof obj === "string") {
118
+ return maskStringValue(obj);
119
+ }
120
+
121
+ if (typeof obj === "number" || typeof obj === "boolean") {
122
+ return obj;
123
+ }
124
+
125
+ if (Array.isArray(obj)) {
126
+ return obj.map(item => maskObject(item, depth + 1));
127
+ }
128
+
129
+ if (typeof obj === "object") {
130
+ const result: Record<string, unknown> = {};
131
+ for (const [key, value] of Object.entries(obj as Record<string, unknown>)) {
132
+ if (isSensitiveField(key)) {
133
+ result[key] = typeof value === "string" ? maskValue(value) : value;
134
+ } else {
135
+ result[key] = maskObject(value, depth + 1);
136
+ }
137
+ }
138
+ return result as Record<string, unknown>;
139
+ }
140
+
141
+ // SAFETY: obj is one of the primitive types at this point
142
+ return obj as unknown as (Record<string, unknown> | unknown[] | string | number | boolean | null);
143
+ }
144
+
145
+ /**
146
+ * Mask a message/notification payload
147
+ */
148
+ export function maskPayload(obj: unknown): Record<string, unknown> | unknown[] | string | number | boolean | null {
149
+ return maskObject(obj);
150
+ }
151
+
152
+ /**
153
+ * Format a value for display, masking if sensitive
154
+ */
155
+ export function formatValue(key: string, value: unknown): string {
156
+ if (isSensitiveField(key) && typeof value === "string") {
157
+ return `${key}: ${maskValue(value)}`;
158
+ }
159
+ return `${key}: ${value}`;
160
+ }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/observability",
3
- "version": "1.1.160",
3
+ "version": "1.1.162",
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.160",
3
+ "version": "1.1.162",
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/paperclip-integration",
3
- "version": "1.1.160",
3
+ "version": "1.1.162",
4
4
  "description": "Paperclip API integration: poll agent inbox, route tasks to pi.dev, Telegram alerts",
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.160",
3
+ "version": "1.1.162",
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.160",
3
+ "version": "1.1.162",
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.160",
3
+ "version": "1.1.162",
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.160",
3
+ "version": "1.1.162",
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.160",
3
+ "version": "1.1.162",
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.160",
3
+ "version": "1.1.162",
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.160",
3
+ "version": "1.1.162",
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.160",
3
+ "version": "1.1.162",
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.160",
3
+ "version": "1.1.162",
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.160",
3
+ "version": "1.1.162",
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.160",
3
+ "version": "1.1.162",
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/qdrant-skills",
3
- "version": "1.1.160",
3
+ "version": "1.1.162",
4
4
  "description": "Qdrant vector search integration for Hermes-style skill system",
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.160",
3
+ "version": "1.1.162",
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.160",
3
+ "version": "1.1.162",
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.160",
3
+ "version": "1.1.162",
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.160",
3
+ "version": "1.1.162",
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.160",
3
+ "version": "1.1.162",
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.160",
3
+ "version": "1.1.162",
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.160",
3
+ "version": "1.1.162",
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.160",
3
+ "version": "1.1.162",
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.160",
3
+ "version": "1.1.162",
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.160",
3
+ "version": "1.1.162",
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.160",
3
+ "version": "1.1.162",
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.160",
3
+ "version": "1.1.162",
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.160",
3
+ "version": "1.1.162",
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.160",
3
+ "version": "1.1.162",
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-harness/skills",
3
- "version": "1.1.160",
3
+ "version": "1.1.162",
4
4
  "description": "File-based skill system with pi.dev compatibility and Hermes self-improvement",
5
5
  "type": "module",
6
6
  "main": "src/index.ts",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/sprint-planner",
3
- "version": "1.1.160",
3
+ "version": "1.1.162",
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.160",
3
+ "version": "1.1.162",
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.160",
3
+ "version": "1.1.162",
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.160",
3
+ "version": "1.1.162",
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.160",
3
+ "version": "1.1.162",
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.160",
3
+ "version": "1.1.162",
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.160",
3
+ "version": "1.1.162",
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.160",
3
+ "version": "1.1.162",
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.160",
3
+ "version": "1.1.162",
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.160",
3
+ "version": "1.1.162",
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/trajectory",
3
- "version": "1.1.160",
3
+ "version": "1.1.162",
4
4
  "description": "Trajectory capture for the write-review loop — persists cycle records for learning",
5
5
  "type": "module",
6
6
  "main": "./dist/src/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/tui",
3
- "version": "1.1.160",
3
+ "version": "1.1.162",
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.160",
3
+ "version": "1.1.162",
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.160",
3
+ "version": "1.1.162",
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.160",
3
+ "version": "1.1.162",
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.160",
3
+ "version": "1.1.162",
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.160",
3
+ "version": "1.1.162",
4
4
  "description": "Two-agent write-review loop with blackboard coordination",
5
5
  "type": "module",
6
6
  "main": "src/index.ts",