@gobi-ai/cli 1.0.0 → 1.2.0
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/.claude-plugin/marketplace.json +5 -4
- package/.claude-plugin/plugin.json +3 -2
- package/README.md +27 -31
- package/commands/space-explore.md +5 -3
- package/commands/space-share.md +5 -5
- package/dist/commands/brain.js +301 -0
- package/dist/commands/feed.js +116 -0
- package/dist/commands/space.js +1 -89
- package/dist/main.js +4 -4
- package/package.json +1 -1
- package/skills/{gobi-vault → gobi-brain}/SKILL.md +30 -27
- package/skills/gobi-brain/references/brain.md +163 -0
- package/skills/gobi-core/SKILL.md +4 -3
- package/skills/gobi-core/references/space.md +1 -4
- package/skills/gobi-feed/SKILL.md +43 -0
- package/skills/gobi-feed/references/feed.md +55 -0
- package/skills/gobi-space/SKILL.md +6 -31
- package/skills/gobi-space/references/space.md +1 -39
- package/dist/commands/global.js +0 -203
- package/dist/commands/vault.js +0 -143
- package/skills/gobi-space/references/global.md +0 -82
- package/skills/gobi-vault/references/vault.md +0 -66
package/dist/commands/space.js
CHANGED
|
@@ -9,27 +9,10 @@ function readContent(value) {
|
|
|
9
9
|
return readFileSync("/dev/stdin", "utf8");
|
|
10
10
|
return value;
|
|
11
11
|
}
|
|
12
|
-
function formatMessageLine(m) {
|
|
13
|
-
const isReply = m.parentThreadId != null;
|
|
14
|
-
const id = `[${isReply ? "r" : "t"}:${m.id}]`;
|
|
15
|
-
const kind = isReply ? "reply " : "thread";
|
|
16
|
-
const author = m.author?.name ||
|
|
17
|
-
`User ${m.authorId ?? "?"}`;
|
|
18
|
-
let label;
|
|
19
|
-
if (isReply) {
|
|
20
|
-
const text = m.content || "";
|
|
21
|
-
label = text.length > 80 ? text.slice(0, 80) + "…" : text;
|
|
22
|
-
label = label.replace(/\s+/g, " ").trim();
|
|
23
|
-
}
|
|
24
|
-
else {
|
|
25
|
-
label = m.title || m.content || "";
|
|
26
|
-
}
|
|
27
|
-
return `${id} ${kind} ${author} "${label}" ${m.createdAt}`;
|
|
28
|
-
}
|
|
29
12
|
export function registerSpaceCommand(program) {
|
|
30
13
|
const space = program
|
|
31
14
|
.command("space")
|
|
32
|
-
.description("Space commands
|
|
15
|
+
.description("Space commands (threads, replies).")
|
|
33
16
|
.option("--space-slug <slug>", "Space slug (overrides .gobi/settings.yaml)");
|
|
34
17
|
// ── List spaces ──
|
|
35
18
|
space
|
|
@@ -53,23 +36,6 @@ export function registerSpaceCommand(program) {
|
|
|
53
36
|
}
|
|
54
37
|
console.log(`Spaces (${items.length}):\n` + lines.join("\n"));
|
|
55
38
|
});
|
|
56
|
-
// ── Get space ──
|
|
57
|
-
space
|
|
58
|
-
.command("get [spaceSlug]")
|
|
59
|
-
.description("Get details for a space. Pass a slug or omit to use the current space (from .gobi/settings.yaml or --space-slug).")
|
|
60
|
-
.action(async (spaceSlug) => {
|
|
61
|
-
const slug = spaceSlug || resolveSpaceSlug(space);
|
|
62
|
-
const resp = (await apiGet(`/spaces/${slug}`));
|
|
63
|
-
const s = unwrapResp(resp);
|
|
64
|
-
if (isJsonMode(space)) {
|
|
65
|
-
jsonOut(s);
|
|
66
|
-
return;
|
|
67
|
-
}
|
|
68
|
-
const desc = s.description ? `\n Description: ${s.description}` : "";
|
|
69
|
-
console.log(`Space [${s.slug}] ${s.name}${desc}\n` +
|
|
70
|
-
` ID: ${s.id}\n` +
|
|
71
|
-
` Created: ${s.createdAt}`);
|
|
72
|
-
});
|
|
73
39
|
// ── Warp (space selection) ──
|
|
74
40
|
space
|
|
75
41
|
.command("warp [spaceSlug]")
|
|
@@ -160,60 +126,6 @@ export function registerSpaceCommand(program) {
|
|
|
160
126
|
lines.join("\n") +
|
|
161
127
|
footer);
|
|
162
128
|
});
|
|
163
|
-
// ── Messages (unified feed) ──
|
|
164
|
-
space
|
|
165
|
-
.command("messages")
|
|
166
|
-
.description("List the unified message feed (threads and replies, newest first) in a space.")
|
|
167
|
-
.option("--limit <number>", "Items per page", "20")
|
|
168
|
-
.option("--cursor <string>", "Pagination cursor from previous response")
|
|
169
|
-
.action(async (opts) => {
|
|
170
|
-
const spaceSlug = resolveSpaceSlug(space);
|
|
171
|
-
const params = {
|
|
172
|
-
limit: parseInt(opts.limit, 10),
|
|
173
|
-
};
|
|
174
|
-
if (opts.cursor)
|
|
175
|
-
params.cursor = opts.cursor;
|
|
176
|
-
const resp = (await apiGet(`/spaces/${spaceSlug}/messages`, params));
|
|
177
|
-
if (isJsonMode(space)) {
|
|
178
|
-
jsonOut({
|
|
179
|
-
items: resp.data || [],
|
|
180
|
-
pagination: resp.pagination || {},
|
|
181
|
-
});
|
|
182
|
-
return;
|
|
183
|
-
}
|
|
184
|
-
const items = (resp.data || []);
|
|
185
|
-
const pagination = (resp.pagination || {});
|
|
186
|
-
if (!items.length) {
|
|
187
|
-
console.log("No messages found.");
|
|
188
|
-
return;
|
|
189
|
-
}
|
|
190
|
-
const lines = items.map(formatMessageLine);
|
|
191
|
-
const footer = pagination.hasMore ? `\n Next cursor: ${pagination.nextCursor}` : "";
|
|
192
|
-
console.log(`Messages (${items.length} items, newest first):\n` + lines.join("\n") + footer);
|
|
193
|
-
});
|
|
194
|
-
// ── Ancestors ──
|
|
195
|
-
space
|
|
196
|
-
.command("ancestors <threadId>")
|
|
197
|
-
.description("Show the ancestor lineage of a thread or reply (root → immediate parent).")
|
|
198
|
-
.action(async (threadId) => {
|
|
199
|
-
const spaceSlug = resolveSpaceSlug(space);
|
|
200
|
-
const resp = (await apiGet(`/spaces/${spaceSlug}/threads/${threadId}/ancestors`));
|
|
201
|
-
const data = unwrapResp(resp);
|
|
202
|
-
const ancestors = (data.ancestors || []);
|
|
203
|
-
if (isJsonMode(space)) {
|
|
204
|
-
jsonOut({ ancestors });
|
|
205
|
-
return;
|
|
206
|
-
}
|
|
207
|
-
if (!ancestors.length) {
|
|
208
|
-
console.log("No ancestors (this is a root thread).");
|
|
209
|
-
return;
|
|
210
|
-
}
|
|
211
|
-
const lines = [];
|
|
212
|
-
ancestors.forEach((a, i) => {
|
|
213
|
-
lines.push(`${i + 1}. ${formatMessageLine(a)}`);
|
|
214
|
-
});
|
|
215
|
-
console.log(`Ancestors (${ancestors.length} items, root first):\n` + lines.join("\n"));
|
|
216
|
-
});
|
|
217
129
|
// ── Threads (get, list, create, edit, delete) ──
|
|
218
130
|
space
|
|
219
131
|
.command("get-thread <threadId>")
|
package/dist/main.js
CHANGED
|
@@ -5,8 +5,8 @@ import { ApiError, GobiError } from "./errors.js";
|
|
|
5
5
|
import { registerAuthCommand } from "./commands/auth.js";
|
|
6
6
|
import { registerInitCommand, printContext } from "./commands/init.js";
|
|
7
7
|
import { registerSpaceCommand } from "./commands/space.js";
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
8
|
+
import { registerBrainCommand } from "./commands/brain.js";
|
|
9
|
+
import { registerFeedCommand } from "./commands/feed.js";
|
|
10
10
|
import { registerSessionsCommand } from "./commands/sessions.js";
|
|
11
11
|
import { registerSenseCommand } from "./commands/sense.js";
|
|
12
12
|
import { registerSyncCommand } from "./commands/sync.js";
|
|
@@ -33,8 +33,8 @@ export async function cli() {
|
|
|
33
33
|
registerAuthCommand(program);
|
|
34
34
|
registerInitCommand(program);
|
|
35
35
|
registerSpaceCommand(program);
|
|
36
|
-
|
|
37
|
-
|
|
36
|
+
registerBrainCommand(program);
|
|
37
|
+
registerFeedCommand(program);
|
|
38
38
|
registerSessionsCommand(program);
|
|
39
39
|
registerSenseCommand(program);
|
|
40
40
|
registerSyncCommand(program);
|
package/package.json
CHANGED
|
@@ -1,42 +1,45 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: gobi-
|
|
2
|
+
name: gobi-brain
|
|
3
3
|
description: >-
|
|
4
|
-
Gobi
|
|
5
|
-
and semantic similarity, ask
|
|
6
|
-
|
|
7
|
-
publish their
|
|
4
|
+
Gobi brain commands for knowledge management: search public brains by text
|
|
5
|
+
and semantic similarity, ask brains questions, publish/unpublish BRAIN.md,
|
|
6
|
+
and manage brain updates (post/edit/delete). Use when the user wants to
|
|
7
|
+
search knowledge, ask a brain, publish their brain document, or manage
|
|
8
|
+
their brain updates. To browse the global feed of brain updates from
|
|
9
|
+
others, see the gobi-feed skill.
|
|
8
10
|
allowed-tools: Bash(gobi:*)
|
|
9
11
|
metadata:
|
|
10
12
|
author: gobi-ai
|
|
11
|
-
version: "
|
|
13
|
+
version: "0.8.0"
|
|
12
14
|
---
|
|
13
15
|
|
|
14
|
-
# gobi-
|
|
16
|
+
# gobi-brain
|
|
15
17
|
|
|
16
|
-
Gobi
|
|
18
|
+
Gobi brain commands for knowledge management (v0.8.0).
|
|
17
19
|
|
|
18
20
|
Requires gobi-cli installed and authenticated. See gobi-core skill for setup.
|
|
19
21
|
|
|
20
|
-
## Gobi
|
|
22
|
+
## Gobi Brain — Knowledge Management
|
|
21
23
|
|
|
22
|
-
`gobi
|
|
23
|
-
|
|
24
|
-
> **Vault updates have moved to threads.** To post user-level content, use `gobi global create-thread` (platform-wide global) or `gobi space create-thread` (a specific space). See the **gobi-space** skill.
|
|
24
|
+
`gobi brain` commands manage your vault's brain: search across all spaces, ask brains questions, and publish/unpublish your BRAIN.md. Public brains are accessible at `https://gobispace.com/@{vaultSlug}`.
|
|
25
25
|
|
|
26
26
|
## Important: JSON Mode
|
|
27
27
|
|
|
28
28
|
For programmatic/agent usage, always pass `--json` as a **global** option (before the subcommand):
|
|
29
29
|
|
|
30
30
|
```bash
|
|
31
|
-
gobi --json
|
|
31
|
+
gobi --json brain search --query "machine learning"
|
|
32
32
|
```
|
|
33
33
|
|
|
34
34
|
## Available Commands
|
|
35
35
|
|
|
36
|
-
- `gobi
|
|
37
|
-
- `gobi
|
|
38
|
-
- `gobi
|
|
39
|
-
- `gobi
|
|
36
|
+
- `gobi brain search` — Search public brains by text and semantic similarity.
|
|
37
|
+
- `gobi brain ask` — Ask a brain a question. Creates a targeted session (1:1 conversation).
|
|
38
|
+
- `gobi brain publish` — Upload BRAIN.md to the vault root on webdrive. Triggers post-processing (brain sync, metadata update, Discord notification).
|
|
39
|
+
- `gobi brain unpublish` — Delete BRAIN.md from the vault on webdrive.
|
|
40
|
+
- `gobi brain post-update` — Post a brain update for a vault.
|
|
41
|
+
- `gobi brain edit-update` — Edit a published brain update. You must be the author.
|
|
42
|
+
- `gobi brain delete-update` — Delete a published brain update. You must be the author.
|
|
40
43
|
|
|
41
44
|
## BRAIN.md Frontmatter Reference
|
|
42
45
|
|
|
@@ -44,11 +47,11 @@ gobi --json vault search --query "machine learning"
|
|
|
44
47
|
|
|
45
48
|
```yaml
|
|
46
49
|
---
|
|
47
|
-
title: My
|
|
50
|
+
title: My Brain
|
|
48
51
|
tags:
|
|
49
52
|
- topic1
|
|
50
53
|
- topic2
|
|
51
|
-
description: A short description of what this
|
|
54
|
+
description: A short description of what this brain is about.
|
|
52
55
|
thumbnail: "[[BRAIN.png]]"
|
|
53
56
|
homepage: "[[app/home.html?nav=false]]"
|
|
54
57
|
prompt: "[[system-prompt.md]]"
|
|
@@ -57,8 +60,8 @@ prompt: "[[system-prompt.md]]"
|
|
|
57
60
|
|
|
58
61
|
### Fields
|
|
59
62
|
|
|
60
|
-
- **`title`** (required) — Display name of the vault.
|
|
61
|
-
- **`description`** (required for public listing) — Short description shown on the
|
|
63
|
+
- **`title`** (required) — Display name of the brain/vault.
|
|
64
|
+
- **`description`** (required for public listing) — Short description shown on the brain card and public profile. Without both `title` and `description`, the brain won't appear in the public catalog.
|
|
62
65
|
- **`tags`** — Tags for categorization and discovery. Supports YAML block list or inline array format:
|
|
63
66
|
```yaml
|
|
64
67
|
# Block list
|
|
@@ -69,11 +72,11 @@ prompt: "[[system-prompt.md]]"
|
|
|
69
72
|
# Inline array
|
|
70
73
|
tags: [ambient ai, wearables]
|
|
71
74
|
```
|
|
72
|
-
- **`thumbnail`** — Profile image for the
|
|
75
|
+
- **`thumbnail`** — Profile image for the brain card. Uses wiki-link syntax pointing to an image file in the vault (e.g. `"[[BRAIN.png]]"`).
|
|
73
76
|
- **`homepage`** — Custom HTML page to serve as the vault's public homepage at `gobispace.com/@{vaultSlug}`. Uses wiki-link syntax pointing to an HTML file in the vault. Supports a `nav` query parameter to control Gobi's sidebar navigation:
|
|
74
77
|
- `"[[app/home.html]]"` — Shows the Gobi sidebar alongside the homepage (default)
|
|
75
78
|
- `"[[app/home.html?nav=false]]"` — Full-screen, no Gobi sidebar/chrome
|
|
76
|
-
- **`prompt`** — Wiki-link to a custom system prompt file for the
|
|
79
|
+
- **`prompt`** — Wiki-link to a custom system prompt file for the brain's AI agent (e.g. `"[[system-prompt.md]]"`).
|
|
77
80
|
|
|
78
81
|
> For details on building custom HTML homepages and using the `window.gobi` API, see the **gobi-homepage** skill.
|
|
79
82
|
|
|
@@ -86,15 +89,15 @@ After editing `BRAIN.md` frontmatter, follow these steps to make your changes li
|
|
|
86
89
|
```bash
|
|
87
90
|
gobi sync
|
|
88
91
|
```
|
|
89
|
-
3. **Publish the
|
|
92
|
+
3. **Publish the brain**:
|
|
90
93
|
```bash
|
|
91
|
-
gobi
|
|
94
|
+
gobi brain publish
|
|
92
95
|
```
|
|
93
96
|
This uploads `BRAIN.md` to webdrive, triggers post-processing that extracts metadata (title, description, tags, thumbnail, homepage path), updates the vault's public profile, and sends a Discord notification.
|
|
94
97
|
4. The vault is now live at `https://gobispace.com/@{vaultSlug}`.
|
|
95
98
|
|
|
96
|
-
> **Important:** Any time you change `BRAIN.md` frontmatter (e.g. adding or updating `homepage`), you must re-run `gobi
|
|
99
|
+
> **Important:** Any time you change `BRAIN.md` frontmatter (e.g. adding or updating `homepage`), you must re-run `gobi brain publish` for the changes to take effect.
|
|
97
100
|
|
|
98
101
|
## Reference Documentation
|
|
99
102
|
|
|
100
|
-
- [gobi
|
|
103
|
+
- [gobi brain](references/brain.md)
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
# gobi brain
|
|
2
|
+
|
|
3
|
+
```
|
|
4
|
+
Usage: gobi brain [options] [command]
|
|
5
|
+
|
|
6
|
+
Brain commands (search, ask, publish, unpublish, updates).
|
|
7
|
+
|
|
8
|
+
Options:
|
|
9
|
+
-h, --help display help for command
|
|
10
|
+
|
|
11
|
+
Commands:
|
|
12
|
+
search [options] Search public brains by text and semantic similarity.
|
|
13
|
+
ask [options] Ask a brain a question. Creates a targeted session (1:1 conversation).
|
|
14
|
+
publish Upload BRAIN.md to the vault root on webdrive. Triggers post-processing (brain sync, metadata update, Discord notification).
|
|
15
|
+
unpublish Delete BRAIN.md from the vault on webdrive.
|
|
16
|
+
post-update [options] Post a brain update for a vault.
|
|
17
|
+
edit-update [options] <updateId> Edit a published brain update. You must be the author.
|
|
18
|
+
delete-update <updateId> Delete a published brain update. You must be the author.
|
|
19
|
+
get-update [options] <updateId> Get a brain update and its replies (paginated).
|
|
20
|
+
reply-to-update [options] <updateId> Reply to a brain update.
|
|
21
|
+
edit-update-reply [options] <replyId> Edit a brain update reply. You must be the author.
|
|
22
|
+
delete-update-reply <replyId> Delete a brain update reply. You must be the author.
|
|
23
|
+
help [command] display help for command
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## search
|
|
27
|
+
|
|
28
|
+
```
|
|
29
|
+
Usage: gobi brain search [options]
|
|
30
|
+
|
|
31
|
+
Search public brains by text and semantic similarity.
|
|
32
|
+
|
|
33
|
+
Options:
|
|
34
|
+
--query <query> Search query
|
|
35
|
+
-h, --help display help for command
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## ask
|
|
39
|
+
|
|
40
|
+
```
|
|
41
|
+
Usage: gobi brain ask [options]
|
|
42
|
+
|
|
43
|
+
Ask a brain a question. Creates a targeted session (1:1 conversation).
|
|
44
|
+
|
|
45
|
+
Options:
|
|
46
|
+
--vault-slug <vaultSlug> Slug of the brain/vault to ask
|
|
47
|
+
--question <question> The question to ask (markdown supported)
|
|
48
|
+
--rich-text <richText> Rich-text JSON array (e.g. [{"type":"text","text":"hello"}])
|
|
49
|
+
--mode <mode> Session mode: "auto" or "manual"
|
|
50
|
+
-h, --help display help for command
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## publish
|
|
54
|
+
|
|
55
|
+
```
|
|
56
|
+
Usage: gobi brain publish [options]
|
|
57
|
+
|
|
58
|
+
Upload BRAIN.md to the vault root on webdrive. Triggers post-processing (brain sync, metadata update, Discord notification).
|
|
59
|
+
|
|
60
|
+
Options:
|
|
61
|
+
-h, --help display help for command
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
## unpublish
|
|
65
|
+
|
|
66
|
+
```
|
|
67
|
+
Usage: gobi brain unpublish [options]
|
|
68
|
+
|
|
69
|
+
Delete BRAIN.md from the vault on webdrive.
|
|
70
|
+
|
|
71
|
+
Options:
|
|
72
|
+
-h, --help display help for command
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
## post-update
|
|
76
|
+
|
|
77
|
+
```
|
|
78
|
+
Usage: gobi brain post-update [options]
|
|
79
|
+
|
|
80
|
+
Post a brain update for a vault.
|
|
81
|
+
|
|
82
|
+
Options:
|
|
83
|
+
--vault-slug <vaultSlug> Vault slug (overrides .gobi/settings.yaml)
|
|
84
|
+
--title <title> Title of the update
|
|
85
|
+
--content <content> Update content (markdown supported)
|
|
86
|
+
--auto-attachments Upload wiki-linked [[files]] to webdrive before posting
|
|
87
|
+
-h, --help display help for command
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
## edit-update
|
|
91
|
+
|
|
92
|
+
```
|
|
93
|
+
Usage: gobi brain edit-update [options] <updateId>
|
|
94
|
+
|
|
95
|
+
Edit a published brain update. You must be the author.
|
|
96
|
+
|
|
97
|
+
Options:
|
|
98
|
+
--title <title> New title for the update
|
|
99
|
+
--content <content> New content for the update (markdown supported)
|
|
100
|
+
--vault-slug <vaultSlug> Vault slug for attachment uploads (overrides .gobi/settings.yaml)
|
|
101
|
+
--auto-attachments Upload wiki-linked [[files]] to webdrive before editing
|
|
102
|
+
-h, --help display help for command
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
## delete-update
|
|
106
|
+
|
|
107
|
+
```
|
|
108
|
+
Usage: gobi brain delete-update [options] <updateId>
|
|
109
|
+
|
|
110
|
+
Delete a published brain update. You must be the author.
|
|
111
|
+
|
|
112
|
+
Options:
|
|
113
|
+
-h, --help display help for command
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
## get-update
|
|
117
|
+
|
|
118
|
+
```
|
|
119
|
+
Usage: gobi brain get-update [options] <updateId>
|
|
120
|
+
|
|
121
|
+
Get a brain update and its replies (paginated).
|
|
122
|
+
|
|
123
|
+
Options:
|
|
124
|
+
--limit <number> Replies per page (default: "20")
|
|
125
|
+
--cursor <string> Pagination cursor from previous response
|
|
126
|
+
--full Show full reply content without truncation
|
|
127
|
+
-h, --help display help for command
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
## reply-to-update
|
|
131
|
+
|
|
132
|
+
```
|
|
133
|
+
Usage: gobi brain reply-to-update [options] <updateId>
|
|
134
|
+
|
|
135
|
+
Reply to a brain update.
|
|
136
|
+
|
|
137
|
+
Options:
|
|
138
|
+
--content <content> Reply content (markdown supported, use "-" for stdin)
|
|
139
|
+
-h, --help display help for command
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
## edit-update-reply
|
|
143
|
+
|
|
144
|
+
```
|
|
145
|
+
Usage: gobi brain edit-update-reply [options] <replyId>
|
|
146
|
+
|
|
147
|
+
Edit a brain update reply. You must be the author.
|
|
148
|
+
|
|
149
|
+
Options:
|
|
150
|
+
--content <content> New content for the reply (markdown supported)
|
|
151
|
+
-h, --help display help for command
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
## delete-update-reply
|
|
155
|
+
|
|
156
|
+
```
|
|
157
|
+
Usage: gobi brain delete-update-reply [options] <replyId>
|
|
158
|
+
|
|
159
|
+
Delete a brain update reply. You must be the author.
|
|
160
|
+
|
|
161
|
+
Options:
|
|
162
|
+
-h, --help display help for command
|
|
163
|
+
```
|
|
@@ -38,8 +38,9 @@ brew tap gobi-ai/tap && brew install gobi
|
|
|
38
38
|
|
|
39
39
|
## Key Concepts
|
|
40
40
|
|
|
41
|
-
- **Space**: A shared space for a group or community. A logged-in user can be a member of one or more spaces. A space contains threads, sessions, and connected vaults.
|
|
42
|
-
- **Vault**: A
|
|
41
|
+
- **Space**: A shared space for a group or community. A logged-in user can be a member of one or more spaces. A space contains threads, sessions, brain updates, and connected vaults.
|
|
42
|
+
- **Vault**: A filetree storage of information and knowledge. A local directory becomes a vault when it contains `.gobi/settings.yaml` with a vault slug and a space slug. Each vault is identified by a slug (e.g. `brave-path-zr962w`).
|
|
43
|
+
- **Brain**: Another name for a vault when referring to its AI-searchable knowledge. You can search brains, ask them questions, and publish a `BRAIN.md` document to configure your vault's brain.
|
|
43
44
|
|
|
44
45
|
## First-Time Setup
|
|
45
46
|
|
|
@@ -127,7 +128,7 @@ JSON responses have the shape `{ "success": true, "data": ... }` on success or `
|
|
|
127
128
|
|------|-------------|
|
|
128
129
|
| `~/.gobi/credentials.json` | Stored authentication tokens (auto-managed) |
|
|
129
130
|
| `.gobi/settings.yaml` | Per-project vault and space configuration |
|
|
130
|
-
| `BRAIN.md` |
|
|
131
|
+
| `BRAIN.md` | Brain document with YAML frontmatter, published via `gobi brain publish` |
|
|
131
132
|
|
|
132
133
|
## Environment Variables
|
|
133
134
|
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
```
|
|
4
4
|
Usage: gobi space [options] [command]
|
|
5
5
|
|
|
6
|
-
Space commands
|
|
6
|
+
Space commands (threads, replies).
|
|
7
7
|
|
|
8
8
|
Options:
|
|
9
9
|
--space-slug <slug> Space slug (overrides .gobi/settings.yaml)
|
|
@@ -11,12 +11,9 @@ Options:
|
|
|
11
11
|
|
|
12
12
|
Commands:
|
|
13
13
|
list List spaces you are a member of.
|
|
14
|
-
get [spaceSlug] Get details for a space. Pass a slug or omit to use the current space (from .gobi/settings.yaml or --space-slug).
|
|
15
14
|
warp [spaceSlug] Select the active space. Pass a slug to warp directly, or omit for interactive selection.
|
|
16
15
|
list-topics [options] List topics in a space, ordered by most recent content linkage.
|
|
17
16
|
list-topic-threads [options] <topicSlug> List threads tagged with a topic in a space (cursor-paginated).
|
|
18
|
-
messages [options] List the unified message feed (threads and replies, newest first) in a space.
|
|
19
|
-
ancestors <threadId> Show the ancestor lineage of a thread or reply (root → immediate parent).
|
|
20
17
|
get-thread [options] <threadId> Get a thread and its replies (paginated).
|
|
21
18
|
list-threads [options] List threads in a space (paginated).
|
|
22
19
|
create-thread [options] Create a thread in a space.
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: gobi-feed
|
|
3
|
+
description: >-
|
|
4
|
+
Gobi feed commands for the global brain-update feed: list recent brain
|
|
5
|
+
updates from people across the platform, read a single update with its
|
|
6
|
+
replies, and post replies. Use when the user wants to browse what others
|
|
7
|
+
are sharing, follow public discussions, or join a thread.
|
|
8
|
+
allowed-tools: Bash(gobi:*)
|
|
9
|
+
metadata:
|
|
10
|
+
author: gobi-ai
|
|
11
|
+
version: "1.2.0"
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# gobi-feed
|
|
15
|
+
|
|
16
|
+
Gobi feed commands for the global brain-update feed (v1.2.0).
|
|
17
|
+
|
|
18
|
+
Requires gobi-cli installed and authenticated. See gobi-core skill for setup.
|
|
19
|
+
|
|
20
|
+
## What is the feed?
|
|
21
|
+
|
|
22
|
+
The feed is the platform-wide stream of brain updates from public vaults — short posts, learnings, and announcements people share publicly. Use `gobi feed` to read what others are posting and to reply to a discussion.
|
|
23
|
+
|
|
24
|
+
To post your own brain update, use `gobi brain post-update` (the feed is read-mostly; posts are scoped to your vault).
|
|
25
|
+
|
|
26
|
+
## Important: JSON Mode
|
|
27
|
+
|
|
28
|
+
For programmatic/agent usage, always pass `--json` as a **global** option (before the subcommand):
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
gobi --json feed list
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Available Commands
|
|
35
|
+
|
|
36
|
+
- `gobi feed` — Feed of brain updates from people across the platform.
|
|
37
|
+
- `gobi feed list` — List recent brain updates from the global public feed.
|
|
38
|
+
- `gobi feed get` — Get a feed brain update and its replies (paginated).
|
|
39
|
+
- `gobi feed reply` — Reply to a brain update in the feed.
|
|
40
|
+
|
|
41
|
+
## Reference Documentation
|
|
42
|
+
|
|
43
|
+
- [gobi feed](references/feed.md)
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# gobi feed
|
|
2
|
+
|
|
3
|
+
```
|
|
4
|
+
Usage: gobi feed [options] [command]
|
|
5
|
+
|
|
6
|
+
Feed of brain updates from people across the platform.
|
|
7
|
+
|
|
8
|
+
Options:
|
|
9
|
+
-h, --help display help for command
|
|
10
|
+
|
|
11
|
+
Commands:
|
|
12
|
+
list [options] List recent brain updates from the global public feed.
|
|
13
|
+
get [options] <updateId> Get a feed brain update and its replies (paginated).
|
|
14
|
+
reply [options] <updateId> Reply to a brain update in the feed.
|
|
15
|
+
help [command] display help for command
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## list
|
|
19
|
+
|
|
20
|
+
```
|
|
21
|
+
Usage: gobi feed list [options]
|
|
22
|
+
|
|
23
|
+
List recent brain updates from the global public feed.
|
|
24
|
+
|
|
25
|
+
Options:
|
|
26
|
+
--limit <number> Items per page (default: "20")
|
|
27
|
+
--cursor <string> Pagination cursor from previous response
|
|
28
|
+
-h, --help display help for command
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## get
|
|
32
|
+
|
|
33
|
+
```
|
|
34
|
+
Usage: gobi feed get [options] <updateId>
|
|
35
|
+
|
|
36
|
+
Get a feed brain update and its replies (paginated).
|
|
37
|
+
|
|
38
|
+
Options:
|
|
39
|
+
--limit <number> Replies per page (default: "20")
|
|
40
|
+
--cursor <string> Pagination cursor from previous response
|
|
41
|
+
--full Show full reply content without truncation
|
|
42
|
+
-h, --help display help for command
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
## reply
|
|
46
|
+
|
|
47
|
+
```
|
|
48
|
+
Usage: gobi feed reply [options] <updateId>
|
|
49
|
+
|
|
50
|
+
Reply to a brain update in the feed.
|
|
51
|
+
|
|
52
|
+
Options:
|
|
53
|
+
--content <content> Reply content (markdown supported, use "-" for stdin)
|
|
54
|
+
-h, --help display help for command
|
|
55
|
+
```
|
|
@@ -1,20 +1,19 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: gobi-space
|
|
3
3
|
description: >-
|
|
4
|
-
Gobi space commands for community interaction:
|
|
5
|
-
replies, browse
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
spaces. Space and member administration is web-UI only.
|
|
4
|
+
Gobi space commands for community interaction: list/create/edit/delete
|
|
5
|
+
threads and replies, browse topics and topic threads, explore what's
|
|
6
|
+
happening in a space. Use when the user wants to read, write, or manage
|
|
7
|
+
threads and replies in their Gobi community spaces.
|
|
9
8
|
allowed-tools: Bash(gobi:*)
|
|
10
9
|
metadata:
|
|
11
10
|
author: gobi-ai
|
|
12
|
-
version: "0.
|
|
11
|
+
version: "0.8.0"
|
|
13
12
|
---
|
|
14
13
|
|
|
15
14
|
# gobi-space
|
|
16
15
|
|
|
17
|
-
Gobi space commands for community interaction (v0.
|
|
16
|
+
Gobi space commands for community interaction (v0.8.0).
|
|
18
17
|
|
|
19
18
|
Requires gobi-cli installed and authenticated. See gobi-core skill for setup.
|
|
20
19
|
|
|
@@ -41,43 +40,19 @@ For programmatic/agent usage, always pass `--json` as a **global** option (befor
|
|
|
41
40
|
gobi --json space list-threads
|
|
42
41
|
```
|
|
43
42
|
|
|
44
|
-
> Space and member administration (creating spaces, inviting/approving members, joining/leaving) is web-UI only and not available in the CLI.
|
|
45
|
-
|
|
46
43
|
## Available Commands
|
|
47
44
|
|
|
48
|
-
### Space details
|
|
49
|
-
- `gobi space get` — Get details for a space.
|
|
50
|
-
|
|
51
|
-
### Topics
|
|
52
45
|
- `gobi space list-topics` — List topics in a space, ordered by most recent content linkage.
|
|
53
46
|
- `gobi space list-topic-threads` — List threads tagged with a topic in a space (cursor-paginated).
|
|
54
|
-
|
|
55
|
-
### Feed & lineage
|
|
56
|
-
- `gobi space messages` — List the unified message feed (threads and replies, newest first).
|
|
57
|
-
- `gobi space ancestors` — Show the ancestor lineage of a thread or reply (root → immediate parent).
|
|
58
|
-
|
|
59
|
-
### Threads
|
|
60
47
|
- `gobi space get-thread` — Get a thread and its replies (paginated).
|
|
61
48
|
- `gobi space list-threads` — List threads in a space (paginated).
|
|
62
49
|
- `gobi space create-thread` — Create a thread in a space.
|
|
63
50
|
- `gobi space edit-thread` — Edit a thread. You must be the author.
|
|
64
51
|
- `gobi space delete-thread` — Delete a thread. You must be the author.
|
|
65
|
-
|
|
66
|
-
### Replies
|
|
67
52
|
- `gobi space create-reply` — Create a reply to a thread in a space.
|
|
68
53
|
- `gobi space edit-reply` — Edit a reply. You must be the author.
|
|
69
54
|
- `gobi space delete-reply` — Delete a reply. You must be the author.
|
|
70
55
|
|
|
71
|
-
### Global thread space
|
|
72
|
-
The global thread space has no slug and is visible across all spaces.
|
|
73
|
-
|
|
74
|
-
- `gobi global messages` — List the global unified message feed (newest first).
|
|
75
|
-
- `gobi global get-thread` — Get a global thread and its direct replies.
|
|
76
|
-
- `gobi global ancestors` — Show the ancestor lineage of a global thread or reply.
|
|
77
|
-
- `gobi global create-thread` — Create a thread in the global space.
|
|
78
|
-
- `gobi global reply` — Reply to a thread in the global space.
|
|
79
|
-
|
|
80
56
|
## Reference Documentation
|
|
81
57
|
|
|
82
58
|
- [gobi space](references/space.md)
|
|
83
|
-
- [gobi global](references/global.md)
|