@hassangameryt/freeflow 0.3.0 → 0.5.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.
- package/.claude-plugin/marketplace.json +4 -4
- package/.claude-plugin/plugin.json +6 -2
- package/.codex-plugin/plugin.json +9 -9
- package/README.md +190 -127
- package/assets/feedback-loop.png +0 -0
- package/assets/freeflow_workflow_map.png +0 -0
- package/assets/workflow.png +0 -0
- package/{skills → capabilities}/output-router/SKILL.md +21 -17
- package/{skills → capabilities}/output-router/references/safety-policy.md +1 -1
- package/capabilities/output-router/references/setup.md +110 -0
- package/command-surface.json +62 -7
- package/hooks/freeflow-runtime-context.mjs +572 -154
- package/hooks/hooks.json +26 -1
- package/hooks/tests/check-runtime-context-hook.sh +375 -0
- package/package.json +24 -24
- package/pi-extension/dist/index.js +264 -80
- package/pi-extension/dist/integrations/mcp-config.js +29 -0
- package/pi-extension/dist/output-router/host-producer-identification.js +232 -0
- package/pi-extension/dist/output-router/native-safety-net.js +216 -0
- package/pi-extension/dist/output-router/observed-tool-routing.js +122 -0
- package/pi-extension/dist/output-router/renderers.js +1023 -0
- package/pi-extension/dist/output-router/router-tools.js +554 -0
- package/pi-extension/dist/output-router/schemas.js +383 -0
- package/pi-extension/dist/output-router/status.js +744 -0
- package/pi-extension/dist/output-router/utils.js +502 -0
- package/pi-extension/dist/runtime/runtime-context.js +798 -0
- package/pi-extension/dist/settings/settings-tui.js +314 -0
- package/pi-extension/dist/settings/settings-ui.js +1487 -0
- package/pi-extension/freeflow/index.js +1 -0
- package/pi-extension/src/index.ts +230 -56
- package/pi-extension/src/{host-producer-identification.ts → output-router/host-producer-identification.ts} +37 -7
- package/pi-extension/src/{native-safety-net.ts → output-router/native-safety-net.ts} +8 -12
- package/pi-extension/src/{observed-tool-routing.ts → output-router/observed-tool-routing.ts} +19 -11
- package/pi-extension/src/{renderers.ts → output-router/renderers.ts} +246 -55
- package/pi-extension/src/{router-tools.ts → output-router/router-tools.ts} +130 -29
- package/pi-extension/src/{schemas.ts → output-router/schemas.ts} +171 -43
- package/pi-extension/src/output-router/status.ts +791 -0
- package/pi-extension/src/{utils.ts → output-router/utils.ts} +80 -18
- package/pi-extension/src/runtime/runtime-context.ts +895 -0
- package/pi-extension/src/settings/settings-tui.ts +408 -0
- package/pi-extension/src/settings/settings-ui.ts +1730 -0
- package/pi-extension/tests/integration/pi-extension.test.js +4020 -0
- package/pi-extension/tests/output-router/observed-producers.test.js +132 -0
- package/pi-extension/tests/output-router/search.test.js +722 -0
- package/pi-extension/tests/settings/settings-tui.test.js +243 -0
- package/router/dist/benchmarks/benchmark-harness.d.ts +16 -13
- package/router/dist/benchmarks/benchmark-harness.js +62 -62
- package/router/dist/benchmarks/benchmarks.d.ts +80 -73
- package/router/dist/benchmarks/benchmarks.js +860 -761
- package/router/dist/benchmarks/codex-qa-benchmarks.d.ts +71 -67
- package/router/dist/benchmarks/codex-qa-benchmarks.js +429 -390
- package/router/dist/benchmarks/command-benchmarks.d.ts +107 -92
- package/router/dist/benchmarks/command-benchmarks.js +616 -571
- package/router/dist/benchmarks/context-mode-normalized-benchmarks.d.ts +64 -56
- package/router/dist/benchmarks/context-mode-normalized-benchmarks.js +679 -613
- package/router/dist/benchmarks/context-mode-real-deep-benchmark.d.ts +103 -95
- package/router/dist/benchmarks/context-mode-real-deep-benchmark.js +1188 -1103
- package/router/dist/benchmarks/context-saving-baseline.d.ts +47 -41
- package/router/dist/benchmarks/context-saving-baseline.js +405 -374
- package/router/dist/benchmarks/index-benchmarks.d.ts +74 -69
- package/router/dist/benchmarks/index-benchmarks.js +761 -661
- package/router/dist/benchmarks/storage-policy-benchmarks.d.ts +80 -69
- package/router/dist/benchmarks/storage-policy-benchmarks.js +549 -469
- package/router/dist/benchmarks/vault-index-benchmarks.d.ts +43 -34
- package/router/dist/benchmarks/vault-index-benchmarks.js +294 -229
- package/router/dist/config/config.d.ts +62 -55
- package/router/dist/config/config.js +552 -373
- package/router/dist/config/router-contract.d.ts +2 -2
- package/router/dist/config/router-contract.js +38 -38
- package/router/dist/config/schema.d.ts +19 -10
- package/router/dist/config/schema.js +586 -538
- package/router/dist/config/types.d.ts +413 -361
- package/router/dist/config/types.js +19 -8
- package/router/dist/evidence/bounded-evidence.d.ts +26 -26
- package/router/dist/evidence/bounded-evidence.js +265 -252
- package/router/dist/evidence/evidence-range-selector.d.ts +16 -14
- package/router/dist/evidence/evidence-range-selector.js +192 -191
- package/router/dist/evidence/evidence-search.d.ts +18 -16
- package/router/dist/evidence/evidence-search.js +401 -377
- package/router/dist/evidence/evidence.d.ts +17 -17
- package/router/dist/evidence/evidence.js +163 -159
- package/router/dist/evidence/failure-contracts.d.ts +25 -15
- package/router/dist/evidence/failure-contracts.js +132 -126
- package/router/dist/evidence/line-ranges.d.ts +17 -15
- package/router/dist/evidence/line-ranges.js +18 -18
- package/router/dist/experiments/local-index.d.ts +47 -41
- package/router/dist/experiments/local-index.js +477 -458
- package/router/dist/local/local-traversal.d.ts +18 -0
- package/router/dist/local/local-traversal.js +334 -0
- package/router/dist/processing/engine.d.ts +94 -70
- package/router/dist/processing/engine.js +462 -364
- package/router/dist/processing/reducers.d.ts +208 -194
- package/router/dist/processing/reducers.js +1434 -1256
- package/router/dist/processing/renderers.d.ts +24 -18
- package/router/dist/processing/renderers.js +161 -152
- package/router/dist/processing/scripts.d.ts +80 -67
- package/router/dist/processing/scripts.js +343 -290
- package/router/dist/repo/repo-traversal.d.ts +9 -9
- package/router/dist/repo/repo-traversal.js +205 -202
- package/router/dist/routing/observed-reducers.d.ts +25 -19
- package/router/dist/routing/observed-reducers.js +559 -545
- package/router/dist/routing/observed-routing.d.ts +23 -14
- package/router/dist/routing/observed-routing.js +319 -318
- package/router/dist/routing/parsers.d.ts +10 -10
- package/router/dist/routing/parsers.js +454 -406
- package/router/dist/routing/run-filters.d.ts +45 -41
- package/router/dist/routing/run-filters.js +215 -207
- package/router/dist/routing/run-reducers.d.ts +45 -26
- package/router/dist/routing/run-reducers.js +102 -90
- package/router/dist/sandbox/adapter-roots.d.ts +34 -26
- package/router/dist/sandbox/adapter-roots.js +43 -41
- package/router/dist/sandbox/eryx-python-adapter.d.ts +9 -5
- package/router/dist/sandbox/eryx-python-adapter.js +659 -588
- package/router/dist/sandbox/jq-wasm-adapter.d.ts +3 -3
- package/router/dist/sandbox/jq-wasm-adapter.js +319 -311
- package/router/dist/sandbox/quickjs-wasi-adapter.d.ts +9 -5
- package/router/dist/sandbox/quickjs-wasi-adapter.js +336 -333
- package/router/dist/sandbox/script-sandbox.d.ts +105 -84
- package/router/dist/sandbox/script-sandbox.js +294 -260
- package/router/dist/setup/script-transform-adapters.d.ts +23 -19
- package/router/dist/setup/script-transform-adapters.js +223 -204
- package/router/dist/tools/batch.d.ts +27 -16
- package/router/dist/tools/batch.js +493 -416
- package/router/dist/tools/run.d.ts +47 -35
- package/router/dist/tools/run.js +1172 -1087
- package/router/dist/tools/search.d.ts +53 -31
- package/router/dist/tools/search.js +1224 -1065
- package/router/dist/transform/engine.d.ts +121 -96
- package/router/dist/transform/engine.js +1853 -1736
- package/router/dist/vault/vault-index.d.ts +97 -78
- package/router/dist/vault/vault-index.js +347 -342
- package/router/dist/vault/vault.d.ts +109 -74
- package/router/dist/vault/vault.js +528 -533
- package/runtime/interaction-contract.md +16 -0
- package/skills/bypass/SKILL.md +52 -38
- package/skills/commit-work/SKILL.md +54 -46
- package/skills/commit-work/references/staging-decisions.md +46 -24
- package/skills/decision-gate/SKILL.md +48 -0
- package/skills/design-for-depth/SKILL.md +75 -59
- package/skills/design-for-depth/references/design-pressure-signals.md +56 -7
- package/skills/design-for-depth/references/interface-design-loop.md +156 -0
- package/skills/design-for-depth/references/software-design-philosophy.md +32 -3
- package/skills/diagnose-failure/SKILL.md +65 -60
- package/skills/diagnose-failure/references/diagnostic-loop-catalog.md +36 -0
- package/skills/diagnose-failure/references/flaky-and-performance.md +30 -18
- package/skills/discuss/SKILL.md +121 -0
- package/skills/discuss/references/checkpoints.md +66 -0
- package/skills/evaluate-skill/SKILL.md +62 -53
- package/skills/evaluate-skill/references/definition-schema.md +345 -0
- package/skills/evaluate-skill/references/evaluation-design.md +86 -0
- package/skills/evaluate-skill/references/execution-and-evidence.md +85 -0
- package/skills/evaluate-skill/references/review-and-revision.md +51 -0
- package/skills/evaluate-skill/scripts/lib/definitions.mjs +296 -0
- package/skills/evaluate-skill/scripts/lib/evidence.mjs +46 -0
- package/skills/evaluate-skill/scripts/lib/grade-comparison.mjs +60 -0
- package/skills/evaluate-skill/scripts/lib/grade-interaction.mjs +148 -0
- package/skills/evaluate-skill/scripts/lib/grade-support.mjs +126 -0
- package/skills/evaluate-skill/scripts/lib/grade-workspace.mjs +192 -0
- package/skills/evaluate-skill/scripts/lib/grade.mjs +56 -0
- package/skills/evaluate-skill/scripts/lib/pi.mjs +489 -0
- package/skills/evaluate-skill/scripts/lib/process.mjs +79 -0
- package/skills/evaluate-skill/scripts/lib/rpc.mjs +444 -0
- package/skills/evaluate-skill/scripts/lib/runner.mjs +346 -0
- package/skills/evaluate-skill/scripts/lib/sandbox.mjs +409 -0
- package/skills/evaluate-skill/scripts/lib/view.mjs +337 -0
- package/skills/evaluate-skill/scripts/pi-guard.mjs +164 -0
- package/skills/evaluate-skill/scripts/skill-eval.mjs +101 -0
- package/skills/execute-work/SKILL.md +99 -0
- package/skills/execute-work/references/code-practices.md +78 -0
- package/skills/execute-work/references/execution-loop.md +77 -0
- package/skills/finish-branch/SKILL.md +117 -0
- package/skills/finish-branch/references/integration-options.md +80 -0
- package/skills/handoff/SKILL.md +65 -39
- package/skills/handoff/references/templates.md +104 -27
- package/skills/launch-work/SKILL.md +116 -0
- package/skills/launch-work/references/launch-readiness.md +85 -0
- package/skills/migration-work/SKILL.md +115 -0
- package/skills/migration-work/references/migration-lifecycle.md +82 -0
- package/skills/mode-contract/SKILL.md +72 -52
- package/skills/release-work/SKILL.md +118 -0
- package/skills/release-work/references/release-evidence.md +78 -0
- package/skills/review-artifact/SKILL.md +77 -69
- package/skills/review-artifact/references/reviewer-prompt.md +133 -42
- package/skills/review-work/SKILL.md +82 -57
- package/skills/review-work/references/reviewer-prompt.md +97 -60
- package/skills/review-work/references/security-risk-lens.md +67 -0
- package/skills/setup-freeflow/SKILL.md +54 -68
- package/skills/setup-freeflow/references/activation-contract.md +84 -69
- package/skills/setup-freeflow/references/host-setup.md +50 -17
- package/skills/simplify-code/SKILL.md +80 -0
- package/skills/simplify-code/references/simplification-patterns.md +70 -0
- package/skills/tdd/SKILL.md +96 -0
- package/skills/tdd/references/test-design.md +96 -0
- package/skills/track-work/SKILL.md +84 -0
- package/skills/track-work/references/working-record-schema.md +378 -0
- package/skills/verify-work/SKILL.md +59 -38
- package/skills/verify-work/references/browser-runtime-evidence.md +55 -0
- package/skills/verify-work/references/integration-evidence.md +51 -0
- package/skills/verify-work/references/performance-evidence.md +57 -0
- package/skills/workflow/SKILL.md +53 -59
- package/skills/workflow/references/domain-skill-composition.md +57 -0
- package/skills/workflow/references/workflow-loop.md +92 -0
- package/skills/write-plan/SKILL.md +85 -58
- package/skills/write-plan/references/plan-shapes.md +132 -46
- package/skills/write-skill/SKILL.md +82 -51
- package/skills/write-skill/references/activation-boundaries.md +62 -0
- package/skills/write-skill/references/agent-first-instructions.md +87 -0
- package/skills/write-skill/references/progressive-disclosure.md +63 -0
- package/skills/write-skill/scripts/lib/skill-author.mjs +653 -0
- package/skills/write-skill/scripts/skill-author.mjs +104 -0
- package/skills/write-spec/SKILL.md +65 -54
- package/skills/write-spec/references/artifact-standards.md +60 -41
- package/skills/write-spec/references/decision-records.md +77 -0
- package/skills/write-spec/references/spec-shapes.md +119 -60
- package/evals/README.md +0 -32
- package/evals/fixtures/copy-conventions.md +0 -31
- package/evals/fixtures/output-router/README.md +0 -12
- package/evals/fixtures/output-router/failed-command-output.txt +0 -9
- package/evals/fixtures/output-router/large-router-manual.md +0 -63
- package/evals/fixtures/output-router/native-large-output.txt +0 -40
- package/evals/fixtures/output-router/noisy-test-output.txt +0 -30
- package/evals/fixtures/output-router/verification-output.txt +0 -8
- package/evals/fixtures/tiny-artifact-review-app/README.md +0 -5
- package/evals/fixtures/tiny-artifact-review-app/docs/billing-policy.md +0 -10
- package/evals/fixtures/tiny-artifact-review-app/docs/specs/billing-webhook-api-draft.md +0 -21
- package/evals/fixtures/tiny-artifact-review-app/docs/specs/failed-payment-grace-period.md +0 -24
- package/evals/fixtures/tiny-artifact-review-app/docs/specs/immediate-downgrade.md +0 -17
- package/evals/fixtures/tiny-artifact-review-app/tests/billing.test.md +0 -8
- package/evals/fixtures/tiny-commit-ambiguous-app/.freeflow-eval-setup.sh +0 -15
- package/evals/fixtures/tiny-commit-ambiguous-app/README.md +0 -3
- package/evals/fixtures/tiny-commit-ambiguous-app/src/billing.ts +0 -5
- package/evals/fixtures/tiny-commit-ambiguous-app/src/settings-page.ts +0 -1
- package/evals/fixtures/tiny-commit-ambiguous-app/tests/settings.test.md +0 -5
- package/evals/fixtures/tiny-commit-app/.freeflow-eval-setup.sh +0 -14
- package/evals/fixtures/tiny-commit-app/README.md +0 -3
- package/evals/fixtures/tiny-commit-app/docs/specs/settings-title.md +0 -5
- package/evals/fixtures/tiny-commit-app/src/billing.ts +0 -5
- package/evals/fixtures/tiny-commit-app/src/settings-page.ts +0 -1
- package/evals/fixtures/tiny-commit-app/tests/settings.test.md +0 -5
- package/evals/fixtures/tiny-commit-everything-app/.freeflow-eval-setup.sh +0 -15
- package/evals/fixtures/tiny-commit-everything-app/README.md +0 -3
- package/evals/fixtures/tiny-commit-everything-app/docs/specs/settings-title.md +0 -5
- package/evals/fixtures/tiny-commit-everything-app/src/billing.ts +0 -5
- package/evals/fixtures/tiny-commit-everything-app/src/settings-page.ts +0 -1
- package/evals/fixtures/tiny-commit-everything-app/tests/settings.test.md +0 -5
- package/evals/fixtures/tiny-commit-staged-app/.freeflow-eval-setup.sh +0 -15
- package/evals/fixtures/tiny-commit-staged-app/README.md +0 -3
- package/evals/fixtures/tiny-commit-staged-app/docs/specs/settings-title.md +0 -5
- package/evals/fixtures/tiny-commit-staged-app/src/billing.ts +0 -5
- package/evals/fixtures/tiny-commit-staged-app/src/settings-page.ts +0 -1
- package/evals/fixtures/tiny-commit-staged-app/tests/settings.test.md +0 -5
- package/evals/fixtures/tiny-commit-staged-mixed-app/.freeflow-eval-setup.sh +0 -15
- package/evals/fixtures/tiny-commit-staged-mixed-app/README.md +0 -3
- package/evals/fixtures/tiny-commit-staged-mixed-app/docs/billing-policy.md +0 -3
- package/evals/fixtures/tiny-commit-staged-mixed-app/docs/release-notes.md +0 -3
- package/evals/fixtures/tiny-commit-staged-mixed-app/src/billing.ts +0 -5
- package/evals/fixtures/tiny-dashboard-stale-app/README.md +0 -11
- package/evals/fixtures/tiny-dashboard-stale-app/src/api-client.ts +0 -13
- package/evals/fixtures/tiny-dashboard-stale-app/src/dashboard-data.ts +0 -19
- package/evals/fixtures/tiny-dashboard-stale-app/tests/dashboard-data.test.md +0 -9
- package/evals/fixtures/tiny-decision-destination-app/README.md +0 -6
- package/evals/fixtures/tiny-decision-destination-app/src/risk.ts +0 -8
- package/evals/fixtures/tiny-decision-destination-app/tests/risk.test.md +0 -4
- package/evals/fixtures/tiny-design-depth-app/README.md +0 -15
- package/evals/fixtures/tiny-design-depth-app/src/routes.ts +0 -25
- package/evals/fixtures/tiny-design-depth-app/src/sendEmail.ts +0 -3
- package/evals/fixtures/tiny-design-depth-app/src/sendSms.ts +0 -3
- package/evals/fixtures/tiny-design-depth-app/src/telemetry.ts +0 -3
- package/evals/fixtures/tiny-design-depth-app/tests/routes.test.md +0 -12
- package/evals/fixtures/tiny-eval-method-app/README.md +0 -8
- package/evals/fixtures/tiny-eval-method-app/evals/reports/review-pr-eval-result.md +0 -5
- package/evals/fixtures/tiny-eval-method-app/evals/reports/triage-question-failure.md +0 -17
- package/evals/fixtures/tiny-eval-method-app/evals/runs/review-pr-with-skill-output.diff +0 -11
- package/evals/fixtures/tiny-eval-method-app/evals/runs/review-pr-with-skill-output.md +0 -3
- package/evals/fixtures/tiny-eval-method-app/skills/review-pr/SKILL.md +0 -10
- package/evals/fixtures/tiny-eval-method-app/skills/triage-question/SKILL.md +0 -10
- package/evals/fixtures/tiny-execute-plan-app/README.md +0 -5
- package/evals/fixtures/tiny-execute-plan-app/checks/settings-and-billing-check.sh +0 -5
- package/evals/fixtures/tiny-execute-plan-app/docs/billing-policy.md +0 -10
- package/evals/fixtures/tiny-execute-plan-app/docs/plans/immediate-downgrade-plan.md +0 -11
- package/evals/fixtures/tiny-execute-plan-app/docs/plans/settings-title-plan.md +0 -12
- package/evals/fixtures/tiny-execute-plan-app/docs/plans/settings-title-with-bad-check.md +0 -15
- package/evals/fixtures/tiny-execute-plan-app/docs/plans/unverified-billing-plan.md +0 -9
- package/evals/fixtures/tiny-execute-plan-app/docs/specs/failed-payment-grace-period.md +0 -9
- package/evals/fixtures/tiny-execute-plan-app/docs/specs/settings-title.md +0 -9
- package/evals/fixtures/tiny-execute-plan-app/src/billing.ts +0 -7
- package/evals/fixtures/tiny-execute-plan-app/src/settings-page.ts +0 -1
- package/evals/fixtures/tiny-execute-plan-app/tests/billing.test.md +0 -7
- package/evals/fixtures/tiny-execute-plan-app/tests/settings.test.md +0 -5
- package/evals/fixtures/tiny-execute-review-loop-app/README.md +0 -5
- package/evals/fixtures/tiny-execute-review-loop-app/docs/billing-policy.md +0 -9
- package/evals/fixtures/tiny-execute-review-loop-app/docs/plans/settings-title-plan.md +0 -12
- package/evals/fixtures/tiny-execute-review-loop-app/docs/review/previous-agent-summary.md +0 -15
- package/evals/fixtures/tiny-execute-review-loop-app/docs/review/review-pass-1-non-pass.md +0 -11
- package/evals/fixtures/tiny-execute-review-loop-app/docs/specs/settings-title.md +0 -9
- package/evals/fixtures/tiny-execute-review-loop-app/src/billing.ts +0 -7
- package/evals/fixtures/tiny-execute-review-loop-app/src/settings-page.ts +0 -1
- package/evals/fixtures/tiny-execute-review-loop-app/tests/billing.test.md +0 -7
- package/evals/fixtures/tiny-execute-review-loop-app/tests/settings.test.md +0 -5
- package/evals/fixtures/tiny-flaky-session-app/README.md +0 -10
- package/evals/fixtures/tiny-flaky-session-app/src/session-timeout.ts +0 -13
- package/evals/fixtures/tiny-flaky-session-app/tests/session-timeout.test.md +0 -8
- package/evals/fixtures/tiny-handoff-app/README.md +0 -5
- package/evals/fixtures/tiny-handoff-app/docs/billing-policy.md +0 -10
- package/evals/fixtures/tiny-handoff-app/docs/handoffs/old-agent-handoff.md +0 -8
- package/evals/fixtures/tiny-handoff-app/docs/plans/billing-retry-plan.md +0 -11
- package/evals/fixtures/tiny-handoff-app/src/billing.ts +0 -7
- package/evals/fixtures/tiny-handoff-report-app/README.md +0 -3
- package/evals/fixtures/tiny-handoff-report-app/evals/runs/handoff-3/hof-003/with-skill-output.diff +0 -1
- package/evals/fixtures/tiny-handoff-report-app/evals/runs/handoff-3/hof-003/with-skill-output.md +0 -1
- package/evals/fixtures/tiny-handoff-report-app/evals/scores/hof-003-score.txt +0 -4
- package/evals/fixtures/tiny-plan-app/README.md +0 -5
- package/evals/fixtures/tiny-plan-app/docs/billing-policy.md +0 -10
- package/evals/fixtures/tiny-plan-app/docs/specs/failed-payment-grace-period.md +0 -25
- package/evals/fixtures/tiny-plan-app/src/billing.ts +0 -17
- package/evals/fixtures/tiny-plan-app/src/settings-page.ts +0 -1
- package/evals/fixtures/tiny-plan-app/tests/billing.test.md +0 -8
- package/evals/fixtures/tiny-plan-app/tests/settings.test.md +0 -5
- package/evals/fixtures/tiny-plan-strict-api-app/README.md +0 -3
- package/evals/fixtures/tiny-plan-strict-api-app/docs/billing-policy.md +0 -5
- package/evals/fixtures/tiny-plan-strict-api-app/docs/specs/billing-webhook-api.md +0 -25
- package/evals/fixtures/tiny-plan-strict-api-app/src/billing.ts +0 -5
- package/evals/fixtures/tiny-plan-strict-api-app/src/webhooks.ts +0 -3
- package/evals/fixtures/tiny-plan-strict-api-app/tests/billing-webhook.test.md +0 -8
- package/evals/fixtures/tiny-post-setup-invalid-config-app/.freeflow/config.json +0 -3
- package/evals/fixtures/tiny-post-setup-invalid-config-app/AGENTS.md +0 -15
- package/evals/fixtures/tiny-post-setup-invalid-config-app/README.md +0 -16
- package/evals/fixtures/tiny-post-setup-invalid-config-app/docs/auth-review.md +0 -15
- package/evals/fixtures/tiny-post-setup-invalid-config-app/docs/billing-policy.md +0 -10
- package/evals/fixtures/tiny-post-setup-invalid-config-app/docs/copy-conventions.md +0 -15
- package/evals/fixtures/tiny-post-setup-invalid-config-app/src/auth-middleware.ts +0 -12
- package/evals/fixtures/tiny-post-setup-invalid-config-app/src/billing.ts +0 -20
- package/evals/fixtures/tiny-post-setup-invalid-config-app/src/login-copy.ts +0 -1
- package/evals/fixtures/tiny-post-setup-invalid-config-app/src/settings-page.ts +0 -1
- package/evals/fixtures/tiny-post-setup-invalid-config-app/tests/auth-middleware.test.md +0 -8
- package/evals/fixtures/tiny-post-setup-invalid-config-app/tests/billing.test.md +0 -8
- package/evals/fixtures/tiny-post-setup-invalid-config-app/tests/copy.test.md +0 -7
- package/evals/fixtures/tiny-post-setup-missing-config-app/AGENTS.md +0 -15
- package/evals/fixtures/tiny-post-setup-missing-config-app/README.md +0 -16
- package/evals/fixtures/tiny-post-setup-missing-config-app/docs/auth-review.md +0 -15
- package/evals/fixtures/tiny-post-setup-missing-config-app/docs/billing-policy.md +0 -10
- package/evals/fixtures/tiny-post-setup-missing-config-app/docs/copy-conventions.md +0 -15
- package/evals/fixtures/tiny-post-setup-missing-config-app/src/auth-middleware.ts +0 -12
- package/evals/fixtures/tiny-post-setup-missing-config-app/src/billing.ts +0 -20
- package/evals/fixtures/tiny-post-setup-missing-config-app/src/login-copy.ts +0 -1
- package/evals/fixtures/tiny-post-setup-missing-config-app/src/settings-page.ts +0 -1
- package/evals/fixtures/tiny-post-setup-missing-config-app/tests/auth-middleware.test.md +0 -8
- package/evals/fixtures/tiny-post-setup-missing-config-app/tests/billing.test.md +0 -8
- package/evals/fixtures/tiny-post-setup-missing-config-app/tests/copy.test.md +0 -7
- package/evals/fixtures/tiny-post-setup-source-conflict-app/.freeflow/config.json +0 -3
- package/evals/fixtures/tiny-post-setup-source-conflict-app/AGENTS.md +0 -15
- package/evals/fixtures/tiny-post-setup-source-conflict-app/README.md +0 -16
- package/evals/fixtures/tiny-post-setup-source-conflict-app/docs/auth-review.md +0 -15
- package/evals/fixtures/tiny-post-setup-source-conflict-app/docs/billing-policy.md +0 -10
- package/evals/fixtures/tiny-post-setup-source-conflict-app/docs/copy-conventions.md +0 -15
- package/evals/fixtures/tiny-post-setup-source-conflict-app/src/auth-middleware.ts +0 -12
- package/evals/fixtures/tiny-post-setup-source-conflict-app/src/billing.ts +0 -20
- package/evals/fixtures/tiny-post-setup-source-conflict-app/src/login-copy.ts +0 -1
- package/evals/fixtures/tiny-post-setup-source-conflict-app/src/settings-page.ts +0 -1
- package/evals/fixtures/tiny-post-setup-source-conflict-app/tests/auth-middleware.test.md +0 -8
- package/evals/fixtures/tiny-post-setup-source-conflict-app/tests/billing.test.md +0 -8
- package/evals/fixtures/tiny-post-setup-source-conflict-app/tests/copy.test.md +0 -7
- package/evals/fixtures/tiny-report-performance-app/README.md +0 -11
- package/evals/fixtures/tiny-report-performance-app/docs/performance.md +0 -10
- package/evals/fixtures/tiny-report-performance-app/src/report-summary.ts +0 -29
- package/evals/fixtures/tiny-report-performance-app/tests/report-performance.test.md +0 -8
- package/evals/fixtures/tiny-review-request-app/README.md +0 -3
- package/evals/fixtures/tiny-review-request-app/docs/billing-policy.md +0 -5
- package/evals/fixtures/tiny-review-request-app/docs/plans/billing-webhook-api.md +0 -19
- package/evals/fixtures/tiny-review-request-app/docs/review/previous-agent-summary.md +0 -20
- package/evals/fixtures/tiny-review-request-app/docs/specs/billing-webhook-api.md +0 -25
- package/evals/fixtures/tiny-review-request-app/src/billing.ts +0 -11
- package/evals/fixtures/tiny-review-request-app/src/webhooks.ts +0 -19
- package/evals/fixtures/tiny-review-request-app/tests/billing-webhook.test.md +0 -8
- package/evals/fixtures/tiny-review-work-app/README.md +0 -5
- package/evals/fixtures/tiny-review-work-app/docs/billing-policy.md +0 -9
- package/evals/fixtures/tiny-review-work-app/docs/plans/settings-title-plan.md +0 -12
- package/evals/fixtures/tiny-review-work-app/docs/review/previous-agent-summary.md +0 -15
- package/evals/fixtures/tiny-review-work-app/docs/specs/settings-title.md +0 -9
- package/evals/fixtures/tiny-review-work-app/src/billing.ts +0 -7
- package/evals/fixtures/tiny-review-work-app/src/settings-page.ts +0 -1
- package/evals/fixtures/tiny-review-work-app/tests/billing.test.md +0 -7
- package/evals/fixtures/tiny-review-work-app/tests/settings.test.md +0 -5
- package/evals/fixtures/tiny-saas-app/README.md +0 -16
- package/evals/fixtures/tiny-saas-app/docs/auth-review.md +0 -15
- package/evals/fixtures/tiny-saas-app/docs/billing-policy.md +0 -10
- package/evals/fixtures/tiny-saas-app/docs/copy-conventions.md +0 -15
- package/evals/fixtures/tiny-saas-app/docs/specs/settings-title.md +0 -13
- package/evals/fixtures/tiny-saas-app/src/auth-middleware.ts +0 -12
- package/evals/fixtures/tiny-saas-app/src/billing.ts +0 -20
- package/evals/fixtures/tiny-saas-app/src/login-copy.ts +0 -1
- package/evals/fixtures/tiny-saas-app/src/settings-page.ts +0 -1
- package/evals/fixtures/tiny-saas-app/tests/auth-middleware.test.md +0 -8
- package/evals/fixtures/tiny-saas-app/tests/billing.test.md +0 -8
- package/evals/fixtures/tiny-saas-app/tests/copy.test.md +0 -7
- package/evals/fixtures/tiny-setup-agents-app/AGENTS.md +0 -6
- package/evals/fixtures/tiny-setup-both-app/AGENTS.md +0 -5
- package/evals/fixtures/tiny-setup-both-app/CLAUDE.md +0 -5
- package/evals/fixtures/tiny-setup-claude-app/CLAUDE.md +0 -6
- package/evals/fixtures/tiny-setup-codex-rules-app/.codex/rules/shell.rules +0 -5
- package/evals/fixtures/tiny-setup-codex-rules-app/AGENTS.md +0 -6
- package/evals/fixtures/tiny-setup-conflict-app/AGENTS.md +0 -6
- package/evals/fixtures/tiny-setup-existing-block-app/AGENTS.md +0 -14
- package/evals/fixtures/tiny-setup-four-rules-app/CLAUDE.md +0 -6
- package/evals/fixtures/tiny-skill-dev-app/README.md +0 -10
- package/evals/fixtures/tiny-skill-dev-app/evals/prompts/review-pr-001.txt +0 -8
- package/evals/fixtures/tiny-skill-dev-app/evals/reports/review-pr-failure.md +0 -17
- package/evals/fixtures/tiny-skill-dev-app/skills/review-pr/SKILL.md +0 -13
- package/evals/fixtures/tiny-team-app/README.md +0 -5
- package/evals/fixtures/tiny-team-app/docs/product.md +0 -6
- package/evals/fixtures/tiny-team-app/src/teams.ts +0 -9
- package/evals/fixtures/tiny-team-app/src/users.ts +0 -5
- package/evals/fixtures/tiny-team-app/tests/teams.test.md +0 -7
- package/evals/fixtures/tiny-verify-app/README.md +0 -5
- package/evals/fixtures/tiny-verify-app/src/settings-nav.ts +0 -1
- package/evals/fixtures/tiny-verify-app/src/settings-page.ts +0 -1
- package/evals/fixtures/tiny-verify-app/tests/settings.test.md +0 -7
- package/evals/prompts/aon-001.txt +0 -2
- package/evals/prompts/byp-001.txt +0 -2
- package/evals/prompts/byp-002.txt +0 -2
- package/evals/prompts/cap-001.txt +0 -3
- package/evals/prompts/cap-002.txt +0 -3
- package/evals/prompts/cmd-001.txt +0 -3
- package/evals/prompts/cmd-002.txt +0 -3
- package/evals/prompts/cmd-003.txt +0 -6
- package/evals/prompts/cmd-004.txt +0 -5
- package/evals/prompts/cmd-005.txt +0 -5
- package/evals/prompts/cmd-006.txt +0 -5
- package/evals/prompts/cmd-007.txt +0 -5
- package/evals/prompts/cmd-008.txt +0 -5
- package/evals/prompts/cmd-009.txt +0 -8
- package/evals/prompts/cmd-010.txt +0 -5
- package/evals/prompts/cmd-011.txt +0 -5
- package/evals/prompts/cmd-012.txt +0 -5
- package/evals/prompts/cmd-013.txt +0 -5
- package/evals/prompts/cmd-014.txt +0 -7
- package/evals/prompts/cmd-015.txt +0 -7
- package/evals/prompts/cmd-016.txt +0 -5
- package/evals/prompts/cmt-001.txt +0 -1
- package/evals/prompts/cmt-002.txt +0 -1
- package/evals/prompts/cmt-003.txt +0 -1
- package/evals/prompts/cmt-004.txt +0 -1
- package/evals/prompts/cmt-005.txt +0 -1
- package/evals/prompts/dfd-001.txt +0 -3
- package/evals/prompts/dia-001.txt +0 -3
- package/evals/prompts/dia-002.txt +0 -3
- package/evals/prompts/dia-003.txt +0 -3
- package/evals/prompts/dis-001.txt +0 -5
- package/evals/prompts/dis-002.txt +0 -5
- package/evals/prompts/esk-001.txt +0 -5
- package/evals/prompts/esk-002.txt +0 -5
- package/evals/prompts/esk-003.txt +0 -5
- package/evals/prompts/grc-001.txt +0 -3
- package/evals/prompts/hof-001.txt +0 -3
- package/evals/prompts/hof-002.txt +0 -1
- package/evals/prompts/hof-003.txt +0 -1
- package/evals/prompts/hof-004.txt +0 -1
- package/evals/prompts/hof-005.txt +0 -1
- package/evals/prompts/ivg-001.txt +0 -1
- package/evals/prompts/ivg-002.txt +0 -11
- package/evals/prompts/ivg-003.txt +0 -1
- package/evals/prompts/ivg-004.txt +0 -1
- package/evals/prompts/mode-001.txt +0 -3
- package/evals/prompts/mode-002.txt +0 -1
- package/evals/prompts/mode-003.txt +0 -3
- package/evals/prompts/mode-004.txt +0 -3
- package/evals/prompts/mode-005.txt +0 -3
- package/evals/prompts/mode-006.txt +0 -3
- package/evals/prompts/mode-007.txt +0 -3
- package/evals/prompts/otr-001.txt +0 -3
- package/evals/prompts/otr-002.txt +0 -3
- package/evals/prompts/rar-001.txt +0 -5
- package/evals/prompts/rar-002.txt +0 -3
- package/evals/prompts/rar-003.txt +0 -6
- package/evals/prompts/rar-004.txt +0 -15
- package/evals/prompts/rar-005.txt +0 -10
- package/evals/prompts/rbr-001.txt +0 -3
- package/evals/prompts/rbr-002.txt +0 -3
- package/evals/prompts/rbr-003.txt +0 -7
- package/evals/prompts/rev-001.txt +0 -3
- package/evals/prompts/rev-002.txt +0 -5
- package/evals/prompts/rev-003.txt +0 -6
- package/evals/prompts/rev-004.txt +0 -1
- package/evals/prompts/rev-005.txt +0 -15
- package/evals/prompts/rev-006.txt +0 -5
- package/evals/prompts/stp-001.txt +0 -1
- package/evals/prompts/stp-002.txt +0 -1
- package/evals/prompts/stp-003.txt +0 -1
- package/evals/prompts/stp-004.txt +0 -1
- package/evals/prompts/stp-005.txt +0 -1
- package/evals/prompts/stp-006.txt +0 -1
- package/evals/prompts/stp-007.txt +0 -1
- package/evals/prompts/stp-008.txt +0 -1
- package/evals/prompts/stp-009.txt +0 -1
- package/evals/prompts/stp-010.txt +0 -1
- package/evals/prompts/stp-011.txt +0 -1
- package/evals/prompts/vfy-003.txt +0 -1
- package/evals/prompts/wpl-001.txt +0 -3
- package/evals/prompts/wpl-002.txt +0 -5
- package/evals/prompts/wpl-003.txt +0 -3
- package/evals/prompts/wpl-004.txt +0 -5
- package/evals/prompts/wpl-005.txt +0 -1
- package/evals/prompts/wrc-001.txt +0 -10
- package/evals/prompts/wrc-002.txt +0 -3
- package/evals/prompts/wsk-001.txt +0 -6
- package/evals/prompts/wsp-001.txt +0 -5
- package/evals/prompts/wsp-002.txt +0 -15
- package/evals/prompts/wsp-003.txt +0 -3
- package/evals/prompts/wsp-004.txt +0 -15
- package/evals/prompts/wsp-005.txt +0 -5
- package/evals/prompts/wsp-006.txt +0 -12
- package/evals/prompts/wsp-007.txt +0 -9
- package/evals/prompts/wsp-008.txt +0 -13
- package/evals/prompts/xpl-001.txt +0 -1
- package/evals/prompts/xpl-002.txt +0 -3
- package/evals/prompts/xpl-003.txt +0 -3
- package/evals/prompts/xpl-004.txt +0 -3
- package/evals/prompts/xpl-005.txt +0 -5
- package/evals/prompts/xpl-006.txt +0 -3
- package/evals/registries/adversarial-evals.json +0 -39
- package/evals/registries/fixture-evals.json +0 -2513
- package/evals/registries/handoff-evals.json +0 -74
- package/evals/registries/legacy-evals.json +0 -147
- package/evals/registries/skill-evidence.json +0 -193
- package/evals/registries/verify-work-evals.json +0 -46
- package/evals/reports/acceptance/v0.1-acceptance-report.md +0 -130
- package/evals/reports/by-command-surface/command-surface-1-report.md +0 -45
- package/evals/reports/by-command-surface/command-surface-10-report.md +0 -76
- package/evals/reports/by-command-surface/command-surface-11-report.md +0 -77
- package/evals/reports/by-command-surface/command-surface-12-report.md +0 -91
- package/evals/reports/by-command-surface/command-surface-13-report.md +0 -64
- package/evals/reports/by-command-surface/command-surface-14-report.md +0 -66
- package/evals/reports/by-command-surface/command-surface-15-report.md +0 -124
- package/evals/reports/by-command-surface/command-surface-16-report.md +0 -39
- package/evals/reports/by-command-surface/command-surface-2-report.md +0 -80
- package/evals/reports/by-command-surface/command-surface-3-report.md +0 -86
- package/evals/reports/by-command-surface/command-surface-4-report.md +0 -76
- package/evals/reports/by-command-surface/command-surface-5-report.md +0 -80
- package/evals/reports/by-command-surface/command-surface-6-report.md +0 -74
- package/evals/reports/by-command-surface/command-surface-7-report.md +0 -84
- package/evals/reports/by-command-surface/command-surface-8-report.md +0 -79
- package/evals/reports/by-command-surface/command-surface-9-report.md +0 -79
- package/evals/reports/by-command-surface/command-surface-matrix.md +0 -91
- package/evals/reports/by-skill/bypass-1-report.md +0 -124
- package/evals/reports/by-skill/capture-decisions-1-report.md +0 -99
- package/evals/reports/by-skill/capture-decisions-2-report.md +0 -102
- package/evals/reports/by-skill/commit-work-1-report.md +0 -165
- package/evals/reports/by-skill/commit-work-2-report.md +0 -109
- package/evals/reports/by-skill/design-for-depth-1-report.md +0 -95
- package/evals/reports/by-skill/diagnose-failure-1-report.md +0 -91
- package/evals/reports/by-skill/diagnose-failure-2-report.md +0 -94
- package/evals/reports/by-skill/discover-1-report.md +0 -118
- package/evals/reports/by-skill/evaluate-skill-2-report.md +0 -71
- package/evals/reports/by-skill/execute-plan-1-report.md +0 -103
- package/evals/reports/by-skill/execute-plan-2-report.md +0 -112
- package/evals/reports/by-skill/execute-plan-3-report.md +0 -87
- package/evals/reports/by-skill/grill-context-1-report.md +0 -103
- package/evals/reports/by-skill/handoff-1-report.md +0 -123
- package/evals/reports/by-skill/handoff-2-report.md +0 -105
- package/evals/reports/by-skill/handoff-3-report.md +0 -100
- package/evals/reports/by-skill/handoff-7-report.md +0 -77
- package/evals/reports/by-skill/interview-gate-1-report.md +0 -63
- package/evals/reports/by-skill/interview-gate-2-report.md +0 -105
- package/evals/reports/by-skill/mode-contract-1-report.md +0 -74
- package/evals/reports/by-skill/mode-contract-2-report.md +0 -87
- package/evals/reports/by-skill/mode-contract-3-report.md +0 -65
- package/evals/reports/by-skill/mode-contract-4-report.md +0 -71
- package/evals/reports/by-skill/mode-contract-5-report.md +0 -70
- package/evals/reports/by-skill/output-router-1-report.md +0 -76
- package/evals/reports/by-skill/output-router-2-report.md +0 -65
- package/evals/reports/by-skill/research-1-report.md +0 -144
- package/evals/reports/by-skill/research-brief-1-report.md +0 -94
- package/evals/reports/by-skill/research-brief-2-report.md +0 -75
- package/evals/reports/by-skill/review-artifact-1-report.md +0 -91
- package/evals/reports/by-skill/review-artifact-2-report.md +0 -79
- package/evals/reports/by-skill/review-artifact-3-report.md +0 -120
- package/evals/reports/by-skill/review-artifact-4-report.md +0 -89
- package/evals/reports/by-skill/review-artifact-5-report.md +0 -66
- package/evals/reports/by-skill/review-work-1-report.md +0 -85
- package/evals/reports/by-skill/review-work-2-report.md +0 -87
- package/evals/reports/by-skill/review-work-3-report.md +0 -104
- package/evals/reports/by-skill/review-work-4-report.md +0 -108
- package/evals/reports/by-skill/review-work-5-report.md +0 -73
- package/evals/reports/by-skill/review-work-6-report.md +0 -66
- package/evals/reports/by-skill/setup-freeflow-1-report.md +0 -199
- package/evals/reports/by-skill/setup-freeflow-2-report.md +0 -105
- package/evals/reports/by-skill/setup-freeflow-3-report.md +0 -105
- package/evals/reports/by-skill/setup-freeflow-4-report.md +0 -88
- package/evals/reports/by-skill/setup-freeflow-5-report.md +0 -115
- package/evals/reports/by-skill/skill-authoring-1-report.md +0 -81
- package/evals/reports/by-skill/verify-work-1-report.md +0 -111
- package/evals/reports/by-skill/verify-work-2-report.md +0 -120
- package/evals/reports/by-skill/workflow-1-report.md +0 -65
- package/evals/reports/by-skill/write-plan-1-report.md +0 -123
- package/evals/reports/by-skill/write-plan-2-report.md +0 -98
- package/evals/reports/by-skill/write-plan-3-report.md +0 -110
- package/evals/reports/by-skill/write-spec-1-report.md +0 -88
- package/evals/reports/by-skill/write-spec-2-report.md +0 -89
- package/evals/reports/by-skill/write-spec-3-report.md +0 -90
- package/evals/reports/by-skill/write-spec-4-report.md +0 -167
- package/evals/reports/harness/claude-harness-1-report.md +0 -103
- package/evals/reports/harness/eval-harness-1-report.md +0 -91
- package/evals/reports/iterations/iteration-1-report.md +0 -71
- package/evals/reports/iterations/iteration-2-report.md +0 -78
- package/evals/reports/iterations/iteration-3-report.md +0 -118
- package/evals/reports/iterations/iteration-4-report.md +0 -131
- package/evals/reports/iterations/iteration-5-report.md +0 -149
- package/evals/reports/iterations/iteration-6-report.md +0 -136
- package/evals/reports/runtime/always-on-runtime-1-report.md +0 -107
- package/evals/reports/runtime/context-mode-normalized-benchmark-1-report.md +0 -52
- package/evals/reports/runtime/context-mode-real-deep-baseline-1-report.md +0 -410
- package/evals/reports/runtime/context-mode-real-deep-final-slice-11-report.md +0 -203
- package/evals/reports/runtime/context-mode-real-deep-final-slice-11-review.md +0 -51
- package/evals/reports/runtime/context-saving-native-tools-baseline-1-report.md +0 -99
- package/evals/reports/runtime/eryx-python-compatibility-reprobe-1-report.md +0 -166
- package/evals/reports/runtime/eryx-python-proof-spike-1-report.md +0 -96
- package/evals/reports/runtime/eryx-python-proof-spike-2-report.md +0 -151
- package/evals/reports/runtime/eryx-python-script-derive-execution-1-report.md +0 -233
- package/evals/reports/runtime/jq-script-derive-execution-1-report.md +0 -215
- package/evals/reports/runtime/jq-wasm-proof-spike-1-report.md +0 -67
- package/evals/reports/runtime/output-router-benchmark-1-report.md +0 -81
- package/evals/reports/runtime/output-router-capture-derive-provider-eval-1-report.md +0 -35
- package/evals/reports/runtime/output-router-codex-large-index-sqlite-adhoc-report.md +0 -150
- package/evals/reports/runtime/output-router-codex-qa-benchmark-1-report.md +0 -46
- package/evals/reports/runtime/output-router-command-benchmark-1-report.md +0 -62
- package/evals/reports/runtime/output-router-index-benchmark-1-report.md +0 -64
- package/evals/reports/runtime/output-router-regression-1-report.md +0 -81
- package/evals/reports/runtime/output-router-transform-eval-1-report.md +0 -28
- package/evals/reports/runtime/pi-observed-routing-eval-1-report.md +0 -44
- package/evals/reports/runtime/quickjs-script-derive-execution-1-report.md +0 -159
- package/evals/reports/runtime/quickjs-wasi-proof-spike-1-report.md +0 -55
- package/evals/reports/runtime/render-format-row-protocol-1-report.md +0 -58
- package/evals/reports/runtime/script-sandbox-adapter-selection-review-1-report.md +0 -84
- package/evals/reports/runtime/script-sandbox-probe-resource-hardening-1-report.md +0 -51
- package/evals/reports/runtime/storage-policy-benchmark-1-report.md +0 -176
- package/evals/reports/runtime/vault-index-storage-spike-1-report.md +0 -39
- package/evals/reports/runtime/workflow-context-hook-1-report.md +0 -82
- package/evals/runbooks/adversarial-eval-runbook.md +0 -28
- package/evals/runbooks/fixture-eval-runbook.md +0 -137
- package/evals/runbooks/handoff-eval-runbook.md +0 -22
- package/evals/runbooks/verify-work-eval-runbook.md +0 -27
- package/evals/scripts/audit-command-surface.sh +0 -160
- package/evals/scripts/check-activation-contract.sh +0 -121
- package/evals/scripts/check-runtime-context-hook.sh +0 -183
- package/evals/scripts/grade-fixture-eval.sh +0 -446
- package/evals/scripts/run-claude-fixture-eval.sh +0 -26
- package/evals/scripts/run-codex-fixture-eval.sh +0 -26
- package/evals/scripts/run-eryx-python-proof-spike.js +0 -559
- package/evals/scripts/run-fixture-eval-by-id.sh +0 -23
- package/evals/scripts/run-fixture-eval.sh +0 -464
- package/evals/scripts/run-jq-wasm-proof-spike.js +0 -299
- package/evals/scripts/run-output-router-transform-eval.js +0 -115
- package/evals/scripts/run-pi-observed-routing-eval.js +0 -478
- package/evals/scripts/run-quickjs-wasi-proof-spike.js +0 -339
- package/evals/scripts/skill-evidence.sh +0 -316
- package/evals/scripts/validate-release-metadata.sh +0 -486
- package/evals/suites/v0.1-acceptance-suite.md +0 -131
- package/pi-extension/dist/host-producer-identification.js +0 -186
- package/pi-extension/dist/mcp-config.js +0 -30
- package/pi-extension/dist/native-safety-net.js +0 -209
- package/pi-extension/dist/observed-tool-routing.js +0 -114
- package/pi-extension/dist/renderers.js +0 -835
- package/pi-extension/dist/router-tools.js +0 -438
- package/pi-extension/dist/runtime-context.js +0 -288
- package/pi-extension/dist/schemas.js +0 -254
- package/pi-extension/dist/status.js +0 -449
- package/pi-extension/dist/utils.js +0 -467
- package/pi-extension/src/runtime-context.ts +0 -347
- package/pi-extension/src/status.ts +0 -505
- package/plugin-docs/README.md +0 -40
- package/plugin-docs/adr/0001-three-modes.md +0 -27
- package/plugin-docs/adr/0002-evals-before-hooks.md +0 -17
- package/plugin-docs/adr/0003-release-boundary.md +0 -21
- package/plugin-docs/adr/0004-discover-replaces-shallow-discovery-skills.md +0 -26
- package/plugin-docs/adr/README.md +0 -10
- package/plugin-docs/architecture.md +0 -89
- package/plugin-docs/output-router.md +0 -396
- package/plugin-docs/release-evidence.md +0 -77
- package/plugin-docs/skills.md +0 -44
- package/plugin-docs/workflow.md +0 -57
- package/skills/diagnose-failure/references/feedback-loop-catalog.md +0 -25
- package/skills/discover/ARTIFACT-DESTINATIONS.md +0 -58
- package/skills/discover/CHECKPOINTS.md +0 -74
- package/skills/discover/SKILL.md +0 -173
- package/skills/evaluate-skill/references/eval-patterns.md +0 -41
- package/skills/evaluate-skill/references/grading-priority.md +0 -33
- package/skills/execute-plan/SKILL.md +0 -133
- package/skills/execute-plan/references/execution-map.md +0 -122
- package/skills/interview-gate/SKILL.md +0 -90
- package/skills/setup-freeflow/references/output-router-setup.md +0 -102
- package/skills/workflow/references/workflow-map.md +0 -104
- /package/pi-extension/src/{mcp-config.ts → integrations/mcp-config.ts} +0 -0
|
@@ -1,4 +1,13 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {
|
|
2
|
+
discoverEryxPythonSandboxAdaptersFromEnv,
|
|
3
|
+
discoverJqWasmSandboxAdaptersFromEnv,
|
|
4
|
+
discoverQuickJsWasiSandboxAdaptersFromEnv,
|
|
5
|
+
freeflowBatch,
|
|
6
|
+
freeflowTransform,
|
|
7
|
+
freeflowSearch,
|
|
8
|
+
freeflowRun,
|
|
9
|
+
processSource,
|
|
10
|
+
} from "../../../router/dist/index.js";
|
|
2
11
|
import { buildFreeflowStatusReport } from "./status.js";
|
|
3
12
|
import {
|
|
4
13
|
renderFreeflowBatchCall,
|
|
@@ -10,9 +19,20 @@ import {
|
|
|
10
19
|
renderFreeflowStatusCall,
|
|
11
20
|
renderFreeflowStatusResult,
|
|
12
21
|
} from "./renderers.js";
|
|
13
|
-
import { readOutputRouterConfig, notifyRouterConfigWarnings } from "
|
|
14
|
-
import {
|
|
15
|
-
|
|
22
|
+
import { readOutputRouterConfig, notifyRouterConfigWarnings } from "../runtime/runtime-context.js";
|
|
23
|
+
import {
|
|
24
|
+
FREEFLOW_BATCH_PARAMETERS,
|
|
25
|
+
FREEFLOW_RUN_PARAMETERS,
|
|
26
|
+
FREEFLOW_SEARCH_PARAMETERS,
|
|
27
|
+
FREEFLOW_STATUS_PARAMETERS,
|
|
28
|
+
} from "./schemas.js";
|
|
29
|
+
import {
|
|
30
|
+
compactBatchToolText,
|
|
31
|
+
compactRunToolText,
|
|
32
|
+
compactSearchToolText,
|
|
33
|
+
getRouterSessionId,
|
|
34
|
+
routedToolText,
|
|
35
|
+
} from "./utils.js";
|
|
16
36
|
|
|
17
37
|
function normalizeTransformOperation(operation) {
|
|
18
38
|
if (!operation || typeof operation !== "object" || Array.isArray(operation)) {
|
|
@@ -70,7 +90,7 @@ async function normalizeTransformParams(params, ctx) {
|
|
|
70
90
|
}
|
|
71
91
|
|
|
72
92
|
async function normalizeSearchEvidenceParams(params, ctx, providedRouterConfigResult = undefined) {
|
|
73
|
-
const routerConfigResult = providedRouterConfigResult ?? await readOutputRouterConfig(ctx.cwd);
|
|
93
|
+
const routerConfigResult = providedRouterConfigResult ?? (await readOutputRouterConfig(ctx.cwd));
|
|
74
94
|
if (!providedRouterConfigResult) {
|
|
75
95
|
notifyRouterConfigWarnings(ctx, routerConfigResult);
|
|
76
96
|
}
|
|
@@ -88,6 +108,21 @@ async function normalizeSearchEvidenceParams(params, ctx, providedRouterConfigRe
|
|
|
88
108
|
};
|
|
89
109
|
}
|
|
90
110
|
|
|
111
|
+
if (source.kind === "local") {
|
|
112
|
+
if (!source.root) {
|
|
113
|
+
throw new Error("freeflow_search source.kind=local requires an explicit absolute source.root.");
|
|
114
|
+
}
|
|
115
|
+
return {
|
|
116
|
+
...params,
|
|
117
|
+
generatedPathGlobs: routerConfigResult.config.hints?.generatedPathGlobs,
|
|
118
|
+
source: {
|
|
119
|
+
kind: "local",
|
|
120
|
+
root: source.root,
|
|
121
|
+
...(source.path ? { path: source.path } : {}),
|
|
122
|
+
},
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
|
|
91
126
|
if (source.kind === "vault") {
|
|
92
127
|
if (!source.outputId && params.action !== "query" && params.action !== "locate" && params.action !== "get") {
|
|
93
128
|
throw new Error("freeflow_search source.kind=vault requires source.outputId for retrieve, expand, and explain.");
|
|
@@ -141,6 +176,37 @@ async function normalizeSearchTransformProcessingParams(params, ctx, routerConfi
|
|
|
141
176
|
};
|
|
142
177
|
}
|
|
143
178
|
|
|
179
|
+
if (source.kind === "local") {
|
|
180
|
+
if (!source.root) {
|
|
181
|
+
throw new Error("freeflow_search action=transform source.kind=local requires an explicit absolute source.root.");
|
|
182
|
+
}
|
|
183
|
+
if (!source.path) {
|
|
184
|
+
throw new Error(
|
|
185
|
+
"freeflow_search action=transform source.kind=local requires source.path for an explicit local file.",
|
|
186
|
+
);
|
|
187
|
+
}
|
|
188
|
+
return {
|
|
189
|
+
source: { kind: "local-file", root: source.root, path: source.path },
|
|
190
|
+
options: {
|
|
191
|
+
sessionId: getRouterSessionId(ctx),
|
|
192
|
+
vaultRoot: routerConfigResult.config.vault.root,
|
|
193
|
+
vaultRetention: routerConfigResult.config.vault.retention,
|
|
194
|
+
goal: params.goal,
|
|
195
|
+
limits: params.limits,
|
|
196
|
+
script: params.script,
|
|
197
|
+
scriptTransform: routerConfigResult.freeflowConfig.scriptTransform,
|
|
198
|
+
localConfig: routerConfigResult.localConfig,
|
|
199
|
+
scriptSandboxAdapters: params.script
|
|
200
|
+
? [
|
|
201
|
+
...(await discoverQuickJsWasiSandboxAdaptersFromEnv()),
|
|
202
|
+
...(await discoverJqWasmSandboxAdaptersFromEnv()),
|
|
203
|
+
...(await discoverEryxPythonSandboxAdaptersFromEnv()),
|
|
204
|
+
]
|
|
205
|
+
: [],
|
|
206
|
+
},
|
|
207
|
+
};
|
|
208
|
+
}
|
|
209
|
+
|
|
144
210
|
if (source.kind === "vault") {
|
|
145
211
|
if (!source.outputId) {
|
|
146
212
|
throw new Error("freeflow_search action=transform source.kind=vault requires source.outputId.");
|
|
@@ -180,13 +246,14 @@ async function executeSearch(params, ctx, routerConfigResult) {
|
|
|
180
246
|
if (params.action === "transform") {
|
|
181
247
|
if (params.operation) {
|
|
182
248
|
const normalized = await normalizeTransformParams(params, ctx);
|
|
183
|
-
const scriptSandboxAdapters =
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
249
|
+
const scriptSandboxAdapters =
|
|
250
|
+
normalized.operation?.kind === "script"
|
|
251
|
+
? [
|
|
252
|
+
...(await discoverQuickJsWasiSandboxAdaptersFromEnv()),
|
|
253
|
+
...(await discoverJqWasmSandboxAdaptersFromEnv()),
|
|
254
|
+
...(await discoverEryxPythonSandboxAdaptersFromEnv()),
|
|
255
|
+
]
|
|
256
|
+
: [];
|
|
190
257
|
return freeflowTransform({
|
|
191
258
|
...normalized,
|
|
192
259
|
sessionId: getRouterSessionId(ctx),
|
|
@@ -235,7 +302,9 @@ async function normalizeBatchParams(params, ctx, routerConfigResult) {
|
|
|
235
302
|
}
|
|
236
303
|
if (step.kind === "search") {
|
|
237
304
|
if (input.action === "transform") {
|
|
238
|
-
throw new Error(
|
|
305
|
+
throw new Error(
|
|
306
|
+
"freeflow_batch search transform steps are not public yet; use freeflow_search directly for transform processing.",
|
|
307
|
+
);
|
|
239
308
|
}
|
|
240
309
|
steps.push({
|
|
241
310
|
id: step.id,
|
|
@@ -273,6 +342,25 @@ function batchNeedsScriptAdapters(params) {
|
|
|
273
342
|
});
|
|
274
343
|
}
|
|
275
344
|
|
|
345
|
+
function disabledByConfigToolResult(toolName) {
|
|
346
|
+
return {
|
|
347
|
+
content: [
|
|
348
|
+
{
|
|
349
|
+
type: "text",
|
|
350
|
+
text: `${toolName}|disabled_by_config\ncapability|output-router\nroute|configure with /output-router settings`,
|
|
351
|
+
},
|
|
352
|
+
],
|
|
353
|
+
details: {
|
|
354
|
+
result: {
|
|
355
|
+
toolStatus: "disabled_by_config",
|
|
356
|
+
toolName,
|
|
357
|
+
capability: "output-router",
|
|
358
|
+
route: "/output-router settings",
|
|
359
|
+
},
|
|
360
|
+
},
|
|
361
|
+
};
|
|
362
|
+
}
|
|
363
|
+
|
|
276
364
|
function createPiCommandRunner(pi, signal) {
|
|
277
365
|
return {
|
|
278
366
|
async run(request) {
|
|
@@ -286,7 +374,9 @@ function createPiCommandRunner(pi, signal) {
|
|
|
286
374
|
const durationMs = Date.now() - startedAt;
|
|
287
375
|
const killed = Boolean(result.killed);
|
|
288
376
|
const code = typeof result.code === "number" ? result.code : null;
|
|
289
|
-
const executionStatus = (
|
|
377
|
+
const executionStatus = (
|
|
378
|
+
signal?.aborted ? "cancelled" : killed ? "timed_out" : code === 0 ? "success" : "failed"
|
|
379
|
+
) as "cancelled" | "timed_out" | "success" | "failed";
|
|
290
380
|
return {
|
|
291
381
|
stdout: result.stdout ?? "",
|
|
292
382
|
stderr: result.stderr ?? "",
|
|
@@ -304,7 +394,8 @@ export function registerRouterTools(pi) {
|
|
|
304
394
|
label: "Freeflow Status",
|
|
305
395
|
description:
|
|
306
396
|
"Inspect effective Freeflow router, observed-routing, script-transform, vault, warnings, and non-destructive migration recommendations.",
|
|
307
|
-
promptSnippet:
|
|
397
|
+
promptSnippet:
|
|
398
|
+
"Inspect Freeflow effective config, observed routing, script transform, vault status, and migration recommendations.",
|
|
308
399
|
promptGuidelines: [
|
|
309
400
|
"Use freeflow_status when setup/config/status/doctor evidence is needed.",
|
|
310
401
|
"Status and migration recommendations are read-only; do not rewrite .freeflow/config.json without explicit confirmation.",
|
|
@@ -329,10 +420,11 @@ export function registerRouterTools(pi) {
|
|
|
329
420
|
name: "freeflow_search",
|
|
330
421
|
label: "Freeflow Search",
|
|
331
422
|
description:
|
|
332
|
-
"Search, retrieve, expand, explain, or transform repo and vaulted Freeflow evidence. Returns compact facts with recoverable source pointers.",
|
|
333
|
-
promptSnippet:
|
|
423
|
+
"Search, retrieve, expand, explain, or transform repo, explicit local, and vaulted Freeflow evidence. Returns compact facts with recoverable source pointers.",
|
|
424
|
+
promptSnippet:
|
|
425
|
+
"Search repo/local/vault evidence or transform file/output sources with compact recoverable results.",
|
|
334
426
|
promptGuidelines: [
|
|
335
|
-
"Use freeflow_search for targeted repo or vault evidence before reading whole files or dumping captured output.",
|
|
427
|
+
"Use freeflow_search for targeted repo, explicit local, or vault evidence before reading whole files or dumping captured output.",
|
|
336
428
|
"Use freeflow_search with source.kind=vault and an outputId to recover exact output from freeflow_run.",
|
|
337
429
|
"Use freeflow_search action=transform for file/output processing through deterministic reducers or explicit scripts.",
|
|
338
430
|
],
|
|
@@ -340,6 +432,9 @@ export function registerRouterTools(pi) {
|
|
|
340
432
|
async execute(_toolCallId, params, _signal, _onUpdate, ctx) {
|
|
341
433
|
const routerConfigResult = await readOutputRouterConfig(ctx.cwd);
|
|
342
434
|
notifyRouterConfigWarnings(ctx, routerConfigResult);
|
|
435
|
+
if (!routerConfigResult.config.enabled) {
|
|
436
|
+
return disabledByConfigToolResult("freeflow_search");
|
|
437
|
+
}
|
|
343
438
|
const result = await executeSearch(params, ctx, routerConfigResult);
|
|
344
439
|
return {
|
|
345
440
|
content: [{ type: "text", text: compactSearchToolText(result) }],
|
|
@@ -369,14 +464,18 @@ export function registerRouterTools(pi) {
|
|
|
369
464
|
async execute(_toolCallId, params, signal, _onUpdate, ctx) {
|
|
370
465
|
const routerConfigResult = await readOutputRouterConfig(ctx.cwd);
|
|
371
466
|
notifyRouterConfigWarnings(ctx, routerConfigResult);
|
|
467
|
+
if (!routerConfigResult.config.enabled) {
|
|
468
|
+
return disabledByConfigToolResult("freeflow_run");
|
|
469
|
+
}
|
|
372
470
|
const runner = createPiCommandRunner(pi, signal);
|
|
373
|
-
const scriptSandboxAdapters =
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
471
|
+
const scriptSandboxAdapters =
|
|
472
|
+
params.script || params.scriptFilter
|
|
473
|
+
? [
|
|
474
|
+
...(await discoverQuickJsWasiSandboxAdaptersFromEnv()),
|
|
475
|
+
...(await discoverJqWasmSandboxAdaptersFromEnv()),
|
|
476
|
+
...(await discoverEryxPythonSandboxAdaptersFromEnv()),
|
|
477
|
+
]
|
|
478
|
+
: [];
|
|
380
479
|
const result = await freeflowRun(
|
|
381
480
|
{
|
|
382
481
|
command: params.command,
|
|
@@ -421,18 +520,21 @@ export function registerRouterTools(pi) {
|
|
|
421
520
|
name: "freeflow_batch",
|
|
422
521
|
label: "Freeflow Batch",
|
|
423
522
|
description:
|
|
424
|
-
"Run independent Freeflow-owned operations in parallel and return one compact summary while preserving full child results in details.result.steps.",
|
|
523
|
+
"Run independent Freeflow-owned run/search operations in parallel and return one compact summary while preserving full child results in details.result.steps.",
|
|
425
524
|
promptSnippet: "Batch independent Freeflow run/search operations with compact model-visible output.",
|
|
426
525
|
promptGuidelines: [
|
|
427
|
-
"Use freeflow_batch when several independent Freeflow
|
|
526
|
+
"Use freeflow_batch when several independent Freeflow run/search operations can run in parallel.",
|
|
428
527
|
"Use queries[] when the batch should answer deterministic fact requests from completed child evidence handles.",
|
|
429
|
-
"Do not use freeflow_batch for sequenced workflows, arbitrary external tool orchestration, or
|
|
528
|
+
"Do not use freeflow_batch for sequenced workflows, arbitrary external tool orchestration, or unsafe parallel writer behavior.",
|
|
430
529
|
"Intermediate child outputs are suppressed unless needed for query answers; inspect details.result.steps or child recovery ids when needed.",
|
|
431
530
|
],
|
|
432
531
|
parameters: FREEFLOW_BATCH_PARAMETERS,
|
|
433
532
|
async execute(_toolCallId, params, signal, _onUpdate, ctx) {
|
|
434
533
|
const routerConfigResult = await readOutputRouterConfig(ctx.cwd);
|
|
435
534
|
notifyRouterConfigWarnings(ctx, routerConfigResult);
|
|
535
|
+
if (!routerConfigResult.config.enabled) {
|
|
536
|
+
return disabledByConfigToolResult("freeflow_batch");
|
|
537
|
+
}
|
|
436
538
|
const normalized = await normalizeBatchParams(params, ctx, routerConfigResult);
|
|
437
539
|
const runner = createPiCommandRunner(pi, signal);
|
|
438
540
|
const scriptSandboxAdapters = batchNeedsScriptAdapters(params)
|
|
@@ -474,5 +576,4 @@ export function registerRouterTools(pi) {
|
|
|
474
576
|
return renderFreeflowBatchResult(result, options, theme);
|
|
475
577
|
},
|
|
476
578
|
});
|
|
477
|
-
|
|
478
579
|
}
|
|
@@ -48,47 +48,111 @@ export const FREEFLOW_SEARCH_PARAMETERS = {
|
|
|
48
48
|
type: "object",
|
|
49
49
|
additionalProperties: false,
|
|
50
50
|
properties: {
|
|
51
|
-
action: {
|
|
51
|
+
action: {
|
|
52
|
+
...SEARCH_ACTION_SCHEMA,
|
|
53
|
+
description: "Search/retrieval action to perform, or transform to process a repo/local/vault source.",
|
|
54
|
+
},
|
|
52
55
|
source: {
|
|
53
56
|
type: "object",
|
|
54
57
|
additionalProperties: false,
|
|
55
58
|
properties: {
|
|
56
|
-
kind: { type: "string", enum: ["repo", "vault"] },
|
|
57
|
-
|
|
58
|
-
|
|
59
|
+
kind: { type: "string", enum: ["repo", "local", "vault"] },
|
|
60
|
+
root: { ...STRING_SCHEMA, description: "Absolute local root for source.kind=local." },
|
|
61
|
+
path: {
|
|
62
|
+
...STRING_SCHEMA,
|
|
63
|
+
description: "Repo path for source.kind=repo, or relative local path for source.kind=local.",
|
|
64
|
+
},
|
|
65
|
+
outputId: {
|
|
66
|
+
...STRING_SCHEMA,
|
|
67
|
+
description: "Vault output id for source.kind=vault. Optional for vault query/locate.",
|
|
68
|
+
},
|
|
59
69
|
stream: { ...STREAM_SCHEMA, description: "Vault stream to read or filter." },
|
|
60
|
-
producerKind: {
|
|
70
|
+
producerKind: {
|
|
71
|
+
type: "string",
|
|
72
|
+
enum: ["command", "script", "native", "repo", "web", "fetch", "code_search", "mcp", "transform", "other"],
|
|
73
|
+
description: "Vault index producer-kind filter for source.kind=vault query/locate.",
|
|
74
|
+
},
|
|
61
75
|
server: { ...STRING_SCHEMA, description: "Vault index MCP server filter for source.kind=vault query/locate." },
|
|
62
76
|
tool: { ...STRING_SCHEMA, description: "Vault index MCP/tool filter for source.kind=vault query/locate." },
|
|
63
|
-
hostToolName: {
|
|
64
|
-
|
|
65
|
-
|
|
77
|
+
hostToolName: {
|
|
78
|
+
...STRING_SCHEMA,
|
|
79
|
+
description: "Vault index host-tool filter for source.kind=vault query/locate.",
|
|
80
|
+
},
|
|
81
|
+
recordKind: {
|
|
82
|
+
type: "string",
|
|
83
|
+
enum: ["command", "text", "metadata", "repo-file"],
|
|
84
|
+
description: "Vault record-kind filter for source.kind=vault query/locate.",
|
|
85
|
+
},
|
|
86
|
+
recoverability: {
|
|
87
|
+
type: "string",
|
|
88
|
+
enum: ["exact", "redacted", "metadata_only", "none"],
|
|
89
|
+
description: "Vault recoverability filter for source.kind=vault query/locate.",
|
|
90
|
+
},
|
|
66
91
|
},
|
|
67
92
|
required: ["kind"],
|
|
68
|
-
description:
|
|
93
|
+
description:
|
|
94
|
+
"Source to search, retrieve, or transform. Repo root and vault session are supplied by Freeflow/Pi; local sources require an explicit absolute root per call.",
|
|
69
95
|
},
|
|
70
96
|
query: { ...STRING_SCHEMA, description: "Text query for query/locate actions." },
|
|
71
|
-
goal: {
|
|
97
|
+
goal: {
|
|
98
|
+
...STRING_SCHEMA,
|
|
99
|
+
description: "Goal for action=transform, such as log analysis, CSV summary, or test output processing.",
|
|
100
|
+
},
|
|
72
101
|
script: {
|
|
73
102
|
type: "object",
|
|
74
103
|
additionalProperties: false,
|
|
75
104
|
properties: {
|
|
76
105
|
language: { ...SCRIPT_LANGUAGE_SCHEMA, description: "Processing script language." },
|
|
77
|
-
code: {
|
|
106
|
+
code: {
|
|
107
|
+
...NON_EMPTY_STRING_SCHEMA,
|
|
108
|
+
description: "Processing script code. Raw code is not persisted by default.",
|
|
109
|
+
},
|
|
78
110
|
label: { ...NON_EMPTY_STRING_SCHEMA, description: "Optional script label." },
|
|
79
|
-
alias: {
|
|
80
|
-
|
|
81
|
-
|
|
111
|
+
alias: {
|
|
112
|
+
type: "string",
|
|
113
|
+
pattern: "^[A-Za-z][A-Za-z0-9_-]{0,63}$",
|
|
114
|
+
description: "Input source alias exposed to the processing script.",
|
|
115
|
+
},
|
|
116
|
+
policy: {
|
|
117
|
+
type: "string",
|
|
118
|
+
enum: ["sandboxed", "unsafe-unsandboxed"],
|
|
119
|
+
description: "Script execution policy. unsafe-unsandboxed requires local-only opt-in and is visibly labeled.",
|
|
120
|
+
},
|
|
121
|
+
limits: {
|
|
122
|
+
...SCRIPT_LIMITS_SCHEMA,
|
|
123
|
+
description: "Script resource limits. They only tighten configured limits.",
|
|
124
|
+
},
|
|
82
125
|
},
|
|
83
126
|
required: ["language", "code"],
|
|
84
|
-
description:
|
|
127
|
+
description:
|
|
128
|
+
"Optional programmable processing for action=transform. Sandboxed remains default; unsafe-unsandboxed requires .freeflow/local.json opt-in.",
|
|
85
129
|
},
|
|
86
130
|
operation: {
|
|
87
131
|
type: "object",
|
|
88
132
|
additionalProperties: false,
|
|
89
133
|
properties: {
|
|
90
|
-
kind: {
|
|
91
|
-
|
|
134
|
+
kind: {
|
|
135
|
+
type: "string",
|
|
136
|
+
enum: [
|
|
137
|
+
"regexFilter",
|
|
138
|
+
"countMatches",
|
|
139
|
+
"jsonExtract",
|
|
140
|
+
"groupByRegex",
|
|
141
|
+
"dedupe",
|
|
142
|
+
"topN",
|
|
143
|
+
"extractUrls",
|
|
144
|
+
"extractCitations",
|
|
145
|
+
"lineStats",
|
|
146
|
+
"sizeStats",
|
|
147
|
+
"script",
|
|
148
|
+
],
|
|
149
|
+
description:
|
|
150
|
+
"Deterministic transform operation for action=transform over vaulted output, or sandboxed script transform.",
|
|
151
|
+
},
|
|
152
|
+
pattern: {
|
|
153
|
+
...NON_EMPTY_STRING_SCHEMA,
|
|
154
|
+
description: "Regex pattern for regexFilter, countMatches, groupByRegex, or regex-backed topN.",
|
|
155
|
+
},
|
|
92
156
|
flags: REGEX_FLAGS_SCHEMA,
|
|
93
157
|
pointer: { ...STRING_SCHEMA, pattern: JSON_POINTER_PATTERN, description: "JSON Pointer for jsonExtract." },
|
|
94
158
|
path: { ...NON_EMPTY_STRING_SCHEMA, pattern: JSON_PATH_PATTERN, description: "JSON path for jsonExtract." },
|
|
@@ -109,7 +173,8 @@ export const FREEFLOW_SEARCH_PARAMETERS = {
|
|
|
109
173
|
label: NON_EMPTY_STRING_SCHEMA,
|
|
110
174
|
},
|
|
111
175
|
required: ["kind"],
|
|
112
|
-
description:
|
|
176
|
+
description:
|
|
177
|
+
"Optional deterministic transform operation for action=transform. Existing source raw output remains recoverable by lineage when available.",
|
|
113
178
|
},
|
|
114
179
|
sources: {
|
|
115
180
|
type: "array",
|
|
@@ -132,7 +197,10 @@ export const FREEFLOW_SEARCH_PARAMETERS = {
|
|
|
132
197
|
type: "object",
|
|
133
198
|
additionalProperties: false,
|
|
134
199
|
properties: {
|
|
135
|
-
producerKind: {
|
|
200
|
+
producerKind: {
|
|
201
|
+
type: "string",
|
|
202
|
+
enum: ["command", "script", "native", "repo", "web", "fetch", "code_search", "mcp", "transform", "other"],
|
|
203
|
+
},
|
|
136
204
|
server: STRING_SCHEMA,
|
|
137
205
|
tool: STRING_SCHEMA,
|
|
138
206
|
hostToolName: STRING_SCHEMA,
|
|
@@ -150,7 +218,11 @@ export const FREEFLOW_SEARCH_PARAMETERS = {
|
|
|
150
218
|
},
|
|
151
219
|
expansion: { ...EXPANSION_SCHEMA, description: "Expansion breadth for expand action." },
|
|
152
220
|
maxFullBytes: { type: "number", description: "Cap for preserve=full before exact chunks are returned." },
|
|
153
|
-
topK: {
|
|
221
|
+
topK: {
|
|
222
|
+
type: "number",
|
|
223
|
+
description:
|
|
224
|
+
"Number of ranked repo, local, or vault candidates for query/locate. Defaults: query=1, locate=5; max 10.",
|
|
225
|
+
},
|
|
154
226
|
lineRange: {
|
|
155
227
|
type: "object",
|
|
156
228
|
additionalProperties: false,
|
|
@@ -173,25 +245,42 @@ export const FREEFLOW_SEARCH_PARAMETERS = {
|
|
|
173
245
|
export const FREEFLOW_RUN_PARAMETERS = {
|
|
174
246
|
type: "object",
|
|
175
247
|
additionalProperties: false,
|
|
176
|
-
oneOf: [
|
|
177
|
-
{ required: ["command"] },
|
|
178
|
-
{ required: ["script"] },
|
|
179
|
-
],
|
|
248
|
+
oneOf: [{ required: ["command"] }, { required: ["script"] }],
|
|
180
249
|
properties: {
|
|
181
|
-
command: {
|
|
250
|
+
command: {
|
|
251
|
+
...STRING_SCHEMA,
|
|
252
|
+
description: "Shell command to run through Pi's approved command runner. Mutually exclusive with script.",
|
|
253
|
+
},
|
|
182
254
|
script: {
|
|
183
255
|
type: "object",
|
|
184
256
|
additionalProperties: false,
|
|
185
257
|
properties: {
|
|
186
|
-
language: {
|
|
187
|
-
|
|
258
|
+
language: {
|
|
259
|
+
...SCRIPT_LANGUAGE_SCHEMA,
|
|
260
|
+
description:
|
|
261
|
+
"Sandboxed script language. Requires configured scriptTransform.enabled and a proof-backed adapter.",
|
|
262
|
+
},
|
|
263
|
+
code: {
|
|
264
|
+
...NON_EMPTY_STRING_SCHEMA,
|
|
265
|
+
description:
|
|
266
|
+
"Script code to run as the base producer. Raw code is not persisted; metadata stores a code hash.",
|
|
267
|
+
},
|
|
188
268
|
label: { ...NON_EMPTY_STRING_SCHEMA, description: "Optional script producer label." },
|
|
189
|
-
limits: {
|
|
269
|
+
limits: {
|
|
270
|
+
...SCRIPT_LIMITS_SCHEMA,
|
|
271
|
+
description:
|
|
272
|
+
"Script resource limits. They only tighten configured scriptTransform defaults. Top-level timeoutMs is used as timeoutMs when script.limits.timeoutMs is omitted.",
|
|
273
|
+
},
|
|
190
274
|
},
|
|
191
275
|
required: ["language", "code"],
|
|
192
|
-
description:
|
|
276
|
+
description:
|
|
277
|
+
"Sandboxed script to run as the base producer for freeflow_run. Mutually exclusive with command. Captured stdout/stderr route through normal run storage, parsing, filtering, and recovery.",
|
|
278
|
+
},
|
|
279
|
+
cwd: {
|
|
280
|
+
...STRING_SCHEMA,
|
|
281
|
+
description:
|
|
282
|
+
"Working directory. Defaults to the current Pi cwd. For sandboxed script producers this is metadata only; repo/home/env/network are not mounted.",
|
|
193
283
|
},
|
|
194
|
-
cwd: { ...STRING_SCHEMA, description: "Working directory. Defaults to the current Pi cwd. For sandboxed script producers this is metadata only; repo/home/env/network are not mounted." },
|
|
195
284
|
timeoutMs: { type: "number", description: "Optional timeout in milliseconds." },
|
|
196
285
|
preserve: { ...PRESERVE_SCHEMA, description: "Fidelity mode. Default: important." },
|
|
197
286
|
goal: { ...STRING_SCHEMA, description: "Goal such as verification, test, build, or search." },
|
|
@@ -199,33 +288,56 @@ export const FREEFLOW_RUN_PARAMETERS = {
|
|
|
199
288
|
type: "object",
|
|
200
289
|
additionalProperties: false,
|
|
201
290
|
properties: {
|
|
202
|
-
stream: {
|
|
203
|
-
|
|
204
|
-
|
|
291
|
+
stream: {
|
|
292
|
+
...RUN_FILTER_STREAM_SCHEMA,
|
|
293
|
+
description: "Output stream to filter. Defaults to Freeflow's selected routed stream.",
|
|
294
|
+
},
|
|
295
|
+
include: {
|
|
296
|
+
type: "array",
|
|
297
|
+
items: NON_EMPTY_STRING_SCHEMA,
|
|
298
|
+
description: "Regex patterns; keep lines matching any pattern.",
|
|
299
|
+
},
|
|
300
|
+
exclude: {
|
|
301
|
+
type: "array",
|
|
302
|
+
items: NON_EMPTY_STRING_SCHEMA,
|
|
303
|
+
description: "Regex patterns; drop lines matching any pattern after include filtering.",
|
|
304
|
+
},
|
|
205
305
|
flags: REGEX_FLAGS_SCHEMA,
|
|
206
306
|
head: { type: "integer", minimum: 1, description: "Keep the first N filtered lines." },
|
|
207
|
-
tail: {
|
|
307
|
+
tail: {
|
|
308
|
+
type: "integer",
|
|
309
|
+
minimum: 1,
|
|
310
|
+
description: "Keep the last N filtered lines. With head, returns the union of both spans.",
|
|
311
|
+
},
|
|
208
312
|
maxLines: { type: "integer", minimum: 1, description: "Maximum filtered lines to return." },
|
|
209
313
|
maxBytes: { type: "integer", minimum: 1, description: "Maximum bytes of filtered evidence to return." },
|
|
210
314
|
},
|
|
211
|
-
description:
|
|
315
|
+
description:
|
|
316
|
+
"Declarative line filters applied after raw capture and before routed evidence is returned. Exact raw output remains recoverable.",
|
|
212
317
|
},
|
|
213
318
|
scriptFilter: {
|
|
214
319
|
type: "object",
|
|
215
320
|
additionalProperties: false,
|
|
216
321
|
properties: {
|
|
217
|
-
language: {
|
|
322
|
+
language: {
|
|
323
|
+
...SCRIPT_LANGUAGE_SCHEMA,
|
|
324
|
+
description:
|
|
325
|
+
"Sandboxed script language. Requires configured scriptTransform.enabled and a proof-backed adapter.",
|
|
326
|
+
},
|
|
218
327
|
code: { ...NON_EMPTY_STRING_SCHEMA, description: "Script code. Raw code is not persisted by default." },
|
|
219
328
|
label: { ...NON_EMPTY_STRING_SCHEMA, description: "Optional script filter label." },
|
|
220
|
-
limits: {
|
|
329
|
+
limits: {
|
|
330
|
+
...SCRIPT_LIMITS_SCHEMA,
|
|
331
|
+
description: "Script resource limits. They only tighten configured scriptTransform defaults.",
|
|
332
|
+
},
|
|
221
333
|
},
|
|
222
334
|
required: ["language", "code"],
|
|
223
|
-
description:
|
|
335
|
+
description:
|
|
336
|
+
"Sandboxed programmable filter over captured stdout/stderr/combined after raw command output is vaulted. No unsandboxed fallback is used.",
|
|
224
337
|
},
|
|
225
338
|
},
|
|
226
339
|
};
|
|
227
340
|
|
|
228
|
-
|
|
229
341
|
export const FREEFLOW_BATCH_PARAMETERS = {
|
|
230
342
|
type: "object",
|
|
231
343
|
additionalProperties: false,
|
|
@@ -239,12 +351,23 @@ export const FREEFLOW_BATCH_PARAMETERS = {
|
|
|
239
351
|
additionalProperties: false,
|
|
240
352
|
properties: {
|
|
241
353
|
id: { ...NON_EMPTY_STRING_SCHEMA, description: "Optional stable step id for matching results." },
|
|
242
|
-
kind: {
|
|
243
|
-
|
|
354
|
+
kind: {
|
|
355
|
+
type: "string",
|
|
356
|
+
enum: ["run", "search"],
|
|
357
|
+
description:
|
|
358
|
+
"Freeflow-owned public operation kind. Steps are independent and run in parallel when their safety contracts allow it.",
|
|
359
|
+
},
|
|
360
|
+
input: {
|
|
361
|
+
type: "object",
|
|
362
|
+
additionalProperties: true,
|
|
363
|
+
description:
|
|
364
|
+
"Input for the selected Freeflow operation. Uses the same shape as freeflow_run or freeflow_search.",
|
|
365
|
+
},
|
|
244
366
|
},
|
|
245
367
|
required: ["kind", "input"],
|
|
246
368
|
},
|
|
247
|
-
description:
|
|
369
|
+
description:
|
|
370
|
+
"Independent Freeflow-owned steps to run in parallel. No sequencing, arbitrary external tool orchestration, or unsafe parallel writer behavior.",
|
|
248
371
|
},
|
|
249
372
|
queries: {
|
|
250
373
|
type: "array",
|
|
@@ -252,7 +375,12 @@ export const FREEFLOW_BATCH_PARAMETERS = {
|
|
|
252
375
|
items: { ...NON_EMPTY_STRING_SCHEMA, maxLength: 500 },
|
|
253
376
|
description: "Optional independent query/fact requests to answer from completed child evidence handles.",
|
|
254
377
|
},
|
|
255
|
-
concurrency: {
|
|
378
|
+
concurrency: {
|
|
379
|
+
type: "integer",
|
|
380
|
+
minimum: 1,
|
|
381
|
+
maximum: 16,
|
|
382
|
+
description: "Maximum number of independent steps to run at once. Default: 4.",
|
|
383
|
+
},
|
|
256
384
|
preserve: { ...PRESERVE_SCHEMA, description: "Default fidelity mode for steps that do not set preserve." },
|
|
257
385
|
},
|
|
258
386
|
required: ["steps"],
|