@doist/outline-cli 1.0.0 → 1.0.1
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/CHANGELOG.md +14 -9
- package/dist/commands/auth.d.ts +1 -1
- package/dist/commands/auth.js +45 -48
- package/dist/commands/auth.js.map +1 -1
- package/dist/commands/collection.d.ts +1 -1
- package/dist/commands/collection.js +41 -55
- package/dist/commands/collection.js.map +1 -1
- package/dist/commands/document.d.ts +1 -1
- package/dist/commands/document.js +68 -86
- package/dist/commands/document.js.map +1 -1
- package/dist/commands/search.d.ts +1 -1
- package/dist/commands/search.js +15 -15
- package/dist/commands/search.js.map +1 -1
- package/dist/commands/skill.d.ts +1 -1
- package/dist/commands/skill.js +26 -28
- package/dist/commands/skill.js.map +1 -1
- package/dist/index.js +11 -11
- package/dist/index.js.map +1 -1
- package/dist/lib/api.js +21 -21
- package/dist/lib/api.js.map +1 -1
- package/dist/lib/auth.d.ts +1 -1
- package/dist/lib/auth.js +13 -13
- package/dist/lib/auth.js.map +1 -1
- package/dist/lib/markdown.js +2 -2
- package/dist/lib/markdown.js.map +1 -1
- package/dist/lib/oauth-server.js +37 -37
- package/dist/lib/oauth-server.js.map +1 -1
- package/dist/lib/oauth.js +10 -10
- package/dist/lib/oauth.js.map +1 -1
- package/dist/lib/output.d.ts +1 -1
- package/dist/lib/output.js +3 -3
- package/dist/lib/output.js.map +1 -1
- package/dist/lib/pkce.js +3 -7
- package/dist/lib/pkce.js.map +1 -1
- package/dist/lib/refs.js +10 -12
- package/dist/lib/refs.js.map +1 -1
- package/dist/lib/skills/content.d.ts +1 -1
- package/dist/lib/skills/content.js +2 -2
- package/dist/lib/skills/content.js.map +1 -1
- package/dist/lib/skills/create-installer.d.ts +1 -1
- package/dist/lib/skills/create-installer.js +9 -9
- package/dist/lib/skills/create-installer.js.map +1 -1
- package/dist/lib/skills/index.d.ts +2 -2
- package/dist/lib/skills/index.js +20 -20
- package/dist/lib/skills/index.js.map +1 -1
- package/dist/lib/skills/update-installed.js +1 -1
- package/dist/lib/skills/update-installed.js.map +1 -1
- package/dist/lib/spinner.d.ts +1 -1
- package/dist/lib/spinner.js +5 -7
- package/dist/lib/spinner.js.map +1 -1
- package/dist/postinstall.js +14 -1
- package/dist/postinstall.js.map +1 -1
- package/package.json +7 -3
- package/scripts/postinstall.js +5 -5
|
@@ -1,18 +1,12 @@
|
|
|
1
|
-
import { readFileSync } from
|
|
2
|
-
import chalk from
|
|
3
|
-
import open from
|
|
4
|
-
import { apiRequest } from
|
|
5
|
-
import { getBaseUrl } from
|
|
6
|
-
import { renderMarkdown } from
|
|
7
|
-
import { formatError, getOutputOptions, outputItem, outputList
|
|
8
|
-
import { resolveCollectionId, resolveDocumentId, resolveDocumentRef
|
|
9
|
-
const essentialKeys = [
|
|
10
|
-
"id",
|
|
11
|
-
"title",
|
|
12
|
-
"urlId",
|
|
13
|
-
"collectionId",
|
|
14
|
-
"updatedAt",
|
|
15
|
-
];
|
|
1
|
+
import { readFileSync } from 'node:fs';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
import open from 'open';
|
|
4
|
+
import { apiRequest } from '../lib/api.js';
|
|
5
|
+
import { getBaseUrl } from '../lib/auth.js';
|
|
6
|
+
import { renderMarkdown } from '../lib/markdown.js';
|
|
7
|
+
import { formatError, getOutputOptions, outputItem, outputList } from '../lib/output.js';
|
|
8
|
+
import { resolveCollectionId, resolveDocumentId, resolveDocumentRef } from '../lib/refs.js';
|
|
9
|
+
const essentialKeys = ['id', 'title', 'urlId', 'collectionId', 'updatedAt'];
|
|
16
10
|
function formatDoc(doc) {
|
|
17
11
|
const title = chalk.bold(doc.title);
|
|
18
12
|
const id = chalk.dim(doc.urlId);
|
|
@@ -24,36 +18,32 @@ function formatDocFull(doc) {
|
|
|
24
18
|
}
|
|
25
19
|
function readTextInput(opts) {
|
|
26
20
|
if (opts.file)
|
|
27
|
-
return readFileSync(opts.file,
|
|
21
|
+
return readFileSync(opts.file, 'utf-8');
|
|
28
22
|
return opts.text;
|
|
29
23
|
}
|
|
30
24
|
function extractTitleFromText(text) {
|
|
31
|
-
const lines = text.split(
|
|
25
|
+
const lines = text.split('\n');
|
|
32
26
|
const firstLine = lines[0]?.trim();
|
|
33
|
-
if (firstLine?.startsWith(
|
|
27
|
+
if (firstLine?.startsWith('# ')) {
|
|
34
28
|
return {
|
|
35
29
|
title: firstLine.slice(2).trim(),
|
|
36
|
-
body: lines.slice(1).join(
|
|
30
|
+
body: lines.slice(1).join('\n').replace(/^\n+/, ''),
|
|
37
31
|
};
|
|
38
32
|
}
|
|
39
33
|
return { body: text };
|
|
40
34
|
}
|
|
41
35
|
export function registerDocumentCommand(program) {
|
|
42
|
-
const doc = program
|
|
43
|
-
|
|
44
|
-
.
|
|
45
|
-
.
|
|
46
|
-
|
|
47
|
-
.
|
|
48
|
-
.
|
|
49
|
-
.option(
|
|
50
|
-
.option(
|
|
51
|
-
.option(
|
|
52
|
-
.option(
|
|
53
|
-
.option("--direction <dir>", "Sort direction (ASC|DESC)", "DESC")
|
|
54
|
-
.option("--json", "Output JSON")
|
|
55
|
-
.option("--ndjson", "Output NDJSON")
|
|
56
|
-
.option("--full", "Include all fields in JSON output")
|
|
36
|
+
const doc = program.command('document').alias('doc').description('Manage documents');
|
|
37
|
+
doc.command('list')
|
|
38
|
+
.description('List documents')
|
|
39
|
+
.option('--collection <ref>', 'Filter by collection ID or name')
|
|
40
|
+
.option('--limit <n>', 'Max results', '25')
|
|
41
|
+
.option('--offset <n>', 'Pagination offset', '0')
|
|
42
|
+
.option('--sort <field>', 'Sort by field (title|updatedAt|createdAt)', 'updatedAt')
|
|
43
|
+
.option('--direction <dir>', 'Sort direction (ASC|DESC)', 'DESC')
|
|
44
|
+
.option('--json', 'Output JSON')
|
|
45
|
+
.option('--ndjson', 'Output NDJSON')
|
|
46
|
+
.option('--full', 'Include all fields in JSON output')
|
|
57
47
|
.action(async (opts) => {
|
|
58
48
|
const body = {
|
|
59
49
|
limit: Number(opts.limit),
|
|
@@ -64,15 +54,14 @@ export function registerDocumentCommand(program) {
|
|
|
64
54
|
if (opts.collection) {
|
|
65
55
|
body.collectionId = await resolveCollectionId(opts.collection);
|
|
66
56
|
}
|
|
67
|
-
const { data, pagination } = await apiRequest(
|
|
57
|
+
const { data, pagination } = await apiRequest('documents.list', body);
|
|
68
58
|
outputList(data, formatDoc, essentialKeys, getOutputOptions(opts), pagination);
|
|
69
59
|
});
|
|
70
|
-
doc
|
|
71
|
-
.
|
|
72
|
-
.
|
|
73
|
-
.option(
|
|
74
|
-
.option(
|
|
75
|
-
.option("--full", "Include all fields in JSON output")
|
|
60
|
+
doc.command('get <id>')
|
|
61
|
+
.description('Get a document by ID, URL, or name')
|
|
62
|
+
.option('--raw', 'Output raw markdown without terminal formatting')
|
|
63
|
+
.option('--json', 'Output JSON')
|
|
64
|
+
.option('--full', 'Include all fields in JSON output')
|
|
76
65
|
.action(async (id, opts) => {
|
|
77
66
|
const resolved = await resolveDocumentRef(id);
|
|
78
67
|
// If resolved from name search (documents.list), text may be missing
|
|
@@ -81,7 +70,7 @@ export function registerDocumentCommand(program) {
|
|
|
81
70
|
data = resolved;
|
|
82
71
|
}
|
|
83
72
|
else {
|
|
84
|
-
const response = await apiRequest(
|
|
73
|
+
const response = await apiRequest('documents.info', {
|
|
85
74
|
id: resolved.id,
|
|
86
75
|
});
|
|
87
76
|
data = response.data;
|
|
@@ -95,24 +84,22 @@ export function registerDocumentCommand(program) {
|
|
|
95
84
|
console.log(opts.raw ? content : renderMarkdown(content));
|
|
96
85
|
}
|
|
97
86
|
});
|
|
98
|
-
doc
|
|
99
|
-
.
|
|
100
|
-
.description("Open a document in the browser")
|
|
87
|
+
doc.command('open <id>')
|
|
88
|
+
.description('Open a document in the browser')
|
|
101
89
|
.action(async (id) => {
|
|
102
90
|
const resolved = await resolveDocumentRef(id);
|
|
103
91
|
const fullUrl = `${getBaseUrl()}${resolved.url}`;
|
|
104
92
|
await open(fullUrl);
|
|
105
93
|
console.log(chalk.dim(`Opened: ${fullUrl}`));
|
|
106
94
|
});
|
|
107
|
-
doc
|
|
108
|
-
.
|
|
109
|
-
.
|
|
110
|
-
.requiredOption(
|
|
111
|
-
.
|
|
112
|
-
.option(
|
|
113
|
-
.option(
|
|
114
|
-
.option(
|
|
115
|
-
.option("--json", "Output JSON")
|
|
95
|
+
doc.command('create')
|
|
96
|
+
.description('Create a document')
|
|
97
|
+
.requiredOption('--title <title>', 'Document title')
|
|
98
|
+
.requiredOption('--collection <ref>', 'Collection ID or name')
|
|
99
|
+
.option('--text <text>', 'Document body (markdown)')
|
|
100
|
+
.option('--file <path>', 'Read markdown from file')
|
|
101
|
+
.option('--publish', 'Publish immediately')
|
|
102
|
+
.option('--json', 'Output JSON')
|
|
116
103
|
.action(async (opts) => {
|
|
117
104
|
const collectionId = await resolveCollectionId(opts.collection);
|
|
118
105
|
const body = {
|
|
@@ -124,7 +111,7 @@ export function registerDocumentCommand(program) {
|
|
|
124
111
|
body.text = text;
|
|
125
112
|
if (opts.publish)
|
|
126
113
|
body.publish = true;
|
|
127
|
-
const { data } = await apiRequest(
|
|
114
|
+
const { data } = await apiRequest('documents.create', body);
|
|
128
115
|
if (opts.json) {
|
|
129
116
|
outputItem(data, formatDoc, essentialKeys, { json: true });
|
|
130
117
|
}
|
|
@@ -132,13 +119,12 @@ export function registerDocumentCommand(program) {
|
|
|
132
119
|
console.log(chalk.green(`Created: ${data.title}`), chalk.dim(data.urlId));
|
|
133
120
|
}
|
|
134
121
|
});
|
|
135
|
-
doc
|
|
136
|
-
.
|
|
137
|
-
.
|
|
138
|
-
.option(
|
|
139
|
-
.option(
|
|
140
|
-
.option(
|
|
141
|
-
.option("--json", "Output JSON")
|
|
122
|
+
doc.command('update <id>')
|
|
123
|
+
.description('Update a document')
|
|
124
|
+
.option('--title <title>', 'New title')
|
|
125
|
+
.option('--text <text>', 'New body (markdown)')
|
|
126
|
+
.option('--file <path>', 'Read markdown from file')
|
|
127
|
+
.option('--json', 'Output JSON')
|
|
142
128
|
.action(async (id, opts) => {
|
|
143
129
|
const resolvedId = await resolveDocumentId(id);
|
|
144
130
|
const body = { id: resolvedId };
|
|
@@ -155,7 +141,7 @@ export function registerDocumentCommand(program) {
|
|
|
155
141
|
if (opts.title)
|
|
156
142
|
body.title = opts.title;
|
|
157
143
|
}
|
|
158
|
-
const { data } = await apiRequest(
|
|
144
|
+
const { data } = await apiRequest('documents.update', body);
|
|
159
145
|
if (opts.json) {
|
|
160
146
|
outputItem(data, formatDoc, essentialKeys, { json: true });
|
|
161
147
|
}
|
|
@@ -163,47 +149,43 @@ export function registerDocumentCommand(program) {
|
|
|
163
149
|
console.log(chalk.green(`Updated: ${data.title}`), chalk.dim(data.urlId));
|
|
164
150
|
}
|
|
165
151
|
});
|
|
166
|
-
doc
|
|
167
|
-
.
|
|
168
|
-
.
|
|
169
|
-
.option("--confirm", "Skip confirmation")
|
|
152
|
+
doc.command('delete <id>')
|
|
153
|
+
.description('Delete a document')
|
|
154
|
+
.option('--confirm', 'Skip confirmation')
|
|
170
155
|
.action(async (id, opts) => {
|
|
171
156
|
if (!opts.confirm) {
|
|
172
|
-
console.error(formatError(
|
|
157
|
+
console.error(formatError('CONFIRMATION_REQUIRED', 'Delete operation requires confirmation.', ['Use --confirm flag to proceed with deletion']));
|
|
173
158
|
process.exit(1);
|
|
174
159
|
}
|
|
175
160
|
const resolvedId = await resolveDocumentId(id);
|
|
176
|
-
await apiRequest(
|
|
177
|
-
console.log(
|
|
161
|
+
await apiRequest('documents.delete', { id: resolvedId });
|
|
162
|
+
console.log('Deleted.');
|
|
178
163
|
});
|
|
179
|
-
doc
|
|
180
|
-
.
|
|
181
|
-
.
|
|
182
|
-
.requiredOption("--collection <ref>", "Target collection ID or name")
|
|
164
|
+
doc.command('move <id>')
|
|
165
|
+
.description('Move a document to another collection')
|
|
166
|
+
.requiredOption('--collection <ref>', 'Target collection ID or name')
|
|
183
167
|
.action(async (id, opts) => {
|
|
184
168
|
const resolvedId = await resolveDocumentId(id);
|
|
185
169
|
const collectionId = await resolveCollectionId(opts.collection);
|
|
186
|
-
await apiRequest(
|
|
170
|
+
await apiRequest('documents.move', {
|
|
187
171
|
id: resolvedId,
|
|
188
172
|
collectionId,
|
|
189
173
|
});
|
|
190
|
-
console.log(
|
|
174
|
+
console.log('Moved.');
|
|
191
175
|
});
|
|
192
|
-
doc
|
|
193
|
-
.
|
|
194
|
-
.description("Archive a document")
|
|
176
|
+
doc.command('archive <id>')
|
|
177
|
+
.description('Archive a document')
|
|
195
178
|
.action(async (id) => {
|
|
196
179
|
const resolvedId = await resolveDocumentId(id);
|
|
197
|
-
await apiRequest(
|
|
198
|
-
console.log(
|
|
180
|
+
await apiRequest('documents.archive', { id: resolvedId });
|
|
181
|
+
console.log('Archived.');
|
|
199
182
|
});
|
|
200
|
-
doc
|
|
201
|
-
.
|
|
202
|
-
.description("Unarchive a document")
|
|
183
|
+
doc.command('unarchive <id>')
|
|
184
|
+
.description('Unarchive a document')
|
|
203
185
|
.action(async (id) => {
|
|
204
186
|
const resolvedId = await resolveDocumentId(id);
|
|
205
|
-
await apiRequest(
|
|
206
|
-
console.log(
|
|
187
|
+
await apiRequest('documents.unarchive', { id: resolvedId });
|
|
188
|
+
console.log('Unarchived.');
|
|
207
189
|
});
|
|
208
190
|
}
|
|
209
191
|
//# sourceMappingURL=document.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"document.js","sourceRoot":"","sources":["../../src/commands/document.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,
|
|
1
|
+
{"version":3,"file":"document.js","sourceRoot":"","sources":["../../src/commands/document.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { Command } from
|
|
1
|
+
import type { Command } from 'commander';
|
|
2
2
|
export declare function registerSearchCommand(program: Command): void;
|
package/dist/commands/search.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import chalk from
|
|
2
|
-
import { apiRequest } from
|
|
3
|
-
import { getBaseUrl } from
|
|
4
|
-
import { getOutputOptions, outputList } from
|
|
5
|
-
const essentialKeys = [
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import { apiRequest } from '../lib/api.js';
|
|
3
|
+
import { getBaseUrl } from '../lib/auth.js';
|
|
4
|
+
import { getOutputOptions, outputList } from '../lib/output.js';
|
|
5
|
+
const essentialKeys = ['document', 'context'];
|
|
6
6
|
function formatResult(result) {
|
|
7
7
|
const { document, context } = result;
|
|
8
8
|
const title = chalk.bold(document.title);
|
|
@@ -10,21 +10,21 @@ function formatResult(result) {
|
|
|
10
10
|
const link = chalk.dim(`${getBaseUrl()}${document.url}`);
|
|
11
11
|
const snippet = context
|
|
12
12
|
.replace(/<b>(.*?)<\/b>/g, (_, m) => chalk.bold(m))
|
|
13
|
-
.replace(/<\/?b>/g,
|
|
13
|
+
.replace(/<\/?b>/g, '')
|
|
14
14
|
.trim()
|
|
15
15
|
.slice(0, 120);
|
|
16
16
|
return `${title} ${id}\n ${link}\n ${chalk.dim(snippet)}\n`;
|
|
17
17
|
}
|
|
18
18
|
export function registerSearchCommand(program) {
|
|
19
19
|
program
|
|
20
|
-
.command(
|
|
21
|
-
.description(
|
|
22
|
-
.option(
|
|
23
|
-
.option(
|
|
24
|
-
.option(
|
|
25
|
-
.option(
|
|
26
|
-
.option(
|
|
27
|
-
.option(
|
|
20
|
+
.command('search <query>')
|
|
21
|
+
.description('Search documents')
|
|
22
|
+
.option('--limit <n>', 'Max results', '25')
|
|
23
|
+
.option('--collection <id>', 'Filter by collection ID')
|
|
24
|
+
.option('--status <status>', 'Filter by status (published|draft|archived)')
|
|
25
|
+
.option('--json', 'Output JSON')
|
|
26
|
+
.option('--ndjson', 'Output NDJSON')
|
|
27
|
+
.option('--full', 'Include all fields in JSON output')
|
|
28
28
|
.action(async (query, opts) => {
|
|
29
29
|
const body = {
|
|
30
30
|
query,
|
|
@@ -34,7 +34,7 @@ export function registerSearchCommand(program) {
|
|
|
34
34
|
body.collectionId = opts.collection;
|
|
35
35
|
if (opts.status)
|
|
36
36
|
body.statusFilter = [opts.status];
|
|
37
|
-
const { data, pagination } = await apiRequest(
|
|
37
|
+
const { data, pagination } = await apiRequest('documents.search', body);
|
|
38
38
|
const outputOpts = getOutputOptions(opts);
|
|
39
39
|
outputList(data, formatResult, essentialKeys, outputOpts, pagination);
|
|
40
40
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/commands/search.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/commands/search.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC3C,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAc/D,MAAM,aAAa,GAA2B,CAAC,UAAU,EAAE,SAAS,CAAC,CAAA;AAErE,SAAS,YAAY,CAAC,MAAoB;IACtC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,MAAM,CAAA;IACpC,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IACxC,MAAM,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IACpC,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,UAAU,EAAE,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAA;IACxD,MAAM,OAAO,GAAG,OAAO;SAClB,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SAClD,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;SACtB,IAAI,EAAE;SACN,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IAClB,OAAO,GAAG,KAAK,IAAI,EAAE,OAAO,IAAI,OAAO,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAA;AACjE,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,OAAgB;IAClD,OAAO;SACF,OAAO,CAAC,gBAAgB,CAAC;SACzB,WAAW,CAAC,kBAAkB,CAAC;SAC/B,MAAM,CAAC,aAAa,EAAE,aAAa,EAAE,IAAI,CAAC;SAC1C,MAAM,CAAC,mBAAmB,EAAE,yBAAyB,CAAC;SACtD,MAAM,CAAC,mBAAmB,EAAE,6CAA6C,CAAC;SAC1E,MAAM,CAAC,QAAQ,EAAE,aAAa,CAAC;SAC/B,MAAM,CAAC,UAAU,EAAE,eAAe,CAAC;SACnC,MAAM,CAAC,QAAQ,EAAE,mCAAmC,CAAC;SACrD,MAAM,CAAC,KAAK,EAAE,KAAa,EAAE,IAAI,EAAE,EAAE;QAClC,MAAM,IAAI,GAA4B;YAClC,KAAK;YACL,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;SAC5B,CAAA;QACD,IAAI,IAAI,CAAC,UAAU;YAAE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,UAAU,CAAA;QACxD,IAAI,IAAI,CAAC,MAAM;YAAE,IAAI,CAAC,YAAY,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAElD,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,MAAM,UAAU,CAAiB,kBAAkB,EAAE,IAAI,CAAC,CAAA;QAEvF,MAAM,UAAU,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAA;QACzC,UAAU,CAAC,IAAI,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,CAAC,CAAA;IACzE,CAAC,CAAC,CAAA;AACV,CAAC"}
|
package/dist/commands/skill.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { Command } from
|
|
1
|
+
import type { Command } from 'commander';
|
|
2
2
|
export declare function registerSkillCommand(program: Command): void;
|
package/dist/commands/skill.js
CHANGED
|
@@ -1,15 +1,13 @@
|
|
|
1
|
-
import chalk from
|
|
2
|
-
import { formatError } from
|
|
3
|
-
import { getInstaller, listAgents, skillInstallers
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import { formatError } from '../lib/output.js';
|
|
3
|
+
import { getInstaller, listAgents, skillInstallers } from '../lib/skills/index.js';
|
|
4
4
|
export function registerSkillCommand(program) {
|
|
5
|
-
const skill = program
|
|
6
|
-
.command("skill")
|
|
7
|
-
.description("Manage coding agent skills/integrations");
|
|
5
|
+
const skill = program.command('skill').description('Manage coding agent skills/integrations');
|
|
8
6
|
const installCmd = skill
|
|
9
|
-
.command(
|
|
10
|
-
.description(
|
|
11
|
-
.option(
|
|
12
|
-
.option(
|
|
7
|
+
.command('install [agent]')
|
|
8
|
+
.description('Install skill for a coding agent')
|
|
9
|
+
.option('--local', 'Install in current project instead of global')
|
|
10
|
+
.option('--force', 'Overwrite existing skill file')
|
|
13
11
|
.action(async (agent, opts) => {
|
|
14
12
|
if (!agent) {
|
|
15
13
|
installCmd.help();
|
|
@@ -17,8 +15,8 @@ export function registerSkillCommand(program) {
|
|
|
17
15
|
}
|
|
18
16
|
const installer = getInstaller(agent);
|
|
19
17
|
if (!installer) {
|
|
20
|
-
const available = listAgents().join(
|
|
21
|
-
console.error(formatError(
|
|
18
|
+
const available = listAgents().join(', ');
|
|
19
|
+
console.error(formatError('UNKNOWN_AGENT', `Unknown agent: ${agent}`, [
|
|
22
20
|
`Available agents: ${available}`,
|
|
23
21
|
"Run 'ol skill list' to see all agents",
|
|
24
22
|
]));
|
|
@@ -28,13 +26,13 @@ export function registerSkillCommand(program) {
|
|
|
28
26
|
const force = opts.force ?? false;
|
|
29
27
|
await installer.install(local, force);
|
|
30
28
|
const filepath = installer.getInstallPath(local);
|
|
31
|
-
console.log(chalk.green(
|
|
29
|
+
console.log(chalk.green('✓'), `Installed ${installer.name} skill`);
|
|
32
30
|
console.log(chalk.dim(filepath));
|
|
33
31
|
});
|
|
34
32
|
const uninstallCmd = skill
|
|
35
|
-
.command(
|
|
36
|
-
.description(
|
|
37
|
-
.option(
|
|
33
|
+
.command('uninstall [agent]')
|
|
34
|
+
.description('Uninstall skill for a coding agent')
|
|
35
|
+
.option('--local', 'Remove from current project instead of global')
|
|
38
36
|
.action(async (agent, opts) => {
|
|
39
37
|
if (!agent) {
|
|
40
38
|
uninstallCmd.help();
|
|
@@ -42,8 +40,8 @@ export function registerSkillCommand(program) {
|
|
|
42
40
|
}
|
|
43
41
|
const installer = getInstaller(agent);
|
|
44
42
|
if (!installer) {
|
|
45
|
-
const available = listAgents().join(
|
|
46
|
-
console.error(formatError(
|
|
43
|
+
const available = listAgents().join(', ');
|
|
44
|
+
console.error(formatError('UNKNOWN_AGENT', `Unknown agent: ${agent}`, [
|
|
47
45
|
`Available agents: ${available}`,
|
|
48
46
|
"Run 'ol skill list' to see all agents",
|
|
49
47
|
]));
|
|
@@ -51,31 +49,31 @@ export function registerSkillCommand(program) {
|
|
|
51
49
|
}
|
|
52
50
|
const local = opts.local ?? false;
|
|
53
51
|
await installer.uninstall(local);
|
|
54
|
-
console.log(chalk.green(
|
|
52
|
+
console.log(chalk.green('✓'), `Uninstalled ${installer.name} skill`);
|
|
55
53
|
});
|
|
56
54
|
skill
|
|
57
|
-
.command(
|
|
58
|
-
.description(
|
|
55
|
+
.command('list')
|
|
56
|
+
.description('List supported agents and install status')
|
|
59
57
|
.action(async () => {
|
|
60
58
|
const agents = listAgents();
|
|
61
|
-
console.log(chalk.bold(
|
|
62
|
-
console.log(
|
|
59
|
+
console.log(chalk.bold('Available agents:'));
|
|
60
|
+
console.log('');
|
|
63
61
|
for (const agentName of agents) {
|
|
64
62
|
const installer = skillInstallers[agentName];
|
|
65
63
|
const globalInstalled = await installer.isInstalled(false);
|
|
66
64
|
const localInstalled = await installer.isInstalled(true);
|
|
67
65
|
const status = [];
|
|
68
66
|
if (globalInstalled)
|
|
69
|
-
status.push(
|
|
67
|
+
status.push('global');
|
|
70
68
|
if (localInstalled)
|
|
71
|
-
status.push(
|
|
69
|
+
status.push('local');
|
|
72
70
|
const statusStr = status.length > 0
|
|
73
|
-
? chalk.green(`[${status.join(
|
|
74
|
-
: chalk.dim(
|
|
71
|
+
? chalk.green(`[${status.join(', ')}]`)
|
|
72
|
+
: chalk.dim('[not installed]');
|
|
75
73
|
console.log(` ${agentName}`);
|
|
76
74
|
console.log(` ${chalk.dim(installer.description)}`);
|
|
77
75
|
console.log(` ${statusStr}`);
|
|
78
|
-
console.log(
|
|
76
|
+
console.log('');
|
|
79
77
|
}
|
|
80
78
|
});
|
|
81
79
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill.js","sourceRoot":"","sources":["../../src/commands/skill.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"skill.js","sourceRoot":"","sources":["../../src/commands/skill.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { Command } from
|
|
3
|
-
import { registerAuthCommand } from
|
|
4
|
-
import { registerCollectionCommand } from
|
|
5
|
-
import { registerDocumentCommand } from
|
|
6
|
-
import { registerSearchCommand } from
|
|
7
|
-
import { registerSkillCommand } from
|
|
2
|
+
import { Command } from 'commander';
|
|
3
|
+
import { registerAuthCommand } from './commands/auth.js';
|
|
4
|
+
import { registerCollectionCommand } from './commands/collection.js';
|
|
5
|
+
import { registerDocumentCommand } from './commands/document.js';
|
|
6
|
+
import { registerSearchCommand } from './commands/search.js';
|
|
7
|
+
import { registerSkillCommand } from './commands/skill.js';
|
|
8
8
|
const program = new Command();
|
|
9
9
|
program
|
|
10
|
-
.name(
|
|
11
|
-
.version(
|
|
12
|
-
.description(
|
|
13
|
-
.option(
|
|
14
|
-
.addHelpText(
|
|
10
|
+
.name('ol')
|
|
11
|
+
.version('0.1.0')
|
|
12
|
+
.description('CLI for the Outline wiki/knowledge base API')
|
|
13
|
+
.option('--no-spinner', 'Disable loading animations')
|
|
14
|
+
.addHelpText('after', `
|
|
15
15
|
Note for AI/LLM agents:
|
|
16
16
|
Use --json or --ndjson flags for unambiguous, parseable output.
|
|
17
17
|
Default JSON shows essential fields; use --full for all fields.`);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AACxD,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAA;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAA;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAE1D,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAA;AAE7B,OAAO;KACF,IAAI,CAAC,IAAI,CAAC;KACV,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,6CAA6C,CAAC;KAC1D,MAAM,CAAC,cAAc,EAAE,4BAA4B,CAAC;KACpD,WAAW,CACR,OAAO,EACP;;;kEAG0D,CAC7D,CAAA;AAEL,mBAAmB,CAAC,OAAO,CAAC,CAAA;AAC5B,qBAAqB,CAAC,OAAO,CAAC,CAAA;AAC9B,uBAAuB,CAAC,OAAO,CAAC,CAAA;AAChC,yBAAyB,CAAC,OAAO,CAAC,CAAA;AAClC,oBAAoB,CAAC,OAAO,CAAC,CAAA;AAE7B,OAAO,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC,GAAU,EAAE,EAAE;IACtC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IAC1B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACnB,CAAC,CAAC,CAAA"}
|