Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
98431d4
Remove knowledge example
pratik-fractl Feb 23, 2026
6a714eb
Add knowledge graph memory system with Neo4j integration
pratik-fractl Feb 17, 2026
5e1614e
Fix formatting and remove old example
pratik-fractl Feb 17, 2026
addcd2c
Update package-lock and pnpm-lock
pratik-fractl Feb 17, 2026
f094a72
Proper debug messages and don't regenerate embeddings
pratik-fractl Feb 17, 2026
2a91f9d
Clear neo4j DB on start
pratik-fractl Feb 17, 2026
a40a56f
Update graph schema fields and add LanceDB and remove sqlite-vec
pratik-fractl Feb 18, 2026
49408b6
Use `npm ci` instead of `npm install`
pratik-fractl Feb 18, 2026
f16254e
Rename containerTag to __tenant__
pratik-fractl Feb 18, 2026
274339f
Remove tenancy
pratik-fractl Feb 19, 2026
4884ad9
Remove userId isolation
pratik-fractl Feb 19, 2026
93ad470
Fixes
pratik-fractl Feb 19, 2026
2694474
Fix issues
pratik-fractl Feb 19, 2026
4eb32c3
Only use agentId naming
pratik-fractl Feb 19, 2026
8be3aac
add missing date-fns dependencies after rebase
pratik-fractl Feb 19, 2026
48ccde8
Proper config and fix linter errors
pratik-fractl Feb 19, 2026
f9c064e
Remove all lance embeddings
pratik-fractl Feb 20, 2026
faaf77b
Remove reference documentation
pratik-fractl Feb 20, 2026
02a9bed
WIP
pratik-fractl Feb 24, 2026
f540abf
WIP
pratik-fractl Feb 24, 2026
324ad57
Update API
pratik-fractl Feb 24, 2026
f8affa3
Remove code from agentlang
pratik-fractl Feb 24, 2026
34078ea
Changes
pratik-fractl Feb 24, 2026
78f1f33
Format and lint
pratik-fractl Feb 24, 2026
2fde663
Updates
pratik-fractl Feb 24, 2026
cb9e092
Remove all graph logic from here
pratik-fractl Feb 25, 2026
b56b47a
Proper topics and selection
pratik-fractl Feb 25, 2026
87554c0
When knowledge-graph isn't enabled use normal document embeddings
pratik-fractl Feb 25, 2026
426a121
Remove `pnpm` completely
pratik-fractl Feb 25, 2026
0347fe5
Add AGENTS.md so, agents can understand the project
pratik-fractl Feb 25, 2026
c6e4a26
Remove init function which isn't preset
pratik-fractl Feb 25, 2026
70392fc
Update example and documentation
pratik-fractl Feb 25, 2026
c071f44
Update example and docs
pratik-fractl Feb 25, 2026
78336b5
Keep local embedding for topics and restore example/knowledge
pratik-fractl Feb 25, 2026
bde43a4
Update knowledge topics
pratik-fractl Feb 25, 2026
18b94c5
Add fallback for getting Topic
pratik-fractl Feb 25, 2026
5a323f4
Fix pdfParse issue
pratik-fractl Feb 26, 2026
af7d9d9
Remove outdated tests
pratik-fractl Feb 26, 2026
4b0731a
Remove agentId usages
pratik-fractl Mar 17, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 8 additions & 10 deletions .github/RELEASE_PROCESS.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ This repository uses an automated release preparation workflow that triggers whe
- Updated `package.json` with the new version
- Updated `CHANGELOG.md` with all commits since the last tag
- Updated `package-lock.json` (via `npm install`)
- Updated `pnpm-lock.yaml` (via `pnpm install`)
- Formatted and linted code
- Links to all commits with author mentions
3. **Review & Merge**: Review the PR and merge it
Expand Down Expand Up @@ -53,7 +52,6 @@ The workflow will:
- Author mentions
- Update `package.json` version
- Run `npm install` to update `package-lock.json`
- Run `pnpm install` to update `pnpm-lock.yaml`
- Create a Pull Request with all these changes

### 4. Review the Pull Request
Expand All @@ -65,7 +63,8 @@ The automated PR will be titled **"Release X.Y.Z"** and will include:
- Author attributions

