Nuanced Typescript
Nuanced Typescript is an private package that generates enriched call graphs with static analysis annotations, providing AI coding tools with deeper understanding of code behavior.
Quick Start
Installation
Nuanced Typescript is a private NPM package and requires a license to install. Contact ayman@nuanced.dev for custom licensing options.
Usage
Command Line Interface
The cli provides two methods to analyze and navigate code relationships: init
and enrich
.
init
initializes a new graph for a package.
enrich
Graph Schema
Node Types
Each node in the graph represents a module or function. Nodes are uniquely identified by fully qualified names.
Node Attributes
Function nodes in the graph returned by the nuanced enrich
command have the following attributes:
Name | Description | Empty if |
---|---|---|
callees | A list of fully qualified function names uniquely identifying functions that are invoked by the function | Function has no callees |
filepath | The absolute path to the file where the function is defined | N/A |
start | The starting line:column position of the function definition | N/A |
end | The ending line:column position of the function definition | N/A |
Pricing Tiers
Nuanced Typescript is only available as a paid tier
Paid Tier
The paid tier provides essential call graph functionality:
- Basic call graph generation with
init
andenrich
commands - Function filepath information
- List of function callees
Architecture
Nuanced Typescript builds upon Jelly’s core call graph generation, extending it with a specialized focus on AI tooling integration. In jellycg, our fork of Jelly, we export the functions that allow us to run the analysis and interact with the results to form an enriched call graph. We chose Jelly because of it’s:
- Accurate resolution of function definitions and calls across files
- Full understanding of TypeScript syntax and type annotations
- Reliable handling of imports, exports, and module boundaries
- Support for modern JavaScript/TypeScript features
We’ve developed a layer on top that standardizes function identification and provides a consistent API for AI consumption. Our wrapper adds structured error handling and simplified querying capabilities that make it practical for real-world AI tooling scenarios.