pi-harness-runtime 1.1.288 → 1.1.289
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 +73 -9
- 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/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
|
|
|
@@ -164,23 +210,41 @@ async function callHonchoTool(
|
|
|
164
210
|
* Create or get workspace for the harness
|
|
165
211
|
*/
|
|
166
212
|
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;
|
|
213
|
+
// First, check if we have a persisted workspace ID
|
|
214
|
+
const persisted = loadPersistedWorkspace();
|
|
215
|
+
if (persisted && persisted.workspaceName === workspaceName) {
|
|
216
|
+
logServiceEvent({ ts: new Date().toISOString(), level: "info", service: "honcho", operation: "workspace_reuse", phase: "completed", workspaceId: persisted.workspaceId });
|
|
217
|
+
return persisted.workspaceId;
|
|
174
218
|
}
|
|
175
219
|
|
|
176
|
-
// Try get_workspace
|
|
220
|
+
// Try get_workspace first (idempotent)
|
|
177
221
|
const getResult = await callHonchoTool("get_workspace", {
|
|
178
222
|
name: workspaceName,
|
|
179
223
|
});
|
|
180
224
|
|
|
181
225
|
if (getResult.success && getResult.result) {
|
|
182
226
|
const response = getResult.result as { id?: string };
|
|
183
|
-
|
|
227
|
+
const workspaceId = response.id ?? null;
|
|
228
|
+
if (workspaceId) {
|
|
229
|
+
savePersistedWorkspace(workspaceId, workspaceName);
|
|
230
|
+
logServiceEvent({ ts: new Date().toISOString(), level: "info", service: "honcho", operation: "workspace_reuse", phase: "completed", workspaceId });
|
|
231
|
+
return workspaceId;
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
// Create new workspace
|
|
236
|
+
const result = await callHonchoTool("create_workspace", {
|
|
237
|
+
name: workspaceName,
|
|
238
|
+
});
|
|
239
|
+
|
|
240
|
+
if (result.success && result.result) {
|
|
241
|
+
const response = result.result as { id?: string; workspace?: { id?: string } };
|
|
242
|
+
const workspaceId = response.id ?? response.workspace?.id ?? null;
|
|
243
|
+
if (workspaceId) {
|
|
244
|
+
savePersistedWorkspace(workspaceId, workspaceName);
|
|
245
|
+
logServiceEvent({ ts: new Date().toISOString(), level: "info", service: "honcho", operation: "workspace_create", phase: "completed", workspaceId });
|
|
246
|
+
return workspaceId;
|
|
247
|
+
}
|
|
184
248
|
}
|
|
185
249
|
|
|
186
250
|
logServiceEvent({
|
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.289",
|
|
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.289",
|
|
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",
|