feat(brain): @mosaic/brain structured data service #11

Merged
jason.woltje merged 1 commits from feat/brain-service into main 2026-03-11 01:12:47 +00:00
Owner

Summary

  • Implements — TypeScript/Fastify structured data service
  • 8 typed collections: tasks, projects, events, agents, tickets, appreciations, missions, mission_tasks
  • MCP tools (15+) for all query and mutation operations
  • REST API at mirroring MCP 1:1
  • JSON file backend with for concurrent access
  • Bearer token auth with timing-safe comparison
  • Zod schema validation on all writes
  • Brain* types added to
  • Dockerfile for standalone deployment

Test plan

  • Type-check passes (

mosaic@ typecheck /home/jwoltje/src/mosaic-mono
turbo typecheck

• Packages in scope: @mosaic/brain, @mosaic/cli, @mosaic/coord, @mosaic/mosaic, @mosaic/openclaw-context, @mosaic/prdy, @mosaic/quality-rails, @mosaic/queue, @mosaic/types
• Running typecheck in 9 packages
• Remote caching disabled
@mosaic/types:build: cache miss, executing 33ca6110fac069e1
@mosaic/types:typecheck: cache miss, executing e12293314201d711
@mosaic/mosaic:typecheck: cache hit, replaying logs 571d1f39904166f9
@mosaic/mosaic:typecheck:
@mosaic/mosaic:typecheck: > @mosaic/mosaic@0.1.0 typecheck /home/jwoltje/src/mosaic-mono-worktrees/wave2b-mosaic-wizard/packages/mosaic
@mosaic/mosaic:typecheck: > tsc --noEmit
@mosaic/mosaic:typecheck:
@mosaic/types:build:  WARN  Issue while reading "/home/jwoltje/src/mosaic-mono/.npmrc". Failed to replace env in config: ${GITEA_NPM_TOKEN}
@mosaic/types:typecheck:  WARN  Issue while reading "/home/jwoltje/src/mosaic-mono/.npmrc". Failed to replace env in config: ${GITEA_NPM_TOKEN}
@mosaic/types:typecheck:
@mosaic/types:typecheck: > @mosaic/types@0.1.0 typecheck /home/jwoltje/src/mosaic-mono/packages/types
@mosaic/types:typecheck: > tsc --noEmit
@mosaic/types:typecheck:
@mosaic/types:build:
@mosaic/types:build: > @mosaic/types@0.1.0 build /home/jwoltje/src/mosaic-mono/packages/types
@mosaic/types:build: > tsc -p tsconfig.json
@mosaic/types:build:
@mosaic/queue:typecheck: cache miss, executing 2d188e9b5e4e461a
@mosaic/openclaw-context:typecheck: cache miss, executing 295316ce12c5db4f
@mosaic/quality-rails:typecheck: cache miss, executing 51f4ee22300bea2d
@mosaic/brain:typecheck: cache miss, executing f56edb0d00a9f924
@mosaic/queue:build: cache miss, executing aef7f6ece88189f5
@mosaic/prdy:typecheck: cache miss, executing 6b82d262a2331556
@mosaic/brain:typecheck:  WARN  Issue while reading "/home/jwoltje/src/mosaic-mono/.npmrc". Failed to replace env in config: ${GITEA_NPM_TOKEN}
@mosaic/quality-rails:typecheck:  WARN  Issue while reading "/home/jwoltje/src/mosaic-mono/.npmrc". Failed to replace env in config: ${GITEA_NPM_TOKEN}
@mosaic/brain:typecheck:
@mosaic/brain:typecheck: > @mosaic/brain@0.1.0 typecheck /home/jwoltje/src/mosaic-mono/packages/brain
@mosaic/brain:typecheck: > tsc --noEmit
@mosaic/brain:typecheck:
@mosaic/quality-rails:typecheck:
@mosaic/quality-rails:typecheck: > @mosaic/quality-rails@0.1.0 typecheck /home/jwoltje/src/mosaic-mono/packages/quality-rails
@mosaic/quality-rails:typecheck: > tsc --noEmit
@mosaic/quality-rails:typecheck:
@mosaic/queue:typecheck:  WARN  Issue while reading "/home/jwoltje/src/mosaic-mono/.npmrc". Failed to replace env in config: ${GITEA_NPM_TOKEN}
@mosaic/prdy:typecheck:  WARN  Issue while reading "/home/jwoltje/src/mosaic-mono/.npmrc". Failed to replace env in config: ${GITEA_NPM_TOKEN}
@mosaic/openclaw-context:typecheck:  WARN  Issue while reading "/home/jwoltje/src/mosaic-mono/.npmrc". Failed to replace env in config: ${GITEA_NPM_TOKEN}
@mosaic/queue:typecheck:
@mosaic/queue:typecheck: > @mosaic/queue@0.1.0 typecheck /home/jwoltje/src/mosaic-mono/packages/queue
@mosaic/queue:typecheck: > tsc -p tsconfig.json --noEmit
@mosaic/queue:typecheck:
@mosaic/prdy:typecheck:
@mosaic/prdy:typecheck: > @mosaic/prdy@0.1.0 typecheck /home/jwoltje/src/mosaic-mono/packages/prdy
@mosaic/prdy:typecheck: > tsc --noEmit
@mosaic/prdy:typecheck:
@mosaic/openclaw-context:typecheck:
@mosaic/openclaw-context:typecheck: > @mosaic/openclaw-context@0.1.0 typecheck /home/jwoltje/src/mosaic-mono/plugins/openclaw-context
@mosaic/openclaw-context:typecheck: > tsc --noEmit
@mosaic/openclaw-context:typecheck:
@mosaic/queue:build:  WARN  Issue while reading "/home/jwoltje/src/mosaic-mono/.npmrc". Failed to replace env in config: ${GITEA_NPM_TOKEN}
@mosaic/queue:build:
@mosaic/queue:build: > @mosaic/queue@0.1.0 build /home/jwoltje/src/mosaic-mono/packages/queue
@mosaic/queue:build: > tsc -p tsconfig.build.json
@mosaic/queue:build:
@mosaic/coord:build: cache miss, executing ea297ac6a07ab461
@mosaic/coord:typecheck: cache miss, executing 4d385f3861f00300
@mosaic/coord:build:  WARN  Issue while reading "/home/jwoltje/src/mosaic-mono/.npmrc". Failed to replace env in config: ${GITEA_NPM_TOKEN}
@mosaic/coord:typecheck:  WARN  Issue while reading "/home/jwoltje/src/mosaic-mono/.npmrc". Failed to replace env in config: ${GITEA_NPM_TOKEN}
@mosaic/coord:build:
@mosaic/coord:build: > @mosaic/coord@0.1.0 build /home/jwoltje/src/mosaic-mono/packages/coord
@mosaic/coord:build: > tsc -p tsconfig.json
@mosaic/coord:build:
@mosaic/coord:typecheck:
@mosaic/coord:typecheck: > @mosaic/coord@0.1.0 typecheck /home/jwoltje/src/mosaic-mono/packages/coord
@mosaic/coord:typecheck: > tsc --noEmit
@mosaic/coord:typecheck:
@mosaic/cli:typecheck: cache miss, executing b33f3a533f326f7c
@mosaic/cli:typecheck:  WARN  Issue while reading "/home/jwoltje/src/mosaic-mono/.npmrc". Failed to replace env in config: ${GITEA_NPM_TOKEN}
@mosaic/cli:typecheck:
@mosaic/cli:typecheck: > @mosaic/cli@0.1.0 typecheck /home/jwoltje/src/mosaic-mono/packages/cli
@mosaic/cli:typecheck: > tsc --noEmit
@mosaic/cli:typecheck:

Tasks: 12 successful, 12 total
Cached: 1 cached, 12 total
Time: 4.105s )

  • Build succeeds (

mosaic@ build /home/jwoltje/src/mosaic-mono
turbo build

• Packages in scope: @mosaic/brain, @mosaic/cli, @mosaic/coord, @mosaic/mosaic, @mosaic/openclaw-context, @mosaic/prdy, @mosaic/quality-rails, @mosaic/queue, @mosaic/types
• Running build in 9 packages
• Remote caching disabled
@mosaic/types:build: cache hit, replaying logs 33ca6110fac069e1
@mosaic/types:build:  WARN  Issue while reading "/home/jwoltje/src/mosaic-mono/.npmrc". Failed to replace env in config: ${GITEA_NPM_TOKEN}
@mosaic/types:build:
@mosaic/types:build: > @mosaic/types@0.1.0 build /home/jwoltje/src/mosaic-mono/packages/types
@mosaic/types:build: > tsc -p tsconfig.json
@mosaic/types:build:
@mosaic/openclaw-context:build: cache miss, executing 43e8e0f484dd0420
@mosaic/brain:build: cache miss, executing 437fd89932a804e5
@mosaic/quality-rails:build: cache miss, executing 1bb331ed3d10677d
@mosaic/prdy:build: cache miss, executing 8ac868dd03db5897
@mosaic/queue:build: cache hit, replaying logs aef7f6ece88189f5
@mosaic/queue:build:  WARN  Issue while reading "/home/jwoltje/src/mosaic-mono/.npmrc". Failed to replace env in config: ${GITEA_NPM_TOKEN}
@mosaic/queue:build:
@mosaic/queue:build: > @mosaic/queue@0.1.0 build /home/jwoltje/src/mosaic-mono/packages/queue
@mosaic/queue:build: > tsc -p tsconfig.build.json
@mosaic/queue:build:
@mosaic/mosaic:build: cache hit, replaying logs 72284e03343831be
@mosaic/mosaic:build:
@mosaic/mosaic:build: > @mosaic/mosaic@0.1.0 build /home/jwoltje/src/mosaic-mono-worktrees/wave2b-mosaic-wizard/packages/mosaic
@mosaic/mosaic:build: > tsdown
@mosaic/mosaic:build:
@mosaic/mosaic:build: ℹ tsdown v0.12.9 powered by rolldown v1.0.0-rc.7
@mosaic/mosaic:build: ℹ entry: src/index.ts
@mosaic/mosaic:build: ℹ tsconfig: tsconfig.json
@mosaic/mosaic:build: ℹ Build start
@mosaic/mosaic:build: Warning: Invalid input options (1 issue found)
@mosaic/mosaic:build: - For the "define". Invalid key: Expected never but received "define". 
@mosaic/mosaic:build: ℹ dist/index.js 46.45 kB │ gzip: 13.25 kB
@mosaic/mosaic:build: ℹ dist/index.js.map 92.19 kB │ gzip: 24.02 kB
@mosaic/mosaic:build: ℹ dist/index-JtcdNmdz.d.ts 0.01 kB │ gzip: 0.03 kB
@mosaic/mosaic:build: ℹ 3 files, total: 138.66 kB
@mosaic/mosaic:build: ✔ Build complete in 863ms
@mosaic/coord:build: cache hit, replaying logs ea297ac6a07ab461
@mosaic/coord:build:  WARN  Issue while reading "/home/jwoltje/src/mosaic-mono/.npmrc". Failed to replace env in config: ${GITEA_NPM_TOKEN}
@mosaic/coord:build:
@mosaic/coord:build: > @mosaic/coord@0.1.0 build /home/jwoltje/src/mosaic-mono/packages/coord
@mosaic/coord:build: > tsc -p tsconfig.json
@mosaic/coord:build:
@mosaic/cli:build: cache miss, executing c48f51d2ee99c245
@mosaic/openclaw-context:build:  WARN  Issue while reading "/home/jwoltje/src/mosaic-mono/.npmrc". Failed to replace env in config: ${GITEA_NPM_TOKEN}
@mosaic/quality-rails:build:  WARN  Issue while reading "/home/jwoltje/src/mosaic-mono/.npmrc". Failed to replace env in config: ${GITEA_NPM_TOKEN}
@mosaic/brain:build:  WARN  Issue while reading "/home/jwoltje/src/mosaic-mono/.npmrc". Failed to replace env in config: ${GITEA_NPM_TOKEN}
@mosaic/quality-rails:build:
@mosaic/quality-rails:build: > @mosaic/quality-rails@0.1.0 build /home/jwoltje/src/mosaic-mono/packages/quality-rails
@mosaic/quality-rails:build: > tsc -p tsconfig.json
@mosaic/quality-rails:build:
@mosaic/openclaw-context:build:
@mosaic/openclaw-context:build: > @mosaic/openclaw-context@0.1.0 build /home/jwoltje/src/mosaic-mono/plugins/openclaw-context
@mosaic/openclaw-context:build: > tsc -p tsconfig.json
@mosaic/openclaw-context:build:
@mosaic/brain:build:
@mosaic/brain:build: > @mosaic/brain@0.1.0 build /home/jwoltje/src/mosaic-mono/packages/brain
@mosaic/brain:build: > tsc -p tsconfig.json
@mosaic/brain:build:
@mosaic/prdy:build:  WARN  Issue while reading "/home/jwoltje/src/mosaic-mono/.npmrc". Failed to replace env in config: ${GITEA_NPM_TOKEN}
@mosaic/prdy:build:
@mosaic/prdy:build: > @mosaic/prdy@0.1.0 build /home/jwoltje/src/mosaic-mono/packages/prdy
@mosaic/prdy:build: > tsc -p tsconfig.json
@mosaic/prdy:build:
@mosaic/cli:build:  WARN  Issue while reading "/home/jwoltje/src/mosaic-mono/.npmrc". Failed to replace env in config: ${GITEA_NPM_TOKEN}
@mosaic/cli:build:
@mosaic/cli:build: > @mosaic/cli@0.1.0 build /home/jwoltje/src/mosaic-mono/packages/cli
@mosaic/cli:build: > tsc -p tsconfig.json
@mosaic/cli:build:

Tasks: 9 successful, 9 total
Cached: 4 cached, 9 total
Time: 2.087s )

  • Smoke test: health, CRUD, today, stats, auth (401/200)
  • Independent code review — 3 critical + 4 important findings fixed

