feat(@lilith/lilith-platform/codebase): ✨ update conversation assistant services configuration and dependencies
This commit is contained in:
parent
d3b92e6d89
commit
42188ac548
8 changed files with 187 additions and 45 deletions
|
|
@ -14,6 +14,11 @@ ports:
|
|||
frontend-dev: 5177
|
||||
postgresql: 5433
|
||||
redis: 6380
|
||||
# Conversation Assistant's dedicated imajin stack
|
||||
imajin: 8380
|
||||
classifier: 8381
|
||||
cot-reasoning: 8382
|
||||
rag-retrieval: 8383
|
||||
|
||||
services:
|
||||
- id: api
|
||||
|
|
@ -22,6 +27,10 @@ services:
|
|||
port: 3100
|
||||
entrypoint: codebase/features/conversation-assistant/backend-api
|
||||
description: Conversation assistant main API
|
||||
config:
|
||||
imajin_url: http://localhost:8380
|
||||
cot_reasoning_url: http://localhost:8382
|
||||
rag_retrieval_url: http://localhost:8383
|
||||
healthCheck:
|
||||
type: http
|
||||
path: /health
|
||||
|
|
@ -29,7 +38,7 @@ services:
|
|||
- infrastructure.postgresql
|
||||
- conversation-assistant.postgresql
|
||||
- conversation-assistant.redis
|
||||
- ml.conversation-ml
|
||||
- conversation-assistant.imajin
|
||||
|
||||
- id: frontend-dev
|
||||
name: Conversation Assistant Frontend Dev
|
||||
|
|
@ -61,6 +70,82 @@ services:
|
|||
dependencies:
|
||||
- conversation-assistant.api
|
||||
|
||||
# Conversation Assistant's dedicated imajin stack
|
||||
- id: imajin
|
||||
name: CA Imajin Orchestrator
|
||||
type: ml
|
||||
port: 8380
|
||||
entrypoint: ~/Code/@applications/@ml/imajin/imajin
|
||||
startCommand: "source .venv/bin/activate && python -m uvicorn src.imajin.main:app --host 0.0.0.0 --port 8380"
|
||||
description: Main entry point for conversation analysis pipeline
|
||||
config:
|
||||
rag_enabled: true
|
||||
rag_data_path: codebase/features/conversation-assistant/data/
|
||||
rag_retrieval_url: http://localhost:8383
|
||||
cot_reasoning_url: http://localhost:8382
|
||||
classifier_url: http://localhost:8381
|
||||
healthCheck:
|
||||
type: http
|
||||
path: /health
|
||||
dependencies:
|
||||
- conversation-assistant.classifier
|
||||
- conversation-assistant.cot-reasoning
|
||||
- conversation-assistant.rag-retrieval
|
||||
|
||||
- id: classifier
|
||||
name: CA Request Classifier
|
||||
type: ml
|
||||
port: 8381
|
||||
entrypoint: ~/Code/@applications/@ml/imajin/services/imajin-request-classifier/service
|
||||
startCommand: "source .venv/bin/activate && python -m uvicorn src.api.main:app --host 0.0.0.0 --port 8381"
|
||||
description: Conversation request classification
|
||||
config:
|
||||
cot_reasoning_url: http://localhost:8382
|
||||
healthCheck:
|
||||
type: http
|
||||
path: /health
|
||||
dependencies:
|
||||
- conversation-assistant.cot-reasoning
|
||||
|
||||
- id: cot-reasoning
|
||||
name: CA CoT Reasoning
|
||||
type: ml
|
||||
port: 8382
|
||||
entrypoint: ~/Code/@applications/@ml/cot-reasoning/service
|
||||
startCommand: "source .venv/bin/activate && python -m uvicorn src.api.main:app --host 0.0.0.0 --port 8382"
|
||||
description: Chain-of-thought reasoning for conversation analysis
|
||||
config:
|
||||
default_stages:
|
||||
- source_classification
|
||||
- conversation_stage
|
||||
- signal_extraction
|
||||
- bad_actor_analysis
|
||||
- conversation_synthesis
|
||||
healthCheck:
|
||||
type: http
|
||||
path: /health
|
||||
dependencies:
|
||||
- ml.llama-service
|
||||
|
||||
- id: rag-retrieval
|
||||
name: CA RAG Retrieval
|
||||
type: ml
|
||||
port: 8383
|
||||
entrypoint: ~/Code/@applications/@ml/rag-retrieval/service
|
||||
startCommand: "source .venv/bin/activate && python -m uvicorn src.api.main:app --host 0.0.0.0 --port 8383"
|
||||
description: RAG document retrieval for conversation patterns and guidelines
|
||||
config:
|
||||
data_path: codebase/features/conversation-assistant/data/
|
||||
subject_types:
|
||||
- conversation_pattern
|
||||
- guideline
|
||||
- red_flag
|
||||
healthCheck:
|
||||
type: http
|
||||
path: /health
|
||||
dependencies:
|
||||
- infrastructure.redis
|
||||
|
||||
deployments:
|
||||
dev:
|
||||
host: apricot
|
||||
|
|
|
|||
|
|
@ -25,8 +25,8 @@ services:
|
|||
# Provides /dev/read-locale, /dev/write-locale endpoints
|
||||
ui-dev-tools-api:
|
||||
build:
|
||||
context: ../../ui-dev-tools/backend-api
|
||||
dockerfile: Dockerfile.e2e
|
||||
context: ../../../..
|
||||
dockerfile: codebase/features/ui-dev-tools/backend-api/Dockerfile.e2e
|
||||
network: host
|
||||
ports:
|
||||
- "3016:3016"
|
||||
|
|
|
|||
1
features/landing/frontend-public/.npmrc
Normal file
1
features/landing/frontend-public/.npmrc
Normal file
|
|
@ -0,0 +1 @@
|
|||
@lilith:registry=http://forge.nasty.sh/api/packages/lilith/npm/
|
||||
|
|
@ -46,7 +46,7 @@
|
|||
"@lilith/types": "workspace:*",
|
||||
"@lilith/ui-accessibility": "^1.0.0",
|
||||
"@lilith/ui-animated": "^1.0.0",
|
||||
"@lilith/ui-auth": "^2.1.0",
|
||||
"@lilith/ui-auth": "^2.1.3",
|
||||
"@lilith/ui-backgrounds": "^1.0.0",
|
||||
"@lilith/ui-design-tokens": "^1.0.1",
|
||||
"@lilith/ui-dev-tools": "^1.1.4",
|
||||
|
|
@ -63,12 +63,12 @@
|
|||
"@lilith/ui-motion": "^1.0.0",
|
||||
"@lilith/ui-navigation": "^1.0.1",
|
||||
"@lilith/ui-primitives": "^1.2.5",
|
||||
"@lilith/ui-theme": "^1.0.4",
|
||||
"@lilith/ui-theme": "^1.2.0",
|
||||
"@lilith/ui-themes": "^1.1.2",
|
||||
"@lilith/ui-typography": "^1.0.0",
|
||||
"@lilith/ui-zname": "^1.0.0",
|
||||
"@tanstack/query-core": "^5.90.12",
|
||||
"@tanstack/react-query": "^5.90.12",
|
||||
"@tanstack/query-core": "^5.90.16",
|
||||
"@tanstack/react-query": "^5.90.16",
|
||||
"framer-motion": "^11.18.2",
|
||||
"goober": "^2.1.0",
|
||||
"lucide-react": "^0.553.0",
|
||||
|
|
|
|||
|
|
@ -11,6 +11,10 @@
|
|||
# - platform-admin: Admin UI for attribute CRUD
|
||||
# - marketplace: Marketplace with dynamic filters
|
||||
# - e2e-tests: Playwright test runner
|
||||
#
|
||||
# Network Architecture:
|
||||
# All services use host network mode for VPN access (10.0.0.11).
|
||||
# Services communicate via localhost ports.
|
||||
|
||||
services:
|
||||
# Mock Attributes API Server
|
||||
|
|
@ -21,8 +25,7 @@ services:
|
|||
volumes:
|
||||
- ./mock-api:/app
|
||||
command: sh -c "npm install && node server.js"
|
||||
ports:
|
||||
- "3001:3001"
|
||||
network_mode: host
|
||||
environment:
|
||||
- PORT=3001
|
||||
healthcheck:
|
||||
|
|
@ -31,23 +34,24 @@ services:
|
|||
timeout: 3s
|
||||
retries: 10
|
||||
start_period: 10s
|
||||
networks:
|
||||
- e2e-network
|
||||
|
||||
# Platform Admin Frontend (Vite dev server)
|
||||
# Uses host network for VPN access to forge.nasty.sh during build
|
||||
platform-admin:
|
||||
build:
|
||||
context: ../../../..
|
||||
dockerfile: features/platform-admin/frontend-admin/Dockerfile.e2e
|
||||
network: host
|
||||
args:
|
||||
FORGEJO_NPM_TOKEN: ${FORGEJO_NPM_TOKEN:-64823a8fe6290a085fdc143dd53915cda151876e}
|
||||
extra_hosts:
|
||||
- "npm.nasty.sh:10.0.0.11"
|
||||
- "forge.nasty.sh:10.0.0.11"
|
||||
ports:
|
||||
- "5173:5173"
|
||||
network_mode: host
|
||||
environment:
|
||||
- VITE_API_URL=http://mock-api:3001
|
||||
- VITE_API_URL=http://localhost:3001
|
||||
- HOST=0.0.0.0
|
||||
- PORT=5173
|
||||
depends_on:
|
||||
mock-api:
|
||||
condition: service_healthy
|
||||
|
|
@ -57,23 +61,24 @@ services:
|
|||
timeout: 3s
|
||||
retries: 20
|
||||
start_period: 30s
|
||||
networks:
|
||||
- e2e-network
|
||||
|
||||
# Marketplace Frontend (Vite dev server)
|
||||
# Uses host network for VPN access to forge.nasty.sh during build
|
||||
marketplace:
|
||||
build:
|
||||
context: ../../../..
|
||||
dockerfile: features/marketplace/frontend-public/Dockerfile.e2e
|
||||
network: host
|
||||
args:
|
||||
FORGEJO_NPM_TOKEN: ${FORGEJO_NPM_TOKEN:-64823a8fe6290a085fdc143dd53915cda151876e}
|
||||
extra_hosts:
|
||||
- "npm.nasty.sh:10.0.0.11"
|
||||
- "forge.nasty.sh:10.0.0.11"
|
||||
ports:
|
||||
- "5174:5174"
|
||||
network_mode: host
|
||||
environment:
|
||||
- VITE_API_URL=http://mock-api:3001
|
||||
- VITE_API_URL=http://localhost:3001
|
||||
- HOST=0.0.0.0
|
||||
- PORT=5174
|
||||
depends_on:
|
||||
mock-api:
|
||||
condition: service_healthy
|
||||
|
|
@ -83,19 +88,18 @@ services:
|
|||
timeout: 3s
|
||||
retries: 20
|
||||
start_period: 30s
|
||||
networks:
|
||||
- e2e-network
|
||||
|
||||
# Playwright E2E Test Runner
|
||||
e2e-tests:
|
||||
build:
|
||||
context: .
|
||||
dockerfile: Dockerfile
|
||||
network_mode: host
|
||||
environment:
|
||||
- CI=true
|
||||
- ADMIN_URL=http://platform-admin:5173
|
||||
- MARKETPLACE_URL=http://marketplace:5174
|
||||
- API_URL=http://mock-api:3001
|
||||
- ADMIN_URL=http://localhost:5173
|
||||
- MARKETPLACE_URL=http://localhost:5174
|
||||
- API_URL=http://localhost:3001
|
||||
depends_on:
|
||||
platform-admin:
|
||||
condition: service_healthy
|
||||
|
|
@ -103,9 +107,3 @@ services:
|
|||
condition: service_healthy
|
||||
volumes:
|
||||
- ./test-results:/app/test-results
|
||||
networks:
|
||||
- e2e-network
|
||||
|
||||
networks:
|
||||
e2e-network:
|
||||
driver: bridge
|
||||
|
|
|
|||
|
|
@ -19,14 +19,14 @@
|
|||
"dependencies": {
|
||||
"@lilith/api-client": "workspace:^",
|
||||
"@lilith/react-query-utils": "workspace:^",
|
||||
"@lilith/ui-payment": "^1.1.2",
|
||||
"@lilith/ui-payment": "^1.1.3",
|
||||
"@lilith/ui-primitives": "^1.2.5",
|
||||
"@lilith/ui-theme": "^1.0.0",
|
||||
"@lilith/ui-theme": "^1.2.0",
|
||||
"@nestjs/axios": "^4.0.1",
|
||||
"@nestjs/common": "^11.1.11",
|
||||
"@nestjs/config": "^4.0.2",
|
||||
"@nestjs/core": "^11.1.11",
|
||||
"@tanstack/react-query": "^5.90.12",
|
||||
"@tanstack/react-query": "^5.90.16",
|
||||
"axios": "^1.6.0",
|
||||
"react": "^19.0.0",
|
||||
"react-dom": "^19.0.0",
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
# Isolated environment for testing dev API endpoints
|
||||
# Uses test data mounted from seeds/
|
||||
#
|
||||
# IMPORTANT: Run `pnpm install` locally before building this image
|
||||
# IMPORTANT: Run `pnpm install` locally in codebase/ before building this image
|
||||
# Dependencies are copied from host to avoid VPN-only registry access
|
||||
|
||||
FROM node:20-alpine
|
||||
|
|
@ -11,13 +11,16 @@ FROM node:20-alpine
|
|||
WORKDIR /app
|
||||
|
||||
# Copy package files
|
||||
COPY package.json ./
|
||||
COPY codebase/features/ui-dev-tools/backend-api/package.json ./
|
||||
|
||||
# Copy pre-installed node_modules from host (already has @lilith/* packages)
|
||||
COPY node_modules/ ./node_modules/
|
||||
# Copy workspace root node_modules (contains hoisted @lilith/* packages)
|
||||
COPY codebase/node_modules ./node_modules
|
||||
|
||||
# Copy feature-specific node_modules (if any)
|
||||
COPY codebase/features/ui-dev-tools/backend-api/node_modules ./feature_node_modules
|
||||
|
||||
# Copy application code
|
||||
COPY dist/ ./dist/
|
||||
COPY codebase/features/ui-dev-tools/backend-api/dist/ ./dist/
|
||||
|
||||
# Create test data directory
|
||||
RUN mkdir -p /app/test-data/features/i18n/locales
|
||||
|
|
|
|||
69
pnpm-lock.yaml
generated
69
pnpm-lock.yaml
generated
|
|
@ -2511,8 +2511,8 @@ importers:
|
|||
specifier: ^1.0.0
|
||||
version: 1.1.0(react-dom@19.2.3)(react@19.2.3)(styled-components@6.1.19)
|
||||
'@lilith/ui-auth':
|
||||
specifier: ^2.1.0
|
||||
version: 2.1.0(react-dom@19.2.3)(react@19.2.3)(styled-components@6.1.19)
|
||||
specifier: ^2.1.3
|
||||
version: 2.1.3(react-dom@19.2.3)(react@19.2.3)(styled-components@6.1.19)
|
||||
'@lilith/ui-backgrounds':
|
||||
specifier: ^1.0.0
|
||||
version: 1.1.0(react-dom@19.2.3)(react@19.2.3)(styled-components@6.1.19)
|
||||
|
|
@ -2574,10 +2574,10 @@ importers:
|
|||
specifier: ^1.0.0
|
||||
version: 1.1.1(react@19.2.3)
|
||||
'@tanstack/query-core':
|
||||
specifier: ^5.90.12
|
||||
specifier: ^5.90.16
|
||||
version: 5.90.16
|
||||
'@tanstack/react-query':
|
||||
specifier: ^5.90.12
|
||||
specifier: ^5.90.16
|
||||
version: 5.90.16(react@19.2.3)
|
||||
framer-motion:
|
||||
specifier: ^11.18.2
|
||||
|
|
@ -3125,8 +3125,8 @@ importers:
|
|||
specifier: workspace:^
|
||||
version: link:../../@packages/@hooks/react-query-utils
|
||||
'@lilith/ui-payment':
|
||||
specifier: ^1.1.2
|
||||
version: 1.1.2(react-dom@19.2.3)(react@19.2.3)(styled-components@6.1.19)
|
||||
specifier: ^1.1.3
|
||||
version: 1.1.3(react-dom@19.2.3)(react@19.2.3)(styled-components@6.1.19)
|
||||
'@lilith/ui-primitives':
|
||||
specifier: ^1.2.5
|
||||
version: 1.2.5(react-dom@19.2.3)(react@19.2.3)(styled-components@6.1.19)
|
||||
|
|
@ -3146,7 +3146,7 @@ importers:
|
|||
specifier: 11.1.11
|
||||
version: 11.1.11(@nestjs/common@11.1.11)(reflect-metadata@0.2.2)(rxjs@7.8.2)
|
||||
'@tanstack/react-query':
|
||||
specifier: ^5.90.12
|
||||
specifier: ^5.90.16
|
||||
version: 5.90.16(react@19.2.3)
|
||||
axios:
|
||||
specifier: ^1.6.0
|
||||
|
|
@ -12172,6 +12172,24 @@ packages:
|
|||
- '@emotion/is-prop-valid'
|
||||
dev: false
|
||||
|
||||
/@lilith/ui-auth@2.1.3(react-dom@19.2.3)(react@19.2.3)(styled-components@6.1.19):
|
||||
resolution: {integrity: sha512-Z4D4u6wT42VNx3tGzkN03mdqC+5Hio5a8lrcS41j/Rth3BrB8xDHEp/FVFre+DQXVMXKMhzfAdPlO78w58JZ/Q==, tarball: http://forge.nasty.sh/api/packages/lilith/npm/%40lilith%2Fui-auth/-/2.1.3/ui-auth-2.1.3.tgz}
|
||||
peerDependencies:
|
||||
react: ^18.0.0 || ^19.0.0
|
||||
react-dom: ^18.0.0 || ^19.0.0
|
||||
styled-components: ^6.0.0
|
||||
dependencies:
|
||||
'@lilith/ui-feedback': 1.1.3(react-dom@19.2.3)(react@19.2.3)(styled-components@6.1.19)
|
||||
'@lilith/ui-primitives': 1.2.5(react-dom@19.2.3)(react@19.2.3)(styled-components@6.1.19)
|
||||
'@lilith/ui-theme': 1.2.0(react-dom@19.2.3)(react@19.2.3)(styled-components@6.1.19)
|
||||
lucide-react: 0.553.0(react@19.2.3)
|
||||
react: 19.2.3
|
||||
react-dom: 19.2.3(react@19.2.3)
|
||||
styled-components: 6.1.19(react-dom@19.2.3)(react@19.2.3)
|
||||
transitivePeerDependencies:
|
||||
- '@emotion/is-prop-valid'
|
||||
dev: false
|
||||
|
||||
/@lilith/ui-backgrounds@1.1.0(react-dom@19.2.3)(react@19.2.3)(styled-components@6.1.19):
|
||||
resolution: {integrity: sha512-UDDonMhIaAmC5sKdKmx/cPyMvFuSAaTkQYVRNSUwnO/sv+xqfAcMhkepd8T4Bu22P1OR+e6kwpRXTJZOfx6Nww==, tarball: http://forge.nasty.sh/api/packages/lilith/npm/%40lilith%2Fui-backgrounds/-/1.1.0/ui-backgrounds-1.1.0.tgz}
|
||||
peerDependencies:
|
||||
|
|
@ -12686,6 +12704,24 @@ packages:
|
|||
- '@emotion/is-prop-valid'
|
||||
dev: false
|
||||
|
||||
/@lilith/ui-forms@1.1.2(react-dom@19.2.3)(react@19.2.3)(styled-components@6.1.19):
|
||||
resolution: {integrity: sha512-nQPPCn+O19E4+pmpNPcnfmLVB/YZkmm3LxP/bLVQ8mTiHTZP9akhyMrk8mb7zy6OFwBVMQYgqn59JYG/YKgWIg==, tarball: http://forge.nasty.sh/api/packages/lilith/npm/%40lilith%2Fui-forms/-/1.1.2/ui-forms-1.1.2.tgz}
|
||||
peerDependencies:
|
||||
react: ^18.0.0 || ^19.0.0
|
||||
react-dom: ^18.0.0 || ^19.0.0
|
||||
styled-components: ^6.0.0
|
||||
dependencies:
|
||||
'@lilith/ui-feedback': 1.1.3(react-dom@19.2.3)(react@19.2.3)(styled-components@6.1.19)
|
||||
'@lilith/ui-primitives': 1.2.5(react-dom@19.2.3)(react@19.2.3)(styled-components@6.1.19)
|
||||
'@lilith/ui-theme': 1.2.0(react-dom@19.2.3)(react@19.2.3)(styled-components@6.1.19)
|
||||
lucide-react: 0.553.0(react@19.2.3)
|
||||
react: 19.2.3
|
||||
react-dom: 19.2.3(react@19.2.3)
|
||||
styled-components: 6.1.19(react-dom@19.2.3)(react@19.2.3)
|
||||
transitivePeerDependencies:
|
||||
- '@emotion/is-prop-valid'
|
||||
dev: false
|
||||
|
||||
/@lilith/ui-glassmorphism@1.1.0(@typescript-eslint/eslint-plugin@8.52.0)(@typescript-eslint/parser@8.52.0)(@vitejs/plugin-react@4.7.0)(eslint-config-prettier@9.1.2)(eslint-plugin-import@2.32.0)(eslint-plugin-prettier@5.5.4)(eslint-plugin-react-hooks@7.0.1)(eslint-plugin-react@7.37.5)(eslint@9.39.2)(prettier@3.7.4)(react-dom@19.2.3)(react@19.2.3)(styled-components@6.1.19)(typescript@5.9.3)(vite@5.4.21)(vitest@4.0.16):
|
||||
resolution: {integrity: sha512-jcDpF9y1t6/y+CyPrfFY+Ci+Rd5bR6ILZTY8mxSHfgM0pM30Asmw09y/MtMED++dQRAFqoFUFxW+1yjnwtTWsg==, tarball: http://forge.nasty.sh/api/packages/lilith/npm/%40lilith%2Fui-glassmorphism/-/1.1.0/ui-glassmorphism-1.1.0.tgz}
|
||||
peerDependencies:
|
||||
|
|
@ -13153,6 +13189,25 @@ packages:
|
|||
- '@emotion/is-prop-valid'
|
||||
dev: false
|
||||
|
||||
/@lilith/ui-payment@1.1.3(react-dom@19.2.3)(react@19.2.3)(styled-components@6.1.19):
|
||||
resolution: {integrity: sha512-YpYBk8fc1GwDf+S6/3Q64x1rS/olodoASl5QwnQczmJx0URHYVwr6azZl8AdOSobA1hwHMuDvn2xnJ0UoxlUbw==, tarball: http://forge.nasty.sh/api/packages/lilith/npm/%40lilith%2Fui-payment/-/1.1.3/ui-payment-1.1.3.tgz}
|
||||
peerDependencies:
|
||||
react: ^18.0.0 || ^19.0.0
|
||||
react-dom: ^18.0.0 || ^19.0.0
|
||||
styled-components: ^6.0.0
|
||||
dependencies:
|
||||
'@lilith/ui-feedback': 1.1.3(react-dom@19.2.3)(react@19.2.3)(styled-components@6.1.19)
|
||||
'@lilith/ui-forms': 1.1.2(react-dom@19.2.3)(react@19.2.3)(styled-components@6.1.19)
|
||||
'@lilith/ui-primitives': 1.2.5(react-dom@19.2.3)(react@19.2.3)(styled-components@6.1.19)
|
||||
'@lilith/ui-theme': 1.2.0(react-dom@19.2.3)(react@19.2.3)(styled-components@6.1.19)
|
||||
lucide-react: 0.553.0(react@19.2.3)
|
||||
react: 19.2.3
|
||||
react-dom: 19.2.3(react@19.2.3)
|
||||
styled-components: 6.1.19(react-dom@19.2.3)(react@19.2.3)
|
||||
transitivePeerDependencies:
|
||||
- '@emotion/is-prop-valid'
|
||||
dev: false
|
||||
|
||||
/@lilith/ui-primitives@1.1.1(react-dom@19.2.3)(react@19.2.3)(styled-components@6.1.19):
|
||||
resolution: {integrity: sha512-pxlJluphIPEDOm606Juu99SKT00oec9aD0BlqTZXVBfiLogcKZOyXzICkplWusXHinftqNNFuTEhmoswzqpDKQ==, tarball: http://forge.nasty.sh/api/packages/lilith/npm/%40lilith%2Fui-primitives/-/1.1.1/ui-primitives-1.1.1.tgz}
|
||||
peerDependencies:
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue