pi-harness-runtime 0.10.4 → 0.10.5
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/package.json +1 -1
- package/packages/a2a-adapter/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/code-generation/package.json +1 -1
- package/packages/code-review/package.json +1 -1
- package/packages/codex-adapter/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/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/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/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/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/performance-optimizer/package.json +1 -1
- package/packages/privilege-broker/package.json +1 -1
- package/packages/project-analyzer/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/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-registry/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/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/todo-bd-sync/src/extension.ts +47 -71
- package/packages/token-estimation/package.json +1 -1
- package/packages/token-optimizer/package.json +1 -1
- package/packages/tui/package.json +1 -1
- package/packages/types/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/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pi-harness/capability-registry",
|
|
3
|
-
"version": "0.10.
|
|
3
|
+
"version": "0.10.5",
|
|
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": "0.10.
|
|
3
|
+
"version": "0.10.5",
|
|
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",
|
|
@@ -1,45 +1,28 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* todo-bd-sync extension entry point
|
|
3
3
|
*
|
|
4
|
-
* This
|
|
5
|
-
* 1.
|
|
6
|
-
* 2.
|
|
7
|
-
* 3.
|
|
4
|
+
* This extension:
|
|
5
|
+
* 1. Detects if bd is installed and initialized
|
|
6
|
+
* 2. Auto-injects "add tasks to todo-list" when task is complex
|
|
7
|
+
* 3. Provides two-way sync between rpiv-todo and bd (via rpiv-todo)
|
|
8
8
|
*
|
|
9
|
-
*
|
|
10
|
-
* 1. Install dependencies:
|
|
11
|
-
* pi install npm:@juicesharp/rpiv-todo
|
|
12
|
-
* (bd should already be installed)
|
|
13
|
-
*
|
|
14
|
-
* 2. The extension auto-enables when rpiv-todo is detected
|
|
9
|
+
* The magic phrase "add tasks to todo-list" triggers rpiv-todo to track the task.
|
|
15
10
|
*/
|
|
16
11
|
|
|
17
|
-
import type { ExtensionAPI } from "@earendil-works/pi-coding-agent";
|
|
18
|
-
import {
|
|
19
|
-
createTodoBdSync,
|
|
20
|
-
type TodoBdSync,
|
|
21
|
-
type TodoBdSyncConfig,
|
|
22
|
-
} from "./index.js";
|
|
23
|
-
import {
|
|
24
|
-
getDependencyStatus,
|
|
25
|
-
logDependencyStatus,
|
|
26
|
-
} from "./detector.js";
|
|
27
|
-
import { createCustomReminder } from "./todo-reminder.js";
|
|
12
|
+
import type { ExtensionAPI, InputEvent, InputEventResult } from "@earendil-works/pi-coding-agent";
|
|
13
|
+
import { getDependencyStatus } from "./detector.js";
|
|
28
14
|
import { getOpenBdIssues } from "./sync.js";
|
|
15
|
+
import { decideAutoTodo, getTaskComplexityScore } from "./task-analyzer.js";
|
|
29
16
|
|
|
30
17
|
/**
|
|
31
18
|
* Register the todo-bd-sync extension
|
|
32
19
|
*/
|
|
33
|
-
export function registerTodoBdSync(
|
|
34
|
-
pi: ExtensionAPI,
|
|
35
|
-
config?: TodoBdSyncConfig,
|
|
36
|
-
): TodoBdSync | null {
|
|
20
|
+
export function registerTodoBdSync(pi: ExtensionAPI): void {
|
|
37
21
|
const deps = getDependencyStatus();
|
|
38
22
|
|
|
39
23
|
// Check if bd is installed
|
|
40
24
|
if (!deps.bd.installed) {
|
|
41
|
-
|
|
42
|
-
const installMsg = `
|
|
25
|
+
console.log(`
|
|
43
26
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
44
27
|
⚠️ bd (beads) is not installed
|
|
45
28
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
@@ -48,7 +31,7 @@ To use todo-bd-sync, install bd first:
|
|
|
48
31
|
|
|
49
32
|
https://github.com/gastownhall/beads
|
|
50
33
|
|
|
51
|
-
Quick install
|
|
34
|
+
Quick install:
|
|
52
35
|
|
|
53
36
|
npm install -g @gastownhall/beads
|
|
54
37
|
|
|
@@ -57,14 +40,13 @@ Quick install (requires Node.js):
|
|
|
57
40
|
pi install npm:@gastownhall/beads
|
|
58
41
|
|
|
59
42
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
return null;
|
|
43
|
+
`);
|
|
44
|
+
return;
|
|
63
45
|
}
|
|
64
46
|
|
|
65
47
|
// Check if bd is initialized in this project
|
|
66
48
|
if (!deps.bd.initialized) {
|
|
67
|
-
|
|
49
|
+
console.log(`
|
|
68
50
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
69
51
|
📋 bd (beads) detected but not initialized
|
|
70
52
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
@@ -74,51 +56,45 @@ Run the following command to initialize:
|
|
|
74
56
|
bd init
|
|
75
57
|
|
|
76
58
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
77
|
-
|
|
78
|
-
console.log(initMsg);
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
// Log dependency status for debugging (only if debug mode)
|
|
82
|
-
if (config?.debug) {
|
|
83
|
-
logDependencyStatus();
|
|
59
|
+
`);
|
|
84
60
|
}
|
|
85
61
|
|
|
86
|
-
//
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
62
|
+
// ── Smart Auto-Todo Injection ──────────────────────────────────────────
|
|
63
|
+
// Listen to user input and inject "add tasks to todo-list" when needed
|
|
64
|
+
|
|
65
|
+
pi.on("input", (event: InputEvent): InputEventResult | undefined => {
|
|
66
|
+
// Only process user input (not from extensions or RPC)
|
|
67
|
+
if (event.source !== "interactive") {
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
const text = event.text.trim();
|
|
72
|
+
if (!text || text.length < 10) {
|
|
73
|
+
return; // Skip very short inputs
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
const pendingCount = getOpenBdIssues().filter(i => i.status !== "closed").length;
|
|
77
|
+
const decision = decideAutoTodo(text);
|
|
78
|
+
|
|
79
|
+
// If should create todo and phrase not already present
|
|
80
|
+
if (decision.shouldCreate && !text.toLowerCase().includes("add tasks to todo-list")) {
|
|
81
|
+
const score = getTaskComplexityScore(text);
|
|
82
|
+
console.log(`[auto-todo] Task detected: ${decision.reason} (score: ${score}/100, pending: ${pendingCount})`);
|
|
83
|
+
|
|
84
|
+
// Transform the input to add the magic phrase
|
|
85
|
+
return {
|
|
86
|
+
action: "transform",
|
|
87
|
+
text: `${text}\n\nadd tasks to todo-list`,
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
return;
|
|
92
92
|
});
|
|
93
93
|
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
// Start todo reminder (DISABLED by default — Phase 1 emergency containment)
|
|
97
|
-
// Reminder spam was causing transcript growth. Enable only after proper task scoping.
|
|
98
|
-
const reminder = createCustomReminder(
|
|
99
|
-
pi,
|
|
100
|
-
() => {
|
|
101
|
-
// Get remaining todos from bd
|
|
102
|
-
const issues = getOpenBdIssues();
|
|
103
|
-
return issues
|
|
104
|
-
.filter((i) => i.status !== "closed")
|
|
105
|
-
.map((i) => ({
|
|
106
|
-
id: i.id,
|
|
107
|
-
title: i.title,
|
|
108
|
-
status: i.status,
|
|
109
|
-
}));
|
|
110
|
-
},
|
|
111
|
-
{
|
|
112
|
-
autoRemind: false, // DISABLED — fix reminder spam before re-enabling
|
|
113
|
-
minPendingTasks: 1,
|
|
114
|
-
},
|
|
115
|
-
);
|
|
116
|
-
reminder.start();
|
|
117
|
-
|
|
118
|
-
return sync;
|
|
94
|
+
console.log("[todo-bd-sync] Started - smart auto-todo enabled");
|
|
119
95
|
}
|
|
120
96
|
|
|
121
97
|
// Default export for pi extension loading
|
|
122
98
|
export default function todoBdSyncExtension(pi: ExtensionAPI): void {
|
|
123
|
-
registerTodoBdSync(pi
|
|
99
|
+
registerTodoBdSync(pi);
|
|
124
100
|
}
|