pi-harness-runtime 1.1.288 → 1.1.291
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/harness/honcho-init.ts +69 -15
- package/package.json +2 -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/harness/honcho-init.ts
CHANGED
|
@@ -17,6 +17,9 @@ import {
|
|
|
17
17
|
ensureMcpConfigDirectory,
|
|
18
18
|
writeHonchoMcpConfig,
|
|
19
19
|
} from "./honcho-memory.js";
|
|
20
|
+
import { existsSync, readFileSync, writeFileSync, mkdirSync } from "node:fs";
|
|
21
|
+
import { join } from "node:path";
|
|
22
|
+
import { homedir } from "node:os";
|
|
20
23
|
|
|
21
24
|
// ---------------------------------------------------------------------------
|
|
22
25
|
// Types
|
|
@@ -75,6 +78,49 @@ const HONCHO_SERVER_NAME = "honcho";
|
|
|
75
78
|
/** Default workspace name for Pi harness */
|
|
76
79
|
const DEFAULT_WORKSPACE_NAME = "pi-harness";
|
|
77
80
|
|
|
81
|
+
/** Honcho config directory */
|
|
82
|
+
const HONCHO_CONFIG_DIR = join(homedir(), ".pi-harness-runtime", "honcho");
|
|
83
|
+
|
|
84
|
+
/** File to persist workspace ID */
|
|
85
|
+
const WORKSPACE_ID_FILE = join(HONCHO_CONFIG_DIR, "workspace-id.json");
|
|
86
|
+
|
|
87
|
+
// ---------------------------------------------------------------------------
|
|
88
|
+
// Workspace ID Persistence
|
|
89
|
+
// ---------------------------------------------------------------------------
|
|
90
|
+
|
|
91
|
+
interface PersistedWorkspace {
|
|
92
|
+
workspaceId: string;
|
|
93
|
+
workspaceName: string;
|
|
94
|
+
createdAt: string;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
function loadPersistedWorkspace(): PersistedWorkspace | null {
|
|
98
|
+
try {
|
|
99
|
+
if (existsSync(WORKSPACE_ID_FILE)) {
|
|
100
|
+
const data = readFileSync(WORKSPACE_ID_FILE, "utf-8");
|
|
101
|
+
return JSON.parse(data) as PersistedWorkspace;
|
|
102
|
+
}
|
|
103
|
+
} catch {
|
|
104
|
+
// Ignore parse errors
|
|
105
|
+
}
|
|
106
|
+
return null;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
function savePersistedWorkspace(workspaceId: string, workspaceName: string): void {
|
|
110
|
+
try {
|
|
111
|
+
mkdirSync(HONCHO_CONFIG_DIR, { recursive: true });
|
|
112
|
+
const data: PersistedWorkspace = {
|
|
113
|
+
workspaceId,
|
|
114
|
+
workspaceName,
|
|
115
|
+
createdAt: new Date().toISOString(),
|
|
116
|
+
};
|
|
117
|
+
writeFileSync(WORKSPACE_ID_FILE, JSON.stringify(data, null, 2));
|
|
118
|
+
logServiceEvent({ ts: new Date().toISOString(), level: "info", service: "honcho", operation: "workspace_persist", phase: "completed", workspaceId });
|
|
119
|
+
} catch (err) {
|
|
120
|
+
logServiceEvent({ ts: new Date().toISOString(), level: "warn", service: "honcho", operation: "workspace_persist", phase: "failed", reason: String(err) });
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
|
|
78
124
|
/** Default assistant name */
|
|
79
125
|
const DEFAULT_ASSISTANT_NAME = "pi-agent";
|
|
80
126
|
|
|
@@ -161,26 +207,33 @@ async function callHonchoTool(
|
|
|
161
207
|
// ---------------------------------------------------------------------------
|
|
162
208
|
|
|
163
209
|
/**
|
|
164
|
-
*
|
|
210
|
+
* Get or validate workspace ID.
|
|
211
|
+
*
|
|
212
|
+
* Note: Honcho MCP does NOT have create_workspace/get_workspace tools.
|
|
213
|
+
* Workspaces are created via CLI/API. MCP tools are for session management.
|
|
214
|
+
* This function:
|
|
215
|
+
* 1. Loads persisted workspace ID
|
|
216
|
+
* 2. Validates it exists by calling inspect_workspace
|
|
165
217
|
*/
|
|
166
218
|
async function ensureWorkspace(workspaceName: string): Promise<string | null> {
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
const response = result.result as { id?: string; workspace?: { id?: string } };
|
|
173
|
-
return response.id ?? response.workspace?.id ?? null;
|
|
219
|
+
// First, check if we have a persisted workspace ID
|
|
220
|
+
const persisted = loadPersistedWorkspace();
|
|
221
|
+
if (persisted && persisted.workspaceName === workspaceName) {
|
|
222
|
+
logServiceEvent({ ts: new Date().toISOString(), level: "info", service: "honcho", operation: "workspace_reuse", phase: "completed", workspaceId: persisted.workspaceId });
|
|
223
|
+
return persisted.workspaceId;
|
|
174
224
|
}
|
|
175
225
|
|
|
176
|
-
//
|
|
177
|
-
const
|
|
178
|
-
|
|
226
|
+
// Validate with inspect_workspace (MCP tool to check workspace exists)
|
|
227
|
+
const inspectResult = await callHonchoTool("inspect_workspace", {
|
|
228
|
+
workspace_id: workspaceName, // workspace_id can be name or ID
|
|
179
229
|
});
|
|
180
230
|
|
|
181
|
-
if (
|
|
182
|
-
const response =
|
|
183
|
-
|
|
231
|
+
if (inspectResult.success && inspectResult.result) {
|
|
232
|
+
const response = inspectResult.result as { workspace?: { id?: string }; id?: string };
|
|
233
|
+
const workspaceId = response.workspace?.id ?? response.id ?? workspaceName;
|
|
234
|
+
savePersistedWorkspace(workspaceId, workspaceName);
|
|
235
|
+
logServiceEvent({ ts: new Date().toISOString(), level: "info", service: "honcho", operation: "workspace_validate", phase: "completed", workspaceId });
|
|
236
|
+
return workspaceId;
|
|
184
237
|
}
|
|
185
238
|
|
|
186
239
|
logServiceEvent({
|
|
@@ -189,7 +242,8 @@ async function ensureWorkspace(workspaceName: string): Promise<string | null> {
|
|
|
189
242
|
service: "honcho",
|
|
190
243
|
operation: "workspace_failed",
|
|
191
244
|
phase: "failed",
|
|
192
|
-
error:
|
|
245
|
+
error: inspectResult.error ?? "Workspace not found",
|
|
246
|
+
note: "Create workspace via CLI first: honcho workspace create <name>",
|
|
193
247
|
});
|
|
194
248
|
|
|
195
249
|
return null;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pi-harness-runtime",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.291",
|
|
4
4
|
"description": "[BETA] Codex-style /usage status + autonomous coding harness for pi. Not production ready — expect breaking changes.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"scripts": {
|
|
@@ -85,6 +85,7 @@
|
|
|
85
85
|
"@commitlint/config-conventional": "^21.2.0",
|
|
86
86
|
"@types/node": "^26.6.4",
|
|
87
87
|
"@types/ws": "^8.18.1",
|
|
88
|
+
"bun-types": "^1.4.3",
|
|
88
89
|
"husky": "^9.1.7",
|
|
89
90
|
"playwright": "^1.62.0",
|
|
90
91
|
"standard-version": "^9.5.0",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pi-harness/capability-registry",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.291",
|
|
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.291",
|
|
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",
|