pi-harness-runtime 0.10.3 → 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.
Files changed (80) hide show
  1. package/index.ts +4 -1
  2. package/package.json +3 -2
  3. package/packages/a2a-adapter/package.json +1 -1
  4. package/packages/auth/package.json +1 -1
  5. package/packages/autonomous-refactor/package.json +1 -1
  6. package/packages/autonomous-runtime/package.json +1 -1
  7. package/packages/cache-strategy/package.json +1 -1
  8. package/packages/capability-registry/package.json +1 -1
  9. package/packages/checkpoint/package.json +1 -1
  10. package/packages/cli-plugin-sdk/package.json +1 -1
  11. package/packages/clipboard/package.json +1 -1
  12. package/packages/code-generation/package.json +1 -1
  13. package/packages/code-review/package.json +1 -1
  14. package/packages/codex-adapter/package.json +1 -1
  15. package/packages/context-compiler/package.json +1 -1
  16. package/packages/context-discovery/package.json +1 -1
  17. package/packages/context-manager/package.json +1 -1
  18. package/packages/cookie-sanitizer/package.json +1 -1
  19. package/packages/cost-optimizer/package.json +1 -1
  20. package/packages/dependency-analyzer/package.json +1 -1
  21. package/packages/django-plugin/package.json +1 -1
  22. package/packages/doc-generator/package.json +1 -1
  23. package/packages/evaluation-engine/package.json +1 -1
  24. package/packages/evaluation-runner/package.json +1 -1
  25. package/packages/event-bus/package.json +1 -1
  26. package/packages/event-store/package.json +1 -1
  27. package/packages/experience-replay/package.json +1 -1
  28. package/packages/feedback-collector/package.json +1 -1
  29. package/packages/framework-detector/package.json +1 -1
  30. package/packages/framework-plugin-sdk/package.json +1 -1
  31. package/packages/frappe-plugin/package.json +1 -1
  32. package/packages/generic-web-plugin/package.json +1 -1
  33. package/packages/health-monitor/package.json +1 -1
  34. package/packages/intent-analyzer/package.json +1 -1
  35. package/packages/laravel-plugin/package.json +1 -1
  36. package/packages/learning-engine/package.json +1 -1
  37. package/packages/mcp-adapter/package.json +1 -1
  38. package/packages/memory-engine/package.json +1 -1
  39. package/packages/model-registry/package.json +1 -1
  40. package/packages/nextjs-plugin/package.json +1 -1
  41. package/packages/notification/package.json +1 -1
  42. package/packages/observability/package.json +1 -1
  43. package/packages/performance-optimizer/package.json +1 -1
  44. package/packages/privilege-broker/package.json +1 -1
  45. package/packages/project-analyzer/package.json +1 -1
  46. package/packages/projection-engine/package.json +1 -1
  47. package/packages/prompt-compiler/package.json +1 -1
  48. package/packages/prompt-versioning/package.json +1 -1
  49. package/packages/provider-adapter-sdk/package.json +1 -1
  50. package/packages/provider-router/package.json +1 -1
  51. package/packages/provider-selector/package.json +1 -1
  52. package/packages/providers/package.json +1 -1
  53. package/packages/quota-manager/package.json +1 -1
  54. package/packages/rate-limiter/package.json +1 -1
  55. package/packages/react-vite-plugin/package.json +1 -1
  56. package/packages/release-manager/package.json +1 -1
  57. package/packages/requirement-compiler/package.json +1 -1
  58. package/packages/runtime/package.json +1 -1
  59. package/packages/scheduler/package.json +1 -1
  60. package/packages/scheduler-adapter/package.json +1 -1
  61. package/packages/session/package.json +1 -1
  62. package/packages/session-api/package.json +1 -1
  63. package/packages/session-export/package.json +1 -1
  64. package/packages/shared-context/package.json +1 -1
  65. package/packages/skill-registry/package.json +1 -1
  66. package/packages/sprint-planner/package.json +1 -1
  67. package/packages/subscription-engine/package.json +1 -1
  68. package/packages/task-compiler/package.json +1 -1
  69. package/packages/test-data-generator/package.json +1 -1
  70. package/packages/test-generator/package.json +1 -1
  71. package/packages/todo-bd-sync/package.json +1 -1
  72. package/packages/todo-bd-sync/src/detector.ts +25 -4
  73. package/packages/todo-bd-sync/src/extension.ts +74 -58
  74. package/packages/token-estimation/package.json +1 -1
  75. package/packages/token-optimizer/package.json +1 -1
  76. package/packages/tui/package.json +1 -1
  77. package/packages/types/package.json +1 -1
  78. package/packages/workflow-events/package.json +1 -1
  79. package/packages/workspace-scanner/package.json +1 -1
  80. package/packages/worktree/package.json +1 -1
