@kincollab/cli 0.1.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 +46 -0
- package/bin/run.js +3 -0
- package/dist/commands/access.d.ts +9 -0
- package/dist/commands/access.d.ts.map +1 -0
- package/dist/commands/access.js +46 -0
- package/dist/commands/access.js.map +1 -0
- package/dist/commands/activity.d.ts +10 -0
- package/dist/commands/activity.d.ts.map +1 -0
- package/dist/commands/activity.js +40 -0
- package/dist/commands/activity.js.map +1 -0
- package/dist/commands/comment/reply.d.ts +14 -0
- package/dist/commands/comment/reply.d.ts.map +1 -0
- package/dist/commands/comment/reply.js +23 -0
- package/dist/commands/comment/reply.js.map +1 -0
- package/dist/commands/comment/resolve.d.ts +10 -0
- package/dist/commands/comment/resolve.d.ts.map +1 -0
- package/dist/commands/comment/resolve.js +20 -0
- package/dist/commands/comment/resolve.js.map +1 -0
- package/dist/commands/comments.d.ts +12 -0
- package/dist/commands/comments.d.ts.map +1 -0
- package/dist/commands/comments.js +50 -0
- package/dist/commands/comments.js.map +1 -0
- package/dist/commands/contents.d.ts +13 -0
- package/dist/commands/contents.d.ts.map +1 -0
- package/dist/commands/contents.js +75 -0
- package/dist/commands/contents.js.map +1 -0
- package/dist/commands/doc/delete.d.ts +10 -0
- package/dist/commands/doc/delete.d.ts.map +1 -0
- package/dist/commands/doc/delete.js +24 -0
- package/dist/commands/doc/delete.js.map +1 -0
- package/dist/commands/doc/get.d.ts +13 -0
- package/dist/commands/doc/get.d.ts.map +1 -0
- package/dist/commands/doc/get.js +36 -0
- package/dist/commands/doc/get.js.map +1 -0
- package/dist/commands/doc/move.d.ts +14 -0
- package/dist/commands/doc/move.d.ts.map +1 -0
- package/dist/commands/doc/move.js +31 -0
- package/dist/commands/doc/move.js.map +1 -0
- package/dist/commands/doc/post.d.ts +15 -0
- package/dist/commands/doc/post.d.ts.map +1 -0
- package/dist/commands/doc/post.js +36 -0
- package/dist/commands/doc/post.js.map +1 -0
- package/dist/commands/doc/rename.d.ts +13 -0
- package/dist/commands/doc/rename.d.ts.map +1 -0
- package/dist/commands/doc/rename.js +24 -0
- package/dist/commands/doc/rename.js.map +1 -0
- package/dist/commands/doc/restore.d.ts +10 -0
- package/dist/commands/doc/restore.d.ts.map +1 -0
- package/dist/commands/doc/restore.js +22 -0
- package/dist/commands/doc/restore.js.map +1 -0
- package/dist/commands/doc/update.d.ts +15 -0
- package/dist/commands/doc/update.d.ts.map +1 -0
- package/dist/commands/doc/update.js +30 -0
- package/dist/commands/doc/update.js.map +1 -0
- package/dist/commands/feedback/submit.d.ts +6 -0
- package/dist/commands/feedback/submit.d.ts.map +1 -0
- package/dist/commands/feedback/submit.js +9 -0
- package/dist/commands/feedback/submit.js.map +1 -0
- package/dist/commands/folder/move.d.ts +14 -0
- package/dist/commands/folder/move.d.ts.map +1 -0
- package/dist/commands/folder/move.js +31 -0
- package/dist/commands/folder/move.js.map +1 -0
- package/dist/commands/folder/rename.d.ts +13 -0
- package/dist/commands/folder/rename.d.ts.map +1 -0
- package/dist/commands/folder/rename.js +25 -0
- package/dist/commands/folder/rename.js.map +1 -0
- package/dist/commands/identity/emoji.d.ts +13 -0
- package/dist/commands/identity/emoji.d.ts.map +1 -0
- package/dist/commands/identity/emoji.js +58 -0
- package/dist/commands/identity/emoji.js.map +1 -0
- package/dist/commands/login.d.ts +10 -0
- package/dist/commands/login.d.ts.map +1 -0
- package/dist/commands/login.js +44 -0
- package/dist/commands/login.js.map +1 -0
- package/dist/commands/logout.d.ts +6 -0
- package/dist/commands/logout.d.ts.map +1 -0
- package/dist/commands/logout.js +11 -0
- package/dist/commands/logout.js.map +1 -0
- package/dist/commands/version.d.ts +6 -0
- package/dist/commands/version.d.ts.map +1 -0
- package/dist/commands/version.js +11 -0
- package/dist/commands/version.js.map +1 -0
- package/dist/commands/whoami.d.ts +9 -0
- package/dist/commands/whoami.d.ts.map +1 -0
- package/dist/commands/whoami.js +40 -0
- package/dist/commands/whoami.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/client.d.ts +10 -0
- package/dist/lib/client.d.ts.map +1 -0
- package/dist/lib/client.js +50 -0
- package/dist/lib/client.js.map +1 -0
- package/dist/lib/config.d.ts +9 -0
- package/dist/lib/config.d.ts.map +1 -0
- package/dist/lib/config.js +38 -0
- package/dist/lib/config.js.map +1 -0
- package/dist/lib/content.d.ts +11 -0
- package/dist/lib/content.d.ts.map +1 -0
- package/dist/lib/content.js +19 -0
- package/dist/lib/content.js.map +1 -0
- package/dist/lib/kin-types.d.ts +58 -0
- package/dist/lib/kin-types.d.ts.map +1 -0
- package/dist/lib/kin-types.js +5 -0
- package/dist/lib/kin-types.js.map +1 -0
- package/dist/lib/output.d.ts +44 -0
- package/dist/lib/output.d.ts.map +1 -0
- package/dist/lib/output.js +96 -0
- package/dist/lib/output.js.map +1 -0
- package/dist/lib/types.d.ts +14 -0
- package/dist/lib/types.d.ts.map +1 -0
- package/dist/lib/types.js +3 -0
- package/dist/lib/types.js.map +1 -0
- package/package.json +56 -0
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,sBAAsB;AACtB,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export declare function apiGet<T>(path: string): Promise<T>;
|
|
2
|
+
export declare function apiPost<T>(path: string, body?: unknown): Promise<T>;
|
|
3
|
+
export declare function apiPatch<T>(path: string, body?: unknown): Promise<T>;
|
|
4
|
+
export declare function apiDelete<T>(path: string): Promise<T>;
|
|
5
|
+
/**
|
|
6
|
+
* One-shot authenticated GET used during `kin login` — token and baseUrl
|
|
7
|
+
* aren't in config yet, so they're passed explicitly.
|
|
8
|
+
*/
|
|
9
|
+
export declare function apiGetWith<T>(path: string, token: string, baseUrl: string): Promise<T>;
|
|
10
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/lib/client.ts"],"names":[],"mappings":"AAmDA,wBAAgB,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAElD;AAED,wBAAgB,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAEnE;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAEpE;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAErD;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAEtF"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { requireConfig } from './config.js';
|
|
2
|
+
async function request(method, path, body, token, baseUrl) {
|
|
3
|
+
const cfg = (token && baseUrl) ? { token, baseUrl } : requireConfig();
|
|
4
|
+
const url = cfg.baseUrl.replace(/\/$/, '') + path;
|
|
5
|
+
const headers = {
|
|
6
|
+
'Authorization': `Bearer ${cfg.token}`,
|
|
7
|
+
'Content-Type': 'application/json',
|
|
8
|
+
};
|
|
9
|
+
const response = await fetch(url, {
|
|
10
|
+
method,
|
|
11
|
+
headers,
|
|
12
|
+
body: body !== undefined ? JSON.stringify(body) : undefined,
|
|
13
|
+
});
|
|
14
|
+
const text = await response.text();
|
|
15
|
+
let parsed;
|
|
16
|
+
try {
|
|
17
|
+
parsed = JSON.parse(text);
|
|
18
|
+
}
|
|
19
|
+
catch {
|
|
20
|
+
parsed = null;
|
|
21
|
+
}
|
|
22
|
+
if (!response.ok) {
|
|
23
|
+
const envelope = parsed;
|
|
24
|
+
const message = envelope?.error?.message ??
|
|
25
|
+
envelope?.message ??
|
|
26
|
+
response.statusText;
|
|
27
|
+
throw new Error(`API error ${response.status}: ${message}`);
|
|
28
|
+
}
|
|
29
|
+
return parsed;
|
|
30
|
+
}
|
|
31
|
+
export function apiGet(path) {
|
|
32
|
+
return request('GET', path);
|
|
33
|
+
}
|
|
34
|
+
export function apiPost(path, body) {
|
|
35
|
+
return request('POST', path, body);
|
|
36
|
+
}
|
|
37
|
+
export function apiPatch(path, body) {
|
|
38
|
+
return request('PATCH', path, body);
|
|
39
|
+
}
|
|
40
|
+
export function apiDelete(path) {
|
|
41
|
+
return request('DELETE', path);
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* One-shot authenticated GET used during `kin login` — token and baseUrl
|
|
45
|
+
* aren't in config yet, so they're passed explicitly.
|
|
46
|
+
*/
|
|
47
|
+
export function apiGetWith(path, token, baseUrl) {
|
|
48
|
+
return request('GET', path, undefined, token, baseUrl);
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/lib/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAS3C,KAAK,UAAU,OAAO,CACpB,MAAkB,EAClB,IAAY,EACZ,IAAc,EACd,KAAc,EACd,OAAgB;IAEhB,MAAM,GAAG,GAAG,CAAC,KAAK,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,aAAa,EAAE,CAAA;IAErE,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,IAAI,CAAA;IACjD,MAAM,OAAO,GAA2B;QACtC,eAAe,EAAE,UAAU,GAAG,CAAC,KAAK,EAAE;QACtC,cAAc,EAAE,kBAAkB;KACnC,CAAA;IAED,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;QAChC,MAAM;QACN,OAAO;QACP,IAAI,EAAE,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;KAC5D,CAAC,CAAA;IAEF,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;IAClC,IAAI,MAAe,CAAA;IACnB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IAC3B,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,GAAG,IAAI,CAAA;IACf,CAAC;IAED,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,QAAQ,GAAG,MAAiC,CAAA;QAClD,MAAM,OAAO,GACX,QAAQ,EAAE,KAAK,EAAE,OAAO;YACxB,QAAQ,EAAE,OAAO;YACjB,QAAQ,CAAC,UAAU,CAAA;QAErB,MAAM,IAAI,KAAK,CAAC,aAAa,QAAQ,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC,CAAA;IAC7D,CAAC;IAED,OAAO,MAAW,CAAA;AACpB,CAAC;AAED,MAAM,UAAU,MAAM,CAAI,IAAY;IACpC,OAAO,OAAO,CAAI,KAAK,EAAE,IAAI,CAAC,CAAA;AAChC,CAAC;AAED,MAAM,UAAU,OAAO,CAAI,IAAY,EAAE,IAAc;IACrD,OAAO,OAAO,CAAI,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;AACvC,CAAC;AAED,MAAM,UAAU,QAAQ,CAAI,IAAY,EAAE,IAAc;IACtD,OAAO,OAAO,CAAI,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;AACxC,CAAC;AAED,MAAM,UAAU,SAAS,CAAI,IAAY;IACvC,OAAO,OAAO,CAAI,QAAQ,EAAE,IAAI,CAAC,CAAA;AACnC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAI,IAAY,EAAE,KAAa,EAAE,OAAe;IACxE,OAAO,OAAO,CAAI,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,CAAA;AAC3D,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export interface KinConfig {
|
|
2
|
+
baseUrl: string;
|
|
3
|
+
token: string;
|
|
4
|
+
}
|
|
5
|
+
export declare function loadConfig(): KinConfig | null;
|
|
6
|
+
export declare function requireConfig(): KinConfig;
|
|
7
|
+
export declare function saveConfig(config: KinConfig): void;
|
|
8
|
+
export declare function clearConfig(): void;
|
|
9
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;CACd;AAKD,wBAAgB,UAAU,IAAI,SAAS,GAAG,IAAI,CAW7C;AAED,wBAAgB,aAAa,IAAI,SAAS,CAMzC;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAGlD;AAED,wBAAgB,WAAW,IAAI,IAAI,CAMlC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import * as fs from 'fs';
|
|
2
|
+
import * as os from 'os';
|
|
3
|
+
import * as path from 'path';
|
|
4
|
+
const CONFIG_DIR = path.join(os.homedir(), '.config', 'kin');
|
|
5
|
+
const CONFIG_FILE = path.join(CONFIG_DIR, 'config.json');
|
|
6
|
+
export function loadConfig() {
|
|
7
|
+
const url = process.env['KIN_API_URL'];
|
|
8
|
+
try {
|
|
9
|
+
const raw = fs.readFileSync(CONFIG_FILE, 'utf8');
|
|
10
|
+
const parsed = JSON.parse(raw);
|
|
11
|
+
if (url)
|
|
12
|
+
parsed.baseUrl = url;
|
|
13
|
+
return parsed;
|
|
14
|
+
}
|
|
15
|
+
catch {
|
|
16
|
+
return null;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
export function requireConfig() {
|
|
20
|
+
const cfg = loadConfig();
|
|
21
|
+
if (!cfg) {
|
|
22
|
+
throw new Error('Not logged in. Run `kin login --token <token>` first.');
|
|
23
|
+
}
|
|
24
|
+
return cfg;
|
|
25
|
+
}
|
|
26
|
+
export function saveConfig(config) {
|
|
27
|
+
fs.mkdirSync(CONFIG_DIR, { recursive: true });
|
|
28
|
+
fs.writeFileSync(CONFIG_FILE, JSON.stringify(config, null, 2), { mode: 0o600 });
|
|
29
|
+
}
|
|
30
|
+
export function clearConfig() {
|
|
31
|
+
try {
|
|
32
|
+
fs.unlinkSync(CONFIG_FILE);
|
|
33
|
+
}
|
|
34
|
+
catch {
|
|
35
|
+
// already gone — fine
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAA;AACxB,OAAO,KAAK,EAAE,MAAM,IAAI,CAAA;AACxB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAA;AAO5B,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,CAAA;AAC5D,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAA;AAExD,MAAM,UAAU,UAAU;IACxB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;IAEtC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,CAAA;QAChD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAc,CAAA;QAC3C,IAAI,GAAG;YAAE,MAAM,CAAC,OAAO,GAAG,GAAG,CAAA;QAC7B,OAAO,MAAM,CAAA;IACf,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,MAAM,GAAG,GAAG,UAAU,EAAE,CAAA;IACxB,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAA;IAC1E,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,MAAiB;IAC1C,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAC7C,EAAE,CAAC,aAAa,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;AACjF,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,IAAI,CAAC;QACH,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,CAAA;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,sBAAsB;IACxB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
interface ContentFlags {
|
|
2
|
+
file?: string;
|
|
3
|
+
content?: string;
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* Resolve document content from either --file or --content flag.
|
|
7
|
+
* Returns the content string, or throws with a user-friendly message.
|
|
8
|
+
*/
|
|
9
|
+
export declare function readContent(flags: ContentFlags, errorFn: (msg: string) => never): string;
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=content.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"content.d.ts","sourceRoot":"","sources":["../../src/lib/content.ts"],"names":[],"mappings":"AAEA,UAAU,YAAY;IACpB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,KAAK,GAAG,MAAM,CAUxF"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import * as fs from 'fs';
|
|
2
|
+
/**
|
|
3
|
+
* Resolve document content from either --file or --content flag.
|
|
4
|
+
* Returns the content string, or throws with a user-friendly message.
|
|
5
|
+
*/
|
|
6
|
+
export function readContent(flags, errorFn) {
|
|
7
|
+
if (flags.file) {
|
|
8
|
+
try {
|
|
9
|
+
return fs.readFileSync(flags.file, 'utf8');
|
|
10
|
+
}
|
|
11
|
+
catch {
|
|
12
|
+
errorFn(`Could not read file: ${flags.file}`);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
if (flags.content)
|
|
16
|
+
return flags.content;
|
|
17
|
+
errorFn('Provide either --file <path> or --content <str>');
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=content.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"content.js","sourceRoot":"","sources":["../../src/lib/content.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAA;AAOxB;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,KAAmB,EAAE,OAA+B;IAC9E,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;QACf,IAAI,CAAC;YACH,OAAO,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QAC5C,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,wBAAwB,KAAK,CAAC,IAAI,EAAE,CAAC,CAAA;QAC/C,CAAC;IACH,CAAC;IACD,IAAI,KAAK,CAAC,OAAO;QAAE,OAAO,KAAK,CAAC,OAAO,CAAA;IACvC,OAAO,CAAC,iDAAiD,CAAC,CAAA;AAC5D,CAAC"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
export type ActorType = 'human' | 'agent' | 'system';
|
|
2
|
+
export interface ContentsActor {
|
|
3
|
+
id: string;
|
|
4
|
+
name: string;
|
|
5
|
+
type: ActorType;
|
|
6
|
+
emoji: string | null;
|
|
7
|
+
}
|
|
8
|
+
export interface DocumentNode {
|
|
9
|
+
id: string;
|
|
10
|
+
name: string;
|
|
11
|
+
type: 'document';
|
|
12
|
+
path: string;
|
|
13
|
+
createdAt: string;
|
|
14
|
+
updatedAt: string;
|
|
15
|
+
createdBy: ContentsActor;
|
|
16
|
+
commitSha: string | null;
|
|
17
|
+
generatedSummary: string | null;
|
|
18
|
+
generatedMicroSummary: string | null;
|
|
19
|
+
}
|
|
20
|
+
export interface FolderNode {
|
|
21
|
+
id: string;
|
|
22
|
+
name: string;
|
|
23
|
+
type: 'folder';
|
|
24
|
+
path: string;
|
|
25
|
+
createdAt: string;
|
|
26
|
+
createdBy: ContentsActor;
|
|
27
|
+
folders: FolderNode[];
|
|
28
|
+
documents: DocumentNode[];
|
|
29
|
+
}
|
|
30
|
+
export interface WorkspaceRef {
|
|
31
|
+
id: string;
|
|
32
|
+
name: string;
|
|
33
|
+
slug: string;
|
|
34
|
+
}
|
|
35
|
+
export interface WorkspaceTree {
|
|
36
|
+
workspace: WorkspaceRef;
|
|
37
|
+
folders: FolderNode[];
|
|
38
|
+
documents: DocumentNode[];
|
|
39
|
+
}
|
|
40
|
+
export interface FlatDocument {
|
|
41
|
+
id: string;
|
|
42
|
+
name: string;
|
|
43
|
+
path: string;
|
|
44
|
+
createdAt: string;
|
|
45
|
+
updatedAt: string;
|
|
46
|
+
createdBy: ContentsActor;
|
|
47
|
+
generatedSummary: string | null;
|
|
48
|
+
generatedMicroSummary: string | null;
|
|
49
|
+
}
|
|
50
|
+
export interface FlatFolder {
|
|
51
|
+
path: string;
|
|
52
|
+
}
|
|
53
|
+
export interface FlatContents {
|
|
54
|
+
workspace: WorkspaceRef;
|
|
55
|
+
documents: FlatDocument[];
|
|
56
|
+
folders: FlatFolder[];
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=kin-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kin-types.d.ts","sourceRoot":"","sources":["../../src/lib/kin-types.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAA;AAEpD,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,SAAS,CAAA;IACf,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,UAAU,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,aAAa,CAAA;IACxB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAA;IAC/B,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAA;CACrC;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,QAAQ,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,aAAa,CAAA;IACxB,OAAO,EAAE,UAAU,EAAE,CAAA;IACrB,SAAS,EAAE,YAAY,EAAE,CAAA;CAC1B;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,YAAY,CAAA;IACvB,OAAO,EAAE,UAAU,EAAE,CAAA;IACrB,SAAS,EAAE,YAAY,EAAE,CAAA;CAC1B;AAGD,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,aAAa,CAAA;IACxB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAA;IAC/B,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAA;CACrC;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,YAAY,CAAA;IACvB,SAAS,EAAE,YAAY,EAAE,CAAA;IACzB,OAAO,EAAE,UAAU,EAAE,CAAA;CACtB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kin-types.js","sourceRoot":"","sources":["../../src/lib/kin-types.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,4EAA4E;AAC5E,2CAA2C"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
export declare const ansi: {
|
|
2
|
+
bold: (s: string) => string;
|
|
3
|
+
dim: (s: string) => string;
|
|
4
|
+
cyan: (s: string) => string;
|
|
5
|
+
green: (s: string) => string;
|
|
6
|
+
yellow: (s: string) => string;
|
|
7
|
+
red: (s: string) => string;
|
|
8
|
+
magenta: (s: string) => string;
|
|
9
|
+
};
|
|
10
|
+
/** Print a key → value pair, left-aligned label, dim separator. */
|
|
11
|
+
export declare function kv(label: string, value: string, labelWidth?: number): void;
|
|
12
|
+
/** Print a hint line in dim text. */
|
|
13
|
+
export declare function hint(text: string): void;
|
|
14
|
+
/** Print a blank separator line. */
|
|
15
|
+
export declare function sep(): void;
|
|
16
|
+
/** Print a section header. */
|
|
17
|
+
export declare function header(text: string): void;
|
|
18
|
+
/**
|
|
19
|
+
* Print an aligned table.
|
|
20
|
+
* @param rows Array of string[] rows
|
|
21
|
+
* @param headers Optional header row (bold)
|
|
22
|
+
*/
|
|
23
|
+
export declare function table(rows: string[][], headers?: string[]): void;
|
|
24
|
+
/** Format a date as a relative-ish human string (e.g. "3 min ago", "2 h ago"). */
|
|
25
|
+
export declare function relativeTime(date: Date | string): string;
|
|
26
|
+
/** Print raw JSON (for --json flag). */
|
|
27
|
+
export declare function printJson(data: unknown): void;
|
|
28
|
+
/** Shared --json flag definition for read commands. */
|
|
29
|
+
export declare const JSON_FLAG: {
|
|
30
|
+
readonly json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
31
|
+
};
|
|
32
|
+
/** Format an actor/author as "Name [agent|human]" with ANSI colour tags. */
|
|
33
|
+
export declare function formatActorTag(actor: {
|
|
34
|
+
name: string;
|
|
35
|
+
type: string;
|
|
36
|
+
}): string;
|
|
37
|
+
/** Extract the commit SHA from a document response (handles both response shapes). */
|
|
38
|
+
export declare function resolveCommitSha(doc: {
|
|
39
|
+
commitSha?: string;
|
|
40
|
+
commitInfo?: {
|
|
41
|
+
sha: string;
|
|
42
|
+
};
|
|
43
|
+
}): string;
|
|
44
|
+
//# sourceMappingURL=output.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../src/lib/output.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,IAAI;cACF,MAAM;aACN,MAAM;cACN,MAAM;eACN,MAAM;gBACN,MAAM;aACN,MAAM;iBACN,MAAM;CACpB,CAAA;AAED,mEAAmE;AACnE,wBAAgB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,SAAK,GAAG,IAAI,CAGtE;AAED,qCAAqC;AACrC,wBAAgB,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAEvC;AAED,oCAAoC;AACpC,wBAAgB,GAAG,IAAI,IAAI,CAE1B;AAED,8BAA8B;AAC9B,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAEzC;AAED;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAgChE;AAED,kFAAkF;AAClF,wBAAgB,YAAY,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,CASxD;AAED,wCAAwC;AACxC,wBAAgB,SAAS,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAE7C;AAED,uDAAuD;AACvD,eAAO,MAAM,SAAS;;CAEZ,CAAA;AAEV,4EAA4E;AAC5E,wBAAgB,cAAc,CAAC,KAAK,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAG5E;AAED,sFAAsF;AACtF,wBAAgB,gBAAgB,CAAC,GAAG,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GAAG,MAAM,CAElG"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { Flags } from '@oclif/core';
|
|
2
|
+
// ANSI helpers — no external deps
|
|
3
|
+
const ESC = '\x1b[';
|
|
4
|
+
export const ansi = {
|
|
5
|
+
bold: (s) => `${ESC}1m${s}${ESC}0m`,
|
|
6
|
+
dim: (s) => `${ESC}2m${s}${ESC}0m`,
|
|
7
|
+
cyan: (s) => `${ESC}36m${s}${ESC}0m`,
|
|
8
|
+
green: (s) => `${ESC}32m${s}${ESC}0m`,
|
|
9
|
+
yellow: (s) => `${ESC}33m${s}${ESC}0m`,
|
|
10
|
+
red: (s) => `${ESC}31m${s}${ESC}0m`,
|
|
11
|
+
magenta: (s) => `${ESC}35m${s}${ESC}0m`,
|
|
12
|
+
};
|
|
13
|
+
/** Print a key → value pair, left-aligned label, dim separator. */
|
|
14
|
+
export function kv(label, value, labelWidth = 16) {
|
|
15
|
+
const padded = label.padEnd(labelWidth);
|
|
16
|
+
process.stdout.write(` ${ansi.bold(padded)} ${value}\n`);
|
|
17
|
+
}
|
|
18
|
+
/** Print a hint line in dim text. */
|
|
19
|
+
export function hint(text) {
|
|
20
|
+
process.stdout.write(`${ansi.dim(` hint: ${text}`)}\n`);
|
|
21
|
+
}
|
|
22
|
+
/** Print a blank separator line. */
|
|
23
|
+
export function sep() {
|
|
24
|
+
process.stdout.write('\n');
|
|
25
|
+
}
|
|
26
|
+
/** Print a section header. */
|
|
27
|
+
export function header(text) {
|
|
28
|
+
process.stdout.write(`\n${ansi.bold(ansi.cyan(text))}\n`);
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Print an aligned table.
|
|
32
|
+
* @param rows Array of string[] rows
|
|
33
|
+
* @param headers Optional header row (bold)
|
|
34
|
+
*/
|
|
35
|
+
export function table(rows, headers) {
|
|
36
|
+
const allRows = headers ? [headers, ...rows] : rows;
|
|
37
|
+
if (allRows.length === 0)
|
|
38
|
+
return;
|
|
39
|
+
// Calculate column widths
|
|
40
|
+
const colCount = allRows.reduce((max, r) => Math.max(max, r.length), 0);
|
|
41
|
+
const widths = Array(colCount).fill(0);
|
|
42
|
+
for (const row of allRows) {
|
|
43
|
+
for (let i = 0; i < row.length; i++) {
|
|
44
|
+
widths[i] = Math.max(widths[i], (row[i] ?? '').length);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
const printRow = (row, bold) => {
|
|
48
|
+
const cells = row.map((cell, i) => cell.padEnd(widths[i]));
|
|
49
|
+
const line = ` ${cells.join(' ')}`;
|
|
50
|
+
process.stdout.write(bold ? `${ansi.bold(line)}\n` : `${line}\n`);
|
|
51
|
+
};
|
|
52
|
+
if (headers) {
|
|
53
|
+
printRow(headers, true);
|
|
54
|
+
// separator
|
|
55
|
+
process.stdout.write(` ${widths.map((w) => '-'.repeat(w)).join(' ')}\n`);
|
|
56
|
+
for (const row of rows) {
|
|
57
|
+
printRow(row, false);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
for (const row of allRows) {
|
|
62
|
+
printRow(row, false);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
/** Format a date as a relative-ish human string (e.g. "3 min ago", "2 h ago"). */
|
|
67
|
+
export function relativeTime(date) {
|
|
68
|
+
const d = typeof date === 'string' ? new Date(date) : date;
|
|
69
|
+
const diffMs = Date.now() - d.getTime();
|
|
70
|
+
const diffSec = Math.floor(diffMs / 1000);
|
|
71
|
+
if (diffSec < 60)
|
|
72
|
+
return `${diffSec}s ago`;
|
|
73
|
+
if (diffSec < 3600)
|
|
74
|
+
return `${Math.floor(diffSec / 60)}m ago`;
|
|
75
|
+
if (diffSec < 86400)
|
|
76
|
+
return `${Math.floor(diffSec / 3600)}h ago`;
|
|
77
|
+
return `${Math.floor(diffSec / 86400)}d ago`;
|
|
78
|
+
}
|
|
79
|
+
/** Print raw JSON (for --json flag). */
|
|
80
|
+
export function printJson(data) {
|
|
81
|
+
process.stdout.write(JSON.stringify(data, null, 2) + '\n');
|
|
82
|
+
}
|
|
83
|
+
/** Shared --json flag definition for read commands. */
|
|
84
|
+
export const JSON_FLAG = {
|
|
85
|
+
json: Flags.boolean({ description: 'Print raw JSON output', default: false }),
|
|
86
|
+
};
|
|
87
|
+
/** Format an actor/author as "Name [agent|human]" with ANSI colour tags. */
|
|
88
|
+
export function formatActorTag(actor) {
|
|
89
|
+
const typeTag = actor.type === 'agent' ? ansi.magenta('[agent]') : ansi.dim('[human]');
|
|
90
|
+
return `${ansi.bold(actor.name)} ${typeTag}`;
|
|
91
|
+
}
|
|
92
|
+
/** Extract the commit SHA from a document response (handles both response shapes). */
|
|
93
|
+
export function resolveCommitSha(doc) {
|
|
94
|
+
return doc.commitInfo?.sha ?? doc.commitSha ?? '';
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=output.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"output.js","sourceRoot":"","sources":["../../src/lib/output.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/** Shared response types for CLI commands. */
|
|
2
|
+
export interface MeResponse {
|
|
3
|
+
data: {
|
|
4
|
+
id: string;
|
|
5
|
+
name: string;
|
|
6
|
+
type: 'human' | 'agent' | 'system';
|
|
7
|
+
emoji?: string | null;
|
|
8
|
+
createdAt: string;
|
|
9
|
+
};
|
|
10
|
+
meta?: {
|
|
11
|
+
hints?: string[];
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/lib/types.ts"],"names":[],"mappings":"AAAA,8CAA8C;AAE9C,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE;QACJ,EAAE,EAAE,MAAM,CAAA;QACV,IAAI,EAAE,MAAM,CAAA;QACZ,IAAI,EAAE,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAA;QAClC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;QACrB,SAAS,EAAE,MAAM,CAAA;KAClB,CAAA;IACD,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAA;CAC5B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/lib/types.ts"],"names":[],"mappings":"AAAA,8CAA8C"}
|
package/package.json
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@kincollab/cli",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Kin CLI — agent-ergonomic command line for the Kin collaboration platform (kincollab.com)",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"kin",
|
|
7
|
+
"kincollab",
|
|
8
|
+
"cli",
|
|
9
|
+
"agents",
|
|
10
|
+
"collaboration",
|
|
11
|
+
"ai"
|
|
12
|
+
],
|
|
13
|
+
"homepage": "https://kincollab.com",
|
|
14
|
+
"repository": {
|
|
15
|
+
"type": "git",
|
|
16
|
+
"url": "git+https://github.com/jmagnuss/kin.git",
|
|
17
|
+
"directory": "apps/cli"
|
|
18
|
+
},
|
|
19
|
+
"license": "UNLICENSED",
|
|
20
|
+
"author": "Jeff Magnusson",
|
|
21
|
+
"type": "module",
|
|
22
|
+
"main": "./dist/index.js",
|
|
23
|
+
"bin": {
|
|
24
|
+
"kin": "./bin/run.js"
|
|
25
|
+
},
|
|
26
|
+
"files": [
|
|
27
|
+
"bin",
|
|
28
|
+
"dist",
|
|
29
|
+
"README.md"
|
|
30
|
+
],
|
|
31
|
+
"engines": {
|
|
32
|
+
"node": ">=20"
|
|
33
|
+
},
|
|
34
|
+
"scripts": {
|
|
35
|
+
"build": "tsc",
|
|
36
|
+
"dev": "ts-node --esm src/index.ts",
|
|
37
|
+
"lint": "tsc --noEmit",
|
|
38
|
+
"prepublishOnly": "tsc"
|
|
39
|
+
},
|
|
40
|
+
"dependencies": {
|
|
41
|
+
"@oclif/core": "^4.2.3"
|
|
42
|
+
},
|
|
43
|
+
"devDependencies": {
|
|
44
|
+
"@types/node": "^22.13.5",
|
|
45
|
+
"typescript": "^5.7.3"
|
|
46
|
+
},
|
|
47
|
+
"publishConfig": {
|
|
48
|
+
"access": "public"
|
|
49
|
+
},
|
|
50
|
+
"oclif": {
|
|
51
|
+
"bin": "kin",
|
|
52
|
+
"commands": "./dist/commands",
|
|
53
|
+
"plugins": [],
|
|
54
|
+
"topicSeparator": " "
|
|
55
|
+
}
|
|
56
|
+
}
|