@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.
@@ -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.31",
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.31",
12
+ "version": "2.0.32",
13
13
  "author": {
14
14
  "name": "gobi-ai"
15
15
  },
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "gobi",
3
3
  "description": "Manage the Gobi collaborative knowledge platform from the command line",
4
- "version": "2.0.31",
4
+ "version": "2.0.32",
5
5
  "author": {
6
6
  "name": "gobi-ai"
7
7
  },
@@ -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;
@@ -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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gobi-ai/cli",
3
- "version": "2.0.31",
3
+ "version": "2.0.32",
4
4
  "description": "CLI client for the Gobi collaborative knowledge platform",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -9,12 +9,12 @@ description: >-
9
9
  allowed-tools: Bash(gobi:*)
10
10
  metadata:
11
11
  author: gobi-ai
12
- version: "2.0.31"
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.31).
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.31"
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.31).
16
+ Core CLI commands for the Gobi collaborative knowledge platform (v2.0.32).
17
17
 
18
18
  ## Prerequisites
19
19
 
@@ -7,7 +7,7 @@ description: >-
7
7
  allowed-tools: Bash(gobi:*)
8
8
  metadata:
9
9
  author: gobi-ai
10
- version: "2.0.31"
10
+ version: "2.0.32"
11
11
  ---
12
12
 
13
13
  # Gobi Homepage Developer Guide
@@ -10,12 +10,12 @@ description: >-
10
10
  allowed-tools: Bash(gobi:*)
11
11
  metadata:
12
12
  author: gobi-ai
13
- version: "2.0.31"
13
+ version: "2.0.32"
14
14
  ---
15
15
 
16
16
  # gobi-media
17
17
 
18
- Gobi media generation commands (v2.0.31).
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.31"
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.31).
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.31"
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.31).
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.31"
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.31).
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