pi-harness-runtime 1.1.115 → 1.1.117
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.
- package/index.ts +63 -3
- package/package.json +1 -1
- package/packages/a2a-adapter/package.json +1 -1
- package/packages/architecture-generator/package.json +1 -1
- package/packages/auth/package.json +1 -1
- package/packages/autonomous-refactor/package.json +1 -1
- package/packages/autonomous-runtime/package.json +1 -1
- package/packages/cache-strategy/package.json +1 -1
- package/packages/capability-registry/package.json +1 -1
- package/packages/checkpoint/package.json +1 -1
- package/packages/cli-plugin-sdk/package.json +1 -1
- package/packages/clipboard/package.json +1 -1
- package/packages/clipboard-plugin/package.json +1 -1
- package/packages/code-generation/package.json +1 -1
- package/packages/code-review/package.json +1 -1
- package/packages/codex-adapter/package.json +1 -1
- package/packages/config-capture/package.json +1 -1
- package/packages/context-compiler/package.json +1 -1
- package/packages/context-discovery/package.json +1 -1
- package/packages/context-manager/package.json +1 -1
- package/packages/cookie-sanitizer/package.json +1 -1
- package/packages/cost-optimizer/package.json +1 -1
- package/packages/dependency-analyzer/package.json +1 -1
- package/packages/django-plugin/package.json +1 -1
- package/packages/doc-generator/package.json +1 -1
- package/packages/evaluation-engine/package.json +1 -1
- package/packages/evaluation-runner/package.json +1 -1
- package/packages/event-bus/package.json +1 -1
- package/packages/event-store/package.json +1 -1
- package/packages/experience-replay/package.json +1 -1
- package/packages/feedback-collector/package.json +1 -1
- package/packages/file-copy-helper/package.json +1 -1
- package/packages/framework-detector/package.json +1 -1
- package/packages/framework-plugin-sdk/package.json +1 -1
- package/packages/frappe-plugin/package.json +1 -1
- package/packages/generic-web-plugin/package.json +1 -1
- package/packages/health-monitor/package.json +1 -1
- package/packages/intent-analyzer/package.json +1 -1
- package/packages/jev-judge/package.json +1 -1
- package/packages/knowledge-graph/package.json +1 -1
- package/packages/knowledge-retrieval/package.json +1 -1
- package/packages/laravel-plugin/package.json +1 -1
- package/packages/learning-engine/package.json +1 -1
- package/packages/mcp-adapter/package.json +1 -1
- package/packages/memory-engine/package.json +1 -1
- package/packages/milestone-manager/package.json +1 -1
- package/packages/model-registry/package.json +1 -1
- package/packages/nextjs-plugin/package.json +1 -1
- package/packages/notification/package.json +1 -1
- package/packages/observability/package.json +1 -1
- package/packages/okf-indexer/package.json +1 -1
- package/packages/performance-optimizer/package.json +1 -1
- package/packages/privilege-broker/package.json +1 -1
- package/packages/project-analyzer/package.json +1 -1
- package/packages/project-bootstrap/package.json +1 -1
- package/packages/projection-engine/package.json +1 -1
- package/packages/prompt-compiler/package.json +1 -1
- package/packages/prompt-versioning/package.json +1 -1
- package/packages/provider-adapter-sdk/package.json +1 -1
- package/packages/provider-router/package.json +1 -1
- package/packages/provider-selector/package.json +1 -1
- package/packages/providers/package.json +1 -1
- package/packages/qdrant-skills/package.json +1 -1
- package/packages/quota-manager/package.json +1 -1
- package/packages/rate-limiter/package.json +1 -1
- package/packages/react-vite-plugin/package.json +1 -1
- package/packages/release-manager/package.json +1 -1
- package/packages/requirement-compiler/package.json +1 -1
- package/packages/runtime/package.json +1 -1
- package/packages/scheduler/package.json +1 -1
- package/packages/scheduler-adapter/package.json +1 -1
- package/packages/session/package.json +1 -1
- package/packages/session-api/package.json +1 -1
- package/packages/session-export/package.json +1 -1
- package/packages/shared-context/package.json +1 -1
- package/packages/skill-mcp-client/package.json +1 -1
- package/packages/skill-registry/package.json +1 -1
- package/packages/skills/package.json +1 -1
- package/packages/sprint-planner/package.json +1 -1
- package/packages/subscription-engine/package.json +1 -1
- package/packages/task-compiler/package.json +1 -1
- package/packages/tencentdb-memory/package.json +1 -1
- package/packages/tencentdb-sync/package.json +1 -1
- package/packages/test-data-generator/package.json +1 -1
- package/packages/test-generator/package.json +1 -1
- package/packages/todo-bd-sync/package.json +1 -1
- package/packages/token-estimation/package.json +1 -1
- package/packages/token-optimizer/package.json +1 -1
- package/packages/trajectory/package.json +1 -1
- package/packages/tui/package.json +1 -1
- package/packages/types/package.json +1 -1
- package/packages/workflow-events/package.json +1 -1
- package/packages/workspace-scanner/package.json +1 -1
- package/packages/worktree/package.json +1 -1
- package/packages/write-review/package.json +1 -1
package/index.ts
CHANGED
|
@@ -248,6 +248,63 @@ async function initQdrant(): Promise<void> {
|
|
|
248
248
|
}
|
|
249
249
|
}
|
|
250
250
|
|
|
251
|
+
// --- telegram-notifications: Telegram bot for harness event notifications ------------
|
|
252
|
+
// Sends Telegram messages when jobs complete, tasks finish, or human input is needed.
|
|
253
|
+
let notificationCenter: unknown = null;
|
|
254
|
+
async function initTelegram(): Promise<void> {
|
|
255
|
+
try {
|
|
256
|
+
const { NotificationCenter } = await import("./packages/notification/dist/index.js");
|
|
257
|
+
const { readFileSync, existsSync } = await import("node:fs");
|
|
258
|
+
const home = process.env.HOME || process.env.USERPROFILE || "/home/frappe";
|
|
259
|
+
const keysDir = `${home}/.pi-harness-runtime/keys`;
|
|
260
|
+
|
|
261
|
+
const botTokenPath = `${keysDir}/telegram-bot-token.txt`;
|
|
262
|
+
const chatIdPath = `${keysDir}/telegram-chat-id.txt`;
|
|
263
|
+
|
|
264
|
+
if (!existsSync(botTokenPath) || !existsSync(chatIdPath)) {
|
|
265
|
+
console.error("[pi-harness] Telegram notifications not configured:");
|
|
266
|
+
console.error(
|
|
267
|
+
` echo "{bot-token}" > ${home}/.pi-harness-runtime/keys/telegram-bot-token.txt`
|
|
268
|
+
);
|
|
269
|
+
console.error(
|
|
270
|
+
` echo "{chat-id}" > ${home}/.pi-harness-runtime/keys/telegram-chat-id.txt`
|
|
271
|
+
);
|
|
272
|
+
return;
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
const botToken = readFileSync(botTokenPath, "utf8").trim();
|
|
276
|
+
const chatId = readFileSync(chatIdPath, "utf8").trim();
|
|
277
|
+
|
|
278
|
+
if (!botToken || !chatId) {
|
|
279
|
+
console.error("[pi-harness] Telegram: bot token or chat ID is empty — skipping");
|
|
280
|
+
return;
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
const center = new NotificationCenter({
|
|
284
|
+
enabled: true,
|
|
285
|
+
channels: [
|
|
286
|
+
{
|
|
287
|
+
id: "telegram",
|
|
288
|
+
type: "telegram",
|
|
289
|
+
enabled: true,
|
|
290
|
+
config: { botToken, chatId },
|
|
291
|
+
},
|
|
292
|
+
],
|
|
293
|
+
});
|
|
294
|
+
|
|
295
|
+
await center.initialize();
|
|
296
|
+
if (!center.hasChannels()) {
|
|
297
|
+
console.error("[pi-harness] Telegram: initialization failed — skipping");
|
|
298
|
+
return;
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
notificationCenter = center;
|
|
302
|
+
console.error(`[pi-harness] Telegram notifications ready`);
|
|
303
|
+
} catch (err) {
|
|
304
|
+
console.error("[pi-harness] Telegram: init failed:", err instanceof Error ? err.message : String(err));
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
|
|
251
308
|
// --- moocoding-sync-hint: Suggest syncing skills if skills dir is empty --------
|
|
252
309
|
// Fires after Jev + Qdrant so all three appear together in startup
|
|
253
310
|
function initMoocodingSyncHint(): void {
|
|
@@ -274,9 +331,9 @@ function initMoocodingSyncHint(): void {
|
|
|
274
331
|
console.error(
|
|
275
332
|
`[pi-harness] ${benchEntries.length} moocoding skill(s) found in frappe-bench`
|
|
276
333
|
);
|
|
277
|
-
console.error(
|
|
278
|
-
|
|
279
|
-
|
|
334
|
+
console.error(
|
|
335
|
+
`[pi-harness] Run /sync-skills --from ${benchPath} --to ${targetPath}`
|
|
336
|
+
);
|
|
280
337
|
} catch {
|
|
281
338
|
// Non-fatal — ignore errors
|
|
282
339
|
}
|
|
@@ -662,6 +719,9 @@ export default function (pi: ExtensionAPI) {
|
|
|
662
719
|
// --- qdrant-vector-search: Qdrant integration for semantic skill search ----
|
|
663
720
|
void initQdrant();
|
|
664
721
|
|
|
722
|
+
// --- telegram-notifications: Telegram bot for harness event notifications ----
|
|
723
|
+
void initTelegram();
|
|
724
|
+
|
|
665
725
|
// --- moocoding-sync-hint: Suggest skill sync if skills dir is empty --------
|
|
666
726
|
void initMoocodingSyncHint();
|
|
667
727
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pi-harness/capability-registry",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.117",
|
|
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-harness/provider-router",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.117",
|
|
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",
|