pi-harness-runtime 1.1.276 → 1.1.277
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 +152 -57
- 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/dist/src/session.d.ts.map +1 -1
- package/packages/codex-watcher/dist/src/session.js +57 -8
- package/packages/codex-watcher/dist/src/session.js.map +1 -1
- package/packages/codex-watcher/dist/src/types.d.ts +2 -0
- package/packages/codex-watcher/dist/src/types.d.ts.map +1 -1
- package/packages/codex-watcher/package.json +1 -1
- package/packages/codex-watcher/src/session.ts +57 -8
- package/packages/codex-watcher/src/types.ts +2 -0
- 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
|
@@ -4,7 +4,8 @@
|
|
|
4
4
|
|
|
5
5
|
import { existsSync, readFileSync, readdirSync, statSync } from "node:fs";
|
|
6
6
|
import { homedir } from "node:os";
|
|
7
|
-
import { join } from "node:path";
|
|
7
|
+
import { join, resolve } from "node:path";
|
|
8
|
+
import { realpathSync } from "node:fs";
|
|
8
9
|
import type { CodexSession } from "./types.js";
|
|
9
10
|
|
|
10
11
|
/** Find the most recently active Codex session. */
|
|
@@ -24,11 +25,15 @@ export function getLatestSession(codexDir?: string): CodexSession | null {
|
|
|
24
25
|
|
|
25
26
|
if (!latest) return null;
|
|
26
27
|
|
|
28
|
+
const rolloutPath = findRolloutPath(latest.id, codexDir);
|
|
29
|
+
const projectRoot = getProjectRootFromRollout(rolloutPath);
|
|
30
|
+
|
|
27
31
|
return {
|
|
28
32
|
id: latest.id,
|
|
29
33
|
threadName: latest.thread_name,
|
|
30
34
|
updatedAt: latest.updated_at,
|
|
31
|
-
rolloutPath
|
|
35
|
+
rolloutPath,
|
|
36
|
+
projectRoot,
|
|
32
37
|
};
|
|
33
38
|
}
|
|
34
39
|
|
|
@@ -45,12 +50,17 @@ export function getAllSessions(codexDir?: string): CodexSession[] {
|
|
|
45
50
|
|
|
46
51
|
return sessions
|
|
47
52
|
.sort((a, b) => b.updated_at.localeCompare(a.updated_at))
|
|
48
|
-
.map((e) =>
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
53
|
+
.map((e) => {
|
|
54
|
+
const rolloutPath = findRolloutPath(e.id, codexDir);
|
|
55
|
+
const projectRoot = getProjectRootFromRollout(rolloutPath);
|
|
56
|
+
return {
|
|
57
|
+
id: e.id,
|
|
58
|
+
threadName: e.thread_name,
|
|
59
|
+
updatedAt: e.updated_at,
|
|
60
|
+
rolloutPath,
|
|
61
|
+
projectRoot,
|
|
62
|
+
};
|
|
63
|
+
});
|
|
54
64
|
}
|
|
55
65
|
|
|
56
66
|
// ---------------------------------------------------------------------------
|
|
@@ -136,3 +146,42 @@ function readLines(filePath: string): string[] {
|
|
|
136
146
|
return [];
|
|
137
147
|
}
|
|
138
148
|
}
|
|
149
|
+
|
|
150
|
+
/**
|
|
151
|
+
* Parse rollout file for project working directory.
|
|
152
|
+
* Looks for session_meta JSONL records containing the working directory.
|
|
153
|
+
* Returns canonical absolute path or empty string if not found.
|
|
154
|
+
*/
|
|
155
|
+
function getProjectRootFromRollout(rolloutPath: string): string {
|
|
156
|
+
try {
|
|
157
|
+
if (!existsSync(rolloutPath)) return "";
|
|
158
|
+
|
|
159
|
+
const lines = readLines(rolloutPath);
|
|
160
|
+
|
|
161
|
+
// Look for session_meta records with working directory
|
|
162
|
+
for (const line of lines) {
|
|
163
|
+
try {
|
|
164
|
+
const obj = JSON.parse(line) as Record<string, unknown>;
|
|
165
|
+
if (obj.type === "session_meta" || obj.type === "session_start") {
|
|
166
|
+
const data = obj.data as Record<string, unknown> | undefined;
|
|
167
|
+
if (data && typeof data.working_directory === "string") {
|
|
168
|
+
const cwd = data.working_directory as string;
|
|
169
|
+
if (cwd && cwd.startsWith("/")) {
|
|
170
|
+
// Canonicalize the path
|
|
171
|
+
try {
|
|
172
|
+
return realpathSync(cwd);
|
|
173
|
+
} catch {
|
|
174
|
+
return resolve(cwd);
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
} catch {
|
|
180
|
+
// Skip malformed JSON lines
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
} catch {
|
|
184
|
+
// File read error
|
|
185
|
+
}
|
|
186
|
+
return "";
|
|
187
|
+
}
|
|
@@ -23,6 +23,8 @@ export interface CodexSession {
|
|
|
23
23
|
updatedAt: string;
|
|
24
24
|
/** Absolute path to the rollout transcript file */
|
|
25
25
|
rolloutPath: string;
|
|
26
|
+
/** Canonical absolute path to the project working directory */
|
|
27
|
+
projectRoot: string;
|
|
26
28
|
}
|
|
27
29
|
|
|
28
30
|
export interface CodexMessage {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pi-harness/provider-router",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.277",
|
|
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",
|