pi-harness-runtime 1.1.298 → 1.1.300
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 +50 -10
- 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
|
@@ -996,10 +996,47 @@ async function initTelegram(pi: ExtensionAPI): Promise<void> {
|
|
|
996
996
|
|
|
997
997
|
// Register message handler to forward Telegram messages to Pi
|
|
998
998
|
center.setMessageHandler(async (text: string, _chatId: string) => {
|
|
999
|
-
|
|
1000
|
-
|
|
1001
|
-
|
|
1002
|
-
|
|
999
|
+
// Parse /task <session-id> <action> commands
|
|
1000
|
+
const taskCommandMatch = text.match(/^\/task\s+(\S+)\s+(code|review|done)\s*$/i);
|
|
1001
|
+
if (taskCommandMatch) {
|
|
1002
|
+
const [, sessionId, action] = taskCommandMatch;
|
|
1003
|
+
|
|
1004
|
+
// Find matching Codex session
|
|
1005
|
+
const matchingSession = deliveredEvents.get(sessionId) ||
|
|
1006
|
+
Array.from(deliveredEvents.values()).find(e => e.codexSessionId === sessionId);
|
|
1007
|
+
|
|
1008
|
+
if (matchingSession && matchingSession.codexSessionId === currentCodexSessionId) {
|
|
1009
|
+
logToFile("[codex-trigger]", `Human command: ${action} for session ${sessionId}`);
|
|
1010
|
+
|
|
1011
|
+
if (action.toLowerCase() === "code") {
|
|
1012
|
+
// Advance to code stage - send a message to Pi
|
|
1013
|
+
await pi.sendUserMessage(
|
|
1014
|
+
`Human approved the plan. Proceed to implement: ${matchingSession.planPath}`,
|
|
1015
|
+
{ deliverAs: "steer" }
|
|
1016
|
+
);
|
|
1017
|
+
matchingSession.status = "triggered";
|
|
1018
|
+
logToFile("[codex-trigger]", "Triggered Pi for plan:", matchingSession.planPath);
|
|
1019
|
+
} else if (action.toLowerCase() === "review") {
|
|
1020
|
+
// Advance to review stage
|
|
1021
|
+
await pi.sendUserMessage(
|
|
1022
|
+
"Human requests a review of the implementation.",
|
|
1023
|
+
{ deliverAs: "steer" }
|
|
1024
|
+
);
|
|
1025
|
+
} else if (action.toLowerCase() === "done") {
|
|
1026
|
+
// Mark as done
|
|
1027
|
+
matchingSession.status = "done";
|
|
1028
|
+
logToFile("[codex-trigger]", "Human marked session done:", sessionId);
|
|
1029
|
+
}
|
|
1030
|
+
return;
|
|
1031
|
+
} else {
|
|
1032
|
+
logToFile("[codex-trigger]", `Unknown session or wrong project: ${sessionId}`);
|
|
1033
|
+
}
|
|
1034
|
+
}
|
|
1035
|
+
|
|
1036
|
+
logToFile("[TelegramInbound]", `Forwarding message to Pi: "${text.slice(0, 50)}..."`);
|
|
1037
|
+
// Forward the message to Pi as a user message
|
|
1038
|
+
await pi.sendUserMessage(text, { deliverAs: "steer" });
|
|
1039
|
+
});
|
|
1003
1040
|
|
|
1004
1041
|
// Wire to singleton nc() helper so all event emitters can reach Telegram
|
|
1005
1042
|
_nc = {
|
|
@@ -2153,6 +2190,11 @@ export default function (pi: ExtensionAPI) {
|
|
|
2153
2190
|
// Collect async init promises so we can wait for them before showing startup notification
|
|
2154
2191
|
const asyncInitPromises: Promise<unknown>[] = [];
|
|
2155
2192
|
|
|
2193
|
+
// --- shared Codex session state (for /task command handler) ---
|
|
2194
|
+
const deliveredEvents = new Map<string, PlanEvent>();
|
|
2195
|
+
let currentCodexSessionId: string | null = null;
|
|
2196
|
+
let currentProjectRoot: string | null = null;
|
|
2197
|
+
|
|
2156
2198
|
// --- todo-bd-sync: Initialize two-way sync with bd ---------------
|
|
2157
2199
|
// Start async init but don't await - runs in background
|
|
2158
2200
|
void initTodoBdSync(pi);
|
|
@@ -2194,15 +2236,13 @@ export default function (pi: ExtensionAPI) {
|
|
|
2194
2236
|
codexSessionId: string;
|
|
2195
2237
|
planPath: string;
|
|
2196
2238
|
planHash: string;
|
|
2197
|
-
status: "observed" | "settling" | "ready" | "triggered" | "failed" | "manual_wait";
|
|
2239
|
+
status: "observed" | "settling" | "ready" | "triggered" | "failed" | "manual_wait" | "done";
|
|
2198
2240
|
ordinal: number;
|
|
2199
2241
|
lastActivity: number;
|
|
2200
2242
|
settleTimer: ReturnType<typeof setTimeout> | null;
|
|
2201
2243
|
fileStableSince: number;
|
|
2202
2244
|
}
|
|
2203
|
-
|
|
2204
|
-
let currentCodexSessionId: string | null = null;
|
|
2205
|
-
let currentProjectRoot = "";
|
|
2245
|
+
// Note: deliveredEvents, currentCodexSessionId, currentProjectRoot are now module-level
|
|
2206
2246
|
let _currentPlanCandidate: { ordinal: number; text: string; timestamp: number } | null = null;
|
|
2207
2247
|
let lastActivityTime = 0;
|
|
2208
2248
|
|
|
@@ -2343,8 +2383,8 @@ export default function (pi: ExtensionAPI) {
|
|
|
2343
2383
|
const hasReviewMarker = classification === "unknown" && detectReviewMarker(msg.text);
|
|
2344
2384
|
if (classification !== "plan" && classification !== "mixed" && !hasReviewMarker) continue;
|
|
2345
2385
|
|
|
2346
|
-
// Determine stage
|
|
2347
|
-
const
|
|
2386
|
+
// Determine stage (for future use in event metadata)
|
|
2387
|
+
const _stage = hasReviewMarker ? "review" : classification;
|
|
2348
2388
|
|
|
2349
2389
|
// Only start settle timer for plans (not reviews)
|
|
2350
2390
|
// Reviews don't have a file to watch
|
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.300",
|
|
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.300",
|
|
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",
|