pi-harness-runtime 1.1.407 → 1.1.408
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 +78 -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/package.json +1 -1
- package/packages/trajectory/package.json +1 -1
- package/packages/tui/package.json +1 -1
- package/packages/two-phase-review/dist/classify.d.ts +56 -0
- package/packages/two-phase-review/dist/classify.d.ts.map +1 -0
- package/packages/two-phase-review/dist/classify.js +108 -0
- package/packages/two-phase-review/dist/classify.js.map +1 -0
- package/packages/two-phase-review/dist/index.d.ts +20 -0
- package/packages/two-phase-review/dist/index.d.ts.map +1 -0
- package/packages/two-phase-review/dist/index.js +14 -0
- package/packages/two-phase-review/dist/index.js.map +1 -0
- package/packages/two-phase-review/dist/rules.d.ts +81 -0
- package/packages/two-phase-review/dist/rules.d.ts.map +1 -0
- package/packages/two-phase-review/dist/rules.js +195 -0
- package/packages/two-phase-review/dist/rules.js.map +1 -0
- package/packages/two-phase-review/dist/runtime.d.ts +70 -0
- package/packages/two-phase-review/dist/runtime.d.ts.map +1 -0
- package/packages/two-phase-review/dist/runtime.js +298 -0
- package/packages/two-phase-review/dist/runtime.js.map +1 -0
- package/packages/two-phase-review/dist/scope.d.ts +68 -0
- package/packages/two-phase-review/dist/scope.d.ts.map +1 -0
- package/packages/two-phase-review/dist/scope.js +205 -0
- package/packages/two-phase-review/dist/scope.js.map +1 -0
- package/packages/two-phase-review/dist/signals.d.ts +74 -0
- package/packages/two-phase-review/dist/signals.d.ts.map +1 -0
- package/packages/two-phase-review/dist/signals.js +297 -0
- package/packages/two-phase-review/dist/signals.js.map +1 -0
- package/packages/two-phase-review/dist/state.d.ts +72 -0
- package/packages/two-phase-review/dist/state.d.ts.map +1 -0
- package/packages/two-phase-review/dist/state.js +238 -0
- package/packages/two-phase-review/dist/state.js.map +1 -0
- package/packages/two-phase-review/dist/types.d.ts +62 -0
- package/packages/two-phase-review/dist/types.d.ts.map +1 -0
- package/packages/two-phase-review/dist/types.js +9 -0
- package/packages/two-phase-review/dist/types.js.map +1 -0
- package/packages/two-phase-review/package.json +21 -0
- package/packages/two-phase-review/src/classify.ts +129 -0
- package/packages/two-phase-review/src/index.ts +110 -0
- package/packages/two-phase-review/src/rules.ts +236 -0
- package/packages/two-phase-review/src/runtime.ts +392 -0
- package/packages/two-phase-review/src/scope.ts +247 -0
- package/packages/two-phase-review/src/signals.ts +340 -0
- package/packages/two-phase-review/src/state.ts +280 -0
- package/packages/two-phase-review/src/types.ts +72 -0
- package/packages/two-phase-review/test/classify.test.ts +102 -0
- package/packages/two-phase-review/test/helpers.ts +72 -0
- package/packages/two-phase-review/test/rules.test.ts +150 -0
- package/packages/two-phase-review/test/runtime.test.ts +362 -0
- package/packages/two-phase-review/test/scope.test.ts +186 -0
- package/packages/two-phase-review/test/signals.test.ts +183 -0
- package/packages/two-phase-review/test/state.test.ts +201 -0
- 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/dist/worktree.d.ts +31 -0
- package/packages/worktree/dist/worktree.d.ts.map +1 -1
- package/packages/worktree/dist/worktree.js +21 -8
- package/packages/worktree/dist/worktree.js.map +1 -1
- package/packages/worktree/package.json +1 -1
- package/packages/worktree/src/worktree.ts +49 -8
- package/packages/worktree/test/worktree.test.ts +27 -27
- package/packages/write-review/package.json +1 -1
- package/packages/worktree/worktree.ts +0 -293
package/index.ts
CHANGED
|
@@ -373,6 +373,78 @@ let _extensionApi: ExtensionAPI | null = null;
|
|
|
373
373
|
/** How long an unanswered proposal stays quiet before it is offered again. */
|
|
374
374
|
const TOOLING_PROPOSAL_COOLDOWN_MS = 30 * 24 * 60 * 60 * 1000;
|
|
375
375
|
|
|
376
|
+
// --- two-phase-review: implementation first, review as a second phase -----
|
|
377
|
+
|
|
378
|
+
/** The package of the two-phase workflow. */
|
|
379
|
+
type TwoPhaseModule = typeof import("./packages/two-phase-review/dist/index.js");
|
|
380
|
+
|
|
381
|
+
/** The todo shape the workflow needs. */
|
|
382
|
+
type TwoPhaseTodoLike = import("./packages/two-phase-review/dist/index.js").TodoLike;
|
|
383
|
+
|
|
384
|
+
/**
|
|
385
|
+
* Load the two-phase review package.
|
|
386
|
+
*/
|
|
387
|
+
async function loadTwoPhaseModule(): Promise<TwoPhaseModule | null> {
|
|
388
|
+
try {
|
|
389
|
+
return await import("./packages/two-phase-review/dist/index.js");
|
|
390
|
+
} catch (error) {
|
|
391
|
+
logToFile("[TwoPhase]", `package unavailable: ${oneLineError(error)}`);
|
|
392
|
+
return null;
|
|
393
|
+
}
|
|
394
|
+
}
|
|
395
|
+
|
|
396
|
+
/**
|
|
397
|
+
* Register the two-phase workflow in the session.
|
|
398
|
+
*
|
|
399
|
+
* The wiring itself lives in the package (it is tested there). The session
|
|
400
|
+
* only provides the todo list of the session and the workspace.
|
|
401
|
+
*/
|
|
402
|
+
async function initTwoPhaseReview(pi: ExtensionAPI): Promise<void> {
|
|
403
|
+
const mod = await loadTwoPhaseModule();
|
|
404
|
+
if (!mod) return;
|
|
405
|
+
|
|
406
|
+
/** Read the todo list of the session (the local one, never bd). */
|
|
407
|
+
const readTodos = async (ctx: unknown): Promise<{
|
|
408
|
+
available: boolean;
|
|
409
|
+
todos: TwoPhaseTodoLike[];
|
|
410
|
+
reason?: string;
|
|
411
|
+
}> => {
|
|
412
|
+
try {
|
|
413
|
+
const jev = await import("./packages/jev-judge/dist/index.js");
|
|
414
|
+
const provider = jev.createTodoProvider(ctx as never);
|
|
415
|
+
const availability = await provider.availability();
|
|
416
|
+
if (!availability.available) {
|
|
417
|
+
return {
|
|
418
|
+
available: false,
|
|
419
|
+
todos: [],
|
|
420
|
+
reason: availability.error ?? "the todo provider is not available",
|
|
421
|
+
};
|
|
422
|
+
}
|
|
423
|
+
const snapshot = await provider.getSnapshot();
|
|
424
|
+
return { available: true, todos: (snapshot.items ?? []) as TwoPhaseTodoLike[] };
|
|
425
|
+
} catch (error) {
|
|
426
|
+
return { available: false, todos: [], reason: oneLineError(error) };
|
|
427
|
+
}
|
|
428
|
+
};
|
|
429
|
+
|
|
430
|
+
try {
|
|
431
|
+
await mod.initTwoPhaseReview({
|
|
432
|
+
pi,
|
|
433
|
+
readTodos,
|
|
434
|
+
workspaceRoot: () => {
|
|
435
|
+
try {
|
|
436
|
+
return realpathSync(process.cwd());
|
|
437
|
+
} catch {
|
|
438
|
+
return process.cwd();
|
|
439
|
+
}
|
|
440
|
+
},
|
|
441
|
+
log: (message: string) => logToFile("[TwoPhase]", message),
|
|
442
|
+
});
|
|
443
|
+
} catch (error) {
|
|
444
|
+
logToFile("[TwoPhase]", `runtime not registered: ${oneLineError(error)}`);
|
|
445
|
+
}
|
|
446
|
+
}
|
|
447
|
+
|
|
376
448
|
/**
|
|
377
449
|
* Load the tooling preference package and watch for the session start.
|
|
378
450
|
*
|
|
@@ -4013,6 +4085,12 @@ export default async function (pi: ExtensionAPI) {
|
|
|
4013
4085
|
// The proposal is a decision of its own: it never pauses the work.
|
|
4014
4086
|
void initToolingPreference(pi);
|
|
4015
4087
|
|
|
4088
|
+
// --- two-phase-review: implementation first, review as a second phase ----
|
|
4089
|
+
// A review signal during the implementation is queued, never executed.
|
|
4090
|
+
// The handlers are registered before the extension is ready, so a session
|
|
4091
|
+
// that starts right away is already covered.
|
|
4092
|
+
await initTwoPhaseReview(pi);
|
|
4093
|
+
|
|
4016
4094
|
// --- telegram-notifications: Telegram bot for harness event notifications ----
|
|
4017
4095
|
// Collect promise so we can wait for initialization before showing startup notification
|
|
4018
4096
|
asyncInitPromises.push(
|
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.408",
|
|
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",
|