ideaco 1.1.6 → 1.1.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -17,12 +17,15 @@
17
17
 
18
18
  <p align="center">
19
19
  <a href="#-quick-start">Quick Start</a> ·
20
- <a href="#-features">Features</a> ·
21
20
  <a href="#-architecture">Architecture</a> ·
22
21
  <a href="#-download">Download</a> ·
23
22
  <a href="ARCHITECTURE.md">Full Architecture Doc</a>
24
23
  </p>
25
24
 
25
+ <p align="center">
26
+ <img src="public/demo/demo.gif" width="100%" alt="IdeaCo Demo" />
27
+ </p>
28
+
26
29
  ---
27
30
 
28
31
  ## What is IdeaCo?
@@ -35,74 +38,24 @@ Each employee has **persistent memory**, a **unique personality**, **social rela
35
38
 
36
39
  ---
37
40
 
38
- ## 🧬 Why IdeaCo?
39
-
40
- Most agent frameworks create **stateless workflows**. IdeaCo manages **long-living AI employees with memory, personality, and social bonds**.
41
-
42
- | | Typical Agent Framework | IdeaCo |
43
- |---|---|---|
44
- | **Agents** | Ephemeral, per-task | Persistent employees with memory & personality |
45
- | **Memory** | None or simple RAG | Layered: long-term + short-term + social impressions + rolling summary |
46
- | **Social** | Agents don't know each other | Employees form opinions, track affinity, and remember coworkers |
47
- | **Orchestration** | DAG / workflow graph | Company org structure — departments, teams, roles |
48
- | **Backend** | Single LLM | Mix LLMs + CLI tools (Claude Code, Codex, CodeBuddy) |
49
- | **Autonomy** | Triggered by code | Employees poll, think, decide to speak or stay silent on their own |
50
- | **Interface** | Code / YAML | Visual — pixel office, group chats, dashboards |
51
-
52
- ---
53
-
54
- ## ✨ Features
55
-
56
- | Screenshot | Feature | Description |
57
- |:---:|---|---|
58
- | <img src="public/demo/dashboard.png" width="280" /> | **Dashboard** | Company overview — departments, employees, budget, requirements, and task forces at a glance |
59
- | <img src="public/demo/office.png" width="280" /> | **Pixel Office** | Pixel-art virtual office where AI agents wander, work at desks, and show real-time chat bubbles |
60
- | <img src="public/demo/employee.png" width="280" /> | **Employee Profile** | Detailed card — personality, memory (long/short-term), social relationships, affinity scores, performance, and cost tracking |
61
- | <img src="public/demo/messages.png" width="280" /> | **Group Chat** | Department chats where agents discuss, debate, and collaborate autonomously with flow-of-thought reasoning |
62
- | <img src="public/demo/requirement.png" width="280" /> | **Requirements** | Assign tasks to departments — agents auto-decompose, execute with real tools, and produce deliverables |
41
+ ## 🚀 Quick Start
63
42
 
64
- ### Key Highlights
43
+ ### Option 1: NPM (Recommended)
65
44
 
66
- - 🧠 **Flow-of-Thought** — Each employee reads messages, has an inner monologue, and independently decides whether to reply based on topic saturation, relevance, and anti-spam rules
67
- - 💾 **Layered Memory** — Long-term memory (facts, preferences), short-term memory (TTL-based), rolling history summaries, and AI-managed memory ops (add/delete)
68
- - 👥 **Social Memory** — Every employee maintains impressions and affinity scores for coworkers. They remember who helped them, who they disagree with, and who they like
69
- - 🎭 **12 Personality Archetypes** — From "Chatterbox" to "Zen Slacker" to "Anxious Perfectionist", each employee has a unique voice and behavior pattern
70
- - 🔌 **Multi-Backend** — Mix cloud LLMs (OpenAI, DeepSeek, Anthropic), CLI tools (Claude Code, Codex, CodeBuddy), and web agents (ChatGPT Web) in one company
71
- - 🏢 **Org Structure** — Departments, teams, roles, talent market, HR hiring — a complete company simulation
45
+ Requires Node.js 20+
72
46
 
