ultimate-pi 0.1.7 → 0.2.2
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/.agents/skills/graphify/.graphify_version +1 -0
- package/.agents/skills/graphify/SKILL.md +1204 -0
- package/.agents/skills/wiki-autoresearch/SKILL.md +225 -97
- package/.agents/skills/wiki-autoresearch/references/program.md +28 -62
- package/.agents/skills/wiki-autoresearch/references/quality-sites.md +32 -0
- package/.env.example +5 -1
- package/.gitattributes +1 -0
- package/.github/workflows/publish-github-packages.yml +1 -1
- package/.pi/SYSTEM.md +72 -18
- package/.pi/agents/harness/adversary.md +32 -0
- package/.pi/agents/harness/evaluator.md +32 -0
- package/.pi/agents/harness/executor.md +34 -0
- package/.pi/agents/harness/meta-optimizer.md +33 -0
- package/.pi/agents/harness/planner.md +33 -0
- package/.pi/agents/harness/tie-breaker.md +35 -0
- package/.pi/agents/harness/trace-librarian.md +32 -0
- package/.pi/extensions/banner.png +0 -0
- package/.pi/extensions/budget-guard.ts +265 -0
- package/.pi/extensions/custom-footer.ts +194 -22
- package/.pi/extensions/custom-header.ts +47 -9
- package/.pi/extensions/debate-orchestrator.ts +479 -0
- package/.pi/extensions/harness-live-widget.ts +438 -0
- package/.pi/extensions/policy-gate.ts +349 -0
- package/.pi/extensions/review-integrity.ts +198 -0
- package/.pi/extensions/test-diff-integrity.ts +240 -0
- package/.pi/extensions/trace-recorder.ts +315 -0
- package/.pi/harness/README.md +23 -0
- package/.pi/harness/router/README.md +35 -0
- package/.pi/harness/router/apply-router-proposal.mjs +153 -0
- package/.pi/harness/router/propose-router-tuning.mjs +149 -0
- package/.pi/harness/specs/README.md +37 -0
- package/.pi/harness/specs/adversary-report.schema.json +53 -0
- package/.pi/harness/specs/budget-exhausted-event.schema.json +93 -0
- package/.pi/harness/specs/consensus-packet.schema.json +175 -0
- package/.pi/harness/specs/eval-verdict.schema.json +59 -0
- package/.pi/harness/specs/incident-record.schema.json +84 -0
- package/.pi/harness/specs/plan-packet.schema.json +90 -0
- package/.pi/harness/specs/round-result.schema.json +126 -0
- package/.pi/harness/specs/router-tuning-proposal.schema.json +114 -0
- package/.pi/harness/specs/run-trace.schema.json +107 -0
- package/.pi/lib/harness-ui-state.ts +311 -0
- package/.pi/mcp.json +4 -0
- package/.pi/model-router.json +93 -93
- package/.pi/prompts/graphify.md +23 -0
- package/.pi/prompts/harness-abort.md +41 -0
- package/.pi/prompts/harness-auto.md +83 -0
- package/.pi/prompts/harness-critic.md +52 -0
- package/.pi/prompts/harness-eval.md +51 -0
- package/.pi/prompts/harness-incident.md +51 -0
- package/.pi/prompts/harness-plan.md +64 -0
- package/.pi/prompts/harness-review.md +52 -0
- package/.pi/prompts/harness-router-tune.md +74 -0
- package/.pi/prompts/harness-run.md +59 -0
- package/.pi/prompts/harness-setup.md +316 -216
- package/.pi/prompts/harness-trace.md +51 -0
- package/.pi/prompts/wiki-autoresearch.md +9 -7
- package/.pi/prompts/wiki-save.md +20 -0
- package/.pi/skills/agent-router/SKILL.md +2 -4
- package/.pi/skills/ast-grep/SKILL.md +354 -0
- package/.pi/sounds/project-sounds.json +18 -24
- package/AGENTS.md +30 -0
- package/CHANGELOG.md +89 -0
- package/CONTRIBUTING.md +51 -1
- package/README.md +264 -20
- package/biome.json +8 -2
- package/lefthook.yml +3 -2
- package/node_modules/@sting8k/pi-vcc/README.md +200 -0
- package/node_modules/@sting8k/pi-vcc/index.ts +14 -0
- package/node_modules/@sting8k/pi-vcc/package.json +26 -0
- package/node_modules/@sting8k/pi-vcc/scripts/audit-sessions.ts +88 -0
- package/node_modules/@sting8k/pi-vcc/scripts/benchmark-real-sessions.ts +25 -0
- package/node_modules/@sting8k/pi-vcc/scripts/compare-before-after.ts +36 -0
- package/node_modules/@sting8k/pi-vcc/scripts/dump-branch-output.ts +20 -0
- package/node_modules/@sting8k/pi-vcc/src/commands/pi-vcc.ts +36 -0
- package/node_modules/@sting8k/pi-vcc/src/commands/vcc-recall.ts +65 -0
- package/node_modules/@sting8k/pi-vcc/src/core/brief.ts +381 -0
- package/node_modules/@sting8k/pi-vcc/src/core/build-sections.ts +79 -0
- package/node_modules/@sting8k/pi-vcc/src/core/content.ts +60 -0
- package/node_modules/@sting8k/pi-vcc/src/core/filter-noise.ts +42 -0
- package/node_modules/@sting8k/pi-vcc/src/core/format-recall.ts +27 -0
- package/node_modules/@sting8k/pi-vcc/src/core/format.ts +49 -0
- package/node_modules/@sting8k/pi-vcc/src/core/lineage.ts +26 -0
- package/node_modules/@sting8k/pi-vcc/src/core/load-messages.ts +41 -0
- package/node_modules/@sting8k/pi-vcc/src/core/normalize.ts +66 -0
- package/node_modules/@sting8k/pi-vcc/src/core/recall-scope.ts +14 -0
- package/node_modules/@sting8k/pi-vcc/src/core/render-entries.ts +55 -0
- package/node_modules/@sting8k/pi-vcc/src/core/report.ts +237 -0
- package/node_modules/@sting8k/pi-vcc/src/core/sanitize.ts +5 -0
- package/node_modules/@sting8k/pi-vcc/src/core/search-entries.ts +221 -0
- package/node_modules/@sting8k/pi-vcc/src/core/settings.ts +77 -0
- package/node_modules/@sting8k/pi-vcc/src/core/skill-collapse.ts +35 -0
- package/node_modules/@sting8k/pi-vcc/src/core/summarize.ts +157 -0
- package/node_modules/@sting8k/pi-vcc/src/core/tool-args.ts +14 -0
- package/node_modules/@sting8k/pi-vcc/src/details.ts +7 -0
- package/node_modules/@sting8k/pi-vcc/src/extract/commits.ts +69 -0
- package/node_modules/@sting8k/pi-vcc/src/extract/files.ts +80 -0
- package/node_modules/@sting8k/pi-vcc/src/extract/goals.ts +79 -0
- package/node_modules/@sting8k/pi-vcc/src/extract/preferences.ts +55 -0
- package/node_modules/@sting8k/pi-vcc/src/hooks/before-compact.ts +322 -0
- package/node_modules/@sting8k/pi-vcc/src/sections.ts +12 -0
- package/node_modules/@sting8k/pi-vcc/src/tools/recall.ts +109 -0
- package/node_modules/@sting8k/pi-vcc/src/types.ts +14 -0
- package/node_modules/@sting8k/pi-vcc/tests/before-compact-hook.test.ts +181 -0
- package/node_modules/@sting8k/pi-vcc/tests/before-compact.test.ts +140 -0
- package/node_modules/@sting8k/pi-vcc/tests/brief.test.ts +206 -0
- package/node_modules/@sting8k/pi-vcc/tests/build-sections.test.ts +59 -0
- package/node_modules/@sting8k/pi-vcc/tests/compile.test.ts +80 -0
- package/node_modules/@sting8k/pi-vcc/tests/content.test.ts +31 -0
- package/node_modules/@sting8k/pi-vcc/tests/extract-goals.test.ts +86 -0
- package/node_modules/@sting8k/pi-vcc/tests/extract-preferences.test.ts +30 -0
- package/node_modules/@sting8k/pi-vcc/tests/filter-noise.test.ts +61 -0
- package/node_modules/@sting8k/pi-vcc/tests/fixtures.ts +61 -0
- package/node_modules/@sting8k/pi-vcc/tests/format-recall.test.ts +30 -0
- package/node_modules/@sting8k/pi-vcc/tests/format.test.ts +62 -0
- package/node_modules/@sting8k/pi-vcc/tests/lineage.test.ts +33 -0
- package/node_modules/@sting8k/pi-vcc/tests/load-messages.test.ts +51 -0
- package/node_modules/@sting8k/pi-vcc/tests/normalize.test.ts +97 -0
- package/node_modules/@sting8k/pi-vcc/tests/real-sessions.test.ts +38 -0
- package/node_modules/@sting8k/pi-vcc/tests/recall-expand.test.ts +15 -0
- package/node_modules/@sting8k/pi-vcc/tests/recall-scope.test.ts +32 -0
- package/node_modules/@sting8k/pi-vcc/tests/recall-tool-scope.test.ts +67 -0
- package/node_modules/@sting8k/pi-vcc/tests/render-entries.test.ts +62 -0
- package/node_modules/@sting8k/pi-vcc/tests/report.test.ts +44 -0
- package/node_modules/@sting8k/pi-vcc/tests/sanitize.test.ts +24 -0
- package/node_modules/@sting8k/pi-vcc/tests/search-entries.test.ts +144 -0
- package/node_modules/@sting8k/pi-vcc/tests/support/load-session.ts +23 -0
- package/node_modules/@sting8k/pi-vcc/tests/support/real-sessions.ts +51 -0
- package/package.json +15 -4
- package/scripts/__pycache__/merge_graphify_corpora.cpython-314.pyc +0 -0
- package/scripts/index_youtube_urls.py +376 -0
- package/scripts/merge_graphify_corpora.py +398 -0
- package/scripts/regen_graphify_html.py +46 -0
- package/.agents/skills/defuddle/SKILL.md +0 -90
- package/.agents/skills/wiki/SKILL.md +0 -215
- package/.agents/skills/wiki/references/css-snippets.md +0 -122
- package/.agents/skills/wiki/references/frontmatter.md +0 -107
- package/.agents/skills/wiki/references/git-setup.md +0 -58
- package/.agents/skills/wiki/references/mcp-setup.md +0 -149
- package/.agents/skills/wiki/references/modes.md +0 -259
- package/.agents/skills/wiki/references/plugins.md +0 -96
- package/.agents/skills/wiki/references/rest-api.md +0 -124
- package/.agents/skills/wiki-fold/SKILL.md +0 -204
- package/.agents/skills/wiki-fold/references/fold-template.md +0 -133
- package/.agents/skills/wiki-ingest/SKILL.md +0 -288
- package/.agents/skills/wiki-lint/SKILL.md +0 -183
- package/.agents/skills/wiki-query/SKILL.md +0 -176
- package/.pi/agents/rethink.md +0 -140
- package/.pi/agents/wiki-ingest.md +0 -67
- package/.pi/agents/wiki-lint.md +0 -75
- package/.pi/internal/cursor-sdk-transcript-parser.ts +0 -59
- package/.pi/prompts/save.md +0 -16
- package/.pi/prompts/wiki.md +0 -23
- package/.pi/providers/cursor-sdk-provider.test.mjs +0 -476
- package/.pi/providers/cursor-sdk-provider.ts +0 -1085
- package/vault/AGENTS.md +0 -37
- package/vault/wiki/_templates/comparison.md +0 -39
- package/vault/wiki/_templates/concept.md +0 -40
- package/vault/wiki/_templates/decision.md +0 -21
- package/vault/wiki/_templates/entity.md +0 -32
- package/vault/wiki/_templates/flow.md +0 -14
- package/vault/wiki/_templates/module.md +0 -18
- package/vault/wiki/_templates/question.md +0 -31
- package/vault/wiki/_templates/source.md +0 -39
- package/vault/wiki/concepts/AST-Aware Code Chunking.md +0 -44
- package/vault/wiki/concepts/Build-Time Prompt Compilation.md +0 -107
- package/vault/wiki/concepts/Context Engine (AI Coding).md +0 -47
- package/vault/wiki/concepts/Context-Aware System Reminders.md +0 -61
- package/vault/wiki/concepts/Contextualized Text Embedding.md +0 -42
- package/vault/wiki/concepts/Contractor vs Employee AI Model.md +0 -55
- package/vault/wiki/concepts/Dual-Model Agent Architecture.md +0 -65
- package/vault/wiki/concepts/Late Chunking vs Early Chunking.md +0 -43
- package/vault/wiki/concepts/Majority Vote Ensembling.md +0 -68
- package/vault/wiki/concepts/Meta-Harness.md +0 -16
- package/vault/wiki/concepts/Multi-Agent AI Coding Architecture.md +0 -75
- package/vault/wiki/concepts/Prompt Enhancement.md +0 -90
- package/vault/wiki/concepts/Prompt Renderer.md +0 -89
- package/vault/wiki/concepts/Semantic Codebase Indexing.md +0 -67
- package/vault/wiki/concepts/additive-config-hierarchy.md +0 -16
- package/vault/wiki/concepts/agent-artifacts-verifiable-deliverables.md +0 -71
- package/vault/wiki/concepts/agent-browser-browser-automation.md +0 -99
- package/vault/wiki/concepts/agent-codebase-interface.md +0 -43
- package/vault/wiki/concepts/agent-harness-architecture.md +0 -67
- package/vault/wiki/concepts/agent-loop-detection-patterns.md +0 -133
- package/vault/wiki/concepts/agent-search-enforcement.md +0 -126
- package/vault/wiki/concepts/agent-skills-ecosystem.md +0 -74
- package/vault/wiki/concepts/agent-skills-pattern.md +0 -68
- package/vault/wiki/concepts/agentic-harness-context-enforcement.md +0 -91
- package/vault/wiki/concepts/agentic-harness.md +0 -34
- package/vault/wiki/concepts/agentic-orchestration-pipeline.md +0 -56
- package/vault/wiki/concepts/agentic-search-no-embeddings.md +0 -18
- package/vault/wiki/concepts/anthropic-context-engineering.md +0 -13
- package/vault/wiki/concepts/antigravity-agent-first-architecture.md +0 -61
- package/vault/wiki/concepts/ast-compression.md +0 -19
- package/vault/wiki/concepts/ast-truncation.md +0 -66
- package/vault/wiki/concepts/barrel-files.md +0 -37
- package/vault/wiki/concepts/browser-harness-agent.md +0 -41
- package/vault/wiki/concepts/browser-subagent-visual-verification.md +0 -82
- package/vault/wiki/concepts/codebase-intelligence-ecosystem-comparison.md +0 -192
- package/vault/wiki/concepts/codebase-intelligence-harness-integration.md +0 -161
- package/vault/wiki/concepts/codebase-to-context-ingestion.md +0 -46
- package/vault/wiki/concepts/codex-harness-innovations.md +0 -147
- package/vault/wiki/concepts/consensus-debate-flow.md +0 -17
- package/vault/wiki/concepts/consensus-debate.md +0 -206
- package/vault/wiki/concepts/content-addressed-spec-identity.md +0 -166
- package/vault/wiki/concepts/context-anxiety.md +0 -57
- package/vault/wiki/concepts/context-compression-techniques.md +0 -19
- package/vault/wiki/concepts/context-continuity.md +0 -22
- package/vault/wiki/concepts/context-drift-in-agents.md +0 -106
- package/vault/wiki/concepts/context-engineering.md +0 -62
- package/vault/wiki/concepts/context-folding.md +0 -67
- package/vault/wiki/concepts/context-mode.md +0 -38
- package/vault/wiki/concepts/cursor-harness-innovations.md +0 -107
- package/vault/wiki/concepts/deterministic-session-compaction.md +0 -79
- package/vault/wiki/concepts/drift-detection-unified.md +0 -296
- package/vault/wiki/concepts/execution-feedback-loop.md +0 -46
- package/vault/wiki/concepts/feedforward-feedback-harness.md +0 -60
- package/vault/wiki/concepts/five-root-cause-metrics-sentrux.md +0 -40
- package/vault/wiki/concepts/fork-safe-spec-storage.md +0 -89
- package/vault/wiki/concepts/fts5-sandbox.md +0 -19
- package/vault/wiki/concepts/fuzzy-edit-matching.md +0 -71
- package/vault/wiki/concepts/gemini-cli-architecture.md +0 -104
- package/vault/wiki/concepts/generator-evaluator-architecture.md +0 -64
- package/vault/wiki/concepts/guardian-agent-pattern.md +0 -67
- package/vault/wiki/concepts/harness-configuration-layers.md +0 -89
- package/vault/wiki/concepts/harness-control-frameworks.md +0 -155
- package/vault/wiki/concepts/harness-engineering-first-principles.md +0 -90
- package/vault/wiki/concepts/harness-h-formalism.md +0 -53
- package/vault/wiki/concepts/hybrid-code-search.md +0 -61
- package/vault/wiki/concepts/inline-post-edit-validation.md +0 -112
- package/vault/wiki/concepts/legendary-engineering-patterns-harness.md +0 -110
- package/vault/wiki/concepts/lifecycle-hooks.md +0 -94
- package/vault/wiki/concepts/mcp-tool-routing.md +0 -102
- package/vault/wiki/concepts/memory-system-of-record-vs-ephemeral-cache.md +0 -47
- package/vault/wiki/concepts/meta-agent-context-pruning.md +0 -151
- package/vault/wiki/concepts/model-adaptive-harness.md +0 -122
- package/vault/wiki/concepts/model-routing-agents.md +0 -101
- package/vault/wiki/concepts/monorepo-architecture.md +0 -45
- package/vault/wiki/concepts/multi-agent-specialization.md +0 -61
- package/vault/wiki/concepts/permission-subsystem.md +0 -16
- package/vault/wiki/concepts/pi-messenger-analysis.md +0 -243
- package/vault/wiki/concepts/pi-vscode-extension-landscape.md +0 -37
- package/vault/wiki/concepts/policy-engine-pattern.md +0 -78
- package/vault/wiki/concepts/progressive-disclosure-agents.md +0 -53
- package/vault/wiki/concepts/progressive-skill-disclosure.md +0 -17
- package/vault/wiki/concepts/provider-native-prompting.md +0 -203
- package/vault/wiki/concepts/quality-signal-sentrux.md +0 -37
- package/vault/wiki/concepts/repo-map-ranking.md +0 -42
- package/vault/wiki/concepts/result-monad-error-handling.md +0 -47
- package/vault/wiki/concepts/safety-defense-in-depth.md +0 -83
- package/vault/wiki/concepts/sandbox-os-enforcement.md +0 -18
- package/vault/wiki/concepts/selective-debate-routing.md +0 -70
- package/vault/wiki/concepts/self-evolving-harness.md +0 -60
- package/vault/wiki/concepts/sentrux-mcp-integration.md +0 -36
- package/vault/wiki/concepts/sentrux-rules-engine.md +0 -49
- package/vault/wiki/concepts/shell-pattern-compression.md +0 -24
- package/vault/wiki/concepts/skill-first-architecture.md +0 -166
- package/vault/wiki/concepts/structured-compaction.md +0 -78
- package/vault/wiki/concepts/subagent-orchestration.md +0 -17
- package/vault/wiki/concepts/subagent-worktree-isolation.md +0 -68
- package/vault/wiki/concepts/superpowers-methodology.md +0 -78
- package/vault/wiki/concepts/think-in-code.md +0 -73
- package/vault/wiki/concepts/ts-execution-layer.md +0 -100
- package/vault/wiki/concepts/typescript-strict-mode.md +0 -37
- package/vault/wiki/concepts/vcc-conversation-compaction-for-pi.md +0 -53
- package/vault/wiki/concepts/verification-drift-detection.md +0 -19
- package/vault/wiki/consensus/consensus-records.md +0 -58
- package/vault/wiki/decisions/2026-04-30-pi-lean-ctx-native.md +0 -122
- package/vault/wiki/decisions/2026-05-07-replace-lean-ctx-with-context-mode.md +0 -59
- package/vault/wiki/decisions/adr-008.md +0 -40
- package/vault/wiki/decisions/adr-009.md +0 -46
- package/vault/wiki/decisions/adr-010.md +0 -55
- package/vault/wiki/decisions/adr-011.md +0 -165
- package/vault/wiki/decisions/adr-012.md +0 -102
- package/vault/wiki/decisions/adr-013.md +0 -59
- package/vault/wiki/decisions/adr-014.md +0 -73
- package/vault/wiki/decisions/adr-015.md +0 -81
- package/vault/wiki/decisions/adr-016.md +0 -91
- package/vault/wiki/decisions/adr-017.md +0 -79
- package/vault/wiki/decisions/adr-018.md +0 -100
- package/vault/wiki/decisions/adr-019.md +0 -75
- package/vault/wiki/decisions/adr-020.md +0 -106
- package/vault/wiki/decisions/adr-021.md +0 -86
- package/vault/wiki/decisions/adr-022.md +0 -113
- package/vault/wiki/decisions/adr-023.md +0 -113
- package/vault/wiki/decisions/adr-024.md +0 -73
- package/vault/wiki/decisions/adr-025.md +0 -130
- package/vault/wiki/decisions/adr-026.md +0 -56
- package/vault/wiki/decisions/adr-027.md +0 -94
- package/vault/wiki/decisions/colocate-wiki.md +0 -34
- package/vault/wiki/entities/Anders Hejlsberg.md +0 -29
- package/vault/wiki/entities/Anthropic.md +0 -17
- package/vault/wiki/entities/Augment Code.md +0 -49
- package/vault/wiki/entities/Bjarne Stroustrup.md +0 -26
- package/vault/wiki/entities/Bolt.new (StackBlitz).md +0 -39
- package/vault/wiki/entities/Boris Cherny.md +0 -11
- package/vault/wiki/entities/Claude Code.md +0 -19
- package/vault/wiki/entities/Dennis Ritchie.md +0 -26
- package/vault/wiki/entities/Emergent Labs.md +0 -32
- package/vault/wiki/entities/Google Cloud.md +0 -16
- package/vault/wiki/entities/Guido van Rossum.md +0 -28
- package/vault/wiki/entities/Ken Thompson.md +0 -28
- package/vault/wiki/entities/Lee et al.md +0 -16
- package/vault/wiki/entities/Linus Torvalds.md +0 -28
- package/vault/wiki/entities/Lovable (company).md +0 -40
- package/vault/wiki/entities/Martin Fowler.md +0 -16
- package/vault/wiki/entities/Meng et al.md +0 -16
- package/vault/wiki/entities/OpenAI.md +0 -16
- package/vault/wiki/entities/Rocket.new.md +0 -38
- package/vault/wiki/entities/VILA-Lab.md +0 -15
- package/vault/wiki/entities/autodev-codebase.md +0 -18
- package/vault/wiki/entities/ck-tool.md +0 -59
- package/vault/wiki/entities/codesearch.md +0 -18
- package/vault/wiki/entities/disler-indydevdan.md +0 -33
- package/vault/wiki/entities/gsd-get-shit-done.md +0 -56
- package/vault/wiki/entities/javascript-runtimes.md +0 -48
- package/vault/wiki/entities/jesse-vincent.md +0 -38
- package/vault/wiki/entities/lean-ctx.md +0 -32
- package/vault/wiki/entities/opendev.md +0 -41
- package/vault/wiki/entities/ops-codegraph-tool.md +0 -18
- package/vault/wiki/entities/pi-coding-agent.md +0 -53
- package/vault/wiki/entities/sentrux.md +0 -54
- package/vault/wiki/entities/vgrep-tool.md +0 -57
- package/vault/wiki/entities/vitest.md +0 -41
- package/vault/wiki/flows/harness-wiki-pipeline.md +0 -204
- package/vault/wiki/hot.md +0 -932
- package/vault/wiki/index.md +0 -437
- package/vault/wiki/log.md +0 -422
- package/vault/wiki/meta/dashboard.md +0 -30
- package/vault/wiki/meta/lint-report-2026-04-30.md +0 -86
- package/vault/wiki/meta/lint-report-2026-05-02.md +0 -251
- package/vault/wiki/meta/overview.canvas +0 -43
- package/vault/wiki/modules/adversarial-verification.md +0 -57
- package/vault/wiki/modules/automated-observability.md +0 -54
- package/vault/wiki/modules/bench.md +0 -20
- package/vault/wiki/modules/extensions.md +0 -23
- package/vault/wiki/modules/grounding-checkpoints.md +0 -62
- package/vault/wiki/modules/harness-implementation-plan.md +0 -345
- package/vault/wiki/modules/harness-wiki-skill-mapping.md +0 -135
- package/vault/wiki/modules/harness.md +0 -86
- package/vault/wiki/modules/persistent-memory.md +0 -85
- package/vault/wiki/modules/schema-orchestration.md +0 -68
- package/vault/wiki/modules/skills.md +0 -27
- package/vault/wiki/modules/spec-hardening.md +0 -58
- package/vault/wiki/modules/structured-planning.md +0 -53
- package/vault/wiki/modules/think-in-code-enforcement.md +0 -153
- package/vault/wiki/modules/wiki-query-interface.md +0 -64
- package/vault/wiki/overview.md +0 -51
- package/vault/wiki/questions/Research-pi-vs-claude-code-agentic-orchestration-pipeline.md +0 -87
- package/vault/wiki/questions/Research-sentrux-dev.md +0 -123
- package/vault/wiki/questions/Research-superpowers-skill-for-agentic-coding-agents.md +0 -164
- package/vault/wiki/questions/Research: Augment Code Context Engine.md +0 -244
- package/vault/wiki/questions/Research: Automating Software Engineering - Lovable, Bolt, Emergent, Rocket.md +0 -112
- package/vault/wiki/questions/Research: Claude Code State-of-the-Art Harness Improvements.md +0 -209
- package/vault/wiki/questions/Research: Codex State-of-the-Art Harness Improvements.md +0 -99
- package/vault/wiki/questions/Research: Engineering Workflows of Legendary Programmers and AI Harness Mapping.md +0 -107
- package/vault/wiki/questions/Research: Fallow Codebase Intelligence Harness Integration.md +0 -72
- package/vault/wiki/questions/Research: Gemini CLI SOTA Harness Integration.md +0 -166
- package/vault/wiki/questions/Research: GitHub Issues as Harness Spec Storage.md +0 -188
- package/vault/wiki/questions/Research: Google Antigravity Harness Integration.md +0 -120
- package/vault/wiki/questions/Research: Meta-Agent Context Drift Detection.md +0 -236
- package/vault/wiki/questions/Research: Model-Adaptive Agent Harness Design.md +0 -95
- package/vault/wiki/questions/Research: Model-Specific Prompting Guides.md +0 -165
- package/vault/wiki/questions/Research: Prompt Renderer for Multi-Model Agent Harness.md +0 -216
- package/vault/wiki/questions/Research: Skill-First Harness Architecture.md +0 -91
- package/vault/wiki/questions/Research: TypeScript Best Practices and Codebase Structure.md +0 -88
- package/vault/wiki/questions/Research: TypeScript Execution Layer for Agent Tool Calling.md +0 -81
- package/vault/wiki/questions/Research: claude-mem over Obsidian for Harness Layer.md +0 -71
- package/vault/wiki/questions/Research: claude-mem over obsidian wiki as the knowledge base for our agentic harness pipeline. think from first principles. does this replace or complement our current setup? no hard feelings about previous decisions. gimme accurate points.md +0 -80
- package/vault/wiki/questions/Research: context-mode vs lean-ctx.md +0 -72
- package/vault/wiki/questions/Research: cursor.sh Harness Innovations.md +0 -92
- package/vault/wiki/questions/Research: executor.sh Harness Integration.md +0 -170
- package/vault/wiki/questions/Research: how GSD fits into our coding harness setup.md +0 -97
- package/vault/wiki/questions/Research: how claude-mem fits into our workflow. and whether it should replace obsidian in the codebase. no hard feelings about previous actions, rethink from first principles always.md +0 -80
- package/vault/wiki/questions/Research: pi-vcc.md +0 -113
- package/vault/wiki/questions/Research: semantic code search tools.md +0 -69
- package/vault/wiki/questions/Research: vcc extension for pi coding agent.md +0 -73
- package/vault/wiki/questions/how-to-enable-semantic-code-search-now.md +0 -111
- package/vault/wiki/questions/mvp-implementation-blueprint.md +0 -552
- package/vault/wiki/questions/research-agent-first-codebase-exploration.md +0 -199
- package/vault/wiki/questions/research-agentic-coding-harness-latest-papers.md +0 -142
- package/vault/wiki/questions/research-gitingest-gitreverse-integration.md +0 -100
- package/vault/wiki/questions/research-wozcode-token-reduction.md +0 -67
- package/vault/wiki/questions/resolved-context-pruning-inplace-vs-restart.md +0 -95
- package/vault/wiki/questions/resolved-context-window-economics.md +0 -167
- package/vault/wiki/questions/resolved-imad-debate-gating-transfer.md +0 -126
- package/vault/wiki/questions/resolved-mcp-tool-preference.md +0 -112
- package/vault/wiki/questions/resolved-small-model-meta-agents.md +0 -107
- package/vault/wiki/questions/resolved-treesitter-dynamic-languages.md +0 -95
- package/vault/wiki/sources/Auggie Context MCP Server.md +0 -63
- package/vault/wiki/sources/Augment Code Codacy AI Giants.md +0 -61
- package/vault/wiki/sources/Augment Code MCP SiliconAngle.md +0 -49
- package/vault/wiki/sources/Augment Code WorkOS ERC 2025.md +0 -55
- package/vault/wiki/sources/Augment Context Engine Official.md +0 -71
- package/vault/wiki/sources/Augment SWE-bench Agent GitHub.md +0 -74
- package/vault/wiki/sources/Augment SWE-bench Pro Blog.md +0 -58
- package/vault/wiki/sources/Source: AgentBus Jinja2 Prompt Pipelines.md +0 -75
- package/vault/wiki/sources/Source: Arxiv /342/200/224 Don't Break the Cache.md" +0 -85
- package/vault/wiki/sources/Source: Augment - Harness Engineering for AI Coding Agents.md +0 -58
- package/vault/wiki/sources/Source: Blake Crosley Agent Architecture Guide.md +0 -100
- package/vault/wiki/sources/Source: Bolt.new Architecture & Case Study.md +0 -75
- package/vault/wiki/sources/Source: Build-Time Prompt Compilation Architecture.md +0 -107
- package/vault/wiki/sources/Source: Claude API Agent Skills Overview.md +0 -70
- package/vault/wiki/sources/Source: Gemini CLI Changelogs.md +0 -88
- package/vault/wiki/sources/Source: Google Blog - Gemini CLI Announcement.md +0 -57
- package/vault/wiki/sources/Source: Google Gemini CLI Architecture Docs.md +0 -53
- package/vault/wiki/sources/Source: LangChain - Anatomy of Agent Harness.md +0 -65
- package/vault/wiki/sources/Source: Lovable Architecture & Clone Analysis.md +0 -83
- package/vault/wiki/sources/Source: Martin Fowler - Harness Engineering.md +0 -70
- package/vault/wiki/sources/Source: OpenAI Harness Engineering Five Principles.md +0 -58
- package/vault/wiki/sources/Source: OpenAI Harness Engineering /342/200/224 0 Lines of Human Code.md" +0 -101
- package/vault/wiki/sources/Source: OpenDev /342/200/224 Building AI Coding Agents for the Terminal.md" +0 -100
- package/vault/wiki/sources/Source: Render AI Coding Agents Benchmark 2025.md +0 -53
- package/vault/wiki/sources/Source: Rocket.new /342/200/224 Vibe Solutioning Platform.md" +0 -70
- package/vault/wiki/sources/Source: SwirlAI Agent Skills Progressive Disclosure.md +0 -71
- package/vault/wiki/sources/Source: TianPan Prompt Caching Architecture.md +0 -89
- package/vault/wiki/sources/Source: Vercel Labs agent-browser.md +0 -155
- package/vault/wiki/sources/Source: browser-harness CDP Harness.md +0 -126
- package/vault/wiki/sources/agent-drift-academic-paper.md +0 -79
- package/vault/wiki/sources/aider-repomap-tree-sitter.md +0 -42
- package/vault/wiki/sources/anthropic-compaction-api.md +0 -58
- package/vault/wiki/sources/anthropic-effective-harnesses.md +0 -42
- package/vault/wiki/sources/anthropic-prompt-best-practices.md +0 -100
- package/vault/wiki/sources/anthropic2026-harness-design.md +0 -63
- package/vault/wiki/sources/barrel-files-tkdodo.md +0 -38
- package/vault/wiki/sources/birth-of-unix-kernighan-interview.md +0 -57
- package/vault/wiki/sources/bockeler2026-harness-engineering.md +0 -69
- package/vault/wiki/sources/cast-code-chunking-paper.md +0 -50
- package/vault/wiki/sources/ck-semantic-search.md +0 -78
- package/vault/wiki/sources/claude-code-architecture-karaxai-2026.md +0 -71
- package/vault/wiki/sources/claude-code-architecture-qubytes-2026.md +0 -50
- package/vault/wiki/sources/claude-code-architecture-vila-lab-2026.md +0 -64
- package/vault/wiki/sources/claude-code-security-architecture-penligent-2026.md +0 -70
- package/vault/wiki/sources/claude-context-editing-docs.md +0 -13
- package/vault/wiki/sources/cloudflare-codemode.md +0 -63
- package/vault/wiki/sources/code-chunk-library-supermemory.md +0 -63
- package/vault/wiki/sources/codeact-apple-2024.md +0 -62
- package/vault/wiki/sources/codex-dsc-rfc-8573.md +0 -41
- package/vault/wiki/sources/codex-open-source-agent-2026.md +0 -110
- package/vault/wiki/sources/coir-code-retrieval-benchmark.md +0 -51
- package/vault/wiki/sources/colinmcnamara-context-optimization-codemode.md +0 -48
- package/vault/wiki/sources/context-folding-paper.md +0 -61
- package/vault/wiki/sources/context-mode-website.md +0 -63
- package/vault/wiki/sources/cursor-agent-best-practices-2026.md +0 -62
- package/vault/wiki/sources/cursor-fork-29b-2025.md +0 -50
- package/vault/wiki/sources/cursor-harness-april-2026.md +0 -76
- package/vault/wiki/sources/cursor-instant-apply-2024.md +0 -45
- package/vault/wiki/sources/cursor-shadow-workspace-2024.md +0 -52
- package/vault/wiki/sources/cursor-shipped-coding-agent-2026.md +0 -53
- package/vault/wiki/sources/cursor-vs-antigravity-2026.md +0 -51
- package/vault/wiki/sources/disler-pi-vs-claude-code.md +0 -69
- package/vault/wiki/sources/distill-deterministic-context-compression.md +0 -53
- package/vault/wiki/sources/embedding-models-benchmark-supermemory-2025.md +0 -48
- package/vault/wiki/sources/executor-rhyssullivan.md +0 -122
- package/vault/wiki/sources/fallow-rs-codebase-intelligence.md +0 -125
- package/vault/wiki/sources/fan2025-imad.md +0 -60
- package/vault/wiki/sources/forgecode-gpt5-agent-improvements.md +0 -63
- package/vault/wiki/sources/gemini-3-prompting-guide.md +0 -78
- package/vault/wiki/sources/gh-cli-sub-issue-rfc.md +0 -50
- package/vault/wiki/sources/gh-sub-issue-extension.md +0 -72
- package/vault/wiki/sources/github-fork-issues-discussion.md +0 -44
- package/vault/wiki/sources/github-issue-dependencies-docs.md +0 -49
- package/vault/wiki/sources/github-sub-issues-docs.md +0 -51
- package/vault/wiki/sources/gitingest.md +0 -91
- package/vault/wiki/sources/gitreverse.md +0 -63
- package/vault/wiki/sources/google-antigravity-official-blog.md +0 -47
- package/vault/wiki/sources/google-antigravity-wikipedia.md +0 -53
- package/vault/wiki/sources/gsd-codecentric-deep-dive.md +0 -57
- package/vault/wiki/sources/gsd-github-repo.md +0 -51
- package/vault/wiki/sources/gsd-hn-discussion.md +0 -59
- package/vault/wiki/sources/guido-python-design-philosophy.md +0 -56
- package/vault/wiki/sources/hejlsberg-7-learnings.md +0 -48
- package/vault/wiki/sources/ironclaw-drift-monitor.md +0 -80
- package/vault/wiki/sources/langsight-loop-detection.md +0 -80
- package/vault/wiki/sources/leanctx-website.md +0 -69
- package/vault/wiki/sources/lee2026-meta-harness.md +0 -59
- package/vault/wiki/sources/linux-kernel-coding-workflow.md +0 -50
- package/vault/wiki/sources/lou2026-autoharness.md +0 -53
- package/vault/wiki/sources/martin-fowler-harness-engineering.md +0 -73
- package/vault/wiki/sources/mcp-architecture-docs.md +0 -13
- package/vault/wiki/sources/meng2026-agent-harness-survey.md +0 -79
- package/vault/wiki/sources/mindstudio-four-agent-types.md +0 -68
- package/vault/wiki/sources/ms-chat-history-management.md +0 -13
- package/vault/wiki/sources/openai-prompt-guidance.md +0 -104
- package/vault/wiki/sources/openclaw-session-pruning.md +0 -13
- package/vault/wiki/sources/opencode-dcp.md +0 -13
- package/vault/wiki/sources/opendev-arxiv-2603.05344v1.md +0 -79
- package/vault/wiki/sources/openhands-platform.md +0 -39
- package/vault/wiki/sources/oss-guide-codebase-exploration.md +0 -53
- package/vault/wiki/sources/pi-compaction-extensions-ecosystem.md +0 -102
- package/vault/wiki/sources/pi-context-prune-github-repo.md +0 -38
- package/vault/wiki/sources/pi-mono-compaction-docs.md +0 -38
- package/vault/wiki/sources/pi-omni-compact-github-repo.md +0 -50
- package/vault/wiki/sources/pi-rtk-optimizer-github-repo.md +0 -45
- package/vault/wiki/sources/pi-vcc-github-repo.md +0 -69
- package/vault/wiki/sources/pi-vscode-marketplace.md +0 -41
- package/vault/wiki/sources/pi-vscode-model-provider-marketplace.md +0 -39
- package/vault/wiki/sources/py-tree-sitter.md +0 -13
- package/vault/wiki/sources/sentrux-dev-landing.md +0 -40
- package/vault/wiki/sources/sentrux-docs-pro-architecture.md +0 -75
- package/vault/wiki/sources/sentrux-docs-quality-signal.md +0 -46
- package/vault/wiki/sources/sentrux-docs-root-cause-metrics.md +0 -57
- package/vault/wiki/sources/sentrux-docs-rules-engine.md +0 -58
- package/vault/wiki/sources/sentrux-github-repo.md +0 -56
- package/vault/wiki/sources/superpowers-github-repo.md +0 -56
- package/vault/wiki/sources/superpowers-release-blog.md +0 -54
- package/vault/wiki/sources/superpowers-termdock-analysis.md +0 -45
- package/vault/wiki/sources/swe-agent-aci.md +0 -42
- package/vault/wiki/sources/swe-bench.md +0 -45
- package/vault/wiki/sources/swe-pruner-context-pruning.md +0 -13
- package/vault/wiki/sources/think-in-code-blog.md +0 -48
- package/vault/wiki/sources/tree-sitter-docs.md +0 -13
- package/vault/wiki/sources/ts-best-practices-2025-devto.md +0 -42
- package/vault/wiki/sources/ts-folder-structure-mingyang.md +0 -58
- package/vault/wiki/sources/ts-monorepo-koerselman.md +0 -44
- package/vault/wiki/sources/ts-result-error-handling-kkalamarski.md +0 -52
- package/vault/wiki/sources/ts-runtimes-comparison-betterstack.md +0 -42
- package/vault/wiki/sources/ts-strict-mode-rishikc.md +0 -43
- package/vault/wiki/sources/unix-philosophy.md +0 -48
- package/vault/wiki/sources/vectara-chunking-vs-embedding-naacl2025.md +0 -39
- package/vault/wiki/sources/vectara-guardian-agents.md +0 -79
- package/vault/wiki/sources/vgrep-semantic-search.md +0 -76
- package/vault/wiki/sources/vitest-official.md +0 -41
- package/vault/wiki/sources/vscode-pi-community-extension.md +0 -40
- package/vault/wiki/sources/wozcode.md +0 -79
|
@@ -0,0 +1,311 @@
|
|
|
1
|
+
import type { ExtensionContext } from "@mariozechner/pi-coding-agent";
|
|
2
|
+
|
|
3
|
+
export type HarnessPhase =
|
|
4
|
+
| "plan"
|
|
5
|
+
| "execute"
|
|
6
|
+
| "evaluate"
|
|
7
|
+
| "adversary"
|
|
8
|
+
| "merge";
|
|
9
|
+
export type HarnessPolicyDecision =
|
|
10
|
+
| "pass"
|
|
11
|
+
| "conditional_pass"
|
|
12
|
+
| "block"
|
|
13
|
+
| "human_required"
|
|
14
|
+
| null;
|
|
15
|
+
export type HarnessFlowSubstate =
|
|
16
|
+
| "idle"
|
|
17
|
+
| "severity-policy"
|
|
18
|
+
| "commit-pr"
|
|
19
|
+
| "blocked"
|
|
20
|
+
| "human-required";
|
|
21
|
+
|
|
22
|
+
interface CustomEntryLike {
|
|
23
|
+
type?: string;
|
|
24
|
+
customType?: string;
|
|
25
|
+
data?: unknown;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
type DebateStateLike = {
|
|
29
|
+
round_count?: number;
|
|
30
|
+
budget_used?: number;
|
|
31
|
+
max_rounds?: number;
|
|
32
|
+
debate_global_cap?: number;
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
type PolicyStateLike = {
|
|
36
|
+
phase?: HarnessPhase;
|
|
37
|
+
approvedPlan?: boolean;
|
|
38
|
+
planId?: string | null;
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
type ReviewIntegrityStateLike = {
|
|
42
|
+
violationActive?: boolean;
|
|
43
|
+
executorSessionId?: string | null;
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
type ConsensusLike = {
|
|
47
|
+
policy_decision?: HarnessPolicyDecision;
|
|
48
|
+
severity_scores?: {
|
|
49
|
+
correctness?: number;
|
|
50
|
+
security?: number;
|
|
51
|
+
architecture?: number;
|
|
52
|
+
test_integrity?: number;
|
|
53
|
+
};
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
type BudgetExhaustedLike = {
|
|
57
|
+
exhaustion_reason?: string;
|
|
58
|
+
budget_used?: number;
|
|
59
|
+
caps?: { debate_global_cap?: number };
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
type TestIntegrityLike = {
|
|
63
|
+
severity?: "medium" | "high";
|
|
64
|
+
reasons?: string[];
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
type TraceLike = {
|
|
68
|
+
run_id?: string;
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
type RoundLike = {
|
|
72
|
+
round_index?: number;
|
|
73
|
+
consensus_delta?: number;
|
|
74
|
+
};
|
|
75
|
+
|
|
76
|
+
export interface HarnessUiState {
|
|
77
|
+
phase: HarnessPhase;
|
|
78
|
+
flowSubstate: HarnessFlowSubstate;
|
|
79
|
+
planApproved: boolean;
|
|
80
|
+
planId: string | null;
|
|
81
|
+
reviewIsolationOk: boolean;
|
|
82
|
+
reviewViolationActive: boolean;
|
|
83
|
+
budgetExhausted: boolean;
|
|
84
|
+
budgetReason: string | null;
|
|
85
|
+
testIntegritySeverity: "none" | "medium" | "high";
|
|
86
|
+
testIntegrityReasons: string[];
|
|
87
|
+
debateRound: number;
|
|
88
|
+
debateMaxRounds: number | null;
|
|
89
|
+
debateBudgetUsed: number | null;
|
|
90
|
+
debateBudgetCap: number | null;
|
|
91
|
+
policyDecision: HarnessPolicyDecision;
|
|
92
|
+
consensusDelta: number | null;
|
|
93
|
+
severity: {
|
|
94
|
+
correctness: number | null;
|
|
95
|
+
security: number | null;
|
|
96
|
+
architecture: number | null;
|
|
97
|
+
testIntegrity: number | null;
|
|
98
|
+
};
|
|
99
|
+
traceRunId: string | null;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
const DEFAULT_STATE: HarnessUiState = {
|
|
103
|
+
phase: "plan",
|
|
104
|
+
flowSubstate: "idle",
|
|
105
|
+
planApproved: false,
|
|
106
|
+
planId: null,
|
|
107
|
+
reviewIsolationOk: true,
|
|
108
|
+
reviewViolationActive: false,
|
|
109
|
+
budgetExhausted: false,
|
|
110
|
+
budgetReason: null,
|
|
111
|
+
testIntegritySeverity: "none",
|
|
112
|
+
testIntegrityReasons: [],
|
|
113
|
+
debateRound: 0,
|
|
114
|
+
debateMaxRounds: null,
|
|
115
|
+
debateBudgetUsed: null,
|
|
116
|
+
debateBudgetCap: null,
|
|
117
|
+
policyDecision: null,
|
|
118
|
+
consensusDelta: null,
|
|
119
|
+
severity: {
|
|
120
|
+
correctness: null,
|
|
121
|
+
security: null,
|
|
122
|
+
architecture: null,
|
|
123
|
+
testIntegrity: null,
|
|
124
|
+
},
|
|
125
|
+
traceRunId: null,
|
|
126
|
+
};
|
|
127
|
+
|
|
128
|
+
const RELEVANT_CUSTOM_TYPES = new Set([
|
|
129
|
+
"harness-policy-state",
|
|
130
|
+
"harness-debate-state",
|
|
131
|
+
"harness-consensus-packet",
|
|
132
|
+
"harness-round-result",
|
|
133
|
+
"harness-budget-exhausted",
|
|
134
|
+
"harness-review-integrity",
|
|
135
|
+
"harness-test-integrity-flag",
|
|
136
|
+
"harness-run-trace",
|
|
137
|
+
"harness-trace-state",
|
|
138
|
+
]);
|
|
139
|
+
|
|
140
|
+
function asNumber(value: unknown): number | null {
|
|
141
|
+
const parsed = Number(value);
|
|
142
|
+
if (!Number.isFinite(parsed)) return null;
|
|
143
|
+
return parsed;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
function pickLatestCustomEntries(entries: unknown[]): Map<string, unknown> {
|
|
147
|
+
const latest = new Map<string, unknown>();
|
|
148
|
+
for (let i = entries.length - 1; i >= 0; i--) {
|
|
149
|
+
const entry = entries[i] as CustomEntryLike;
|
|
150
|
+
if (entry.type !== "custom") continue;
|
|
151
|
+
if (!entry.customType || !RELEVANT_CUSTOM_TYPES.has(entry.customType))
|
|
152
|
+
continue;
|
|
153
|
+
if (!latest.has(entry.customType)) {
|
|
154
|
+
latest.set(entry.customType, entry.data);
|
|
155
|
+
}
|
|
156
|
+
if (latest.size === RELEVANT_CUSTOM_TYPES.size) break;
|
|
157
|
+
}
|
|
158
|
+
return latest;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
function deriveFlowSubstate(state: HarnessUiState): HarnessFlowSubstate {
|
|
162
|
+
if (state.budgetExhausted || state.testIntegritySeverity === "high") {
|
|
163
|
+
return "blocked";
|
|
164
|
+
}
|
|
165
|
+
if (state.policyDecision === "human_required") {
|
|
166
|
+
return "human-required";
|
|
167
|
+
}
|
|
168
|
+
if (state.phase !== "merge") {
|
|
169
|
+
return "idle";
|
|
170
|
+
}
|
|
171
|
+
if (
|
|
172
|
+
state.policyDecision === "pass" ||
|
|
173
|
+
state.policyDecision === "conditional_pass"
|
|
174
|
+
) {
|
|
175
|
+
return "commit-pr";
|
|
176
|
+
}
|
|
177
|
+
if (
|
|
178
|
+
state.policyDecision === "block" ||
|
|
179
|
+
state.policyDecision === "human_required"
|
|
180
|
+
) {
|
|
181
|
+
return "severity-policy";
|
|
182
|
+
}
|
|
183
|
+
if (state.debateRound > 0) {
|
|
184
|
+
return "severity-policy";
|
|
185
|
+
}
|
|
186
|
+
return "idle";
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
function createStateFromEntries(entries: unknown[]): HarnessUiState {
|
|
190
|
+
const latest = pickLatestCustomEntries(entries);
|
|
191
|
+
const state: HarnessUiState = {
|
|
192
|
+
...DEFAULT_STATE,
|
|
193
|
+
severity: { ...DEFAULT_STATE.severity },
|
|
194
|
+
};
|
|
195
|
+
|
|
196
|
+
const policy = latest.get("harness-policy-state") as
|
|
197
|
+
| PolicyStateLike
|
|
198
|
+
| undefined;
|
|
199
|
+
if (policy?.phase) state.phase = policy.phase;
|
|
200
|
+
state.planApproved = Boolean(policy?.approvedPlan);
|
|
201
|
+
state.planId = typeof policy?.planId === "string" ? policy.planId : null;
|
|
202
|
+
|
|
203
|
+
const review = latest.get("harness-review-integrity") as
|
|
204
|
+
| ReviewIntegrityStateLike
|
|
205
|
+
| undefined;
|
|
206
|
+
state.reviewViolationActive = Boolean(review?.violationActive);
|
|
207
|
+
state.reviewIsolationOk = !state.reviewViolationActive;
|
|
208
|
+
|
|
209
|
+
const budget = latest.get("harness-budget-exhausted") as
|
|
210
|
+
| BudgetExhaustedLike
|
|
211
|
+
| undefined;
|
|
212
|
+
if (budget) {
|
|
213
|
+
state.budgetExhausted = true;
|
|
214
|
+
state.budgetReason =
|
|
215
|
+
typeof budget.exhaustion_reason === "string"
|
|
216
|
+
? budget.exhaustion_reason
|
|
217
|
+
: "unknown";
|
|
218
|
+
const budgetUsed = asNumber(budget.budget_used);
|
|
219
|
+
if (budgetUsed != null) state.debateBudgetUsed = budgetUsed;
|
|
220
|
+
const cap = asNumber(budget.caps?.debate_global_cap);
|
|
221
|
+
if (cap != null) state.debateBudgetCap = cap;
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
const testIntegrity = latest.get("harness-test-integrity-flag") as
|
|
225
|
+
| TestIntegrityLike
|
|
226
|
+
| undefined;
|
|
227
|
+
if (
|
|
228
|
+
testIntegrity?.severity === "high" ||
|
|
229
|
+
testIntegrity?.severity === "medium"
|
|
230
|
+
) {
|
|
231
|
+
state.testIntegritySeverity = testIntegrity.severity;
|
|
232
|
+
state.testIntegrityReasons = Array.isArray(testIntegrity.reasons)
|
|
233
|
+
? testIntegrity.reasons.filter((r): r is string => typeof r === "string")
|
|
234
|
+
: [];
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
const debate = latest.get("harness-debate-state") as
|
|
238
|
+
| DebateStateLike
|
|
239
|
+
| undefined;
|
|
240
|
+
const round = asNumber(debate?.round_count);
|
|
241
|
+
if (round != null) state.debateRound = round;
|
|
242
|
+
const maxRounds = asNumber(debate?.max_rounds);
|
|
243
|
+
if (maxRounds != null) state.debateMaxRounds = maxRounds;
|
|
244
|
+
const debateBudgetUsed = asNumber(debate?.budget_used);
|
|
245
|
+
if (debateBudgetUsed != null) state.debateBudgetUsed = debateBudgetUsed;
|
|
246
|
+
const debateBudgetCap = asNumber(debate?.debate_global_cap);
|
|
247
|
+
if (debateBudgetCap != null) state.debateBudgetCap = debateBudgetCap;
|
|
248
|
+
|
|
249
|
+
const roundResult = latest.get("harness-round-result") as
|
|
250
|
+
| RoundLike
|
|
251
|
+
| undefined;
|
|
252
|
+
const roundIndex = asNumber(roundResult?.round_index);
|
|
253
|
+
if (roundIndex != null)
|
|
254
|
+
state.debateRound = Math.max(state.debateRound, roundIndex);
|
|
255
|
+
const consensusDelta = asNumber(roundResult?.consensus_delta);
|
|
256
|
+
if (consensusDelta != null) state.consensusDelta = consensusDelta;
|
|
257
|
+
|
|
258
|
+
const consensus = latest.get("harness-consensus-packet") as
|
|
259
|
+
| ConsensusLike
|
|
260
|
+
| undefined;
|
|
261
|
+
if (
|
|
262
|
+
consensus?.policy_decision === "pass" ||
|
|
263
|
+
consensus?.policy_decision === "conditional_pass" ||
|
|
264
|
+
consensus?.policy_decision === "block" ||
|
|
265
|
+
consensus?.policy_decision === "human_required"
|
|
266
|
+
) {
|
|
267
|
+
state.policyDecision = consensus.policy_decision;
|
|
268
|
+
}
|
|
269
|
+
const correctness = asNumber(consensus?.severity_scores?.correctness);
|
|
270
|
+
const security = asNumber(consensus?.severity_scores?.security);
|
|
271
|
+
const architecture = asNumber(consensus?.severity_scores?.architecture);
|
|
272
|
+
const test = asNumber(consensus?.severity_scores?.test_integrity);
|
|
273
|
+
if (correctness != null) state.severity.correctness = correctness;
|
|
274
|
+
if (security != null) state.severity.security = security;
|
|
275
|
+
if (architecture != null) state.severity.architecture = architecture;
|
|
276
|
+
if (test != null) state.severity.testIntegrity = test;
|
|
277
|
+
|
|
278
|
+
const runTrace = latest.get("harness-run-trace") as TraceLike | undefined;
|
|
279
|
+
const traceState = latest.get("harness-trace-state") as TraceLike | undefined;
|
|
280
|
+
state.traceRunId =
|
|
281
|
+
typeof runTrace?.run_id === "string"
|
|
282
|
+
? runTrace.run_id
|
|
283
|
+
: typeof traceState?.run_id === "string"
|
|
284
|
+
? traceState.run_id
|
|
285
|
+
: null;
|
|
286
|
+
|
|
287
|
+
state.flowSubstate = deriveFlowSubstate(state);
|
|
288
|
+
return state;
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
export class HarnessUiStateStore {
|
|
292
|
+
private lastEntriesLen = -1;
|
|
293
|
+
private cachedState: HarnessUiState = {
|
|
294
|
+
...DEFAULT_STATE,
|
|
295
|
+
severity: { ...DEFAULT_STATE.severity },
|
|
296
|
+
};
|
|
297
|
+
|
|
298
|
+
/** Refresh from session entries with a lightweight length-based memoization. */
|
|
299
|
+
public refresh(ctx: ExtensionContext): HarnessUiState {
|
|
300
|
+
const entries = ctx.sessionManager.getEntries();
|
|
301
|
+
if (entries.length !== this.lastEntriesLen) {
|
|
302
|
+
this.cachedState = createStateFromEntries(entries);
|
|
303
|
+
this.lastEntriesLen = entries.length;
|
|
304
|
+
}
|
|
305
|
+
return this.cachedState;
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
public snapshot(): HarnessUiState {
|
|
309
|
+
return this.cachedState;
|
|
310
|
+
}
|
|
311
|
+
}
|
package/.pi/mcp.json
CHANGED
package/.pi/model-router.json
CHANGED
|
@@ -1,95 +1,95 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
2
|
+
"defaultProfile": "auto",
|
|
3
|
+
"debug": false,
|
|
4
|
+
"classifierModel": "opencode-go/qwen3.6-plus",
|
|
5
|
+
"phaseBias": 0.5,
|
|
6
|
+
"maxSessionBudget": 1.0,
|
|
7
|
+
"largeContextThreshold": 100000,
|
|
8
|
+
"rules": [
|
|
9
|
+
{
|
|
10
|
+
"matches": [
|
|
11
|
+
"deploy",
|
|
12
|
+
"production",
|
|
13
|
+
"release"
|
|
14
|
+
],
|
|
15
|
+
"tier": "high",
|
|
16
|
+
"reason": "Safety check for production tasks"
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"matches": "changelog",
|
|
20
|
+
"tier": "low"
|
|
21
|
+
}
|
|
22
|
+
],
|
|
23
|
+
"profiles": {
|
|
24
|
+
"auto": {
|
|
25
|
+
"high": {
|
|
26
|
+
"model": "opencode-go/deepseek-v4-pro",
|
|
27
|
+
"thinking": "high",
|
|
28
|
+
"fallbacks": [
|
|
29
|
+
"opencode-go/qwen3.6-plus",
|
|
30
|
+
"opencode-go/kimi-k2.6"
|
|
31
|
+
]
|
|
32
|
+
},
|
|
33
|
+
"medium": {
|
|
34
|
+
"model": "opencode-go/qwen3.6-plus",
|
|
35
|
+
"thinking": "medium",
|
|
36
|
+
"fallbacks": [
|
|
37
|
+
"opencode-go/deepseek-v4-pro"
|
|
38
|
+
]
|
|
39
|
+
},
|
|
40
|
+
"low": {
|
|
41
|
+
"model": "opencode-go/deepseek-v4-flash",
|
|
42
|
+
"thinking": "low",
|
|
43
|
+
"fallbacks": [
|
|
44
|
+
"opencode-go/qwen3.5-plus"
|
|
45
|
+
]
|
|
46
|
+
}
|
|
47
|
+
},
|
|
48
|
+
"cheap": {
|
|
49
|
+
"high": {
|
|
50
|
+
"model": "opencode-go/qwen3.6-plus",
|
|
51
|
+
"thinking": "low",
|
|
52
|
+
"fallbacks": [
|
|
53
|
+
"opencode-go/qwen3.5-plus"
|
|
54
|
+
]
|
|
55
|
+
},
|
|
56
|
+
"medium": {
|
|
57
|
+
"model": "opencode-go/qwen3.5-plus",
|
|
58
|
+
"thinking": "off",
|
|
59
|
+
"fallbacks": [
|
|
60
|
+
"opencode-go/deepseek-v4-flash"
|
|
61
|
+
]
|
|
62
|
+
},
|
|
63
|
+
"low": {
|
|
64
|
+
"model": "opencode-go/deepseek-v4-flash",
|
|
65
|
+
"thinking": "off",
|
|
66
|
+
"fallbacks": [
|
|
67
|
+
"opencode-go/qwen3.5-plus"
|
|
68
|
+
]
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
"deep": {
|
|
72
|
+
"high": {
|
|
73
|
+
"model": "opencode-go/deepseek-v4-pro",
|
|
74
|
+
"thinking": "xhigh",
|
|
75
|
+
"fallbacks": [
|
|
76
|
+
"opencode-go/kimi-k2.6"
|
|
77
|
+
]
|
|
78
|
+
},
|
|
79
|
+
"medium": {
|
|
80
|
+
"model": "opencode-go/kimi-k2.6",
|
|
81
|
+
"thinking": "medium",
|
|
82
|
+
"fallbacks": [
|
|
83
|
+
"opencode-go/deepseek-v4-pro"
|
|
84
|
+
]
|
|
85
|
+
},
|
|
86
|
+
"low": {
|
|
87
|
+
"model": "opencode-go/qwen3.6-plus",
|
|
88
|
+
"thinking": "low",
|
|
89
|
+
"fallbacks": [
|
|
90
|
+
"opencode-go/deepseek-v4-flash"
|
|
91
|
+
]
|
|
92
|
+
}
|
|
93
|
+
}
|
|
21
94
|
}
|
|
22
|
-
|
|
23
|
-
"profiles": {
|
|
24
|
-
"auto": {
|
|
25
|
-
"high": {
|
|
26
|
-
"model": "opencode-go/deepseek-v4-pro",
|
|
27
|
-
"thinking": "high",
|
|
28
|
-
"fallbacks": [
|
|
29
|
-
"opencode-go/qwen3.6-plus",
|
|
30
|
-
"opencode-go/kimi-k2.6"
|
|
31
|
-
]
|
|
32
|
-
},
|
|
33
|
-
"medium": {
|
|
34
|
-
"model": "opencode-go/qwen3.6-plus",
|
|
35
|
-
"thinking": "medium",
|
|
36
|
-
"fallbacks": [
|
|
37
|
-
"opencode-go/deepseek-v4-pro"
|
|
38
|
-
]
|
|
39
|
-
},
|
|
40
|
-
"low": {
|
|
41
|
-
"model": "opencode-go/deepseek-v4-flash",
|
|
42
|
-
"thinking": "low",
|
|
43
|
-
"fallbacks": [
|
|
44
|
-
"opencode-go/qwen3.5-plus"
|
|
45
|
-
]
|
|
46
|
-
}
|
|
47
|
-
},
|
|
48
|
-
"cheap": {
|
|
49
|
-
"high": {
|
|
50
|
-
"model": "opencode-go/qwen3.6-plus",
|
|
51
|
-
"thinking": "low",
|
|
52
|
-
"fallbacks": [
|
|
53
|
-
"opencode-go/qwen3.5-plus"
|
|
54
|
-
]
|
|
55
|
-
},
|
|
56
|
-
"medium": {
|
|
57
|
-
"model": "opencode-go/qwen3.5-plus",
|
|
58
|
-
"thinking": "off",
|
|
59
|
-
"fallbacks": [
|
|
60
|
-
"opencode-go/deepseek-v4-flash"
|
|
61
|
-
]
|
|
62
|
-
},
|
|
63
|
-
"low": {
|
|
64
|
-
"model": "opencode-go/deepseek-v4-flash",
|
|
65
|
-
"thinking": "off",
|
|
66
|
-
"fallbacks": [
|
|
67
|
-
"opencode-go/qwen3.5-plus"
|
|
68
|
-
]
|
|
69
|
-
}
|
|
70
|
-
},
|
|
71
|
-
"deep": {
|
|
72
|
-
"high": {
|
|
73
|
-
"model": "opencode-go/deepseek-v4-pro",
|
|
74
|
-
"thinking": "xhigh",
|
|
75
|
-
"fallbacks": [
|
|
76
|
-
"opencode-go/kimi-k2.6"
|
|
77
|
-
]
|
|
78
|
-
},
|
|
79
|
-
"medium": {
|
|
80
|
-
"model": "opencode-go/kimi-k2.6",
|
|
81
|
-
"thinking": "medium",
|
|
82
|
-
"fallbacks": [
|
|
83
|
-
"opencode-go/deepseek-v4-pro"
|
|
84
|
-
]
|
|
85
|
-
},
|
|
86
|
-
"low": {
|
|
87
|
-
"model": "opencode-go/qwen3.6-plus",
|
|
88
|
-
"thinking": "low",
|
|
89
|
-
"fallbacks": [
|
|
90
|
-
"opencode-go/deepseek-v4-flash"
|
|
91
|
-
]
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
}
|
|
95
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Bootstrap or update the Graphify knowledge graph. Reads the graphify skill and runs setup/build workflow.
|
|
3
|
+
argument-hint: "[directory]"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
Read the `graphify` skill. Then run the setup workflow:
|
|
7
|
+
|
|
8
|
+
1. Check if Graphify is installed (`pip show graphifyy`). If not, install it:
|
|
9
|
+
```bash
|
|
10
|
+
pip install graphifyy && graphify install
|
|
11
|
+
```
|
|
12
|
+
2. Check if a graph already exists (`graphify-out/graph.json`). If yes, report
|
|
13
|
+
current graph stats (nodes, edges, communities, last built).
|
|
14
|
+
3. If no graph exists, build one: `graphify ${ARGUMENTS:-.} --wiki`
|
|
15
|
+
4. Read and summarize `graphify-out/GRAPH_REPORT.md` — show god nodes,
|
|
16
|
+
surprising connections, and suggested questions.
|
|
17
|
+
5. Tell user: "Graph built. Open `graphify-out/graph.html` for interactive
|
|
18
|
+
exploration. Run `graphify query \"question\"` to ask anything."
|
|
19
|
+
|
|
20
|
+
If the graph already exists:
|
|
21
|
+
- Report graph stats from `graph.json`
|
|
22
|
+
- Offer to update: `graphify . --update`
|
|
23
|
+
- Show recent god nodes from GRAPH_REPORT.md
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Safely abort the current harness run and force clean re-entry.
|
|
3
|
+
argument-hint: "[optional reason]"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# harness-abort
|
|
7
|
+
|
|
8
|
+
Safely abort the current harness run in this session.
|
|
9
|
+
|
|
10
|
+
## What this does
|
|
11
|
+
|
|
12
|
+
- resets policy state to:
|
|
13
|
+
- `phase: plan`
|
|
14
|
+
- `approvedPlan: false`
|
|
15
|
+
- `planId: null`
|
|
16
|
+
- records abort metadata for observability.
|
|
17
|
+
- enables a hard safety lock that blocks mutating tools until a new approved plan is attached.
|
|
18
|
+
|
|
19
|
+
## Usage
|
|
20
|
+
|
|
21
|
+
`/harness-abort [optional reason]`
|
|
22
|
+
|
|
23
|
+
Examples:
|
|
24
|
+
|
|
25
|
+
- `/harness-abort`
|
|
26
|
+
- `/harness-abort scope changed, restarting safely`
|
|
27
|
+
|
|
28
|
+
## Safety guarantees
|
|
29
|
+
|
|
30
|
+
- no mutating work should continue under the previous run context.
|
|
31
|
+
- a fresh approved plan is required before mutation can resume.
|
|
32
|
+
|
|
33
|
+
## Next step
|
|
34
|
+
|
|
35
|
+
Run:
|
|
36
|
+
|
|
37
|
+
`/harness-plan "<task>"`
|
|
38
|
+
|
|
39
|
+
Then proceed with:
|
|
40
|
+
|
|
41
|
+
`/harness-run --plan <path-to-plan-packet.json>`
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Full strict harness pipeline with locked governance decisions.
|
|
3
|
+
argument-hint: "\"<task>\" [--quick] [--risk low|med|high] [--budget <amount>]"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# harness-auto
|
|
7
|
+
|
|
8
|
+
Run full harness flow in one command:
|
|
9
|
+
|
|
10
|
+
`plan -> execute -> evaluate -> adversary -> severity-policy decision -> commit+PR (no auto-merge)`
|
|
11
|
+
|
|
12
|
+
## Step 0 — Parse arguments
|
|
13
|
+
|
|
14
|
+
Read `$ARGUMENTS` and normalize:
|
|
15
|
+
|
|
16
|
+
- required task: quoted or unquoted first value
|
|
17
|
+
- optional flags: `--quick`, `--risk low|med|high`, `--budget <amount>`
|
|
18
|
+
|
|
19
|
+
If task is missing, stop and return:
|
|
20
|
+
|
|
21
|
+
`Usage: /harness-auto "<task>" [--quick] [--risk low|med|high] [--budget <amount>]`
|
|
22
|
+
|
|
23
|
+
## Process contract
|
|
24
|
+
|
|
25
|
+
1. Build and approve plan packet before any mutation.
|
|
26
|
+
2. Execute only approved scope with rollback artifacts.
|
|
27
|
+
3. Run independent evaluator then adversarial reviewer.
|
|
28
|
+
4. Apply severity policy + strict pre-PR gates.
|
|
29
|
+
5. If gates pass, auto-commit and open PR; never auto-merge.
|
|
30
|
+
|
|
31
|
+
## Locked decisions (must not be changed)
|
|
32
|
+
|
|
33
|
+
- Always produce a plan packet before mutation.
|
|
34
|
+
- Adversarial review is always required.
|
|
35
|
+
- Merge blocking authority is severity-policy-engine.
|
|
36
|
+
- Router tuning is propose-and-approve only.
|
|
37
|
+
- Plan ambiguity must request clarification (no silent guessing).
|
|
38
|
+
- Rollback artifact must be revert-commit-ready and include:
|
|
39
|
+
- revert command
|
|
40
|
+
- prepared revert branch
|
|
41
|
+
- patch bundle
|
|
42
|
+
- Debate profile is aggressive with locked confidence weights:
|
|
43
|
+
- claim_quality=0.20
|
|
44
|
+
- reproducibility=0.40
|
|
45
|
+
- agreement=0.40
|
|
46
|
+
- Strict pre-PR gate is mandatory.
|
|
47
|
+
- Post-pass behavior is auto-commit and auto-open-PR.
|
|
48
|
+
- Never auto-merge PR.
|
|
49
|
+
|
|
50
|
+
## Guardrails
|
|
51
|
+
|
|
52
|
+
- Do not overthink straightforward gate outcomes; enforce gates deterministically.
|
|
53
|
+
- Only follow the locked pipeline and governance decisions listed here.
|
|
54
|
+
- Never bypass mandatory safety gates, even in `--quick` mode.
|
|
55
|
+
|
|
56
|
+
## Strict gates
|
|
57
|
+
|
|
58
|
+
Block commit/PR if any gate fails:
|
|
59
|
+
|
|
60
|
+
1. Plan gate passed.
|
|
61
|
+
2. Execution completed within approved scope.
|
|
62
|
+
3. Independent evaluator passed.
|
|
63
|
+
4. Adversarial review completed with consensus packet.
|
|
64
|
+
5. Severity-policy-engine output is `pass` or `conditional_pass`.
|
|
65
|
+
6. Benchmark delta checks passed.
|
|
66
|
+
7. Rollback artifacts generated.
|
|
67
|
+
|
|
68
|
+
## Notes
|
|
69
|
+
|
|
70
|
+
- `--quick` may reduce breadth, never safety gates.
|
|
71
|
+
- `--risk` can tighten behavior, never disable adversary.
|
|
72
|
+
- If risk/ambiguity is high, auto-fallback to manual `harness-plan` and wait for clarification.
|
|
73
|
+
- If execution must be interrupted safely, run `/harness-abort [reason]`, then restart with `/harness-plan "<task>"`.
|
|
74
|
+
- Always output trace bundle ID and incident/rollback references.
|
|
75
|
+
|
|
76
|
+
## Completion behavior
|
|
77
|
+
|
|
78
|
+
End with a deterministic handoff block:
|
|
79
|
+
|
|
80
|
+
1. `Pipeline status` (pass/fail per strict gate).
|
|
81
|
+
2. `Trace bundle` and artifact references (`plan`, `eval`, `adversary`, `consensus`, `rollback`).
|
|
82
|
+
3. `Policy outcome` (`pass`, `conditional_pass`, `block`, or `human_required`) with one-line rationale.
|
|
83
|
+
4. `Next action` (open PR, replan, rollback, or human override path).
|