# runtime/entrypoints/algorithm.entrypoint.ts

> 14 lines of code and 2 definitions.

Tree: GovLab Context
Language: typescript
Layer: runtime
Canonical: https://banes-lab.com/anatomy/context#file-context-runtime-entrypoints-algorithm-entrypoint-ts
Source text: https://banes-lab.com/source/context/runtime/entrypoints/algorithm.entrypoint.ts.txt

Listed in [runtime/entrypoints](https://banes-lab.com/api/source/context/runtime/entrypoints.md), before [runtime/entrypoints/grammar.entrypoint.ts](https://banes-lab.com/source/context/runtime/entrypoints/grammar.entrypoint.ts.md).

## Definitions

- `symbols` (lexical_declaration, line 12)
- `grammars` (lexical_declaration, line 14)

## Contained in

- [runtime/entrypoints](https://banes-lab.com/anatomy/context/folder-context-runtime-entrypoints.md)

## Source

```typescript
import { SYMBOLS_ARGV } from "#configuration/configs/invocation.config";
import { SYMBOLS_KEY } from "#configuration/constants/algorithm.constants";
import { buildSymbolIndex } from "#core/converters/algorithm.index.converter";
import { createAlgoGrammar } from "#core/factories/algorithm.factory";
import process from "node:process";
import { resolveArgv } from "@govlab/argv";
import { symbolsGenerated } from "#configuration/strings/ontology.report.strings";
import { symbolsPath } from "#core/loaders/algorithm.loader";
import { writeCanonicalJson } from "@govlab/canonical-write";

resolveArgv(SYMBOLS_ARGV);
const symbols = buildSymbolIndex(createAlgoGrammar({ symbols: [] }).all());
await writeCanonicalJson(symbolsPath(), { [SYMBOLS_KEY]: symbols });
const grammars = new Set(symbols.map((entry) => entry.grammar));
process.stdout.write(`${symbolsGenerated(symbols.length, grammars.size)}\n`);
```
