ultimate-pi 0.6.1 → 0.8.0

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 (117) hide show
  1. package/.agents/skills/harness-decisions/SKILL.md +20 -1
  2. package/.agents/skills/harness-eval/SKILL.md +11 -13
  3. package/.agents/skills/harness-orchestration/SKILL.md +36 -30
  4. package/.agents/skills/harness-plan/SKILL.md +13 -14
  5. package/.agents/skills/harness-sentrux-setup/SKILL.md +3 -4
  6. package/.pi/PACKAGING.md +1 -1
  7. package/.pi/agents/harness/adversary.md +20 -12
  8. package/.pi/agents/harness/evaluator.md +25 -14
  9. package/.pi/agents/harness/executor.md +27 -16
  10. package/.pi/agents/harness/incident-recorder.md +37 -0
  11. package/.pi/agents/harness/meta-optimizer.md +18 -15
  12. package/.pi/agents/harness/planner.md +27 -30
  13. package/.pi/agents/harness/tie-breaker.md +4 -2
  14. package/.pi/agents/harness/trace-librarian.md +18 -11
  15. package/.pi/agents/pi-pi/ext-expert.md +1 -1
  16. package/.pi/agents/pi-pi/keybinding-expert.md +1 -1
  17. package/.pi/agents/pi-pi/tui-expert.md +3 -3
  18. package/.pi/extensions/00-ultimate-pi-system-prompt.ts +194 -0
  19. package/.pi/extensions/budget-guard.ts +11 -3
  20. package/.pi/extensions/custom-footer.ts +8 -3
  21. package/.pi/extensions/custom-header.ts +2 -2
  22. package/.pi/extensions/debate-orchestrator.ts +11 -3
  23. package/.pi/extensions/dotenv-loader.ts +1 -1
  24. package/.pi/extensions/drift-monitor.ts +1 -1
  25. package/.pi/extensions/harness-ask-user.ts +1 -1
  26. package/.pi/extensions/harness-live-widget.ts +11 -4
  27. package/.pi/extensions/harness-run-context.ts +745 -0
  28. package/.pi/extensions/harness-telemetry.ts +1 -1
  29. package/.pi/extensions/harness-web-guard.ts +1 -1
  30. package/.pi/extensions/harness-web-tools.ts +1 -1
  31. package/.pi/extensions/lib/ask-user/dialog.ts +2 -2
  32. package/.pi/extensions/lib/ask-user/fallback.ts +1 -1
  33. package/.pi/extensions/lib/ask-user/render.ts +3 -3
  34. package/.pi/extensions/lib/harness-subagents/agent-loader.ts +1 -1
  35. package/.pi/extensions/lib/harness-subagents/agent-parser.ts +1 -1
  36. package/.pi/extensions/lib/harness-subagents/blackboard-tool.ts +1 -1
  37. package/.pi/extensions/lib/harness-subagents/harness-subagent-policy.ts +134 -0
  38. package/.pi/extensions/lib/harness-subagents/vendored/agent-manager.ts +2 -2
  39. package/.pi/extensions/lib/harness-subagents/vendored/agent-runner.ts +9 -5
  40. package/.pi/extensions/lib/harness-subagents/vendored/context.ts +1 -1
  41. package/.pi/extensions/lib/harness-subagents/vendored/env.ts +1 -1
  42. package/.pi/extensions/lib/harness-subagents/vendored/index.ts +2 -2
  43. package/.pi/extensions/lib/harness-subagents/vendored/output-file.ts +1 -1
  44. package/.pi/extensions/lib/harness-subagents/vendored/schedule.ts +1 -1
  45. package/.pi/extensions/lib/harness-subagents/vendored/settings.ts +1 -1
  46. package/.pi/extensions/lib/harness-subagents/vendored/skill-loader.ts +1 -1
  47. package/.pi/extensions/lib/harness-subagents/vendored/types.ts +2 -2
  48. package/.pi/extensions/lib/harness-subagents/vendored/ui/agent-widget.ts +1 -1
  49. package/.pi/extensions/lib/harness-subagents/vendored/ui/conversation-viewer.ts +2 -2
  50. package/.pi/extensions/lib/harness-subagents/vendored/ui/schedule-menu.ts +1 -1
  51. package/.pi/extensions/observation-bus.ts +8 -10
  52. package/.pi/extensions/pi-model-router-harness.ts +1 -1
  53. package/.pi/extensions/policy-gate.ts +136 -84
  54. package/.pi/extensions/provider-payload-sanitize.ts +1 -1
  55. package/.pi/extensions/review-integrity.ts +76 -22
  56. package/.pi/extensions/sentrux-rules-sync.ts +1 -1
  57. package/.pi/extensions/soundboard.ts +1 -1
  58. package/.pi/extensions/test-diff-integrity.ts +1 -1
  59. package/.pi/extensions/trace-recorder.ts +81 -21
  60. package/.pi/extensions/ultimate-pi-vcc.ts +1 -1
  61. package/.pi/harness/README.md +2 -0
  62. package/.pi/harness/agents.manifest.json +17 -13
  63. package/.pi/harness/docs/adrs/0009-sentrux-rules-lifecycle.md +1 -1
  64. package/.pi/harness/docs/adrs/0031-harness-run-context.md +41 -0
  65. package/.pi/harness/docs/adrs/0032-harness-command-orchestration.md +37 -0
  66. package/.pi/harness/docs/adrs/README.md +2 -0
  67. package/.pi/harness/evals/smoke/run-context.fixture.json +17 -0
  68. package/.pi/harness/specs/harness-run-context.schema.json +80 -0
  69. package/.pi/harness/specs/harness-spawn-context.schema.json +65 -0
  70. package/.pi/lib/harness-agent-output.ts +41 -0
  71. package/.pi/lib/harness-run-context.ts +1139 -0
  72. package/.pi/lib/harness-ui-state.ts +12 -1
  73. package/.pi/prompts/harness-abort.md +9 -6
  74. package/.pi/prompts/harness-auto.md +36 -61
  75. package/.pi/prompts/harness-critic.md +17 -32
  76. package/.pi/prompts/harness-eval.md +22 -30
  77. package/.pi/prompts/harness-incident.md +17 -34
  78. package/.pi/prompts/harness-plan.md +32 -36
  79. package/.pi/prompts/harness-review.md +18 -33
  80. package/.pi/prompts/harness-router-tune.md +16 -38
  81. package/.pi/prompts/harness-run.md +23 -40
  82. package/.pi/prompts/harness-setup.md +7 -27
  83. package/.pi/prompts/harness-trace.md +15 -34
  84. package/.pi/scripts/harness-generate-model-router.mjs +16 -13
  85. package/.pi/scripts/harness-verify.mjs +34 -0
  86. package/.pi/scripts/vendor-sync-pi-model-router.sh +10 -10
  87. package/CHANGELOG.md +34 -1
  88. package/README.md +31 -15
  89. package/THIRD_PARTY_NOTICES.md +1 -1
  90. package/package.json +14 -9
  91. package/vendor/pi-model-router/UPSTREAM_PIN.md +1 -1
  92. package/vendor/pi-model-router/extensions/commands.ts +2 -2
  93. package/vendor/pi-model-router/extensions/config.ts +2 -2
  94. package/vendor/pi-model-router/extensions/index.ts +1 -1
  95. package/vendor/pi-model-router/extensions/provider.ts +2 -2
  96. package/vendor/pi-model-router/extensions/routing.ts +2 -2
  97. package/vendor/pi-model-router/extensions/types.ts +1 -1
  98. package/vendor/pi-model-router/extensions/ui.ts +1 -1
  99. package/vendor/pi-model-router/package.json +4 -4
  100. package/vendor/pi-vcc/index.ts +1 -1
  101. package/vendor/pi-vcc/package.json +1 -1
  102. package/vendor/pi-vcc/src/commands/pi-vcc.ts +1 -1
  103. package/vendor/pi-vcc/src/commands/vcc-recall.ts +1 -1
  104. package/vendor/pi-vcc/src/core/content.ts +1 -1
  105. package/vendor/pi-vcc/src/core/load-messages.ts +1 -1
  106. package/vendor/pi-vcc/src/core/normalize.ts +1 -1
  107. package/vendor/pi-vcc/src/core/render-entries.ts +1 -1
  108. package/vendor/pi-vcc/src/core/report.ts +1 -1
  109. package/vendor/pi-vcc/src/core/search-entries.ts +1 -1
  110. package/vendor/pi-vcc/src/core/summarize.ts +1 -1
  111. package/vendor/pi-vcc/src/hooks/before-compact.ts +2 -2
  112. package/vendor/pi-vcc/src/tools/recall.ts +1 -1
  113. package/vendor/pi-vcc/src/types.ts +1 -1
  114. package/vendor/pi-vcc/tests/fixtures.ts +1 -1
  115. package/vendor/pi-vcc/tests/render-entries.test.ts +1 -1
  116. package/vendor/pi-vcc/tests/search-entries.test.ts +1 -1
  117. package/vendor/pi-vcc/tests/support/load-session.ts +2 -2
