Implements a comprehensive suite of AI SDK v6 tools across multiple categories: - Research (5): page-brief, compare-pages, source-credibility, claim-checklist, timeline-from-text - Web (10): fetch-text, links-catalog, extract-meta, extract-json-ld, redirect-trace, sitemap-read, rss-read, table-extract, robots-policy, url-normalize - Data (15): csv-parse, csv-stringify, json-repair, json-schema-validate, yaml-parse, yaml-stringify, text-chunk, normalize-whitespace, dedupe-by-key, pivot, rows-filter, rows-sort, rows-group-aggregate, rows-join, schema-infer - Doc (12): toc-generate, glossary-build, faq-from-text, executive-brief, decision-record-adr, prd-outline, acceptance-criteria, style-rewrite - Eng (12): diff-text-unified, env-var-docs-generate, dependency-audit-lite, conventional-commit-suggest, markdown-lint-basic, test-case-generate, stacktrace-parse, release-notes, changelog-entry, release-checklist - Security (7): redact-secrets, secret-scan-text, url-risk-heuristic, csp-compose, hardening-checklist-web, access-control-matrix, data-classification-heuristic - Stats (9): effect-size-suite, bootstrap-ci, permutation-test, multiple-testing-adjust, linear-regression-ols, logistic-regression, time-series-decompose-lite, anomaly-detect-mad - Ops (7): slo-draft, runbook-draft, postmortem-draft, postmortem-action-extractor, error-log-triage, coverage-tracker, monitoring-gap-analysis - Agent (15): prompt-to-workflow-skeleton, workflow-validate-io, workflow-explain, workflow-cost-estimate, tool-call-accuracy-score, eval-fixture-build, guardrail-policy-draft, workflow-auto-repair, tool-selection-plan, novelty-score-workflow, workflow-variant-generate, config-normalize, recipe-* - Utility (8): base64-encode, base64-decode, hash-text, regex-extract, template-render, date-parse, json-path-query, url-parse - HTML (3): html-sanitize, html-to-markdown, markdown-to-html All tools follow AI SDK v6 pattern with tool() and jsonSchema<T>(). 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
145 lines
4.5 KiB
Markdown
145 lines
4.5 KiB
Markdown
# Statistics Tools Implementation Summary
|
||
|
||
Successfully implemented 3 statistical analysis tools for the TPMJS official tools collection.
|
||
|
||
## Tools Implemented
|
||
|
||
### 1. Permutation Test (`@tpmjs/tools-permutation-test`)
|
||
**Path:** `/Users/ajaxdavis/repos/tpmjs/tpmjs/packages/tools/official/permutation-test`
|
||
|
||
**Purpose:** Performs a permutation test to assess the statistical significance of the difference in means between two groups.
|
||
|
||
**Features:**
|
||
- Non-parametric hypothesis testing
|
||
- Configurable iterations (100-100,000)
|
||
- Returns p-value, observed difference, significance status
|
||
- No assumptions about distribution
|
||
|
||
**Example:**
|
||
```typescript
|
||
const result = await permutationTestTool.execute({
|
||
group1: [23, 25, 27, 29, 31],
|
||
group2: [18, 20, 22, 24, 26],
|
||
iterations: 10000
|
||
});
|
||
// Returns: pValue, observedDiff, significant, metadata
|
||
```
|
||
|
||
### 2. Multiple Testing Adjustment (`@tpmjs/tools-multiple-testing-adjust`)
|
||
**Path:** `/Users/ajaxdavis/repos/tpmjs/tpmjs/packages/tools/official/multiple-testing-adjust`
|
||
|
||
**Purpose:** Adjusts p-values for multiple comparisons using Bonferroni, Benjamini-Hochberg (BH), or Holm methods.
|
||
|
||
**Features:**
|
||
- Three adjustment methods:
|
||
- **Bonferroni**: Most conservative, controls FWER
|
||
- **Benjamini-Hochberg (BH)**: Controls FDR, less conservative
|
||
- **Holm**: Step-down procedure, more powerful than Bonferroni
|
||
- Returns adjusted p-values and indices of significant tests
|
||
- Handles monotonicity constraints correctly
|
||
|
||
**Example:**
|
||
```typescript
|
||
const result = await multipleTestingAdjustTool.execute({
|
||
pValues: [0.001, 0.02, 0.03, 0.15, 0.8],
|
||
method: 'bh',
|
||
alpha: 0.05
|
||
});
|
||
// Returns: adjusted[], significant[], method, alpha, metadata
|
||
```
|
||
|
||
### 3. Linear Regression OLS (`@tpmjs/tools-linear-regression-ols`)
|
||
**Path:** `/Users/ajaxdavis/repos/tpmjs/tpmjs/packages/tools/official/linear-regression-ols`
|
||
|
||
**Purpose:** Performs simple linear regression using Ordinary Least Squares (OLS) method.
|
||
|
||
**Features:**
|
||
- Calculates slope and intercept
|
||
- Computes R-squared (coefficient of determination)
|
||
- Returns residuals and predictions
|
||
- Handles edge cases (identical x or y values)
|
||
|
||
**Example:**
|
||
```typescript
|
||
const result = await linearRegressionOLSTool.execute({
|
||
x: [1, 2, 3, 4, 5],
|
||
y: [2, 4, 5, 4, 5]
|
||
});
|
||
// Returns: slope, intercept, rSquared, residuals[], predictions[], metadata
|
||
```
|
||
|
||
## Implementation Details
|
||
|
||
### Architecture
|
||
- Each tool follows the TPMJS pattern using AI SDK v6
|
||
- Uses `import { tool, jsonSchema } from 'ai'`
|
||
- TypeScript with strict type checking
|
||
- No external statistical libraries - implemented from scratch
|
||
- Comprehensive input validation
|
||
|
||
### File Structure (each tool)
|
||
```
|
||
tool-name/
|
||
├── src/
|
||
│ └── index.ts # Main implementation
|
||
├── dist/ # Built output (ESM + TypeScript declarations)
|
||
│ ├── index.js
|
||
│ └── index.d.ts
|
||
├── package.json # Package configuration with tpmjs metadata
|
||
├── tsconfig.json # TypeScript configuration
|
||
├── tsup.config.ts # Build configuration
|
||
└── README.md # Documentation with examples
|
||
```
|
||
|
||
### Build Status
|
||
✅ All tools build successfully
|
||
✅ All tools pass TypeScript type-check
|
||
✅ All tools tested and working correctly
|
||
|
||
### Statistical Algorithms Implemented
|
||
|
||
**Permutation Test:**
|
||
- Fisher-Yates shuffle algorithm
|
||
- Monte Carlo permutation sampling
|
||
- Two-tailed p-value calculation
|
||
|
||
**Multiple Testing Adjustment:**
|
||
- Bonferroni correction: p_adj = min(1, p × n)
|
||
- Benjamini-Hochberg: Monotonic FDR control
|
||
- Holm step-down: Sequential rejection procedure
|
||
|
||
**Linear Regression:**
|
||
- OLS slope: β₁ = Σ((x-x̄)(y-ȳ)) / Σ((x-x̄)²)
|
||
- OLS intercept: β₀ = ȳ - β₁x̄
|
||
- R-squared: R² = 1 - (SSE/SST)
|
||
|
||
## Package Metadata
|
||
|
||
Each tool includes proper `tpmjs` metadata in package.json:
|
||
- Category: `statistics`
|
||
- Framework: `vercel-ai`
|
||
- Tool documentation with parameters and returns
|
||
- Published to npm under `@tpmjs` scope
|
||
|
||
## Testing Results
|
||
|
||
All three tools have been tested and verified working:
|
||
|
||
```
|
||
✅ Permutation Test: Correctly identifies significance with p-values
|
||
✅ Multiple Testing Adjust: Properly adjusts p-values with BH method
|
||
✅ Linear Regression: Accurately calculates slope, intercept, and R²
|
||
```
|
||
|
||
## Next Steps
|
||
|
||
The tools are ready to be:
|
||
1. Added to `blocks.yml` (to be done by user)
|
||
2. Published to npm
|
||
3. Documented on tpmjs.com
|
||
|
||
## Dependencies
|
||
|
||
- `ai`: ^6.0.0-beta.124 (AI SDK v6)
|
||
- No external statistical libraries required
|
||
- All algorithms implemented from scratch for transparency and control
|