@gobi-ai/cli 2.0.31 → 2.0.32
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 +2 -2
- package/.claude-plugin/plugin.json +1 -1
- package/dist/commands/personal.js +34 -0
- package/dist/commands/space.js +38 -0
- package/package.json +1 -1
- package/skills/gobi-artifact/SKILL.md +2 -2
- package/skills/gobi-core/SKILL.md +2 -2
- package/skills/gobi-homepage/SKILL.md +1 -1
- package/skills/gobi-media/SKILL.md +2 -2
- package/skills/gobi-sense/SKILL.md +2 -2
- package/skills/gobi-space/SKILL.md +8 -3
- package/skills/gobi-space/references/personal.md +16 -0
- package/skills/gobi-space/references/space.md +18 -0
- package/skills/gobi-vault/SKILL.md +2 -2
|
@@ -4,12 +4,12 @@
|
|
|
4
4
|
"name": "gobi-ai"
|
|
5
5
|
},
|
|
6
6
|
"description": "Claude Code plugin for the Gobi collaborative knowledge platform CLI",
|
|
7
|
-
"version": "2.0.
|
|
7
|
+
"version": "2.0.32",
|
|
8
8
|
"plugins": [
|
|
9
9
|
{
|
|
10
10
|
"name": "gobi",
|
|
11
11
|
"description": "Manage the Gobi collaborative knowledge platform from the command line. Publish vault profiles, create posts and replies, generate images and videos.",
|
|
12
|
-
"version": "2.0.
|
|
12
|
+
"version": "2.0.32",
|
|
13
13
|
"author": {
|
|
14
14
|
"name": "gobi-ai"
|
|
15
15
|
},
|
|
@@ -66,6 +66,40 @@ export function registerPersonalCommand(program) {
|
|
|
66
66
|
lines.join("\n") +
|
|
67
67
|
footer);
|
|
68
68
|
});
|
|
69
|
+
// ── Search ──
|
|
70
|
+
personal
|
|
71
|
+
.command("search-posts <query>")
|
|
72
|
+
.description("Search your personal-space posts and replies (newest first). The query supports keywords " +
|
|
73
|
+
"plus from:<name> and topic:<tag> operators (quote multi-word values). " +
|
|
74
|
+
"Each result is an individual post or reply, not a whole thread.")
|
|
75
|
+
.option("--limit <number>", "Items per page", "20")
|
|
76
|
+
.option("--cursor <string>", "Pagination cursor from previous response")
|
|
77
|
+
.action(async (query, opts) => {
|
|
78
|
+
const params = {
|
|
79
|
+
q: query,
|
|
80
|
+
limit: parseInt(opts.limit, 10),
|
|
81
|
+
};
|
|
82
|
+
if (opts.cursor)
|
|
83
|
+
params.cursor = opts.cursor;
|
|
84
|
+
const resp = (await apiGet(`/posts/personal-space/search`, params));
|
|
85
|
+
if (isJsonMode(personal)) {
|
|
86
|
+
jsonOut({
|
|
87
|
+
items: resp.data || [],
|
|
88
|
+
pagination: resp.pagination || {},
|
|
89
|
+
mentions: resp.mentions || {},
|
|
90
|
+
});
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
const items = (resp.data || []);
|
|
94
|
+
const pagination = (resp.pagination || {});
|
|
95
|
+
if (!items.length) {
|
|
96
|
+
console.log("No results found.");
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
const lines = items.map(formatFeedLine);
|
|
100
|
+
const footer = pagination.hasMore ? `\n Next cursor: ${pagination.nextCursor}` : "";
|
|
101
|
+
console.log(`Search results (${items.length} items, newest first):\n` + lines.join("\n") + footer);
|
|
102
|
+
});
|
|
69
103
|
// ── List posts ──
|
|
70
104
|
//
|
|
71
105
|
// No server-side roots-only endpoint exists for the personal-space lane;
|
package/dist/commands/space.js
CHANGED
|
@@ -220,6 +220,44 @@ export function registerSpaceCommand(program) {
|
|
|
220
220
|
const footer = pagination.hasMore ? `\n Next cursor: ${pagination.nextCursor}` : "";
|
|
221
221
|
console.log(`Feed (${items.length} items, newest first):\n` + lines.join("\n") + footer);
|
|
222
222
|
});
|
|
223
|
+
// ── Search ──
|
|
224
|
+
space
|
|
225
|
+
.command("search-posts <query>")
|
|
226
|
+
.description("Search a space's posts and replies (newest first). The query supports keywords " +
|
|
227
|
+
'plus from:<name> and topic:<tag> operators (quote multi-word values, e.g. from:"Jane Doe"). ' +
|
|
228
|
+
"Each result is an individual post or reply, not a whole thread.")
|
|
229
|
+
.option("--limit <number>", "Items per page", "20")
|
|
230
|
+
.option("--cursor <string>", "Pagination cursor from previous response")
|
|
231
|
+
.option("--channel <channelId>", "Restrict results to one channel (see `list-channels`). Omit to search the main feed and all channels visible to you.")
|
|
232
|
+
.option("--space-slug <spaceSlug>", "Space slug (overrides .gobi/settings.yaml)")
|
|
233
|
+
.action(async (query, opts) => {
|
|
234
|
+
const spaceSlug = resolveSpaceSlug(space, opts);
|
|
235
|
+
const params = {
|
|
236
|
+
q: query,
|
|
237
|
+
limit: parseInt(opts.limit, 10),
|
|
238
|
+
};
|
|
239
|
+
if (opts.cursor)
|
|
240
|
+
params.cursor = opts.cursor;
|
|
241
|
+
params.channelId = parseChannelIdOption(opts.channel);
|
|
242
|
+
const resp = (await apiGet(`/spaces/${spaceSlug}/search`, params));
|
|
243
|
+
if (isJsonMode(space)) {
|
|
244
|
+
jsonOut({
|
|
245
|
+
items: resp.data || [],
|
|
246
|
+
pagination: resp.pagination || {},
|
|
247
|
+
mentions: resp.mentions || {},
|
|
248
|
+
});
|
|
249
|
+
return;
|
|
250
|
+
}
|
|
251
|
+
const items = (resp.data || []);
|
|
252
|
+
const pagination = (resp.pagination || {});
|
|
253
|
+
if (!items.length) {
|
|
254
|
+
console.log("No results found.");
|
|
255
|
+
return;
|
|
256
|
+
}
|
|
257
|
+
const lines = items.map(formatFeedLine);
|
|
258
|
+
const footer = pagination.hasMore ? `\n Next cursor: ${pagination.nextCursor}` : "";
|
|
259
|
+
console.log(`Search results (${items.length} items, newest first):\n` + lines.join("\n") + footer);
|
|
260
|
+
});
|
|
223
261
|
// ── Posts (get, list, create, edit, delete) ──
|
|
224
262
|
space
|
|
225
263
|
.command("get-post <postId>")
|
package/package.json
CHANGED
|
@@ -9,12 +9,12 @@ description: >-
|
|
|
9
9
|
allowed-tools: Bash(gobi:*)
|
|
10
10
|
metadata:
|
|
11
11
|
author: gobi-ai
|
|
12
|
-
version: "2.0.
|
|
12
|
+
version: "2.0.32"
|
|
13
13
|
---
|
|
14
14
|
|
|
15
15
|
# gobi-artifact
|
|
16
16
|
|
|
17
|
-
Gobi artifact commands for versioned, post-attachable creations (v2.0.
|
|
17
|
+
Gobi artifact commands for versioned, post-attachable creations (v2.0.32).
|
|
18
18
|
|
|
19
19
|
Requires gobi-cli installed and authenticated. See gobi-core skill for setup.
|
|
20
20
|
|
|
@@ -8,12 +8,12 @@ description: >-
|
|
|
8
8
|
allowed-tools: Bash(gobi:*)
|
|
9
9
|
metadata:
|
|
10
10
|
author: gobi-ai
|
|
11
|
-
version: "2.0.
|
|
11
|
+
version: "2.0.32"
|
|
12
12
|
---
|
|
13
13
|
|
|
14
14
|
# gobi-core
|
|
15
15
|
|
|
16
|
-
Core CLI commands for the Gobi collaborative knowledge platform (v2.0.
|
|
16
|
+
Core CLI commands for the Gobi collaborative knowledge platform (v2.0.32).
|
|
17
17
|
|
|
18
18
|
## Prerequisites
|
|
19
19
|
|
|
@@ -10,12 +10,12 @@ description: >-
|
|
|
10
10
|
allowed-tools: Bash(gobi:*)
|
|
11
11
|
metadata:
|
|
12
12
|
author: gobi-ai
|
|
13
|
-
version: "2.0.
|
|
13
|
+
version: "2.0.32"
|
|
14
14
|
---
|
|
15
15
|
|
|
16
16
|
# gobi-media
|
|
17
17
|
|
|
18
|
-
Gobi media generation commands (v2.0.
|
|
18
|
+
Gobi media generation commands (v2.0.32).
|
|
19
19
|
|
|
20
20
|
Requires gobi-cli installed and authenticated. See gobi-core skill for setup.
|
|
21
21
|
|
|
@@ -7,12 +7,12 @@ description: >-
|
|
|
7
7
|
allowed-tools: Bash(gobi:*)
|
|
8
8
|
metadata:
|
|
9
9
|
author: gobi-ai
|
|
10
|
-
version: "2.0.
|
|
10
|
+
version: "2.0.32"
|
|
11
11
|
---
|
|
12
12
|
|
|
13
13
|
# gobi-sense
|
|
14
14
|
|
|
15
|
-
Gobi sense commands for activity and transcription data (v2.0.
|
|
15
|
+
Gobi sense commands for activity and transcription data (v2.0.32).
|
|
16
16
|
|
|
17
17
|
Requires gobi-cli installed and authenticated. See the **gobi-core** skill for setup.
|
|
18
18
|
|
|
@@ -11,12 +11,12 @@ description: >-
|
|
|
11
11
|
allowed-tools: Bash(gobi:*)
|
|
12
12
|
metadata:
|
|
13
13
|
author: gobi-ai
|
|
14
|
-
version: "2.0.
|
|
14
|
+
version: "2.0.32"
|
|
15
15
|
---
|
|
16
16
|
|
|
17
17
|
# gobi-space
|
|
18
18
|
|
|
19
|
-
Gobi space, global, and personal-space posts (v2.0.
|
|
19
|
+
Gobi space, global, and personal-space posts (v2.0.32).
|
|
20
20
|
|
|
21
21
|
Requires gobi-cli installed and authenticated. See the **gobi-core** skill for setup.
|
|
22
22
|
|
|
@@ -110,6 +110,10 @@ gobi --json space list-posts
|
|
|
110
110
|
### Feed
|
|
111
111
|
- `gobi space feed` — List the unified feed (posts and replies, newest first). `--channel <channelId>` reads a channel's feed instead of the main feed.
|
|
112
112
|
|
|
113
|
+
### Search
|
|
114
|
+
- `gobi space search-posts <query>` — Search a space's posts **and** replies, newest first. The query supports free-text keywords plus `from:<name>` (author) and `topic:<tag>` operators; quote multi-word values (`from:"Jane Doe"`). Each result is an individual post or reply, not a whole thread. `--channel <channelId>` restricts results to one channel; omit to search the main feed and every channel visible to you.
|
|
115
|
+
- `gobi personal search-posts <query>` — Same query syntax over your private personal-space posts and replies. There is no `gobi global` search.
|
|
116
|
+
|
|
113
117
|
### Space posts
|
|
114
118
|
- `gobi space list-posts` — List posts in a space (paginated).
|
|
115
119
|
- `gobi space get-post <postId>` — Get a post with its ancestors and replies (paginated). Ancestors and replies are returned together; there is no separate `ancestors` or `list-replies` command.
|
|
@@ -159,6 +163,7 @@ Channels are private, member-gated sub-feeds inside a space. The **main feed is
|
|
|
159
163
|
A couple of read-side flags don't mirror — `personal feed` has no `--following` (there's no follow graph in a private space), and `personal list-posts` has no `--mine` (everything in the personal space is already yours).
|
|
160
164
|
|
|
161
165
|
- `gobi personal feed` — Your personal-space feed (posts and replies, newest first).
|
|
166
|
+
- `gobi personal search-posts <query>` — Search your personal-space posts and replies (same `from:` / `topic:` query syntax as `gobi space search-posts`).
|
|
162
167
|
- `gobi personal list-posts` — List your personal-space posts.
|
|
163
168
|
- `gobi personal get-post <postId>` — Get a personal-space post with its ancestors and replies.
|
|
164
169
|
- `gobi personal create-post` — Create a private personal-space post. Same flags as `gobi global create-post` (`--artifact`, `--repost-post-id`, `--attach`).
|
|
@@ -177,7 +182,7 @@ Most posts and replies are publicly visible — in a community space (`gobi spac
|
|
|
177
182
|
- `delete-post` / `delete-reply` — irreversible. Flag that explicitly and confirm the target id before running.
|
|
178
183
|
- `react` / `unreact` are lightweight and reversible — when the user asked for the reaction, no extra confirmation needed.
|
|
179
184
|
|
|
180
|
-
Read-only commands (`list-posts`, `get-post`, `feed`, `list-topics`, `list-topic-posts`, `get`, `list-channels`, `get-channel`, `list-channel-members`) run without confirmation.
|
|
185
|
+
Read-only commands (`list-posts`, `get-post`, `feed`, `search-posts`, `list-topics`, `list-topic-posts`, `get`, `list-channels`, `get-channel`, `list-channel-members`) run without confirmation.
|
|
181
186
|
|
|
182
187
|
## Reference Documentation
|
|
183
188
|
|
|
@@ -11,6 +11,8 @@ Options:
|
|
|
11
11
|
|
|
12
12
|
Commands:
|
|
13
13
|
feed [options] List your personal-space feed (posts and replies, newest first). Only you can see these rows.
|
|
14
|
+
search-posts [options] <query> Search your personal-space posts and replies (newest first). The query supports keywords plus from:<name> and topic:<tag> operators (quote multi-word values). Each
|
|
15
|
+
result is an individual post or reply, not a whole thread.
|
|
14
16
|
list-posts [options] List root posts (no replies) in your personal space. Filters the personal feed client-side; pagination cursor advances through the underlying feed page.
|
|
15
17
|
get-post [options] <postId> Get a personal-space post with its ancestors and replies (paginated). Same endpoint as `gobi global get-post`; only the owner can resolve a private id.
|
|
16
18
|
create-post [options] Create a private post in your personal space. Visible only to you.
|
|
@@ -37,6 +39,20 @@ Options:
|
|
|
37
39
|
-h, --help display help for command
|
|
38
40
|
```
|
|
39
41
|
|
|
42
|
+
## search-posts
|
|
43
|
+
|
|
44
|
+
```
|
|
45
|
+
Usage: gobi personal search-posts [options] <query>
|
|
46
|
+
|
|
47
|
+
Search your personal-space posts and replies (newest first). The query supports keywords plus from:<name> and topic:<tag> operators (quote multi-word values). Each result is an individual post or
|
|
48
|
+
reply, not a whole thread.
|
|
49
|
+
|
|
50
|
+
Options:
|
|
51
|
+
--limit <number> Items per page (default: "20")
|
|
52
|
+
--cursor <string> Pagination cursor from previous response
|
|
53
|
+
-h, --help display help for command
|
|
54
|
+
```
|
|
55
|
+
|
|
40
56
|
## list-posts
|
|
41
57
|
|
|
42
58
|
```
|
|
@@ -14,6 +14,8 @@ Commands:
|
|
|
14
14
|
list-topics [options] List topics in a space, ordered by most recent content linkage.
|
|
15
15
|
list-topic-posts [options] <topicSlug> List posts tagged with a topic in a space (cursor-paginated).
|
|
16
16
|
feed [options] List the unified feed (posts and replies, newest first) in a space.
|
|
17
|
+
search-posts [options] <query> Search a space's posts and replies (newest first). The query supports keywords plus from:<name> and topic:<tag> operators (quote multi-word values, e.g.
|
|
18
|
+
from:"Jane Doe"). Each result is an individual post or reply, not a whole thread.
|
|
17
19
|
get-post [options] <postId> Get a post with its ancestors and replies (paginated).
|
|
18
20
|
list-posts [options] List posts in a space (paginated).
|
|
19
21
|
create-post [options] Create a post in a space.
|
|
@@ -85,6 +87,22 @@ Options:
|
|
|
85
87
|
-h, --help display help for command
|
|
86
88
|
```
|
|
87
89
|
|
|
90
|
+
## search-posts
|
|
91
|
+
|
|
92
|
+
```
|
|
93
|
+
Usage: gobi space search-posts [options] <query>
|
|
94
|
+
|
|
95
|
+
Search a space's posts and replies (newest first). The query supports keywords plus from:<name> and topic:<tag> operators (quote multi-word values, e.g. from:"Jane Doe"). Each result is an individual
|
|
96
|
+
post or reply, not a whole thread.
|
|
97
|
+
|
|
98
|
+
Options:
|
|
99
|
+
--limit <number> Items per page (default: "20")
|
|
100
|
+
--cursor <string> Pagination cursor from previous response
|
|
101
|
+
--channel <channelId> Restrict results to one channel (see `list-channels`). Omit to search the main feed and all channels visible to you.
|
|
102
|
+
--space-slug <spaceSlug> Space slug (overrides .gobi/settings.yaml)
|
|
103
|
+
-h, --help display help for command
|
|
104
|
+
```
|
|
105
|
+
|
|
88
106
|
## get-post
|
|
89
107
|
|
|
90
108
|
```
|
|
@@ -8,12 +8,12 @@ description: >-
|
|
|
8
8
|
allowed-tools: Bash(gobi:*)
|
|
9
9
|
metadata:
|
|
10
10
|
author: gobi-ai
|
|
11
|
-
version: "2.0.
|
|
11
|
+
version: "2.0.32"
|
|
12
12
|
---
|
|
13
13
|
|
|
14
14
|
# gobi-vault
|
|
15
15
|
|
|
16
|
-
Gobi vault commands for publishing your vault profile and syncing files (v2.0.
|
|
16
|
+
Gobi vault commands for publishing your vault profile and syncing files (v2.0.32).
|
|
17
17
|
|
|
18
18
|
Requires gobi-cli installed and authenticated. See gobi-core skill for setup.
|
|
19
19
|
|