@@ -8,11 +8,11 @@ import {
8
8
  type Model,
9
9
  type SimpleStreamOptions,
10
10
  type Message,
11
- } from '@mariozechner/pi-ai';
11
+ } from '@earendil-works/pi-ai';
12
12
  import type {
13
13
  ExtensionAPI,
14
14
  ExtensionContext,
15
- } from '@mariozechner/pi-coding-agent';
15
+ } from '@earendil-works/pi-coding-agent';
16
16
  import type {
17
17
  RouterConfig,
18
18
  RoutingDecision,
@@ -1,5 +1,5 @@
1
- import { streamSimple, type Context, type Message } from '@mariozechner/pi-ai';
2
- import type { ExtensionContext } from '@mariozechner/pi-coding-agent';
1
+ import { streamSimple, type Context, type Message } from '@earendil-works/pi-ai';
2
+ import type { ExtensionContext } from '@earendil-works/pi-coding-agent';
3
3
  import type {
4
4
  RouterTier,
5
5
  RouterPhase,
@@ -1,4 +1,4 @@
1
- import type { ThinkingLevel } from '@mariozechner/pi-agent-core';
1
+ import type { ThinkingLevel } from '@earendil-works/pi-agent-core';
2
2
 
3
3
  export type RouterTier = 'high' | 'medium' | 'low';
4
4
  export type RouterPin = RouterTier | 'auto';
@@ -1,4 +1,4 @@
1
- import type { ExtensionContext } from '@mariozechner/pi-coding-agent';
1
+ import type { ExtensionContext } from '@earendil-works/pi-coding-agent';
2
2
  import type {
3
3
  RoutingDecision,
4
4
  RouterConfig,
@@ -35,10 +35,10 @@
35
35
  "prepublishOnly": "npm run tsc"
36
36
  },
37
37
  "peerDependencies": {
38
- "@mariozechner/pi-agent-core": "*",
39
- "@mariozechner/pi-ai": "*",
40
- "@mariozechner/pi-coding-agent": "*",
41
- "@mariozechner/pi-tui": "*",
38
+ "@earendil-works/pi-agent-core": "*",
39
+ "@earendil-works/pi-ai": "*",
40
+ "@earendil-works/pi-coding-agent": "*",
41
+ "@earendil-works/pi-tui": "*",
42
42
  "@sinclair/typebox": "*"
43
43
  },
44
44
  "devDependencies": {
@@ -1,4 +1,4 @@
1
- import type { ExtensionAPI } from "@mariozechner/pi-coding-agent";
1
+ import type { ExtensionAPI } from "@earendil-works/pi-coding-agent";
2
2
  import { registerBeforeCompactHook } from "./src/hooks/before-compact";
3
3
  import { registerPiVccCommand } from "./src/commands/pi-vcc";
4
4
  import { registerVccRecallCommand } from "./src/commands/vcc-recall";
@@ -15,7 +15,7 @@
15
15
  "url": "git+https://github.com/sting8k/pi-vcc.git"
16
16
  },
17
17
  "peerDependencies": {
18
- "@mariozechner/pi-coding-agent": "*",
18
+ "@earendil-works/pi-coding-agent": "*",
19
19
  "@sinclair/typebox": "*"
20
20
  },
21
21
  "pi": {
@@ -1,4 +1,4 @@
1
- import type { ExtensionAPI } from "@mariozechner/pi-coding-agent";
1
+ import type { ExtensionAPI } from "@earendil-works/pi-coding-agent";
2
2
  import { getLastCompactionStats, PI_VCC_COMPACT_INSTRUCTION } from "../hooks/before-compact";
3
3
 
4
4
  const formatTokens = (n: number): string => {
@@ -1,4 +1,4 @@
1
- import type { ExtensionAPI } from "@mariozechner/pi-coding-agent";
1
+ import type { ExtensionAPI } from "@earendil-works/pi-coding-agent";
2
2
  import { loadAllMessages } from "../core/load-messages";
3
3
  import { searchEntries } from "../core/search-entries";
4
4
  import { formatRecallOutput } from "../core/format-recall";
@@ -1,4 +1,4 @@
1
- import type { Message } from "@mariozechner/pi-ai";
1
+ import type { Message } from "@earendil-works/pi-ai";
2
2
 
3
3
  export const clip = (text: string, max = 200): string => {
4
4
  if (text.length <= max) return text;
@@ -1,5 +1,5 @@
1
1
  import { readFileSync } from "fs";
2
- import type { Message } from "@mariozechner/pi-ai";
2
+ import type { Message } from "@earendil-works/pi-ai";
3
3
  import { renderMessage, type RenderedEntry } from "./render-entries";
4
4
 
5
5
  export interface LoadedMessages {
@@ -1,4 +1,4 @@
1
- import type { Message } from "@mariozechner/pi-ai";
1
+ import type { Message } from "@earendil-works/pi-ai";
2
2
  import type { NormalizedBlock } from "../types";
3
3
  import { textOf } from "./content";
4
4
  import { sanitize } from "./sanitize";
@@ -1,4 +1,4 @@
1
- import type { Message } from "@mariozechner/pi-ai";
1
+ import type { Message } from "@earendil-works/pi-ai";
2
2
  import { clip, textOf } from "./content";
3
3
  import { summarizeToolArgs } from "./tool-args";
4
4
  import { extractPath } from "./tool-args";
@@ -1,4 +1,4 @@
1
- import type { Message } from "@mariozechner/pi-ai";
1
+ import type { Message } from "@earendil-works/pi-ai";
2
2
  import { buildSections } from "./build-sections";
3
3
  import { clip } from "./content";
4
4
  import { normalize } from "./normalize";
@@ -1,4 +1,4 @@
1
- import type { Message } from "@mariozechner/pi-ai";
1
+ import type { Message } from "@earendil-works/pi-ai";
2
2
  import type { RenderedEntry } from "./render-entries";
3
3
  import { textOf } from "./content";
4
4
 
@@ -1,4 +1,4 @@
1
- import type { Message } from "@mariozechner/pi-ai";
1
+ import type { Message } from "@earendil-works/pi-ai";
2
2
  import type { FileOps } from "../types";
3
3
  import { normalize } from "./normalize";
4
4
  import { filterNoise } from "./filter-noise";
@@ -1,5 +1,5 @@
1
- import type { ExtensionAPI } from "@mariozechner/pi-coding-agent";
2
- import { convertToLlm } from "@mariozechner/pi-coding-agent";
1
+ import type { ExtensionAPI } from "@earendil-works/pi-coding-agent";
2
+ import { convertToLlm } from "@earendil-works/pi-coding-agent";
3
3
  import { writeFileSync } from "fs";
4
4
  import { compile } from "../core/summarize";
5
5
  import { loadSettings, type PiVccSettings } from "../core/settings";
@@ -1,5 +1,5 @@
1
1
  import { Type } from "@sinclair/typebox";
2
- import type { ExtensionAPI } from "@mariozechner/pi-coding-agent";
2
+ import type { ExtensionAPI } from "@earendil-works/pi-coding-agent";
3
3
  import { loadAllMessages } from "../core/load-messages";
4
4
  import { searchEntries } from "../core/search-entries";
5
5
  import { formatRecallOutput } from "../core/format-recall";
@@ -1,4 +1,4 @@
1
- import type { Message } from "@mariozechner/pi-ai";
1
+ import type { Message } from "@earendil-works/pi-ai";
2
2
 
3
3
  export interface FileOps {
4
4
  readFiles?: string[];
@@ -1,4 +1,4 @@
1
- import type { Message } from "@mariozechner/pi-ai";
1
+ import type { Message } from "@earendil-works/pi-ai";
2
2
 
3
3
  const ts = Date.now();
4
4
  const assistBase = {
@@ -1,6 +1,6 @@
1
1
  import { describe, it, expect } from "bun:test";
2
2
  import { renderMessage } from "../src/core/render-entries";
3
- import type { Message } from "@mariozechner/pi-ai";
3
+ import type { Message } from "@earendil-works/pi-ai";
4
4
  import { userMsg, assistantText, assistantWithToolCall, toolResult } from "./fixtures";
5
5
 
6
6
  describe("renderMessage", () => {
@@ -1,7 +1,7 @@
1
1
  import { describe, it, expect } from "bun:test";
2
2
  import { searchEntries } from "../src/core/search-entries";
3
3
  import type { RenderedEntry } from "../src/core/render-entries";
4
- import type { Message } from "@mariozechner/pi-ai";
4
+ import type { Message } from "@earendil-works/pi-ai";
5
5
 
6
6
  const entries: RenderedEntry[] = [
7
7
  { index: 0, role: "user", summary: "Fix login bug" },
@@ -1,5 +1,5 @@
1
- import { buildSessionContext, loadEntriesFromFile } from "../../node_modules/@mariozechner/pi-coding-agent/dist/core/session-manager.js";
2
- import type { Message } from "@mariozechner/pi-ai";
1
+ import { buildSessionContext, loadEntriesFromFile } from "../../node_modules/@earendil-works/pi-coding-agent/dist/core/session-manager.js";
2
+ import type { Message } from "@earendil-works/pi-ai";
3
3
 
4
4
  export interface LoadedSession {
5
5
  messageCount: number;