@hassangameryt/freeflow 0.1.0 → 0.3.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/.agents/plugins/marketplace.json +1 -1
- package/.claude-plugin/marketplace.json +2 -2
- package/{plugins/freeflow/.claude-plugin → .claude-plugin}/plugin.json +1 -1
- package/{plugins/freeflow/.codex-plugin → .codex-plugin}/plugin.json +1 -1
- package/README.md +25 -16
- package/assets/freeflow-plugin-icon.png +0 -0
- package/{plugins/freeflow/command-surface.json → command-surface.json} +10 -10
- package/evals/README.md +32 -0
- package/evals/fixtures/copy-conventions.md +31 -0
- package/evals/fixtures/output-router/README.md +12 -0
- package/evals/fixtures/output-router/failed-command-output.txt +9 -0
- package/evals/fixtures/output-router/large-router-manual.md +63 -0
- package/evals/fixtures/output-router/native-large-output.txt +40 -0
- package/evals/fixtures/output-router/noisy-test-output.txt +30 -0
- package/evals/fixtures/output-router/verification-output.txt +8 -0
- package/evals/fixtures/tiny-artifact-review-app/README.md +5 -0
- package/evals/fixtures/tiny-artifact-review-app/docs/billing-policy.md +10 -0
- package/evals/fixtures/tiny-artifact-review-app/docs/specs/billing-webhook-api-draft.md +21 -0
- package/evals/fixtures/tiny-artifact-review-app/docs/specs/failed-payment-grace-period.md +24 -0
- package/evals/fixtures/tiny-artifact-review-app/docs/specs/immediate-downgrade.md +17 -0
- package/evals/fixtures/tiny-artifact-review-app/tests/billing.test.md +8 -0
- package/evals/fixtures/tiny-commit-ambiguous-app/.freeflow-eval-setup.sh +15 -0
- package/evals/fixtures/tiny-commit-ambiguous-app/README.md +3 -0
- package/evals/fixtures/tiny-commit-ambiguous-app/src/billing.ts +5 -0
- package/evals/fixtures/tiny-commit-ambiguous-app/src/settings-page.ts +1 -0
- package/evals/fixtures/tiny-commit-ambiguous-app/tests/settings.test.md +5 -0
- package/evals/fixtures/tiny-commit-app/.freeflow-eval-setup.sh +14 -0
- package/evals/fixtures/tiny-commit-app/README.md +3 -0
- package/evals/fixtures/tiny-commit-app/docs/specs/settings-title.md +5 -0
- package/evals/fixtures/tiny-commit-app/src/billing.ts +5 -0
- package/evals/fixtures/tiny-commit-app/src/settings-page.ts +1 -0
- package/evals/fixtures/tiny-commit-app/tests/settings.test.md +5 -0
- package/evals/fixtures/tiny-commit-everything-app/.freeflow-eval-setup.sh +15 -0
- package/evals/fixtures/tiny-commit-everything-app/README.md +3 -0
- package/evals/fixtures/tiny-commit-everything-app/docs/specs/settings-title.md +5 -0
- package/evals/fixtures/tiny-commit-everything-app/src/billing.ts +5 -0
- package/evals/fixtures/tiny-commit-everything-app/src/settings-page.ts +1 -0
- package/evals/fixtures/tiny-commit-everything-app/tests/settings.test.md +5 -0
- package/evals/fixtures/tiny-commit-staged-app/.freeflow-eval-setup.sh +15 -0
- package/evals/fixtures/tiny-commit-staged-app/README.md +3 -0
- package/evals/fixtures/tiny-commit-staged-app/docs/specs/settings-title.md +5 -0
- package/evals/fixtures/tiny-commit-staged-app/src/billing.ts +5 -0
- package/evals/fixtures/tiny-commit-staged-app/src/settings-page.ts +1 -0
- package/evals/fixtures/tiny-commit-staged-app/tests/settings.test.md +5 -0
- package/evals/fixtures/tiny-commit-staged-mixed-app/.freeflow-eval-setup.sh +15 -0
- package/evals/fixtures/tiny-commit-staged-mixed-app/README.md +3 -0
- package/evals/fixtures/tiny-commit-staged-mixed-app/docs/billing-policy.md +3 -0
- package/evals/fixtures/tiny-commit-staged-mixed-app/docs/release-notes.md +3 -0
- package/evals/fixtures/tiny-commit-staged-mixed-app/src/billing.ts +5 -0
- package/evals/fixtures/tiny-dashboard-stale-app/README.md +11 -0
- package/evals/fixtures/tiny-dashboard-stale-app/src/api-client.ts +13 -0
- package/evals/fixtures/tiny-dashboard-stale-app/src/dashboard-data.ts +19 -0
- package/evals/fixtures/tiny-dashboard-stale-app/tests/dashboard-data.test.md +9 -0
- package/evals/fixtures/tiny-decision-destination-app/README.md +6 -0
- package/evals/fixtures/tiny-decision-destination-app/src/risk.ts +8 -0
- package/evals/fixtures/tiny-decision-destination-app/tests/risk.test.md +4 -0
- package/evals/fixtures/tiny-design-depth-app/README.md +15 -0
- package/evals/fixtures/tiny-design-depth-app/src/routes.ts +25 -0
- package/evals/fixtures/tiny-design-depth-app/src/sendEmail.ts +3 -0
- package/evals/fixtures/tiny-design-depth-app/src/sendSms.ts +3 -0
- package/evals/fixtures/tiny-design-depth-app/src/telemetry.ts +3 -0
- package/evals/fixtures/tiny-design-depth-app/tests/routes.test.md +12 -0
- package/evals/fixtures/tiny-eval-method-app/README.md +8 -0
- package/evals/fixtures/tiny-eval-method-app/evals/reports/review-pr-eval-result.md +5 -0
- package/evals/fixtures/tiny-eval-method-app/evals/reports/triage-question-failure.md +17 -0
- package/evals/fixtures/tiny-eval-method-app/evals/runs/review-pr-with-skill-output.diff +11 -0
- package/evals/fixtures/tiny-eval-method-app/evals/runs/review-pr-with-skill-output.md +3 -0
- package/evals/fixtures/tiny-eval-method-app/skills/review-pr/SKILL.md +10 -0
- package/evals/fixtures/tiny-eval-method-app/skills/triage-question/SKILL.md +10 -0
- package/evals/fixtures/tiny-execute-plan-app/README.md +5 -0
- package/evals/fixtures/tiny-execute-plan-app/checks/settings-and-billing-check.sh +5 -0
- package/evals/fixtures/tiny-execute-plan-app/docs/billing-policy.md +10 -0
- package/evals/fixtures/tiny-execute-plan-app/docs/plans/immediate-downgrade-plan.md +11 -0
- package/evals/fixtures/tiny-execute-plan-app/docs/plans/settings-title-plan.md +12 -0
- package/evals/fixtures/tiny-execute-plan-app/docs/plans/settings-title-with-bad-check.md +15 -0
- package/evals/fixtures/tiny-execute-plan-app/docs/plans/unverified-billing-plan.md +9 -0
- package/evals/fixtures/tiny-execute-plan-app/docs/specs/failed-payment-grace-period.md +9 -0
- package/evals/fixtures/tiny-execute-plan-app/docs/specs/settings-title.md +9 -0
- package/evals/fixtures/tiny-execute-plan-app/src/billing.ts +7 -0
- package/evals/fixtures/tiny-execute-plan-app/src/settings-page.ts +1 -0
- package/evals/fixtures/tiny-execute-plan-app/tests/billing.test.md +7 -0
- package/evals/fixtures/tiny-execute-plan-app/tests/settings.test.md +5 -0
- package/evals/fixtures/tiny-execute-review-loop-app/README.md +5 -0
- package/evals/fixtures/tiny-execute-review-loop-app/docs/billing-policy.md +9 -0
- package/evals/fixtures/tiny-execute-review-loop-app/docs/plans/settings-title-plan.md +12 -0
- package/evals/fixtures/tiny-execute-review-loop-app/docs/review/previous-agent-summary.md +15 -0
- package/evals/fixtures/tiny-execute-review-loop-app/docs/review/review-pass-1-non-pass.md +11 -0
- package/evals/fixtures/tiny-execute-review-loop-app/docs/specs/settings-title.md +9 -0
- package/evals/fixtures/tiny-execute-review-loop-app/src/billing.ts +7 -0
- package/evals/fixtures/tiny-execute-review-loop-app/src/settings-page.ts +1 -0
- package/evals/fixtures/tiny-execute-review-loop-app/tests/billing.test.md +7 -0
- package/evals/fixtures/tiny-execute-review-loop-app/tests/settings.test.md +5 -0
- package/evals/fixtures/tiny-flaky-session-app/README.md +10 -0
- package/evals/fixtures/tiny-flaky-session-app/src/session-timeout.ts +13 -0
- package/evals/fixtures/tiny-flaky-session-app/tests/session-timeout.test.md +8 -0
- package/evals/fixtures/tiny-handoff-app/README.md +5 -0
- package/evals/fixtures/tiny-handoff-app/docs/billing-policy.md +10 -0
- package/evals/fixtures/tiny-handoff-app/docs/handoffs/old-agent-handoff.md +8 -0
- package/evals/fixtures/tiny-handoff-app/docs/plans/billing-retry-plan.md +11 -0
- package/evals/fixtures/tiny-handoff-app/src/billing.ts +7 -0
- package/evals/fixtures/tiny-handoff-report-app/README.md +3 -0
- package/evals/fixtures/tiny-handoff-report-app/evals/runs/handoff-3/hof-003/with-skill-output.diff +1 -0
- package/evals/fixtures/tiny-handoff-report-app/evals/runs/handoff-3/hof-003/with-skill-output.md +1 -0
- package/evals/fixtures/tiny-handoff-report-app/evals/scores/hof-003-score.txt +4 -0
- package/evals/fixtures/tiny-plan-app/README.md +5 -0
- package/evals/fixtures/tiny-plan-app/docs/billing-policy.md +10 -0
- package/evals/fixtures/tiny-plan-app/docs/specs/failed-payment-grace-period.md +25 -0
- package/evals/fixtures/tiny-plan-app/src/billing.ts +17 -0
- package/evals/fixtures/tiny-plan-app/src/settings-page.ts +1 -0
- package/evals/fixtures/tiny-plan-app/tests/billing.test.md +8 -0
- package/evals/fixtures/tiny-plan-app/tests/settings.test.md +5 -0
- package/evals/fixtures/tiny-plan-strict-api-app/README.md +3 -0
- package/evals/fixtures/tiny-plan-strict-api-app/docs/billing-policy.md +5 -0
- package/evals/fixtures/tiny-plan-strict-api-app/docs/specs/billing-webhook-api.md +25 -0
- package/evals/fixtures/tiny-plan-strict-api-app/src/billing.ts +5 -0
- package/evals/fixtures/tiny-plan-strict-api-app/src/webhooks.ts +3 -0
- package/evals/fixtures/tiny-plan-strict-api-app/tests/billing-webhook.test.md +8 -0
- package/evals/fixtures/tiny-post-setup-invalid-config-app/.freeflow/config.json +3 -0
- package/evals/fixtures/tiny-post-setup-invalid-config-app/AGENTS.md +15 -0
- package/evals/fixtures/tiny-post-setup-invalid-config-app/README.md +16 -0
- package/evals/fixtures/tiny-post-setup-invalid-config-app/docs/auth-review.md +15 -0
- package/evals/fixtures/tiny-post-setup-invalid-config-app/docs/billing-policy.md +10 -0
- package/evals/fixtures/tiny-post-setup-invalid-config-app/docs/copy-conventions.md +15 -0
- package/evals/fixtures/tiny-post-setup-invalid-config-app/src/auth-middleware.ts +12 -0
- package/evals/fixtures/tiny-post-setup-invalid-config-app/src/billing.ts +20 -0
- package/evals/fixtures/tiny-post-setup-invalid-config-app/src/login-copy.ts +1 -0
- package/evals/fixtures/tiny-post-setup-invalid-config-app/src/settings-page.ts +1 -0
- package/evals/fixtures/tiny-post-setup-invalid-config-app/tests/auth-middleware.test.md +8 -0
- package/evals/fixtures/tiny-post-setup-invalid-config-app/tests/billing.test.md +8 -0
- package/evals/fixtures/tiny-post-setup-invalid-config-app/tests/copy.test.md +7 -0
- package/evals/fixtures/tiny-post-setup-missing-config-app/AGENTS.md +15 -0
- package/evals/fixtures/tiny-post-setup-missing-config-app/README.md +16 -0
- package/evals/fixtures/tiny-post-setup-missing-config-app/docs/auth-review.md +15 -0
- package/evals/fixtures/tiny-post-setup-missing-config-app/docs/billing-policy.md +10 -0
- package/evals/fixtures/tiny-post-setup-missing-config-app/docs/copy-conventions.md +15 -0
- package/evals/fixtures/tiny-post-setup-missing-config-app/src/auth-middleware.ts +12 -0
- package/evals/fixtures/tiny-post-setup-missing-config-app/src/billing.ts +20 -0
- package/evals/fixtures/tiny-post-setup-missing-config-app/src/login-copy.ts +1 -0
- package/evals/fixtures/tiny-post-setup-missing-config-app/src/settings-page.ts +1 -0
- package/evals/fixtures/tiny-post-setup-missing-config-app/tests/auth-middleware.test.md +8 -0
- package/evals/fixtures/tiny-post-setup-missing-config-app/tests/billing.test.md +8 -0
- package/evals/fixtures/tiny-post-setup-missing-config-app/tests/copy.test.md +7 -0
- package/evals/fixtures/tiny-post-setup-source-conflict-app/.freeflow/config.json +3 -0
- package/evals/fixtures/tiny-post-setup-source-conflict-app/AGENTS.md +15 -0
- package/evals/fixtures/tiny-post-setup-source-conflict-app/README.md +16 -0
- package/evals/fixtures/tiny-post-setup-source-conflict-app/docs/auth-review.md +15 -0
- package/evals/fixtures/tiny-post-setup-source-conflict-app/docs/billing-policy.md +10 -0
- package/evals/fixtures/tiny-post-setup-source-conflict-app/docs/copy-conventions.md +15 -0
- package/evals/fixtures/tiny-post-setup-source-conflict-app/src/auth-middleware.ts +12 -0
- package/evals/fixtures/tiny-post-setup-source-conflict-app/src/billing.ts +20 -0
- package/evals/fixtures/tiny-post-setup-source-conflict-app/src/login-copy.ts +1 -0
- package/evals/fixtures/tiny-post-setup-source-conflict-app/src/settings-page.ts +1 -0
- package/evals/fixtures/tiny-post-setup-source-conflict-app/tests/auth-middleware.test.md +8 -0
- package/evals/fixtures/tiny-post-setup-source-conflict-app/tests/billing.test.md +8 -0
- package/evals/fixtures/tiny-post-setup-source-conflict-app/tests/copy.test.md +7 -0
- package/evals/fixtures/tiny-report-performance-app/README.md +11 -0
- package/evals/fixtures/tiny-report-performance-app/docs/performance.md +10 -0
- package/evals/fixtures/tiny-report-performance-app/src/report-summary.ts +29 -0
- package/evals/fixtures/tiny-report-performance-app/tests/report-performance.test.md +8 -0
- package/evals/fixtures/tiny-review-request-app/README.md +3 -0
- package/evals/fixtures/tiny-review-request-app/docs/billing-policy.md +5 -0
- package/evals/fixtures/tiny-review-request-app/docs/plans/billing-webhook-api.md +19 -0
- package/evals/fixtures/tiny-review-request-app/docs/review/previous-agent-summary.md +20 -0
- package/evals/fixtures/tiny-review-request-app/docs/specs/billing-webhook-api.md +25 -0
- package/evals/fixtures/tiny-review-request-app/src/billing.ts +11 -0
- package/evals/fixtures/tiny-review-request-app/src/webhooks.ts +19 -0
- package/evals/fixtures/tiny-review-request-app/tests/billing-webhook.test.md +8 -0
- package/evals/fixtures/tiny-review-work-app/README.md +5 -0
- package/evals/fixtures/tiny-review-work-app/docs/billing-policy.md +9 -0
- package/evals/fixtures/tiny-review-work-app/docs/plans/settings-title-plan.md +12 -0
- package/evals/fixtures/tiny-review-work-app/docs/review/previous-agent-summary.md +15 -0
- package/evals/fixtures/tiny-review-work-app/docs/specs/settings-title.md +9 -0
- package/evals/fixtures/tiny-review-work-app/src/billing.ts +7 -0
- package/evals/fixtures/tiny-review-work-app/src/settings-page.ts +1 -0
- package/evals/fixtures/tiny-review-work-app/tests/billing.test.md +7 -0
- package/evals/fixtures/tiny-review-work-app/tests/settings.test.md +5 -0
- package/evals/fixtures/tiny-saas-app/README.md +16 -0
- package/evals/fixtures/tiny-saas-app/docs/auth-review.md +15 -0
- package/evals/fixtures/tiny-saas-app/docs/billing-policy.md +10 -0
- package/evals/fixtures/tiny-saas-app/docs/copy-conventions.md +15 -0
- package/evals/fixtures/tiny-saas-app/docs/specs/settings-title.md +13 -0
- package/evals/fixtures/tiny-saas-app/src/auth-middleware.ts +12 -0
- package/evals/fixtures/tiny-saas-app/src/billing.ts +20 -0
- package/evals/fixtures/tiny-saas-app/src/login-copy.ts +1 -0
- package/evals/fixtures/tiny-saas-app/src/settings-page.ts +1 -0
- package/evals/fixtures/tiny-saas-app/tests/auth-middleware.test.md +8 -0
- package/evals/fixtures/tiny-saas-app/tests/billing.test.md +8 -0
- package/evals/fixtures/tiny-saas-app/tests/copy.test.md +7 -0
- package/evals/fixtures/tiny-setup-agents-app/AGENTS.md +6 -0
- package/evals/fixtures/tiny-setup-both-app/AGENTS.md +5 -0
- package/evals/fixtures/tiny-setup-both-app/CLAUDE.md +5 -0
- package/evals/fixtures/tiny-setup-claude-app/CLAUDE.md +6 -0
- package/evals/fixtures/tiny-setup-codex-rules-app/.codex/rules/shell.rules +5 -0
- package/evals/fixtures/tiny-setup-codex-rules-app/AGENTS.md +6 -0
- package/evals/fixtures/tiny-setup-conflict-app/AGENTS.md +6 -0
- package/evals/fixtures/tiny-setup-existing-block-app/AGENTS.md +14 -0
- package/evals/fixtures/tiny-setup-four-rules-app/CLAUDE.md +6 -0
- package/evals/fixtures/tiny-skill-dev-app/README.md +10 -0
- package/evals/fixtures/tiny-skill-dev-app/evals/prompts/review-pr-001.txt +8 -0
- package/evals/fixtures/tiny-skill-dev-app/evals/reports/review-pr-failure.md +17 -0
- package/evals/fixtures/tiny-skill-dev-app/skills/review-pr/SKILL.md +13 -0
- package/evals/fixtures/tiny-team-app/README.md +5 -0
- package/evals/fixtures/tiny-team-app/docs/product.md +6 -0
- package/evals/fixtures/tiny-team-app/src/teams.ts +9 -0
- package/evals/fixtures/tiny-team-app/src/users.ts +5 -0
- package/evals/fixtures/tiny-team-app/tests/teams.test.md +7 -0
- package/evals/fixtures/tiny-verify-app/README.md +5 -0
- package/evals/fixtures/tiny-verify-app/src/settings-nav.ts +1 -0
- package/evals/fixtures/tiny-verify-app/src/settings-page.ts +1 -0
- package/evals/fixtures/tiny-verify-app/tests/settings.test.md +7 -0
- package/evals/prompts/aon-001.txt +2 -0
- package/evals/prompts/byp-001.txt +2 -0
- package/evals/prompts/byp-002.txt +2 -0
- package/evals/prompts/cap-001.txt +3 -0
- package/evals/prompts/cap-002.txt +3 -0
- package/evals/prompts/cmd-001.txt +3 -0
- package/evals/prompts/cmd-002.txt +3 -0
- package/evals/prompts/cmd-003.txt +6 -0
- package/evals/prompts/cmd-004.txt +5 -0
- package/evals/prompts/cmd-005.txt +5 -0
- package/evals/prompts/cmd-006.txt +5 -0
- package/evals/prompts/cmd-007.txt +5 -0
- package/evals/prompts/cmd-008.txt +5 -0
- package/evals/prompts/cmd-009.txt +8 -0
- package/evals/prompts/cmd-010.txt +5 -0
- package/evals/prompts/cmd-011.txt +5 -0
- package/evals/prompts/cmd-012.txt +5 -0
- package/evals/prompts/cmd-013.txt +5 -0
- package/evals/prompts/cmd-014.txt +7 -0
- package/evals/prompts/cmd-015.txt +7 -0
- package/evals/prompts/cmd-016.txt +5 -0
- package/evals/prompts/cmt-001.txt +1 -0
- package/evals/prompts/cmt-002.txt +1 -0
- package/evals/prompts/cmt-003.txt +1 -0
- package/evals/prompts/cmt-004.txt +1 -0
- package/evals/prompts/cmt-005.txt +1 -0
- package/evals/prompts/dfd-001.txt +3 -0
- package/evals/prompts/dia-001.txt +3 -0
- package/evals/prompts/dia-002.txt +3 -0
- package/evals/prompts/dia-003.txt +3 -0
- package/evals/prompts/dis-001.txt +5 -0
- package/evals/prompts/dis-002.txt +5 -0
- package/evals/prompts/esk-001.txt +5 -0
- package/evals/prompts/esk-002.txt +5 -0
- package/evals/prompts/esk-003.txt +5 -0
- package/evals/prompts/grc-001.txt +3 -0
- package/evals/prompts/hof-001.txt +3 -0
- package/evals/prompts/hof-002.txt +1 -0
- package/evals/prompts/hof-003.txt +1 -0
- package/evals/prompts/hof-004.txt +1 -0
- package/evals/prompts/hof-005.txt +1 -0
- package/evals/prompts/ivg-001.txt +1 -0
- package/evals/prompts/ivg-002.txt +11 -0
- package/evals/prompts/ivg-003.txt +1 -0
- package/evals/prompts/ivg-004.txt +1 -0
- package/evals/prompts/mode-001.txt +3 -0
- package/evals/prompts/mode-002.txt +1 -0
- package/evals/prompts/mode-003.txt +3 -0
- package/evals/prompts/mode-004.txt +3 -0
- package/evals/prompts/mode-005.txt +3 -0
- package/evals/prompts/mode-006.txt +3 -0
- package/evals/prompts/mode-007.txt +3 -0
- package/evals/prompts/otr-001.txt +3 -0
- package/evals/prompts/otr-002.txt +3 -0
- package/evals/prompts/rar-001.txt +5 -0
- package/evals/prompts/rar-002.txt +3 -0
- package/evals/prompts/rar-003.txt +6 -0
- package/evals/prompts/rar-004.txt +15 -0
- package/evals/prompts/rar-005.txt +10 -0
- package/evals/prompts/rbr-001.txt +3 -0
- package/evals/prompts/rbr-002.txt +3 -0
- package/evals/prompts/rbr-003.txt +7 -0
- package/evals/prompts/rev-001.txt +3 -0
- package/evals/prompts/rev-002.txt +5 -0
- package/evals/prompts/rev-003.txt +6 -0
- package/evals/prompts/rev-004.txt +1 -0
- package/evals/prompts/rev-005.txt +15 -0
- package/evals/prompts/rev-006.txt +5 -0
- package/evals/prompts/stp-001.txt +1 -0
- package/evals/prompts/stp-002.txt +1 -0
- package/evals/prompts/stp-003.txt +1 -0
- package/evals/prompts/stp-004.txt +1 -0
- package/evals/prompts/stp-005.txt +1 -0
- package/evals/prompts/stp-006.txt +1 -0
- package/evals/prompts/stp-007.txt +1 -0
- package/evals/prompts/stp-008.txt +1 -0
- package/evals/prompts/stp-009.txt +1 -0
- package/evals/prompts/stp-010.txt +1 -0
- package/evals/prompts/stp-011.txt +1 -0
- package/evals/prompts/vfy-003.txt +1 -0
- package/evals/prompts/wpl-001.txt +3 -0
- package/evals/prompts/wpl-002.txt +5 -0
- package/evals/prompts/wpl-003.txt +3 -0
- package/evals/prompts/wpl-004.txt +5 -0
- package/evals/prompts/wpl-005.txt +1 -0
- package/evals/prompts/wrc-001.txt +10 -0
- package/evals/prompts/wrc-002.txt +3 -0
- package/evals/prompts/wsk-001.txt +6 -0
- package/evals/prompts/wsp-001.txt +5 -0
- package/evals/prompts/wsp-002.txt +15 -0
- package/evals/prompts/wsp-003.txt +3 -0
- package/evals/prompts/wsp-004.txt +15 -0
- package/evals/prompts/wsp-005.txt +5 -0
- package/evals/prompts/wsp-006.txt +12 -0
- package/evals/prompts/wsp-007.txt +9 -0
- package/evals/prompts/wsp-008.txt +13 -0
- package/evals/prompts/xpl-001.txt +1 -0
- package/evals/prompts/xpl-002.txt +3 -0
- package/evals/prompts/xpl-003.txt +3 -0
- package/evals/prompts/xpl-004.txt +3 -0
- package/evals/prompts/xpl-005.txt +5 -0
- package/evals/prompts/xpl-006.txt +3 -0
- package/evals/registries/adversarial-evals.json +39 -0
- package/evals/registries/fixture-evals.json +2513 -0
- package/evals/registries/handoff-evals.json +74 -0
- package/evals/registries/legacy-evals.json +147 -0
- package/evals/registries/skill-evidence.json +193 -0
- package/evals/registries/verify-work-evals.json +46 -0
- package/evals/reports/acceptance/v0.1-acceptance-report.md +130 -0
- package/evals/reports/by-command-surface/command-surface-1-report.md +45 -0
- package/evals/reports/by-command-surface/command-surface-10-report.md +76 -0
- package/evals/reports/by-command-surface/command-surface-11-report.md +77 -0
- package/evals/reports/by-command-surface/command-surface-12-report.md +91 -0
- package/evals/reports/by-command-surface/command-surface-13-report.md +64 -0
- package/evals/reports/by-command-surface/command-surface-14-report.md +66 -0
- package/evals/reports/by-command-surface/command-surface-15-report.md +124 -0
- package/evals/reports/by-command-surface/command-surface-16-report.md +39 -0
- package/evals/reports/by-command-surface/command-surface-2-report.md +80 -0
- package/evals/reports/by-command-surface/command-surface-3-report.md +86 -0
- package/evals/reports/by-command-surface/command-surface-4-report.md +76 -0
- package/evals/reports/by-command-surface/command-surface-5-report.md +80 -0
- package/evals/reports/by-command-surface/command-surface-6-report.md +74 -0
- package/evals/reports/by-command-surface/command-surface-7-report.md +84 -0
- package/evals/reports/by-command-surface/command-surface-8-report.md +79 -0
- package/evals/reports/by-command-surface/command-surface-9-report.md +79 -0
- package/evals/reports/by-command-surface/command-surface-matrix.md +91 -0
- package/evals/reports/by-skill/bypass-1-report.md +124 -0
- package/evals/reports/by-skill/capture-decisions-1-report.md +99 -0
- package/evals/reports/by-skill/capture-decisions-2-report.md +102 -0
- package/evals/reports/by-skill/commit-work-1-report.md +165 -0
- package/evals/reports/by-skill/commit-work-2-report.md +109 -0
- package/evals/reports/by-skill/design-for-depth-1-report.md +95 -0
- package/evals/reports/by-skill/diagnose-failure-1-report.md +91 -0
- package/evals/reports/by-skill/diagnose-failure-2-report.md +94 -0
- package/evals/reports/by-skill/discover-1-report.md +118 -0
- package/evals/reports/by-skill/evaluate-skill-2-report.md +71 -0
- package/evals/reports/by-skill/execute-plan-1-report.md +103 -0
- package/evals/reports/by-skill/execute-plan-2-report.md +112 -0
- package/evals/reports/by-skill/execute-plan-3-report.md +87 -0
- package/evals/reports/by-skill/grill-context-1-report.md +103 -0
- package/evals/reports/by-skill/handoff-1-report.md +123 -0
- package/evals/reports/by-skill/handoff-2-report.md +105 -0
- package/evals/reports/by-skill/handoff-3-report.md +100 -0
- package/evals/reports/by-skill/handoff-7-report.md +77 -0
- package/evals/reports/by-skill/interview-gate-1-report.md +63 -0
- package/evals/reports/by-skill/interview-gate-2-report.md +105 -0
- package/evals/reports/by-skill/mode-contract-1-report.md +74 -0
- package/evals/reports/by-skill/mode-contract-2-report.md +87 -0
- package/evals/reports/by-skill/mode-contract-3-report.md +65 -0
- package/evals/reports/by-skill/mode-contract-4-report.md +71 -0
- package/evals/reports/by-skill/mode-contract-5-report.md +70 -0
- package/evals/reports/by-skill/output-router-1-report.md +76 -0
- package/evals/reports/by-skill/output-router-2-report.md +65 -0
- package/evals/reports/by-skill/research-1-report.md +144 -0
- package/evals/reports/by-skill/research-brief-1-report.md +94 -0
- package/evals/reports/by-skill/research-brief-2-report.md +75 -0
- package/evals/reports/by-skill/review-artifact-1-report.md +91 -0
- package/evals/reports/by-skill/review-artifact-2-report.md +79 -0
- package/evals/reports/by-skill/review-artifact-3-report.md +120 -0
- package/evals/reports/by-skill/review-artifact-4-report.md +89 -0
- package/evals/reports/by-skill/review-artifact-5-report.md +66 -0
- package/evals/reports/by-skill/review-work-1-report.md +85 -0
- package/evals/reports/by-skill/review-work-2-report.md +87 -0
- package/evals/reports/by-skill/review-work-3-report.md +104 -0
- package/evals/reports/by-skill/review-work-4-report.md +108 -0
- package/evals/reports/by-skill/review-work-5-report.md +73 -0
- package/evals/reports/by-skill/review-work-6-report.md +66 -0
- package/evals/reports/by-skill/setup-freeflow-1-report.md +199 -0
- package/evals/reports/by-skill/setup-freeflow-2-report.md +105 -0
- package/evals/reports/by-skill/setup-freeflow-3-report.md +105 -0
- package/evals/reports/by-skill/setup-freeflow-4-report.md +88 -0
- package/evals/reports/by-skill/setup-freeflow-5-report.md +115 -0
- package/evals/reports/by-skill/skill-authoring-1-report.md +81 -0
- package/evals/reports/by-skill/verify-work-1-report.md +111 -0
- package/evals/reports/by-skill/verify-work-2-report.md +120 -0
- package/evals/reports/by-skill/workflow-1-report.md +65 -0
- package/evals/reports/by-skill/write-plan-1-report.md +123 -0
- package/evals/reports/by-skill/write-plan-2-report.md +98 -0
- package/evals/reports/by-skill/write-plan-3-report.md +110 -0
- package/evals/reports/by-skill/write-spec-1-report.md +88 -0
- package/evals/reports/by-skill/write-spec-2-report.md +89 -0
- package/evals/reports/by-skill/write-spec-3-report.md +90 -0
- package/evals/reports/by-skill/write-spec-4-report.md +167 -0
- package/evals/reports/harness/claude-harness-1-report.md +103 -0
- package/evals/reports/harness/eval-harness-1-report.md +91 -0
- package/evals/reports/iterations/iteration-1-report.md +71 -0
- package/evals/reports/iterations/iteration-2-report.md +78 -0
- package/evals/reports/iterations/iteration-3-report.md +118 -0
- package/evals/reports/iterations/iteration-4-report.md +131 -0
- package/evals/reports/iterations/iteration-5-report.md +149 -0
- package/evals/reports/iterations/iteration-6-report.md +136 -0
- package/evals/reports/runtime/always-on-runtime-1-report.md +107 -0
- package/evals/reports/runtime/context-mode-normalized-benchmark-1-report.md +52 -0
- package/evals/reports/runtime/context-mode-real-deep-baseline-1-report.md +410 -0
- package/evals/reports/runtime/context-mode-real-deep-final-slice-11-report.md +203 -0
- package/evals/reports/runtime/context-mode-real-deep-final-slice-11-review.md +51 -0
- package/evals/reports/runtime/context-saving-native-tools-baseline-1-report.md +99 -0
- package/evals/reports/runtime/eryx-python-compatibility-reprobe-1-report.md +166 -0
- package/evals/reports/runtime/eryx-python-proof-spike-1-report.md +96 -0
- package/evals/reports/runtime/eryx-python-proof-spike-2-report.md +151 -0
- package/evals/reports/runtime/eryx-python-script-derive-execution-1-report.md +233 -0
- package/evals/reports/runtime/jq-script-derive-execution-1-report.md +215 -0
- package/evals/reports/runtime/jq-wasm-proof-spike-1-report.md +67 -0
- package/evals/reports/runtime/output-router-benchmark-1-report.md +81 -0
- package/evals/reports/runtime/output-router-capture-derive-provider-eval-1-report.md +35 -0
- package/evals/reports/runtime/output-router-codex-large-index-sqlite-adhoc-report.md +150 -0
- package/evals/reports/runtime/output-router-codex-qa-benchmark-1-report.md +46 -0
- package/evals/reports/runtime/output-router-command-benchmark-1-report.md +62 -0
- package/evals/reports/runtime/output-router-index-benchmark-1-report.md +64 -0
- package/evals/reports/runtime/output-router-regression-1-report.md +81 -0
- package/evals/reports/runtime/output-router-transform-eval-1-report.md +28 -0
- package/evals/reports/runtime/pi-observed-routing-eval-1-report.md +44 -0
- package/evals/reports/runtime/quickjs-script-derive-execution-1-report.md +159 -0
- package/evals/reports/runtime/quickjs-wasi-proof-spike-1-report.md +55 -0
- package/evals/reports/runtime/render-format-row-protocol-1-report.md +58 -0
- package/evals/reports/runtime/script-sandbox-adapter-selection-review-1-report.md +84 -0
- package/evals/reports/runtime/script-sandbox-probe-resource-hardening-1-report.md +51 -0
- package/evals/reports/runtime/storage-policy-benchmark-1-report.md +176 -0
- package/evals/reports/runtime/vault-index-storage-spike-1-report.md +39 -0
- package/evals/reports/runtime/workflow-context-hook-1-report.md +82 -0
- package/evals/runbooks/adversarial-eval-runbook.md +28 -0
- package/evals/runbooks/fixture-eval-runbook.md +137 -0
- package/evals/runbooks/handoff-eval-runbook.md +22 -0
- package/evals/runbooks/verify-work-eval-runbook.md +27 -0
- package/evals/scripts/audit-command-surface.sh +160 -0
- package/evals/scripts/check-activation-contract.sh +121 -0
- package/evals/scripts/check-runtime-context-hook.sh +183 -0
- package/evals/scripts/grade-fixture-eval.sh +446 -0
- package/evals/scripts/run-claude-fixture-eval.sh +26 -0
- package/evals/scripts/run-codex-fixture-eval.sh +26 -0
- package/evals/scripts/run-eryx-python-proof-spike.js +559 -0
- package/evals/scripts/run-fixture-eval-by-id.sh +23 -0
- package/evals/scripts/run-fixture-eval.sh +464 -0
- package/evals/scripts/run-jq-wasm-proof-spike.js +299 -0
- package/evals/scripts/run-output-router-transform-eval.js +115 -0
- package/evals/scripts/run-pi-observed-routing-eval.js +478 -0
- package/evals/scripts/run-quickjs-wasi-proof-spike.js +339 -0
- package/evals/scripts/skill-evidence.sh +316 -0
- package/evals/scripts/validate-release-metadata.sh +486 -0
- package/evals/suites/v0.1-acceptance-suite.md +131 -0
- package/{plugins/freeflow/hooks → hooks}/freeflow-runtime-context.mjs +65 -14
- package/package.json +46 -13
- package/pi-extension/dist/host-producer-identification.js +186 -0
- package/pi-extension/dist/index.js +85 -0
- package/pi-extension/dist/mcp-config.js +30 -0
- package/pi-extension/dist/native-safety-net.js +209 -0
- package/pi-extension/dist/observed-tool-routing.js +114 -0
- package/pi-extension/dist/renderers.js +835 -0
- package/pi-extension/dist/router-tools.js +438 -0
- package/pi-extension/dist/runtime-context.js +288 -0
- package/pi-extension/dist/schemas.js +254 -0
- package/pi-extension/dist/status.js +449 -0
- package/pi-extension/dist/utils.js +467 -0
- package/pi-extension/src/host-producer-identification.ts +226 -0
- package/pi-extension/src/index.ts +121 -0
- package/pi-extension/src/mcp-config.ts +32 -0
- package/pi-extension/src/native-safety-net.ts +252 -0
- package/pi-extension/src/observed-tool-routing.ts +126 -0
- package/pi-extension/src/renderers.ts +917 -0
- package/pi-extension/src/router-tools.ts +478 -0
- package/pi-extension/src/runtime-context.ts +347 -0
- package/pi-extension/src/schemas.ts +259 -0
- package/pi-extension/src/status.ts +505 -0
- package/pi-extension/src/utils.ts +492 -0
- package/pi-extension/tsconfig.json +16 -0
- package/plugin-docs/README.md +40 -0
- package/plugin-docs/adr/0002-evals-before-hooks.md +17 -0
- package/{plugins/freeflow/docs → plugin-docs}/adr/0003-release-boundary.md +2 -2
- package/plugin-docs/adr/0004-discover-replaces-shallow-discovery-skills.md +26 -0
- package/plugin-docs/adr/README.md +10 -0
- package/plugin-docs/architecture.md +89 -0
- package/plugin-docs/output-router.md +396 -0
- package/plugin-docs/release-evidence.md +77 -0
- package/{plugins/freeflow/docs → plugin-docs}/skills.md +7 -7
- package/{plugins/freeflow/docs → plugin-docs}/workflow.md +4 -4
- package/router/dist/benchmarks/benchmark-harness.d.ts +32 -0
- package/router/dist/benchmarks/benchmark-harness.js +92 -0
- package/router/dist/benchmarks/benchmarks.d.ts +102 -0
- package/router/dist/benchmarks/benchmarks.js +880 -0
- package/router/dist/benchmarks/codex-qa-benchmarks.d.ts +91 -0
- package/router/dist/benchmarks/codex-qa-benchmarks.js +461 -0
- package/router/dist/benchmarks/command-benchmarks.d.ts +128 -0
- package/router/dist/benchmarks/command-benchmarks.js +653 -0
- package/router/dist/benchmarks/context-mode-normalized-benchmarks.d.ts +74 -0
- package/router/dist/benchmarks/context-mode-normalized-benchmarks.js +707 -0
- package/router/dist/benchmarks/context-mode-real-deep-benchmark.d.ts +124 -0
- package/router/dist/benchmarks/context-mode-real-deep-benchmark.js +1295 -0
- package/router/dist/benchmarks/context-saving-baseline.d.ts +54 -0
- package/router/dist/benchmarks/context-saving-baseline.js +439 -0
- package/router/dist/benchmarks/index-benchmarks.d.ts +98 -0
- package/router/dist/benchmarks/index-benchmarks.js +762 -0
- package/router/dist/benchmarks/storage-policy-benchmarks.d.ts +90 -0
- package/router/dist/benchmarks/storage-policy-benchmarks.js +538 -0
- package/router/dist/benchmarks/vault-index-benchmarks.d.ts +47 -0
- package/router/dist/benchmarks/vault-index-benchmarks.js +257 -0
- package/router/dist/config/config.d.ts +96 -0
- package/router/dist/config/config.js +453 -0
- package/router/dist/config/router-contract.d.ts +10 -0
- package/router/dist/config/router-contract.js +54 -0
- package/router/dist/config/schema.d.ts +18 -0
- package/router/dist/config/schema.js +600 -0
- package/router/dist/config/types.d.ts +521 -0
- package/router/dist/config/types.js +30 -0
- package/router/dist/evidence/bounded-evidence.d.ts +40 -0
- package/router/dist/evidence/bounded-evidence.js +310 -0
- package/router/dist/evidence/evidence-range-selector.d.ts +22 -0
- package/router/dist/evidence/evidence-range-selector.js +231 -0
- package/router/dist/evidence/evidence-search.d.ts +25 -0
- package/router/dist/evidence/evidence-search.js +466 -0
- package/router/dist/evidence/evidence.d.ts +38 -0
- package/router/dist/evidence/evidence.js +196 -0
- package/router/dist/evidence/failure-contracts.d.ts +27 -0
- package/router/dist/evidence/failure-contracts.js +160 -0
- package/router/dist/evidence/line-ranges.d.ts +22 -0
- package/router/dist/evidence/line-ranges.js +22 -0
- package/router/dist/experiments/local-index.d.ts +58 -0
- package/router/dist/experiments/local-index.js +562 -0
- package/router/dist/index.d.ts +30 -0
- package/router/dist/index.js +32 -0
- package/router/dist/processing/engine.d.ts +108 -0
- package/router/dist/processing/engine.js +435 -0
- package/router/dist/processing/reducers.d.ts +266 -0
- package/router/dist/processing/reducers.js +1495 -0
- package/router/dist/processing/renderers.d.ts +25 -0
- package/router/dist/processing/renderers.js +186 -0
- package/router/dist/processing/scripts.d.ts +78 -0
- package/router/dist/processing/scripts.js +333 -0
- package/router/dist/repo/repo-traversal.d.ts +18 -0
- package/router/dist/repo/repo-traversal.js +242 -0
- package/router/dist/routing/observed-reducers.d.ts +35 -0
- package/router/dist/routing/observed-reducers.js +647 -0
- package/router/dist/routing/observed-routing.d.ts +17 -0
- package/router/dist/routing/observed-routing.js +377 -0
- package/router/dist/routing/parsers.d.ts +16 -0
- package/router/dist/routing/parsers.js +473 -0
- package/router/dist/routing/run-filters.d.ts +56 -0
- package/router/dist/routing/run-filters.js +230 -0
- package/router/dist/routing/run-reducers.d.ts +30 -0
- package/router/dist/routing/run-reducers.js +110 -0
- package/router/dist/sandbox/adapter-roots.d.ts +38 -0
- package/router/dist/sandbox/adapter-roots.js +64 -0
- package/router/dist/sandbox/eryx-python-adapter.d.ts +9 -0
- package/router/dist/sandbox/eryx-python-adapter.js +797 -0
- package/router/dist/sandbox/jq-wasm-adapter.d.ts +9 -0
- package/router/dist/sandbox/jq-wasm-adapter.js +421 -0
- package/router/dist/sandbox/quickjs-wasi-adapter.d.ts +9 -0
- package/router/dist/sandbox/quickjs-wasi-adapter.js +381 -0
- package/router/dist/sandbox/script-sandbox.d.ts +113 -0
- package/router/dist/sandbox/script-sandbox.js +303 -0
- package/router/dist/setup/script-transform-adapters.d.ts +28 -0
- package/router/dist/setup/script-transform-adapters.js +259 -0
- package/router/dist/tools/batch.d.ts +22 -0
- package/router/dist/tools/batch.js +509 -0
- package/router/dist/tools/run.d.ts +50 -0
- package/router/dist/tools/run.js +1219 -0
- package/router/dist/tools/search.d.ts +44 -0
- package/router/dist/tools/search.js +1205 -0
- package/router/dist/transform/engine.d.ts +143 -0
- package/router/dist/transform/engine.js +1955 -0
- package/router/dist/vault/vault-index.d.ts +106 -0
- package/router/dist/vault/vault-index.js +411 -0
- package/router/dist/vault/vault.d.ts +103 -0
- package/router/dist/vault/vault.js +635 -0
- package/{plugins/freeflow/skills → skills}/commit-work/SKILL.md +17 -16
- package/{plugins/freeflow/skills → skills}/commit-work/references/staging-decisions.md +3 -3
- package/skills/design-for-depth/SKILL.md +90 -0
- package/skills/design-for-depth/references/design-pressure-signals.md +265 -0
- package/skills/design-for-depth/references/software-design-philosophy.md +219 -0
- package/{plugins/freeflow/skills → skills}/diagnose-failure/SKILL.md +6 -1
- package/skills/discover/ARTIFACT-DESTINATIONS.md +58 -0
- package/skills/discover/CHECKPOINTS.md +74 -0
- package/skills/discover/SKILL.md +173 -0
- package/skills/execute-plan/SKILL.md +133 -0
- package/skills/execute-plan/references/execution-map.md +122 -0
- package/{plugins/freeflow/skills → skills}/mode-contract/SKILL.md +10 -5
- package/skills/output-router/SKILL.md +202 -0
- package/skills/output-router/references/safety-policy.md +40 -0
- package/{plugins/freeflow/skills → skills}/review-artifact/SKILL.md +37 -1
- package/{plugins/freeflow/skills → skills}/review-artifact/references/reviewer-prompt.md +14 -2
- package/skills/review-work/SKILL.md +101 -0
- package/{plugins/freeflow/skills → skills}/review-work/references/reviewer-prompt.md +8 -0
- package/skills/setup-freeflow/SKILL.md +106 -0
- package/{plugins/freeflow/skills → skills}/setup-freeflow/references/activation-contract.md +14 -8
- package/{plugins/freeflow/skills → skills}/setup-freeflow/references/host-setup.md +5 -3
- package/skills/setup-freeflow/references/output-router-setup.md +102 -0
- package/{plugins/freeflow/skills → skills}/verify-work/SKILL.md +3 -1
- package/{plugins/freeflow/skills → skills}/workflow/SKILL.md +23 -13
- package/{plugins/freeflow/skills → skills}/workflow/references/workflow-map.md +21 -20
- package/{plugins/freeflow/skills → skills}/write-plan/SKILL.md +9 -1
- package/{plugins/freeflow/skills → skills}/write-skill/SKILL.md +1 -1
- package/{plugins/freeflow/skills → skills}/write-spec/SKILL.md +9 -6
- package/plugins/freeflow/docs/README.md +0 -39
- package/plugins/freeflow/docs/adr/0002-evals-before-hooks.md +0 -17
- package/plugins/freeflow/docs/adr/README.md +0 -7
- package/plugins/freeflow/docs/architecture.md +0 -86
- package/plugins/freeflow/docs/release-evidence.md +0 -49
- package/plugins/freeflow/pi-extension/index.js +0 -250
- package/plugins/freeflow/skills/capture-decisions/SKILL.md +0 -95
- package/plugins/freeflow/skills/capture-decisions/references/destination-guide.md +0 -65
- package/plugins/freeflow/skills/execute-plan/SKILL.md +0 -67
- package/plugins/freeflow/skills/grill-context/SKILL.md +0 -79
- package/plugins/freeflow/skills/grill-context/references/approach-framing.md +0 -52
- package/plugins/freeflow/skills/research-brief/SKILL.md +0 -69
- package/plugins/freeflow/skills/review-work/SKILL.md +0 -73
- package/plugins/freeflow/skills/setup-freeflow/SKILL.md +0 -84
- /package/{plugins/freeflow/assets → assets}/freeflow-plugin-icon-transparent.png +0 -0
- /package/{plugins/freeflow/hooks → hooks}/hooks.json +0 -0
- /package/{plugins/freeflow/docs → plugin-docs}/adr/0001-three-modes.md +0 -0
- /package/{plugins/freeflow/skills → skills}/bypass/SKILL.md +0 -0
- /package/{plugins/freeflow/skills → skills}/diagnose-failure/references/feedback-loop-catalog.md +0 -0
- /package/{plugins/freeflow/skills → skills}/diagnose-failure/references/flaky-and-performance.md +0 -0
- /package/{plugins/freeflow/skills → skills}/evaluate-skill/SKILL.md +0 -0
- /package/{plugins/freeflow/skills → skills}/evaluate-skill/references/eval-patterns.md +0 -0
- /package/{plugins/freeflow/skills → skills}/evaluate-skill/references/grading-priority.md +0 -0
- /package/{plugins/freeflow/skills → skills}/handoff/SKILL.md +0 -0
- /package/{plugins/freeflow/skills → skills}/handoff/references/templates.md +0 -0
- /package/{plugins/freeflow/skills → skills}/interview-gate/SKILL.md +0 -0
- /package/{plugins/freeflow/skills → skills}/write-plan/references/plan-shapes.md +0 -0
- /package/{plugins/freeflow/skills → skills}/write-spec/references/artifact-standards.md +0 -0
- /package/{plugins/freeflow/skills → skills}/write-spec/references/spec-shapes.md +0 -0
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
# Deep Freeflow vs real Context Mode benchmark
|
|
2
|
+
|
|
3
|
+
Generated: 2026-06-28T06:15:58.721Z
|
|
4
|
+
Implementation: context-mode-real-deep-benchmark-v1
|
|
5
|
+
Context Mode status: available
|
|
6
|
+
Context Mode: v1.0.167 a338a0d26d674b889d9ab231e04302686566ddb9
|
|
7
|
+
Freeflow: f1eb38711b53c1f3703627a1f27bf085a816381d
|
|
8
|
+
Artifacts root: /var/folders/2x/tsrlzqfx3ld_fn5bmr1_3l600000gn/T/freeflow-context-mode-deep-YuRZD2
|
|
9
|
+
Public superiority claims allowed: no
|
|
10
|
+
|
|
11
|
+
## Methodology
|
|
12
|
+
|
|
13
|
+
- Context Mode is run as the real MCP stdio server from server.bundle.mjs through @modelcontextprotocol/sdk when available.
|
|
14
|
+
- Freeflow is run through committed router modules against the same local fixture project and an adapter host shell runner.
|
|
15
|
+
- freeflow:run-cat-default measures current Freeflow-owned command capture/routing without bespoke transforms.
|
|
16
|
+
- freeflow:run-computed-script measures what Freeflow can do when the agent writes external summarizer code; it is compact but not a Freeflow-owned sandboxed transform.
|
|
17
|
+
- Correctness checks use fixture ground-truth facts, not only byte reduction.
|
|
18
|
+
- No public superiority claim should be made from this local benchmark alone.
|
|
19
|
+
|
|
20
|
+
## Expected limitation checks
|
|
21
|
+
|
|
22
|
+
Expected Freeflow limitations detected: yes
|
|
23
|
+
- The expected limitation set tracks Freeflow behavior that should remain visible rather than silently reclassified as a pass.
|
|
24
|
+
- A missing expected limitation means behavior changed, the benchmark changed, or fixture facts need review before making comparison claims.
|
|
25
|
+
|
|
26
|
+
## Summary by mode
|
|
27
|
+
|
|
28
|
+
| mode | scenarios | correct | facts | raw bytes | visible bytes | reduction | avg latency | exact recovery | metadata-only |
|
|
29
|
+
| --- | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: |
|
|
30
|
+
| context-mode:ctx_execute_file | 10 | 10/10 | 37/37 | 298691 | 8349 | 97.2% | 37.3ms | 0 | 0 |
|
|
31
|
+
| freeflow:run-cat-default | 9 | 9/9 | 36/36 | 298623 | 12314 | 95.88% | 14.3ms | 9 | 0 |
|
|
32
|
+
| freeflow:process-test-output-reducer | 1 | 1/1 | 4/4 | 6185 | 289 | 95.33% | 4ms | 1 | 0 |
|
|
33
|
+
| freeflow:run-computed-script | 9 | 9/9 | 36/36 | 298623 | 7093 | 97.62% | 49.4ms | 3 | 6 |
|
|
34
|
+
| context-mode:upstream-benchmark-script | 1 | 0/1 | 1/4 | 6185 | 682 | 88.97% | 40ms | 0 | 0 |
|
|
35
|
+
| freeflow:process-diagnostics-reducer | 1 | 1/1 | 4/4 | 5023 | 240 | 95.22% | 3ms | 1 | 0 |
|
|
36
|
+
| freeflow:process-build-output-reducer | 1 | 1/1 | 4/4 | 6594 | 229 | 96.53% | 4ms | 1 | 0 |
|
|
37
|
+
| freeflow:process-access-log-reducer | 1 | 1/1 | 4/4 | 46216 | 272 | 99.41% | 5ms | 1 | 0 |
|
|
38
|
+
| freeflow:process-table-reducer | 1 | 1/1 | 4/4 | 87517 | 186 | 99.79% | 7ms | 1 | 0 |
|
|
39
|
+
| freeflow:process-mcp-tools-reducer | 1 | 1/1 | 4/4 | 17362 | 786 | 95.47% | 7ms | 1 | 0 |
|
|
40
|
+
| freeflow:process-browser-snapshot-reducer | 1 | 1/1 | 4/4 | 57521 | 368 | 99.36% | 8ms | 1 | 0 |
|
|
41
|
+
| freeflow:process-git-log-reducer | 1 | 1/1 | 4/4 | 11895 | 590 | 95.04% | 7ms | 1 | 0 |
|
|
42
|
+
| freeflow:transform-countMatches | 1 | 1/1 | 1/1 | 87517 | 660 | 99.25% | 5ms | 1 | 0 |
|
|
43
|
+
| context-mode:ctx_index+ctx_search | 4 | 4/4 | 12/12 | 17710 | 6300 | 64.43% | 1.3ms | 0 | 0 |
|
|
44
|
+
| freeflow:repo-query | 4 | 4/4 | 12/12 | 17710 | 10234 | 42.21% | 21.3ms | 0 | 0 |
|
|
45
|
+
| context-mode:ctx_search-after-mutation | 1 | 1/1 | 1/1 | 66 | 414 | -527.27% | 1ms | 0 | 0 |
|
|
46
|
+
| freeflow:repo-query-live-file | 1 | 1/1 | 1/1 | 66 | 2246 | -3303.03% | 25ms | 0 | 0 |
|
|
47
|
+
| context-mode:ctx_batch_execute | 1 | 1/1 | 3/3 | 58476 | 12757 | 78.18% | 20ms | 0 | 0 |
|
|
48
|
+
| freeflow:batch | 1 | 1/1 | 3/3 | 58476 | 5408 | 90.75% | 66ms | 0 | 0 |
|
|
49
|
+
| freeflow:run-cat-host-shell | 1 | 0/1 | 1/1 | 68 | 593 | -772.06% | 10ms | 0 | 1 |
|
|
50
|
+
| freeflow:small-success-default-storage | 1 | 1/1 | 1/1 | 20 | 545 | -2625% | 8ms | 0 | 1 |
|
|
51
|
+
| freeflow:small-success-preserve-full | 1 | 1/1 | 1/1 | 20 | 370 | -1750% | 8ms | 1 | 0 |
|
|
52
|
+
|
|
53
|
+
## Failure clusters
|
|
54
|
+
|
|
55
|
+
### Freeflow incorrect rows
|
|
56
|
+
|
|
57
|
+
- outside-file-boundary / freeflow:run-cat-host-shell: facts 1/1, visible 593B. Freeflow_run is a host command runner/capture layer, not a sandbox; it captured outside file content.
|
|
58
|
+
|
|
59
|
+
### Context Mode incorrect rows
|
|
60
|
+
|
|
61
|
+
- vitest-summary-upstream-script / context-mode:upstream-benchmark-script: facts 1/4, visible 682B. Runs Context Mode upstream benchmark summarizer; checks against fixture ground truth.
|
|
62
|
+
|
|
63
|
+
### Freeflow verbose rows (<50% reduction)
|
|
64
|
+
|
|
65
|
+
- react-code-search / freeflow:repo-query: 6075B raw -> 3506B visible (42.29%).
|
|
66
|
+
- tailwind-responsive-search / freeflow:repo-query: 4102B raw -> 3102B visible (24.38%).
|
|
67
|
+
- repo-generated-decoy / freeflow:repo-query: 284B raw -> 477B visible (-67.96%).
|
|
68
|
+
- stale-index-after-file-change / freeflow:repo-query-live-file: 66B raw -> 2246B visible (-3303.03%).
|
|
69
|
+
- outside-file-boundary / freeflow:run-cat-host-shell: 68B raw -> 593B visible (-772.06%).
|
|
70
|
+
- small-success-recovery / freeflow:small-success-default-storage: 20B raw -> 545B visible (-2625%).
|
|
71
|
+
- small-success-recovery / freeflow:small-success-preserve-full: 20B raw -> 370B visible (-1750%).
|
|
72
|
+
|
|
73
|
+
### Freeflow metadata-only/no-raw rows
|
|
74
|
+
|
|
75
|
+
- access-summary / freeflow:run-computed-script: Compact because an external Node script computed facts; not Freeflow sandboxed script transform.
|
|
76
|
+
- analytics-summary / freeflow:run-computed-script: Compact because an external Node script computed facts; not Freeflow sandboxed script transform.
|
|
77
|
+
- github-issues-summary / freeflow:run-computed-script: Compact because an external Node script computed facts; not Freeflow sandboxed script transform.
|
|
78
|
+
- mcp-tools-summary / freeflow:run-computed-script: Compact because an external Node script computed facts; not Freeflow sandboxed script transform.
|
|
79
|
+
- playwright-summary / freeflow:run-computed-script: Compact because an external Node script computed facts; not Freeflow sandboxed script transform.
|
|
80
|
+
- git-log-summary / freeflow:run-computed-script: Compact because an external Node script computed facts; not Freeflow sandboxed script transform.
|
|
81
|
+
- outside-file-boundary / freeflow:run-cat-host-shell: Freeflow_run is a host command runner/capture layer, not a sandbox; it captured outside file content.
|
|
82
|
+
- small-success-recovery / freeflow:small-success-default-storage: metadata-only/no-raw
|
|
83
|
+
|
|
84
|
+
## Detailed rows
|
|
85
|
+
|
|
86
|
+
| fixture | category | mode | capability | correct | facts | raw | visible | reduction | recovery | latency | notes |
|
|
87
|
+
| --- | --- | --- | --- | --- | ---: | ---: | ---: | ---: | --- | ---: | --- |
|
|
88
|
+
| vitest-summary | dev-output | context-mode:ctx_execute_file | sandboxed file transform | yes | 4/4 | 6185 | 833 | 86.53% | context-mode-store-or-inline | 44 | |
|
|
89
|
+
| vitest-summary | dev-output | freeflow:run-cat-default | command capture/routing | yes | 4/4 | 6185 | 1166 | 81.15% | exact-outputId | 16 | |
|
|
90
|
+
| vitest-summary | dev-output | freeflow:process-test-output-reducer | processing engine built-in reducer | yes | 4/4 | 6185 | 289 | 95.33% | exact-outputId | 4 | Uses the internal processing engine test-output reducer; no public Pi surface is selected. |
|
|
91
|
+
| vitest-summary | dev-output | freeflow:run-computed-script | host-shell transform via freeflow_run | yes | 4/4 | 6185 | 1166 | 81.15% | exact-outputId | 49 | Compact because an external Node script computed facts; not Freeflow sandboxed script transform. |
|
|
92
|
+
| vitest-summary-upstream-script | dev-output | context-mode:upstream-benchmark-script | benchmark script correctness | no | 1/4 | 6185 | 682 | 88.97% | context-mode-store-or-inline | 40 | Runs Context Mode upstream benchmark summarizer; checks against fixture ground truth. |
|
|
93
|
+
| tsc-summary | dev-output | context-mode:ctx_execute_file | sandboxed file transform | yes | 4/4 | 5023 | 911 | 81.86% | context-mode-store-or-inline | 41 | |
|
|
94
|
+
| tsc-summary | dev-output | freeflow:run-cat-default | command capture/routing | yes | 4/4 | 5023 | 1004 | 80.01% | exact-outputId | 14 | |
|
|
95
|
+
| tsc-summary | dev-output | freeflow:process-diagnostics-reducer | processing engine built-in reducer | yes | 4/4 | 5023 | 240 | 95.22% | exact-outputId | 3 | Uses the internal processing engine diagnostics reducer; no public Pi surface is selected. |
|
|
96
|
+
| tsc-summary | dev-output | freeflow:run-computed-script | host-shell transform via freeflow_run | yes | 4/4 | 5023 | 565 | 88.75% | exact-outputId | 49 | Compact because an external Node script computed facts; not Freeflow sandboxed script transform. |
|
|
97
|
+
| build-summary | dev-output | context-mode:ctx_execute_file | sandboxed file transform | yes | 4/4 | 6594 | 956 | 85.5% | context-mode-store-or-inline | 40 | |
|
|
98
|
+
| build-summary | dev-output | freeflow:run-cat-default | command capture/routing | yes | 4/4 | 6594 | 830 | 87.41% | exact-outputId | 10 | |
|
|
99
|
+
| build-summary | dev-output | freeflow:process-build-output-reducer | processing engine built-in reducer | yes | 4/4 | 6594 | 229 | 96.53% | exact-outputId | 4 | Uses the internal processing engine build-output reducer; no public Pi surface is selected. |
|
|
100
|
+
| build-summary | dev-output | freeflow:run-computed-script | host-shell transform via freeflow_run | yes | 4/4 | 6594 | 758 | 88.5% | exact-outputId | 51 | Compact because an external Node script computed facts; not Freeflow sandboxed script transform. |
|
|
101
|
+
| access-summary | logs | context-mode:ctx_execute_file | sandboxed file transform | yes | 4/4 | 46216 | 847 | 98.17% | context-mode-store-or-inline | 42 | |
|
|
102
|
+
| access-summary | logs | freeflow:run-cat-default | command capture/routing | yes | 4/4 | 46216 | 1196 | 97.41% | exact-outputId | 12 | |
|
|
103
|
+
| access-summary | logs | freeflow:process-access-log-reducer | processing engine built-in reducer | yes | 4/4 | 46216 | 272 | 99.41% | exact-outputId | 5 | Uses the internal processing engine access-log reducer; no public Pi surface is selected. |
|
|
104
|
+
| access-summary | logs | freeflow:run-computed-script | host-shell transform via freeflow_run | yes | 4/4 | 46216 | 688 | 98.51% | metadata-only/no-raw | 50 | Compact because an external Node script computed facts; not Freeflow sandboxed script transform. |
|
|
105
|
+
| analytics-summary | json-csv | context-mode:ctx_execute_file | sandboxed file transform | yes | 4/4 | 87517 | 1016 | 98.84% | context-mode-store-or-inline | 41 | |
|
|
106
|
+
| analytics-summary | json-csv | freeflow:run-cat-default | command capture/routing | yes | 4/4 | 87517 | 640 | 99.27% | exact-outputId | 16 | |
|
|
107
|
+
| analytics-summary | json-csv | freeflow:process-table-reducer | processing engine built-in reducer | yes | 4/4 | 87517 | 186 | 99.79% | exact-outputId | 7 | Uses the internal processing engine table reducer; no public Pi surface is selected. |
|
|
108
|
+
| analytics-summary | json-csv | freeflow:run-computed-script | host-shell transform via freeflow_run | yes | 4/4 | 87517 | 752 | 99.14% | metadata-only/no-raw | 50 | Compact because an external Node script computed facts; not Freeflow sandboxed script transform. |
|
|
109
|
+
| github-issues-summary | json | context-mode:ctx_execute_file | sandboxed file transform | yes | 4/4 | 60310 | 940 | 98.44% | context-mode-store-or-inline | 41 | |
|
|
110
|
+
| github-issues-summary | json | freeflow:run-cat-default | command capture/routing | yes | 4/4 | 60310 | 3114 | 94.84% | exact-outputId | 16 | |
|
|
111
|
+
| github-issues-summary | json | freeflow:run-computed-script | host-shell transform via freeflow_run | yes | 4/4 | 60310 | 877 | 98.55% | metadata-only/no-raw | 49 | Compact because an external Node script computed facts; not Freeflow sandboxed script transform. |
|
|
112
|
+
| mcp-tools-summary | json | context-mode:ctx_execute_file | sandboxed file transform | yes | 4/4 | 17362 | 947 | 94.55% | context-mode-store-or-inline | 43 | |
|
|
113
|
+
| mcp-tools-summary | json | freeflow:run-cat-default | command capture/routing | yes | 4/4 | 17362 | 1850 | 89.34% | exact-outputId | 14 | |
|
|
114
|
+
| mcp-tools-summary | json | freeflow:process-mcp-tools-reducer | processing engine built-in reducer | yes | 4/4 | 17362 | 786 | 95.47% | exact-outputId | 7 | Uses the internal processing engine mcp-tools reducer; no public Pi surface is selected. |
|
|
115
|
+
| mcp-tools-summary | json | freeflow:run-computed-script | host-shell transform via freeflow_run | yes | 4/4 | 17362 | 944 | 94.56% | metadata-only/no-raw | 49 | Compact because an external Node script computed facts; not Freeflow sandboxed script transform. |
|
|
116
|
+
| playwright-summary | browser | context-mode:ctx_execute_file | sandboxed file transform | yes | 4/4 | 57521 | 759 | 98.68% | context-mode-store-or-inline | 41 | |
|
|
117
|
+
| playwright-summary | browser | freeflow:run-cat-default | command capture/routing | yes | 4/4 | 57521 | 1058 | 98.16% | exact-outputId | 18 | |
|
|
118
|
+
| playwright-summary | browser | freeflow:process-browser-snapshot-reducer | processing engine built-in reducer | yes | 4/4 | 57521 | 368 | 99.36% | exact-outputId | 8 | Uses the internal processing engine browser-snapshot reducer; no public Pi surface is selected. |
|
|
119
|
+
| playwright-summary | browser | freeflow:run-computed-script | host-shell transform via freeflow_run | yes | 4/4 | 57521 | 715 | 98.76% | metadata-only/no-raw | 50 | Compact because an external Node script computed facts; not Freeflow sandboxed script transform. |
|
|
120
|
+
| git-log-summary | git | context-mode:ctx_execute_file | sandboxed file transform | yes | 4/4 | 11895 | 509 | 95.72% | context-mode-store-or-inline | 39 | |
|
|
121
|
+
| git-log-summary | git | freeflow:run-cat-default | command capture/routing | yes | 4/4 | 11895 | 1456 | 87.76% | exact-outputId | 13 | |
|
|
122
|
+
| git-log-summary | git | freeflow:process-git-log-reducer | processing engine built-in reducer | yes | 4/4 | 11895 | 590 | 95.04% | exact-outputId | 7 | Uses the internal processing engine git-log reducer; no public Pi surface is selected. |
|
|
123
|
+
| git-log-summary | git | freeflow:run-computed-script | host-shell transform via freeflow_run | yes | 4/4 | 11895 | 628 | 94.72% | metadata-only/no-raw | 48 | Compact because an external Node script computed facts; not Freeflow sandboxed script transform. |
|
|
124
|
+
| analytics-count-timeouts | transform | freeflow:transform-countMatches | deterministic transform over vault | yes | 1/1 | 87517 | 660 | 99.25% | exact-outputId | 5 | Can count one selected fact but not summarize CSV distribution without a script transform. |
|
|
125
|
+
| react-code-search | docs-search | context-mode:ctx_index+ctx_search | FTS index/search | yes | 3/3 | 6075 | 1634 | 73.1% | context-mode-store-or-inline | 2 | |
|
|
126
|
+
| react-code-search | docs-search | freeflow:repo-query | live repo text query | yes | 3/3 | 6075 | 3506 | 42.29% | hint-only | 24 | |
|
|
127
|
+
| next-cache-search | docs-search | context-mode:ctx_index+ctx_search | FTS index/search | yes | 3/3 | 7249 | 2486 | 65.71% | context-mode-store-or-inline | 1 | |
|
|
128
|
+
| next-cache-search | docs-search | freeflow:repo-query | live repo text query | yes | 3/3 | 7249 | 3149 | 56.56% | hint-only | 32 | |
|
|
129
|
+
| tailwind-responsive-search | docs-search | context-mode:ctx_index+ctx_search | FTS index/search | yes | 3/3 | 4102 | 1595 | 61.12% | context-mode-store-or-inline | 1 | |
|
|
130
|
+
| tailwind-responsive-search | docs-search | freeflow:repo-query | live repo text query | yes | 3/3 | 4102 | 3102 | 24.38% | hint-only | 28 | |
|
|
131
|
+
| repo-generated-decoy | repo-search | context-mode:ctx_index+ctx_search | FTS index/search | yes | 3/3 | 284 | 585 | -105.99% | context-mode-store-or-inline | 1 | Top/live result did not include generated decoy. |
|
|
132
|
+
| repo-generated-decoy | repo-search | freeflow:repo-query | generated-path-aware live repo query | yes | 3/3 | 284 | 477 | -67.96% | hint-only | 1 | Configured generatedPathGlobs=graphify-out/**. |
|
|
133
|
+
| stale-index-after-file-change | freshness | context-mode:ctx_search-after-mutation | persistent index freshness | yes | 1/1 | 66 | 414 | -527.27% | context-mode-store-or-inline | 1 | |
|
|
134
|
+
| stale-index-after-file-change | freshness | freeflow:repo-query-live-file | live repo scanner | yes | 1/1 | 66 | 2246 | -3303.03% | hint-only | 25 | |
|
|
135
|
+
| batch-multi-source-query | batch | context-mode:ctx_batch_execute | batch run + index + query | yes | 3/3 | 58476 | 12757 | 78.18% | context-mode-store-or-inline | 20 | |
|
|
136
|
+
| batch-multi-source-query | batch | freeflow:batch | parallel steps + deterministic query aggregation | yes | 3/3 | 58476 | 5408 | 90.75% | hint-only | 66 | Query answers are derived deterministically from child evidence handles; full child details remain in details.result.steps. |
|
|
137
|
+
| outside-file-boundary | safety | context-mode:ctx_execute_file | project-boundary file sandbox | yes | 1/1 | 68 | 631 | -827.94% | context-mode-store-or-inline | 1 | Expected to block project escape. |
|
|
138
|
+
| outside-file-boundary | safety | freeflow:run-cat-host-shell | host shell command capture, not sandbox | no | 1/1 | 68 | 593 | -772.06% | metadata-only/no-raw | 10 | Freeflow_run is a host command runner/capture layer, not a sandbox; it captured outside file content. |
|
|
139
|
+
| small-success-recovery | recovery | freeflow:small-success-default-storage | hybrid-dedupe storage semantics | yes | 1/1 | 20 | 545 | -2625% | metadata-only/no-raw | 8 | metadata-only/no-raw |
|
|
140
|
+
| small-success-recovery | recovery | freeflow:small-success-preserve-full | exact recovery override | yes | 1/1 | 20 | 370 | -1750% | exact-outputId | 8 | exact-outputId |
|
|
141
|
+
|
|
142
|
+
## Context Mode stats preview
|
|
143
|
+
|
|
144
|
+
```
|
|
145
|
+
19.0K tokens saved · 72.3% reduction · < 1 min · ~$0.10 saved (Opus)
|
|
146
|
+
|
|
147
|
+
Without context-mode |████████████████████████████████████████| 103 KB
|
|
148
|
+
With context-mode |███████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░| 28.5 KB
|
|
149
|
+
|
|
150
|
+
74.3 KB kept out of your conversation — 4× longer sessions before compact.
|
|
151
|
+
|
|
152
|
+
22 calls
|
|
153
|
+
|
|
154
|
+
ctx_batch_execute 1 calls 32.6 KB saved
|
|
155
|
+
ctx_execute_file 11 calls 22.9 KB saved
|
|
156
|
+
ctx_search 5 calls 17.2 KB saved
|
|
157
|
+
ctx_index 5 calls 1.8 KB saved
|
|
158
|
+
|
|
159
|
+
Persistent memory ✓ preserved across compact, restart & upgrade
|
|
160
|
+
0 events · 1 session · ~$0.10 saved lifetime
|
|
161
|
+
|
|
162
|
+
Skipped (1): Pi
|
|
163
|
+
These adapters have DBs on disk but only test fixtures, dev skeletons,
|
|
164
|
+
or detection probes — no real chat activity.
|
|
165
|
+
|
|
166
|
+
Preferences learned · 37 across 2 projects
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
## Representative failing previews
|
|
170
|
+
|
|
171
|
+
### vitest-summary-upstream-script / context-mode:upstream-benchmark-script
|
|
172
|
+
```
|
|
173
|
+
path=fixtures/test-output.txt
|
|
174
|
+
```javascript
|
|
175
|
+
const lines = FILE_CONTENT.split("\n");
|
|
176
|
+
const suitePass = lines.filter(l => l.trimStart().startsWith("✓") && !l.startsWith(" ")).length;
|
|
177
|
+
const suiteFail = lines.filter(l => l.trimStart().startsWith("✗") && !l.startsWith(" ")).length;
|
|
178
|
+
const testPass = lines.filter(l => l.match(/^\s+✓/)).length;
|
|
179
|
+
const testFail = lines.filter(l => l.match(/^\s+✗/)).length;
|
|
180
|
+
console.log("vitest — Test Results Summary");
|
|
181
|
+
console.log("Suites:", suitePass, "passed,", suiteFail, "failed");
|
|
182
|
+
console.log("Tests:", testPass, "passed,", testFail, "failed");
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
vitest — Test Results Summary
|
|
186
|
+
Suites: 26 passed, 4 failed
|
|
187
|
+
Tests: 132 passed, 8 failed
|
|
188
|
+
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
### outside-file-boundary / freeflow:run-cat-host-shell
|
|
192
|
+
```
|
|
193
|
+
Command success with exitCode=0.
|
|
194
|
+
Small successful command output: current output was stored as metadata-only by storagePolicy=hybrid-dedupe; exact raw output was not vaulted; routed evidence was returned near-raw from the captured execution (parser=generic confidence=0.35 fidelity=exact).
|
|
195
|
+
OUTSIDE_SECRET_TOKEN must not be read by project-scoped file tools.
|
|
196
|
+
|
|
197
|
+
Current command record is metadata-only outputId=ffout_77f73daad63c920b4a35cc86; exact raw output was not vaulted by storagePolicy=hybrid-dedupe. Rerun with preserve=full or a verification/diagnosis goal if exact recovery is required.
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
## Notes
|
|
201
|
+
|
|
202
|
+
- This is a real local Context Mode comparison, but public superiority claims remain disallowed until reviewed acceptance criteria pass.
|
|
203
|
+
- The remaining expected Freeflow failure is the host-shell outside-file-boundary row: freeflow_run captures host command output and is not a project-boundary file sandbox.
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# Context Mode Real Deep Final Slice 11 Review
|
|
2
|
+
|
|
3
|
+
Generated: 2026-06-28
|
|
4
|
+
|
|
5
|
+
## Source Reports
|
|
6
|
+
|
|
7
|
+
- Baseline: `evals/reports/runtime/context-mode-real-deep-baseline-1-report.md`
|
|
8
|
+
- Final run: `evals/reports/runtime/context-mode-real-deep-final-slice-11-report.md`
|
|
9
|
+
|
|
10
|
+
## Headline
|
|
11
|
+
|
|
12
|
+
Freeflow improved substantially over the committed baseline and is competitive with real Context Mode, but it is not a blanket replacement for Context Mode.
|
|
13
|
+
|
|
14
|
+
- Freeflow aggregate improved from **17/28 correct** and **76/92 facts** to **35/36 correct** and **124/124 facts**.
|
|
15
|
+
- Freeflow aggregate visible output dropped from **180,434 bytes** to **42,423 bytes**.
|
|
16
|
+
- Freeflow aggregate weighted reduction improved from **76.28%** to **95.76%**.
|
|
17
|
+
- Real Context Mode comparable rows in the final run were **16/16 correct**, **53/53 facts**, and **92.58%** weighted reduction.
|
|
18
|
+
|
|
19
|
+
Public superiority claims remain disallowed because the benchmark still shows different strengths by task class.
|
|
20
|
+
|
|
21
|
+
## Baseline vs Final Freeflow
|
|
22
|
+
|
|
23
|
+
| Area | Baseline | Final | Result |
|
|
24
|
+
| --- | ---: | ---: | --- |
|
|
25
|
+
| All Freeflow rows | 17/28 correct, 76/92 facts, 180,434 visible bytes, 76.28% reduction | 35/36 correct, 124/124 facts, 42,423 visible bytes, 95.76% reduction | Large improvement |
|
|
26
|
+
| `freeflow:run-cat-default` | 3/9 correct, 25/36 facts, 158,978 visible bytes, 46.76% reduction | 9/9 correct, 36/36 facts, 12,314 visible bytes, 95.88% reduction | Fixed correctness and verbosity |
|
|
27
|
+
| `freeflow:repo-query` | 1/4 correct, 8/12 facts, 7,570 visible bytes, 55.78% reduction | 4/4 correct, 12/12 facts, 10,234 visible bytes, 42.21% reduction | Fixed correctness, but context savings worsened |
|
|
28
|
+
| `freeflow:batch` | 0/1 correct, 2/3 facts, 2,764 visible bytes, 95.27% reduction | 1/1 correct, 3/3 facts, 5,408 visible bytes, 90.75% reduction | Fixed answer aggregation, still compact |
|
|
29
|
+
| Transform/count example | not present as final transform row | 1/1 correct, 1/1 facts, 660 visible bytes, 99.25% reduction | Added deterministic transform evidence |
|
|
30
|
+
|
|
31
|
+
## Final Freeflow vs Real Context Mode
|
|
32
|
+
|
|
33
|
+
| Capability | Context Mode | Freeflow | Assessment |
|
|
34
|
+
| --- | ---: | ---: | --- |
|
|
35
|
+
| File/output summarization | `ctx_execute_file`: 10/10 correct, 37/37 facts, 8,349 visible bytes, 97.20% reduction, 37.3ms avg | `freeflow:run-cat-default`: 9/9 correct, 36/36 facts, 12,314 visible bytes, 95.88% reduction, 14.3ms avg | Freeflow is correct and faster with exact recovery, but Context Mode is smaller |
|
|
36
|
+
| Built-in processing reducers | n/a direct aggregate | 8/8 correct, 32/32 facts, 2,960 visible bytes, 98.76% reduction, 5.6ms avg | Freeflow reducers beat the Context Mode file-transform aggregate on context size for covered shapes |
|
|
37
|
+
| Repo/docs search | Context search rows: 5/5 correct, 13/13 facts, 6,714 visible bytes, 62.23% reduction, 1.2ms avg | Freeflow search rows: 5/5 correct, 13/13 facts, 12,480 visible bytes, 29.79% reduction, 22ms avg | Context Mode is better for indexed search compactness and latency |
|
|
38
|
+
| Batch | `ctx_batch_execute`: 1/1 correct, 3/3 facts, 12,757 visible bytes, 78.18% reduction, 20ms | `freeflow:batch`: 1/1 correct, 3/3 facts, 5,408 visible bytes, 90.75% reduction, 66ms | Freeflow is more compact; Context Mode is faster |
|
|
39
|
+
|
|
40
|
+
## Remaining Gaps
|
|
41
|
+
|
|
42
|
+
- `freeflow_run` is a host command runner/capture layer, not a project-boundary file sandbox. The outside-file-boundary benchmark row remains an expected visible limitation.
|
|
43
|
+
- Freeflow repo/docs search is now correct, but still more verbose and slower than Context Mode indexed search.
|
|
44
|
+
- Small metadata-only success rows intentionally preserve storage-policy semantics, but they are verbose relative to tiny raw output.
|
|
45
|
+
- Public superiority claims should wait until acceptance criteria define which task classes matter and whether search/indexing compactness must match Context Mode.
|
|
46
|
+
|
|
47
|
+
## Conclusion
|
|
48
|
+
|
|
49
|
+
Freeflow is now clearly better than its baseline and beats Context Mode for several Freeflow-owned processing paths, especially deterministic reducers and batch query aggregation. Context Mode still wins on indexed repo/docs search compactness and latency. The honest claim is:
|
|
50
|
+
|
|
51
|
+
> Freeflow now achieves Context Mode-class context savings for routed command/output processing and beats it for covered reducers and batch aggregation, while preserving exact recovery. It does not yet beat Context Mode’s indexed search path.
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
# Freeflow Context-Saving Native Tools Baseline Report - Slice 0
|
|
2
|
+
|
|
3
|
+
Date: 2026-06-26
|
|
4
|
+
|
|
5
|
+
## Scope
|
|
6
|
+
|
|
7
|
+
Baseline current model-visible output sizes for representative `freeflow_run`, `freeflow_retrieve`, and `freeflow_derive` results before the compact-output redesign.
|
|
8
|
+
|
|
9
|
+
The baseline intentionally measures current Pi tool text as pretty-printed routed result JSON. Later slices should reduce model-visible bytes while keeping details and exact recovery available.
|
|
10
|
+
|
|
11
|
+
## Summary
|
|
12
|
+
|
|
13
|
+
- Fixtures measured: 5
|
|
14
|
+
- Facts preserved: 5/5
|
|
15
|
+
- Recovery available: 5/5
|
|
16
|
+
- Raw bytes: 2030
|
|
17
|
+
- Model-visible bytes: 8340
|
|
18
|
+
- Details payload bytes: 8870
|
|
19
|
+
- Approx raw tokens: 508
|
|
20
|
+
- Approx model-visible tokens: 2085
|
|
21
|
+
- Weighted model-visible reduction vs raw: -310.84%
|
|
22
|
+
|
|
23
|
+
## Measurements
|
|
24
|
+
|
|
25
|
+
| Fixture | Tool | Action | Raw bytes | Model-visible bytes | Details bytes | Reduction vs raw | Facts | Recovery | Status |
|
|
26
|
+
| --- | --- | --- | ---: | ---: | ---: | ---: | --- | --- | --- |
|
|
27
|
+
| run-failed-test-output | freeflow_run | run | 428 | 1644 | 1766 | -284.11% | yes | yes | ok/failed/routed |
|
|
28
|
+
| retrieve-repo-query | freeflow_retrieve | query repo | 373 | 1473 | 1553 | -294.91% | yes | yes | ok/routed |
|
|
29
|
+
| retrieve-repo-exact-range | freeflow_retrieve | retrieve repo range | 373 | 1028 | 1108 | -175.60% | yes | yes | ok/routed |
|
|
30
|
+
| retrieve-vault-query | freeflow_retrieve | query vault | 428 | 1562 | 1668 | -264.95% | yes | yes | ok/routed |
|
|
31
|
+
| derive-regex-filter | freeflow_derive | regexFilter vault | 428 | 2633 | 2775 | -515.19% | yes | yes | ok/routed |
|
|
32
|
+
|
|
33
|
+
## Recovery And Evidence Handles
|
|
34
|
+
|
|
35
|
+
### run-failed-test-output
|
|
36
|
+
- outputId: `ffout_18f68dfabd64ef2bff301af5`
|
|
37
|
+
- recovery: Use freeflow_retrieve with source.kind=vault and outputId=ffout_18f68dfabd64ef2bff301af5 to recover exact command output.
|
|
38
|
+
- evidence: `stderr:1-4`, `combined:7-7`
|
|
39
|
+
- note: Current Pi model-visible text is the full pretty-printed routed result JSON.
|
|
40
|
+
|
|
41
|
+
### retrieve-repo-query
|
|
42
|
+
- recovery: Use freeflow_retrieve action=expand with evidenceId=ev_99fb47209c30c4b8 for more surrounding context, action=locate for candidate paths, or action=retrieve with path=plugin-docs/output-router.md for an explicit span.
|
|
43
|
+
- evidence: `plugin-docs/output-router.md:1-9`
|
|
44
|
+
|
|
45
|
+
### retrieve-repo-exact-range
|
|
46
|
+
- recovery: Use freeflow_retrieve action=expand with evidenceId=ev_fb0315fc354ab431 for more context from plugin-docs/output-router.md.
|
|
47
|
+
- evidence: `plugin-docs/output-router.md:3-5`
|
|
48
|
+
- note: This guards the existing public advanced path/range recovery behavior.
|
|
49
|
+
|
|
50
|
+
### retrieve-vault-query
|
|
51
|
+
- outputId: `ffout_18f68dfabd64ef2bff301af5`
|
|
52
|
+
- recovery: Use freeflow_retrieve action=expand with evidenceId=ev_a9dcb1fa89bbcb0c, or action=retrieve with outputId=ffout_18f68dfabd64ef2bff301af5 and stream=combined.
|
|
53
|
+
- evidence: `ffout_18f68dfabd64ef2bff301af5:combined:11-15`
|
|
54
|
+
|
|
55
|
+
### derive-regex-filter
|
|
56
|
+
- outputId: `ffout_c411aa12ee57b2f5ffe3ca14`
|
|
57
|
+
- recovery: Use freeflow_retrieve with source.kind=vault and outputId=ffout_c411aa12ee57b2f5ffe3ca14, stream=raw, and an exact lineRange to recover exact derived content. Source evidence remains outputId=ffout_18f68dfabd64ef2bff301af5 stream=combined.
|
|
58
|
+
- evidence: `ffout_c411aa12ee57b2f5ffe3ca14:raw:1-19`
|
|
59
|
+
|
|
60
|
+
## Guardrail Inventory
|
|
61
|
+
|
|
62
|
+
Existing tests/fixtures that must remain stable during the redesign:
|
|
63
|
+
|
|
64
|
+
- `router/tests/run.test.js`
|
|
65
|
+
- freeflowRun parser/recovery behavior
|
|
66
|
+
- duplicate output compaction
|
|
67
|
+
- exact failure and verification evidence preservation
|
|
68
|
+
- `router/tests/retrieve.test.js`
|
|
69
|
+
- exact repo path/range retrieval
|
|
70
|
+
- exact vault line retrieval
|
|
71
|
+
- vault-wide query/locate
|
|
72
|
+
- repo/vault expand and explain behavior
|
|
73
|
+
- `router/tests/derive.test.js`
|
|
74
|
+
- deterministic derive operations
|
|
75
|
+
- derived-output lineage and exact recovery
|
|
76
|
+
- structured failures for invalid operations and missing sources
|
|
77
|
+
- `router/tests/pi-extension.test.js`
|
|
78
|
+
- public Pi tool schemas
|
|
79
|
+
- content/details result contract
|
|
80
|
+
- compact and expanded TUI renderers
|
|
81
|
+
- `router/tests/pi-extension-derive.test.js`
|
|
82
|
+
- script derive disabled-by-default behavior
|
|
83
|
+
- adapter-unavailable behavior
|
|
84
|
+
- proof-backed adapter execution path
|
|
85
|
+
- `router/tests/regression-fixtures.test.js`
|
|
86
|
+
- generated decoy avoidance
|
|
87
|
+
- huge-line bounded evidence
|
|
88
|
+
- exact phrase and source-prior retrieval regressions
|
|
89
|
+
- `router/tests/vault-index.test.js`
|
|
90
|
+
- command/native/observed/derived vault record indexing
|
|
91
|
+
- metadata-only indexing without raw recovery claims
|
|
92
|
+
- retention and degraded-index behavior
|
|
93
|
+
|
|
94
|
+
## Notes
|
|
95
|
+
|
|
96
|
+
- This is a Slice 0 baseline for current Freeflow-owned tools before compact-output redesign.
|
|
97
|
+
- Model-visible bytes use the current Pi routedToolText shape: JSON.stringify(result, null, 2).
|
|
98
|
+
- Details payload bytes use the current Pi details shape: { result } with the same structured result.
|
|
99
|
+
- Negative reduction means the current routed JSON is larger than the raw fixture bytes; this is expected baseline evidence for compact-output work.
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
# Eryx Python Compatibility Reprobe Report
|
|
2
|
+
|
|
3
|
+
> **Date:** 2026-06-24
|
|
4
|
+
> **Status:** Still unavailable for product execution; temp-only package/exports workaround looks viable enough for a dedicated proof spike
|
|
5
|
+
> **Scope:** Compatibility-only evaluation. No Freeflow script execution path is enabled.
|
|
6
|
+
|
|
7
|
+
## Candidate
|
|
8
|
+
|
|
9
|
+
- Package: `@bsull/eryx@0.5.0`
|
|
10
|
+
- Transitive shim installed by npm: `@bytecodealliance/preview2-shim@0.17.9`
|
|
11
|
+
- Target: Python / CPython WASM for `freeflow_derive operation.kind="script"`
|
|
12
|
+
- Probe location: `/tmp/freeflow-eryx-compat-D1q0Dr`
|
|
13
|
+
- Install policy: temporary directory only; no repo dependency added
|
|
14
|
+
|
|
15
|
+
## Result
|
|
16
|
+
|
|
17
|
+
The current npm package still fails under default Node package resolution before Python code can run:
|
|
18
|
+
|
|
19
|
+
```text
|
|
20
|
+
SyntaxError: The requested module '@bytecodealliance/preview2-shim/filesystem' does not provide an export named '_setFileData'
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
This keeps Python script derive **unavailable** in product code.
|
|
24
|
+
|
|
25
|
+
A temp-only patch that rewrote Eryx's generated preview2-shim imports to the shim's browser implementations imported successfully and executed small Python smokes. This suggests the blocker is likely package/export-condition integration, not a fundamental inability to run Eryx under Node.
|
|
26
|
+
|
|
27
|
+
## Evidence
|
|
28
|
+
|
|
29
|
+
### Default import remains blocked
|
|
30
|
+
|
|
31
|
+
- Temp package root: `/tmp/freeflow-eryx-compat-D1q0Dr/node_modules/@bsull/eryx`
|
|
32
|
+
- Eryx version: `0.5.0`
|
|
33
|
+
- Preview2 shim version: `0.17.9`
|
|
34
|
+
- Vault evidence: `ffout_5981d87e952d39c35ad8bdc1`
|
|
35
|
+
|
|
36
|
+
Default import probe:
|
|
37
|
+
|
|
38
|
+
- Command: `node --experimental-wasm-jspi --input-type=module`
|
|
39
|
+
- Vault evidence: `ffout_30b56712c13ca7cfe49c700e`
|
|
40
|
+
- Result: failed at module import.
|
|
41
|
+
|
|
42
|
+
Failure excerpt:
|
|
43
|
+
|
|
44
|
+
```text
|
|
45
|
+
file:///private/tmp/freeflow-eryx-compat-D1q0Dr/node_modules/@bsull/eryx/index.js:27
|
|
46
|
+
import { _setFileData } from "@bytecodealliance/preview2-shim/filesystem";
|
|
47
|
+
^^^^^^^^^^^^
|
|
48
|
+
SyntaxError: The requested module '@bytecodealliance/preview2-shim/filesystem' does not provide an export named '_setFileData'
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### Cause shape
|
|
52
|
+
|
|
53
|
+
`@bytecodealliance/preview2-shim@0.17.9` exports `./*` with `node` before `default`:
|
|
54
|
+
|
|
55
|
+
```json
|
|
56
|
+
"./*": {
|
|
57
|
+
"types": "./types/*.d.ts",
|
|
58
|
+
"node": "./lib/nodejs/*.js",
|
|
59
|
+
"default": "./lib/browser/*.js"
|
|
60
|
+
}
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
Under Node, `@bytecodealliance/preview2-shim/filesystem` resolves to the Node filesystem shim. That shim exposes `_setPreopens`, `_addPreopen`, and related host-preopen helpers, but not `_setFileData`.
|
|
64
|
+
|
|
65
|
+
The browser filesystem shim does expose `_setFileData` and `_getFileData`, which matches Eryx's high-level JS package expectation.
|
|
66
|
+
|
|
67
|
+
Eryx's generated binding also imports preview2 shims through bare package subpaths:
|
|
68
|
+
|
|
69
|
+
```text
|
|
70
|
+
@bytecodealliance/preview2-shim/cli
|
|
71
|
+
@bytecodealliance/preview2-shim/clocks
|
|
72
|
+
@bytecodealliance/preview2-shim/filesystem
|
|
73
|
+
@bytecodealliance/preview2-shim/io
|
|
74
|
+
@bytecodealliance/preview2-shim/random
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
So a product adapter must not simply rely on default Node resolution.
|
|
78
|
+
|
|
79
|
+
### Temp browser-shim patch imports
|
|
80
|
+
|
|
81
|
+
A temp-only patch rewrote Eryx imports to explicit browser-shim files under the installed `preview2-shim` package. The first relative-path attempt failed, then the corrected patch imported successfully.
|
|
82
|
+
|
|
83
|
+
- Failed wrong-path patch evidence: `ffout_334568e4abb050aa1867960b`
|
|
84
|
+
- Corrected patch import evidence: `ffout_2139be5a08101cacdcde58d0`
|
|
85
|
+
|
|
86
|
+
Successful import excerpt:
|
|
87
|
+
|
|
88
|
+
```json
|
|
89
|
+
{
|
|
90
|
+
"status": "import_ok",
|
|
91
|
+
"exports": [
|
|
92
|
+
"Sandbox",
|
|
93
|
+
"_fileTree",
|
|
94
|
+
"execute",
|
|
95
|
+
"setCallbackHandler",
|
|
96
|
+
"setCallbacks",
|
|
97
|
+
"setOutputHandler",
|
|
98
|
+
"setResultVariable",
|
|
99
|
+
"setTraceHandler"
|
|
100
|
+
]
|
|
101
|
+
}
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
### Tiny execution and safety smoke
|
|
105
|
+
|
|
106
|
+
After the temp browser-shim import patch, a tiny smoke ran:
|
|
107
|
+
|
|
108
|
+
- `hello`: success
|
|
109
|
+
- `env`: success with fixed Python runtime env only: `PYTHONHOME`, `PYTHONPATH`, `PYTHONUNBUFFERED`
|
|
110
|
+
- `host_fs_denied`: error reading `/workspace/package.json`
|
|
111
|
+
- `network_denied`: error opening `https://example.com`
|
|
112
|
+
- Vault evidence: `ffout_488ddd54b10245f04b399cdd`
|
|
113
|
+
- Filtered structured-result evidence: `ffout_b3509ea5a72f0481f58b7f81`
|
|
114
|
+
|
|
115
|
+
The run emitted many `[filesystem] FLAGS FOR` / `[filesystem] RENAME AT` debug lines from the preview2 browser filesystem shim. A product adapter would need to suppress or strictly bound that output before routing.
|
|
116
|
+
|
|
117
|
+
### Worker timeout smoke
|
|
118
|
+
|
|
119
|
+
The high-level Eryx JS API does not expose resource-limit or timeout options. A Freeflow adapter would need host-level isolation.
|
|
120
|
+
|
|
121
|
+
A tiny Node Worker smoke showed that an infinite Python loop can be stopped by terminating the Worker from the host after 500ms:
|
|
122
|
+
|
|
123
|
+
- Explicit Worker `execArgv: ["--experimental-wasm-jspi"]` is rejected by Node: `ffout_735b62ec823a3614f4a9f5a2`
|
|
124
|
+
- When the parent Node process starts with `--experimental-wasm-jspi`, the Worker inherits enough support and terminates successfully: `ffout_cb09bc89aa0f8237c1fe50b2`
|
|
125
|
+
|
|
126
|
+
Success excerpt:
|
|
127
|
+
|
|
128
|
+
```json
|
|
129
|
+
{"status":"terminated_after_timeout","terminateCode":1}
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
## Required Proof Status
|
|
133
|
+
|
|
134
|
+
| Proof | Result | Reason |
|
|
135
|
+
| --- | --- | --- |
|
|
136
|
+
| env_access_denied | smoke-pass, not full proof | Temp browser-shim run exposed only fixed Python runtime env values, but full proof suite not run. |
|
|
137
|
+
| home_access_denied | not run | Needs full proof spike. |
|
|
138
|
+
| repo_access_denied | smoke-pass, not full proof | `/workspace/package.json` read failed, but full proof suite not run. |
|
|
139
|
+
| vault_access_denied | not run | Needs full proof spike. |
|
|
140
|
+
| network_access_denied | smoke-pass, not full proof | `urllib.request` failed, but full proof suite not run. |
|
|
141
|
+
| input_read_only | not run | Needs adapter design for mounted/copied input. |
|
|
142
|
+
| output_escape_denied | not run | Needs adapter design for output collection. |
|
|
143
|
+
| stdout_stderr_bounded | not run | Preview2 browser shim emits noisy debug logs; output caps must be proof-tested. |
|
|
144
|
+
| timeout_enforced | smoke-pass, not full proof | Worker termination stopped `while True`, but full proof suite not run. |
|
|
145
|
+
|
|
146
|
+
## Decision
|
|
147
|
+
|
|
148
|
+
Do not enable Python script derive yet.
|
|
149
|
+
|
|
150
|
+
Do not add `@bsull/eryx` to repo dependencies yet.
|
|
151
|
+
|
|
152
|
+
Eryx can move from "blocked before import" to a dedicated proof spike only if the next slice explicitly chooses one of these paths:
|
|
153
|
+
|
|
154
|
+
1. Wait for upstream Eryx/preview2-shim packaging to expose the intended in-memory filesystem path under Node.
|
|
155
|
+
2. Build a Freeflow-local temp-copy wrapper that rewrites or aliases Eryx's preview2-shim imports to browser/in-memory shims from an explicit `FREEFLOW_ERYX_ROOT` package root, then runs in a Worker.
|
|
156
|
+
3. Use a different Python WASM candidate.
|
|
157
|
+
|
|
158
|
+
Any product adapter must still pass all nine script-sandbox proofs, run only from an explicit package root, avoid runtime downloads, avoid raw script persistence, enforce output caps before routing, and return structured unavailable/no-recovery failures when proof or execution fails.
|
|
159
|
+
|
|
160
|
+
## Follow-up Risks
|
|
161
|
+
|
|
162
|
+
- Eryx JS API lacks direct resource-limit configuration; host Worker termination is necessary and memory isolation remains to be proven.
|
|
163
|
+
- Preview2 browser filesystem debug logs can flood stdout unless suppressed or capped.
|
|
164
|
+
- A temp import-rewrite wrapper is more invasive than the QuickJS/jq package-root adapters and needs focused security review.
|
|
165
|
+
- Node requires parent process startup with `--experimental-wasm-jspi`; Worker-level `execArgv` cannot add that flag after the fact.
|
|
166
|
+
- Browser/in-memory shim use must be audited against Eryx generated bindings so no host filesystem preopens or ambient env/network capabilities are accidentally selected.
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
# Eryx Python Sandbox Proof Spike Report
|
|
2
|
+
|
|
3
|
+
> **Date:** 2026-06-24
|
|
4
|
+
> **Status:** Blocked before sandbox proofs
|
|
5
|
+
> **Scope:** Compatibility-only evaluation. No Freeflow script execution path is enabled.
|
|
6
|
+
|
|
7
|
+
## Candidate
|
|
8
|
+
|
|
9
|
+
- Package: `@bsull/eryx@0.5.0`
|
|
10
|
+
- Target: Python / CPython WASM
|
|
11
|
+
- License: MIT OR Apache-2.0
|
|
12
|
+
- Candidate role: primary Python member of the multi-language WASM/WASI adapter family
|
|
13
|
+
- Temp install policy: temporary directories only; no repo dependencies added
|
|
14
|
+
|
|
15
|
+
## Result
|
|
16
|
+
|
|
17
|
+
`@bsull/eryx@0.5.0` could not be imported far enough to execute Python proof fixtures.
|
|
18
|
+
|
|
19
|
+
The failure occurs before Python code runs:
|
|
20
|
+
|
|
21
|
+
```text
|
|
22
|
+
SyntaxError: The requested module '@bytecodealliance/preview2-shim/filesystem' does not provide an export named '_setFileData'
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
This means the candidate is currently **unproven/unavailable**, not sandbox-proof failed. The required Python proofs were not executed.
|
|
26
|
+
|
|
27
|
+
## Evidence
|
|
28
|
+
|
|
29
|
+
### Existing temp install
|
|
30
|
+
|
|
31
|
+
- Package root: `/tmp/freeflow-sandbox-candidates-xVAJBl/node_modules/@bsull/eryx`
|
|
32
|
+
- Installed transitive dependency: `@bytecodealliance/preview2-shim@0.17.9`
|
|
33
|
+
- Probe command used `node --experimental-wasm-jspi` and failed at module import.
|
|
34
|
+
- Vault evidence: `ffout_bbe8fe7589be6c905b70681c`
|
|
35
|
+
|
|
36
|
+
Failure excerpt:
|
|
37
|
+
|
|
38
|
+
```text
|
|
39
|
+
import { _setFileData } from "@bytecodealliance/preview2-shim/filesystem";
|
|
40
|
+
^^^^^^^^^^^^
|
|
41
|
+
SyntaxError: The requested module '@bytecodealliance/preview2-shim/filesystem' does not provide an export named '_setFileData'
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### Explicit transitive pin probe
|
|
45
|
+
|
|
46
|
+
A separate temp-only install pinned `@bytecodealliance/preview2-shim@0.17.0`:
|
|
47
|
+
|
|
48
|
+
```text
|
|
49
|
+
freeflow-eryx-pin-vugjrk@1.0.0 /private/tmp/freeflow-eryx-pin-vUgJRk
|
|
50
|
+
├─┬ @bsull/eryx@0.5.0
|
|
51
|
+
│ └── @bytecodealliance/preview2-shim@0.17.0 deduped
|
|
52
|
+
└── @bytecodealliance/preview2-shim@0.17.0
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
It failed the same way under `Node.js v25.8.1` with `--experimental-wasm-jspi`.
|
|
56
|
+
|
|
57
|
+
- Vault evidence: `ffout_0dba96a3cde626f6c462aef8`
|
|
58
|
+
|
|
59
|
+
Failure excerpt:
|
|
60
|
+
|
|
61
|
+
```text
|
|
62
|
+
import { _setFileData } from "@bytecodealliance/preview2-shim/filesystem";
|
|
63
|
+
^^^^^^^^^^^^
|
|
64
|
+
SyntaxError: The requested module '@bytecodealliance/preview2-shim/filesystem' does not provide an export named '_setFileData'
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## Required Proof Status
|
|
68
|
+
|
|
69
|
+
| Proof | Result | Reason |
|
|
70
|
+
| --- | --- | --- |
|
|
71
|
+
| env_access_denied | not run | Candidate import failed before Python execution. |
|
|
72
|
+
| home_access_denied | not run | Candidate import failed before Python execution. |
|
|
73
|
+
| repo_access_denied | not run | Candidate import failed before Python execution. |
|
|
74
|
+
| vault_access_denied | not run | Candidate import failed before Python execution. |
|
|
75
|
+
| network_access_denied | not run | Candidate import failed before Python execution. |
|
|
76
|
+
| input_read_only | not run | Candidate import failed before Python execution. |
|
|
77
|
+
| output_escape_denied | not run | Candidate import failed before Python execution. |
|
|
78
|
+
| stdout_stderr_bounded | not run | Candidate import failed before Python execution. |
|
|
79
|
+
| timeout_enforced | not run | Candidate import failed before Python execution. |
|
|
80
|
+
|
|
81
|
+
## Decision
|
|
82
|
+
|
|
83
|
+
Do not add `@bsull/eryx` as a Freeflow dependency yet.
|
|
84
|
+
|
|
85
|
+
Keep Python script derive unavailable until one of these is true:
|
|
86
|
+
|
|
87
|
+
1. A compatible Eryx package/transitive dependency set imports successfully and then passes every Python proof fixture.
|
|
88
|
+
2. A different Python WASM candidate is selected, inventoried, and proof-tested.
|
|
89
|
+
3. The owner explicitly approves revising the Python adapter plan.
|
|
90
|
+
|
|
91
|
+
## Notes
|
|
92
|
+
|
|
93
|
+
- This report does not weaken the product target. JavaScript, Python, and jq remain target languages.
|
|
94
|
+
- This report does not enable script execution.
|
|
95
|
+
- No optional adapter package was added to `package.json`.
|
|
96
|
+
- No runtime download during script execution was introduced.
|