Closes #10

🤖 Generated with Claude Code

Fixes #10

## Summary - Implements — TypeScript/Fastify structured data service - 8 typed collections: tasks, projects, events, agents, tickets, appreciations, missions, mission_tasks - MCP tools (15+) for all query and mutation operations - REST API at mirroring MCP 1:1 - JSON file backend with for concurrent access - Bearer token auth with timing-safe comparison - Zod schema validation on all writes - Brain\* types added to - Dockerfile for standalone deployment ## Test plan - [x] Type-check passes ( > mosaic@ typecheck /home/jwoltje/src/mosaic-mono > turbo typecheck • Packages in scope: @mosaic/brain, @mosaic/cli, @mosaic/coord, @mosaic/mosaic, @mosaic/openclaw-context, @mosaic/prdy, @mosaic/quality-rails, @mosaic/queue, @mosaic/types • Running typecheck in 9 packages • Remote caching disabled @mosaic/types:build: cache miss, executing 33ca6110fac069e1 @mosaic/types:typecheck: cache miss, executing e12293314201d711 @mosaic/mosaic:typecheck: cache hit, replaying logs 571d1f39904166f9 @mosaic/mosaic:typecheck: @mosaic/mosaic:typecheck: > @mosaic/mosaic@0.1.0 typecheck /home/jwoltje/src/mosaic-mono-worktrees/wave2b-mosaic-wizard/packages/mosaic @mosaic/mosaic:typecheck: > tsc --noEmit @mosaic/mosaic:typecheck: @mosaic/types:build:  WARN  Issue while reading "/home/jwoltje/src/mosaic-mono/.npmrc". Failed to replace env in config: ${GITEA_NPM_TOKEN} @mosaic/types:typecheck:  WARN  Issue while reading "/home/jwoltje/src/mosaic-mono/.npmrc". Failed to replace env in config: ${GITEA_NPM_TOKEN} @mosaic/types:typecheck: @mosaic/types:typecheck: > @mosaic/types@0.1.0 typecheck /home/jwoltje/src/mosaic-mono/packages/types @mosaic/types:typecheck: > tsc --noEmit @mosaic/types:typecheck: @mosaic/types:build: @mosaic/types:build: > @mosaic/types@0.1.0 build /home/jwoltje/src/mosaic-mono/packages/types @mosaic/types:build: > tsc -p tsconfig.json @mosaic/types:build: @mosaic/queue:typecheck: cache miss, executing 2d188e9b5e4e461a @mosaic/openclaw-context:typecheck: cache miss, executing 295316ce12c5db4f @mosaic/quality-rails:typecheck: cache miss, executing 51f4ee22300bea2d @mosaic/brain:typecheck: cache miss, executing f56edb0d00a9f924 @mosaic/queue:build: cache miss, executing aef7f6ece88189f5 @mosaic/prdy:typecheck: cache miss, executing 6b82d262a2331556 @mosaic/brain:typecheck:  WARN  Issue while reading "/home/jwoltje/src/mosaic-mono/.npmrc". Failed to replace env in config: ${GITEA_NPM_TOKEN} @mosaic/quality-rails:typecheck:  WARN  Issue while reading "/home/jwoltje/src/mosaic-mono/.npmrc". Failed to replace env in config: ${GITEA_NPM_TOKEN} @mosaic/brain:typecheck: @mosaic/brain:typecheck: > @mosaic/brain@0.1.0 typecheck /home/jwoltje/src/mosaic-mono/packages/brain @mosaic/brain:typecheck: > tsc --noEmit @mosaic/brain:typecheck: @mosaic/quality-rails:typecheck: @mosaic/quality-rails:typecheck: > @mosaic/quality-rails@0.1.0 typecheck /home/jwoltje/src/mosaic-mono/packages/quality-rails @mosaic/quality-rails:typecheck: > tsc --noEmit @mosaic/quality-rails:typecheck: @mosaic/queue:typecheck:  WARN  Issue while reading "/home/jwoltje/src/mosaic-mono/.npmrc". Failed to replace env in config: ${GITEA_NPM_TOKEN} @mosaic/prdy:typecheck:  WARN  Issue while reading "/home/jwoltje/src/mosaic-mono/.npmrc". Failed to replace env in config: ${GITEA_NPM_TOKEN} @mosaic/openclaw-context:typecheck:  WARN  Issue while reading "/home/jwoltje/src/mosaic-mono/.npmrc". Failed to replace env in config: ${GITEA_NPM_TOKEN} @mosaic/queue:typecheck: @mosaic/queue:typecheck: > @mosaic/queue@0.1.0 typecheck /home/jwoltje/src/mosaic-mono/packages/queue @mosaic/queue:typecheck: > tsc -p tsconfig.json --noEmit @mosaic/queue:typecheck: @mosaic/prdy:typecheck: @mosaic/prdy:typecheck: > @mosaic/prdy@0.1.0 typecheck /home/jwoltje/src/mosaic-mono/packages/prdy @mosaic/prdy:typecheck: > tsc --noEmit @mosaic/prdy:typecheck: @mosaic/openclaw-context:typecheck: @mosaic/openclaw-context:typecheck: > @mosaic/openclaw-context@0.1.0 typecheck /home/jwoltje/src/mosaic-mono/plugins/openclaw-context @mosaic/openclaw-context:typecheck: > tsc --noEmit @mosaic/openclaw-context:typecheck: @mosaic/queue:build:  WARN  Issue while reading "/home/jwoltje/src/mosaic-mono/.npmrc". Failed to replace env in config: ${GITEA_NPM_TOKEN} @mosaic/queue:build: @mosaic/queue:build: > @mosaic/queue@0.1.0 build /home/jwoltje/src/mosaic-mono/packages/queue @mosaic/queue:build: > tsc -p tsconfig.build.json @mosaic/queue:build: @mosaic/coord:build: cache miss, executing ea297ac6a07ab461 @mosaic/coord:typecheck: cache miss, executing 4d385f3861f00300 @mosaic/coord:build:  WARN  Issue while reading "/home/jwoltje/src/mosaic-mono/.npmrc". Failed to replace env in config: ${GITEA_NPM_TOKEN} @mosaic/coord:typecheck:  WARN  Issue while reading "/home/jwoltje/src/mosaic-mono/.npmrc". Failed to replace env in config: ${GITEA_NPM_TOKEN} @mosaic/coord:build: @mosaic/coord:build: > @mosaic/coord@0.1.0 build /home/jwoltje/src/mosaic-mono/packages/coord @mosaic/coord:build: > tsc -p tsconfig.json @mosaic/coord:build: @mosaic/coord:typecheck: @mosaic/coord:typecheck: > @mosaic/coord@0.1.0 typecheck /home/jwoltje/src/mosaic-mono/packages/coord @mosaic/coord:typecheck: > tsc --noEmit @mosaic/coord:typecheck: @mosaic/cli:typecheck: cache miss, executing b33f3a533f326f7c @mosaic/cli:typecheck:  WARN  Issue while reading "/home/jwoltje/src/mosaic-mono/.npmrc". Failed to replace env in config: ${GITEA_NPM_TOKEN} @mosaic/cli:typecheck: @mosaic/cli:typecheck: > @mosaic/cli@0.1.0 typecheck /home/jwoltje/src/mosaic-mono/packages/cli @mosaic/cli:typecheck: > tsc --noEmit @mosaic/cli:typecheck: Tasks: 12 successful, 12 total Cached: 1 cached, 12 total Time: 4.105s ) - [x] Build succeeds ( > mosaic@ build /home/jwoltje/src/mosaic-mono > turbo build • Packages in scope: @mosaic/brain, @mosaic/cli, @mosaic/coord, @mosaic/mosaic, @mosaic/openclaw-context, @mosaic/prdy, @mosaic/quality-rails, @mosaic/queue, @mosaic/types • Running build in 9 packages • Remote caching disabled @mosaic/types:build: cache hit, replaying logs 33ca6110fac069e1 @mosaic/types:build:  WARN  Issue while reading "/home/jwoltje/src/mosaic-mono/.npmrc". Failed to replace env in config: ${GITEA_NPM_TOKEN} @mosaic/types:build: @mosaic/types:build: > @mosaic/types@0.1.0 build /home/jwoltje/src/mosaic-mono/packages/types @mosaic/types:build: > tsc -p tsconfig.json @mosaic/types:build: @mosaic/openclaw-context:build: cache miss, executing 43e8e0f484dd0420 @mosaic/brain:build: cache miss, executing 437fd89932a804e5 @mosaic/quality-rails:build: cache miss, executing 1bb331ed3d10677d @mosaic/prdy:build: cache miss, executing 8ac868dd03db5897 @mosaic/queue:build: cache hit, replaying logs aef7f6ece88189f5 @mosaic/queue:build:  WARN  Issue while reading "/home/jwoltje/src/mosaic-mono/.npmrc". Failed to replace env in config: ${GITEA_NPM_TOKEN} @mosaic/queue:build: @mosaic/queue:build: > @mosaic/queue@0.1.0 build /home/jwoltje/src/mosaic-mono/packages/queue @mosaic/queue:build: > tsc -p tsconfig.build.json @mosaic/queue:build: @mosaic/mosaic:build: cache hit, replaying logs 72284e03343831be @mosaic/mosaic:build: @mosaic/mosaic:build: > @mosaic/mosaic@0.1.0 build /home/jwoltje/src/mosaic-mono-worktrees/wave2b-mosaic-wizard/packages/mosaic @mosaic/mosaic:build: > tsdown @mosaic/mosaic:build: @mosaic/mosaic:build: ℹ tsdown v0.12.9 powered by rolldown v1.0.0-rc.7 @mosaic/mosaic:build: ℹ entry: src/index.ts @mosaic/mosaic:build: ℹ tsconfig: tsconfig.json @mosaic/mosaic:build: ℹ Build start @mosaic/mosaic:build: Warning: Invalid input options (1 issue found) @mosaic/mosaic:build: - For the "define". Invalid key: Expected never but received "define".  @mosaic/mosaic:build: ℹ dist/index.js 46.45 kB │ gzip: 13.25 kB @mosaic/mosaic:build: ℹ dist/index.js.map 92.19 kB │ gzip: 24.02 kB @mosaic/mosaic:build: ℹ dist/index-JtcdNmdz.d.ts 0.01 kB │ gzip: 0.03 kB @mosaic/mosaic:build: ℹ 3 files, total: 138.66 kB @mosaic/mosaic:build: ✔ Build complete in 863ms @mosaic/coord:build: cache hit, replaying logs ea297ac6a07ab461 @mosaic/coord:build:  WARN  Issue while reading "/home/jwoltje/src/mosaic-mono/.npmrc". Failed to replace env in config: ${GITEA_NPM_TOKEN} @mosaic/coord:build: @mosaic/coord:build: > @mosaic/coord@0.1.0 build /home/jwoltje/src/mosaic-mono/packages/coord @mosaic/coord:build: > tsc -p tsconfig.json @mosaic/coord:build: @mosaic/cli:build: cache miss, executing c48f51d2ee99c245 @mosaic/openclaw-context:build:  WARN  Issue while reading "/home/jwoltje/src/mosaic-mono/.npmrc". Failed to replace env in config: ${GITEA_NPM_TOKEN} @mosaic/quality-rails:build:  WARN  Issue while reading "/home/jwoltje/src/mosaic-mono/.npmrc". Failed to replace env in config: ${GITEA_NPM_TOKEN} @mosaic/brain:build:  WARN  Issue while reading "/home/jwoltje/src/mosaic-mono/.npmrc". Failed to replace env in config: ${GITEA_NPM_TOKEN} @mosaic/quality-rails:build: @mosaic/quality-rails:build: > @mosaic/quality-rails@0.1.0 build /home/jwoltje/src/mosaic-mono/packages/quality-rails @mosaic/quality-rails:build: > tsc -p tsconfig.json @mosaic/quality-rails:build: @mosaic/openclaw-context:build: @mosaic/openclaw-context:build: > @mosaic/openclaw-context@0.1.0 build /home/jwoltje/src/mosaic-mono/plugins/openclaw-context @mosaic/openclaw-context:build: > tsc -p tsconfig.json @mosaic/openclaw-context:build: @mosaic/brain:build: @mosaic/brain:build: > @mosaic/brain@0.1.0 build /home/jwoltje/src/mosaic-mono/packages/brain @mosaic/brain:build: > tsc -p tsconfig.json @mosaic/brain:build: @mosaic/prdy:build:  WARN  Issue while reading "/home/jwoltje/src/mosaic-mono/.npmrc". Failed to replace env in config: ${GITEA_NPM_TOKEN} @mosaic/prdy:build: @mosaic/prdy:build: > @mosaic/prdy@0.1.0 build /home/jwoltje/src/mosaic-mono/packages/prdy @mosaic/prdy:build: > tsc -p tsconfig.json @mosaic/prdy:build: @mosaic/cli:build:  WARN  Issue while reading "/home/jwoltje/src/mosaic-mono/.npmrc". Failed to replace env in config: ${GITEA_NPM_TOKEN} @mosaic/cli:build: @mosaic/cli:build: > @mosaic/cli@0.1.0 build /home/jwoltje/src/mosaic-mono/packages/cli @mosaic/cli:build: > tsc -p tsconfig.json @mosaic/cli:build: Tasks: 9 successful, 9 total Cached: 4 cached, 9 total Time: 2.087s ) - [x] Smoke test: health, CRUD, today, stats, auth (401/200) - [x] Independent code review — 3 critical + 4 important findings fixed Closes #10 🤖 Generated with [Claude Code](https://claude.com/claude-code) Fixes #10
jason.woltje added 1 commit 2026-03-11 01:10:40 +00:00
feat(brain): @mosaic/brain structured data service (#10)
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
ci/woodpecker/pr/woodpecker Pipeline failed
ci/woodpecker/pull_request_closed/woodpecker Pipeline failed
1aa11c4ee8
Implement @mosaic/brain — typed structured data service with MCP + REST API,
JSON file backend, and schema validation via Zod.

Collections: tasks, projects, events, agents, tickets, appreciations,
missions, mission_tasks.

MCP tools: brain_tasks, brain_projects, brain_events, brain_agents,
brain_tickets, brain_today, brain_stale, brain_stats, brain_search,
brain_audit, brain_missions, brain_mission, brain_mission_tasks,
plus mutation tools for all collections.

REST API mirrors MCP 1:1 at /v1/*.
Bearer token auth with timing-safe comparison.
Fastify server with per-request MCP instances (stateless HTTP transport).
JSON file storage with proper-lockfile for concurrent access.

Also adds Brain* types to @mosaic/types.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
jason.woltje merged commit d3d9826076 into main 2026-03-11 01:12:47 +00:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: mosaicstack/mosaic#11