package/index.ts CHANGED
@@ -906,7 +906,10 @@ The todo overlay persists and helps track progress across your conversation.
906
906
  registerGithubLoginCommand(pi);
907
907
 
908
908
  // --- Ctrl+Shift+C — Copy to clipboard + sync to Gist ------------
909
- registerCopySyncShortcut(pi, Key);
909
+ // NOTE: Shortcut disabled to avoid conflict with pi-usage-status extension
910
+ // which also registers ctrl+shift+c for clipboard sync.
911
+ // The copyAndSync function is still exported and can be called manually.
912
+ // registerCopySyncShortcut(pi, Key);
910
913
 
911
914
  // --- /harness start — Start a new harness job ----------------------
912
915
  pi.registerCommand("harness-start", {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pi-harness-runtime",
3
- "version": "0.10.3",
3
+ "version": "0.10.5",
4
4
  "description": "[BETA] Codex-style /usage status + autonomous coding harness for pi. Not production ready — expect breaking changes.",
5
5
  "type": "module",
6
6
  "scripts": {
@@ -16,7 +16,8 @@
16
16
  "auth:minimax:scrape": "bun packages/auth/src/run-minimax-auth.ts scrape",
17
17
  "skills:sync": "bun scripts/skills-sync.ts",
18
18
  "skills:sync:check": "bun scripts/skills-sync.ts --check-only",
19
- "build": "for pkg in packages/*/; do [ -f \"${pkg}tsconfig.json\" ] && [ \"$pkg\" != \"packages/provider-router/\" ] && node_modules/.bin/tsc -p \"${pkg}tsconfig.json\" --skipLibCheck || true; done"
19
+ "build": "for pkg in packages/*/; do [ -f \"${pkg}tsconfig.json\" ] && [ \"$pkg\" != \"packages/provider-router/\" ] && node_modules/.bin/tsc -p \"${pkg}tsconfig.json\" --skipLibCheck || true; done",
20
+ "check:version": "bun scripts/check-version-sync.ts"
20
21
  },
21
22
  "bin": {
22
23
  "harness-auth": "packages/auth/src/run-minimax-auth.ts"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/a2a-adapter",
3
- "version": "0.10.3",
3
+ "version": "0.10.5",
4
4
  "type": "module",
5
5
  "description": "Google Agent-to-Agent (A2A) protocol adapter for pi-harness",
6
6
  "main": "dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/auth",
3
- "version": "0.10.3",
3
+ "version": "0.10.5",
4
4
  "description": "pi-harness-runtime — auth",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/autonomous-refactor",
3
- "version": "0.10.3",
3
+ "version": "0.10.5",
4
4
  "type": "module",
5
5
  "description": "Autonomous refactoring engine",
6
6
  "main": "dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/autonomous-runtime",
3
- "version": "0.10.3",
3
+ "version": "0.10.5",
4
4
  "description": "Autonomous Operations Runtime — task inbox, lease management, and worker lifecycle (RFC-0101)",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/cache-strategy",
3
- "version": "0.10.3",
3
+ "version": "0.10.5",
4
4
  "type": "module",
5
5
  "description": "Smart caching with TTL and invalidation strategies (RFC-0022)",
6
6
  "main": "dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/capability-registry",
3
- "version": "0.10.3",
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/checkpoint",
3
- "version": "0.10.3",
3
+ "version": "0.10.5",
4
4
  "description": "Enhanced checkpoint system with incremental snapshots, diff-based storage, and recovery strategies",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/cli-plugin-sdk",
3
- "version": "0.10.3",
3
+ "version": "0.10.5",
4
4
  "type": "module",
5
5
  "description": "CLI Plugin SDK for pi-harness — install, list, remove, update, invoke plugins",
6
6
  "main": "dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/clipboard",
3
- "version": "0.10.3",
3
+ "version": "0.10.5",
4
4
  "type": "module",
5
5
  "main": "src/index.ts",
6
6
  "exports": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/code-generation",
3
- "version": "0.10.3",
3
+ "version": "0.10.5",
4
4
  "description": "Code generation pipeline for pi-harness-runtime",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/code-review",
3
- "version": "0.10.3",
3
+ "version": "0.10.5",
4
4
  "description": "Automated code review engine for pi-harness-runtime",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/codex-adapter",
3
- "version": "0.10.3",
3
+ "version": "0.10.5",
4
4
  "type": "module",
5
5
  "description": "OpenAI Codex provider adapter for pi-harness",
6
6
  "main": "dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/context-compiler",
3
- "version": "0.10.3",
3
+ "version": "0.10.5",
4
4
  "description": "Bounded context selection engine for pi-harness-runtime",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/context-discovery",
3
- "version": "0.10.3",
3
+ "version": "0.10.5",
4
4
  "type": "module",
5
5
  "main": "src/index.ts",
6
6
  "exports": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/context-manager",
3
- "version": "0.10.3",
3
+ "version": "0.10.5",
4
4
  "description": "Context Window Manager — prevents model context overflow via compaction and resume prompts (RFC-0010)",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/cookie-sanitizer",
3
- "version": "0.10.3",
3
+ "version": "0.10.5",
4
4
  "description": "pi-harness-runtime — cookie sanitizer (provider-quota cookie file normaliser)",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/cost-optimizer",
3
- "version": "0.10.3",
3
+ "version": "0.10.5",
4
4
  "description": "Cost Optimizer for pi-harness-runtime — budget tracking, forecasting, and model selection optimization",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/dependency-analyzer",
3
- "version": "0.10.3",
3
+ "version": "0.10.5",
4
4
  "type": "module",
5
5
  "main": "src/index.ts",
6
6
  "exports": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/django-plugin",
3
- "version": "0.10.3",
3
+ "version": "0.10.5",
4
4
  "description": "Django framework analysis — models, management commands, settings",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/doc-generator",
3
- "version": "0.10.3",
3
+ "version": "0.10.5",
4
4
  "description": "Auto-Doc Generator — generate documentation from source code (RFC-0014)",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/evaluation-engine",
3
- "version": "0.10.3",
3
+ "version": "0.10.5",
4
4
  "description": "Evaluation engine for pi-harness runtime (RFC-0057)",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/evaluation-runner",
3
- "version": "0.10.3",
3
+ "version": "0.10.5",
4
4
  "type": "module",
5
5
  "description": "Framework-agnostic evaluation framework for AI outputs (RFC-0020)",
6
6
  "main": "dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/event-bus",
3
- "version": "0.10.3",
3
+ "version": "0.10.5",
4
4
  "type": "module",
5
5
  "main": "src/index.ts",
6
6
  "exports": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/event-store",
3
- "version": "0.10.3",
3
+ "version": "0.10.5",
4
4
  "type": "module",
5
5
  "main": "src/index.ts",
6
6
  "exports": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/experience-replay",
3
- "version": "0.10.3",
3
+ "version": "0.10.5",
4
4
  "description": "Experience replay for debugging and reproducibility (RFC-0059)",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/feedback-collector",
3
- "version": "0.10.3",
3
+ "version": "0.10.5",
4
4
  "type": "module",
5
5
  "description": "Collect and aggregate human/automated feedback (RFC-0021)",
6
6
  "main": "dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/framework-detector",
3
- "version": "0.10.3",
3
+ "version": "0.10.5",
4
4
  "description": "Framework detection system for pi-harness-runtime",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/framework-plugin-sdk",
3
- "version": "0.10.3",
3
+ "version": "0.10.5",
4
4
  "description": "Framework plugin SDK for pi-harness-runtime",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/frappe-plugin",
3
- "version": "0.10.3",
3
+ "version": "0.10.5",
4
4
  "description": "Frappe/ERPNext framework analysis — DocTypes, hooks, bench sites, site config",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/generic-web-plugin",
3
- "version": "0.10.3",
3
+ "version": "0.10.5",
4
4
  "description": "Generic web framework analysis — REST/GraphQL endpoints, OpenAPI, auth",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/health-monitor",
3
- "version": "0.10.3",
3
+ "version": "0.10.5",
4
4
  "type": "module",
5
5
  "description": "Health monitoring and auto-healing",
6
6
  "main": "dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/intent-analyzer",
3
- "version": "0.10.3",
3
+ "version": "0.10.5",
4
4
  "type": "module",
5
5
  "main": "src/index.ts",
6
6
  "exports": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/laravel-plugin",
3
- "version": "0.10.3",
3
+ "version": "0.10.5",
4
4
  "description": "Laravel framework analysis — artisan commands, Eloquent models, Blade",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/learning-engine",
3
- "version": "0.10.3",
3
+ "version": "0.10.5",
4
4
  "description": "Learning engine for extracting lessons from runtime execution (RFC-0058)",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/mcp-adapter",
3
- "version": "0.10.3",
3
+ "version": "0.10.5",
4
4
  "type": "module",
5
5
  "description": "MCP server adapter for pi-harness — exposes harness capabilities as MCP tools/resources/prompts (RFC-0068)",
6
6
  "main": "dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/memory-engine",
3
- "version": "0.10.3",
3
+ "version": "0.10.5",
4
4
  "description": "Memory engine with OKF integration for durable knowledge management (RFC-0060)",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/model-registry",
3
- "version": "0.10.3",
3
+ "version": "0.10.5",
4
4
  "description": "Model Registry for pi-harness-runtime — centralized model metadata with pricing",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/nextjs-plugin",
3
- "version": "0.10.3",
3
+ "version": "0.10.5",
4
4
  "description": "Next.js framework detection and analysis for pi-harness-runtime (RFC-0062)",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/notification",
3
- "version": "0.10.3",
3
+ "version": "0.10.5",
4
4
  "description": "pi-harness-runtime — notification",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/observability",
3
- "version": "0.10.3",
3
+ "version": "0.10.5",
4
4
  "description": "Comprehensive observability system with structured logging, tracing, metrics, and alerting",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/performance-optimizer",
3
- "version": "0.10.3",
3
+ "version": "0.10.5",
4
4
  "description": "Performance optimization analyzer for pi-harness runtime (RFC-0056)",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/privilege-broker",
3
- "version": "0.10.3",
3
+ "version": "0.10.5",
4
4
  "description": "Privilege Broker — capability registry and command executor for autonomous runtime (RFC-0101 §7)",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/project-analyzer",
3
- "version": "0.10.3",
3
+ "version": "0.10.5",
4
4
  "description": "Project analysis system for pi-harness-runtime - detects frameworks, rules, and project structure",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/projection-engine",
3
- "version": "0.10.3",
3
+ "version": "0.10.5",
4
4
  "type": "module",
5
5
  "main": "src/index.ts",
6
6
  "exports": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/prompt-compiler",
3
- "version": "0.10.3",
3
+ "version": "0.10.5",
4
4
  "description": "Deterministic prompt compiler for pi-harness-runtime",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/prompt-versioning",
3
- "version": "0.10.3",
3
+ "version": "0.10.5",
4
4
  "type": "module",
5
5
  "description": "Version control for prompts with rollback support (RFC-0019)",
6
6
  "main": "dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/provider-adapter-sdk",
3
- "version": "0.10.3",
3
+ "version": "0.10.5",
4
4
  "description": "SDK for building, testing, and registering AI provider adapters",
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",
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,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/provider-selector",
3
- "version": "0.10.3",
3
+ "version": "0.10.5",
4
4
  "description": "Multi-Provider Selector — route requests by cost, quality, and latency (RFC-0012)",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/providers",
3
- "version": "0.10.3",
3
+ "version": "0.10.5",
4
4
  "description": "pi-harness-runtime — providers",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/quota-manager",
3
- "version": "0.10.3",
3
+ "version": "0.10.5",
4
4
  "description": "pi-harness-runtime — quota-manager",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/rate-limiter",
3
- "version": "0.10.3",
3
+ "version": "0.10.5",
4
4
  "type": "module",
5
5
  "description": "Rate limiting with token bucket algorithm (RFC-0023)",
6
6
  "main": "dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/react-vite-plugin",
3
- "version": "0.10.3",
3
+ "version": "0.10.5",
4
4
  "description": "React/Vite framework analysis — components, config, TypeScript setup",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/release-manager",
3
- "version": "0.10.3",
3
+ "version": "0.10.5",
4
4
  "type": "module",
5
5
  "description": "Release management for pi-harness",
6
6
  "main": "dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/requirement-compiler",
3
- "version": "0.10.3",
3
+ "version": "0.10.5",
4
4
  "description": "Compiles raw requirements into validated CompiledRequirement with ambiguity detection and risk tagging",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/runtime",
3
- "version": "0.10.3",
3
+ "version": "0.10.5",
4
4
  "description": "pi-harness-runtime — runtime",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/scheduler",
3
- "version": "0.10.3",
3
+ "version": "0.10.5",
4
4
  "description": "pi-harness-runtime — scheduler",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/scheduler-adapter",
3
- "version": "0.10.3",
3
+ "version": "0.10.5",
4
4
  "description": "Scheduler Adapter — cron, systemd, launchd, internal adapters for autonomous runtime (RFC-0101 §6)",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/session",
3
- "version": "0.10.3",
3
+ "version": "0.10.5",
4
4
  "description": "Session management system for pi-harness-runtime",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/session-api",
3
- "version": "0.10.3",
3
+ "version": "0.10.5",
4
4
  "type": "module",
5
5
  "main": "src/index.ts",
6
6
  "exports": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/session-export",
3
- "version": "0.10.3",
3
+ "version": "0.10.5",
4
4
  "type": "module",
5
5
  "main": "src/index.ts",
6
6
  "exports": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/shared-context",
3
- "version": "0.10.3",
3
+ "version": "0.10.5",
4
4
  "description": "pi-harness-runtime — shared-context",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/skill-registry",
3
- "version": "0.10.3",
3
+ "version": "0.10.5",
4
4
  "description": "Skill Registry for pi-harness-runtime — dynamic skill discovery and invocation",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/sprint-planner",
3
- "version": "0.10.3",
3
+ "version": "0.10.5",
4
4
  "type": "module",
5
5
  "description": "Sprint planning engine for pi-harness",
6
6
  "main": "dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/subscription-engine",
3
- "version": "0.10.3",
3
+ "version": "0.10.5",
4
4
  "type": "module",
5
5
  "main": "src/index.ts",
6
6
  "exports": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/task-compiler",
3
- "version": "0.10.3",
3
+ "version": "0.10.5",
4
4
  "description": "Task Compiler for pi-harness-runtime — produces deterministic task DAG from CompiledRequirement",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/test-data-generator",
3
- "version": "0.10.3",
3
+ "version": "0.10.5",
4
4
  "description": "Test data generation for pi-harness-runtime",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/test-generator",
3
- "version": "0.10.3",
3
+ "version": "0.10.5",
4
4
  "description": "Auto-Test Generator — generate unit and E2E tests from source code (RFC-0013)",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@moocoding/todo-bd-sync",
3
- "version": "0.10.3",
3
+ "version": "0.10.5",
4
4
  "description": "Two-way sync between rpiv-todo overlay and bd issue tracker",
5
5
  "type": "module",
6
6
  "main": "src/index.ts",
@@ -91,6 +91,16 @@ export function isBdInstalled(): boolean {
91
91
  }
92
92
  }
93
93
 
94
+ /**
95
+ * Check if bd is initialized in the current project
96
+ * (i.e., .beads/ directory exists)
97
+ */
98
+ export function isBdInitialized(cwd?: string): boolean {
99
+ const projectDir = cwd || process.cwd();
100
+ const beadsDir = join(projectDir, ".beads");
101
+ return existsSync(beadsDir);
102
+ }
103
+
94
104
  /**
95
105
  * Get the version of bd CLI if installed
96
106
  */
@@ -106,6 +116,9 @@ export function getBdVersion(): string | null {
106
116
  }
107
117
  }
108
118
 
119
+ /**
120
+ * Get installation status of both dependencies
121
+ */
109
122
  /**
110
123
  * Get installation status of both dependencies
111
124
  */
@@ -118,10 +131,13 @@ export interface DependencyStatus {
118
131
  bd: {
119
132
  installed: boolean;
120
133
  version: string | null;
134
+ initialized: boolean;
135
+ installUrl: string;
121
136
  };
122
137
  }
123
138
 
124
- export function getDependencyStatus(): DependencyStatus {
139
+ export function getDependencyStatus(cwd?: string): DependencyStatus {
140
+ const installed = isBdInstalled();
125
141
  return {
126
142
  rpivTodo: {
127
143
  installed: isRpivTodoInstalled(),
@@ -129,8 +145,10 @@ export function getDependencyStatus(): DependencyStatus {
129
145
  loaded: isRpivTodoLoaded(),
130
146
  },
131
147
  bd: {
132
- installed: isBdInstalled(),
133
- version: getBdVersion(),
148
+ installed,
149
+ version: installed ? getBdVersion() : null,
150
+ initialized: installed ? isBdInitialized(cwd) : false,
151
+ installUrl: "https://github.com/gastownhall/beads",
134
152
  },
135
153
  };
136
154
  }
@@ -145,6 +163,9 @@ export function logDependencyStatus(): void {
145
163
  ` rpiv-todo: installed=${status.rpivTodo.installed}, version=${status.rpivTodo.version}, loaded=${status.rpivTodo.loaded}`,
146
164
  );
147
165
  console.log(
148
- ` bd: installed=${status.bd.installed}, version=${status.bd.version}`,
166
+ ` bd: installed=${status.bd.installed}, version=${status.bd.version}, initialized=${status.bd.initialized}`,
149
167
  );
168
+ if (!status.bd.installed) {
169
+ console.log(` bd install: ${status.bd.installUrl}`);
170
+ }
150
171
  }
@@ -1,84 +1,100 @@
1
1
  /**
2
2
  * todo-bd-sync extension entry point
3
3
  *
4
- * This is the pi-coding-agent extension that:
5
- * 1. Auto-injects "todo-list" to prompt to enable rpiv-todo
6
- * 2. Sets up two-way sync between rpiv-todo and bd
7
- * 3. Loads existing bd issues on session start
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
- * To use this extension:
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 { getDependencyStatus, logDependencyStatus } from "./detector.js";
24
- import { createCustomReminder } from "./todo-reminder.js";
12
+ import type { ExtensionAPI, InputEvent, InputEventResult } from "@earendil-works/pi-coding-agent";
13
+ import { getDependencyStatus } from "./detector.js";
25
14
  import { getOpenBdIssues } from "./sync.js";
15
+ import { decideAutoTodo, getTaskComplexityScore } from "./task-analyzer.js";
26
16
 
27
17
  /**
28
18
  * Register the todo-bd-sync extension
29
19
  */
30
- export function registerTodoBdSync(
31
- pi: ExtensionAPI,
32
- config?: TodoBdSyncConfig,
33
- ): TodoBdSync | null {
20
+ export function registerTodoBdSync(pi: ExtensionAPI): void {
34
21
  const deps = getDependencyStatus();
35
22
 
36
23
  // Check if bd is installed
37
24
  if (!deps.bd.installed) {
38
- return null;
25
+ console.log(`
26
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
27
+ ⚠️ bd (beads) is not installed
28
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
29
+
30
+ To use todo-bd-sync, install bd first:
31
+
32
+ https://github.com/gastownhall/beads
33
+
34
+ Quick install:
35
+
36
+ npm install -g @gastownhall/beads
37
+
38
+ OR
39
+
40
+ pi install npm:@gastownhall/beads
41
+
42
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
43
+ `);
44
+ return;
39
45
  }
40
46
 
41
- // Log dependency status for debugging (only if debug mode)
42
- if (config?.debug) {
43
- logDependencyStatus();
47
+ // Check if bd is initialized in this project
48
+ if (!deps.bd.initialized) {
49
+ console.log(`
50
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
51
+ 📋 bd (beads) detected but not initialized
52
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
53
+
54
+ Run the following command to initialize:
55
+
56
+ bd init
57
+
58
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
59
+ `);
44
60
  }
45
61
 
46
- // Create and start sync
47
- const sync = createTodoBdSync(pi, {
48
- autoInjectPrompt: true,
49
- syncDirection: "both",
50
- loadOnSessionStart: true,
51
- ...config,
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;
52
92
  });
53
93
 
54
- sync.start();
55
-
56
- // Start todo reminder (DISABLED by default — Phase 1 emergency containment)
57
- // Reminder spam was causing transcript growth. Enable only after proper task scoping.
58
- const reminder = createCustomReminder(
59
- pi,
60
- () => {
61
- // Get remaining todos from bd
62
- const issues = getOpenBdIssues();
63
- return issues
64
- .filter((i) => i.status !== "closed")
65
- .map((i) => ({
66
- id: i.id,
67
- title: i.title,
68
- status: i.status,
69
- }));
70
- },
71
- {
72
- autoRemind: false, // DISABLED — fix reminder spam before re-enabling
73
- minPendingTasks: 1,
74
- },
75
- );
76
- reminder.start();
77
-
78
- return sync;
94
+ console.log("[todo-bd-sync] Started - smart auto-todo enabled");
79
95
  }
80
96
 
81
97
  // Default export for pi extension loading
82
98
  export default function todoBdSyncExtension(pi: ExtensionAPI): void {
83
- registerTodoBdSync(pi, { debug: false });
99
+ registerTodoBdSync(pi);
84
100
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/token-estimation",
3
- "version": "0.10.3",
3
+ "version": "0.10.5",
4
4
  "description": "pi-harness-runtime — token-estimation",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/token-optimizer",
3
- "version": "0.10.3",
3
+ "version": "0.10.5",
4
4
  "description": "Token Budget Optimizer — maximize prompt value within token limits (RFC-0011)",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/tui",
3
- "version": "0.10.3",
3
+ "version": "0.10.5",
4
4
  "description": "pi-harness-runtime — tui",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/types",
3
- "version": "0.10.3",
3
+ "version": "0.10.5",
4
4
  "description": "Shared TypeScript types for pi-harness-runtime packages",
5
5
  "type": "module",
6
6
  "main": "./src/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/workflow-events",
3
- "version": "0.10.3",
3
+ "version": "0.10.5",
4
4
  "type": "module",
5
5
  "main": "src/index.ts",
6
6
  "exports": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/workspace-scanner",
3
- "version": "0.10.3",
3
+ "version": "0.10.5",
4
4
  "type": "module",
5
5
  "main": "src/index.ts",
6
6
  "exports": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/worktree",
3
- "version": "0.10.3",
3
+ "version": "0.10.5",
4
4
  "description": "pi-harness-runtime — worktree",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",