Review the PR to ensure:
- Version number is correct

- The version number is correct
- All commits since the last tag are included
- CHANGELOG entries are accurate
- Lock files are properly updated
Expand Down Expand Up @@ -126,10 +125,9 @@ git push origin 0.9.0

## Lock File Updates

Both lock files are updated in the workflow:
Lock file is updated in the workflow:

- **`package-lock.json`**: Generated by `npm install`
- **`pnpm-lock.yaml`**: Generated by `pnpm install --no-frozen-lockfile`

This ensures both package managers have up-to-date lock files after the version bump.

Expand All @@ -140,9 +138,9 @@ This ensures both package managers have up-to-date lock files after the version
- Ensure the tag follows the format: `X.Y.Z` or `vX.Y.Z` (e.g., `0.8.3`, `1.0.0`, `v0.8.3`)
- Recommended: Use tags without 'v' prefix (`0.8.3`), but `v0.8.3` also works
- Check that you pushed the tag: `git push origin <tag-name>`
- Verify GitHub Actions is enabled for the repository
- Verify GitHub Actions are enabled for the repository

### PR not created
### PR isn’t created

- Check the Actions tab for workflow errors
- Ensure GitHub Actions has proper permissions (contents: write, pull-requests: write)
Expand All @@ -154,9 +152,9 @@ This ensures both package managers have up-to-date lock files after the version
- Ensure you're tagging from the correct commit
- Use `git log <prev-tag>..<current-tag>` to preview commits

### Lock files not updated correctly
### Lock file isn’t updated correctly

- The workflow runs both `npm install` and `pnpm install`
- The workflow runs both `npm install`
- If there are dependency issues, the workflow will fail
- Check the Actions logs for specific errors

Expand Down Expand Up @@ -201,7 +199,7 @@ The workflow configuration is in `.github/workflows/release-please.yml`:

- **Trigger**: Accepts both `X.Y.Z` and `vX.Y.Z` formats (v prefix is stripped automatically)
- **Node version**: 22
- **Package managers**: npm and pnpm
- **Package manager**: npm
- **PR labels**: `release`, `automated`

For advanced customization, edit the workflow file.
16 changes: 4 additions & 12 deletions .github/workflows/integration.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,28 +30,20 @@ jobs:
- name: Checkout code
uses: actions/checkout@v4

- name: Setup pnpm
uses: pnpm/action-setup@v4

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 22.x
cache: 'pnpm'
cache: 'npm'

- name: Install dependencies
run: |
pnpm install --frozen-lockfile
# Auto-approve build scripts for esbuild and sqlite3 if needed
if pnpm approve-builds --help >/dev/null 2>&1; then
echo -e "\ny\ny\n" | pnpm approve-builds || true
fi
run: npm ci

- name: Generate Langium files
run: pnpm run langium:generate
run: npm run langium:generate

- name: Build project
run: pnpm run build
run: npm run build

- name: Run Blog Example App
env:
Expand Down
31 changes: 11 additions & 20 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,46 +34,37 @@ jobs:
- name: Checkout code
uses: actions/checkout@v6

# Step 2: Setup pnpm
- name: Setup pnpm
uses: pnpm/action-setup@v4

# Step 3: Setup Node.js
# Step 2: Setup Node.js
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: '22'
cache: 'pnpm'
cache: 'npm'
registry-url: 'https://registry.npmjs.org/'

# Step 4: Install dependencies
# Step 3: Install dependencies
- name: Install dependencies
run: |
pnpm install --frozen-lockfile
# Auto-approve build scripts for esbuild and sqlite3 if needed
if pnpm approve-builds --help >/dev/null 2>&1; then
echo -e "\ny\ny\n" | pnpm approve-builds || true
fi
run: npm ci

# Step 5: Generate Langium files
# Step 4: Generate Langium files
- name: Generate Langium files
run: pnpm run langium:generate
run: npm run langium:generate

# Step 6: Build package
# Step 5: Build package
- name: Build package
run: pnpm run build
run: npm run build

# Step 6.5: Rebuild better-sqlite3 for correct native bindings
# Step 6: Rebuild better-sqlite3 for correct native bindings
- name: Rebuild better-sqlite3 for correct native bindings
run: npm rebuild better-sqlite3

