pi-harness-runtime 1.1.355 → 1.1.357
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 +18 -0
- 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/connection-runtime/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/contracts/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/durable-review/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-sink/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/dist/delegation-harness.d.ts +33 -0
- package/packages/jev-judge/dist/delegation-harness.d.ts.map +1 -0
- package/packages/jev-judge/dist/delegation-harness.js +112 -0
- package/packages/jev-judge/dist/delegation-harness.js.map +1 -0
- package/packages/jev-judge/package.json +1 -1
- package/packages/jev-judge/src/delegation-harness.ts +164 -0
- 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/permission-mode/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/relay/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/voice-api/package.json +1 -1
- package/packages/webmcp-tester/package.json +1 -1
- package/packages/wiki/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
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Delegation Harness Integration
|
|
3
|
+
*
|
|
4
|
+
* Connects delegation assessment to the harness runtime.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import type { ExtensionAPI } from "@earendil-works/pi-coding-agent";
|
|
8
|
+
import type { ExtensionCapability } from "@pi-harness/contracts";
|
|
9
|
+
import {
|
|
10
|
+
discoverDelegationCapability,
|
|
11
|
+
makeDeterministicAssessment,
|
|
12
|
+
type DelegationDecision,
|
|
13
|
+
} from "@pi-harness/contracts";
|
|
14
|
+
import {
|
|
15
|
+
saveDelegationReceipt,
|
|
16
|
+
loadDelegationReceipt,
|
|
17
|
+
hasReceipt,
|
|
18
|
+
} from "@pi-harness/contracts";
|
|
19
|
+
import type { DelegationReceipt, ScopeFacts } from "@pi-harness/contracts";
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Delegation harness configuration
|
|
23
|
+
*/
|
|
24
|
+
export interface DelegationHarnessConfig {
|
|
25
|
+
/** Minimum files to trigger assessment */
|
|
26
|
+
minFiles?: number;
|
|
27
|
+
/** Minimum call sites to trigger assessment */
|
|
28
|
+
minCallSites?: number;
|
|
29
|
+
/** Minimum independent components for delegation */
|
|
30
|
+
minComponents?: number;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Delegation harness state
|
|
35
|
+
*/
|
|
36
|
+
interface DelegationState {
|
|
37
|
+
currentReceipt: DelegationReceipt | null;
|
|
38
|
+
capability: ExtensionCapability | null;
|
|
39
|
+
lastAssessment: DelegationDecision | null;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Create delegation harness integration
|
|
44
|
+
*/
|
|
45
|
+
export function createDelegationHarness(
|
|
46
|
+
pi: ExtensionAPI,
|
|
47
|
+
config: DelegationHarnessConfig = {}
|
|
48
|
+
) {
|
|
49
|
+
const state: DelegationState = {
|
|
50
|
+
currentReceipt: null,
|
|
51
|
+
capability: null,
|
|
52
|
+
lastAssessment: null,
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
const minFiles = config.minFiles ?? 10;
|
|
56
|
+
const minCallSites = config.minCallSites ?? 50;
|
|
57
|
+
const minComponents = config.minComponents ?? 2;
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Discover and cache delegation capability
|
|
61
|
+
*/
|
|
62
|
+
async function discoverCapability(): Promise<ExtensionCapability | null> {
|
|
63
|
+
if (state.capability) {
|
|
64
|
+
return state.capability;
|
|
65
|
+
}
|
|
66
|
+
state.capability = await discoverDelegationCapability(pi);
|
|
67
|
+
return state.capability;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* Check if delegation assessment should be triggered
|
|
72
|
+
*/
|
|
73
|
+
function shouldAssess(facts: ScopeFacts): boolean {
|
|
74
|
+
if (facts.observedFiles >= minFiles) return true;
|
|
75
|
+
if (facts.observedCallSites >= minCallSites) return true;
|
|
76
|
+
if (facts.independentComponents >= minComponents) return true;
|
|
77
|
+
return false;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* Assess delegation for given scope facts
|
|
82
|
+
*/
|
|
83
|
+
async function assess(
|
|
84
|
+
facts: ScopeFacts,
|
|
85
|
+
parentTaskId: string
|
|
86
|
+
): Promise<DelegationDecision | null> {
|
|
87
|
+
// Check if assessment should trigger
|
|
88
|
+
if (!shouldAssess(facts)) {
|
|
89
|
+
return null;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
// Check for existing receipt (avoid reassessment)
|
|
93
|
+
const workspacePath = process.cwd();
|
|
94
|
+
if (hasReceipt(workspacePath, parentTaskId)) {
|
|
95
|
+
const existing = loadDelegationReceipt(workspacePath, parentTaskId);
|
|
96
|
+
if (existing && existing.scopeFingerprint === facts.fingerprint) {
|
|
97
|
+
state.currentReceipt = existing;
|
|
98
|
+
return existing.decision;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
// Discover capability
|
|
103
|
+
const capability = await discoverCapability();
|
|
104
|
+
|
|
105
|
+
// Make assessment
|
|
106
|
+
const decision = makeDeterministicAssessment(facts, capability);
|
|
107
|
+
state.lastAssessment = decision;
|
|
108
|
+
|
|
109
|
+
// Create receipt
|
|
110
|
+
const receipt: DelegationReceipt = {
|
|
111
|
+
version: 1,
|
|
112
|
+
workspacePath,
|
|
113
|
+
sessionId: pi.getSessionName?.() ?? "unknown",
|
|
114
|
+
parentTaskId,
|
|
115
|
+
scopeFingerprint: facts.fingerprint,
|
|
116
|
+
decision,
|
|
117
|
+
createdAt: Date.now(),
|
|
118
|
+
updatedAt: Date.now(),
|
|
119
|
+
status: "assessing",
|
|
120
|
+
childIds: [],
|
|
121
|
+
pendingValidation: [],
|
|
122
|
+
userConstraints: [],
|
|
123
|
+
};
|
|
124
|
+
|
|
125
|
+
// Save receipt
|
|
126
|
+
saveDelegationReceipt(receipt);
|
|
127
|
+
state.currentReceipt = receipt;
|
|
128
|
+
|
|
129
|
+
return decision;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
/**
|
|
133
|
+
* Get current receipt
|
|
134
|
+
*/
|
|
135
|
+
function getReceipt(): DelegationReceipt | null {
|
|
136
|
+
return state.currentReceipt;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
/**
|
|
140
|
+
* Get current assessment decision
|
|
141
|
+
*/
|
|
142
|
+
function getLastDecision(): DelegationDecision | null {
|
|
143
|
+
return state.lastAssessment;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
/**
|
|
147
|
+
* Clear cached state (on session switch)
|
|
148
|
+
*/
|
|
149
|
+
function clear(): void {
|
|
150
|
+
state.currentReceipt = null;
|
|
151
|
+
state.lastAssessment = null;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
return {
|
|
155
|
+
discoverCapability,
|
|
156
|
+
shouldAssess,
|
|
157
|
+
assess,
|
|
158
|
+
getReceipt,
|
|
159
|
+
getLastDecision,
|
|
160
|
+
clear,
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
export type DelegationHarness = ReturnType<typeof createDelegationHarness>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pi-harness/provider-router",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.357",
|
|
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",
|