@workjournal/cli 0.8.0 → 0.16.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/README.md +11 -1
- package/dist/api-client.d.ts +24 -9
- package/dist/api-client.d.ts.map +1 -1
- package/dist/api-client.js +109 -57
- package/dist/api-client.js.map +1 -1
- package/dist/auth.d.ts +6 -0
- package/dist/auth.d.ts.map +1 -1
- package/dist/auth.js +18 -0
- package/dist/auth.js.map +1 -1
- package/dist/cli-args.d.ts +19 -0
- package/dist/cli-args.d.ts.map +1 -0
- package/dist/cli-args.js +50 -0
- package/dist/cli-args.js.map +1 -0
- package/dist/commands/entries.d.ts +6 -0
- package/dist/commands/entries.d.ts.map +1 -1
- package/dist/commands/entries.js +68 -14
- package/dist/commands/entries.js.map +1 -1
- package/dist/commands/export.d.ts.map +1 -1
- package/dist/commands/export.js +2 -3
- package/dist/commands/export.js.map +1 -1
- package/dist/commands/invites.d.ts.map +1 -1
- package/dist/commands/invites.js +6 -7
- package/dist/commands/invites.js.map +1 -1
- package/dist/commands/journals.d.ts +1 -1
- package/dist/commands/journals.d.ts.map +1 -1
- package/dist/commands/journals.js +20 -19
- package/dist/commands/journals.js.map +1 -1
- package/dist/commands/prompts.d.ts +9 -0
- package/dist/commands/prompts.d.ts.map +1 -0
- package/dist/commands/prompts.js +83 -0
- package/dist/commands/prompts.js.map +1 -0
- package/dist/commands/shares.d.ts.map +1 -1
- package/dist/commands/shares.js +11 -13
- package/dist/commands/shares.js.map +1 -1
- package/dist/commands/workspaces.d.ts.map +1 -1
- package/dist/commands/workspaces.js +4 -7
- package/dist/commands/workspaces.js.map +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +3 -1
- package/dist/config.js.map +1 -1
- package/dist/help/_dispatch.d.ts +29 -0
- package/dist/help/_dispatch.d.ts.map +1 -0
- package/dist/help/_dispatch.js +132 -0
- package/dist/help/_dispatch.js.map +1 -0
- package/dist/help/_registry.d.ts +18 -0
- package/dist/help/_registry.d.ts.map +1 -0
- package/dist/help/_registry.js +88 -0
- package/dist/help/_registry.js.map +1 -0
- package/dist/help/_renderer.d.ts +31 -0
- package/dist/help/_renderer.d.ts.map +1 -0
- package/dist/help/_renderer.js +99 -0
- package/dist/help/_renderer.js.map +1 -0
- package/dist/help/_types.d.ts +53 -0
- package/dist/help/_types.d.ts.map +1 -0
- package/dist/help/_types.js +15 -0
- package/dist/help/_types.js.map +1 -0
- package/dist/help/auth-login.json +12 -0
- package/dist/help/auth-logout.json +7 -0
- package/dist/help/auth-status.json +7 -0
- package/dist/help/auth-whoami.json +7 -0
- package/dist/help/config-show.json +7 -0
- package/dist/help/entries-delete.json +12 -0
- package/dist/help/entries-get.json +12 -0
- package/dist/help/entries-last.json +19 -0
- package/dist/help/entries-list.json +14 -0
- package/dist/help/entries-search.json +15 -0
- package/dist/help/entries-update.json +37 -0
- package/dist/help/entries-write.json +33 -0
- package/dist/help/export.json +29 -0
- package/dist/help/invites-delete.json +16 -0
- package/dist/help/invites-list.json +11 -0
- package/dist/help/invites-new.json +12 -0
- package/dist/help/journal.json +13 -0
- package/dist/help/journals-assign-prompt.json +12 -0
- package/dist/help/journals-delete.json +11 -0
- package/dist/help/journals-get.json +20 -0
- package/dist/help/journals-list.json +14 -0
- package/dist/help/journals-new.json +21 -0
- package/dist/help/journals-rename.json +12 -0
- package/dist/help/journals-select.json +11 -0
- package/dist/help/journals-set-slug.json +16 -0
- package/dist/help/journals-unassign-prompt.json +11 -0
- package/dist/help/prompts-delete.json +11 -0
- package/dist/help/prompts-get.json +11 -0
- package/dist/help/prompts-list.json +14 -0
- package/dist/help/prompts-new.json +23 -0
- package/dist/help/prompts-update.json +29 -0
- package/dist/help/shares-delete.json +16 -0
- package/dist/help/shares-list.json +11 -0
- package/dist/index.js +197 -76
- package/dist/index.js.map +1 -1
- package/package.json +4 -5
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
{
|
|
2
|
+
"command": "entries update",
|
|
3
|
+
"description": "Patch any subset of an entry's title, summary, or body. Preserves `created_at` and the per-journal index; advances `updated_at`.",
|
|
4
|
+
"args": [
|
|
5
|
+
{ "name": "workspaceSlug", "required": true, "description": "Slug from `workspaces list`." },
|
|
6
|
+
{ "name": "journalSlug", "required": true, "description": "Slug from `journals list`." },
|
|
7
|
+
{ "name": "index", "required": true, "description": "Per-journal positive integer (≥ 1)." }
|
|
8
|
+
],
|
|
9
|
+
"flags": [
|
|
10
|
+
{
|
|
11
|
+
"short": "-t",
|
|
12
|
+
"long": "--title",
|
|
13
|
+
"value": "<title>",
|
|
14
|
+
"description": "New title (max 80 chars). Omit to leave unchanged."
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"short": "-s",
|
|
18
|
+
"long": "--summary",
|
|
19
|
+
"value": "<summary>",
|
|
20
|
+
"description": "New summary (max 500 chars). Omit to leave unchanged."
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"short": "-b",
|
|
24
|
+
"long": "--body",
|
|
25
|
+
"value": "<file>|-",
|
|
26
|
+
"description": "Body source — file path, or `-` for stdin. Omit to leave unchanged."
|
|
27
|
+
}
|
|
28
|
+
],
|
|
29
|
+
"constraints": ["At least one of -t/-s/-b is required."],
|
|
30
|
+
"annotations": { "destructive": false, "idempotent": false },
|
|
31
|
+
"examples": [
|
|
32
|
+
"workjournal entries update acme engineering 5 -t \"Verified\"",
|
|
33
|
+
"workjournal entries update acme engineering 5 -b verification.md",
|
|
34
|
+
"cat note.md | workjournal entries update acme engineering 5 -b -"
|
|
35
|
+
],
|
|
36
|
+
"when_to_use": "Annotating, verifying, or fixing typos on an existing entry without delete+recreate (which would lose the original `created_at` and disrupt the entry index)."
|
|
37
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
{
|
|
2
|
+
"command": "entries write",
|
|
3
|
+
"description": "Create a new entry in a journal. All three content fields are required. The title is capped at 80 characters; the summary at 500. Body is the full markdown content.",
|
|
4
|
+
"args": [
|
|
5
|
+
{ "name": "workspaceSlug", "required": true, "description": "Slug from `workspaces list`." },
|
|
6
|
+
{ "name": "journalSlug", "required": true, "description": "Slug from `journals list`." }
|
|
7
|
+
],
|
|
8
|
+
"flags": [
|
|
9
|
+
{
|
|
10
|
+
"short": "-t",
|
|
11
|
+
"long": "--title",
|
|
12
|
+
"value": "<title>",
|
|
13
|
+
"description": "Entry title (max 80 chars). Required."
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
"short": "-s",
|
|
17
|
+
"long": "--summary",
|
|
18
|
+
"value": "<summary>",
|
|
19
|
+
"description": "Paragraph summary used by AI retrieval (max 500 chars). Required."
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"short": "-b",
|
|
23
|
+
"long": "--body",
|
|
24
|
+
"value": "<body>",
|
|
25
|
+
"description": "Markdown body. Required. Inline only — for file/stdin sources, use `entries update` after creation."
|
|
26
|
+
}
|
|
27
|
+
],
|
|
28
|
+
"annotations": { "destructive": false, "idempotent": false },
|
|
29
|
+
"examples": [
|
|
30
|
+
"workjournal entries write acme engineering -t \"Auth migration shipped\" -s \"...\" -b \"...\""
|
|
31
|
+
],
|
|
32
|
+
"when_to_use": "Recording work that's been completed — decisions, fixes, trade-offs. Always run `journals get` first to read the journal's `prompt.body` so the entry matches the journal's voice."
|
|
33
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
{
|
|
2
|
+
"command": "export",
|
|
3
|
+
"description": "Export a journal as JSON, Markdown, or CSV. Defaults to JSON to stdout; use `-p` to write to a file. Plus/Pro tier feature on FREE workspaces.",
|
|
4
|
+
"args": [
|
|
5
|
+
{ "name": "workspaceSlug", "required": true, "description": "Slug from `workspaces list`." },
|
|
6
|
+
{ "name": "journalSlug", "required": true, "description": "Slug from `journals list`." }
|
|
7
|
+
],
|
|
8
|
+
"flags": [
|
|
9
|
+
{
|
|
10
|
+
"short": "-f",
|
|
11
|
+
"long": "--format",
|
|
12
|
+
"value": "<json|md|csv>",
|
|
13
|
+
"description": "Output format. Defaults to `json`."
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
"short": "-p",
|
|
17
|
+
"long": "--path",
|
|
18
|
+
"value": "<path>",
|
|
19
|
+
"description": "Write output to this file instead of stdout."
|
|
20
|
+
}
|
|
21
|
+
],
|
|
22
|
+
"annotations": { "destructive": false, "idempotent": true },
|
|
23
|
+
"examples": [
|
|
24
|
+
"workjournal export acme engineering",
|
|
25
|
+
"workjournal export acme engineering -f md -p ./engineering.md",
|
|
26
|
+
"workjournal export acme engineering -f csv > engineering.csv"
|
|
27
|
+
],
|
|
28
|
+
"when_to_use": "Backing up a journal, archiving for long-term storage, or feeding the entries into another tool. Markdown is human-readable; JSON preserves every field; CSV is for spreadsheet import."
|
|
29
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"command": "invites delete",
|
|
3
|
+
"description": "Revoke a pending invitation by id. Already-accepted invitations cannot be revoked — use `shares delete` to remove an accepted contributor.",
|
|
4
|
+
"args": [
|
|
5
|
+
{ "name": "workspaceSlug", "required": true, "description": "Slug from `workspaces list`." },
|
|
6
|
+
{ "name": "journalSlug", "required": true, "description": "Slug from `journals list`." },
|
|
7
|
+
{
|
|
8
|
+
"name": "invitationId",
|
|
9
|
+
"required": true,
|
|
10
|
+
"description": "Invitation UUID from `invites list`."
|
|
11
|
+
}
|
|
12
|
+
],
|
|
13
|
+
"annotations": { "destructive": true, "idempotent": true },
|
|
14
|
+
"examples": ["workjournal invites delete acme engineering 7d8e9f12-a3b4-4c5d-9e10-1f2a3b4c5d6e"],
|
|
15
|
+
"when_to_use": "Cancelling an invitation that was sent to the wrong address or to someone who shouldn't have been invited."
|
|
16
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{
|
|
2
|
+
"command": "invites list",
|
|
3
|
+
"description": "List pending invitations for a journal — id, invited email, sent-at. Accepted and revoked invitations are not returned.",
|
|
4
|
+
"args": [
|
|
5
|
+
{ "name": "workspaceSlug", "required": true, "description": "Slug from `workspaces list`." },
|
|
6
|
+
{ "name": "journalSlug", "required": true, "description": "Slug from `journals list`." }
|
|
7
|
+
],
|
|
8
|
+
"annotations": { "destructive": false, "idempotent": true },
|
|
9
|
+
"examples": ["workjournal invites list acme engineering"],
|
|
10
|
+
"when_to_use": "Tracking outstanding invitations before resending or revoking. The invitation `id` shown here is what `invites delete` expects."
|
|
11
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
{
|
|
2
|
+
"command": "invites new",
|
|
3
|
+
"description": "Create an email-based invitation to a journal. The invitee receives an email with an accept link. Subject to the workspace tier's `max_contributors_per_journal` limit.",
|
|
4
|
+
"args": [
|
|
5
|
+
{ "name": "workspaceSlug", "required": true, "description": "Slug from `workspaces list`." },
|
|
6
|
+
{ "name": "journalSlug", "required": true, "description": "Slug from `journals list`." },
|
|
7
|
+
{ "name": "email", "required": true, "description": "Invitee's email address." }
|
|
8
|
+
],
|
|
9
|
+
"annotations": { "destructive": false, "idempotent": false },
|
|
10
|
+
"examples": ["workjournal invites new acme engineering alice@example.com"],
|
|
11
|
+
"when_to_use": "Adding a new contributor to a journal. The invitation can be revoked with `invites delete` until accepted."
|
|
12
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"command": "journal",
|
|
3
|
+
"description": "Shortcut: print details of the currently selected journal (workspace + journal pinned via `journals select`). Errors if no journal has been selected.",
|
|
4
|
+
"flags": [
|
|
5
|
+
{
|
|
6
|
+
"long": "--verbose",
|
|
7
|
+
"description": "Print the full prompt body alongside the summary line."
|
|
8
|
+
}
|
|
9
|
+
],
|
|
10
|
+
"annotations": { "destructive": false, "idempotent": true },
|
|
11
|
+
"examples": ["workjournal journal", "workjournal journal --verbose"],
|
|
12
|
+
"when_to_use": "Quick recap of the active journal during interactive work. For programmatic access pass `--json`."
|
|
13
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
{
|
|
2
|
+
"command": "journals assign-prompt",
|
|
3
|
+
"description": "Attach a workspace prompt to a journal. The prompt's `body` is what `journals get` returns as `prompt.body` and is the writing instruction agents follow when creating entries. Plus/Pro tier feature.",
|
|
4
|
+
"args": [
|
|
5
|
+
{ "name": "workspaceSlug", "required": true, "description": "Slug from `workspaces list`." },
|
|
6
|
+
{ "name": "journalSlug", "required": true, "description": "Slug from `journals list`." },
|
|
7
|
+
{ "name": "promptSlug", "required": true, "description": "Slug from `prompts list <ws>`." }
|
|
8
|
+
],
|
|
9
|
+
"annotations": { "destructive": false, "idempotent": true },
|
|
10
|
+
"examples": ["workjournal journals assign-prompt acme engineering project-style"],
|
|
11
|
+
"when_to_use": "Customising the writing voice / structure for a specific journal. Without an assignment the journal uses the system-default prompt."
|
|
12
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{
|
|
2
|
+
"command": "journals delete",
|
|
3
|
+
"description": "Delete a journal and every entry it contains. Requires the workspace owner role. Irreversible — there is no recycle bin.",
|
|
4
|
+
"args": [
|
|
5
|
+
{ "name": "workspaceSlug", "required": true, "description": "Slug from `workspaces list`." },
|
|
6
|
+
{ "name": "journalSlug", "required": true, "description": "Slug from `journals list`." }
|
|
7
|
+
],
|
|
8
|
+
"annotations": { "destructive": true, "idempotent": true },
|
|
9
|
+
"examples": ["workjournal journals delete acme staging"],
|
|
10
|
+
"when_to_use": "Retiring a journal you own. To stop using a journal without deleting its entries, just stop writing to it — there is no archive flag today."
|
|
11
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"command": "journals get",
|
|
3
|
+
"description": "Print details of a single journal — name, slug, description, contributor count, and the assigned prompt (custom or system default). Pass `--verbose` to also print the full prompt body.",
|
|
4
|
+
"args": [
|
|
5
|
+
{ "name": "workspaceSlug", "required": true, "description": "Slug from `workspaces list`." },
|
|
6
|
+
{ "name": "journalSlug", "required": true, "description": "Slug from `journals list`." }
|
|
7
|
+
],
|
|
8
|
+
"flags": [
|
|
9
|
+
{
|
|
10
|
+
"long": "--verbose",
|
|
11
|
+
"description": "Print the full prompt body alongside the summary line."
|
|
12
|
+
}
|
|
13
|
+
],
|
|
14
|
+
"annotations": { "destructive": false, "idempotent": true },
|
|
15
|
+
"examples": [
|
|
16
|
+
"workjournal journals get acme engineering",
|
|
17
|
+
"workjournal journals get acme engineering --verbose"
|
|
18
|
+
],
|
|
19
|
+
"when_to_use": "Before writing an entry, fetch the journal first — `prompt.body` in the response tells you the structure and voice the journal expects. Skipping this is the most common cause of off-format entries."
|
|
20
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"command": "journals list",
|
|
3
|
+
"description": "List journals in a workspace. The workspace slug is optional if one has been pinned via `workspaces select`. Pass the special slug `shared-with-me` to list journals shared into you from workspaces you don't own.",
|
|
4
|
+
"args": [
|
|
5
|
+
{
|
|
6
|
+
"name": "workspaceSlug",
|
|
7
|
+
"required": false,
|
|
8
|
+
"description": "Slug from `workspaces list`, or `shared-with-me`. Falls back to the active workspace."
|
|
9
|
+
}
|
|
10
|
+
],
|
|
11
|
+
"annotations": { "destructive": false, "idempotent": true },
|
|
12
|
+
"examples": ["workjournal journals list acme", "workjournal journals list shared-with-me --json"],
|
|
13
|
+
"when_to_use": "Discovering available journal slugs before any entry-scoped command. The `shared-with-me` form surfaces journals where you're a contributor in a workspace you don't own."
|
|
14
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
{
|
|
2
|
+
"command": "journals new",
|
|
3
|
+
"description": "Create a new journal in a workspace. Auto-generates a slug from the name; override with `--slug`. Subject to the workspace tier's `max_journals` limit.",
|
|
4
|
+
"args": [
|
|
5
|
+
{ "name": "workspaceSlug", "required": true, "description": "Slug from `workspaces list`." },
|
|
6
|
+
{ "name": "name", "required": true, "description": "Display name (max 20 characters)." }
|
|
7
|
+
],
|
|
8
|
+
"flags": [
|
|
9
|
+
{
|
|
10
|
+
"long": "--slug",
|
|
11
|
+
"value": "<slug>",
|
|
12
|
+
"description": "Override the auto-generated slug. Reserved names and route-collisions are rejected."
|
|
13
|
+
}
|
|
14
|
+
],
|
|
15
|
+
"annotations": { "destructive": false, "idempotent": false },
|
|
16
|
+
"examples": [
|
|
17
|
+
"workjournal journals new acme \"Engineering Notes\"",
|
|
18
|
+
"workjournal journals new acme \"Ops Runbook\" --slug ops"
|
|
19
|
+
],
|
|
20
|
+
"when_to_use": "Setting up a new journal for a project, team, or topic. Each journal has its own monotonic entry index and its own prompt assignment."
|
|
21
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
{
|
|
2
|
+
"command": "journals rename",
|
|
3
|
+
"description": "Change the journal's display name. The slug stays the same so existing URLs and integrations keep working.",
|
|
4
|
+
"args": [
|
|
5
|
+
{ "name": "workspaceSlug", "required": true, "description": "Slug from `workspaces list`." },
|
|
6
|
+
{ "name": "journalSlug", "required": true, "description": "Slug from `journals list`." },
|
|
7
|
+
{ "name": "newName", "required": true, "description": "New display name (max 20 characters)." }
|
|
8
|
+
],
|
|
9
|
+
"annotations": { "destructive": false, "idempotent": true },
|
|
10
|
+
"examples": ["workjournal journals rename acme staging \"Staging Notes\""],
|
|
11
|
+
"when_to_use": "Cosmetic rename — fixes typos or rebrands a journal without breaking links. Use `journals set-slug` if you need to change the URL."
|
|
12
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{
|
|
2
|
+
"command": "journals select",
|
|
3
|
+
"description": "Set the active journal in project-config and global-config. Subsequent shortcut forms (`workjournal` and `workjournal journal`) resolve to this selection.",
|
|
4
|
+
"args": [
|
|
5
|
+
{ "name": "workspaceSlug", "required": true, "description": "Slug from `workspaces list`." },
|
|
6
|
+
{ "name": "journalSlug", "required": true, "description": "Slug from `journals list`." }
|
|
7
|
+
],
|
|
8
|
+
"annotations": { "destructive": false, "idempotent": true },
|
|
9
|
+
"examples": ["workjournal journals select acme engineering"],
|
|
10
|
+
"when_to_use": "Pinning the journal once for the current project so subsequent commands don't need to repeat the slugs. Resource verbs like `entries`, `shares`, `invites` still take explicit slugs — `select` only enables shortcut forms."
|
|
11
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"command": "journals set-slug",
|
|
3
|
+
"description": "Change the journal's URL slug. WARNING: old URLs to `<workspaceSlug>/<journalSlug>` will return 404 immediately after the change. Use `journals rename` if you only want to change the human name.",
|
|
4
|
+
"args": [
|
|
5
|
+
{ "name": "workspaceSlug", "required": true, "description": "Slug from `workspaces list`." },
|
|
6
|
+
{ "name": "journalSlug", "required": true, "description": "Current slug." },
|
|
7
|
+
{
|
|
8
|
+
"name": "newSlug",
|
|
9
|
+
"required": true,
|
|
10
|
+
"description": "New URL slug. Reserved names and route-collisions are rejected."
|
|
11
|
+
}
|
|
12
|
+
],
|
|
13
|
+
"annotations": { "destructive": true, "idempotent": true },
|
|
14
|
+
"examples": ["workjournal journals set-slug acme staging-notes staging"],
|
|
15
|
+
"when_to_use": "When the slug is genuinely wrong (typo, ambiguous, conflict). Coordinate with anyone who has bookmarks, scripts, or shared links — they all need updating."
|
|
16
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{
|
|
2
|
+
"command": "journals unassign-prompt",
|
|
3
|
+
"description": "Detach the journal's currently assigned prompt and fall back to the system default. No-op if the journal already uses the default.",
|
|
4
|
+
"args": [
|
|
5
|
+
{ "name": "workspaceSlug", "required": true, "description": "Slug from `workspaces list`." },
|
|
6
|
+
{ "name": "journalSlug", "required": true, "description": "Slug from `journals list`." }
|
|
7
|
+
],
|
|
8
|
+
"annotations": { "destructive": false, "idempotent": true },
|
|
9
|
+
"examples": ["workjournal journals unassign-prompt acme engineering"],
|
|
10
|
+
"when_to_use": "Reverting a custom prompt without deleting it (the prompt remains in the workspace and can be re-assigned later)."
|
|
11
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{
|
|
2
|
+
"command": "prompts delete",
|
|
3
|
+
"description": "Delete a workspace prompt. Cascades unassignment from any journals currently using it (those journals fall back to the system default). Plus/Pro tier feature.",
|
|
4
|
+
"args": [
|
|
5
|
+
{ "name": "workspaceSlug", "required": true, "description": "Slug from `workspaces list`." },
|
|
6
|
+
{ "name": "promptSlug", "required": true, "description": "Slug from `prompts list`." }
|
|
7
|
+
],
|
|
8
|
+
"annotations": { "destructive": true, "idempotent": true },
|
|
9
|
+
"examples": ["workjournal prompts delete acme project-style"],
|
|
10
|
+
"when_to_use": "Retiring a prompt you no longer want available in the workspace. Use `journals unassign-prompt` first if you only want to detach it from one journal."
|
|
11
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{
|
|
2
|
+
"command": "prompts get",
|
|
3
|
+
"description": "Print a single prompt's full details, including the body. Plus/Pro tier feature.",
|
|
4
|
+
"args": [
|
|
5
|
+
{ "name": "workspaceSlug", "required": true, "description": "Slug from `workspaces list`." },
|
|
6
|
+
{ "name": "promptSlug", "required": true, "description": "Slug from `prompts list`." }
|
|
7
|
+
],
|
|
8
|
+
"annotations": { "destructive": false, "idempotent": true },
|
|
9
|
+
"examples": ["workjournal prompts get acme project-style"],
|
|
10
|
+
"when_to_use": "Reading the body of a prompt before editing it, or auditing what's currently saved at a slug."
|
|
11
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"command": "prompts list",
|
|
3
|
+
"description": "List the workspace's saved prompts. Plus/Pro tier feature — Free tier surfaces a tier-rejection error from the API.",
|
|
4
|
+
"args": [
|
|
5
|
+
{
|
|
6
|
+
"name": "workspaceSlug",
|
|
7
|
+
"required": false,
|
|
8
|
+
"description": "Slug from `workspaces list`. Falls back to the active workspace."
|
|
9
|
+
}
|
|
10
|
+
],
|
|
11
|
+
"annotations": { "destructive": false, "idempotent": true },
|
|
12
|
+
"examples": ["workjournal prompts list", "workjournal prompts list acme --json"],
|
|
13
|
+
"when_to_use": "Discovering available prompts before assigning one to a journal with `journals assign-prompt`."
|
|
14
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
{
|
|
2
|
+
"command": "prompts new",
|
|
3
|
+
"description": "Create a new workspace prompt. Auto-generates a slug from the name; override with `--slug`. Plus/Pro tier feature.",
|
|
4
|
+
"args": [
|
|
5
|
+
{ "name": "workspaceSlug", "required": true, "description": "Slug from `workspaces list`." },
|
|
6
|
+
{ "name": "name", "required": true, "description": "Display name (max 80 characters)." }
|
|
7
|
+
],
|
|
8
|
+
"flags": [
|
|
9
|
+
{
|
|
10
|
+
"short": "-b",
|
|
11
|
+
"long": "--body",
|
|
12
|
+
"value": "<body>",
|
|
13
|
+
"description": "Prompt body (max 10,000 characters). Defaults to empty if omitted."
|
|
14
|
+
},
|
|
15
|
+
{ "long": "--slug", "value": "<slug>", "description": "Override the auto-generated slug." }
|
|
16
|
+
],
|
|
17
|
+
"annotations": { "destructive": false, "idempotent": false },
|
|
18
|
+
"examples": [
|
|
19
|
+
"workjournal prompts new acme \"Project style\" -b \"Be concise. Use past tense.\"",
|
|
20
|
+
"workjournal prompts new acme \"Engineering voice\" --slug eng-voice -b \"...\""
|
|
21
|
+
],
|
|
22
|
+
"when_to_use": "Authoring a custom writing style for a journal. Pair with `journals assign-prompt` to apply it."
|
|
23
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
{
|
|
2
|
+
"command": "prompts update",
|
|
3
|
+
"description": "Update a prompt's name and/or body. The slug stays stable so existing journal assignments keep working. Plus/Pro tier feature.",
|
|
4
|
+
"args": [
|
|
5
|
+
{ "name": "workspaceSlug", "required": true, "description": "Slug from `workspaces list`." },
|
|
6
|
+
{ "name": "promptSlug", "required": true, "description": "Slug from `prompts list`." }
|
|
7
|
+
],
|
|
8
|
+
"flags": [
|
|
9
|
+
{
|
|
10
|
+
"short": "-n",
|
|
11
|
+
"long": "--name",
|
|
12
|
+
"value": "<name>",
|
|
13
|
+
"description": "New display name (max 80 chars). Omit to leave unchanged."
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
"short": "-b",
|
|
17
|
+
"long": "--body",
|
|
18
|
+
"value": "<body>",
|
|
19
|
+
"description": "New body (max 10,000 chars). Omit to leave unchanged."
|
|
20
|
+
}
|
|
21
|
+
],
|
|
22
|
+
"constraints": ["At least one of -n/-b is required."],
|
|
23
|
+
"annotations": { "destructive": false, "idempotent": false },
|
|
24
|
+
"examples": [
|
|
25
|
+
"workjournal prompts update acme project-style -n \"Renamed style\"",
|
|
26
|
+
"workjournal prompts update acme project-style -b \"Be concise. Use bullet points.\""
|
|
27
|
+
],
|
|
28
|
+
"when_to_use": "Iterating on a prompt's wording without changing its slug. The change is picked up by every journal currently assigned this prompt on the next entry write."
|
|
29
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"command": "shares delete",
|
|
3
|
+
"description": "Remove a contributor's access to a journal. The CLI resolves the email to a user ID internally so callers don't need to know the UUID.",
|
|
4
|
+
"args": [
|
|
5
|
+
{ "name": "workspaceSlug", "required": true, "description": "Slug from `workspaces list`." },
|
|
6
|
+
{ "name": "journalSlug", "required": true, "description": "Slug from `journals list`." },
|
|
7
|
+
{
|
|
8
|
+
"name": "email",
|
|
9
|
+
"required": true,
|
|
10
|
+
"description": "Contributor's email address (must match what's shown in `shares list`)."
|
|
11
|
+
}
|
|
12
|
+
],
|
|
13
|
+
"annotations": { "destructive": true, "idempotent": true },
|
|
14
|
+
"examples": ["workjournal shares delete acme engineering alice@example.com"],
|
|
15
|
+
"when_to_use": "Revoking access for a former teammate or a contributor who joined by mistake. Owners cannot be removed via this command."
|
|
16
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{
|
|
2
|
+
"command": "shares list",
|
|
3
|
+
"description": "List the contributors of a journal — id, role, joined-at. Each row also includes the user's email when available.",
|
|
4
|
+
"args": [
|
|
5
|
+
{ "name": "workspaceSlug", "required": true, "description": "Slug from `workspaces list`." },
|
|
6
|
+
{ "name": "journalSlug", "required": true, "description": "Slug from `journals list`." }
|
|
7
|
+
],
|
|
8
|
+
"annotations": { "destructive": false, "idempotent": true },
|
|
9
|
+
"examples": ["workjournal shares list acme engineering"],
|
|
10
|
+
"when_to_use": "Auditing who has access to a journal before sharing further or removing a stale contributor."
|
|
11
|
+
}
|