pi-harness-runtime 1.1.210 → 1.1.211
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 +60 -26
- package/package.json +1 -1
- package/packages/a2a-adapter/package.json +1 -1
- package/packages/agent-policy/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/codex-watcher/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/e2e-tester/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/paperclip-integration/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/telegram/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/webmcp-tester/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
|
@@ -3016,22 +3016,46 @@ Run \`bd ready\` to see current bd issues.
|
|
|
3016
3016
|
},
|
|
3017
3017
|
});
|
|
3018
3018
|
|
|
3019
|
-
// ---
|
|
3020
|
-
|
|
3021
|
-
|
|
3022
|
-
|
|
3023
|
-
|
|
3024
|
-
|
|
3025
|
-
"
|
|
3026
|
-
|
|
3027
|
-
|
|
3028
|
-
|
|
3019
|
+
// --- Harness footer state (separate from quota) -----------------------
|
|
3020
|
+
// Store harness messages separately - NOT in status keys used by quota
|
|
3021
|
+
interface HarnessMessage {
|
|
3022
|
+
id: string;
|
|
3023
|
+
label: string;
|
|
3024
|
+
text: string;
|
|
3025
|
+
status: "wait" | "ok" | "err";
|
|
3026
|
+
}
|
|
3027
|
+
const harnessMessages: HarnessMessage[] = [];
|
|
3028
|
+
|
|
3029
|
+
function addHarnessMessage(label: string, text: string, status: "wait" | "ok" | "err" = "wait") {
|
|
3030
|
+
const id = `${label}-${Date.now()}`;
|
|
3031
|
+
harnessMessages.push({ id, label, text, status });
|
|
3032
|
+
}
|
|
3033
|
+
|
|
3034
|
+
function clearHarnessMessages() {
|
|
3035
|
+
harnessMessages.length = 0;
|
|
3036
|
+
}
|
|
3037
|
+
|
|
3038
|
+
function getHarnessLines(width: number): string[] {
|
|
3039
|
+
const lines: string[] = [];
|
|
3040
|
+
if (harnessMessages.length === 0) return lines;
|
|
3029
3041
|
|
|
3042
|
+
lines.push("[Pi-harness]");
|
|
3043
|
+
for (const msg of harnessMessages) {
|
|
3044
|
+
const marker = msg.status === "ok" ? "[OK]" : msg.status === "err" ? "[ERR]" : "[WAIT]";
|
|
3045
|
+
let text = ` ${marker} ${msg.label}: ${msg.text}`;
|
|
3046
|
+
if (text.length > width) {
|
|
3047
|
+
text = text.substring(0, width - 1) + "…";
|
|
3048
|
+
}
|
|
3049
|
+
lines.push(text);
|
|
3050
|
+
}
|
|
3051
|
+
return lines;
|
|
3052
|
+
}
|
|
3053
|
+
|
|
3054
|
+
// --- Footer status (persistent badge) --------------------------------
|
|
3030
3055
|
pi.on("session_start", async (_event, ctx) => {
|
|
3031
3056
|
|
|
3032
3057
|
// Capture only the setStatus function, not the ctx
|
|
3033
3058
|
footerSetStatus = ctx.ui.setStatus.bind(ctx.ui);
|
|
3034
|
-
harnessSetStatus = ctx.ui.setStatus.bind(ctx.ui);
|
|
3035
3059
|
refreshFooterStatus(
|
|
3036
3060
|
footerSetStatus,
|
|
3037
3061
|
tracker,
|
|
@@ -3040,10 +3064,17 @@ Run \`bd ready\` to see current bd issues.
|
|
|
3040
3064
|
() => lastActiveProvider,
|
|
3041
3065
|
);
|
|
3042
3066
|
|
|
3043
|
-
// ---
|
|
3044
|
-
//
|
|
3045
|
-
|
|
3046
|
-
|
|
3067
|
+
// --- Install harness footer renderer (multi-row BELOW quota) ---------
|
|
3068
|
+
// Use setFooter to create custom footer with harness messages on separate rows
|
|
3069
|
+
ctx.ui.setFooter((_tui, _theme, _footerData) => ({
|
|
3070
|
+
render(width: number): string[] {
|
|
3071
|
+
return getHarnessLines(width);
|
|
3072
|
+
},
|
|
3073
|
+
invalidate: () => {},
|
|
3074
|
+
}));
|
|
3075
|
+
|
|
3076
|
+
// Add initial harness message
|
|
3077
|
+
addHarnessMessage("Runtime", "initializing", "wait");
|
|
3047
3078
|
|
|
3048
3079
|
// Wait for async inits to complete, then update status
|
|
3049
3080
|
const startupTimeout = new Promise<void>((resolve) => {
|
|
@@ -3053,36 +3084,39 @@ Run \`bd ready\` to see current bd issues.
|
|
|
3053
3084
|
Promise.allSettled(asyncInitPromises),
|
|
3054
3085
|
startupTimeout,
|
|
3055
3086
|
]).then(() => {
|
|
3056
|
-
|
|
3087
|
+
// Update Runtime status
|
|
3088
|
+
const runtimeMsg = harnessMessages.find((m) => m.label === "Runtime");
|
|
3089
|
+
if (runtimeMsg) {
|
|
3090
|
+
runtimeMsg.status = "ok";
|
|
3091
|
+
runtimeMsg.text = "initialized";
|
|
3092
|
+
}
|
|
3057
3093
|
|
|
3094
|
+
// Add service messages from startup
|
|
3058
3095
|
for (const msg of startupMessages) {
|
|
3059
3096
|
if (msg.includes("Qdrant") && msg.includes("ready")) {
|
|
3060
|
-
|
|
3097
|
+
addHarnessMessage("Qdrant", "connected", "ok");
|
|
3061
3098
|
}
|
|
3062
3099
|
if (msg.includes("Telegram") && msg.includes("ready")) {
|
|
3063
|
-
|
|
3100
|
+
addHarnessMessage("Telegram", "verified", "ok");
|
|
3064
3101
|
}
|
|
3065
3102
|
if (msg.includes("Honcho")) {
|
|
3066
|
-
|
|
3103
|
+
addHarnessMessage("Honcho", "registered", "ok");
|
|
3067
3104
|
}
|
|
3068
3105
|
if (msg.includes("Scanned") && msg.includes("skills")) {
|
|
3069
3106
|
const match = msg.match(/Scanned (\d+)/);
|
|
3070
3107
|
if (match) {
|
|
3071
|
-
|
|
3108
|
+
addHarnessMessage("Skills", `${match[1]} discovered`, "ok");
|
|
3072
3109
|
}
|
|
3073
3110
|
}
|
|
3074
3111
|
}
|
|
3075
3112
|
});
|
|
3076
3113
|
});
|
|
3077
3114
|
|
|
3078
|
-
// Clear harness
|
|
3115
|
+
// Clear harness messages on first user input (like [Prompts]/[Extensions] disappear)
|
|
3079
3116
|
pi.on("message_start", (event) => {
|
|
3080
3117
|
const msg = event.message as { role?: string };
|
|
3081
|
-
if (msg?.role === "user"
|
|
3082
|
-
|
|
3083
|
-
for (const key of HARNESS_STATUS_KEYS) {
|
|
3084
|
-
harnessSetStatus?.(key, "");
|
|
3085
|
-
}
|
|
3118
|
+
if (msg?.role === "user") {
|
|
3119
|
+
clearHarnessMessages();
|
|
3086
3120
|
}
|
|
3087
3121
|
});
|
|
3088
3122
|
|
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.211",
|
|
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.211",
|
|
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",
|