pi-harness-runtime 1.1.439 → 1.1.440
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/e2e/auto-test-loop.ts +6 -2
- package/harness/e2e/tools-detector.test.ts +0 -1
- package/harness/index.ts +2 -1
- package/harness/langchain/scoreboard.test.ts +44 -22
- package/harness/master-planner.ts +1 -1
- package/harness/output-limit-handler.ts +1 -1
- package/harness/project-detector/detector.ts +2 -4
- package/harness/task-graph.ts +460 -113
- package/index.ts +14 -7
- 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/dist/types.d.ts +9 -2
- package/packages/clipboard-plugin/dist/types.d.ts.map +1 -1
- package/packages/clipboard-plugin/package.json +1 -1
- package/packages/clipboard-plugin/src/types.ts +9 -2
- 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/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/logging/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/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/tooling-preference/package.json +1 -1
- package/packages/trajectory/package.json +1 -1
- package/packages/tui/package.json +1 -1
- package/packages/two-phase-review/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
- package/scripts/release-all.ts +5 -3
- package/scripts/typecheck-packages.mjs +7 -4
- package/scripts/verify-package-contents.ts +13 -1
|
@@ -100,6 +100,9 @@ export async function runAutoTestLoop(
|
|
|
100
100
|
);
|
|
101
101
|
|
|
102
102
|
// Handle decision
|
|
103
|
+
const runTests = () =>
|
|
104
|
+
runTestLoop(cfg, toolsConfig, retriesAttempted, startTime);
|
|
105
|
+
|
|
103
106
|
switch (decision.suggestedAction) {
|
|
104
107
|
case "skip":
|
|
105
108
|
logInfo(null, "Skipping E2E tests - not needed right now");
|
|
@@ -130,12 +133,13 @@ export async function runAutoTestLoop(
|
|
|
130
133
|
logInfo(null, "Generating test stubs...");
|
|
131
134
|
await generateTestStubs(cfg.projectRoot, toolsConfig.projectType);
|
|
132
135
|
}
|
|
133
|
-
|
|
136
|
+
// The stubs are the extra step; the test loop runs in both cases.
|
|
137
|
+
return runTests();
|
|
134
138
|
|
|
135
139
|
case "auto_run":
|
|
136
140
|
default:
|
|
137
141
|
// Run the test loop
|
|
138
|
-
return
|
|
142
|
+
return runTests();
|
|
139
143
|
}
|
|
140
144
|
}
|
|
141
145
|
|
package/harness/index.ts
CHANGED
|
@@ -44,7 +44,8 @@ export type {
|
|
|
44
44
|
export type { CheckpointManager } from "./job-state-machine.js";
|
|
45
45
|
|
|
46
46
|
// Task Graph
|
|
47
|
-
export
|
|
47
|
+
export { TaskGraphManager } from "./task-graph.js";
|
|
48
|
+
export type { TaskDescription, TaskGraphOptions } from "./task-graph.js";
|
|
48
49
|
|
|
49
50
|
// Loop Runtime
|
|
50
51
|
export { LoopRuntime } from "./loop-runtime.js";
|
|
@@ -47,8 +47,10 @@ describe("T15 — Scoreboard blackboard wiring", () => {
|
|
|
47
47
|
code: "",
|
|
48
48
|
review: null as any,
|
|
49
49
|
log: [],
|
|
50
|
-
|
|
51
|
-
|
|
50
|
+
prevCode: undefined,
|
|
51
|
+
writtenFiles: {},
|
|
52
|
+
userInput: null,
|
|
53
|
+
userResponse: null,
|
|
52
54
|
});
|
|
53
55
|
|
|
54
56
|
const statusPath = join(blackboardDir, "status.json");
|
|
@@ -68,8 +70,10 @@ describe("T15 — Scoreboard blackboard wiring", () => {
|
|
|
68
70
|
code: "",
|
|
69
71
|
review: null as any,
|
|
70
72
|
log: [],
|
|
71
|
-
|
|
72
|
-
|
|
73
|
+
prevCode: undefined,
|
|
74
|
+
writtenFiles: {},
|
|
75
|
+
userInput: null,
|
|
76
|
+
userResponse: null,
|
|
73
77
|
});
|
|
74
78
|
|
|
75
79
|
const content = JSON.parse(
|
|
@@ -92,8 +96,10 @@ describe("T15 — Scoreboard blackboard wiring", () => {
|
|
|
92
96
|
code: "",
|
|
93
97
|
review: null as any,
|
|
94
98
|
log: [],
|
|
95
|
-
|
|
96
|
-
|
|
99
|
+
prevCode: undefined,
|
|
100
|
+
writtenFiles: {},
|
|
101
|
+
userInput: null,
|
|
102
|
+
userResponse: null,
|
|
97
103
|
});
|
|
98
104
|
|
|
99
105
|
deps.onStep?.("write", {
|
|
@@ -103,8 +109,10 @@ describe("T15 — Scoreboard blackboard wiring", () => {
|
|
|
103
109
|
code: "``` harness/langchain/surge.ts\nconst x = 1;\n```",
|
|
104
110
|
review: null as any,
|
|
105
111
|
log: [],
|
|
106
|
-
|
|
107
|
-
|
|
112
|
+
prevCode: undefined,
|
|
113
|
+
writtenFiles: {},
|
|
114
|
+
userInput: null,
|
|
115
|
+
userResponse: null,
|
|
108
116
|
});
|
|
109
117
|
|
|
110
118
|
const content = JSON.parse(
|
|
@@ -129,8 +137,10 @@ describe("T15 — Scoreboard blackboard wiring", () => {
|
|
|
129
137
|
code: "",
|
|
130
138
|
review: null as any,
|
|
131
139
|
log: [],
|
|
132
|
-
|
|
133
|
-
|
|
140
|
+
prevCode: undefined,
|
|
141
|
+
writtenFiles: {},
|
|
142
|
+
userInput: null,
|
|
143
|
+
userResponse: null,
|
|
134
144
|
});
|
|
135
145
|
|
|
136
146
|
deps.onStep?.("write", {
|
|
@@ -140,8 +150,10 @@ describe("T15 — Scoreboard blackboard wiring", () => {
|
|
|
140
150
|
code: "```harness/langchain/surge.ts\nconst x = 1;\n```",
|
|
141
151
|
review: null as any,
|
|
142
152
|
log: [],
|
|
143
|
-
|
|
144
|
-
|
|
153
|
+
prevCode: undefined,
|
|
154
|
+
writtenFiles: {},
|
|
155
|
+
userInput: null,
|
|
156
|
+
userResponse: null,
|
|
145
157
|
});
|
|
146
158
|
|
|
147
159
|
deps.onStep?.("review", {
|
|
@@ -157,8 +169,10 @@ describe("T15 — Scoreboard blackboard wiring", () => {
|
|
|
157
169
|
],
|
|
158
170
|
},
|
|
159
171
|
log: [],
|
|
160
|
-
|
|
161
|
-
|
|
172
|
+
prevCode: undefined,
|
|
173
|
+
writtenFiles: {},
|
|
174
|
+
userInput: null,
|
|
175
|
+
userResponse: null,
|
|
162
176
|
});
|
|
163
177
|
|
|
164
178
|
const content = JSON.parse(
|
|
@@ -186,8 +200,10 @@ describe("T15 — Scoreboard blackboard wiring", () => {
|
|
|
186
200
|
code: "",
|
|
187
201
|
review: null as any,
|
|
188
202
|
log: [],
|
|
189
|
-
|
|
190
|
-
|
|
203
|
+
prevCode: undefined,
|
|
204
|
+
writtenFiles: {},
|
|
205
|
+
userInput: null,
|
|
206
|
+
userResponse: null,
|
|
191
207
|
});
|
|
192
208
|
|
|
193
209
|
// Call plan() — the stub returns a string that includes scoreboard context
|
|
@@ -212,8 +228,10 @@ describe("T15 — Scoreboard blackboard wiring", () => {
|
|
|
212
228
|
code: "",
|
|
213
229
|
review: null as any,
|
|
214
230
|
log: [],
|
|
215
|
-
|
|
216
|
-
|
|
231
|
+
prevCode: undefined,
|
|
232
|
+
writtenFiles: {},
|
|
233
|
+
userInput: null,
|
|
234
|
+
userResponse: null,
|
|
217
235
|
});
|
|
218
236
|
deps.onStep?.("write", {
|
|
219
237
|
request: "test",
|
|
@@ -222,8 +240,10 @@ describe("T15 — Scoreboard blackboard wiring", () => {
|
|
|
222
240
|
code: "```a.ts\n1\n```",
|
|
223
241
|
review: null as any,
|
|
224
242
|
log: [],
|
|
225
|
-
|
|
226
|
-
|
|
243
|
+
prevCode: undefined,
|
|
244
|
+
writtenFiles: {},
|
|
245
|
+
userInput: null,
|
|
246
|
+
userResponse: null,
|
|
227
247
|
});
|
|
228
248
|
deps.onStep?.("review", {
|
|
229
249
|
request: "test",
|
|
@@ -232,8 +252,10 @@ describe("T15 — Scoreboard blackboard wiring", () => {
|
|
|
232
252
|
code: "```a.ts\n1\n```",
|
|
233
253
|
review: { verdict: "approved", summary: "ok", comments: [] },
|
|
234
254
|
log: [],
|
|
235
|
-
|
|
236
|
-
|
|
255
|
+
prevCode: undefined,
|
|
256
|
+
writtenFiles: {},
|
|
257
|
+
userInput: null,
|
|
258
|
+
userResponse: null,
|
|
237
259
|
});
|
|
238
260
|
|
|
239
261
|
const content = JSON.parse(
|
|
@@ -259,7 +259,7 @@ export class OutputLimitHandler {
|
|
|
259
259
|
}
|
|
260
260
|
|
|
261
261
|
// Basic validation: content should be longer than partial
|
|
262
|
-
return content.length > this.getPartials()[0]?.length ?? 0;
|
|
262
|
+
return content.length > (this.getPartials()[0]?.length ?? 0);
|
|
263
263
|
}
|
|
264
264
|
|
|
265
265
|
/**
|
|
@@ -10,8 +10,8 @@ import type {
|
|
|
10
10
|
ProjectDetection,
|
|
11
11
|
SeedStrategy,
|
|
12
12
|
E2EStrategy,
|
|
13
|
-
} from "
|
|
14
|
-
import { readJson } from "../../cli.
|
|
13
|
+
} from "../../packages/types/dist/runtime-types.js";
|
|
14
|
+
import { readJson } from "../../cli.js";
|
|
15
15
|
import { join } from "node:path";
|
|
16
16
|
|
|
17
17
|
export interface DetectionSignal {
|
|
@@ -190,9 +190,7 @@ export class ProjectDetector {
|
|
|
190
190
|
"database/seeders",
|
|
191
191
|
];
|
|
192
192
|
|
|
193
|
-
// @ts-expect-error - Bun has built-in file system access
|
|
194
193
|
const { existsSync } = await import("node:fs");
|
|
195
|
-
// @ts-expect-error - Bun has built-in file system access
|
|
196
194
|
const { readdirSync } = await import("node:fs");
|
|
197
195
|
|
|
198
196
|
for (const check of checks) {
|