@iamramo/zanat-cli 0.4.1 → 0.5.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/dist/cli.js +4 -1
- package/dist/cli.js.map +1 -1
- package/dist/commands/add.d.ts.map +1 -1
- package/dist/commands/add.js +2 -1
- package/dist/commands/add.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +9 -6
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/list.d.ts.map +1 -1
- package/dist/commands/list.js +6 -2
- package/dist/commands/list.js.map +1 -1
- package/dist/commands/search.d.ts.map +1 -1
- package/dist/commands/search.js +10 -5
- package/dist/commands/search.js.map +1 -1
- package/dist/commands/status.d.ts +2 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +65 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/utils/logger.d.ts +2 -0
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +3 -0
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/validation.d.ts +1 -0
- package/dist/utils/validation.d.ts.map +1 -1
- package/dist/utils/validation.js +11 -1
- package/dist/utils/validation.js.map +1 -1
- package/package.json +2 -2
package/dist/cli.js
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import { program } from 'commander';
|
|
2
|
+
import packageJson from '../package.json' with { type: 'json' };
|
|
2
3
|
import { initCommand } from './commands/init.js';
|
|
3
4
|
import { syncCommand } from './commands/sync.js';
|
|
4
5
|
import { addCommand } from './commands/add.js';
|
|
5
6
|
import { removeCommand } from './commands/remove.js';
|
|
6
7
|
import { listCommand } from './commands/list.js';
|
|
7
8
|
import { searchCommand } from './commands/search.js';
|
|
8
|
-
|
|
9
|
+
import { statusCommand } from './commands/status.js';
|
|
10
|
+
program.name('zanat').description('A skill hub for AI agents').version(packageJson.version);
|
|
9
11
|
program
|
|
10
12
|
.command('init')
|
|
11
13
|
.description('Initialize zanat configuration and clone the hub')
|
|
@@ -21,5 +23,6 @@ program
|
|
|
21
23
|
.action(removeCommand);
|
|
22
24
|
program.command('list').description('List added skills').action(listCommand);
|
|
23
25
|
program.command('search [query]').description('Search for skills in the hub').action(searchCommand);
|
|
26
|
+
program.command('status').description('Show hub and skills status').action(statusCommand);
|
|
24
27
|
program.parse();
|
|
25
28
|
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,2BAA2B,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,WAAW,MAAM,iBAAiB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,2BAA2B,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AAE5F,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,kDAAkD,CAAC;KAC/D,MAAM,CAAC,WAAW,CAAC,CAAC;AAEvB,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,8BAA8B,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;AAExF,OAAO;KACJ,OAAO,CAAC,aAAa,CAAC;KACtB,WAAW,CAAC,yCAAyC,CAAC;KACtD,MAAM,CAAC,UAAU,CAAC,CAAC;AAEtB,OAAO;KACJ,OAAO,CAAC,gBAAgB,CAAC;KACzB,WAAW,CAAC,4CAA4C,CAAC;KACzD,MAAM,CAAC,aAAa,CAAC,CAAC;AAEzB,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;AAE7E,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,WAAW,CAAC,8BAA8B,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;AAEpG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,4BAA4B,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;AAE1F,OAAO,CAAC,KAAK,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,UAAU,GAAU,UAAU,MAAM,KAAG,OAAO,CAAC,IAAI,
|
|
1
|
+
{"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,UAAU,GAAU,UAAU,MAAM,KAAG,OAAO,CAAC,IAAI,CAc/D,CAAC"}
|
package/dist/commands/add.js
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { installSkill } from '@iamramo/zanat-core';
|
|
2
2
|
import { logger } from '../utils/logger.js';
|
|
3
|
-
import { validateSkillArg, ensureHubExists } from '../utils/validation.js';
|
|
3
|
+
import { validateSkillArg, ensureHubExists, checkHubBehind } from '../utils/validation.js';
|
|
4
4
|
export const addCommand = async (skillArg) => {
|
|
5
5
|
logger.info(`Adding skill: ${skillArg}...`);
|
|
6
6
|
try {
|
|
7
7
|
await ensureHubExists();
|
|
8
|
+
await checkHubBehind();
|
|
8
9
|
const { source, skillName } = validateSkillArg(skillArg);
|
|
9
10
|
await installSkill(source, skillName);
|
|
10
11
|
logger.success(`Added zanat.${source}.${skillName}`);
|
package/dist/commands/add.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add.js","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"add.js","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAE3F,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,EAAE,QAAgB,EAAiB,EAAE;IAClE,MAAM,CAAC,IAAI,CAAC,iBAAiB,QAAQ,KAAK,CAAC,CAAC;IAE5C,IAAI,CAAC;QACH,MAAM,eAAe,EAAE,CAAC;QACxB,MAAM,cAAc,EAAE,CAAC;QACvB,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QACzD,MAAM,YAAY,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAEtC,MAAM,CAAC,OAAO,CAAC,eAAe,MAAM,IAAI,SAAS,EAAE,CAAC,CAAC;IACvD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;QACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAaA,eAAO,MAAM,WAAW,QAAa,OAAO,CAAC,IAAI,CAmDhD,CAAC"}
|
package/dist/commands/init.js
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { ZANAT_DIR, HUB_DIR, AGENTS_DIR, saveConfig, cloneHub, isHubCloned, } from '@iamramo/zanat-core';
|
|
1
|
+
import { ZANAT_DIR, HUB_DIR, AGENTS_DIR, CONFIG_FILE, saveConfig, cloneHub, isHubCloned, } from '@iamramo/zanat-core';
|
|
2
2
|
import { input } from '@inquirer/prompts';
|
|
3
3
|
import fs from 'fs-extra';
|
|
4
4
|
import { logger } from '../utils/logger.js';
|
|
5
5
|
export const initCommand = async () => {
|
|
6
|
-
logger.info('Initializing Zanat
|
|
6
|
+
logger.info('Initializing Zanat...');
|
|
7
|
+
logger.blank();
|
|
7
8
|
try {
|
|
8
9
|
const hubUrl = await input({
|
|
9
10
|
message: 'Hub repository URL:',
|
|
@@ -13,7 +14,8 @@ export const initCommand = async () => {
|
|
|
13
14
|
message: 'Hub branch:',
|
|
14
15
|
default: 'main',
|
|
15
16
|
});
|
|
16
|
-
logger.
|
|
17
|
+
logger.blank();
|
|
18
|
+
logger.info('Setting up directories...');
|
|
17
19
|
await fs.ensureDir(ZANAT_DIR);
|
|
18
20
|
logger.success(`Created ${ZANAT_DIR}`);
|
|
19
21
|
const config = {
|
|
@@ -23,6 +25,7 @@ export const initCommand = async () => {
|
|
|
23
25
|
await fs.ensureDir(AGENTS_DIR);
|
|
24
26
|
const hubExists = await isHubCloned();
|
|
25
27
|
if (!hubExists) {
|
|
28
|
+
logger.blank();
|
|
26
29
|
logger.info('Cloning hub repository...');
|
|
27
30
|
const actualBranch = await cloneHub(hubUrl, hubBranch);
|
|
28
31
|
if (actualBranch !== hubBranch) {
|
|
@@ -35,9 +38,9 @@ export const initCommand = async () => {
|
|
|
35
38
|
logger.warning('Hub already exists, skipping clone');
|
|
36
39
|
}
|
|
37
40
|
await saveConfig(config);
|
|
38
|
-
logger.success(`Created config`);
|
|
39
|
-
logger.
|
|
40
|
-
logger.
|
|
41
|
+
logger.success(`Created config.json in ${CONFIG_FILE}`);
|
|
42
|
+
logger.blank();
|
|
43
|
+
logger.success('Zanat initialized successfully!');
|
|
41
44
|
}
|
|
42
45
|
catch (error) {
|
|
43
46
|
logger.error('Failed to initialize', error);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,OAAO,EACP,UAAU,EACV,UAAU,EACV,QAAQ,EACR,WAAW,GACZ,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,IAAmB,EAAE;IACnD,MAAM,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,OAAO,EACP,UAAU,EACV,WAAW,EACX,UAAU,EACV,QAAQ,EACR,WAAW,GACZ,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,IAAmB,EAAE;IACnD,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;IACrC,MAAM,CAAC,KAAK,EAAE,CAAC;IAEf,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC;YACzB,OAAO,EAAE,qBAAqB;YAC9B,OAAO,EAAE,0CAA0C;SACpD,CAAC,CAAC;QAEH,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC;YAC5B,OAAO,EAAE,aAAa;YACtB,OAAO,EAAE,MAAM;SAChB,CAAC,CAAC;QAEH,MAAM,CAAC,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QAEzC,MAAM,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAC9B,MAAM,CAAC,OAAO,CAAC,WAAW,SAAS,EAAE,CAAC,CAAC;QAEvC,MAAM,MAAM,GAAG;YACb,MAAM;YACN,SAAS;SACV,CAAC;QAEF,MAAM,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAE/B,MAAM,SAAS,GAAG,MAAM,WAAW,EAAE,CAAC;QACtC,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;YACzC,MAAM,YAAY,GAAG,MAAM,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;YACvD,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;gBAC/B,MAAM,CAAC,SAAS,GAAG,YAAY,CAAC;gBAChC,MAAM,CAAC,OAAO,CAAC,WAAW,SAAS,uBAAuB,YAAY,WAAW,CAAC,CAAC;YACrF,CAAC;YACD,MAAM,CAAC,OAAO,CAAC,iBAAiB,OAAO,EAAE,CAAC,CAAC;QAC7C,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,OAAO,CAAC,oCAAoC,CAAC,CAAC;QACvD,CAAC;QAED,MAAM,UAAU,CAAC,MAAM,CAAC,CAAC;QACzB,MAAM,CAAC,OAAO,CAAC,0BAA0B,WAAW,EAAE,CAAC,CAAC;QAExD,MAAM,CAAC,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAAC;IACpD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAC;QAC5C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,WAAW,QAAa,OAAO,CAAC,IAAI,CAyBhD,CAAC"}
|
package/dist/commands/list.js
CHANGED
|
@@ -1,19 +1,23 @@
|
|
|
1
1
|
import { getAddedSkills } from '@iamramo/zanat-core';
|
|
2
2
|
import chalk from 'chalk';
|
|
3
3
|
import { logger } from '../utils/logger.js';
|
|
4
|
+
import { checkHubBehind } from '../utils/validation.js';
|
|
4
5
|
export const listCommand = async () => {
|
|
5
6
|
try {
|
|
7
|
+
await checkHubBehind();
|
|
6
8
|
const skills = await getAddedSkills();
|
|
7
9
|
if (skills.length === 0) {
|
|
8
10
|
logger.dim('No skills added.');
|
|
9
11
|
logger.dim('Run `zanat search` to find skills or `zanat add <skill>` to add one.');
|
|
10
12
|
return;
|
|
11
13
|
}
|
|
12
|
-
logger.info('Added skills
|
|
14
|
+
logger.info('Added skills:');
|
|
15
|
+
logger.blank();
|
|
13
16
|
skills.forEach((skill) => {
|
|
14
17
|
console.log(chalk.green('•'), skill);
|
|
15
18
|
});
|
|
16
|
-
logger.
|
|
19
|
+
logger.blank();
|
|
20
|
+
logger.dim(`Total: ${skills.length} skill${skills.length === 1 ? '' : 's'}`);
|
|
17
21
|
}
|
|
18
22
|
catch (error) {
|
|
19
23
|
logger.error('Failed to list skills', error);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,IAAmB,EAAE;IACnD,IAAI,CAAC;QACH,MAAM,cAAc,EAAE,CAAC;QAEvB,MAAM,MAAM,GAAG,MAAM,cAAc,EAAE,CAAC;QAEtC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;YAC/B,MAAM,CAAC,GAAG,CAAC,sEAAsE,CAAC,CAAC;YACnF,OAAO;QACT,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC7B,MAAM,CAAC,KAAK,EAAE,CAAC;QAEf,MAAM,CAAC,OAAO,CAAC,CAAC,KAAa,EAAE,EAAE;YAC/B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,GAAG,CAAC,UAAU,MAAM,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;IAC/E,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,uBAAuB,EAAE,KAAK,CAAC,CAAC;QAC7C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/commands/search.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,aAAa,GAAU,QAAQ,MAAM,KAAG,OAAO,CAAC,IAAI,
|
|
1
|
+
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/commands/search.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,aAAa,GAAU,QAAQ,MAAM,KAAG,OAAO,CAAC,IAAI,CAgChE,CAAC"}
|
package/dist/commands/search.js
CHANGED
|
@@ -1,16 +1,18 @@
|
|
|
1
1
|
import { searchSkills } from '@iamramo/zanat-core';
|
|
2
2
|
import chalk from 'chalk';
|
|
3
3
|
import { logger } from '../utils/logger.js';
|
|
4
|
-
import { ensureHubExists } from '../utils/validation.js';
|
|
4
|
+
import { ensureHubExists, checkHubBehind } from '../utils/validation.js';
|
|
5
5
|
export const searchCommand = async (query) => {
|
|
6
6
|
try {
|
|
7
7
|
await ensureHubExists();
|
|
8
|
+
await checkHubBehind();
|
|
8
9
|
if (query) {
|
|
9
|
-
logger.info(`Searching for: "${query}"
|
|
10
|
+
logger.info(`Searching for: "${query}"...`);
|
|
10
11
|
}
|
|
11
12
|
else {
|
|
12
|
-
logger.info('Available skills
|
|
13
|
+
logger.info('Available skills:');
|
|
13
14
|
}
|
|
15
|
+
logger.blank();
|
|
14
16
|
const results = await searchSkills(query);
|
|
15
17
|
if (results.length === 0) {
|
|
16
18
|
logger.dim('No skills found.');
|
|
@@ -18,9 +20,12 @@ export const searchCommand = async (query) => {
|
|
|
18
20
|
}
|
|
19
21
|
results.forEach((skill) => {
|
|
20
22
|
console.log(chalk.green('•'), `${skill.source}/${skill.name}`);
|
|
21
|
-
logger.dim(` ${skill.description}
|
|
23
|
+
logger.dim(` ${skill.description}`);
|
|
24
|
+
logger.blank();
|
|
22
25
|
});
|
|
23
|
-
logger.dim(`Found ${results.length} skill${results.length === 1 ? '' : 's'}
|
|
26
|
+
logger.dim(`Found ${results.length} skill${results.length === 1 ? '' : 's'}`);
|
|
27
|
+
logger.blank();
|
|
28
|
+
logger.dim('Add a skill with: zanat add <source>/<skill-name>');
|
|
24
29
|
}
|
|
25
30
|
catch (error) {
|
|
26
31
|
logger.error('Failed to search', error);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/commands/search.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/commands/search.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAEzE,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,EAAE,KAAc,EAAiB,EAAE;IACnE,IAAI,CAAC;QACH,MAAM,eAAe,EAAE,CAAC;QACxB,MAAM,cAAc,EAAE,CAAC;QAEvB,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,CAAC,IAAI,CAAC,mBAAmB,KAAK,MAAM,CAAC,CAAC;QAC9C,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QACnC,CAAC;QACD,MAAM,CAAC,KAAK,EAAE,CAAC;QAEf,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,KAAK,CAAC,CAAC;QAE1C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;YAC/B,OAAO;QACT,CAAC;QAED,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YACxB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;YAC/D,MAAM,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;YACrC,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,GAAG,CAAC,SAAS,OAAO,CAAC,MAAM,SAAS,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;QAC9E,MAAM,CAAC,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC;IAClE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC;QACxC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAqBA,eAAO,MAAM,aAAa,QAAa,OAAO,CAAC,IAAI,CAiDlD,CAAC"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { getHubStatus, getAddedSkills, loadConfig } from '@iamramo/zanat-core';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
import { logger } from '../utils/logger.js';
|
|
4
|
+
const formatLastSync = (lastSync) => {
|
|
5
|
+
if (!lastSync)
|
|
6
|
+
return 'Never';
|
|
7
|
+
const last = new Date(lastSync);
|
|
8
|
+
const now = new Date();
|
|
9
|
+
const diffMs = now.getTime() - last.getTime();
|
|
10
|
+
const diffMins = Math.floor(diffMs / 60000);
|
|
11
|
+
const diffHours = Math.floor(diffMs / 3600000);
|
|
12
|
+
const diffDays = Math.floor(diffMs / 86400000);
|
|
13
|
+
if (diffMins < 1)
|
|
14
|
+
return 'Just now';
|
|
15
|
+
if (diffMins < 60)
|
|
16
|
+
return `${diffMins} minute${diffMins === 1 ? '' : 's'} ago`;
|
|
17
|
+
if (diffHours < 24)
|
|
18
|
+
return `${diffHours} hour${diffHours === 1 ? '' : 's'} ago`;
|
|
19
|
+
if (diffDays < 7)
|
|
20
|
+
return `${diffDays} day${diffDays === 1 ? '' : 's'} ago`;
|
|
21
|
+
return last.toLocaleDateString();
|
|
22
|
+
};
|
|
23
|
+
export const statusCommand = async () => {
|
|
24
|
+
try {
|
|
25
|
+
const hubStatus = await getHubStatus();
|
|
26
|
+
const skills = await getAddedSkills();
|
|
27
|
+
const config = await loadConfig();
|
|
28
|
+
logger.info('Hub Status:');
|
|
29
|
+
logger.blank();
|
|
30
|
+
if (!hubStatus.initialized) {
|
|
31
|
+
logger.dim(' Not initialized');
|
|
32
|
+
logger.dim(' Run `zanat init` to set up');
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
console.log(chalk.green('•'), 'Initialized:', chalk.bold('yes'));
|
|
36
|
+
if (hubStatus.remoteUrl) {
|
|
37
|
+
console.log(chalk.green('•'), 'Repository:', chalk.bold(hubStatus.remoteUrl));
|
|
38
|
+
}
|
|
39
|
+
if (hubStatus.branch) {
|
|
40
|
+
console.log(chalk.green('•'), 'Branch:', chalk.bold(hubStatus.branch));
|
|
41
|
+
}
|
|
42
|
+
console.log(chalk.green('•'), 'Last sync:', chalk.bold(formatLastSync(config?.lastSync)));
|
|
43
|
+
if (hubStatus.behind > 0) {
|
|
44
|
+
logger.warning(` Behind: ${hubStatus.behind} commit${hubStatus.behind === 1 ? '' : 's'}`);
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
console.log(chalk.green('•'), 'Behind: 0 commits (up to date)');
|
|
48
|
+
}
|
|
49
|
+
logger.blank();
|
|
50
|
+
logger.info('Skills:');
|
|
51
|
+
logger.blank();
|
|
52
|
+
console.log(chalk.green('•'), 'Added:', chalk.bold(skills.length.toString()));
|
|
53
|
+
if (skills.length > 0) {
|
|
54
|
+
skills.forEach((skill) => {
|
|
55
|
+
console.log(' ', chalk.dim('•'), skill);
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
logger.blank();
|
|
59
|
+
}
|
|
60
|
+
catch (error) {
|
|
61
|
+
logger.error('Failed to get status', error);
|
|
62
|
+
process.exit(1);
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
//# sourceMappingURL=status.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC/E,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,MAAM,cAAc,GAAG,CAAC,QAAiB,EAAU,EAAE;IACnD,IAAI,CAAC,QAAQ;QAAE,OAAO,OAAO,CAAC;IAE9B,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC;IAChC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IACvB,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;IAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC;IAC5C,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC,CAAC;IAC/C,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,QAAQ,CAAC,CAAC;IAE/C,IAAI,QAAQ,GAAG,CAAC;QAAE,OAAO,UAAU,CAAC;IACpC,IAAI,QAAQ,GAAG,EAAE;QAAE,OAAO,GAAG,QAAQ,UAAU,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;IAC/E,IAAI,SAAS,GAAG,EAAE;QAAE,OAAO,GAAG,SAAS,QAAQ,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;IAChF,IAAI,QAAQ,GAAG,CAAC;QAAE,OAAO,GAAG,QAAQ,OAAO,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;IAC3E,OAAO,IAAI,CAAC,kBAAkB,EAAE,CAAC;AACnC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,IAAmB,EAAE;IACrD,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,MAAM,YAAY,EAAE,CAAC;QACvC,MAAM,MAAM,GAAG,MAAM,cAAc,EAAE,CAAC;QACtC,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAC;QAElC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC3B,MAAM,CAAC,KAAK,EAAE,CAAC;QAEf,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;YAC3B,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;YAChC,MAAM,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;YAC3C,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,cAAc,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAEjE,IAAI,SAAS,CAAC,SAAS,EAAE,CAAC;YACxB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,aAAa,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;QAChF,CAAC;QAED,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;YACrB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;QACzE,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;QAE1F,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,MAAM,CAAC,OAAO,CAAC,aAAa,SAAS,CAAC,MAAM,UAAU,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;QAC7F,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,gCAAgC,CAAC,CAAC;QAClE,CAAC;QAED,MAAM,CAAC,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACvB,MAAM,CAAC,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QAE9E,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,CAAC,OAAO,CAAC,CAAC,KAAa,EAAE,EAAE;gBAC/B,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;YAC3C,CAAC,CAAC,CAAC;QACL,CAAC;QAED,MAAM,CAAC,KAAK,EAAE,CAAC;IACjB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAC;QAC5C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC"}
|
package/dist/utils/logger.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ export interface Logger {
|
|
|
4
4
|
warning(message: string): void;
|
|
5
5
|
error(message: string, error?: unknown): void;
|
|
6
6
|
dim(message: string): void;
|
|
7
|
+
blank(): void;
|
|
7
8
|
}
|
|
8
9
|
declare class ConsoleLogger implements Logger {
|
|
9
10
|
info(message: string): void;
|
|
@@ -11,6 +12,7 @@ declare class ConsoleLogger implements Logger {
|
|
|
11
12
|
warning(message: string): void;
|
|
12
13
|
error(message: string, error?: unknown): void;
|
|
13
14
|
dim(message: string): void;
|
|
15
|
+
blank(): void;
|
|
14
16
|
}
|
|
15
17
|
export declare const logger: ConsoleLogger;
|
|
16
18
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,MAAM;IACrB,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAC9C,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,MAAM;IACrB,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAC9C,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,KAAK,IAAI,IAAI,CAAC;CACf;AAED,cAAM,aAAc,YAAW,MAAM;IACnC,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAI3B,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAI9B,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAI9B,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI;IAU7C,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAI1B,KAAK,IAAI,IAAI;CAGd;AAED,eAAO,MAAM,MAAM,eAAsB,CAAC"}
|
package/dist/utils/logger.js
CHANGED
package/dist/utils/logger.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAW1B,MAAM,aAAa;IACjB,IAAI,CAAC,OAAe;QAClB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IACnC,CAAC;IAED,OAAO,CAAC,OAAe;QACrB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC,CAAC;IAC3C,CAAC;IAED,OAAO,CAAC,OAAe;QACrB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,OAAe,EAAE,KAAe;QACpC,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YAC3B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,OAAO,EAAE,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAC1D,CAAC;aAAM,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YAC/B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,OAAO,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;QAClD,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAED,GAAG,CAAC,OAAe;QACjB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IACnC,CAAC;IAED,KAAK;QACH,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC;CACF;AAED,MAAM,CAAC,MAAM,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type SkillArg } from '../schemas/skill-arg.js';
|
|
2
2
|
export declare const validateSkillArg: (skillArg: string) => SkillArg;
|
|
3
3
|
export declare const ensureHubExists: () => Promise<void>;
|
|
4
|
+
export declare const checkHubBehind: () => Promise<void>;
|
|
4
5
|
//# sourceMappingURL=validation.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/utils/validation.ts"],"names":[],"mappings":"AACA,OAAO,EAAkB,KAAK,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAGxE,eAAO,MAAM,gBAAgB,GAAI,UAAU,MAAM,KAAG,QASnD,CAAC;AAEF,eAAO,MAAM,eAAe,QAAa,OAAO,CAAC,IAAI,CAMpD,CAAC"}
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/utils/validation.ts"],"names":[],"mappings":"AACA,OAAO,EAAkB,KAAK,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAGxE,eAAO,MAAM,gBAAgB,GAAI,UAAU,MAAM,KAAG,QASnD,CAAC;AAEF,eAAO,MAAM,eAAe,QAAa,OAAO,CAAC,IAAI,CAMpD,CAAC;AAEF,eAAO,MAAM,cAAc,QAAa,OAAO,CAAC,IAAI,CAWnD,CAAC"}
|
package/dist/utils/validation.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { isHubCloned } from '@iamramo/zanat-core';
|
|
1
|
+
import { getHubStatus, isHubCloned } from '@iamramo/zanat-core';
|
|
2
2
|
import { SkillArgSchema } from '../schemas/skill-arg.js';
|
|
3
3
|
import { logger } from './logger.js';
|
|
4
4
|
export const validateSkillArg = (skillArg) => {
|
|
@@ -18,4 +18,14 @@ export const ensureHubExists = async () => {
|
|
|
18
18
|
process.exit(1);
|
|
19
19
|
}
|
|
20
20
|
};
|
|
21
|
+
export const checkHubBehind = async () => {
|
|
22
|
+
try {
|
|
23
|
+
const status = await getHubStatus();
|
|
24
|
+
if (status.behind > 0) {
|
|
25
|
+
logger.warning(`Your skills hub is ${status.behind} commit${status.behind === 1 ? '' : 's'} behind. Run 'zanat sync' to update.`);
|
|
26
|
+
logger.blank();
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
catch { }
|
|
30
|
+
};
|
|
21
31
|
//# sourceMappingURL=validation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/utils/validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/utils/validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,cAAc,EAAiB,MAAM,yBAAyB,CAAC;AACxE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,QAAgB,EAAY,EAAE;IAC7D,MAAM,MAAM,GAAG,cAAc,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAClD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,IAAI,sBAAsB,CAAC;QAC/E,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAC3B,MAAM,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;QAC7C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,IAAmB,EAAE;IACvD,MAAM,SAAS,GAAG,MAAM,WAAW,EAAE,CAAC;IACtC,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;QACvD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,IAAmB,EAAE;IACtD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,YAAY,EAAE,CAAC;QAEpC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,CAAC,OAAO,CACZ,sBAAsB,MAAM,CAAC,MAAM,UAAU,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,sCAAsC,CAClH,CAAC;YACF,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,CAAC;IACH,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;AACZ,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@iamramo/zanat-cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.0",
|
|
4
4
|
"description": "CLI for zanat - a skill hub for AI agents",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/cli.js",
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
"typecheck": "tsc --noEmit"
|
|
28
28
|
},
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@iamramo/zanat-core": "^0.
|
|
30
|
+
"@iamramo/zanat-core": "^0.5.0",
|
|
31
31
|
"@inquirer/prompts": "^8.3.2",
|
|
32
32
|
"chalk": "^5.6.2",
|
|
33
33
|
"commander": "^14.0.3",
|