pi-harness-runtime 1.1.299 → 1.1.301
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 +35 -16
- 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
|
@@ -903,6 +903,26 @@ async function initQdrant(): Promise<void> {
|
|
|
903
903
|
|
|
904
904
|
// --- telegram-notifications: Telegram bot for harness event notifications ------------
|
|
905
905
|
// Sends Telegram messages when jobs complete, tasks finish, or human input is needed.
|
|
906
|
+
|
|
907
|
+
// Shared Codex session state - accessible by both initTelegram() and the watcher
|
|
908
|
+
interface PlanEvent {
|
|
909
|
+
codexSessionId: string;
|
|
910
|
+
planPath: string;
|
|
911
|
+
planHash: string;
|
|
912
|
+
status: "observed" | "settling" | "ready" | "triggered" | "failed" | "manual_wait" | "done";
|
|
913
|
+
ordinal: number;
|
|
914
|
+
lastActivity: number;
|
|
915
|
+
settleTimer: ReturnType<typeof setTimeout> | null;
|
|
916
|
+
fileStableSince: number;
|
|
917
|
+
}
|
|
918
|
+
|
|
919
|
+
const codexSessionState = {
|
|
920
|
+
deliveredEvents: new Map<string, PlanEvent>(),
|
|
921
|
+
currentCodexSessionId: null as string | null,
|
|
922
|
+
currentProjectRoot: null as string | null,
|
|
923
|
+
currentPlanCandidate: null as { ordinal: number; text: string; timestamp: number } | null,
|
|
924
|
+
};
|
|
925
|
+
|
|
906
926
|
async function initTelegram(pi: ExtensionAPI): Promise<void> {
|
|
907
927
|
addHarnessMessage("Telegram", "initializing", "wait");
|
|
908
928
|
try {
|
|
@@ -1002,10 +1022,10 @@ async function initTelegram(pi: ExtensionAPI): Promise<void> {
|
|
|
1002
1022
|
const [, sessionId, action] = taskCommandMatch;
|
|
1003
1023
|
|
|
1004
1024
|
// Find matching Codex session
|
|
1005
|
-
const matchingSession = deliveredEvents.get(sessionId) ||
|
|
1006
|
-
Array.from(deliveredEvents.values()).find(e => e.codexSessionId === sessionId);
|
|
1025
|
+
const matchingSession = codexSessionState.deliveredEvents.get(sessionId) ||
|
|
1026
|
+
Array.from(codexSessionState.deliveredEvents.values()).find(e => e.codexSessionId === sessionId);
|
|
1007
1027
|
|
|
1008
|
-
if (matchingSession && matchingSession.codexSessionId === currentCodexSessionId) {
|
|
1028
|
+
if (matchingSession && matchingSession.codexSessionId === codexSessionState.currentCodexSessionId) {
|
|
1009
1029
|
logToFile("[codex-trigger]", `Human command: ${action} for session ${sessionId}`);
|
|
1010
1030
|
|
|
1011
1031
|
if (action.toLowerCase() === "code") {
|
|
@@ -1028,15 +1048,15 @@ async function initTelegram(pi: ExtensionAPI): Promise<void> {
|
|
|
1028
1048
|
logToFile("[codex-trigger]", "Human marked session done:", sessionId);
|
|
1029
1049
|
}
|
|
1030
1050
|
return;
|
|
1031
|
-
|
|
1032
|
-
|
|
1051
|
+
} else {
|
|
1052
|
+
logToFile("[codex-trigger]", `Unknown session or wrong project: ${sessionId}`);
|
|
1053
|
+
}
|
|
1033
1054
|
}
|
|
1034
|
-
|
|
1035
|
-
|
|
1036
|
-
|
|
1037
|
-
|
|
1038
|
-
|
|
1039
|
-
});
|
|
1055
|
+
|
|
1056
|
+
logToFile("[TelegramInbound]", `Forwarding message to Pi: "${text.slice(0, 50)}..."`);
|
|
1057
|
+
// Forward the message to Pi as a user message
|
|
1058
|
+
await pi.sendUserMessage(text, { deliverAs: "steer" });
|
|
1059
|
+
});
|
|
1040
1060
|
|
|
1041
1061
|
// Wire to singleton nc() helper so all event emitters can reach Telegram
|
|
1042
1062
|
_nc = {
|
|
@@ -2190,6 +2210,8 @@ export default function (pi: ExtensionAPI) {
|
|
|
2190
2210
|
// Collect async init promises so we can wait for them before showing startup notification
|
|
2191
2211
|
const asyncInitPromises: Promise<unknown>[] = [];
|
|
2192
2212
|
|
|
2213
|
+
// Note: Session state moved to module-level codexSessionState object
|
|
2214
|
+
|
|
2193
2215
|
// --- todo-bd-sync: Initialize two-way sync with bd ---------------
|
|
2194
2216
|
// Start async init but don't await - runs in background
|
|
2195
2217
|
void initTodoBdSync(pi);
|
|
@@ -2231,16 +2253,13 @@ export default function (pi: ExtensionAPI) {
|
|
|
2231
2253
|
codexSessionId: string;
|
|
2232
2254
|
planPath: string;
|
|
2233
2255
|
planHash: string;
|
|
2234
|
-
status: "observed" | "settling" | "ready" | "triggered" | "failed" | "manual_wait";
|
|
2256
|
+
status: "observed" | "settling" | "ready" | "triggered" | "failed" | "manual_wait" | "done";
|
|
2235
2257
|
ordinal: number;
|
|
2236
2258
|
lastActivity: number;
|
|
2237
2259
|
settleTimer: ReturnType<typeof setTimeout> | null;
|
|
2238
2260
|
fileStableSince: number;
|
|
2239
2261
|
}
|
|
2240
|
-
|
|
2241
|
-
let currentCodexSessionId: string | null = null;
|
|
2242
|
-
let currentProjectRoot = "";
|
|
2243
|
-
let _currentPlanCandidate: { ordinal: number; text: string; timestamp: number } | null = null;
|
|
2262
|
+
// Use codexSessionState object for all session tracking
|
|
2244
2263
|
let lastActivityTime = 0;
|
|
2245
2264
|
|
|
2246
2265
|
// Check if plan file exists and is stable (mtime unchanged)
|
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.301",
|
|
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.301",
|
|
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",
|