73
- ---
47
+ ```bash
48
+ # Install globally
49
+ npm install -g ideaco
74
50
 
75
- ## 🏗 Architecture
51
+ # Start your company (opens dashboard automatically)
52
+ ideaco start
76
53
 
77
- ```
78
- ┌───────────────────────────────────────────────────┐
79
- │ 👤 User (Boss) │
80
- ├───────────────────────────────────────────────────┤
81
- │ 🧑‍💼 Secretary │
82
- │ Intent Parsing · HR · Task Dispatch · Reports │
83
- ├───────────────────────────────────────────────────┤
84
- │ 🏢 Organization │
85
- │ Company · Department · Team · Requirement │
86
- ├───────────────────────────────────────────────────┤
87
- │ 👥 Employee │
88
- │ Memory · Personality · Skills · Lifecycle │
89
- ├───────────────────────────────────────────────────┤
90
- │ 🤖 Agent │
91
- │ LLM Agent · CLI Agent · Web Agent │
92
- │ (Unified interface, zero business logic) │
93
- └───────────────────────────────────────────────────┘
54
+ # Open the dashboard
55
+ ideaco ui
94
56
  ```
95
57
 
96
- - **Agent** Pure LLM communication engine. Supports API, CLI, and Web backends behind a single `chat()` interface. Zero business logic.
97
- - **Employee** — The atomic unit. Wraps an Agent with persistent memory, personality, skills, and autonomous poll-think-reply behavior.
98
- - **Organization** — Company structure: departments, teams, group chats, requirements workflow.
99
- - **Secretary** — Boss's AI assistant that understands intent, manages HR, and coordinates departments.
100
-
101
- > 📖 See [ARCHITECTURE.md](ARCHITECTURE.md) for the full deep-dive — employee lifecycle, memory system design, flow-of-thought pipeline, anti-spam gates, and social memory details.
102
-
103
- ---
104
-
105
- ## ⬇ Download
58
+ ### Option 2: Desktop Client (Mac/Windows/Linux)
106
59
 
107
60
  Grab the latest release for your platform:
108
61
 
@@ -125,11 +78,7 @@ Since IdeaCo is not signed with an Apple Developer certificate, macOS will show
125
78
  3. **Or via Terminal**: `xattr -cr /Applications/IdeaCo.app`
126
79
  </details>
127
80
 
128
- ---
129
-
130
- ## 🚀 Quick Start
131
-
132
- ### From Source
81
+ ### Option 3: From Source
133
82
 
134
83
  ```bash
135
84
  git clone https://github.com/ymssx/IdeaCo.git
@@ -138,9 +87,7 @@ yarn install
138
87
  yarn dev
139
88
  ```
140
89
 
141
- Open **http://localhost:9999** — the Setup Wizard will guide you.
142
-
143
- ### Docker
90
+ ### Option 4: Docker
144
91
 
145
92
  ```bash
146
93
  docker compose up -d
@@ -150,6 +97,52 @@ Data is persisted via Docker volumes (`app-data`, `app-workspace`).
150
97
 
151
98
  ---
152
99
 
100
+ ## 🧬 Why IdeaCo?
101
+
102
+ Most agent frameworks create **stateless workflows**. IdeaCo manages **long-living AI employees with memory, personality, and social bonds**.
103
+
104
+ | | Typical Agent Framework | IdeaCo |
105
+ |---|---|---|
106
+ | **Agents** | Ephemeral, per-task | Persistent employees with memory & personality |
107
+ | **Memory** | None or simple RAG | Layered: long-term + short-term + social impressions + rolling summary |
108
+ | **Social** | Agents don't know each other | Employees form opinions, track affinity, and remember coworkers |
109
+ | **Orchestration** | DAG / workflow graph | Company org structure — departments, teams, roles |
110
+ | **Backend** | Single LLM | Mix LLMs + CLI tools (Claude Code, Codex, CodeBuddy) |
111
+ | **Autonomy** | Triggered by code | Employees poll, think, decide to speak or stay silent on their own |
112
+ | **Interface** | Code / YAML | Visual — pixel office, group chats, dashboards |
113
+
114
+ ---
115
+
116
+ ## Architecture
117
+
118
+ ```
119
+ ┌───────────────────────────────────────────────────┐
120
+ │ 👤 User (Boss) │
121
+ ├───────────────────────────────────────────────────┤
122
+ │ 🧑‍💼 Secretary │
123
+ │ Intent Parsing · HR · Task Dispatch · Reports │
124
+ ├───────────────────────────────────────────────────┤
125
+ │ 🏢 Organization │
126
+ │ Company · Department · Team · Requirement │
127
+ ├───────────────────────────────────────────────────┤
128
+ │ 👥 Employee │
129
+ │ Memory · Personality · Skills · Lifecycle │
130
+ ├───────────────────────────────────────────────────┤
131
+ │ 🤖 Agent │
132
+ │ LLM Agent · CLI Agent · Web Agent │
133
+ │ (Unified interface, zero business logic) │
134
+ └───────────────────────────────────────────────────┘
135
+ ```
136
+
137
+ - **Agent** — Pure LLM communication engine. Supports API, CLI, and Web backends behind a single `chat()` interface. Zero business logic.
138
+ - **Employee** — The atomic unit. Wraps an Agent with persistent memory, personality, skills, and autonomous poll-think-reply behavior.
139
+ - **Organization** — Company structure: departments, teams, group chats, requirements workflow.
140
+ - **Secretary** — Boss's AI assistant that understands intent, manages HR, and coordinates departments.
141
+
142
+ > 📖 See [ARCHITECTURE.md](ARCHITECTURE.md) for the full deep-dive — employee lifecycle, memory system design, flow-of-thought pipeline, anti-spam gates, and social memory details.
143
+
144
+ ---
145
+
153
146
  ## ⚙ Configuration
