feat(ipuaro): implement v0.1.0 foundation

- Project setup with tsup, vitest, ESM support
- Domain entities: Session, Project
- Value objects: FileData, FileAST, FileMeta, ChatMessage, ToolCall, ToolResult, UndoEntry
- Service interfaces: IStorage, ILLMClient, ITool, IIndexer, IToolRegistry
- Shared: Config (zod), IpuaroError, utils (hash, tokens), Result type
- CLI with placeholder commands (start, init, index)
- 91 unit tests with 100% coverage
- Fix package scope @puaros -> @samiyev in CLAUDE.md
This commit is contained in:
imfozilbek
2025-11-29 23:08:38 +05:00
parent 7f6180df37
commit 130a8c4f24
62 changed files with 4629 additions and 6 deletions

View File

@@ -0,0 +1,19 @@
import { describe, it, expect } from "vitest"
import { createEmptyFileAST } from "../../../../src/domain/value-objects/FileAST.js"
describe("FileAST", () => {
describe("createEmptyFileAST", () => {
it("should create empty AST with all arrays empty", () => {
const ast = createEmptyFileAST()
expect(ast.imports).toEqual([])
expect(ast.exports).toEqual([])
expect(ast.functions).toEqual([])
expect(ast.classes).toEqual([])
expect(ast.interfaces).toEqual([])
expect(ast.typeAliases).toEqual([])
expect(ast.parseError).toBe(false)
expect(ast.parseErrorMessage).toBeUndefined()
})
})
})