# Step 7: Run tests
- name: Run tests
run: NODE_ENV=test pnpm test
run: NODE_ENV=test npm test

# Step 8: Publish to npm Registry
- name: Publish to npm
run: pnpm publish --no-git-checks
run: npm publish --no-git-checks
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

Expand Down
17 changes: 4 additions & 13 deletions .github/workflows/release-please.yml
Original file line number Diff line number Diff line change
Expand Up @@ -150,21 +150,13 @@ jobs:

- name: Update npm lock file
run: |
npm install
npm ci
echo "npm lock file updated"

- name: Setup pnpm
uses: pnpm/action-setup@v4

- name: Update pnpm lock file
run: |
pnpm install --no-frozen-lockfile
echo "pnpm lock file updated"

- name: Format code
run: |
if grep -q '"format"' package.json; then
pnpm run format || npm run format || true
npm run format || true
echo "Code formatted"
else
echo "No format script found, skipping"
Expand All @@ -173,7 +165,7 @@ jobs:
- name: Lint code
run: |
if grep -q '"lint"' package.json; then
pnpm run lint || npm run lint || true
npm run lint || true
echo "Code linted"
else
echo "No lint script found, skipping"
Expand All @@ -189,7 +181,7 @@ jobs:

- Update package.json to ${{ steps.version.outputs.version }}
- Update CHANGELOG.md with commits since ${{ steps.prev_tag.outputs.prev_tag }}
- Update package-lock.json and pnpm-lock.yaml
- Update package-lock.json
branch: release/${{ steps.version.outputs.version }}
delete-branch: true
title: "Release ${{ steps.version.outputs.version }}"
Expand All @@ -202,7 +194,6 @@ jobs:
- ✅ Updated `package.json` version to `${{ steps.version.outputs.version }}`
- ✅ Updated `CHANGELOG.md` with all commits since `${{ steps.prev_tag.outputs.prev_tag }}`
- ✅ Updated `package-lock.json` (npm)
- ✅ Updated `pnpm-lock.yaml` (pnpm)

### Commits included in this release:

Expand Down
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ npm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-debug.log*
.pnpm-debug.log*

# Diagnostic reports (https://nodejs.org/api/report.html)
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
Expand Down Expand Up @@ -153,3 +152,5 @@ db*
.idea

.DS_Store

data
26 changes: 26 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# AGENTS.md – Agentlang

## Build & Test
- **Install:** `npm install`
- **Build:** `npm run build` (tsc + esbuild)
- **Lint:** `npm run lint` / `npm run lint:fix`
- **Format:** `npm run format` (Prettier: single quotes, 2-space indent, 100 print width, trailing commas es5)
- **Test all:** `npm test` (vitest, runs sequentially due to SQLite locks)
- **Single test:** `npx vitest run test/runtime/basic.test.ts`
- **Verbose tests:** `VITEST_VERBOSE=true npm test`
- **Generate grammar:** `npm run langium:generate`

## Architecture
Langium-based DSL (`*.al` files) for building AI agent systems, doubling as a VS Code extension.
- `src/language/` — Grammar (`agentlang.langium`), parser, validator, generated AST types
- `src/runtime/` — Agent execution engine (TypeORM + SQLite/Postgres, LangChain LLM integration)
- `src/api/` — Express HTTP API layer
- `src/cli/` — Commander-based CLI (`agentlang-cli`)
- `src/extension/` — VS Code language client
- `src/utils/` — Shared utilities (logging via Winston)
- `test/` — Vitest tests mirroring `src/` structure (parsing, validating, runtime, api)

## Code Style
- TypeScript (strict mode, ES modules, `Node16` module resolution, target ES2017)
- Prefix unused params with `_`; `no-explicit-any` is off
- Use single quotes, semicolons, 2-space indentation, arrow parens only when needed
21 changes: 7 additions & 14 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@

<div align="center">

<p>
Expand All @@ -25,18 +24,20 @@
<a href="https://github.com/agentlang-ai/agentlang/tree/main/example"><img src="https://img.shields.io/badge/Examples-Page-yellow?logo=homepage&logoColor=yellow&style=for-the-badge"></a>

[![Node Version](https://img.shields.io/badge/node-%3E%3D20.0.0-brightgreen?logo=node.js)](https://nodejs.org) [![CI](https://github.com/agentlang-ai/agentlang/actions/workflows/ci.yml/badge.svg)](https://github.com/agentlang-ai/agentlang/actions/workflows/ci.yml)![License](https://img.shields.io/badge/License-Sustainable%20Use%20v1.0-blue.svg) [![npm downloads](https://img.shields.io/npm/dm/agentlang.svg)](https://www.npmjs.com/package/agentlang)

<hr>

## Agentlang - Team as Code

</div>

Agentlang is a declarative DSL (built on TypeScript) for creating AI Agents and full-stack Agentic Apps. With Agentlang, you define, version, run, mentor, and monitor teams of AI agents, along with the app infrastructure they need: data model, workflows, RBAC, integrations, and UI. We refer to this approach - bringing together AI agent development and App development into a single coherent discipline - as Team-as-Code (our riff on IaC).

* **For Devs and Non-Devs:** Code and vibe-code in your IDE, focusing on the business-logic of your app, not wiring. Alternatively, you can build, run, mentor and monitor your AI Team in Studio - our visual-builder (coming soon). Switch back-and-forth between the two modes seamlessly.
- **For Devs and Non-Devs:** Code and vibe-code in your IDE, focusing on the business-logic of your app, not wiring. Alternatively, you can build, run, mentor and monitor your AI Team in Studio - our visual-builder (coming soon). Switch back-and-forth between the two modes seamlessly.

* **Robust Integrations:** The Agentlang runtime ships with native integrations for LLMs, databases, vector DBs, and auth providers. Our connector architecture is built for the enterprise, with a rapidly growing catalog for systems like Salesforce, ServiceNow, HubSpot, Snowflake, and more. Also, because Agentlang compiles to Node.js (and runs in the browser), you can use any existing JavaScript library out of the box.
- **Robust Integrations:** The Agentlang runtime ships with native integrations for LLMs, databases, vector DBs, and auth providers. Our connector architecture is built for the enterprise, with a rapidly growing catalog for systems like Salesforce, ServiceNow, HubSpot, Snowflake, and more. Also, because Agentlang compiles to Node.js (and runs in the browser), you can use any existing JavaScript library out of the box.

* **Production-grade**: Under the hood, it’s all modern TypeScript—strong typing, tooling, testing, and CI/CD-friendly workflows—built for enterprise-class reliability, governance, and scale.
- **Production-grade**: Under the hood, it’s all modern TypeScript—strong typing, tooling, testing, and CI/CD-friendly workflows—built for enterprise-class reliability, governance, and scale.

Agentlang introduces two foundational innovations: [Agentic Reliability Modeling](#-agentic-reliability-modeling) and [AgentLang Ontology](#agentlang-ontology)

Expand Down Expand Up @@ -133,7 +134,6 @@ workflow ticketInProgress {
}
```


### ✨ First-class AI Agents

Agents and many concepts agents use are built-in language constructs.
Expand Down Expand Up @@ -334,8 +334,8 @@ What makes this model special is how seamlessly an agent can interact with it

To get started with Agentlang Ontology, please see the [Agentlang Tutorial](https://docs.fractl.io/app) or explore the following example applications:

* [Car Dealership](https://github.com/agentlang-ai/agentlang/tree/main/example/car_dealership)
* [Customer Support System](https://github.com/agentlang-ai/agentlang/tree/main/example/customer_support_system)
- [Car Dealership](https://github.com/agentlang-ai/agentlang/tree/main/example/car_dealership)
- [Customer Support System](https://github.com/agentlang-ai/agentlang/tree/main/example/customer_support_system)

## 🚀 Getting Started

Expand Down Expand Up @@ -369,14 +369,7 @@ For contributors who want to build and develop Agentlang itself:
```shell
# Install dependencies
npm install

OR

# Install pnpm: https://pnpm.io/installation
# Use pnpm
pnpm install
```
**Note**: If pnpm shows build script warnings, run `pnpm approve-builds` and approve esbuild and sqlite3.

### ⚡ Build

Expand Down
Loading
Loading