@gobi-ai/cli 2.0.25 → 2.0.26
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/global.js +8 -36
- package/dist/commands/personal.js +8 -36
- package/dist/commands/space.js +7 -35
- 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 +2 -2
- package/skills/gobi-space/references/global.md +17 -21
- package/skills/gobi-space/references/personal.md +17 -20
- package/skills/gobi-space/references/space.md +1 -4
- 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.26",
|
|
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.26",
|
|
13
13
|
"author": {
|
|
14
14
|
"name": "gobi-ai"
|
|
15
15
|
},
|
package/dist/commands/global.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { WEB_BASE_URL } from "../constants.js";
|
|
2
2
|
import { apiGet, apiPost, apiPatch, apiDelete } from "../client.js";
|
|
3
|
-
import { isJsonMode, jsonOut, readStdin,
|
|
3
|
+
import { isJsonMode, jsonOut, readStdin, unwrapResp, } from "./utils.js";
|
|
4
4
|
import { uploadPostAttachments, assertPostAttachmentMix, } from "../attachments.js";
|
|
5
5
|
function readContent(value) {
|
|
6
6
|
if (value === "-")
|
|
@@ -187,11 +187,11 @@ export function registerGlobalCommand(program) {
|
|
|
187
187
|
// ── Create post ──
|
|
188
188
|
global
|
|
189
189
|
.command("create-post")
|
|
190
|
-
.description("Create a post in the global feed.
|
|
190
|
+
.description("Create a post in the global feed.")
|
|
191
191
|
.option("--title <title>", "Title of the post")
|
|
192
192
|
.option("--content <content>", "Post content (markdown supported, use \"-\" for stdin)")
|
|
193
193
|
.option("--rich-text <richText>", "Rich-text JSON array (mutually exclusive with --content)")
|
|
194
|
-
.option("--
|
|
194
|
+
.option("--artifact <artifactId>", "Attach an existing artifact to the post (repeatable). Create artifacts with `gobi artifact create`.", (value, prev = []) => [...prev, value], [])
|
|
195
195
|
.option("--attach <file>", "Local media file to attach. Repeatable. X-style mix rule: up to 4 photos OR 1 GIF OR 1 video. Size ceilings: 5MB photos / 15MB GIFs / 512MB video.", (value, prev = []) => [...prev, value], [])
|
|
196
196
|
.option("--repost-post-id <postId>", "Wrap an existing top-level post as the embedded card on this new post. Composes with --content / --rich-text / --attach (the wrapping author's text + media render above the embedded card). Reposts-of-reposts are collapsed to the transitive root server-side. The referenced post must exist, not be deleted, and not itself be a reply.")
|
|
197
197
|
.action(async (opts) => {
|
|
@@ -201,10 +201,6 @@ export function registerGlobalCommand(program) {
|
|
|
201
201
|
if (opts.content && opts.richText) {
|
|
202
202
|
throw new Error("--content and --rich-text are mutually exclusive.");
|
|
203
203
|
}
|
|
204
|
-
let authorVaultSlug;
|
|
205
|
-
if (opts.vaultSlug) {
|
|
206
|
-
authorVaultSlug = resolveVaultSlug({ vaultSlug: opts.vaultSlug });
|
|
207
|
-
}
|
|
208
204
|
const body = {};
|
|
209
205
|
if (opts.title != null)
|
|
210
206
|
body.title = opts.title;
|
|
@@ -221,8 +217,8 @@ export function registerGlobalCommand(program) {
|
|
|
221
217
|
}
|
|
222
218
|
body.richText = parsed;
|
|
223
219
|
}
|
|
224
|
-
if (
|
|
225
|
-
body.
|
|
220
|
+
if (opts.artifact && opts.artifact.length > 0)
|
|
221
|
+
body.artifactIds = opts.artifact;
|
|
226
222
|
if (opts.attach && opts.attach.length > 0) {
|
|
227
223
|
assertPostAttachmentMix(opts.attach);
|
|
228
224
|
body.attachments = await uploadPostAttachments(opts.attach);
|
|
@@ -254,25 +250,18 @@ export function registerGlobalCommand(program) {
|
|
|
254
250
|
.option("--title <title>", "New title")
|
|
255
251
|
.option("--content <content>", "New content (markdown supported, use \"-\" for stdin)")
|
|
256
252
|
.option("--rich-text <richText>", "Rich-text JSON array (mutually exclusive with --content)")
|
|
257
|
-
.option("--vault-slug <vaultSlug>", "Attribute the post to this vault (sets authorVaultSlug).")
|
|
258
253
|
.option("--attach <file>", "Replace the post's media attachments with the given files (existing attachments are removed). Repeatable. X-style mix rule: up to 4 photos OR 1 GIF OR 1 video. Size ceilings: 5MB photos / 15MB GIFs / 512MB video. Omit to leave attachments unchanged.", (value, prev = []) => [...prev, value], [])
|
|
259
254
|
.action(async (postId, opts) => {
|
|
260
|
-
const wantsVaultChange = !!opts.vaultSlug;
|
|
261
255
|
const wantsAttachChange = !!(opts.attach && opts.attach.length > 0);
|
|
262
256
|
if (opts.title == null &&
|
|
263
257
|
opts.content == null &&
|
|
264
258
|
opts.richText == null &&
|
|
265
|
-
!wantsVaultChange &&
|
|
266
259
|
!wantsAttachChange) {
|
|
267
|
-
throw new Error("Provide at least --title, --content, --rich-text,
|
|
260
|
+
throw new Error("Provide at least --title, --content, --rich-text, or --attach to update.");
|
|
268
261
|
}
|
|
269
262
|
if (opts.content && opts.richText) {
|
|
270
263
|
throw new Error("--content and --rich-text are mutually exclusive.");
|
|
271
264
|
}
|
|
272
|
-
let authorVaultSlug;
|
|
273
|
-
if (opts.vaultSlug) {
|
|
274
|
-
authorVaultSlug = resolveVaultSlug(opts);
|
|
275
|
-
}
|
|
276
265
|
const body = {};
|
|
277
266
|
if (opts.title != null)
|
|
278
267
|
body.title = opts.title;
|
|
@@ -289,8 +278,6 @@ export function registerGlobalCommand(program) {
|
|
|
289
278
|
}
|
|
290
279
|
body.richText = parsed;
|
|
291
280
|
}
|
|
292
|
-
if (authorVaultSlug !== undefined)
|
|
293
|
-
body.authorVaultSlug = authorVaultSlug;
|
|
294
281
|
if (opts.attach && opts.attach.length > 0) {
|
|
295
282
|
assertPostAttachmentMix(opts.attach);
|
|
296
283
|
body.attachments = await uploadPostAttachments(opts.attach);
|
|
@@ -321,7 +308,6 @@ export function registerGlobalCommand(program) {
|
|
|
321
308
|
.description("Create a reply to a post in the global feed.")
|
|
322
309
|
.option("--content <content>", "Reply content (markdown supported, use \"-\" for stdin)")
|
|
323
310
|
.option("--rich-text <richText>", "Rich-text JSON array (mutually exclusive with --content)")
|
|
324
|
-
.option("--vault-slug <vaultSlug>", "Attribute the reply to this vault (sets authorVaultSlug).")
|
|
325
311
|
.option("--attach <file>", "Local media file to attach to this reply. Repeatable. X-style mix rule: up to 4 photos OR 1 GIF OR 1 video. Size ceilings: 5MB photos / 15MB GIFs / 512MB video.", (value, prev = []) => [...prev, value], [])
|
|
326
312
|
.action(async (postId, opts) => {
|
|
327
313
|
if (!opts.content && !opts.richText) {
|
|
@@ -330,10 +316,6 @@ export function registerGlobalCommand(program) {
|
|
|
330
316
|
if (opts.content && opts.richText) {
|
|
331
317
|
throw new Error("--content and --rich-text are mutually exclusive.");
|
|
332
318
|
}
|
|
333
|
-
let authorVaultSlug;
|
|
334
|
-
if (opts.vaultSlug) {
|
|
335
|
-
authorVaultSlug = resolveVaultSlug(opts);
|
|
336
|
-
}
|
|
337
319
|
const body = {};
|
|
338
320
|
if (opts.content != null) {
|
|
339
321
|
body.content = readContent(opts.content);
|
|
@@ -348,8 +330,6 @@ export function registerGlobalCommand(program) {
|
|
|
348
330
|
}
|
|
349
331
|
body.richText = parsed;
|
|
350
332
|
}
|
|
351
|
-
if (authorVaultSlug)
|
|
352
|
-
body.authorVaultSlug = authorVaultSlug;
|
|
353
333
|
if (opts.attach && opts.attach.length > 0) {
|
|
354
334
|
assertPostAttachmentMix(opts.attach);
|
|
355
335
|
body.attachments = await uploadPostAttachments(opts.attach);
|
|
@@ -367,19 +347,13 @@ export function registerGlobalCommand(program) {
|
|
|
367
347
|
.description("Edit a reply you authored in the global feed.")
|
|
368
348
|
.option("--content <content>", "New reply content (markdown supported, use \"-\" for stdin)")
|
|
369
349
|
.option("--rich-text <richText>", "Rich-text JSON array (mutually exclusive with --content)")
|
|
370
|
-
.option("--vault-slug <vaultSlug>", "Attribute the reply to this vault (sets authorVaultSlug).")
|
|
371
350
|
.action(async (replyId, opts) => {
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
throw new Error("Provide at least --content, --rich-text, or --vault-slug to update.");
|
|
351
|
+
if (opts.content == null && opts.richText == null) {
|
|
352
|
+
throw new Error("Provide at least --content or --rich-text to update.");
|
|
375
353
|
}
|
|
376
354
|
if (opts.content && opts.richText) {
|
|
377
355
|
throw new Error("--content and --rich-text are mutually exclusive.");
|
|
378
356
|
}
|
|
379
|
-
let authorVaultSlug;
|
|
380
|
-
if (opts.vaultSlug) {
|
|
381
|
-
authorVaultSlug = resolveVaultSlug(opts);
|
|
382
|
-
}
|
|
383
357
|
const body = {};
|
|
384
358
|
if (opts.content != null) {
|
|
385
359
|
body.content = readContent(opts.content);
|
|
@@ -394,8 +368,6 @@ export function registerGlobalCommand(program) {
|
|
|
394
368
|
}
|
|
395
369
|
body.richText = parsed;
|
|
396
370
|
}
|
|
397
|
-
if (authorVaultSlug !== undefined)
|
|
398
|
-
body.authorVaultSlug = authorVaultSlug;
|
|
399
371
|
const resp = (await apiPatch(`/posts/replies/${replyId}`, body));
|
|
400
372
|
const reply = unwrapResp(resp);
|
|
401
373
|
if (isJsonMode(global)) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { apiGet, apiPost, apiPatch, apiDelete } from "../client.js";
|
|
2
|
-
import { isJsonMode, jsonOut, readStdin,
|
|
2
|
+
import { isJsonMode, jsonOut, readStdin, unwrapResp, } from "./utils.js";
|
|
3
3
|
import { uploadPostAttachments, assertPostAttachmentMix, } from "../attachments.js";
|
|
4
4
|
function readContent(value) {
|
|
5
5
|
if (value === "-")
|
|
@@ -185,11 +185,11 @@ export function registerPersonalCommand(program) {
|
|
|
185
185
|
// private posts have no audience.
|
|
186
186
|
personal
|
|
187
187
|
.command("create-post")
|
|
188
|
-
.description("Create a private post in your personal space.
|
|
188
|
+
.description("Create a private post in your personal space. Visible only to you.")
|
|
189
189
|
.option("--title <title>", "Title of the post")
|
|
190
190
|
.option("--content <content>", "Post content (markdown supported, use \"-\" for stdin)")
|
|
191
191
|
.option("--rich-text <richText>", "Rich-text JSON array (mutually exclusive with --content)")
|
|
192
|
-
.option("--
|
|
192
|
+
.option("--artifact <artifactId>", "Attach an existing artifact to the post (repeatable). Create artifacts with `gobi artifact create`.", (value, prev = []) => [...prev, value], [])
|
|
193
193
|
.option("--attach <file>", "Local media file to attach. Repeatable. X-style mix rule: up to 4 photos OR 1 GIF OR 1 video. Size ceilings: 5MB photos / 15MB GIFs / 512MB video.", (value, prev = []) => [...prev, value], [])
|
|
194
194
|
.option("--repost-post-id <postId>", "Wrap an existing top-level post as the embedded card on this new private post. The referenced post must be visible to you (your own personal-space post, a global-feed post, or a post in a space you're a member of). Reposting someone else's personal-space post returns 404.")
|
|
195
195
|
.action(async (opts) => {
|
|
@@ -199,10 +199,6 @@ export function registerPersonalCommand(program) {
|
|
|
199
199
|
if (opts.content && opts.richText) {
|
|
200
200
|
throw new Error("--content and --rich-text are mutually exclusive.");
|
|
201
201
|
}
|
|
202
|
-
let authorVaultSlug;
|
|
203
|
-
if (opts.vaultSlug) {
|
|
204
|
-
authorVaultSlug = resolveVaultSlug({ vaultSlug: opts.vaultSlug });
|
|
205
|
-
}
|
|
206
202
|
const body = {};
|
|
207
203
|
if (opts.title != null)
|
|
208
204
|
body.title = opts.title;
|
|
@@ -219,8 +215,8 @@ export function registerPersonalCommand(program) {
|
|
|
219
215
|
}
|
|
220
216
|
body.richText = parsed;
|
|
221
217
|
}
|
|
222
|
-
if (
|
|
223
|
-
body.
|
|
218
|
+
if (opts.artifact && opts.artifact.length > 0)
|
|
219
|
+
body.artifactIds = opts.artifact;
|
|
224
220
|
if (opts.attach && opts.attach.length > 0) {
|
|
225
221
|
assertPostAttachmentMix(opts.attach);
|
|
226
222
|
body.attachments = await uploadPostAttachments(opts.attach);
|
|
@@ -255,25 +251,18 @@ export function registerPersonalCommand(program) {
|
|
|
255
251
|
.option("--title <title>", "New title")
|
|
256
252
|
.option("--content <content>", "New content (markdown supported, use \"-\" for stdin)")
|
|
257
253
|
.option("--rich-text <richText>", "Rich-text JSON array (mutually exclusive with --content)")
|
|
258
|
-
.option("--vault-slug <vaultSlug>", "Attribute the post to this vault (sets authorVaultSlug).")
|
|
259
254
|
.option("--attach <file>", "Replace the post's media attachments with the given files (existing attachments are removed). Repeatable. X-style mix rule: up to 4 photos OR 1 GIF OR 1 video. Size ceilings: 5MB photos / 15MB GIFs / 512MB video. Omit to leave attachments unchanged.", (value, prev = []) => [...prev, value], [])
|
|
260
255
|
.action(async (postId, opts) => {
|
|
261
|
-
const wantsVaultChange = !!opts.vaultSlug;
|
|
262
256
|
const wantsAttachChange = !!(opts.attach && opts.attach.length > 0);
|
|
263
257
|
if (opts.title == null &&
|
|
264
258
|
opts.content == null &&
|
|
265
259
|
opts.richText == null &&
|
|
266
|
-
!wantsVaultChange &&
|
|
267
260
|
!wantsAttachChange) {
|
|
268
|
-
throw new Error("Provide at least --title, --content, --rich-text,
|
|
261
|
+
throw new Error("Provide at least --title, --content, --rich-text, or --attach to update.");
|
|
269
262
|
}
|
|
270
263
|
if (opts.content && opts.richText) {
|
|
271
264
|
throw new Error("--content and --rich-text are mutually exclusive.");
|
|
272
265
|
}
|
|
273
|
-
let authorVaultSlug;
|
|
274
|
-
if (opts.vaultSlug) {
|
|
275
|
-
authorVaultSlug = resolveVaultSlug(opts);
|
|
276
|
-
}
|
|
277
266
|
const body = {};
|
|
278
267
|
if (opts.title != null)
|
|
279
268
|
body.title = opts.title;
|
|
@@ -290,8 +279,6 @@ export function registerPersonalCommand(program) {
|
|
|
290
279
|
}
|
|
291
280
|
body.richText = parsed;
|
|
292
281
|
}
|
|
293
|
-
if (authorVaultSlug !== undefined)
|
|
294
|
-
body.authorVaultSlug = authorVaultSlug;
|
|
295
282
|
if (opts.attach && opts.attach.length > 0) {
|
|
296
283
|
assertPostAttachmentMix(opts.attach);
|
|
297
284
|
body.attachments = await uploadPostAttachments(opts.attach);
|
|
@@ -327,7 +314,6 @@ export function registerPersonalCommand(program) {
|
|
|
327
314
|
.description("Reply to a personal-space post. The reply inherits the parent's private scope automatically.")
|
|
328
315
|
.option("--content <content>", "Reply content (markdown supported, use \"-\" for stdin)")
|
|
329
316
|
.option("--rich-text <richText>", "Rich-text JSON array (mutually exclusive with --content)")
|
|
330
|
-
.option("--vault-slug <vaultSlug>", "Attribute the reply to this vault (sets authorVaultSlug).")
|
|
331
317
|
.option("--attach <file>", "Local media file to attach to this reply. Repeatable. X-style mix rule: up to 4 photos OR 1 GIF OR 1 video. Size ceilings: 5MB photos / 15MB GIFs / 512MB video.", (value, prev = []) => [...prev, value], [])
|
|
332
318
|
.action(async (postId, opts) => {
|
|
333
319
|
if (!opts.content && !opts.richText) {
|
|
@@ -336,10 +322,6 @@ export function registerPersonalCommand(program) {
|
|
|
336
322
|
if (opts.content && opts.richText) {
|
|
337
323
|
throw new Error("--content and --rich-text are mutually exclusive.");
|
|
338
324
|
}
|
|
339
|
-
let authorVaultSlug;
|
|
340
|
-
if (opts.vaultSlug) {
|
|
341
|
-
authorVaultSlug = resolveVaultSlug(opts);
|
|
342
|
-
}
|
|
343
325
|
const body = {};
|
|
344
326
|
if (opts.content != null) {
|
|
345
327
|
body.content = readContent(opts.content);
|
|
@@ -354,8 +336,6 @@ export function registerPersonalCommand(program) {
|
|
|
354
336
|
}
|
|
355
337
|
body.richText = parsed;
|
|
356
338
|
}
|
|
357
|
-
if (authorVaultSlug)
|
|
358
|
-
body.authorVaultSlug = authorVaultSlug;
|
|
359
339
|
if (opts.attach && opts.attach.length > 0) {
|
|
360
340
|
assertPostAttachmentMix(opts.attach);
|
|
361
341
|
body.attachments = await uploadPostAttachments(opts.attach);
|
|
@@ -373,19 +353,13 @@ export function registerPersonalCommand(program) {
|
|
|
373
353
|
.description("Edit a reply you authored in your personal space.")
|
|
374
354
|
.option("--content <content>", "New reply content (markdown supported, use \"-\" for stdin)")
|
|
375
355
|
.option("--rich-text <richText>", "Rich-text JSON array (mutually exclusive with --content)")
|
|
376
|
-
.option("--vault-slug <vaultSlug>", "Attribute the reply to this vault (sets authorVaultSlug).")
|
|
377
356
|
.action(async (replyId, opts) => {
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
throw new Error("Provide at least --content, --rich-text, or --vault-slug to update.");
|
|
357
|
+
if (opts.content == null && opts.richText == null) {
|
|
358
|
+
throw new Error("Provide at least --content or --rich-text to update.");
|
|
381
359
|
}
|
|
382
360
|
if (opts.content && opts.richText) {
|
|
383
361
|
throw new Error("--content and --rich-text are mutually exclusive.");
|
|
384
362
|
}
|
|
385
|
-
let authorVaultSlug;
|
|
386
|
-
if (opts.vaultSlug) {
|
|
387
|
-
authorVaultSlug = resolveVaultSlug(opts);
|
|
388
|
-
}
|
|
389
363
|
const body = {};
|
|
390
364
|
if (opts.content != null) {
|
|
391
365
|
body.content = readContent(opts.content);
|
|
@@ -400,8 +374,6 @@ export function registerPersonalCommand(program) {
|
|
|
400
374
|
}
|
|
401
375
|
body.richText = parsed;
|
|
402
376
|
}
|
|
403
|
-
if (authorVaultSlug !== undefined)
|
|
404
|
-
body.authorVaultSlug = authorVaultSlug;
|
|
405
377
|
const resp = (await apiPatch(`/posts/replies/${replyId}`, body));
|
|
406
378
|
const reply = unwrapResp(resp);
|
|
407
379
|
if (isJsonMode(personal)) {
|
package/dist/commands/space.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { WEB_BASE_URL } from "../constants.js";
|
|
2
2
|
import { apiGet, apiPost, apiPatch, apiDelete } from "../client.js";
|
|
3
3
|
import { requireSpace, selectSpace, setSpaceRequirement, writeSpaceSetting, } from "./init.js";
|
|
4
|
-
import { isJsonMode, jsonOut, readStdin, resolveSpaceSlug,
|
|
4
|
+
import { isJsonMode, jsonOut, readStdin, resolveSpaceSlug, unwrapResp, } from "./utils.js";
|
|
5
5
|
import { uploadPostAttachments, assertPostAttachmentMix, } from "../attachments.js";
|
|
6
6
|
function readContent(value) {
|
|
7
7
|
if (value === "-")
|
|
@@ -315,7 +315,7 @@ export function registerSpaceCommand(program) {
|
|
|
315
315
|
.option("--title <title>", "Title of the post")
|
|
316
316
|
.option("--content <content>", "Post content (markdown supported, use \"-\" for stdin)")
|
|
317
317
|
.option("--rich-text <richText>", "Rich-text JSON array (mutually exclusive with --content)")
|
|
318
|
-
.option("--
|
|
318
|
+
.option("--artifact <artifactId>", "Attach an existing artifact to the post (repeatable). Create artifacts with `gobi artifact create`.", (value, prev = []) => [...prev, value], [])
|
|
319
319
|
.option("--space-slug <spaceSlug>", "Space slug (overrides .gobi/settings.yaml)")
|
|
320
320
|
.option("--attach <file>", "Local media file to attach. Repeatable. X-style mix rule: up to 4 photos OR 1 GIF OR 1 video. Size ceilings: 5MB photos / 15MB GIFs / 512MB video.", (value, prev = []) => [...prev, value], [])
|
|
321
321
|
.option("--repost-post-id <postId>", "Wrap an existing top-level post as the embedded card on this new post. Composes with --content / --rich-text / --attach (the wrapping author's text + media render above the embedded card). Reposts-of-reposts are collapsed to the transitive root server-side. The referenced post must exist, not be deleted, and not itself be a reply.")
|
|
@@ -326,10 +326,6 @@ export function registerSpaceCommand(program) {
|
|
|
326
326
|
if (opts.content && opts.richText) {
|
|
327
327
|
throw new Error("--content and --rich-text are mutually exclusive.");
|
|
328
328
|
}
|
|
329
|
-
let authorVaultSlug;
|
|
330
|
-
if (opts.vaultSlug) {
|
|
331
|
-
authorVaultSlug = resolveVaultSlug({ vaultSlug: opts.vaultSlug });
|
|
332
|
-
}
|
|
333
329
|
const body = {};
|
|
334
330
|
if (opts.title != null)
|
|
335
331
|
body.title = opts.title;
|
|
@@ -346,8 +342,8 @@ export function registerSpaceCommand(program) {
|
|
|
346
342
|
}
|
|
347
343
|
body.richText = parsed;
|
|
348
344
|
}
|
|
349
|
-
if (
|
|
350
|
-
body.
|
|
345
|
+
if (opts.artifact && opts.artifact.length > 0)
|
|
346
|
+
body.artifactIds = opts.artifact;
|
|
351
347
|
if (opts.attach && opts.attach.length > 0) {
|
|
352
348
|
assertPostAttachmentMix(opts.attach);
|
|
353
349
|
body.attachments = await uploadPostAttachments(opts.attach);
|
|
@@ -379,27 +375,20 @@ export function registerSpaceCommand(program) {
|
|
|
379
375
|
.option("--title <title>", "New title for the post")
|
|
380
376
|
.option("--content <content>", "New content for the post (markdown supported, use \"-\" for stdin)")
|
|
381
377
|
.option("--rich-text <richText>", "Rich-text JSON array (mutually exclusive with --content)")
|
|
382
|
-
.option("--vault-slug <vaultSlug>", "Attribute the post to this vault (sets authorVaultSlug). Caller must own the vault.")
|
|
383
378
|
.option("--space-slug <spaceSlug>", "Space slug (overrides .gobi/settings.yaml)")
|
|
384
379
|
.option("--attach <file>", "Replace the post's media attachments with the given files (existing attachments are removed). Repeatable. X-style mix rule: up to 4 photos OR 1 GIF OR 1 video. Size ceilings: 5MB photos / 15MB GIFs / 512MB video. Omit to leave attachments unchanged.", (value, prev = []) => [...prev, value], [])
|
|
385
380
|
.action(async (postId, opts) => {
|
|
386
|
-
const wantsVaultChange = !!opts.vaultSlug;
|
|
387
381
|
const wantsAttachChange = !!(opts.attach && opts.attach.length > 0);
|
|
388
382
|
if (opts.title == null &&
|
|
389
383
|
opts.content == null &&
|
|
390
384
|
opts.richText == null &&
|
|
391
|
-
!wantsVaultChange &&
|
|
392
385
|
!wantsAttachChange) {
|
|
393
|
-
throw new Error("Provide at least --title, --content, --rich-text,
|
|
386
|
+
throw new Error("Provide at least --title, --content, --rich-text, or --attach to update.");
|
|
394
387
|
}
|
|
395
388
|
if (opts.content && opts.richText) {
|
|
396
389
|
throw new Error("--content and --rich-text are mutually exclusive.");
|
|
397
390
|
}
|
|
398
391
|
const spaceSlug = resolveSpaceSlug(space, opts);
|
|
399
|
-
let authorVaultSlug;
|
|
400
|
-
if (opts.vaultSlug) {
|
|
401
|
-
authorVaultSlug = resolveVaultSlug(opts);
|
|
402
|
-
}
|
|
403
392
|
const body = {};
|
|
404
393
|
if (opts.title != null)
|
|
405
394
|
body.title = opts.title;
|
|
@@ -416,8 +405,6 @@ export function registerSpaceCommand(program) {
|
|
|
416
405
|
}
|
|
417
406
|
body.richText = parsed;
|
|
418
407
|
}
|
|
419
|
-
if (authorVaultSlug !== undefined)
|
|
420
|
-
body.authorVaultSlug = authorVaultSlug;
|
|
421
408
|
if (opts.attach && opts.attach.length > 0) {
|
|
422
409
|
assertPostAttachmentMix(opts.attach);
|
|
423
410
|
body.attachments = await uploadPostAttachments(opts.attach);
|
|
@@ -452,7 +439,6 @@ export function registerSpaceCommand(program) {
|
|
|
452
439
|
.description("Create a reply to a post in a space.")
|
|
453
440
|
.option("--content <content>", "Reply content (markdown supported, use \"-\" for stdin)")
|
|
454
441
|
.option("--rich-text <richText>", "Rich-text JSON array (mutually exclusive with --content)")
|
|
455
|
-
.option("--vault-slug <vaultSlug>", "Attribute the reply to this vault (sets authorVaultSlug). Caller must own the vault.")
|
|
456
442
|
.option("--space-slug <spaceSlug>", "Space slug (overrides .gobi/settings.yaml)")
|
|
457
443
|
.option("--attach <file>", "Local media file to attach to this reply. Repeatable. X-style mix rule: up to 4 photos OR 1 GIF OR 1 video. Size ceilings: 5MB photos / 15MB GIFs / 512MB video.", (value, prev = []) => [...prev, value], [])
|
|
458
444
|
.action(async (postId, opts) => {
|
|
@@ -462,10 +448,6 @@ export function registerSpaceCommand(program) {
|
|
|
462
448
|
if (opts.content && opts.richText) {
|
|
463
449
|
throw new Error("--content and --rich-text are mutually exclusive.");
|
|
464
450
|
}
|
|
465
|
-
let authorVaultSlug;
|
|
466
|
-
if (opts.vaultSlug) {
|
|
467
|
-
authorVaultSlug = resolveVaultSlug(opts);
|
|
468
|
-
}
|
|
469
451
|
const body = {};
|
|
470
452
|
if (opts.content != null) {
|
|
471
453
|
body.content = readContent(opts.content);
|
|
@@ -480,8 +462,6 @@ export function registerSpaceCommand(program) {
|
|
|
480
462
|
}
|
|
481
463
|
body.richText = parsed;
|
|
482
464
|
}
|
|
483
|
-
if (authorVaultSlug)
|
|
484
|
-
body.authorVaultSlug = authorVaultSlug;
|
|
485
465
|
if (opts.attach && opts.attach.length > 0) {
|
|
486
466
|
assertPostAttachmentMix(opts.attach);
|
|
487
467
|
body.attachments = await uploadPostAttachments(opts.attach);
|
|
@@ -501,21 +481,15 @@ export function registerSpaceCommand(program) {
|
|
|
501
481
|
.description("Edit a reply you authored in a space.")
|
|
502
482
|
.option("--content <content>", "New content for the reply (markdown supported, use \"-\" for stdin)")
|
|
503
483
|
.option("--rich-text <richText>", "Rich-text JSON array (mutually exclusive with --content)")
|
|
504
|
-
.option("--vault-slug <vaultSlug>", "Attribute the reply to this vault (sets authorVaultSlug). Caller must own the vault.")
|
|
505
484
|
.option("--space-slug <spaceSlug>", "Space slug (overrides .gobi/settings.yaml)")
|
|
506
485
|
.action(async (replyId, opts) => {
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
throw new Error("Provide at least --content, --rich-text, or --vault-slug to update.");
|
|
486
|
+
if (opts.content == null && opts.richText == null) {
|
|
487
|
+
throw new Error("Provide at least --content or --rich-text to update.");
|
|
510
488
|
}
|
|
511
489
|
if (opts.content && opts.richText) {
|
|
512
490
|
throw new Error("--content and --rich-text are mutually exclusive.");
|
|
513
491
|
}
|
|
514
492
|
const spaceSlug = resolveSpaceSlug(space, opts);
|
|
515
|
-
let authorVaultSlug;
|
|
516
|
-
if (opts.vaultSlug) {
|
|
517
|
-
authorVaultSlug = resolveVaultSlug(opts);
|
|
518
|
-
}
|
|
519
493
|
const body = {};
|
|
520
494
|
if (opts.content != null) {
|
|
521
495
|
body.content = readContent(opts.content);
|
|
@@ -530,8 +504,6 @@ export function registerSpaceCommand(program) {
|
|
|
530
504
|
}
|
|
531
505
|
body.richText = parsed;
|
|
532
506
|
}
|
|
533
|
-
if (authorVaultSlug !== undefined)
|
|
534
|
-
body.authorVaultSlug = authorVaultSlug;
|
|
535
507
|
const resp = (await apiPatch(`/spaces/${spaceSlug}/replies/${replyId}`, body));
|
|
536
508
|
const msg = unwrapResp(resp);
|
|
537
509
|
if (isJsonMode(space)) {
|
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.26"
|
|
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.26).
|
|
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.26"
|
|
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.26).
|
|
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.26"
|
|
14
14
|
---
|
|
15
15
|
|
|
16
16
|
# gobi-media
|
|
17
17
|
|
|
18
|
-
Gobi media generation commands (v2.0.
|
|
18
|
+
Gobi media generation commands (v2.0.26).
|
|
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.26"
|
|
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.26).
|
|
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.26"
|
|
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.26).
|
|
20
20
|
|
|
21
21
|
Requires gobi-cli installed and authenticated. See the **gobi-core** skill for setup.
|
|
22
22
|
|
|
@@ -12,8 +12,7 @@ Commands:
|
|
|
12
12
|
feed [options] List the unified feed (posts and replies, newest first) in the global public feed.
|
|
13
13
|
list-posts [options] List posts in the global feed (paginated). Pass --mine to limit to your own posts.
|
|
14
14
|
get-post [options] <postId> Get a global post with its ancestors and replies (paginated).
|
|
15
|
-
create-post [options] Create a post in the global feed.
|
|
16
|
-
personal post).
|
|
15
|
+
create-post [options] Create a post in the global feed.
|
|
17
16
|
edit-post [options] <postId> Edit a post you authored in the global feed.
|
|
18
17
|
delete-post <postId> Delete a post you authored in the global feed.
|
|
19
18
|
create-reply [options] <postId> Create a reply to a post in the global feed.
|
|
@@ -70,13 +69,13 @@ Options:
|
|
|
70
69
|
```
|
|
71
70
|
Usage: gobi global create-post [options]
|
|
72
71
|
|
|
73
|
-
Create a post in the global feed.
|
|
72
|
+
Create a post in the global feed.
|
|
74
73
|
|
|
75
74
|
Options:
|
|
76
75
|
--title <title> Title of the post
|
|
77
76
|
--content <content> Post content (markdown supported, use "-" for stdin)
|
|
78
77
|
--rich-text <richText> Rich-text JSON array (mutually exclusive with --content)
|
|
79
|
-
--
|
|
78
|
+
--artifact <artifactId> Attach an existing artifact to the post (repeatable). Create artifacts with `gobi artifact create`. (default: [])
|
|
80
79
|
--attach <file> Local media file to attach. Repeatable. X-style mix rule: up to 4 photos OR 1 GIF OR 1 video. Size ceilings: 5MB photos / 15MB GIFs / 512MB video. (default: [])
|
|
81
80
|
--repost-post-id <postId> Wrap an existing top-level post as the embedded card on this new post. Composes with --content / --rich-text / --attach (the wrapping author's text + media render above
|
|
82
81
|
the embedded card). Reposts-of-reposts are collapsed to the transitive root server-side. The referenced post must exist, not be deleted, and not itself be a reply.
|
|
@@ -91,13 +90,12 @@ Usage: gobi global edit-post [options] <postId>
|
|
|
91
90
|
Edit a post you authored in the global feed.
|
|
92
91
|
|
|
93
92
|
Options:
|
|
94
|
-
--title <title>
|
|
95
|
-
--content <content>
|
|
96
|
-
--rich-text <richText>
|
|
97
|
-
--
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
-h, --help display help for command
|
|
93
|
+
--title <title> New title
|
|
94
|
+
--content <content> New content (markdown supported, use "-" for stdin)
|
|
95
|
+
--rich-text <richText> Rich-text JSON array (mutually exclusive with --content)
|
|
96
|
+
--attach <file> Replace the post's media attachments with the given files (existing attachments are removed). Repeatable. X-style mix rule: up to 4 photos OR 1 GIF OR 1 video. Size
|
|
97
|
+
ceilings: 5MB photos / 15MB GIFs / 512MB video. Omit to leave attachments unchanged. (default: [])
|
|
98
|
+
-h, --help display help for command
|
|
101
99
|
```
|
|
102
100
|
|
|
103
101
|
## delete-post
|
|
@@ -119,12 +117,11 @@ Usage: gobi global create-reply [options] <postId>
|
|
|
119
117
|
Create a reply to a post in the global feed.
|
|
120
118
|
|
|
121
119
|
Options:
|
|
122
|
-
--content <content>
|
|
123
|
-
--rich-text <richText>
|
|
124
|
-
--
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
-h, --help display help for command
|
|
120
|
+
--content <content> Reply content (markdown supported, use "-" for stdin)
|
|
121
|
+
--rich-text <richText> Rich-text JSON array (mutually exclusive with --content)
|
|
122
|
+
--attach <file> Local media file to attach to this reply. Repeatable. X-style mix rule: up to 4 photos OR 1 GIF OR 1 video. Size ceilings: 5MB photos / 15MB GIFs / 512MB video. (default:
|
|
123
|
+
[])
|
|
124
|
+
-h, --help display help for command
|
|
128
125
|
```
|
|
129
126
|
|
|
130
127
|
## edit-reply
|
|
@@ -135,10 +132,9 @@ Usage: gobi global edit-reply [options] <replyId>
|
|
|
135
132
|
Edit a reply you authored in the global feed.
|
|
136
133
|
|
|
137
134
|
Options:
|
|
138
|
-
--content <content>
|
|
139
|
-
--rich-text <richText>
|
|
140
|
-
|
|
141
|
-
-h, --help display help for command
|
|
135
|
+
--content <content> New reply content (markdown supported, use "-" for stdin)
|
|
136
|
+
--rich-text <richText> Rich-text JSON array (mutually exclusive with --content)
|
|
137
|
+
-h, --help display help for command
|
|
142
138
|
```
|
|
143
139
|
|
|
144
140
|
## delete-reply
|
|
@@ -13,7 +13,7 @@ Commands:
|
|
|
13
13
|
feed [options] List your personal-space feed (posts and replies, newest first). Only you can see these rows.
|
|
14
14
|
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
15
|
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
|
-
create-post [options] Create a private post in your personal space.
|
|
16
|
+
create-post [options] Create a private post in your personal space. Visible only to you.
|
|
17
17
|
edit-post [options] <postId> Edit a post you authored in your personal space.
|
|
18
18
|
delete-post <postId> Delete a post you authored in your personal space.
|
|
19
19
|
create-reply [options] <postId> Reply to a personal-space post. The reply inherits the parent's private scope automatically.
|
|
@@ -67,13 +67,13 @@ Options:
|
|
|
67
67
|
```
|
|
68
68
|
Usage: gobi personal create-post [options]
|
|
69
69
|
|
|
70
|
-
Create a private post in your personal space.
|
|
70
|
+
Create a private post in your personal space. Visible only to you.
|
|
71
71
|
|
|
72
72
|
Options:
|
|
73
73
|
--title <title> Title of the post
|
|
74
74
|
--content <content> Post content (markdown supported, use "-" for stdin)
|
|
75
75
|
--rich-text <richText> Rich-text JSON array (mutually exclusive with --content)
|
|
76
|
-
--
|
|
76
|
+
--artifact <artifactId> Attach an existing artifact to the post (repeatable). Create artifacts with `gobi artifact create`. (default: [])
|
|
77
77
|
--attach <file> Local media file to attach. Repeatable. X-style mix rule: up to 4 photos OR 1 GIF OR 1 video. Size ceilings: 5MB photos / 15MB GIFs / 512MB video. (default: [])
|
|
78
78
|
--repost-post-id <postId> Wrap an existing top-level post as the embedded card on this new private post. The referenced post must be visible to you (your own personal-space post, a global-feed
|
|
79
79
|
post, or a post in a space you're a member of). Reposting someone else's personal-space post returns 404.
|
|
@@ -88,13 +88,12 @@ Usage: gobi personal edit-post [options] <postId>
|
|
|
88
88
|
Edit a post you authored in your personal space.
|
|
89
89
|
|
|
90
90
|
Options:
|
|
91
|
-
--title <title>
|
|
92
|
-
--content <content>
|
|
93
|
-
--rich-text <richText>
|
|
94
|
-
--
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
-h, --help display help for command
|
|
91
|
+
--title <title> New title
|
|
92
|
+
--content <content> New content (markdown supported, use "-" for stdin)
|
|
93
|
+
--rich-text <richText> Rich-text JSON array (mutually exclusive with --content)
|
|
94
|
+
--attach <file> Replace the post's media attachments with the given files (existing attachments are removed). Repeatable. X-style mix rule: up to 4 photos OR 1 GIF OR 1 video. Size
|
|
95
|
+
ceilings: 5MB photos / 15MB GIFs / 512MB video. Omit to leave attachments unchanged. (default: [])
|
|
96
|
+
-h, --help display help for command
|
|
98
97
|
```
|
|
99
98
|
|
|
100
99
|
## delete-post
|
|
@@ -116,12 +115,11 @@ Usage: gobi personal create-reply [options] <postId>
|
|
|
116
115
|
Reply to a personal-space post. The reply inherits the parent's private scope automatically.
|
|
117
116
|
|
|
118
117
|
Options:
|
|
119
|
-
--content <content>
|
|
120
|
-
--rich-text <richText>
|
|
121
|
-
--
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
-h, --help display help for command
|
|
118
|
+
--content <content> Reply content (markdown supported, use "-" for stdin)
|
|
119
|
+
--rich-text <richText> Rich-text JSON array (mutually exclusive with --content)
|
|
120
|
+
--attach <file> Local media file to attach to this reply. Repeatable. X-style mix rule: up to 4 photos OR 1 GIF OR 1 video. Size ceilings: 5MB photos / 15MB GIFs / 512MB video. (default:
|
|
121
|
+
[])
|
|
122
|
+
-h, --help display help for command
|
|
125
123
|
```
|
|
126
124
|
|
|
127
125
|
## edit-reply
|
|
@@ -132,10 +130,9 @@ Usage: gobi personal edit-reply [options] <replyId>
|
|
|
132
130
|
Edit a reply you authored in your personal space.
|
|
133
131
|
|
|
134
132
|
Options:
|
|
135
|
-
--content <content>
|
|
136
|
-
--rich-text <richText>
|
|
137
|
-
|
|
138
|
-
-h, --help display help for command
|
|
133
|
+
--content <content> New reply content (markdown supported, use "-" for stdin)
|
|
134
|
+
--rich-text <richText> Rich-text JSON array (mutually exclusive with --content)
|
|
135
|
+
-h, --help display help for command
|
|
139
136
|
```
|
|
140
137
|
|
|
141
138
|
## delete-reply
|
|
@@ -118,7 +118,7 @@ Options:
|
|
|
118
118
|
--title <title> Title of the post
|
|
119
119
|
--content <content> Post content (markdown supported, use "-" for stdin)
|
|
120
120
|
--rich-text <richText> Rich-text JSON array (mutually exclusive with --content)
|
|
121
|
-
--
|
|
121
|
+
--artifact <artifactId> Attach an existing artifact to the post (repeatable). Create artifacts with `gobi artifact create`. (default: [])
|
|
122
122
|
--space-slug <spaceSlug> Space slug (overrides .gobi/settings.yaml)
|
|
123
123
|
--attach <file> Local media file to attach. Repeatable. X-style mix rule: up to 4 photos OR 1 GIF OR 1 video. Size ceilings: 5MB photos / 15MB GIFs / 512MB video. (default: [])
|
|
124
124
|
--repost-post-id <postId> Wrap an existing top-level post as the embedded card on this new post. Composes with --content / --rich-text / --attach (the wrapping author's text + media render above
|
|
@@ -137,7 +137,6 @@ Options:
|
|
|
137
137
|
--title <title> New title for the post
|
|
138
138
|
--content <content> New content for the post (markdown supported, use "-" for stdin)
|
|
139
139
|
--rich-text <richText> Rich-text JSON array (mutually exclusive with --content)
|
|
140
|
-
--vault-slug <vaultSlug> Attribute the post to this vault (sets authorVaultSlug). Caller must own the vault.
|
|
141
140
|
--space-slug <spaceSlug> Space slug (overrides .gobi/settings.yaml)
|
|
142
141
|
--attach <file> Replace the post's media attachments with the given files (existing attachments are removed). Repeatable. X-style mix rule: up to 4 photos OR 1 GIF OR 1 video. Size
|
|
143
142
|
ceilings: 5MB photos / 15MB GIFs / 512MB video. Omit to leave attachments unchanged. (default: [])
|
|
@@ -166,7 +165,6 @@ Create a reply to a post in a space.
|
|
|
166
165
|
Options:
|
|
167
166
|
--content <content> Reply content (markdown supported, use "-" for stdin)
|
|
168
167
|
--rich-text <richText> Rich-text JSON array (mutually exclusive with --content)
|
|
169
|
-
--vault-slug <vaultSlug> Attribute the reply to this vault (sets authorVaultSlug). Caller must own the vault.
|
|
170
168
|
--space-slug <spaceSlug> Space slug (overrides .gobi/settings.yaml)
|
|
171
169
|
--attach <file> Local media file to attach to this reply. Repeatable. X-style mix rule: up to 4 photos OR 1 GIF OR 1 video. Size ceilings: 5MB photos / 15MB GIFs / 512MB video. (default:
|
|
172
170
|
[])
|
|
@@ -183,7 +181,6 @@ Edit a reply you authored in a space.
|
|
|
183
181
|
Options:
|
|
184
182
|
--content <content> New content for the reply (markdown supported, use "-" for stdin)
|
|
185
183
|
--rich-text <richText> Rich-text JSON array (mutually exclusive with --content)
|
|
186
|
-
--vault-slug <vaultSlug> Attribute the reply to this vault (sets authorVaultSlug). Caller must own the vault.
|
|
187
184
|
--space-slug <spaceSlug> Space slug (overrides .gobi/settings.yaml)
|
|
188
185
|
-h, --help display help for command
|
|
189
186
|
```
|
|
@@ -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.26"
|
|
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.26).
|
|
17
17
|
|
|
18
18
|
Requires gobi-cli installed and authenticated. See gobi-core skill for setup.
|
|
19
19
|
|