154
147
 
155
148
  ### LLM Providers
@@ -198,9 +191,3 @@ IdeaCo/
198
191
  ├── electron/ # Electron desktop app shell
199
192
  └── package.json
200
193
  ```
201
-
202
- ---
203
-
204
- ## License
205
-
206
- [MIT](LICENSE)
package/bin/ideaco.js CHANGED
@@ -496,6 +496,37 @@ async function openElectron(port) {
496
496
  child.on('exit', (code) => process.exit(code ?? 0));
497
497
  }
498
498
 
499
+ async function handleUiCommand() {
500
+ const pid = readPid();
501
+ const port = readPort() ?? PORT;
502
+
503
+ // Check if service is already running
504
+ if (pid && isPidRunning(pid)) {
505
+ try {
506
+ // Simple check if port is responding
507
+ await new Promise((resolve, reject) => {
508
+ const socket = new net.Socket();
509
+ socket.setTimeout(1000);
510
+ socket.on('connect', () => { socket.destroy(); resolve(); });
511
+ socket.on('timeout', () => { socket.destroy(); reject(new Error('timeout')); });
512
+ socket.on('error', (err) => reject(err));
513
+ socket.connect(port, '127.0.0.1');
514
+ });
515
+
516
+ // Service is running, open Electron directly
517
+ console.log(chalk.cyan(`Opening Electron UI on port ${port}...`));
518
+ await openElectron(port);
519
+ return;
520
+ } catch (e) {
521
+ // Port check failed, service might be dead
522
+ }
523
+ }
524
+
525
+ // Service not running, start it (which will auto-open Electron)
526
+ console.log(chalk.yellow('Service not running. Starting...'));
527
+ await startServer();
528
+ }
529
+
499
530
  function printHelp() {
500
531
  console.log(`
501
532
  ${t('cli.helpTitle')}
@@ -512,8 +543,8 @@ async function main() {
512
543
  if (command === 'stop') return await stopServer();
513
544
  if (command === 'web') return await openWeb();
514
545
  if (command === 'banner') return await runBanner(args[1]);
515
- if (command === 'ui') return await openElectron();
516
- if (command === 'electron') return await openElectron();
546
+ if (command === 'ui') return await handleUiCommand();
547
+ if (command === 'electron') return await handleUiCommand();
517
548
  return printHelp();
518
549
  }
519
550
 
package/next.config.mjs CHANGED
@@ -1,3 +1,5 @@
1
+ import path from 'path';
2
+
1
3
  /** @type {import('next').NextConfig} */
2
4
  const nextConfig = {
3
5
  output: 'standalone', // Required for Docker deployment
@@ -11,6 +13,11 @@ const nextConfig = {
11
13
  ],
12
14
  },
13
15
  webpack: (config, { isServer }) => {
16
+ config.resolve = config.resolve || {};
17
+ config.resolve.alias = {
18
+ ...(config.resolve.alias || {}),
19
+ '@': path.resolve(process.cwd(), 'src'),
20
+ };
14
21
  if (isServer) {
15
22
  // 将可选依赖标记为 external,避免 webpack 尝试解析/打包它们
16
23
  const optionalDeps = ['puppeteer', 'puppeteer-core', 'pdf-parse', 'openai'];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ideaco",
3
- "version": "1.1.6",
3
+ "version": "1.1.7",
4
4
  "description": "Idea Unlimited - An LLM-powered AI enterprise simulator where you boss around AI employees",
5
5
  "author": {
6
6
  "name": "ymssx",
Binary file