Mirror of github.com/jessefreitas/omni-token-economy
Find a file
dependabot[bot] b4c8635724
build(deps): bump esbuild and vitest
Bumps [esbuild](https://github.com/evanw/esbuild) to 0.27.7 and updates ancestor dependency [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest). These dependencies need to be updated together.


Updates `esbuild` from 0.21.5 to 0.27.7
- [Release notes](https://github.com/evanw/esbuild/releases)
- [Changelog](https://github.com/evanw/esbuild/blob/main/CHANGELOG-2024.md)
- [Commits](https://github.com/evanw/esbuild/compare/v0.21.5...v0.27.7)

Updates `vitest` from 2.1.9 to 4.1.5
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v4.1.5/packages/vitest)

---
updated-dependencies:
- dependency-name: esbuild
  dependency-version: 0.27.7
  dependency-type: indirect
- dependency-name: vitest
  dependency-version: 4.1.5
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-24 13:41:32 +00:00
.github/workflows ci: gitleaks --no-git (scan só working tree, não histórico) 2026-04-24 08:46:32 -03:00
benchmarks feat: initial release — omni-token-economy v0.1.0 (clean, zero secrets) 2026-04-24 01:35:25 -03:00
docs feat: initial release — omni-token-economy v0.1.0 (clean, zero secrets) 2026-04-24 01:35:25 -03:00
src fix: ruff import sorting (I001) em __init__.py e test_compact.py 2026-04-24 08:34:22 -03:00
tests fix: ruff import sorting (I001) em __init__.py e test_compact.py 2026-04-24 08:34:22 -03:00
.gitignore feat: initial release — omni-token-economy v0.1.0 (clean, zero secrets) 2026-04-24 01:35:25 -03:00
CLAUDE.md feat: initial release — omni-token-economy v0.1.0 (clean, zero secrets) 2026-04-24 01:35:25 -03:00
LICENSE feat: initial release — omni-token-economy v0.1.0 (clean, zero secrets) 2026-04-24 01:35:25 -03:00
package-lock.json build(deps): bump esbuild and vitest 2026-04-24 13:41:32 +00:00
package.json build(deps): bump esbuild and vitest 2026-04-24 13:41:32 +00:00
pyproject.toml feat: initial release — omni-token-economy v0.1.0 (clean, zero secrets) 2026-04-24 01:35:25 -03:00
README.md feat: initial release — omni-token-economy v0.1.0 (clean, zero secrets) 2026-04-24 01:35:25 -03:00
tsconfig.build.json feat: initial release — omni-token-economy v0.1.0 (clean, zero secrets) 2026-04-24 01:35:25 -03:00
tsconfig.json feat: initial release — omni-token-economy v0.1.0 (clean, zero secrets) 2026-04-24 01:35:25 -03:00
vitest.config.ts feat: initial release — omni-token-economy v0.1.0 (clean, zero secrets) 2026-04-24 01:35:25 -03:00

omni-token-economy

Biblioteca universal de compactação de tokens para aplicações LLM. Zero lock-in de backend.

CI License: MIT

Por que existe

Sessões longas de Claude Code / aplicações LLM desperdiçam tokens com redundância semântica: summary que repete content, timestamps em microssegundo quando minuto basta, tags project:xxx quando o campo project já existe, metadata de IDs internos que o modelo nunca usa.

Esta biblioteca aplica 5 técnicas comprovadas para remover esse ruído sem perder significado:

Técnica Ganho típico
Redundância campo-a-campo (overlap ≥60% entre summary e content) 15-25%
Precisão temporal calibrada ao uso (microssegundo → minuto) 5-10%
Whitelist de metadata para dados sensíveis (secrets) 40-70%
Adaptive compression top-N (primeiros K verbatim, resto vira summary) 50-85%
Drop de campos redundantes por schema 20-35%

Combinado: 25-55% de redução média em chamadas que manipulam dados estruturados.

Instalação

# TypeScript / Node.js
npm install @omniforge/omni-token-economy

# Python
pip install omni-token-economy

Uso rápido

TypeScript

import { compactRecord, compressContext, compactSecret, estimateTokens } from '@omniforge/omni-token-economy';

// Trim de resposta de API antes de passar para o agente
const slim = compactRecord(apiResponse, {
  redundantPairs: [['summary', 'content'], ['title', 'name']],
  dropFields: ['internal_id', 'updated_at_ms'],
  timestampFields: ['created_at'],
  timestampPrecision: 'minute',
});

// Comprimir lista grande adaptativamente
const { items, compressed, metrics } = compressContext(searchResults, {
  maxTokens: 3000,
  keepFullFirst: 5,
  summaryField: 'description',
  contentField: 'body',
  telemetry: true,
});
console.log(`Economia: ${metrics.reductionPercent}%`);

// Metadata de secret — nunca o valor
const safeView = compactSecret(credential, {
  whitelist: ['key', 'description', 'category', 'rotated_at'],
});

// Estimar tokens antes de enviar
const tokens = estimateTokens(longText); // ≈ chars / 3

Python

from omni_token_economy import compact_record, compress_context, compact_secret, estimate_tokens

slim = compact_record(api_response, rules={
    "redundant_pairs": [("summary", "content"), ("title", "name")],
    "drop_fields": ["internal_id", "updated_at_ms"],
    "timestamp_fields": ["created_at"],
    "timestamp_precision": "minute",
})

result = compress_context(
    search_results,
    max_tokens=3000,
    keep_full_first=5,
    summary_field="description",
    content_field="body",
    telemetry=True,
)
print(f"Economia: {result.metrics.reduction_percent}%")

API

Ver docs/API.md para referência completa.

Função Para quê
compactRecord(obj, rules) Remove redundância de 1 objeto dict/record
compactRecords(list, rules) Aplica em lista
compressContext(items, opts) Compressão adaptativa top-N + summary
compactSecret(obj, opts) Whitelist de metadata para dado sensível
estimateTokens(text) Estimativa rápida: chars / 3
detectRedundancy(a, b) Overlap de palavras (0.0-1.0)
isRedundant(short, long, threshold) True se short é coberto por long

Telemetria

Toda função aceita { telemetry: true } e retorna métricas de economia:

{
  bytesBefore: 1240,
  bytesAfter: 582,
  tokensBefore: 413,
  tokensAfter: 194,
  tokensSaved: 219,
  reductionPercent: 53.0
}

Com agregação em dashboard, dá para medir ganho real por dev/time/mês. Ver benchmarks/ para rodar em datasets próprios.

Compliance

Segue baseline de ISO 27001 + cyber OmniForge — ver docs/compliance.md.

Destaques:

  • A.8.12compactSecret nunca retorna valor de secret (só metadata), prevenindo vazamento acidental.
  • A.8.10 — redução de informação desnecessária é uma das funções primárias.
  • Zero log de input com PII.

Licença

MIT.