tycono 0.1.96-beta.3 → 0.1.96-beta.4
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 +89 -24
- package/bin/tycono.ts +13 -1
- package/package.json +1 -1
- package/src/tui/api.ts +1 -1
- package/src/tui/components/SetupWizard.tsx +9 -2
package/README.md
CHANGED
|
@@ -33,6 +33,50 @@ 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
|
+
### 2. Observability — See everything, intervene anytime
|
|
49
|
+
|
|
50
|
+
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.
|
|
51
|
+
|
|
52
|
+
- **Wave Center** — Org-tree dispatch with real-time streaming
|
|
53
|
+
- **Activity Stream** — Every event logged (dispatches, tool calls, decisions)
|
|
54
|
+
- **CEO Directive** — Change direction while agents are running
|
|
55
|
+
- **Cost Tracking** — Per-role, per-model token breakdown
|
|
56
|
+
|
|
57
|
+
### 3. Isolation Infrastructure — Agents don't collide
|
|
58
|
+
|
|
59
|
+
Multiple agents working simultaneously without stepping on each other.
|
|
60
|
+
|
|
61
|
+
| Resource | Isolation | Status |
|
|
62
|
+
|----------|-----------|--------|
|
|
63
|
+
| **Code** | Git worktree per session | Designed |
|
|
64
|
+
| **Ports** | Dynamic port registry | ✅ Live |
|
|
65
|
+
| **Browser** | Separate daemon per session | ✅ Live |
|
|
66
|
+
| **Knowledge** | Shared reads, scoped writes | ✅ Live |
|
|
67
|
+
|
|
68
|
+
### 4. AKB (Pre-K / Post-K) — Knowledge that compounds
|
|
69
|
+
|
|
70
|
+
Every AI tool today: `Plan → Execute → Done`. Knowledge resets. Tycono adds what the industry doesn't have:
|
|
71
|
+
|
|
72
|
+
```
|
|
73
|
+
Pre-K: Read existing knowledge → Plan grounded in what the company knows
|
|
74
|
+
Execute: Do the work
|
|
75
|
+
Post-K: Extract insights → Cross-link → Register in knowledge graph
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
Session 50 is dramatically smarter than session 1. Your company learns.
|
|
79
|
+
|
|
36
80
|
## Why Tycono?
|
|
37
81
|
|
|
38
82
|
Coding agents simulate **one developer**. Tycono simulates **the entire company**.
|
|
@@ -40,11 +84,11 @@ Coding agents simulate **one developer**. Tycono simulates **the entire company*
|
|
|
40
84
|
| | Single AI Agent | Tycono |
|
|
41
85
|
|---|---|---|
|
|
42
86
|
| **What it runs** | One agent, one context | Multiple roles with org hierarchy |
|
|
43
|
-
| **Knowledge** | Resets every session | Compounds forever
|
|
87
|
+
| **Knowledge** | Resets every session | Compounds forever (AKB Pre-K/Post-K) |
|
|
44
88
|
| **Authority** | Can do anything (or nothing) | Scoped — each role has clear boundaries |
|
|
45
89
|
| **Delegation** | Manual prompt chaining | CEO dispatches, org chart routes automatically |
|
|
46
90
|
| **Scale** | 1 agent | 7 → 700 agents |
|
|
47
|
-
| **Visibility** | Terminal output |
|
|
91
|
+
| **Visibility** | Terminal output | Real-time org tree + activity stream |
|
|
48
92
|
|
|
49
93
|
## Company-as-Code
|
|
50
94
|
|
|
@@ -80,33 +124,46 @@ A setup wizard guides you through:
|
|
|
80
124
|
- Node.js >= 18
|
|
81
125
|
- [Anthropic API key](https://console.anthropic.com/) or Claude Max subscription
|
|
82
126
|
|
|
83
|
-
##
|
|
127
|
+
## Interfaces
|
|
84
128
|
|
|
85
|
-
###
|
|
129
|
+
### Web Dashboard — Visual management
|
|
86
130
|
|
|
87
|
-
|
|
131
|
+
A browser-based dashboard for visual management. Org tree, Wave dispatch, Knowledge graph, Activity stream.
|
|
88
132
|
|
|
89
133
|
<p align="center">
|
|
90
|
-
<img src=".github/assets/hero-office.png" alt="
|
|
134
|
+
<img src=".github/assets/hero-office.png" alt="Web Dashboard" width="640" />
|
|
91
135
|
</p>
|
|
92
136
|
|
|
93
|
-
-
|
|
94
|
-
-
|
|
95
|
-
-
|
|
96
|
-
-
|
|
137
|
+
- **Wave Center** — selective org-tree dispatch with target checkboxes
|
|
138
|
+
- **Chats** — 1:1 conversations with any role, persistent sessions
|
|
139
|
+
- **Knowledge Base** — graph/tree/list views, cross-linked documents
|
|
140
|
+
- **Decisions** — CEO strategic decision log with full context
|
|
97
141
|
|
|
98
|
-
###
|
|
142
|
+
### TUI — Terminal-native operations *(coming soon)*
|
|
99
143
|
|
|
100
|
-
|
|
144
|
+
For developers who live in the terminal. A k9s/lazygit-style multi-panel TUI built with [Ink](https://github.com/vadimdemedes/ink).
|
|
101
145
|
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
146
|
+
```
|
|
147
|
+
┌──────────────────────────────────────────────────┐
|
|
148
|
+
│ TYCONO v0.2 │ Wave #37 running │ 3 active │$2.1│
|
|
149
|
+
├──────────────┬───────────────────────────────────┤
|
|
150
|
+
│ [Org Tree] │ [Real-time Stream] │
|
|
151
|
+
│ CEO │ CTO: "Reviewing architecture..." │
|
|
152
|
+
│ ├ CTO ● │ → dispatch → Engineer │
|
|
153
|
+
│ │ ├ ENG ○ │ CBO: "Market analysis done" ✓ │
|
|
154
|
+
│ │ └ QA ○ │ │
|
|
155
|
+
│ └ CBO ● │ │
|
|
156
|
+
├──────────────┴───────────────────────────────────┤
|
|
157
|
+
│ > wave "Write the Q1 strategy report" │
|
|
158
|
+
└──────────────────────────────────────────────────┘
|
|
159
|
+
```
|
|
105
160
|
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
161
|
+
```bash
|
|
162
|
+
npx tycono --tui # Terminal mode (coming soon)
|
|
163
|
+
npx tycono # Web dashboard (current)
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
Same API server, same engine — just a different frontend. Use what fits your workflow.
|
|
110
167
|
|
|
111
168
|
## Key Features
|
|
112
169
|
|
|
@@ -130,10 +187,6 @@ Every task produces knowledge. Cross-linked Markdown documents that grow with ev
|
|
|
130
187
|
|
|
131
188
|
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
189
|
|
|
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
190
|
### Local-First, BYOK
|
|
138
191
|
|
|
139
192
|
Everything runs on your machine. Your data never leaves. Bring your own Anthropic API key — no middleman, no telemetry, no tracking.
|
|
@@ -181,7 +234,8 @@ your-company/
|
|
|
181
234
|
## CLI Usage
|
|
182
235
|
|
|
183
236
|
```bash
|
|
184
|
-
npx tycono # Start server +
|
|
237
|
+
npx tycono # Start server + web dashboard
|
|
238
|
+
npx tycono --tui # Terminal UI (coming soon)
|
|
185
239
|
npx tycono --help # Show help
|
|
186
240
|
npx tycono --version # Show version
|
|
187
241
|
```
|
|
@@ -194,6 +248,17 @@ npx tycono --version # Show version
|
|
|
194
248
|
| `PORT` | Server port | auto-detect |
|
|
195
249
|
| `COMPANY_ROOT` | Company directory | current directory |
|
|
196
250
|
|
|
251
|
+
## Roadmap
|
|
252
|
+
|
|
253
|
+
- [x] Web dashboard (Office + Pro views)
|
|
254
|
+
- [x] CEO Wave dispatch with org-tree targeting
|
|
255
|
+
- [x] AKB — Pre-K / Post-K knowledge loop
|
|
256
|
+
- [x] Port Registry for multi-agent isolation
|
|
257
|
+
- [ ] **TUI mode** — terminal-native multi-panel interface
|
|
258
|
+
- [ ] Git worktree isolation per agent session
|
|
259
|
+
- [ ] Desktop app (.dmg / .exe) — background execution, system notifications
|
|
260
|
+
- [ ] Multi-LLM support (OpenAI, local models)
|
|
261
|
+
|
|
197
262
|
## Built with Tycono
|
|
198
263
|
|
|
199
264
|
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
|
@@ -222,7 +222,19 @@ async function startServerForTui(): Promise<void> {
|
|
|
222
222
|
server.listen(port, host, () => resolve());
|
|
223
223
|
});
|
|
224
224
|
|
|
225
|
-
|
|
225
|
+
// Suppress API server logs in TUI mode — redirect to file
|
|
226
|
+
const logFile = path.resolve(process.env.COMPANY_ROOT || process.cwd(), '.tycono', 'server.log');
|
|
227
|
+
try { fs.mkdirSync(path.dirname(logFile), { recursive: true }); } catch {}
|
|
228
|
+
const logStream = fs.createWriteStream(logFile, { flags: 'a' });
|
|
229
|
+
const origLog = console.log;
|
|
230
|
+
const origErr = console.error;
|
|
231
|
+
const origWarn = console.warn;
|
|
232
|
+
console.log = (...args: unknown[]) => logStream.write(args.join(' ') + '\n');
|
|
233
|
+
console.error = (...args: unknown[]) => logStream.write('[ERROR] ' + args.join(' ') + '\n');
|
|
234
|
+
console.warn = (...args: unknown[]) => logStream.write('[WARN] ' + args.join(' ') + '\n');
|
|
235
|
+
|
|
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
package/src/tui/api.ts
CHANGED
|
@@ -76,11 +76,18 @@ export const SetupWizard: React.FC<SetupWizardProps> = ({ onComplete }) => {
|
|
|
76
76
|
};
|
|
77
77
|
|
|
78
78
|
const handleCodeDirSubmit = async (value: string) => {
|
|
79
|
-
const
|
|
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.
|
|
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}
|