tycono 0.1.96-beta.3 → 0.1.96-beta.5

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
@@ -1,5 +1,5 @@
1
1
  <p align="center">
2
- <img src=".github/assets/hero-office.png" alt="Tycono — AI Office" width="720" />
2
+ <img src=".github/assets/wave-org-propagation.png" alt="Tycono — CEO dispatches through org hierarchy in real time" width="720" />
3
3
  </p>
4
4
 
5
5
  <h1 align="center">tycono</h1>
@@ -33,6 +33,54 @@ One command. Your AI company is running.
33
33
  npx tycono
34
34
  ```
35
35
 
36
+ ## Core Pillars
37
+
38
+ ### 1. CEO Supervisor — Org-chart orchestration
39
+
40
+ You give one order. The system dispatches through a real hierarchy.
41
+
42
+ ```
43
+ dispatch → watch → relay → quality gate → re-dispatch (if needed)
44
+ ```
45
+
46
+ CEO delegates to C-levels, C-levels dispatch to their teams. Authority is enforced — engineers can't make CEO decisions, PMs can't merge code. The org chart isn't decoration, it's the execution engine.
47
+
48
+ <p align="center">
49
+ <img src=".github/assets/wave-org-propagation.png" alt="Wave Center — org propagation with real-time status" width="640" />
50
+ </p>
51
+
52
+ ### 2. Observability — See everything, intervene anytime
53
+
54
+ Your AI team isn't a black box. Watch every agent work in real time, inject directives mid-execution, and drill down to any level.
55
+
56
+ - **Wave Center** — Org-tree dispatch with real-time streaming
57
+ - **Activity Stream** — Every event logged (dispatches, tool calls, decisions)
58
+ - **CEO Directive** — Change direction while agents are running
59
+ - **Cost Tracking** — Per-role, per-model token breakdown
60
+
61
+ ### 3. Isolation Infrastructure — Agents don't collide
62
+
63
+ Multiple agents working simultaneously without stepping on each other.
64
+
65
+ | Resource | Isolation | Status |
66
+ |----------|-----------|--------|
67
+ | **Code** | Git worktree per session | Designed |
68
+ | **Ports** | Dynamic port registry | ✅ Live |
69
+ | **Browser** | Separate daemon per session | ✅ Live |
70
+ | **Knowledge** | Shared reads, scoped writes | ✅ Live |
71
+
72
+ ### 4. AKB (Pre-K / Post-K) — Knowledge that compounds
73
+
74
+ Every AI tool today: `Plan → Execute → Done`. Knowledge resets. Tycono adds what the industry doesn't have:
75
+
76
+ ```
77
+ Pre-K: Read existing knowledge → Plan grounded in what the company knows
78
+ Execute: Do the work
79
+ Post-K: Extract insights → Cross-link → Register in knowledge graph
80
+ ```
81
+
82
+ Session 50 is dramatically smarter than session 1. Your company learns.
83
+
36
84
  ## Why Tycono?
37
85
 
38
86
  Coding agents simulate **one developer**. Tycono simulates **the entire company**.
@@ -40,11 +88,11 @@ Coding agents simulate **one developer**. Tycono simulates **the entire company*
40
88
  | | Single AI Agent | Tycono |
41
89
  |---|---|---|
42
90
  | **What it runs** | One agent, one context | Multiple roles with org hierarchy |
43
- | **Knowledge** | Resets every session | Compounds forever file-based, cross-linked |
91
+ | **Knowledge** | Resets every session | Compounds forever (AKB Pre-K/Post-K) |
44
92
  | **Authority** | Can do anything (or nothing) | Scoped — each role has clear boundaries |
45
93
  | **Delegation** | Manual prompt chaining | CEO dispatches, org chart routes automatically |
46
94
  | **Scale** | 1 agent | 7 → 700 agents |
47
- | **Visibility** | Terminal output | Isometric office + Slack-style Pro dashboard |
95
+ | **Visibility** | Terminal output | Real-time org tree + activity stream |
48
96
 
49
97
  ## Company-as-Code
50
98
 
@@ -80,33 +128,46 @@ A setup wizard guides you through:
80
128
  - Node.js >= 18
81
129
  - [Anthropic API key](https://console.anthropic.com/) or Claude Max subscription
82
130
 
83
- ## Two Ways to Work
131
+ ## Interfaces
84
132
 
85
- ### Office ViewWatch your AI team
133
+ ### Web DashboardVisual management
86
134
 
87
- An isometric pixel-art office where your AI agents sit at their desks, work, chat, and think. Click any agent to talk to them directly.
135
+ A browser-based dashboard for visual management. Org tree, Wave dispatch, Knowledge graph, Activity stream.
88
136
 
89
137
  <p align="center">
90
- <img src=".github/assets/hero-office.png" alt="Office View" width="640" />
138
+ <img src=".github/assets/hero-office.png" alt="Web Dashboard" width="640" />
91
139
  </p>
92
140
 
93
- - Pixel-art characters with personalities and levels
94
- - Ambient speech bubbles agents think out loud
95
- - Rooms: Leadership, Engineering, Meeting, Knowledge Library
96
- - Edit mode rearrange furniture, customize your office
141
+ - **Wave Center** — selective org-tree dispatch with target checkboxes
142
+ - **Chats** 1:1 conversations with any role, persistent sessions
143
+ - **Knowledge Base** graph/tree/list views, cross-linked documents
144
+ - **Decisions**CEO strategic decision log with full context
97
145
 
98
- ### Pro View Manage your AI company
146
+ ### TUITerminal-native operations *(coming soon)*
99
147
 
100
- A Slack-style professional dashboard for serious work. Chats, Wave dispatch, Decisions log, Knowledge graph.
148
+ For developers who live in the terminal. A k9s/lazygit-style multi-panel TUI built with [Ink](https://github.com/vadimdemedes/ink).
101
149
 
102
- <p align="center">
103
- <img src=".github/assets/pro-view.png" alt="Pro View" width="640" />
104
- </p>
150
+ ```
151
+ ┌──────────────────────────────────────────────────┐
152
+ │ TYCONO v0.2 │ Wave #37 running │ 3 active │$2.1│
153
+ ├──────────────┬───────────────────────────────────┤
154
+ │ [Org Tree] │ [Real-time Stream] │
155
+ │ CEO │ CTO: "Reviewing architecture..." │
156
+ │ ├ CTO ● │ → dispatch → Engineer │
157
+ │ │ ├ ENG ○ │ CBO: "Market analysis done" ✓ │
158
+ │ │ └ QA ○ │ │
159
+ │ └ CBO ● │ │
160
+ ├──────────────┴───────────────────────────────────┤
161
+ │ > wave "Write the Q1 strategy report" │
162
+ └──────────────────────────────────────────────────┘
163
+ ```
105
164
 
106
- - **Wave Center** — selective org-tree dispatch with target checkboxes
107
- - **Chats** 1:1 conversations with any role, persistent sessions
108
- - **Knowledge Base** graph/tree/list views, 194+ cross-linked documents
109
- - **Decisions** — CEO strategic decision log with full context
165
+ ```bash
166
+ npx tycono --tui # Terminal mode (coming soon)
167
+ npx tycono # Web dashboard (current)
168
+ ```
169
+
170
+ Same API server, same engine — just a different frontend. Use what fits your workflow.
110
171
 
111
172
  ## Key Features
112
173
 
@@ -130,10 +191,6 @@ Every task produces knowledge. Cross-linked Markdown documents that grow with ev
130
191
 
131
192
  Each role has scoped authority defined in `role.yaml`. Engineers can't make CEO decisions. PMs can't merge code. The org chart isn't decoration — it's enforcement.
132
193
 
133
- ### Level System
134
-
135
- Roles gain XP from completed work. Level up unlocks accessories and reflects experience. Your CTO at Lv.14 has seen things your new intern hasn't.
136
-
137
194
  ### Local-First, BYOK
138
195
 
139
196
  Everything runs on your machine. Your data never leaves. Bring your own Anthropic API key — no middleman, no telemetry, no tracking.
@@ -181,7 +238,8 @@ your-company/
181
238
  ## CLI Usage
182
239
 
183
240
  ```bash
