ultimate-pi 0.18.1 → 0.19.1
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/harness-debate-plan/SKILL.md +1 -1
- package/.agents/skills/harness-decisions/SKILL.md +1 -2
- package/.agents/skills/harness-governor/SKILL.md +6 -5
- package/.agents/skills/web-retrieval/SKILL.md +163 -0
- package/.agents/skills/wiki-autoresearch/SKILL.md +6 -6
- package/.pi/PACKAGING.md +4 -4
- package/.pi/SYSTEM.md +75 -123
- package/.pi/agents/harness/incident-recorder.md +0 -1
- package/.pi/agents/harness/planning/decompose.md +0 -2
- package/.pi/agents/harness/planning/execution-plan-author.md +0 -2
- package/.pi/agents/harness/planning/hypothesis-validator.md +0 -2
- package/.pi/agents/harness/planning/hypothesis.md +0 -2
- package/.pi/agents/harness/planning/implementation-researcher.md +1 -3
- package/.pi/agents/harness/planning/plan-adversary.md +0 -2
- package/.pi/agents/harness/planning/plan-evaluator.md +1 -3
- package/.pi/agents/harness/planning/planning-context.md +0 -2
- package/.pi/agents/harness/planning/review-integrator.md +0 -2
- package/.pi/agents/harness/planning/sprint-contract-auditor.md +0 -2
- package/.pi/agents/harness/planning/stack-researcher.md +5 -3
- package/.pi/agents/harness/reviewing/adversary.md +0 -2
- package/.pi/agents/harness/reviewing/evaluator.md +0 -2
- package/.pi/agents/harness/reviewing/tie-breaker.md +0 -2
- package/.pi/agents/harness/running/executor.md +0 -2
- package/.pi/agents/harness/sentrux-bootstrap.md +0 -1
- package/.pi/agents/harness/sentrux-steward.md +0 -2
- package/.pi/agents/harness/trace-librarian.md +0 -1
- package/.pi/agents/harness/web-retrieval/web-answerer.md +35 -0
- package/.pi/agents/harness/web-retrieval/web-criteria-verifier.md +28 -0
- package/.pi/agents/harness/web-retrieval/web-gap-analyzer.md +31 -0
- package/.pi/agents/harness/web-retrieval/web-query-expander-fast.md +34 -0
- package/.pi/agents/harness/web-retrieval/web-query-expander.md +60 -0
- package/.pi/agents/harness/web-retrieval/web-summarizer.md +18 -0
- package/.pi/extensions/agt-kill-switch.ts +57 -0
- package/.pi/extensions/agt-prompt-guard.ts +32 -0
- package/.pi/extensions/custom-footer.ts +46 -145
- package/.pi/extensions/custom-header.ts +1 -1
- package/.pi/extensions/custom-system-prompt.ts +1 -1
- package/.pi/extensions/debate-orchestrator.ts +6 -6
- package/.pi/extensions/harness-ask-user.ts +7 -7
- package/.pi/extensions/harness-debate-tools.ts +26 -42
- package/.pi/extensions/harness-lens.ts +94 -0
- package/.pi/extensions/harness-plan-approval.ts +11 -11
- package/.pi/extensions/harness-run-context.ts +1070 -876
- package/.pi/extensions/harness-subagent-governance.ts +8 -0
- package/.pi/extensions/harness-subagent-submit.ts +34 -163
- package/.pi/extensions/harness-subagents.ts +3 -3
- package/.pi/extensions/harness-telemetry.ts +2 -2
- package/.pi/extensions/harness-web-guard.ts +2 -1
- package/.pi/extensions/harness-web-tools.ts +691 -53
- package/.pi/extensions/policy-gate.ts +25 -5
- package/.pi/extensions/sentrux-rules-sync.ts +1 -1
- package/.pi/extensions/subagent-governance.ts +92 -0
- package/.pi/extensions/trace-recorder.ts +1 -1
- package/.pi/extensions/{ultimate-pi-vcc.ts → vcc-compaction.ts} +1 -1
- package/.pi/harness/README.md +6 -2
- package/.pi/harness/agents.manifest.json +46 -25
- package/.pi/harness/agents.policy.yaml +309 -0
- package/.pi/harness/docs/adrs/0030-inhouse-vcc-compaction.md +1 -1
- package/.pi/harness/docs/adrs/0035-plan-phase-review-gate.md +1 -1
- package/.pi/harness/docs/adrs/0045-harness-lens-minimal-contract.md +49 -0
- package/.pi/harness/docs/adrs/0046-agt-policy-engine.md +51 -0
- package/.pi/harness/docs/adrs/0047-agt-layered-security.md +39 -0
- package/.pi/harness/docs/adrs/0048-tool-call-hook-order.md +25 -0
- package/.pi/harness/docs/adrs/0049-agents-policy-manifest.md +36 -0
- package/.pi/harness/docs/adrs/0050-agentic-web-retrieval-stack.md +46 -0
- package/.pi/harness/docs/adrs/README.md +5 -0
- package/.pi/harness/docs/harness-web-search.md +97 -0
- package/.pi/harness/env.harness.template +9 -1
- package/.pi/harness/evolution/README.md +1 -2
- package/.pi/harness/examples/agents.policy.project.yaml +19 -0
- package/.pi/harness/examples/policies/custom-deny-bash.yaml +9 -0
- package/.pi/harness/examples/web-heuristic-angles.project.yaml +22 -0
- package/.pi/harness/policies/bash-denylists.yaml +5 -0
- package/.pi/harness/policies/defaults.yaml +51 -0
- package/.pi/harness/policies/orchestrator.yaml +18 -0
- package/.pi/harness/policies/phases.yaml +10 -0
- package/.pi/harness/policies/roles.yaml +5 -0
- package/.pi/harness/policies/web-guard.yaml +5 -0
- package/.pi/harness/policies/workflow-sequences.yaml +9 -0
- package/.pi/harness/sentrux/architecture.manifest.json +26 -4
- package/.pi/harness/specs/observation.schema.json +2 -1
- package/.pi/harness/web-heuristic-angles.json +278 -0
- package/.pi/harness/web-heuristic-angles.yaml +182 -0
- package/.pi/lib/agents-policy.d.mts +70 -0
- package/.pi/lib/agents-policy.mjs +331 -0
- package/.pi/lib/agents-policy.ts +19 -0
- package/.pi/lib/agt/audit-run-sink.ts +52 -0
- package/.pi/lib/agt/build-evaluation-context.ts +285 -0
- package/.pi/lib/agt/config.ts +28 -0
- package/.pi/lib/agt/delegation.ts +69 -0
- package/.pi/lib/agt/evaluate-policy.ts +56 -0
- package/.pi/lib/agt/identity-registry.ts +41 -0
- package/.pi/lib/agt/index.ts +55 -0
- package/.pi/lib/agt/kill-switch-state.ts +11 -0
- package/.pi/lib/agt/legacy-evaluate.ts +101 -0
- package/.pi/lib/agt/policy-engine.ts +154 -0
- package/.pi/lib/agt/rings.ts +21 -0
- package/.pi/lib/agt/sre-hooks.ts +45 -0
- package/.pi/lib/agt/trust-run-store.ts +26 -0
- package/.pi/lib/agt/workflow-history.ts +29 -0
- package/.pi/lib/agt-governance-active.ts +14 -0
- package/.pi/lib/agt-tool-guard.ts +78 -0
- package/.pi/lib/ask-user/dialog.ts +314 -0
- package/.pi/{extensions/lib → lib}/debate-bus-core.ts +10 -10
- package/.pi/{extensions/lib → lib}/debate-bus-state.ts +1 -1
- package/.pi/{extensions/lib → lib}/extension-load-guard.ts +13 -2
- package/.pi/lib/harness-agt-tool-guard.ts +5 -0
- package/.pi/{extensions/lib → lib}/harness-artifact-gate.ts +1 -1
- package/.pi/lib/harness-debate-core-deps.ts +14 -0
- package/.pi/lib/harness-debate-workflow-deps.ts +43 -0
- package/.pi/lib/harness-lens/.gitattributes +1 -0
- package/.pi/lib/harness-lens/clients/edit-autopatch.ts +88 -0
- package/.pi/lib/harness-lens/clients/file-kinds.ts +380 -0
- package/.pi/lib/harness-lens/clients/file-time.ts +215 -0
- package/.pi/lib/harness-lens/clients/file-utils.ts +484 -0
- package/.pi/lib/harness-lens/clients/format-service.ts +276 -0
- package/.pi/lib/harness-lens/clients/formatters.ts +1000 -0
- package/.pi/lib/harness-lens/clients/git-guard.ts +31 -0
- package/.pi/lib/harness-lens/clients/indent-retarget.ts +90 -0
- package/.pi/lib/harness-lens/clients/installer/index.ts +2368 -0
- package/.pi/lib/harness-lens/clients/latency-logger.ts +80 -0
- package/.pi/lib/harness-lens/clients/lens-config.ts +43 -0
- package/.pi/lib/harness-lens/clients/lens-events.ts +164 -0
- package/.pi/lib/harness-lens/clients/lsp/aggregation.ts +91 -0
- package/.pi/lib/harness-lens/clients/lsp/client.ts +1466 -0
- package/.pi/lib/harness-lens/clients/lsp/config.ts +216 -0
- package/.pi/lib/harness-lens/clients/lsp/edits.ts +297 -0
- package/.pi/lib/harness-lens/clients/lsp/index.ts +1355 -0
- package/.pi/lib/harness-lens/clients/lsp/interactive-install.ts +424 -0
- package/.pi/lib/harness-lens/clients/lsp/language.ts +223 -0
- package/.pi/lib/harness-lens/clients/lsp/launch.ts +939 -0
- package/.pi/lib/harness-lens/clients/lsp/lsp-index.ts +11 -0
- package/.pi/lib/harness-lens/clients/lsp/path-utils.ts +12 -0
- package/.pi/lib/harness-lens/clients/lsp/server-strategies.ts +81 -0
- package/.pi/lib/harness-lens/clients/lsp/server.ts +1971 -0
- package/.pi/lib/harness-lens/clients/path-utils.ts +182 -0
- package/.pi/lib/harness-lens/clients/pipeline.ts +360 -0
- package/.pi/lib/harness-lens/clients/project-profile.ts +117 -0
- package/.pi/lib/harness-lens/clients/runtime-agent-end.ts +112 -0
- package/.pi/lib/harness-lens/clients/runtime-config.ts +33 -0
- package/.pi/lib/harness-lens/clients/runtime-coordinator.ts +186 -0
- package/.pi/lib/harness-lens/clients/runtime-tool-result.ts +171 -0
- package/.pi/lib/harness-lens/clients/safe-spawn.ts +339 -0
- package/.pi/lib/harness-lens/clients/secrets-scanner.ts +214 -0
- package/.pi/lib/harness-lens/clients/tool-policy.ts +2072 -0
- package/.pi/lib/harness-lens/clients/types.ts +59 -0
- package/.pi/lib/harness-lens/clients/widget-state.ts +283 -0
- package/.pi/lib/harness-lens/index.ts +532 -0
- package/.pi/lib/harness-lens/tools/lsp-diagnostics.ts +706 -0
- package/.pi/lib/harness-lens/tools/lsp-navigation.ts +1246 -0
- package/.pi/{extensions/lib → lib}/harness-posthog.ts +3 -0
- package/.pi/lib/harness-run-context-responses.ts +9 -0
- package/.pi/lib/harness-run-context.ts +0 -2
- package/.pi/{extensions/lib/spawn-policy.ts → lib/harness-spawn-policy.ts} +1 -0
- package/.pi/{extensions/lib → lib}/harness-spawn-topology.ts +1 -1
- package/.pi/lib/harness-subagent-auth.ts +81 -0
- package/.pi/{extensions/lib → lib}/harness-subagent-precheck.ts +10 -7
- package/.pi/{extensions/lib → lib}/harness-subagent-submit-pipeline.ts +3 -3
- package/.pi/lib/harness-subagent-submit-register.ts +163 -0
- package/.pi/{extensions/lib → lib}/harness-subagent-submit-registry.ts +1 -37
- package/.pi/{extensions/lib → lib}/harness-subagents-bridge.ts +74 -14
- package/.pi/{extensions/lib → lib}/harness-subprocess-bootstrap.ts +1 -1
- package/.pi/lib/harness-web/artifacts.ts +200 -0
- package/.pi/lib/harness-web/cache.ts +369 -0
- package/.pi/{extensions/lib → lib}/harness-web/run-cli.ts +42 -2
- package/.pi/{extensions/lib → lib}/plan-approval/create-plan.ts +2 -2
- package/.pi/{extensions/lib → lib}/plan-approval/format-plan.ts +2 -2
- package/.pi/{extensions/lib → lib}/plan-approval/plan-review.ts +162 -201
- package/.pi/{extensions/lib → lib}/plan-approval/render.ts +1 -1
- package/.pi/{extensions/lib → lib}/plan-approval/resolve-disk.ts +2 -2
- package/.pi/{extensions/lib → lib}/plan-approval/types.ts +1 -1
- package/.pi/{extensions/lib → lib}/plan-approval/validate.ts +3 -3
- package/.pi/{extensions/lib → lib}/plan-debate-envelope.ts +1 -1
- package/.pi/{extensions/lib → lib}/plan-debate-gate.ts +1 -1
- package/.pi/{extensions/lib → lib}/plan-debate-lane.ts +1 -4
- package/.pi/{extensions/lib → lib}/plan-messenger.ts +1 -1
- package/.pi/prompts/harness-plan.md +2 -1
- package/.pi/prompts/harness-setup.md +40 -65
- package/.pi/scripts/README.md +2 -5
- package/.pi/scripts/gen-web-heuristic-angles-json.mjs +24 -0
- package/.pi/scripts/generate-agents-policy-yaml.mjs +148 -0
- package/.pi/scripts/harness-agents-manifest.mjs +60 -3
- package/.pi/scripts/harness-agt-doctor.ts +36 -0
- package/.pi/scripts/harness-cli-verify.sh +14 -2
- package/.pi/scripts/harness-verify.mjs +191 -39
- package/.pi/scripts/harness-web-policy-guard.mjs +3 -3
- package/.pi/scripts/harness-web.py +218 -15
- package/.pi/scripts/harness_web/deep_search.py +55 -0
- package/.pi/scripts/harness_web/evidence_bundle.py +47 -0
- package/.pi/scripts/harness_web/find_similar.py +88 -0
- package/.pi/scripts/harness_web/heuristic_angles_shipped.py +85 -0
- package/.pi/scripts/harness_web/heuristic_config.py +251 -0
- package/.pi/scripts/harness_web/highlights.py +47 -0
- package/.pi/scripts/harness_web/multi_search.py +59 -0
- package/.pi/scripts/harness_web/output.py +24 -0
- package/.pi/scripts/harness_web/query_angles.py +116 -0
- package/.pi/scripts/harness_web/rank.py +163 -0
- package/.pi/scripts/harness_web/scrape.py +30 -0
- package/.pi/scripts/tests/test_harness_web_heuristic_config.py +132 -0
- package/.pi/scripts/tests/test_harness_web_query_angles.py +45 -0
- package/.pi/scripts/tests/test_harness_web_rank.py +56 -0
- package/.pi/scripts/validate-plan-dag.mjs +65 -74
- package/.pi/scripts/vendor-pi-vcc-settings.stub.ts +2 -2
- package/.pi/scripts/vendor-sync-pi-vcc.sh +1 -1
- package/.pi/skills/architecture/broker-domain/SKILL.md +65 -0
- package/.pi/skills/architecture/cqrs/SKILL.md +63 -0
- package/.pi/skills/architecture/event-driven/SKILL.md +60 -0
- package/.pi/skills/architecture/hexagonal-ports-adapters/SKILL.md +66 -0
- package/.pi/skills/architecture/layered/SKILL.md +68 -0
- package/.pi/skills/architecture/microkernel/SKILL.md +62 -0
- package/.pi/skills/architecture/microservices/SKILL.md +64 -0
- package/.pi/skills/architecture/modular-monolith/SKILL.md +65 -0
- package/.pi/skills/architecture/orchestration-driven-soa/SKILL.md +61 -0
- package/.pi/skills/architecture/pipeline/SKILL.md +63 -0
- package/.pi/skills/architecture/service-based/SKILL.md +64 -0
- package/.pi/skills/architecture/service-mesh/SKILL.md +60 -0
- package/.pi/skills/architecture/space-based/SKILL.md +60 -0
- package/.pi/skills/ast-grep/SKILL.md +40 -321
- package/.pi/skills/delivery/debugging-discipline/SKILL.md +36 -0
- package/.pi/skills/delivery/documentation-update/SKILL.md +33 -0
- package/.pi/skills/delivery/requirements-to-implementation/SKILL.md +34 -0
- package/.pi/skills/delivery/risk-based-verification/SKILL.md +43 -0
- package/.pi/skills/delivery/tradeoff-analysis/SKILL.md +34 -0
- package/.pi/skills/engineering/api-contract-design/SKILL.md +38 -0
- package/.pi/skills/engineering/cohesion-coupling/SKILL.md +43 -0
- package/.pi/skills/engineering/complexity-control/SKILL.md +31 -0
- package/.pi/skills/engineering/defensive-programming/SKILL.md +38 -0
- package/.pi/skills/engineering/dependency-management/SKILL.md +29 -0
- package/.pi/skills/engineering/domain-modeling/SKILL.md +32 -0
- package/.pi/skills/engineering/error-handling/SKILL.md +37 -0
- package/.pi/skills/engineering/legacy-code-seams/SKILL.md +35 -0
- package/.pi/skills/engineering/naming-and-intent/SKILL.md +29 -0
- package/.pi/skills/engineering/refactoring-safe-evolution/SKILL.md +35 -0
- package/.pi/skills/engineering/routine-function-design/SKILL.md +34 -0
- package/.pi/skills/engineering/small-change-discipline/SKILL.md +35 -0
- package/.pi/skills/lsp-navigation/SKILL.md +89 -0
- package/.pi/skills/quality/code-review-self-check/SKILL.md +35 -0
- package/.pi/skills/quality/privacy-data-handling/SKILL.md +26 -0
- package/.pi/skills/quality/security-review/SKILL.md +34 -0
- package/.pi/skills/quality/test-strategy/SKILL.md +33 -0
- package/.pi/skills/quality/testability-design/SKILL.md +33 -0
- package/.pi/skills/systems/concurrency-safety/SKILL.md +32 -0
- package/.pi/skills/systems/data-modeling-migrations/SKILL.md +31 -0
- package/.pi/skills/systems/observability-instrumentation/SKILL.md +32 -0
- package/.pi/skills/systems/performance-measurement/SKILL.md +35 -0
- package/.pi/skills/systems/reliability-design/SKILL.md +32 -0
- package/.sentrux/rules.toml +20 -4
- package/AGENTS.md +7 -2
- package/CHANGELOG.md +20 -0
- package/README.md +3 -12
- package/THIRD_PARTY_NOTICES.md +12 -21
- package/package.json +17 -7
- package/vendor/pi-subagents/src/agents.ts +45 -1
- package/vendor/pi-subagents/src/subagents.ts +866 -811
- package/vendor/pi-vcc/src/core/brief.ts +68 -99
- package/vendor/pi-vcc/src/core/settings.ts +2 -2
- package/.agents/skills/caveman/SKILL.md +0 -67
- package/.agents/skills/scrapling-web/SKILL.md +0 -98
- package/.pi/agents/harness/meta-optimizer.md +0 -36
- package/.pi/extensions/00-posthog-network-bootstrap.ts +0 -11
- package/.pi/extensions/lib/ask-user/dialog.ts +0 -260
- package/.pi/extensions/lib/harness-subagent-auth.ts +0 -207
- package/.pi/extensions/lib/harness-subagent-policy.ts +0 -236
- package/.pi/extensions/pi-model-router-harness.ts +0 -42
- package/.pi/harness/evolution/meta-optimizer.mjs +0 -99
- package/.pi/harness/specs/router-tuning-proposal.schema.json +0 -114
- package/.pi/model-router.example.json +0 -36
- package/.pi/prompts/harness-critic.md +0 -10
- package/.pi/prompts/harness-eval.md +0 -10
- package/.pi/prompts/harness-router-tune.md +0 -52
- package/.pi/scripts/harness-generate-model-router.mjs +0 -327
- package/.pi/scripts/harness-model-router-routing.test.mjs +0 -97
- package/.pi/scripts/harness-sync-model-router.mjs +0 -97
- package/.pi/scripts/harness_web/__pycache__/__init__.cpython-314.pyc +0 -0
- package/.pi/scripts/harness_web/__pycache__/config.cpython-314.pyc +0 -0
- package/.pi/scripts/harness_web/__pycache__/output.cpython-314.pyc +0 -0
- package/.pi/scripts/harness_web/__pycache__/scrape.cpython-314.pyc +0 -0
- package/.pi/scripts/harness_web/__pycache__/search.cpython-314.pyc +0 -0
- package/.pi/scripts/harness_web/__pycache__/search_ddg.cpython-314.pyc +0 -0
- package/.pi/scripts/harness_web/__pycache__/search_searxng.cpython-314.pyc +0 -0
- package/.pi/scripts/vendor-sync-pi-model-router.sh +0 -47
- package/vendor/pi-model-router/.prettierignore +0 -4
- package/vendor/pi-model-router/.prettierrc +0 -5
- package/vendor/pi-model-router/AGENTS.md +0 -39
- package/vendor/pi-model-router/LICENSE +0 -21
- package/vendor/pi-model-router/README.md +0 -99
- package/vendor/pi-model-router/UPSTREAM_PIN.md +0 -10
- package/vendor/pi-model-router/docs/ARCHITECTURE.md +0 -54
- package/vendor/pi-model-router/extensions/commands.ts +0 -720
- package/vendor/pi-model-router/extensions/config.ts +0 -348
- package/vendor/pi-model-router/extensions/constants.ts +0 -1
- package/vendor/pi-model-router/extensions/index.ts +0 -478
- package/vendor/pi-model-router/extensions/provider.ts +0 -580
- package/vendor/pi-model-router/extensions/routing.ts +0 -564
- package/vendor/pi-model-router/extensions/state.ts +0 -52
- package/vendor/pi-model-router/extensions/types.ts +0 -95
- package/vendor/pi-model-router/extensions/ui.ts +0 -144
- package/vendor/pi-model-router/model-router.example.json +0 -48
- package/vendor/pi-model-router/package.json +0 -48
- package/vendor/pi-model-router/tsconfig.json +0 -16
- /package/.pi/{prompts → harness/docs}/planning-rubrics.md +0 -0
- /package/.pi/{extensions/lib → lib}/ask-user/fallback.ts +0 -0
- /package/.pi/{extensions/lib → lib}/ask-user/render.ts +0 -0
- /package/.pi/{extensions/lib → lib}/ask-user/schema.ts +0 -0
- /package/.pi/{extensions/lib → lib}/ask-user/types.ts +0 -0
- /package/.pi/{extensions/lib → lib}/ask-user/validate-core.mjs +0 -0
- /package/.pi/{extensions/lib → lib}/ask-user/validate.ts +0 -0
- /package/.pi/{extensions/lib → lib}/harness-cocoindex-refresh.ts +0 -0
- /package/.pi/{extensions/lib → lib}/harness-paths.ts +0 -0
- /package/.pi/{extensions/lib → lib}/harness-spawn-budget.ts +0 -0
- /package/.pi/{extensions/lib → lib}/harness-vcc-settings.ts +0 -0
- /package/.pi/{extensions/lib → lib}/plan-approval/dialog.ts +0 -0
- /package/.pi/{extensions/lib → lib}/plan-approval/schema.ts +0 -0
- /package/.pi/{extensions/lib → lib}/plan-approval-readiness.ts +0 -0
- /package/.pi/{extensions/lib → lib}/plan-debate-eligibility.ts +0 -0
- /package/.pi/{extensions/lib → lib}/plan-debate-focus.ts +0 -0
- /package/.pi/{extensions/lib → lib}/plan-debate-id.ts +0 -0
- /package/.pi/{extensions/lib → lib}/plan-debate-lanes.ts +0 -0
- /package/.pi/{extensions/lib → lib}/plan-debate-round-status.ts +0 -0
- /package/.pi/{extensions/lib → lib}/plan-debate-write-guard.ts +0 -0
- /package/.pi/{extensions/lib → lib}/plan-review-gate.ts +0 -0
- /package/.pi/{extensions/lib → lib}/plan-review-integrator-rules.ts +0 -0
- /package/.pi/{extensions/lib → lib}/plan-scope-guard.ts +0 -0
- /package/.pi/{extensions/lib → lib}/posthog-client.ts +0 -0
- /package/.pi/{extensions/lib → lib}/posthog-node.d.ts +0 -0
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
---
|
|
2
2
|
description: Plan-phase stack research (ctx7 + web, read-only file writes via parent).
|
|
3
|
-
tools: read, grep, find, ls, bash, web_search, web_fetch, submit_stack_brief
|
|
4
|
-
disallowed_tools: write, edit, ask_user, approve_plan, create_plan, subagent
|
|
5
3
|
extensions: false
|
|
6
4
|
thinking: medium
|
|
7
5
|
max_turns: 16
|
|
@@ -15,7 +13,11 @@ Produce evidence-backed stack recommendations before ExecutionPlan authoring. Ra
|
|
|
15
13
|
|
|
16
14
|
1. Read spawn context: task_summary, brownfield vs greenfield, constraints.
|
|
17
15
|
2. **Libraries / APIs:** use context7-cli skill (`ctx7 library`, `ctx7 docs`). Record library ids in `evidence_refs`.
|
|
18
|
-
3. **Landscape / comparisons:**
|
|
16
|
+
3. **Landscape / comparisons (WRS — mandatory):** follow `web-retrieval` skill:
|
|
17
|
+
- Use scoped `artifactDir` (`.web/runs/<run_id>/` or tool-reported `.web/sessions/…/`)
|
|
18
|
+
- `subagent` `harness/web-retrieval/web-query-expander` → `<artifactDir>/angles.yaml`
|
|
19
|
+
- `web_search({ query, tier: "deep", anglesFile })` — **never** bare `web_search({ query })` for landscape
|
|
20
|
+
- `read` `<artifactDir>/search-deep.json`; `web_fetch` top 3 with `highlights: true`
|
|
19
21
|
4. Brownfield: always include **extend current stack** as a ranked option with migration risk.
|
|
20
22
|
5. Greenfield: ≥3 distinct options with pros/cons/risks and selection criteria.
|
|
21
23
|
6. Grade each ref: `primary` (official docs), `secondary` (reputable guide), `anecdotal` (blog/issue thread).
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
---
|
|
2
2
|
description: Propose architecture.manifest.json changes from graphify evidence (read-only governance steward).
|
|
3
|
-
tools: read, grep, find, ls, bash, submit_sentrux_manifest_proposal
|
|
4
|
-
disallowed_tools: write, edit, ask_user, approve_plan, create_plan, subagent
|
|
5
3
|
extensions: false
|
|
6
4
|
thinking: high
|
|
7
5
|
max_turns: 16
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: WRS synthesis — cited answer from evidence-bundle.json.
|
|
3
|
+
extensions: false
|
|
4
|
+
thinking: medium
|
|
5
|
+
max_turns: 12
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Your task
|
|
9
|
+
|
|
10
|
+
Write a concise, **cited** answer to the research question using only sources in the evidence bundle.
|
|
11
|
+
|
|
12
|
+
## Output path (required — no shared flat file)
|
|
13
|
+
|
|
14
|
+
Write to **`$HARNESS_WEB_ARTIFACT_DIR/answer.md`** when that env var is set (harness web-retrieval subprocesses).
|
|
15
|
+
|
|
16
|
+
Otherwise use the **`answerPath`** or **`artifactDir`** the parent gives in the spawn task (e.g. `.web/sessions/<id>/answer.md` or `.web/runs/<run_id>/answer.md`).
|
|
17
|
+
|
|
18
|
+
**Never** write to flat `.web/answer.md` — it collides across parallel sessions.
|
|
19
|
+
|
|
20
|
+
## Input
|
|
21
|
+
|
|
22
|
+
Read the evidence bundle path from the parent task (default: same directory as the answer file, file name `evidence-bundle.json`). Each source has url, title, description, optional highlights.
|
|
23
|
+
|
|
24
|
+
## Output format
|
|
25
|
+
|
|
26
|
+
Write markdown to the resolved answer path via parent tooling or include full content in final message:
|
|
27
|
+
|
|
28
|
+
- Lead with a direct answer (2–4 sentences).
|
|
29
|
+
- Supporting bullets with inline citations `[title](url)`.
|
|
30
|
+
- "Sources" section listing URLs used.
|
|
31
|
+
- Flag uncertainty where evidence is thin.
|
|
32
|
+
|
|
33
|
+
Do **not** invent URLs. Do **not** call web_search.
|
|
34
|
+
|
|
35
|
+
Bus label: `WebAnswerer`.
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: WRS Websets analog — score candidates against NL criteria (YAML/CSV output).
|
|
3
|
+
extensions: false
|
|
4
|
+
thinking: medium
|
|
5
|
+
max_turns: 14
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Your task
|
|
9
|
+
|
|
10
|
+
Given NL **criteria** and a list of candidate URLs/titles/snippets (from search-deep.json), score each candidate and explain match quality.
|
|
11
|
+
|
|
12
|
+
## Output
|
|
13
|
+
|
|
14
|
+
Fenced YAML:
|
|
15
|
+
|
|
16
|
+
```yaml
|
|
17
|
+
criteria: "<restated criteria>"
|
|
18
|
+
results:
|
|
19
|
+
- url: "..."
|
|
20
|
+
title: "..."
|
|
21
|
+
match: true|false
|
|
22
|
+
score: 0.0-1.0
|
|
23
|
+
reason: "<one sentence>"
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
Parent may convert to `.web/webset-manifest.csv`. Do **not** call web_search.
|
|
27
|
+
|
|
28
|
+
Bus label: `WebCriteriaVerifier`.
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: WRS gap-fill — read search-deep.json, propose follow-up angles for missing coverage.
|
|
3
|
+
extensions: false
|
|
4
|
+
thinking: low
|
|
5
|
+
max_turns: 10
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Your task
|
|
9
|
+
|
|
10
|
+
After a deep search, identify **gaps** (missing facets, contradictions, stale angles) and output **1–3 new search angles** only.
|
|
11
|
+
|
|
12
|
+
## Input
|
|
13
|
+
|
|
14
|
+
Parent provides paths to `.web/search-deep.json` and research intent. Use `read` on those artifacts.
|
|
15
|
+
|
|
16
|
+
## Output (only)
|
|
17
|
+
|
|
18
|
+
Fenced YAML:
|
|
19
|
+
|
|
20
|
+
```yaml
|
|
21
|
+
gaps:
|
|
22
|
+
- "<what is missing>"
|
|
23
|
+
angles:
|
|
24
|
+
- id: gap_1
|
|
25
|
+
query: "..."
|
|
26
|
+
rationale: "..."
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Do **not** call web tools. Parent runs `web_search(tier=deep, anglesFile=...)`.
|
|
30
|
+
|
|
31
|
+
Bus label: `WebGapAnalyzer`.
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: WRS fast query planner — 2–3 angles only for latency-sensitive search (YAML only).
|
|
3
|
+
extensions: false
|
|
4
|
+
thinking: off
|
|
5
|
+
max_turns: 5
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Your task
|
|
9
|
+
|
|
10
|
+
Same as `web-query-expander`, but **optimized for speed**: produce **2–3** angles only (not 4–5). No web tools.
|
|
11
|
+
|
|
12
|
+
## When to use (parent)
|
|
13
|
+
|
|
14
|
+
- User asked for **fast** / **quick** / **low latency** open-web lookup
|
|
15
|
+
- `web_search` with `tier: "instant"` or `tier: "standard"` where angles still help (optional)
|
|
16
|
+
- **Not** for landscape, prior art, comparisons, or harness-plan research — use `harness/web-retrieval/web-query-expander` instead
|
|
17
|
+
|
|
18
|
+
## Output (only)
|
|
19
|
+
|
|
20
|
+
```yaml
|
|
21
|
+
intent: "<one sentence>"
|
|
22
|
+
category: null
|
|
23
|
+
angles:
|
|
24
|
+
- id: core
|
|
25
|
+
query: "<short query>"
|
|
26
|
+
rationale: "..."
|
|
27
|
+
- id: official
|
|
28
|
+
query: "..."
|
|
29
|
+
rationale: "..."
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
Keep queries ≤10 words. Do not call `web_search` or `web_fetch`.
|
|
33
|
+
|
|
34
|
+
Bus label: `WebQueryExpanderFast`.
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: WRS query planner — NL intent to 4-5 SearXNG-optimized search angles (YAML only).
|
|
3
|
+
extensions: false
|
|
4
|
+
thinking: low
|
|
5
|
+
max_turns: 8
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Your task
|
|
9
|
+
|
|
10
|
+
Convert a research intent into **4–5 distinct search angles** optimized for DuckDuckGo / SearXNG keyword search. You do **not** search the web yourself.
|
|
11
|
+
|
|
12
|
+
## When parent should spawn you (not `web-query-expander-fast`)
|
|
13
|
+
|
|
14
|
+
- Landscape, prior art, comparisons, stack/implementation research, harness-plan external research
|
|
15
|
+
- Any question where **recall** matters more than latency
|
|
16
|
+
|
|
17
|
+
For **fast / narrow** paths, parent should spawn `harness/web-retrieval/web-query-expander-fast` or skip expander and use `tier=instant|standard` with `expandHeuristic:true`.
|
|
18
|
+
|
|
19
|
+
## Output (only)
|
|
20
|
+
|
|
21
|
+
Respond with a single fenced YAML block and nothing else:
|
|
22
|
+
|
|
23
|
+
```yaml
|
|
24
|
+
intent: "<restated intent in one sentence>"
|
|
25
|
+
category: null # or code|company|people|paper|news
|
|
26
|
+
angles:
|
|
27
|
+
- id: official
|
|
28
|
+
query: "<short keyword-dense query>"
|
|
29
|
+
rationale: "<why this angle>"
|
|
30
|
+
- id: technical
|
|
31
|
+
query: "..."
|
|
32
|
+
rationale: "..."
|
|
33
|
+
# 4-5 angles total
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## Angle design rules
|
|
37
|
+
|
|
38
|
+
- Each `query` must be **short** (≤12 words unless `site:` operator needed).
|
|
39
|
+
- Angles must be **distinct** (definitional, official docs, technical depth, criticism/limitations, recent news, implementations/repos).
|
|
40
|
+
- Use operators when helpful: `site:github.com`, `site:arxiv.org`, `filetype:pdf`, quoted phrases.
|
|
41
|
+
- Do **not** duplicate the same phrasing across angles.
|
|
42
|
+
- Do **not** call `web_search` or `web_fetch`.
|
|
43
|
+
|
|
44
|
+
## Category packs (when spawn context includes category)
|
|
45
|
+
|
|
46
|
+
Subagent output is LLM-crafted. For **heuristic** fallback (`expandHeuristic:true`), category packs come from YAML:
|
|
47
|
+
|
|
48
|
+
- Package: `.pi/harness/web-heuristic-angles.yaml`
|
|
49
|
+
- Project override: `<project>/.pi/harness/web-heuristic-angles.yaml` (see `examples/web-heuristic-angles.project.yaml`)
|
|
50
|
+
|
|
51
|
+
| category | Default heuristic angles (configurable) |
|
|
52
|
+
|----------|----------------------------------------|
|
|
53
|
+
| code | github, stackoverflow, … |
|
|
54
|
+
| company | official site, news, … |
|
|
55
|
+
| people | linkedin, biography |
|
|
56
|
+
| paper | arxiv, scholar |
|
|
57
|
+
| news | recent year in query |
|
|
58
|
+
| *(custom)* | Add your own category key in project YAML |
|
|
59
|
+
|
|
60
|
+
Bus label: `WebQueryExpander`.
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: WRS page digest — summarize a fetched markdown excerpt.
|
|
3
|
+
extensions: false
|
|
4
|
+
thinking: low
|
|
5
|
+
max_turns: 6
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Your task
|
|
9
|
+
|
|
10
|
+
Produce a 5–8 bullet summary of a single page excerpt for the parent agent. Read the provided `.web/*.md` or excerpt path only.
|
|
11
|
+
|
|
12
|
+
## Rules
|
|
13
|
+
|
|
14
|
+
- Bullets only; no preamble.
|
|
15
|
+
- Preserve factual claims; note if page is marketing-heavy.
|
|
16
|
+
- Do not call web tools.
|
|
17
|
+
|
|
18
|
+
Bus label: `WebSummarizer`.
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AGT kill switch — arms on harness-abort and repeated policy denies (ADR 0047).
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
import type { ExtensionAPI } from "@earendil-works/pi-coding-agent";
|
|
6
|
+
import { KillSwitch } from "@microsoft/agent-governance-sdk";
|
|
7
|
+
import { isHarnessProjectEnabled } from "../lib/harness-project-config.js";
|
|
8
|
+
import {
|
|
9
|
+
hasHarnessAbortSignal,
|
|
10
|
+
userVisiblePromptSlice,
|
|
11
|
+
} from "../lib/harness-run-context.js";
|
|
12
|
+
|
|
13
|
+
const killSwitch = new KillSwitch({ enabled: true });
|
|
14
|
+
|
|
15
|
+
import { recordHarnessPolicyDeny } from "../lib/agt/kill-switch-state.js";
|
|
16
|
+
|
|
17
|
+
export function getHarnessKillSwitch(): KillSwitch {
|
|
18
|
+
return killSwitch;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export function recordHarnessPolicyDenyForKillSwitch(sessionId: string): void {
|
|
22
|
+
const n = recordHarnessPolicyDeny(sessionId);
|
|
23
|
+
if (n >= 5) {
|
|
24
|
+
void killSwitch.kill(sessionId, {
|
|
25
|
+
reason: "Repeated harness policy denials",
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export default function agtKillSwitch(pi: ExtensionAPI) {
|
|
31
|
+
if (!isHarnessProjectEnabled()) return;
|
|
32
|
+
|
|
33
|
+
pi.on("before_agent_start", async (event, ctx) => {
|
|
34
|
+
const prompt = userVisiblePromptSlice(event.prompt);
|
|
35
|
+
if (hasHarnessAbortSignal(prompt)) {
|
|
36
|
+
const sessionId = ctx.sessionManager.getSessionId();
|
|
37
|
+
await killSwitch.kill(sessionId, {
|
|
38
|
+
reason: "harness-abort command",
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
return undefined;
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
pi.on("tool_call", async (_event, ctx) => {
|
|
45
|
+
const sessionId = ctx.sessionManager.getSessionId();
|
|
46
|
+
const history = killSwitch.getHistory();
|
|
47
|
+
const armed = history.some((h) => h.agentId === sessionId);
|
|
48
|
+
if (armed) {
|
|
49
|
+
return {
|
|
50
|
+
block: true,
|
|
51
|
+
reason:
|
|
52
|
+
"agt-kill-switch: harness session halted after abort or repeated policy breaches.",
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
return undefined;
|
|
56
|
+
});
|
|
57
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AGT PromptDefense heuristics on harness slash commands (ADR 0047).
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
import type { ExtensionAPI } from "@earendil-works/pi-coding-agent";
|
|
6
|
+
import { PromptDefenseEvaluator } from "@microsoft/agent-governance-sdk";
|
|
7
|
+
import { isHarnessProjectEnabled } from "../lib/harness-project-config.js";
|
|
8
|
+
import { userVisiblePromptSlice } from "../lib/harness-run-context.js";
|
|
9
|
+
|
|
10
|
+
const evaluator = new PromptDefenseEvaluator({ minGrade: "D" });
|
|
11
|
+
|
|
12
|
+
export default function agtPromptGuard(pi: ExtensionAPI) {
|
|
13
|
+
if (!isHarnessProjectEnabled()) return;
|
|
14
|
+
|
|
15
|
+
pi.on("before_agent_start", async (event) => {
|
|
16
|
+
const prompt = userVisiblePromptSlice(event.prompt);
|
|
17
|
+
if (!prompt.trim()) return undefined;
|
|
18
|
+
if (!/\/harness-/.test(prompt)) return undefined;
|
|
19
|
+
|
|
20
|
+
const report = evaluator.evaluate(prompt);
|
|
21
|
+
if (report.isBlocking("D")) {
|
|
22
|
+
return {
|
|
23
|
+
message: {
|
|
24
|
+
customType: "harness-policy-violation",
|
|
25
|
+
display: true,
|
|
26
|
+
content: `agt-prompt-guard: prompt defense grade ${report.grade} (${report.score}). Missing defenses: ${report.missing.join(", ") || "see findings"}.`,
|
|
27
|
+
},
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
return undefined;
|
|
31
|
+
});
|
|
32
|
+
}
|