pi-harness-runtime 1.1.406 → 1.1.407
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 +67 -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/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/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/tooling-preference/dist/changed-files.d.ts +45 -0
- package/packages/tooling-preference/dist/changed-files.d.ts.map +1 -0
- package/packages/tooling-preference/dist/changed-files.js +125 -0
- package/packages/tooling-preference/dist/changed-files.js.map +1 -0
- package/packages/tooling-preference/dist/index.d.ts +2 -0
- package/packages/tooling-preference/dist/index.d.ts.map +1 -1
- package/packages/tooling-preference/dist/index.js +2 -0
- package/packages/tooling-preference/dist/index.js.map +1 -1
- package/packages/tooling-preference/dist/quality-check.d.ts +75 -0
- package/packages/tooling-preference/dist/quality-check.d.ts.map +1 -0
- package/packages/tooling-preference/dist/quality-check.js +216 -0
- package/packages/tooling-preference/dist/quality-check.js.map +1 -0
- package/packages/tooling-preference/package.json +1 -1
- package/packages/tooling-preference/src/changed-files.ts +147 -0
- package/packages/tooling-preference/src/index.ts +19 -0
- package/packages/tooling-preference/src/quality-check.ts +279 -0
- package/packages/tooling-preference/tests/changed-files.test.ts +124 -0
- package/packages/tooling-preference/tests/quality-check.test.ts +272 -0
- 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
package/index.ts
CHANGED
|
@@ -530,6 +530,70 @@ async function startBiomeImplementation(
|
|
|
530
530
|
}
|
|
531
531
|
}
|
|
532
532
|
|
|
533
|
+
/** The last time a quality check ran - the check is not repeated in a loop. */
|
|
534
|
+
let _toolingCheckAt = 0;
|
|
535
|
+
/** Is a quality check running right now? */
|
|
536
|
+
let _toolingCheckRunning = false;
|
|
537
|
+
/** The shortest time between two quality checks. */
|
|
538
|
+
const TOOLING_CHECK_INTERVAL_MS = 15_000;
|
|
539
|
+
|
|
540
|
+
/**
|
|
541
|
+
* Run the post-change quality check of the workspace.
|
|
542
|
+
*
|
|
543
|
+
* The check honors the saved preference: Biome when the user asked for it,
|
|
544
|
+
* the project's own script otherwise. It never writes, it never blocks the
|
|
545
|
+
* session and it never runs without a decision of the user.
|
|
546
|
+
*/
|
|
547
|
+
async function maybeRunToolingCheck(ctx: ExtensionContext): Promise<void> {
|
|
548
|
+
const store = _toolingStore;
|
|
549
|
+
if (!store || _toolingCheckRunning) return;
|
|
550
|
+
const now = Date.now();
|
|
551
|
+
if (now - _toolingCheckAt < TOOLING_CHECK_INTERVAL_MS) return;
|
|
552
|
+
|
|
553
|
+
let workspaceRoot: string;
|
|
554
|
+
try {
|
|
555
|
+
workspaceRoot = realpathSync(process.cwd());
|
|
556
|
+
} catch {
|
|
557
|
+
return;
|
|
558
|
+
}
|
|
559
|
+
|
|
560
|
+
try {
|
|
561
|
+
const mod = await import("./packages/tooling-preference/dist/index.js");
|
|
562
|
+
const userKey = mod.buildToolingUserKey(readToolingIdentity());
|
|
563
|
+
const record = store.read(userKey, workspaceRoot);
|
|
564
|
+
// Without a decision of the user no tool is selected, so nothing runs.
|
|
565
|
+
if (!record?.decision) return;
|
|
566
|
+
|
|
567
|
+
const changed = mod.detectChangedJsTsFiles(workspaceRoot);
|
|
568
|
+
if (!changed.detected || changed.files.length === 0) return;
|
|
569
|
+
|
|
570
|
+
const context = mod.detectToolingContext(workspaceRoot);
|
|
571
|
+
const plan = mod.selectQualityCheck({
|
|
572
|
+
context,
|
|
573
|
+
preference: record.decision,
|
|
574
|
+
files: changed.files,
|
|
575
|
+
});
|
|
576
|
+
if (plan.tool === "none") return;
|
|
577
|
+
|
|
578
|
+
_toolingCheckRunning = true;
|
|
579
|
+
_toolingCheckAt = now;
|
|
580
|
+
try {
|
|
581
|
+
const result = mod.runQualityCheck(plan, {
|
|
582
|
+
cwd: workspaceRoot,
|
|
583
|
+
timeoutMs: 60_000,
|
|
584
|
+
});
|
|
585
|
+
const line = mod.formatQualityCheckStatus(result);
|
|
586
|
+
logToFile("[ToolingCheck]", line);
|
|
587
|
+
// The status line names the tool and says whether the check ran.
|
|
588
|
+
ctx.ui.setStatus("harness-tooling", line);
|
|
589
|
+
} finally {
|
|
590
|
+
_toolingCheckRunning = false;
|
|
591
|
+
}
|
|
592
|
+
} catch (error) {
|
|
593
|
+
logToFile("[ToolingCheck]", `check failed: ${oneLineError(error)}`);
|
|
594
|
+
}
|
|
595
|
+
}
|
|
596
|
+
|
|
533
597
|
async function initAutoContinue(pi: ExtensionAPI): Promise<void> {
|
|
534
598
|
addHarnessMessage("Jev", "initializing", "wait");
|
|
535
599
|
try {
|
|
@@ -5988,6 +6052,9 @@ Run \`bd ready\` to see current bd issues.
|
|
|
5988
6052
|
void maybeAutoFetchQuota(ctx.model?.id ?? null);
|
|
5989
6053
|
maybeTriggerProactiveCompact(ctx);
|
|
5990
6054
|
maybeNotifyContextUsage(ctx);
|
|
6055
|
+
// The quality check of the workspace runs after the turn: it never
|
|
6056
|
+
// writes and it never steers the session.
|
|
6057
|
+
void maybeRunToolingCheck(ctx);
|
|
5991
6058
|
});
|
|
5992
6059
|
|
|
5993
6060
|
pi.on("agent_end", () => {
|
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.407",
|
|
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",
|