@otto-assistant/otto 0.1.0 → 0.1.2
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 +142 -0
- package/dist/cli.js +406 -12
- package/dist/cli.js.map +1 -1
- package/dist/config.test.js +9 -9
- package/dist/config.test.js.map +1 -1
- package/dist/detect.test.js +4 -3
- package/dist/detect.test.js.map +1 -1
- package/dist/docker.d.ts +7 -0
- package/dist/docker.d.ts.map +1 -0
- package/dist/docker.js +17 -0
- package/dist/docker.js.map +1 -0
- package/dist/docker.test.d.ts +2 -0
- package/dist/docker.test.d.ts.map +1 -0
- package/dist/docker.test.js +12 -0
- package/dist/docker.test.js.map +1 -0
- package/dist/health.d.ts +4 -0
- package/dist/health.d.ts.map +1 -1
- package/dist/health.js +40 -1
- package/dist/health.js.map +1 -1
- package/dist/health.test.js +21 -2
- package/dist/health.test.js.map +1 -1
- package/dist/index.d.ts +11 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -2
- package/dist/index.js.map +1 -1
- package/dist/installer.test.js +2 -2
- package/dist/installer.test.js.map +1 -1
- package/dist/lifecycle.d.ts +6 -0
- package/dist/lifecycle.d.ts.map +1 -1
- package/dist/lifecycle.js +26 -11
- package/dist/lifecycle.js.map +1 -1
- package/dist/lifecycle.test.js +5 -4
- package/dist/lifecycle.test.js.map +1 -1
- package/dist/manifest.js +4 -4
- package/dist/manifest.js.map +1 -1
- package/dist/skills-baseline.d.ts +7 -0
- package/dist/skills-baseline.d.ts.map +1 -0
- package/dist/skills-baseline.js +9 -0
- package/dist/skills-baseline.js.map +1 -0
- package/dist/skills.d.ts +110 -0
- package/dist/skills.d.ts.map +1 -0
- package/dist/skills.js +429 -0
- package/dist/skills.js.map +1 -0
- package/dist/skills.test.d.ts +2 -0
- package/dist/skills.test.d.ts.map +1 -0
- package/dist/skills.test.js +416 -0
- package/dist/skills.test.js.map +1 -0
- package/dist/tenant.d.ts +13 -0
- package/dist/tenant.d.ts.map +1 -0
- package/dist/tenant.js +105 -0
- package/dist/tenant.js.map +1 -0
- package/dist/tenant.test.d.ts +2 -0
- package/dist/tenant.test.d.ts.map +1 -0
- package/dist/tenant.test.js +37 -0
- package/dist/tenant.test.js.map +1 -0
- package/package.json +15 -5
- package/src/cli.ts +457 -12
- package/src/config.test.ts +9 -9
- package/src/detect.test.ts +4 -3
- package/src/docker.test.ts +12 -0
- package/src/docker.ts +23 -0
- package/src/health.test.ts +23 -1
- package/src/health.ts +45 -1
- package/src/index.ts +37 -3
- package/src/installer.test.ts +2 -2
- package/src/lifecycle.test.ts +6 -5
- package/src/lifecycle.ts +29 -10
- package/src/manifest.ts +4 -4
- package/src/skills-baseline.ts +14 -0
- package/src/skills.test.ts +503 -0
- package/src/skills.ts +512 -0
- package/src/tenant.test.ts +49 -0
- package/src/tenant.ts +120 -0
package/README.md
ADDED
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
# Otto
|
|
2
|
+
|
|
3
|
+
**Otto** is a production-focused wrapper that turns `opencode-ai` + `bridge` + `mempalace` into one fast, repeatable runtime for AI coding in Discord and terminal flows.
|
|
4
|
+
|
|
5
|
+
It is built for teams and solo builders who want:
|
|
6
|
+
|
|
7
|
+
- **Speed**: prebuilt Docker images and one-command onboarding.
|
|
8
|
+
- **Intelligence**: persistent memory via `mempalace`.
|
|
9
|
+
- **Reliability**: pinned stable channel + edge channel with CI publishing.
|
|
10
|
+
- **Low friction**: run locally or in Docker with the same behavior.
|
|
11
|
+
|
|
12
|
+
## Why Otto
|
|
13
|
+
|
|
14
|
+
Most agent stacks break because setup is spread across tools, configs, and machine-specific assumptions.
|
|
15
|
+
Otto standardizes this into a single operator experience:
|
|
16
|
+
|
|
17
|
+
- installs and upgrades required global CLIs,
|
|
18
|
+
- merges required plugins into `opencode` config,
|
|
19
|
+
- enforces safe runtime defaults,
|
|
20
|
+
- supports tenant-oriented Docker operation,
|
|
21
|
+
- ships stable and edge Docker channels to GHCR.
|
|
22
|
+
|
|
23
|
+
## What Otto includes
|
|
24
|
+
|
|
25
|
+
Otto orchestrates three upstream components without patching their source code:
|
|
26
|
+
|
|
27
|
+
- `opencode-ai` — coding agent runtime
|
|
28
|
+
- `@otto-assistant/bridge` — Discord bridge process
|
|
29
|
+
- `mempalace` — persistent memory plugin for long-lived context
|
|
30
|
+
|
|
31
|
+
## Release channels
|
|
32
|
+
|
|
33
|
+
Docker images are published to GHCR under:
|
|
34
|
+
|
|
35
|
+
- `ghcr.io/otto-assistant/otto:edge` (latest from `master`)
|
|
36
|
+
- `ghcr.io/otto-assistant/otto:stable` (latest stable tag)
|
|
37
|
+
- `ghcr.io/otto-assistant/otto:latest` (stable release alias)
|
|
38
|
+
- `ghcr.io/otto-assistant/otto:vX.Y.Z` (versioned stable tags)
|
|
39
|
+
|
|
40
|
+
## Quick start (Docker)
|
|
41
|
+
|
|
42
|
+
### 1) Pull image
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
docker pull ghcr.io/otto-assistant/otto:edge
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
For stable use:
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
docker pull ghcr.io/otto-assistant/otto:stable
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### 2) Run container
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
docker run --rm -it \
|
|
58
|
+
-v "$HOME/.config/opencode:/root/.config/opencode" \
|
|
59
|
+
-v "$HOME/.kimaki:/root/.kimaki" \
|
|
60
|
+
-v "$PWD:/workspace" \
|
|
61
|
+
ghcr.io/otto-assistant/otto:edge
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
By default, image entrypoint starts `bridge`.
|
|
65
|
+
|
|
66
|
+
## Quick start (CLI from source)
|
|
67
|
+
|
|
68
|
+
### Requirements
|
|
69
|
+
|
|
70
|
+
- Node.js 22+
|
|
71
|
+
- pnpm
|
|
72
|
+
|
|
73
|
+
### Build and install
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
pnpm install
|
|
77
|
+
pnpm build
|
|
78
|
+
npm install -g .
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
### Verify
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
otto status
|
|
85
|
+
otto doctor
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
## Simple onboarding flow
|
|
89
|
+
|
|
90
|
+
1. Install Otto (Docker or global CLI).
|
|
91
|
+
2. Run `otto install` once.
|
|
92
|
+
3. Confirm health with `otto doctor`.
|
|
93
|
+
4. Start your bridge/runtime.
|
|
94
|
+
5. Begin coding sessions with persistent memory enabled.
|
|
95
|
+
|
|
96
|
+
## Core commands
|
|
97
|
+
|
|
98
|
+
```bash
|
|
99
|
+
otto install
|
|
100
|
+
otto upgrade stable
|
|
101
|
+
otto upgrade latest
|
|
102
|
+
otto status
|
|
103
|
+
otto doctor
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
## Stable upgrade policy
|
|
107
|
+
|
|
108
|
+
- **Edge**: follows `master` continuously.
|
|
109
|
+
- **Stable**: published on git tags `vX.Y.Z`.
|
|
110
|
+
- Use `otto upgrade stable` for predictable pinned versions.
|
|
111
|
+
- Use `otto upgrade latest` for newest upstream packages.
|
|
112
|
+
|
|
113
|
+
## Production notes
|
|
114
|
+
|
|
115
|
+
- Keep `~/.config/opencode` and `~/.kimaki` persistent.
|
|
116
|
+
- If runtime dependencies or config changed, restart bridge.
|
|
117
|
+
- Use unique compose project names per tenant/environment.
|
|
118
|
+
|
|
119
|
+
## Developer workflow
|
|
120
|
+
|
|
121
|
+
```bash
|
|
122
|
+
pnpm build
|
|
123
|
+
pnpm test
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
Then push to `master` for edge Docker publish, or push `vX.Y.Z` tag for stable publish.
|
|
127
|
+
|
|
128
|
+
## Security and operational model
|
|
129
|
+
|
|
130
|
+
- no forceful mutation of upstream source packages,
|
|
131
|
+
- explicit version pinning for stable path,
|
|
132
|
+
- deterministic Docker builds for CI/CD,
|
|
133
|
+
- memory-enabled sessions through plugin orchestration.
|
|
134
|
+
|
|
135
|
+
## Project links
|
|
136
|
+
|
|
137
|
+
- Repository: https://github.com/otto-assistant/otto
|
|
138
|
+
- Docker image: https://github.com/otto-assistant/otto/pkgs/container/otto
|
|
139
|
+
|
|
140
|
+
---
|
|
141
|
+
|
|
142
|
+
Otto is optimized for one goal: **ship faster with AI agents, without losing control of runtime quality and memory continuity.**
|
package/dist/cli.js
CHANGED
|
@@ -3,9 +3,15 @@ import { MANIFEST } from "./manifest.js";
|
|
|
3
3
|
import { getInstalledVersion } from "./detect.js";
|
|
4
4
|
import { readOpenCodeConfigState, writeOpenCodeConfig, ensureAgentMemoryConfig, ensureSubagentThreadSkill, mergePlugins, readOttoConfig, writeOttoConfig, buildSubagentThreadPolicy, mergeAgentPrompts, } from "./config.js";
|
|
5
5
|
import { installMissingPackages, upgradePackage, planStableUpgrades } from "./installer.js";
|
|
6
|
+
import fs from "node:fs";
|
|
7
|
+
import path from "node:path";
|
|
6
8
|
import { hasKimakiBinary, restartKimaki } from "./lifecycle.js";
|
|
7
|
-
import { checkPackagePresence, checkConfigHealth, checkDirectoryHealth } from "./health.js";
|
|
9
|
+
import { checkPackagePresence, checkConfigHealth, checkDirectoryHealth, checkTenantHealth } from "./health.js";
|
|
8
10
|
import { syncUpstreams } from "./sync.js";
|
|
11
|
+
import { runCompose } from "./docker.js";
|
|
12
|
+
import { ensureTenantScaffold, resolveTenantMode } from "./tenant.js";
|
|
13
|
+
import { searchSkills, getAllIndexedSkills, listInstalledSkills, installSkillFromIndex, installSkillsBaseline, removeSkill, ensureSkillsIndex, getConfiguredRepos, loadSkillsIndex, } from "./skills.js";
|
|
14
|
+
import { GENTLEMAN_SKILLS_BASELINE } from "./skills-baseline.js";
|
|
9
15
|
const args = process.argv.slice(2);
|
|
10
16
|
const command = args[0] ?? "";
|
|
11
17
|
const subCommand = args[1] ?? "";
|
|
@@ -58,7 +64,22 @@ async function cmdInstall() {
|
|
|
58
64
|
if (skillCreated) {
|
|
59
65
|
console.log("Created otto-subagent-threads skill");
|
|
60
66
|
}
|
|
61
|
-
// 5.
|
|
67
|
+
// 5. Install Otto-core skills from skills repo (best-effort)
|
|
68
|
+
try {
|
|
69
|
+
ensureSkillsIndex();
|
|
70
|
+
const allSkills = getAllIndexedSkills();
|
|
71
|
+
const installedSkillNames = new Set(listInstalledSkills().map((s) => s.name));
|
|
72
|
+
const coreSkills = allSkills.filter((s) => s.source === "otto-assistant/skills" && !installedSkillNames.has(s.name));
|
|
73
|
+
for (const skill of coreSkills) {
|
|
74
|
+
const ok = installSkillFromIndex(skill.name);
|
|
75
|
+
if (ok)
|
|
76
|
+
console.log(`Installed skill: ${skill.name}`);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
catch {
|
|
80
|
+
console.log("⚠ Could not fetch skills from GitHub (offline?). Skipping.");
|
|
81
|
+
}
|
|
82
|
+
// 6. Restart kimaki if needed — but NOT if running inside kimaki
|
|
62
83
|
// (kimaki restart kills the current opencode session)
|
|
63
84
|
const runningInsideKimaki = !!process.env.KIMAKI;
|
|
64
85
|
if (configChanged || installed.length > 0) {
|
|
@@ -166,6 +187,18 @@ async function cmdStatus() {
|
|
|
166
187
|
console.log(` ask before thread delete: ${configHealth.subagentThreadsAskBeforeDelete ? "yes" : "no"}`);
|
|
167
188
|
console.log(` auto delete thread on complete: ${configHealth.subagentThreadsAutoDelete ? "yes" : "no"}`);
|
|
168
189
|
console.log(` kimaki process: ${configHealth.kimakiRunning ? "running" : "not running"}`);
|
|
190
|
+
console.log("\nSkills:");
|
|
191
|
+
const skillsInstalled = listInstalledSkills();
|
|
192
|
+
console.log(` installed: ${skillsInstalled.length > 0 ? skillsInstalled.map((s) => s.name).join(", ") : "(none)"}`);
|
|
193
|
+
try {
|
|
194
|
+
const index = loadSkillsIndex();
|
|
195
|
+
const repoCount = Object.keys(index.repos).length;
|
|
196
|
+
const totalIndexed = getAllIndexedSkills().length;
|
|
197
|
+
console.log(` indexed: ${totalIndexed} skills from ${repoCount} repos`);
|
|
198
|
+
}
|
|
199
|
+
catch {
|
|
200
|
+
console.log(" indexed: (unavailable)");
|
|
201
|
+
}
|
|
169
202
|
}
|
|
170
203
|
async function cmdDoctor() {
|
|
171
204
|
console.log("Otto doctor\n");
|
|
@@ -188,10 +221,10 @@ async function cmdDoctor() {
|
|
|
188
221
|
hasErrors = true;
|
|
189
222
|
}
|
|
190
223
|
if (configHealth.memoryPluginEnabled) {
|
|
191
|
-
console.log(" ✓
|
|
224
|
+
console.log(" ✓ mempalace plugin enabled");
|
|
192
225
|
}
|
|
193
226
|
else {
|
|
194
|
-
console.log(" ✗
|
|
227
|
+
console.log(" ✗ mempalace plugin NOT enabled — run `otto install`");
|
|
195
228
|
hasErrors = true;
|
|
196
229
|
}
|
|
197
230
|
if (configHealth.subagentPolicyInjected) {
|
|
@@ -215,8 +248,348 @@ async function cmdDoctor() {
|
|
|
215
248
|
if (d.status === "error")
|
|
216
249
|
hasErrors = true;
|
|
217
250
|
}
|
|
251
|
+
console.log("\nChecking skills...");
|
|
252
|
+
const skillsInstalled = listInstalledSkills();
|
|
253
|
+
if (skillsInstalled.length > 0) {
|
|
254
|
+
console.log(` ✓ ${skillsInstalled.length} skill(s) installed`);
|
|
255
|
+
}
|
|
256
|
+
else {
|
|
257
|
+
console.log(" ⚠ No skills installed — run `otto skills add --all`");
|
|
258
|
+
}
|
|
259
|
+
try {
|
|
260
|
+
const totalIndexed = getAllIndexedSkills().length;
|
|
261
|
+
if (totalIndexed > 0) {
|
|
262
|
+
console.log(` ✓ Skills index available (${totalIndexed} skills)`);
|
|
263
|
+
}
|
|
264
|
+
else {
|
|
265
|
+
console.log(" ⚠ Skills index empty — run `otto skills update`");
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
catch {
|
|
269
|
+
console.log(" ⚠ Skills index unavailable");
|
|
270
|
+
}
|
|
218
271
|
console.log(hasErrors ? "\n✗ Issues found. Run `otto install` to fix." : "\n✓ All checks passed!");
|
|
219
272
|
}
|
|
273
|
+
// ---------------------------------------------------------------------------
|
|
274
|
+
// otto skills sub-commands
|
|
275
|
+
// ---------------------------------------------------------------------------
|
|
276
|
+
async function cmdSkills(subArgs) {
|
|
277
|
+
const skillCommand = subArgs[0] ?? "";
|
|
278
|
+
switch (skillCommand) {
|
|
279
|
+
case "list":
|
|
280
|
+
cmdSkillsList();
|
|
281
|
+
break;
|
|
282
|
+
case "search": {
|
|
283
|
+
const query = subArgs.slice(1).join(" ");
|
|
284
|
+
if (!query) {
|
|
285
|
+
console.log("Usage: otto skills search <query>");
|
|
286
|
+
process.exit(1);
|
|
287
|
+
}
|
|
288
|
+
cmdSkillsSearch(query);
|
|
289
|
+
break;
|
|
290
|
+
}
|
|
291
|
+
case "browse":
|
|
292
|
+
cmdSkillsBrowse();
|
|
293
|
+
break;
|
|
294
|
+
case "add": {
|
|
295
|
+
const arg = subArgs[1];
|
|
296
|
+
if (!arg || arg === "--all") {
|
|
297
|
+
await cmdSkillsAddAll();
|
|
298
|
+
}
|
|
299
|
+
else {
|
|
300
|
+
await cmdSkillsAddOne(arg);
|
|
301
|
+
}
|
|
302
|
+
break;
|
|
303
|
+
}
|
|
304
|
+
case "remove": {
|
|
305
|
+
const name = subArgs[1];
|
|
306
|
+
if (!name) {
|
|
307
|
+
console.log("Usage: otto skills remove <name>");
|
|
308
|
+
process.exit(1);
|
|
309
|
+
}
|
|
310
|
+
cmdSkillsRemove(name);
|
|
311
|
+
break;
|
|
312
|
+
}
|
|
313
|
+
case "update":
|
|
314
|
+
cmdSkillsUpdate();
|
|
315
|
+
break;
|
|
316
|
+
case "repos":
|
|
317
|
+
cmdSkillsRepos();
|
|
318
|
+
break;
|
|
319
|
+
default:
|
|
320
|
+
console.log(`Otto skills — discover and install agent skills from public repos
|
|
321
|
+
|
|
322
|
+
Usage:
|
|
323
|
+
otto skills search <query> Search skills by name/description
|
|
324
|
+
otto skills browse Browse all available skills
|
|
325
|
+
otto skills list List installed skills
|
|
326
|
+
otto skills add <name> Install a skill
|
|
327
|
+
otto skills add --all Install all skills from otto-assistant/skills
|
|
328
|
+
otto skills update Refresh skills index from GitHub
|
|
329
|
+
otto skills remove <name> Remove an installed skill
|
|
330
|
+
otto skills repos Show configured skill repositories
|
|
331
|
+
`);
|
|
332
|
+
break;
|
|
333
|
+
}
|
|
334
|
+
}
|
|
335
|
+
function cmdSkillsSearch(query) {
|
|
336
|
+
console.log(`Searching: "${query}"\n`);
|
|
337
|
+
const { refreshed } = ensureSkillsIndex();
|
|
338
|
+
if (refreshed > 0) {
|
|
339
|
+
console.log(`Updated index (${refreshed} repo(s) refreshed).\n`);
|
|
340
|
+
}
|
|
341
|
+
const results = searchSkills(query);
|
|
342
|
+
if (results.length === 0) {
|
|
343
|
+
console.log("No skills found.");
|
|
344
|
+
return;
|
|
345
|
+
}
|
|
346
|
+
for (const skill of results) {
|
|
347
|
+
console.log(` ${skill.name} — ${skill.description}`);
|
|
348
|
+
console.log(` source: ${skill.source}`);
|
|
349
|
+
}
|
|
350
|
+
console.log(`\n${results.length} skill(s) found. Install with: otto skills add <name>`);
|
|
351
|
+
}
|
|
352
|
+
function cmdSkillsBrowse() {
|
|
353
|
+
console.log("Otto skills — browsing all available\n");
|
|
354
|
+
const { refreshed } = ensureSkillsIndex();
|
|
355
|
+
if (refreshed > 0) {
|
|
356
|
+
console.log(`Updated index (${refreshed} repo(s) refreshed).\n`);
|
|
357
|
+
}
|
|
358
|
+
const allSkills = getAllIndexedSkills();
|
|
359
|
+
const installed = new Set(listInstalledSkills().map((s) => s.name));
|
|
360
|
+
// Group by source repo
|
|
361
|
+
const byRepo = {};
|
|
362
|
+
for (const skill of allSkills) {
|
|
363
|
+
if (!byRepo[skill.source])
|
|
364
|
+
byRepo[skill.source] = [];
|
|
365
|
+
byRepo[skill.source].push(skill);
|
|
366
|
+
}
|
|
367
|
+
for (const [repo, skills] of Object.entries(byRepo)) {
|
|
368
|
+
console.log(`${repo} (${skills.length} skills):`);
|
|
369
|
+
for (const skill of skills) {
|
|
370
|
+
const icon = installed.has(skill.name) ? "✓" : "•";
|
|
371
|
+
console.log(` ${icon} ${skill.name} — ${skill.description}`);
|
|
372
|
+
}
|
|
373
|
+
console.log();
|
|
374
|
+
}
|
|
375
|
+
const totalAvailable = allSkills.filter((s) => !installed.has(s.name)).length;
|
|
376
|
+
console.log(`${allSkills.length} total, ${totalAvailable} available to install.`);
|
|
377
|
+
}
|
|
378
|
+
function cmdSkillsList() {
|
|
379
|
+
console.log("Otto skills\n");
|
|
380
|
+
const installed = listInstalledSkills();
|
|
381
|
+
if (installed.length > 0) {
|
|
382
|
+
console.log("Installed:");
|
|
383
|
+
for (const s of installed) {
|
|
384
|
+
console.log(` ✓ ${s.name} — ${s.description}`);
|
|
385
|
+
}
|
|
386
|
+
}
|
|
387
|
+
else {
|
|
388
|
+
console.log("Installed: (none)");
|
|
389
|
+
}
|
|
390
|
+
console.log(`\nUse "otto skills browse" to see all available skills.`);
|
|
391
|
+
console.log(`Use "otto skills search <query>" to search.`);
|
|
392
|
+
}
|
|
393
|
+
async function cmdSkillsAddOne(name) {
|
|
394
|
+
console.log(`Installing skill: ${name}\n`);
|
|
395
|
+
ensureSkillsIndex();
|
|
396
|
+
const success = installSkillFromIndex(name);
|
|
397
|
+
if (!success) {
|
|
398
|
+
console.error(`Error: skill "${name}" not found. Run "otto skills search <query>" to find skills.`);
|
|
399
|
+
process.exit(1);
|
|
400
|
+
}
|
|
401
|
+
console.log(`Installed ${name} → ~/.config/opencode/skills/${name}/`);
|
|
402
|
+
console.log("Done!");
|
|
403
|
+
}
|
|
404
|
+
async function cmdSkillsAddAll() {
|
|
405
|
+
console.log("Installing all skills from otto-assistant/skills...\n");
|
|
406
|
+
ensureSkillsIndex();
|
|
407
|
+
const allSkills = getAllIndexedSkills();
|
|
408
|
+
const ottoSkills = allSkills.filter((s) => s.source === "otto-assistant/skills");
|
|
409
|
+
if (ottoSkills.length === 0) {
|
|
410
|
+
console.log("No skills found in otto-assistant/skills. Check your connection.");
|
|
411
|
+
return;
|
|
412
|
+
}
|
|
413
|
+
const installed = new Set(listInstalledSkills().map((s) => s.name));
|
|
414
|
+
let added = 0;
|
|
415
|
+
for (const skill of ottoSkills) {
|
|
416
|
+
if (installed.has(skill.name)) {
|
|
417
|
+
console.log(` ✓ ${skill.name} (already installed)`);
|
|
418
|
+
continue;
|
|
419
|
+
}
|
|
420
|
+
const success = installSkillFromIndex(skill.name);
|
|
421
|
+
if (success) {
|
|
422
|
+
console.log(` + ${skill.name}`);
|
|
423
|
+
added++;
|
|
424
|
+
}
|
|
425
|
+
else {
|
|
426
|
+
console.log(` ✗ ${skill.name} (failed)`);
|
|
427
|
+
}
|
|
428
|
+
}
|
|
429
|
+
if (added === 0) {
|
|
430
|
+
console.log("\nAll skills already installed.");
|
|
431
|
+
}
|
|
432
|
+
else {
|
|
433
|
+
console.log(`\nInstalled ${added} skill(s).`);
|
|
434
|
+
}
|
|
435
|
+
console.log("Done!");
|
|
436
|
+
}
|
|
437
|
+
function cmdSkillsUpdate() {
|
|
438
|
+
console.log("Refreshing skills index from GitHub...\n");
|
|
439
|
+
const { refreshed, total } = ensureSkillsIndex(0); // force refresh all
|
|
440
|
+
if (refreshed === 0 && total === 0) {
|
|
441
|
+
console.log("No repos configured.");
|
|
442
|
+
return;
|
|
443
|
+
}
|
|
444
|
+
console.log(`Refreshed ${refreshed}/${total} repo(s).`);
|
|
445
|
+
const allSkills = getAllIndexedSkills();
|
|
446
|
+
console.log(`Index now has ${allSkills.length} skills.`);
|
|
447
|
+
console.log("Done!");
|
|
448
|
+
}
|
|
449
|
+
function cmdSkillsRemove(name) {
|
|
450
|
+
console.log(`Removing skill: ${name}\n`);
|
|
451
|
+
const success = removeSkill(name);
|
|
452
|
+
if (!success) {
|
|
453
|
+
console.error(`Error: skill "${name}" is not installed.`);
|
|
454
|
+
process.exit(1);
|
|
455
|
+
}
|
|
456
|
+
console.log(`Removed ${name}.`);
|
|
457
|
+
console.log("Done!");
|
|
458
|
+
}
|
|
459
|
+
function cmdSkillsRepos() {
|
|
460
|
+
console.log("Configured skill repositories:\n");
|
|
461
|
+
const repos = getConfiguredRepos();
|
|
462
|
+
for (const repo of repos) {
|
|
463
|
+
console.log(` ${repo}`);
|
|
464
|
+
}
|
|
465
|
+
console.log(`\n${repos.length} repo(s) configured.`);
|
|
466
|
+
}
|
|
467
|
+
async function cmdTenant(subArgs) {
|
|
468
|
+
const tenantCommand = subArgs[0] ?? "";
|
|
469
|
+
const tenantPathArg = subArgs[1];
|
|
470
|
+
if (tenantCommand === "skills") {
|
|
471
|
+
const action = subArgs[1] ?? "";
|
|
472
|
+
const pathArg = subArgs[2];
|
|
473
|
+
if (action !== "bootstrap" || !pathArg) {
|
|
474
|
+
console.log("Usage: otto tenant skills bootstrap <path>");
|
|
475
|
+
process.exit(1);
|
|
476
|
+
}
|
|
477
|
+
const tenantPath = path.resolve(pathArg);
|
|
478
|
+
const skillsDir = path.join(tenantPath, "memory", "opencode", "skills");
|
|
479
|
+
ensureSkillsIndex();
|
|
480
|
+
const report = installSkillsBaseline(GENTLEMAN_SKILLS_BASELINE, skillsDir);
|
|
481
|
+
console.log(`Skills baseline bootstrap: ${tenantPath}`);
|
|
482
|
+
console.log(` Installed: ${report.installed.length > 0 ? report.installed.join(", ") : "(none)"}`);
|
|
483
|
+
console.log(` Already present: ${report.alreadyPresent.length > 0 ? report.alreadyPresent.join(", ") : "(none)"}`);
|
|
484
|
+
if (report.failed.length > 0) {
|
|
485
|
+
console.log(` Failed: ${report.failed.join(", ")}`);
|
|
486
|
+
process.exitCode = 2;
|
|
487
|
+
}
|
|
488
|
+
else {
|
|
489
|
+
console.log(" Failed: (none)");
|
|
490
|
+
}
|
|
491
|
+
return;
|
|
492
|
+
}
|
|
493
|
+
if (!tenantPathArg) {
|
|
494
|
+
console.log("Usage: otto tenant <init|up|down|status|logs> <path>");
|
|
495
|
+
process.exit(1);
|
|
496
|
+
}
|
|
497
|
+
const tenantPath = path.resolve(tenantPathArg);
|
|
498
|
+
switch (tenantCommand) {
|
|
499
|
+
case "init": {
|
|
500
|
+
const result = ensureTenantScaffold(tenantPath);
|
|
501
|
+
if (result.created.length === 0) {
|
|
502
|
+
console.log(`Tenant scaffold already exists: ${tenantPath}`);
|
|
503
|
+
}
|
|
504
|
+
else {
|
|
505
|
+
console.log(`Tenant scaffold ready: ${tenantPath}`);
|
|
506
|
+
console.log(`Created: ${result.created.join(", ")}`);
|
|
507
|
+
}
|
|
508
|
+
console.log(`
|
|
509
|
+
Next steps — get your tenant running in 3 steps:
|
|
510
|
+
|
|
511
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
512
|
+
Step 1: Create a Discord Bot
|
|
513
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
514
|
+
|
|
515
|
+
1. Open https://discord.com/developers/applications
|
|
516
|
+
2. Click "New Application" → give it a name → Create
|
|
517
|
+
3. Go to "Bot" tab → Click "Reset Token" → Copy the token
|
|
518
|
+
4. Under "Privileged Gateway Intents" enable:
|
|
519
|
+
✅ Message Content Intent
|
|
520
|
+
✅ Server Members Intent (optional)
|
|
521
|
+
5. Go to "OAuth2" tab → "URL Generator"
|
|
522
|
+
Scopes: bot
|
|
523
|
+
Permissions: Send Messages, Read Message History, Add Reactions
|
|
524
|
+
6. Open the generated URL → add bot to your Discord server
|
|
525
|
+
|
|
526
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
527
|
+
Step 2: Configure your tenant
|
|
528
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
529
|
+
|
|
530
|
+
Edit ${tenantPath}/.env with your bot token:
|
|
531
|
+
|
|
532
|
+
KIMAKI_BOT_TOKEN=your-bot-token-here
|
|
533
|
+
|
|
534
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
535
|
+
Step 3: Start your tenant
|
|
536
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
537
|
+
|
|
538
|
+
docker compose -f ${tenantPath}/compose.yml up -d
|
|
539
|
+
|
|
540
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
541
|
+
|
|
542
|
+
Useful commands:
|
|
543
|
+
otto tenant status ${tenantPathArg} — check health
|
|
544
|
+
otto tenant logs ${tenantPathArg} — view logs
|
|
545
|
+
otto tenant down ${tenantPathArg} — stop tenant
|
|
546
|
+
otto tenant skills bootstrap ${tenantPathArg} — install baseline skills
|
|
547
|
+
`);
|
|
548
|
+
return;
|
|
549
|
+
}
|
|
550
|
+
case "up": {
|
|
551
|
+
const mode = resolveTenantMode(process.env.OTTO_MODE);
|
|
552
|
+
if (mode === "admin") {
|
|
553
|
+
console.log("⚠ OTTO_MODE=admin enabled: tenant has elevated runtime profile.");
|
|
554
|
+
}
|
|
555
|
+
runCompose(tenantPath, ["up", "-d"]);
|
|
556
|
+
return;
|
|
557
|
+
}
|
|
558
|
+
case "down":
|
|
559
|
+
runCompose(tenantPath, ["down"]);
|
|
560
|
+
return;
|
|
561
|
+
case "logs": {
|
|
562
|
+
const follow = subArgs.includes("--follow") ? ["--follow"] : [];
|
|
563
|
+
runCompose(tenantPath, ["logs", ...follow]);
|
|
564
|
+
return;
|
|
565
|
+
}
|
|
566
|
+
case "status": {
|
|
567
|
+
const health = checkTenantHealth({ tenantPath });
|
|
568
|
+
console.log(`Tenant status: ${tenantPath}`);
|
|
569
|
+
for (const item of health) {
|
|
570
|
+
const icon = item.status === "ok" ? "✓" : item.status === "warn" ? "⚠" : "✗";
|
|
571
|
+
console.log(` ${icon} ${item.name}: ${item.message}`);
|
|
572
|
+
}
|
|
573
|
+
const composeExists = fs.existsSync(path.join(tenantPath, "compose.yml"));
|
|
574
|
+
const skipComposePs = process.env.OTTO_SKIP_COMPOSE_PS === "1";
|
|
575
|
+
if (composeExists && !skipComposePs) {
|
|
576
|
+
try {
|
|
577
|
+
runCompose(tenantPath, ["ps"]);
|
|
578
|
+
}
|
|
579
|
+
catch {
|
|
580
|
+
console.log(" ⚠ docker compose ps failed");
|
|
581
|
+
}
|
|
582
|
+
}
|
|
583
|
+
return;
|
|
584
|
+
}
|
|
585
|
+
default:
|
|
586
|
+
console.log("Usage: otto tenant <init|up|down|status|logs> <path> | otto tenant skills bootstrap <path>");
|
|
587
|
+
process.exit(1);
|
|
588
|
+
}
|
|
589
|
+
}
|
|
590
|
+
// ---------------------------------------------------------------------------
|
|
591
|
+
// Main router
|
|
592
|
+
// ---------------------------------------------------------------------------
|
|
220
593
|
async function main() {
|
|
221
594
|
switch (command) {
|
|
222
595
|
case "install":
|
|
@@ -234,17 +607,38 @@ async function main() {
|
|
|
234
607
|
case "sync":
|
|
235
608
|
await syncUpstreams();
|
|
236
609
|
break;
|
|
610
|
+
case "skills":
|
|
611
|
+
await cmdSkills(args.slice(1));
|
|
612
|
+
break;
|
|
613
|
+
case "tenant":
|
|
614
|
+
await cmdTenant(args.slice(1));
|
|
615
|
+
break;
|
|
237
616
|
default:
|
|
238
|
-
console.log(`Otto — terminal UI distribution for opencode + kimaki +
|
|
617
|
+
console.log(`Otto — terminal UI distribution for opencode + kimaki + mempalace
|
|
239
618
|
|
|
240
619
|
Usage:
|
|
241
|
-
otto
|
|
242
|
-
otto
|
|
243
|
-
otto
|
|
244
|
-
otto
|
|
245
|
-
otto
|
|
246
|
-
otto
|
|
247
|
-
|
|
620
|
+
otto tenant init <path> Create compose-first tenant scaffold
|
|
621
|
+
otto tenant up <path> Start tenant with docker compose
|
|
622
|
+
otto tenant down <path> Stop tenant with docker compose
|
|
623
|
+
otto tenant status <path> Show tenant preflight + compose status
|
|
624
|
+
otto tenant logs <path> Show tenant logs (add --follow)
|
|
625
|
+
otto tenant skills bootstrap <path> Install baseline skills for tenant
|
|
626
|
+
|
|
627
|
+
otto install Legacy: install missing npm packages + configure
|
|
628
|
+
otto upgrade Legacy: upgrade to stable (manifest-pinned) versions
|
|
629
|
+
otto upgrade stable Legacy: upgrade to manifest-pinned versions
|
|
630
|
+
otto upgrade latest Legacy: upgrade to npm latest versions
|
|
631
|
+
otto status Show installed versions + config health
|
|
632
|
+
otto doctor Validate all integration points
|
|
633
|
+
otto sync Trigger upstream sync for all forked repos
|
|
634
|
+
otto skills search <q> Search skills across public repos
|
|
635
|
+
otto skills browse Browse all available skills
|
|
636
|
+
otto skills list List installed skills
|
|
637
|
+
otto skills add <name> Install a skill
|
|
638
|
+
otto skills add --all Install all skills from otto-assistant/skills
|
|
639
|
+
otto skills update Refresh skills index
|
|
640
|
+
otto skills remove <name> Remove an installed skill
|
|
641
|
+
otto skills repos Show configured skill repositories
|
|
248
642
|
`);
|
|
249
643
|
break;
|
|
250
644
|
}
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|