### Install Project Dependencies Source: https://github.com/elizaos/the-org/blob/main/README.md Installs all necessary project dependencies using the Bun package manager. This command reads the package.json file to fetch and install required libraries. ```bash bun install ``` -------------------------------- ### Run The Org Application Source: https://github.com/elizaos/the-org/blob/main/README.md Starts the multi-agent system by executing the main entry point script using Bun. This command initiates all configured agents. ```bash bun src/index.ts ``` -------------------------------- ### Eddy SDK Authentication Example Source: https://github.com/elizaos/the-org/blob/main/src/devRel/spec.md Provides a TypeScript code example demonstrating how to implement authentication using a hypothetical SDK. It includes initializing the Auth class and performing a login operation. ```typescript import { Auth } from '@your-sdk/auth'; const auth = new Auth({ apiKey: process.env.API_KEY, // Additional configuration }); // Example authentication flow async function authenticate() { try { const session = await auth.login({ username: 'user@example.com', password: 'secure_password' }); return session; } catch (error) { console.error('Authentication failed:', error); } } ``` -------------------------------- ### Run Specific Agents Source: https://github.com/elizaos/the-org/blob/main/README.md Allows running a subset of agents by providing their names as command-line flags. Agent names correspond to the keys used in the project's configuration. Agents with unconfigured environment variables will not start. ```bash bun src/index.ts --devRel --projectManager ``` -------------------------------- ### Run Specific File Tests (Vitest) Source: https://github.com/elizaos/the-org/blob/main/README.md Runs tests for a particular file, useful for focused debugging or verifying changes in a specific module. Replace the example path with the actual test file. ```bash bun test src/plugins.test.ts ``` -------------------------------- ### Configuration Interfaces and Object Source: https://github.com/elizaos/the-org/blob/main/src/projectManager/spec.md Defines interfaces for project and team member configurations, along with an example configuration object structure for onboarding. This includes settings for projects, team members, and report channels. ```typescript interface ProjectConfig { id: UUID; name: string; team: UUID[]; // Team member IDs } interface TeamMemberConfig { id: UUID; name: string; workDays: string[]; workHours: { start: string; end: string; }; timeZone: string; hoursPerWeek: number; employmentStatus: 'FULL_TIME' | 'PART_TIME' | 'FREELANCE' | 'NONE'; } const config: OnboardingConfig = { settings: { PROJECTS: { name: 'Projects', description: 'List of projects to manage', required: true, public: true, secret: false, value: [] as ProjectConfig[], validation: (value: ProjectConfig[]) => Array.isArray(value), }, TEAM: { name: 'Team Members', description: 'List of team members', required: true, public: true, secret: false, value: [] as TeamMemberConfig[], validation: (value: TeamMemberConfig[]) => Array.isArray(value), }, REPORT_CHANNEL: { name: 'Report Channel', description: 'Discord channel for reports (DMs if not specified)', required: false, public: true, secret: false, validation: (value: string) => typeof value === 'string', }, }, }; ``` -------------------------------- ### Run All Available Agents Source: https://github.com/elizaos/the-org/blob/main/README.md Executes all agents that have their required environment variables and API tokens correctly configured. The application automatically detects and initializes agents based on the presence of necessary credentials in the .env file. ```bash bun src/index.ts ``` -------------------------------- ### Clone The Org Repository Source: https://github.com/elizaos/the-org/blob/main/README.md Clones the project repository from a given URL using Git and navigates into the project directory. ```bash git clone cd the-org ``` -------------------------------- ### Run All Tests (Vitest) Source: https://github.com/elizaos/the-org/blob/main/README.md Executes all unit and integration tests defined within the project using the Bun test runner. This command is the primary way to ensure code quality and functionality. ```bash bun test ``` -------------------------------- ### The Org Configuration (.env) Variables Source: https://github.com/elizaos/the-org/blob/main/README.md Defines the environment variables required for configuring The Org system. These variables control database connections, API keys for LLMs, and platform-specific credentials for various AI agents. ```APIDOC General Configuration: POSTGRES_URL: string Description: Connection string for the PostgreSQL database used by @elizaos/plugin-sql for persistent memory. Example: "postgresql://user:password@host:port/database" OPENAI_API_KEY: string Description: API key for accessing OpenAI models. ANTHROPIC_API_KEY: string Description: API key for accessing Anthropic models. Agent Specific Configurations: Community Manager (Eli5): COMMUNITY_MANAGER_DISCORD_APPLICATION_ID: string Description: Discord Application ID for the Community Manager agent. COMMUNITY_MANAGER_DISCORD_API_TOKEN: string Description: Discord Bot API Token for the Community Manager agent. Developer Relations (Eddy): DEV_REL_DISCORD_APPLICATION_ID: string Description: Discord Application ID for the Developer Relations agent. DEV_REL_DISCORD_API_TOKEN: string Description: Discord Bot API Token for the Developer Relations agent. DEVREL_IMPORT_KNOWLEDGE: boolean Description: Flag to enable or disable loading the knowledge base on startup for the Developer Relations agent. Defaults to true. Example: "true" Liaison (Ruby): LIAISON_DISCORD_APPLICATION_ID: string Description: Discord Application ID for the Liaison agent. LIAISON_DISCORD_API_TOKEN: string Description: Discord Bot API Token for the Liaison agent. Project Manager (Jimmy): PROJECT_MANAGER_DISCORD_APPLICATION_ID: string Description: Discord Application ID for the Project Manager agent. PROJECT_MANAGER_DISCORD_API_TOKEN: string Description: Discord Bot API Token for the Project Manager agent. PROJECT_MANAGER_TELEGRAM_BOT_TOKEN: string Description: Telegram Bot API Token for the Project Manager agent. Social Media Manager (Laura): SOCIAL_MEDIA_MANAGER_DISCORD_APPLICATION_ID: string Description: Discord Application ID for the Social Media Manager agent. SOCIAL_MEDIA_MANAGER_DISCORD_API_TOKEN: string Description: Discord Bot API Token for the Social Media Manager agent. TWITTER_USERNAME: string Description: Twitter username for the Social Media Manager agent. TWITTER_EMAIL: string Description: Twitter email for the Social Media Manager agent. TWITTER_PASSWORD: string Description: Twitter password for the Social Media Manager agent. TWITTER_2FA_SECRET: string (optional) Description: 2FA secret key for Twitter if two-factor authentication is enabled. This is optional. Note: If a platform token for an agent is not provided, that agent may not be able to use that platform's features or might be disabled for that platform. ``` -------------------------------- ### Run Load Tests Source: https://github.com/elizaos/the-org/blob/main/README.md Executes the load testing suite orchestrated by the test-runner.js script. This is used to assess agent scalability and performance under load. ```bash bun src/loadTest/test-runner.js ``` -------------------------------- ### Project and Team Settings Source: https://github.com/elizaos/the-org/blob/main/src/projectManager/spec.md Defines configuration parameters for projects and team members, including contact details, roles, and employment status. ```APIDOC Settings from owner: PROJECTS: List of projects TEAM MEMBERS: List of team members PROJECTS -> TEAM MEMBERS: Association between projects and team members REPORT CHANNEL: Channel for reports STANDUP TIMES: Scheduled times for standup meetings STANDUP LINKS (optional): Optional links for standup meetings Settings from devs: HOURS_PER_WEEK: Number of hours worked per week WORK HOURS (start and end times): Daily start and end times EMPLOYMENT_STATUS (full time, part time, none): Employment status of the team member ``` -------------------------------- ### System and Integration Requirements Source: https://github.com/elizaos/the-org/blob/main/src/projectManager/spec.md Specifies essential system functionalities and integration needs for project management and team coordination. ```APIDOC System Requirements: Need to be able to create projects Need to be able to create and associate entities from onboarding (onboarding handler?) -> For example, devs on the project Need to be able to add arrays of entities to projects Need to be able to remove entities, too (just have an add + remove type) Need a running service / timer that checks on task Tasks should be stored in database Need to be able to connect dev on discord/telegram to github ``` -------------------------------- ### TypeScript Configuration for Organization Monitoring Source: https://github.com/elizaos/the-org/blob/main/src/liaison/spec.md Defines the configuration interface for organizations and a sample configuration object. This includes settings for monitoring Discord and Telegram servers, and managing organization preferences. ```typescript interface OrgConfig { id: UUID; name: string; // We should think about how we want to do this // Need to test the UX around inviting and sharing discordServerId: string; telegramServerId: string; slackServerId: string; } const config: OnboardingConfig = { settings: { ORGANIZATIONS: { name: 'Monitored Organizations', description: 'List of channels to monitor and their preferences', required: true, public: true, secret: false, value: [] as OrgConfig[], validation: (value: OrgConfig[]) => Array.isArray(value), }, }, }; ``` -------------------------------- ### Character Definition Source: https://github.com/elizaos/the-org/blob/main/src/projectManager/spec.md Defines the AI character 'Jimmy', including its name, plugins, and settings like Discord API credentials. This configuration specifies the AI's operational components and integrations. ```typescript const character: Character = { name: 'Jimmy', plugins: [ '@elizaos/plugin-anthropic', '@elizaos/plugin-openai', '@elizaos/plugin-discord', '@elizaos/plugin-node', '@elizaos/plugin-sql', ], settings: { secrets: { DISCORD_APPLICATION_ID: process.env.PROJECT_MANAGER_DISCORD_APPLICATION_ID, DISCORD_API_TOKEN: process.env.PROJECT_MANAGER_DISCORD_API_TOKEN, }, }, }; ``` -------------------------------- ### Task Management and Workflow Source: https://github.com/elizaos/the-org/blob/main/src/projectManager/spec.md Outlines the required tasks and processes for managing team activities, including daily check-ins and reporting. ```APIDOC Workflow Tasks: -> daily checkin start task: Task to initiate daily check-ins -> end of day checkin report task: Task to submit end-of-day reports -> weekly report task: Task for submitting weekly reports ``` -------------------------------- ### Eddy Configuration Settings Source: https://github.com/elizaos/the-org/blob/main/src/devRel/spec.md Defines the configuration structure for Eddy, including documentation sources and knowledge base settings. It specifies required fields and validation logic for each setting. ```typescript const config: OnboardingConfig = { settings: { DOCUMENTATION_SOURCES: { name: 'Documentation Sources', description: 'List of documentation sources to index', required: true, public: true, secret: false, value: [] as DocumentationConfig[], validation: (value: DocumentationConfig[]) => Array.isArray(value), }, KNOWLEDGE_BASE: { name: 'Knowledge Base Configuration', description: 'Knowledge base settings and categories', required: true, public: true, secret: false, value: {} as KnowledgeBaseConfig, validation: (value: KnowledgeBaseConfig) => typeof value === 'object', }, }, }; ``` -------------------------------- ### Markdown Structure for Cross-Organization Report Source: https://github.com/elizaos/the-org/blob/main/src/liaison/spec.md Provides a template for generating cross-organization reports. This markdown structure details sections for overview, parallel discussions, community updates, knowledge sharing opportunities, and knowledge base updates. ```markdown # Cross-Organization Report - [Date] ## Overview [Key highlights and emerging trends across organizations] ## Active Topics & Parallel Discussions ### [Topic Area] - Communities Discussing: [List of orgs] - Recent Discussions: [Brief summary of key points] - Potential Collaboration Areas: [Suggestions] ## Community Updates ### [Organization Name] - Active Topics: [Current discussion areas] - Key Discussions: [Important conversations] - Notable Developments: [Significant insights/decisions] ## Knowledge Sharing Opportunities - [Description of shared interests or challenges] - [Areas where communities could benefit from each other's insights] ## Knowledge Base Updates - New Topics: [Recently discussed subjects] - Active Discussions: [Cross-org conversations] - Shared Resources: [Useful information/tools mentioned] ``` -------------------------------- ### Data Models Source: https://github.com/elizaos/the-org/blob/main/src/projectManager/spec.md Defines the core data structures for projects, team members, daily updates, and reports used by Jimmy. These interfaces outline the expected properties and types for managing project-related information. ```typescript interface Project { id: UUID; name: string; teamMembers: UUID[]; // Team member IDs } interface TeamMember { id: UUID; name: string; availability: { workDays: ( | 'Monday' | 'Tuesday' | 'Wednesday' | 'Thursday' | 'Friday' | 'Saturday' | 'Sunday' )[]; workHours: { start: string; // HH:MM format end: string; // HH:MM format }; timeZone: string; // e.g., "America/Los_Angeles" hoursPerWeek: number; employmentStatus: 'FULL_TIME' | 'PART_TIME' | 'FREELANCE' | 'NONE'; }; } interface DailyUpdate { id: UUID; teamMemberId: UUID; projectId: UUID; date: string; // ISO date format summary: string; // Paragraph summary of work done } interface Report { id: UUID; type: 'DAILY' | 'WEEKLY'; projectId: UUID; generatedAt: string; summary: string; teamMemberSummaries: { teamMemberId: UUID; name: string; summary: string; }[]; } ``` -------------------------------- ### Project Management Agent Capabilities Source: https://github.com/elizaos/the-org/blob/main/src/projectManager/spec.md Details the core functionalities of the project management agent, including team check-ins, report generation, project creation, user management, and daily updates. ```APIDOC ProjectManagementAgent: description: Manages project workflows, team communication, and task automation. capabilities: - check_in_team: Periodically checks in with team members to gather status updates. - generate_leadership_reports: Creates reports for leadership summarizing team progress and activities. - create_project(project_name: str, description: str): Creates a new project with a given name and description. Parameters: project_name (str): The name of the project. description (str): A brief description of the project. Returns: Project object or success status. - add_user_to_project(project_id: str, user_id: str): Adds a user to an existing project. Parameters: project_id (str): The unique identifier for the project. user_id (str): The unique identifier for the user. Returns: Success status or error message. - post_daily_updates(project_id: str, update_text: str): Posts a daily update for a specific project. Parameters: project_id (str): The unique identifier for the project. update_text (str): The content of the daily update. Returns: Success status. - get_user_information(user_id: str): Retrieves user-specific information such as work hours and days. Parameters: user_id (str): The unique identifier for the user. Returns: User details object. - contact_user_for_update(user_id: str, scheduled_time: str): Contacts a user daily at a specified time if they haven't provided their update. Parameters: user_id (str): The unique identifier for the user. scheduled_time (str): The time of day to contact the user. Returns: Status of contact attempt. - create_standup_event(project_id: str, event_details: dict): Creates stand-up events, potentially on platforms like Discord or Google Calendar. Parameters: project_id (str): The project for which the stand-up is created. event_details (dict): Details of the stand-up event (e.g., time, participants, agenda). Returns: Event creation status. - set_weekly_goals(user_id: str, goals: list): Sets weekly goals for individual team members. Parameters: user_id (str): The user for whom goals are set. goals (list): A list of goal descriptions. Returns: Success status. - track_weekly_progress(user_id: str): Tracks and reports on the progress made towards weekly goals. Parameters: user_id (str): The user whose progress is tracked. Returns: Progress report. dependencies: - Linear Integration (Future) - Google Meets / Calendar Integration (Future) ``` -------------------------------- ### Weekly Report Format Source: https://github.com/elizaos/the-org/blob/main/src/projectManager/spec.md Specifies the structure and content for weekly project summary reports generated by Jimmy. This format includes an overall project summary and individual team member updates. ```plain-text 📊 Project Summary: [Overall progress and key points] 👥 Team Member Updates: [Member Name]: [Weekly work summary and current status] ``` -------------------------------- ### TypeScript Data Models for Organization and Reports Source: https://github.com/elizaos/the-org/blob/main/src/liaison/spec.md Defines the data structures for organizations and cross-organizational reports. These interfaces are crucial for managing community data, tracking subscriptions, and structuring generated reports. ```typescript interface Organization { id: UUID; name: string; discordServerId: string; subscribedTopics: string[]; reportSubscriptions: ReportType[]; } interface CrossOrgReport { id: UUID; type: ReportType; date: string; content: { overview: string; parallelTopics: { topic: string; organizations: UUID[]; recentDiscussions: string[]; potentialSynergies: string; }[]; organizationUpdates: { orgId: UUID; orgName: string; activeTopics: string[]; recentHighlights: string[]; }[]; }; } type ReportType = 'DAILY' | 'WEEKLY' | 'TOPIC_SPECIFIC'; ``` -------------------------------- ### Eddy Character Definition Source: https://github.com/elizaos/the-org/blob/main/src/devRel/spec.md Defines the core character properties for Eddy, including its name and the plugins it utilizes. It also specifies environment variables for sensitive credentials. ```typescript const character: Character = { name: "Eddy", plugins: [ "@elizaos/plugin-anthropic", "@elizaos/plugin-openai", "@elizaos/plugin-discord", "@elizaos/plugin-telegram", "@elizaos/plugin-node", "@elizaos/plugin-sql", ], settings: { secrets: { DISCORD_APPLICATION_ID: process.env.DEV_SUPPORT_DISCORD_APPLICATION_ID, DISCORD_API_TOKEN: process.env.DEV_SUPPORT_DISCORD_API_TOKEN, TELEGRAM_BOT_TOKEN: process.env.DEV_SUPPORT_TELEGRAM_TOKEN, } } }; ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.