184
- npx tycono # Start server + open dashboard
241
+ npx tycono # Start server + web dashboard
242
+ npx tycono --tui # Terminal UI (coming soon)
185
243
  npx tycono --help # Show help
186
244
  npx tycono --version # Show version
187
245
  ```
@@ -194,6 +252,17 @@ npx tycono --version # Show version
194
252
  | `PORT` | Server port | auto-detect |
195
253
  | `COMPANY_ROOT` | Company directory | current directory |
196
254
 
255
+ ## Roadmap
256
+
257
+ - [x] Web dashboard (Office + Pro views)
258
+ - [x] CEO Wave dispatch with org-tree targeting
259
+ - [x] AKB — Pre-K / Post-K knowledge loop
260
+ - [x] Port Registry for multi-agent isolation
261
+ - [ ] **TUI mode** — terminal-native multi-panel interface
262
+ - [ ] Git worktree isolation per agent session
263
+ - [ ] Desktop app (.dmg / .exe) — background execution, system notifications
264
+ - [ ] Multi-LLM support (OpenAI, local models)
265
+
197
266
  ## Built with Tycono
198
267
 
199
268
  This isn't a demo. Tycono's own landing page, documentation, and knowledge base were built by AI agents running inside Tycono. The PM wrote the PRD. The CTO reviewed architecture. The Designer created UX specs. The Engineer implemented every section.
package/bin/tycono.ts CHANGED
@@ -213,6 +213,17 @@ async function startServerForTui(): Promise<void> {
213
213
  const port = process.env.PORT ? Number(process.env.PORT) : await findFreePort();
214
214
  process.env.PORT = String(port);
215
215
 
216
+ // Suppress ALL server logs BEFORE creating server — redirect to file
217
+ const logFile = path.resolve(process.env.COMPANY_ROOT || process.cwd(), '.tycono', 'server.log');
218
+ try { fs.mkdirSync(path.dirname(logFile), { recursive: true }); } catch {}
219
+ const logStream = fs.createWriteStream(logFile, { flags: 'a' });
220
+ const origLog = console.log;
221
+ const origErr = console.error;
222
+ const origWarn = console.warn;
223
+ console.log = (...args: unknown[]) => logStream.write(args.join(' ') + '\n');
224
+ console.error = (...args: unknown[]) => logStream.write('[ERROR] ' + args.join(' ') + '\n');
225
+ console.warn = (...args: unknown[]) => logStream.write('[WARN] ' + args.join(' ') + '\n');
226
+
216
227
  const { createHttpServer } = await import('../src/api/src/create-server.js');
217
228
  const server = createHttpServer();
218
229
 
@@ -222,7 +233,8 @@ async function startServerForTui(): Promise<void> {
222
233
  server.listen(port, host, () => resolve());
223
234
  });
224
235
 
225
- console.log(` API server started on port ${port}`);
236
+ origLog(` API server started on port ${port}`);
237
+ origLog(` Logs: ${logFile}`);
226
238
 
227
239
  // Graceful shutdown
228
240
  const shutdown = () => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tycono",
3
- "version": "0.1.96-beta.3",
3
+ "version": "0.1.96-beta.5",
4
4
  "description": "Build an AI company. Watch them work.",
5
5
  "type": "module",
6
6
  "bin": {
package/src/tui/api.ts CHANGED
@@ -161,7 +161,7 @@ export interface TeamTemplate {
161
161
  id: string;
162
162
  name: string;
163
163
  description: string;
164
- roles: string[];
164
+ roles: Array<string | { id: string; name: string; level?: string }>;
165
165
  }
166
166
 
167
167
  export interface ScaffoldResult {
@@ -76,11 +76,18 @@ export const SetupWizard: React.FC<SetupWizardProps> = ({ onComplete }) => {
76
76
  };
77
77
 
78
78
  const handleCodeDirSubmit = async (value: string) => {
79
- const dir = value.trim() || './code';
79
+ const path = await import('node:path');
80
+ const fs = await import('node:fs');
81
+ const dir = path.resolve(value.trim() || './code');
80
82
  setCodeDir(dir);
81
83
  setStep('creating');
82
84
 
83
85
  try {
86
+ // Ensure code directory exists
87
+ if (!fs.existsSync(dir)) {
88
+ fs.mkdirSync(dir, { recursive: true });
89
+ }
90
+
84
91
  const result = await postSetupScaffold(companyName, selectedTeam?.id ?? 'minimal');
85
92
  setResultPath(result.path ?? '');
86
93
  setResultRoles(result.rolesCreated ?? 0);
@@ -137,7 +144,7 @@ export const SetupWizard: React.FC<SetupWizardProps> = ({ onComplete }) => {
137
144
  {teams.length > 0 ? (
138
145
  <SelectInput
139
146
  items={teams.map((t) => ({
140
- label: `${t.id} ${t.description || t.roles.join(', ')}`,
147
+ label: `${t.id} ${t.roles.map(r => typeof r === 'string' ? r : r.name || r.id).join(', ')}`,
141
148
  value: t.id,
142
149
  }))}
143
150
  onSelect={handleTeamSelect}