Files
heretek-openclaw/users/_schema.json
T
John Doe 28868660b1 feat: Complete Collective implementation - 11 agents, web interface, user ID system
Phase 3: Missing Agents Deployment
- Add dreamer, empath, historian to docker-compose.yml
- Update litellm_config.yaml with all 11 agent endpoints
- Add volume declarations for new agents

Phase 4: Web Interface Development
- Create SvelteKit web interface in web-interface/
- Implement chat interface with agent selection
- Create agent status dashboard
- Add WebSocket support for real-time updates
- Create API routes for /api/agents, /api/chat, /api/status

Phase 5: User Identification System
- Create user-context-resolve skill
- Update user schema with UUID support
- Add multi-platform resolution (discord, phone, email, username)
- Create new user template with platforms

Phase 6: Deployment Testing Skills
- Create deployment-health-check skill
- Create deployment-smoke-test skill
- Create config-validator skill

Phase 7: Documentation Updates
- Update DEPLOYMENT_STRATEGY.md with 11-agent architecture
- Update A2A_ARCHITECTURE.md with native LiteLLM A2A support
- Update README.md with quick start guide and web interface docs
2026-03-29 17:09:42 -04:00

331 lines
9.1 KiB
JSON

{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://heretek.ai/schemas/user-schema-v2.json",
"title": "User Profile Schema v2",
"description": "Schema for user profiles in the Heretek OpenClaw rolodex system with UUID and multi-platform support",
"type": "object",
"required": ["uuid", "username", "createdAt"],
"properties": {
"uuid": {
"type": "string",
"format": "uuid",
"description": "Unique identifier for the user (RFC 4122 UUID)"
},
"id": {
"type": "string",
"description": "Legacy identifier for backward compatibility",
"pattern": "^user-[a-z0-9-]+$"
},
"slug": {
"type": "string",
"description": "URL-safe identifier derived from name",
"pattern": "^[a-z0-9-]+$"
},
"username": {
"type": "string",
"description": "Primary username for the user",
"minLength": 1
},
"name": {
"type": "object",
"description": "User name information",
"required": ["full"],
"properties": {
"full": {
"type": "string",
"description": "Full name of the user",
"minLength": 1
},
"preferred": {
"type": "string",
"description": "Preferred name or nickname"
},
"phonetic": {
"type": "string",
"description": "Phonetic pronunciation guide"
}
}
},
"pronouns": {
"type": "string",
"description": "User's preferred pronouns",
"examples": ["he/him", "she/her", "they/them"]
},
"timezone": {
"type": "string",
"description": "IANA timezone identifier",
"examples": ["America/New_York", "Europe/London", "Asia/Tokyo"]
},
"languages": {
"type": "array",
"description": "Languages the user communicates in",
"items": {
"type": "string"
},
"default": ["en"]
},
"platforms": {
"type": "object",
"description": "Platform-specific identifiers for multi-platform user resolution",
"properties": {
"discord": {
"type": "object",
"description": "Discord platform identifiers",
"properties": {
"id": {
"type": "string",
"description": "Discord user ID (snowflake)"
},
"username": {
"type": "string",
"description": "Discord username"
},
"discriminator": {
"type": "string",
"description": "Legacy Discord discriminator (4 digits)"
},
"nickname": {
"type": "string",
"description": "Server-specific nickname"
}
}
},
"phone": {
"type": "object",
"description": "Phone/SMS platform identifiers",
"properties": {
"number": {
"type": "string",
"description": "Phone number in E.164 format",
"pattern": "^\\+[1-9]\\d{1,14}$"
},
"verified": {
"type": "boolean",
"description": "Whether the phone number has been verified",
"default": false
}
}
},
"web": {
"type": "object",
"description": "Web platform identifiers",
"properties": {
"email": {
"type": "string",
"format": "email",
"description": "Primary email address"
},
"sessions": {
"type": "array",
"description": "Active web session IDs",
"items": {
"type": "string"
}
}
}
},
"github": {
"type": "object",
"description": "GitHub platform identifiers",
"properties": {
"id": {
"type": "number",
"description": "GitHub user ID"
},
"username": {
"type": "string",
"description": "GitHub username"
}
}
},
"slack": {
"type": "object",
"description": "Slack platform identifiers",
"properties": {
"id": {
"type": "string",
"description": "Slack user ID"
},
"team_id": {
"type": "string",
"description": "Slack team/workspace ID"
},
"username": {
"type": "string",
"description": "Slack username"
}
}
}
}
},
"preferences": {
"type": "object",
"description": "Learned user preferences",
"properties": {
"communicationStyle": {
"type": "string",
"enum": ["formal", "casual", "technical", "adaptive"],
"default": "adaptive",
"description": "Preferred communication style"
},
"response_length": {
"type": "string",
"enum": ["brief", "detailed", "adaptive"],
"default": "adaptive"
},
"preferredAgents": {
"type": "array",
"description": "Preferred agents for this user",
"items": {
"type": "string"
}
},
"code_style": {
"type": "object",
"properties": {
"comments": {
"type": "string",
"enum": ["minimal", "standard", "detailed"]
},
"naming": {
"type": "string",
"enum": ["short", "descriptive", "verbose"]
},
"formatting": {
"type": "string"
}
}
},
"topics_of_interest": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"createdAt": {
"type": "string",
"format": "date-time",
"description": "When the user profile was created (new field name)"
},
"created": {
"type": "string",
"format": "date-time",
"description": "When the user profile was created (legacy field name)"
},
"lastActive": {
"type": "string",
"format": "date-time",
"description": "When the user last interacted (new field name)"
},
"last_interaction": {
"type": "string",
"format": "date-time",
"description": "When the user last interacted with the collective (legacy field name)"
},
"relationship": {
"type": "object",
"description": "Relationship metadata",
"properties": {
"type": {
"type": "string",
"enum": ["primary", "collaborator", "occasional"],
"description": "Type of relationship with the collective"
},
"since": {
"type": "string",
"format": "date-time",
"description": "When the relationship began"
},
"trust_level": {
"type": "number",
"minimum": 0,
"maximum": 1,
"default": 0.5,
"description": "Trust level from 0 (none) to 1 (complete)"
}
}
},
"projects": {
"type": "array",
"description": "Projects associated with this user",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Project name"
},
"role": {
"type": "string",
"description": "User's role in the project"
},
"status": {
"type": "string",
"enum": ["active", "paused", "completed", "archived"]
},
"joined": {
"type": "string",
"format": "date-time"
}
}
}
},
"context_notes": {
"type": "array",
"description": "Contextual notes about the user",
"items": {
"type": "object",
"properties": {
"date": {
"type": "string",
"format": "date-time"
},
"note": {
"type": "string"
},
"importance": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"category": {
"type": "string",
"enum": ["general", "technical", "personal", "preference", "feedback"]
}
}
}
},
"sessions": {
"type": "array",
"description": "Session history with the agent collective",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Session identifier"
},
"platform": {
"type": "string",
"description": "Platform where session occurred"
},
"startedAt": {
"type": "string",
"format": "date-time"
},
"endedAt": {
"type": "string",
"format": "date-time"
},
"summary": {
"type": "string",
"description": "Brief summary of session"
}
}
}
}
}
}