Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
fcdfc4d
docs: add Audrey industry standard design spec
Evilander Apr 10, 2026
c5a25bf
docs: add v0.18 TypeScript conversion implementation plan
Evilander Apr 10, 2026
05d1ada
build: add TypeScript toolchain and shared type definitions
Evilander Apr 10, 2026
34e537a
refactor: convert leaf modules to TypeScript (ulid, utils, context, a…
Evilander Apr 10, 2026
4e15568
refactor: convert confidence and interference modules to TypeScript
Evilander Apr 10, 2026
5d42916
refactor: convert all src/ modules to TypeScript
Evilander Apr 10, 2026
e3a04d8
refactor: convert mcp-server/ to TypeScript
Evilander Apr 10, 2026
cb7281a
build: configure TypeScript build pipeline and update package exports
Evilander Apr 10, 2026
5230025
test: update imports to use compiled TypeScript output
Evilander Apr 10, 2026
117aeec
build: update benchmarks, examples, and CI for TypeScript build
Evilander Apr 10, 2026
a173ee2
release: v0.18.0 — TypeScript conversion
Evilander Apr 10, 2026
a8bb6ae
Merge branch 'typescript-conversion' — v0.18.0
Evilander Apr 10, 2026
c15eedd
docs: add v0.19 HTTP API server implementation plan
Evilander Apr 10, 2026
efd9ab5
feat: add HTTP API server with all 13 endpoints
Evilander Apr 10, 2026
28724e2
feat: add 'npx audrey serve' CLI subcommand
Evilander Apr 10, 2026
5d054fd
test: add HTTP API endpoint tests
Evilander Apr 10, 2026
e70077a
feat: export HTTP server from package entry points
Evilander Apr 10, 2026
00525b5
release: v0.19.0 — HTTP API server
Evilander Apr 10, 2026
bdead7c
Merge branch 'http-api-server' — v0.19.0
Evilander Apr 10, 2026
2446a0a
feat: add Python SDK with sync and async clients
Evilander Apr 10, 2026
de6de54
test: add Python SDK unit and integration tests
Evilander Apr 10, 2026
141d892
release: v0.20.0 — Python SDK
Evilander Apr 10, 2026
f848d74
Merge branch 'python-sdk' — v0.20.0
Evilander Apr 10, 2026
527f83c
docs: add codex.md handoff document for OpenAI Codex
Evilander Apr 10, 2026
70285f3
merge: rescue master — resolve origin/master merge into TypeScript-fi…
Evilander Apr 23, 2026
2dada9e
fix: installer patches host JSON configs via temp file, not node -e i…
Evilander Apr 23, 2026
66192bc
fix: installer strips every [mcp_servers.audrey-memory(.subtable)?] s…
Evilander Apr 23, 2026
cd9eecf
feat(pr1): action trace memory — memory_events schema, redaction, obs…
Evilander Apr 23, 2026
37468d4
feat(pr1): observe-tool CLI auto-picks up Claude Code hook payload
Evilander Apr 23, 2026
3683916
feat(pr2): Memory Capsule v1 — structured, evidence-backed retrieval …
Evilander Apr 23, 2026
ccd7875
feat(pr4): Memory-to-Behavior compiler — audrey promote → .claude/rul…
Evilander Apr 23, 2026
f379a77
feat(pr2.1): hybrid retrieval — vector KNN + FTS5 BM25 fused via RRF
Evilander Apr 23, 2026
e9a31ae
fix(ci): green the Docker and Python SDK jobs on the TS-first runtime
Evilander Apr 23, 2026
e1bd4ef
fix(http): /health returns ok + version so Python SDK client validates
Evilander Apr 23, 2026
ded8deb
fix(python-sdk): route client under /v1/ prefix; skip integration tes…
Evilander Apr 23, 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
5 changes: 5 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@ jobs:
cache: npm

- run: npm ci
- run: npm run build
- run: npm run typecheck
- run: npm test
- run: npm run bench:memory:check
- run: npm run pack:check
Expand All @@ -49,6 +51,7 @@ jobs:
python-version: '3.11'

- run: npm ci
- run: npm run build
- run: python -m pip install --upgrade pip setuptools wheel build
- run: python -m pip install -e ./python
- run: python -m unittest discover -s python/tests -v
Expand Down Expand Up @@ -87,6 +90,8 @@ jobs:
cache: npm

- run: npm ci
- run: npm run build
- run: npm run typecheck
- run: npm test
- run: npm run bench:memory:check
- run: npm run pack:check
13 changes: 12 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,25 @@ node_modules/
audrey-data/
.tmp/
.tmp-vitest/
.archive/
.worktrees/
*.db
*.db-wal
*.db-shm
.env
CLAUDE.md
.worktrees/
benchmarks/output/
benchmarks/.tmp/
memorybench/
windows-smoke-job-*.log

# Node build output
dist/

# Python build artifacts
__pycache__/
*.pyc
.pytest_cache/
python/build/
python/dist/
python/*.egg-info/
Expand Down
40 changes: 27 additions & 13 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,3 +1,25 @@
# ---- Build stage ------------------------------------------------------------
FROM node:22-bookworm-slim AS build

WORKDIR /build

# better-sqlite3 needs python3 + make + g++ to compile its native bindings.
RUN apt-get update \
&& apt-get install -y --no-install-recommends python3 make g++ ca-certificates \
&& rm -rf /var/lib/apt/lists/*

COPY package.json package-lock.json tsconfig.json ./
RUN npm ci

COPY src ./src
COPY mcp-server ./mcp-server

# Compile TypeScript -> dist/, then drop dev deps so the runtime stage gets a
# production-only node_modules when we COPY it across.
RUN npm run build \
&& npm prune --omit=dev

# ---- Runtime stage ----------------------------------------------------------
FROM node:22-bookworm-slim

WORKDIR /app
Expand All @@ -8,22 +30,14 @@ ENV NODE_ENV=production \
AUDREY_DATA_DIR=/data \
AUDREY_DEVICE=cpu

RUN apt-get update \
&& apt-get install -y --no-install-recommends python3 make g++ ca-certificates \
&& rm -rf /var/lib/apt/lists/*

COPY package.json package-lock.json ./
RUN npm ci --omit=dev

COPY src ./src
COPY mcp-server ./mcp-server
COPY types ./types
COPY README.md LICENSE ./
COPY --from=build /build/dist ./dist
COPY --from=build /build/node_modules ./node_modules
COPY package.json package-lock.json README.md LICENSE ./

VOLUME ["/data"]
EXPOSE 3487

HEALTHCHECK --interval=30s --timeout=5s --start-period=20s --retries=5 \
CMD ["node", "--input-type=module", "-e", "const headers = process.env.AUDREY_API_KEY ? { Authorization: 'Bearer ' + process.env.AUDREY_API_KEY } : {}; fetch('http://127.0.0.1:3487/health', { headers }).then(r => process.exit(r.ok ? 0 : 1)).catch(() => process.exit(1));"]
CMD ["node", "--input-type=module", "-e", "const headers = process.env.AUDREY_API_KEY ? { Authorization: 'Bearer ' + process.env.AUDREY_API_KEY } : {}; fetch('http://127.0.0.1:' + (process.env.AUDREY_PORT || '3487') + '/health', { headers }).then(r => process.exit(r.ok ? 0 : 1)).catch(() => process.exit(1));"]

CMD ["node", "mcp-server/index.js", "serve"]
CMD ["node", "dist/mcp-server/index.js", "serve"]
4 changes: 2 additions & 2 deletions benchmarks/baselines.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { createEmbeddingProvider } from '../src/embedding.js';
import { cosineSimilarity } from '../src/utils.js';
import { createEmbeddingProvider } from '../dist/src/embedding.js';
import { cosineSimilarity } from '../dist/src/utils.js';

function normalize(text) {
return String(text || '').toLowerCase();
Expand Down
2 changes: 1 addition & 1 deletion benchmarks/run.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { mkdirSync, mkdtempSync, rmSync } from 'node:fs';
import { join, resolve } from 'node:path';
import { fileURLToPath } from 'node:url';
import { Audrey } from '../src/audrey.js';
import { Audrey } from '../dist/src/audrey.js';
import { LOCAL_BENCHMARK_SUITES, FAMILY_ORDER } from './cases.js';
import { runBaselineScenario } from './baselines.js';
import { MEMORY_TRENDS, PUBLISHED_LEADERBOARD } from './reference-results.js';
Expand Down
848 changes: 389 additions & 459 deletions codex.md

Large diffs are not rendered by default.

Loading
Loading