Skip to content

fix: extractText bug in estimate-cost + add test coverage - #41

Closed
TerminalGravity wants to merge 4 commits into
mainfrom
fix/estimate-cost-tests-and-dedup
Closed

fix: extractText bug in estimate-cost + add test coverage#41
TerminalGravity wants to merge 4 commits into
mainfrom
fix/estimate-cost-tests-and-dedup

Conversation

@TerminalGravity

Copy link
Copy Markdown
Collaborator

Bug fix: extractText in estimate-cost.ts wasn't filtering by b.type === 'text', so tool_use blocks with a text property were being counted as text tokens — inflating cost estimates.

Tests: Added 7 tests for analyzeSessionFile covering token counting, correction detection, tool calls, preflight tracking, content block filtering, malformed input, and epoch timestamps. (43 → 50 tests, all passing)

Relates to #14 (session cost estimator)

… and contracts

The README references .preflight/ config extensively but there were no
concrete example files to copy. This adds a ready-to-use examples/.preflight/
directory with annotated config.yml, triage.yml, and contracts/api.yml,
plus a README explaining how to use them.
Created examples/USAGE_EXAMPLES.md with 8 real-world scenarios showing
what each tool looks like in practice: preflight_check catching vague
prompts, scope_work creating execution plans, enrich_agent_task for
sub-agents, sharpen_followup resolving ambiguity, session health checks,
semantic history search, weekly scorecards, and prompt grading.

Added link to usage examples in README nav bar.
- Fixed extractText to filter by b.type === 'text' (was counting tool_use
  blocks as text tokens, inflating estimates)
- Exported analyzeSessionFile and SessionAnalysis for testability
- Added 7 tests covering: token counting, correction detection, tool call
  counting, preflight tool tracking, content block filtering, tool_result
  handling, malformed input, and epoch timestamps
- Test count: 43 → 50
@TerminalGravity

Copy link
Copy Markdown
Collaborator Author

Superseded by newer PRs.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant