Skip to content

HardlyDifficult/typescript

Repository files navigation

TypeScript Monorepo

Focused, opinionated, easy-to-use npm packages for building robust TypeScript applications—especially around AI, GitHub workflows, messaging, and async control flow.

AI & LLMs

Package Description
ai Core AI/LLM integration: unifies Anthropic & Ollama, streaming, caching, structured outputs (Zod), and tool calling.
cursor-cloud Cursor-only remote session client with opinionated defaults and a chainable launch/wait API.
agent-tools Infrastructure for deterministic tool execution: config-driven I/O limits, GitHub-style path parsing, and robust error handling.

GitHub & CI

Package Description
github GitHub integration: polling-based PR watching, Octokit clients, timeline building, and tree diffing.
ci-scripts CI automation: dependency validation, auto-fix with Git retry, and topologically sorted publishing.
pr-analyzer PR analysis pipeline: fetches CI/reviews/conflicts, classifies into action buckets, and determines merge readiness.
repo-processor Incremental repo processor with SHA-based change detection, parallel file/dir processing, and YAML-persisted state.

Async / Control Flow

Package Description
poller Generic polling utility with debounced triggers and deep equality change detection (JSON).
throttle Token-bucket rate limiting with persistence, exponential backoff, and reliable async retry.
queue High-performance priority queue with O(1) ops, dynamic priorities, and observer hooks.
worker-server WebSocket-based worker server with health monitoring and load-balanced routing.
websocket Smart WebSocket client with reconnection, token refresh, lifecycle tracking, and heartbeat health checks.

Messaging

Package Description
chat Platform-agnostic chat SDK abstracting Discord/Slack: unified abstractions, command routing, batched/streaming replies.
social Social media abstraction: X/Twitter implementation, Mastodon stub, polling like watcher, and normalized post types.

Data / State

Package Description
state-tracker Resilient local state persistence: atomic JSON writes, schema migrations, and in-memory fallback.
usage-tracker Usage tracking with session/cumulative metrics, USD cost detection, time-windowed limits, and disk persistence.
collections Low-level utilities: chunk for array partitioning, groupByDepth for directory traversal.
task-list Unified task-list abstraction for Linear/Trello: rate-limited clients, deferred fluent API, and lifecycle management.

Utilities

Package Description
date-time Opinionated duration helpers with duration({ ... }), Unix-second parsing, and ESM/CJS dual exports.
document-generator Platform-agnostic document generator with fluent API for Markdown, Slack mrkdwn, and plain text output.
http Secure HTTP utilities: constant-time comparison, bounded body reading (1MB), JSON/CORS responses.
logger Opinionated structured logging with console-first defaults, bound context, JSONL output, and session tracking.
text Text utilities for chunking, YAML/JSON conversion, markdown escaping, and linkification.
workflow-engine Typed workflow engine with FSM core and pipeline abstraction: gates, retries, hooks, and persistence.

Tooling

Package Description
shared-config Centralized config: package name, postinstall copy script, and strict tsconfig with CommonJS output.
ts-config Shared config for TypeScript, ESLint (flat), and Prettier across the monorepo.
rest-client Typed REST client with Zod validation, OAuth2/bearer auth, automatic retries, and structured errors (Axios-based).
daemon Daemon utilities for graceful Node.js shutdowns and lifecycle management.
storybook-components Shared React UI primitives for Storybook: Stack, Text, Button, and more.

GitHub Actions Setup

Required repository secrets:

  • NPM_TOKEN: For npm publishing automation (e.g., via ci-scripts).
  • PAT_TOKEN: For CI auto-fix workflows (e.g., dependency pinning, Git push with retry logic).

All packages follow strict TypeScript standards with shared config and dual ESM/CJS output where applicable.