@iamramo/zanat-cli 0.14.3 → 0.14.5

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 CHANGED
@@ -1,4 +1,4 @@
1
- import { Display, Command } from '@iamramo/zanat-core';
1
+ import { Display, Command, Config, Zod, Log } from '@iamramo/zanat-core';
2
2
  import packageJson from '../package.json' with { type: 'json' };
3
3
  import { initCommand } from './commands/init.js';
4
4
  import { pullCommand } from './commands/pull.js';
@@ -9,10 +9,11 @@ import { listCommand } from './commands/list.js';
9
9
  import { searchCommand } from './commands/search.js';
10
10
  import { statusCommand } from './commands/status.js';
11
11
  import { showCommand } from './commands/show.js';
12
+ import { PinOptionSchema } from './schemas/pin.js';
12
13
  const program = Command.create();
13
14
  program
14
15
  .name('zanat')
15
- .description('Your personal skill library from any Git repository')
16
+ .description('Your personal skill library from any Git repository.')
16
17
  .version(packageJson.version);
17
18
  program.helpCommand(false);
18
19
  program.configureHelp({
@@ -25,6 +26,48 @@ program.configureHelp({
25
26
  return originalHelp;
26
27
  },
27
28
  });
29
+ program.hook('preAction', async (_thisCommand, actionCommand) => {
30
+ const cmd = actionCommand.name();
31
+ const args = actionCommand.args;
32
+ const opts = actionCommand.opts();
33
+ switch (cmd) {
34
+ case 'init':
35
+ return;
36
+ case 'add':
37
+ await Config.validate();
38
+ await Config.ensureOnTrackedBranch();
39
+ Zod.skill.FullSchema.shape.fullName.parse(args[0]);
40
+ PinOptionSchema.parse(opts.pin);
41
+ return;
42
+ case 'pull':
43
+ await Config.validate();
44
+ await Config.ensureOnTrackedBranch();
45
+ return;
46
+ case 'rm':
47
+ await Config.validate();
48
+ Zod.skill.FullSchema.shape.fullName.parse(args[0]);
49
+ return;
50
+ case 'show':
51
+ await Config.validate();
52
+ Zod.skill.FullSchema.shape.fullName.parse(args[0]);
53
+ return;
54
+ case 'update':
55
+ await Config.validate();
56
+ if (args[0]) {
57
+ Zod.skill.FullSchema.shape.fullName.parse(args[0]);
58
+ }
59
+ return;
60
+ case 'list':
61
+ await Config.validate();
62
+ return;
63
+ case 'search':
64
+ await Config.validate();
65
+ return;
66
+ case 'status':
67
+ await Config.validate();
68
+ return;
69
+ }
70
+ });
28
71
  program
29
72
  .command('init')
30
73
  .description('Initialize zanat configuration and clone the hub')
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
+ import type { PinOption } from '../schemas/pin.js';
1
2
  interface AddOptions {
2
- pin?: string;
3
+ pin?: PinOption;
3
4
  }
4
5
  export declare const addCommand: (fullSkillName: string, options: AddOptions) => Promise<void>;
5
6
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"AAmBA,UAAU,UAAU;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,eAAO,MAAM,UAAU,GAAU,eAAe,MAAM,EAAE,SAAS,UAAU,KAAG,OAAO,CAAC,IAAI,CA8EzF,CAAC"}
1
+ {"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD,UAAU,UAAU;IAClB,GAAG,CAAC,EAAE,SAAS,CAAC;CACjB;AAED,eAAO,MAAM,UAAU,GAAU,eAAe,MAAM,EAAE,SAAS,UAAU,KAAG,OAAO,CAAC,IAAI,CAoEzF,CAAC"}
@@ -1,75 +1,60 @@
1
- import { Log, Prompt, LockFile, Skill, Path, Config, Git, Display, Fs, Zod, } from '@iamramo/zanat-core';
2
- import { z } from 'zod';
3
- const PinOptionSchema = z.union([
4
- z.string().min(1, '--pin requires a ref value (branch, tag, or commit)'),
5
- z.undefined(),
6
- ]);
1
+ import { Log, Prompt, LockFile, Skill, Path, Config, Git, Display, Fs, } from '@iamramo/zanat-core';
7
2
  export const addCommand = async (fullSkillName, options) => {
8
- try {
9
- // Step 1: Validate and parse inputs
10
- await Config.validate();
11
- await Config.ensureCorrectBranch();
12
- Zod.skill.FullSchema.shape.fullName.parse(fullSkillName);
13
- const pinOption = PinOptionSchema.parse(options.pin);
14
- const { namespace, skillName } = Path.toSkillParts(fullSkillName);
15
- // Step 2: Handle existing skill or prepare to add new one
16
- const exists = await LockFile.find(fullSkillName);
17
- if (exists) {
18
- const shouldUpdate = await Prompt.confirm({
19
- message: `Skill ${fullSkillName} is already added. Update from hub?`,
20
- default: true,
21
- });
22
- if (!shouldUpdate) {
23
- Log.blue('Cancelled');
24
- return;
25
- }
26
- await Skill.update(namespace, skillName);
27
- Log.green(`Updated ${fullSkillName}`, { prefix: '✓' });
3
+ // Step 1: Parse inputs (validated in preAction hook)
4
+ const pinOption = options.pin;
5
+ const { namespace, skillName } = Path.toSkillParts(fullSkillName);
6
+ // Step 2: Handle existing skill or prepare to add new one
7
+ const exists = await LockFile.find(fullSkillName);
8
+ if (exists) {
9
+ const shouldUpdate = await Prompt.confirm({
10
+ message: `Skill ${fullSkillName} is already added. Update from hub?`,
11
+ default: true,
12
+ });
13
+ if (!shouldUpdate) {
14
+ Log.blue('Cancelled');
28
15
  return;
29
16
  }
30
- // Step 3: Determine requested ref and resolve commit
31
- const config = await Config.get();
32
- let requestedRef;
33
- let resolvedCommit;
34
- if (pinOption !== undefined) {
35
- requestedRef = pinOption;
36
- try {
37
- resolvedCommit = await Git.resolveCommit(requestedRef);
38
- Log.blue(`Pinning to '${requestedRef}' (${Display.getShortSha(resolvedCommit)})`);
39
- }
40
- catch (error) {
41
- Log.red(`Invalid ref: '${requestedRef}' does not exist in the hub repository.`, {
42
- prefix: '',
43
- });
44
- Log.debug(error);
45
- process.exit(1);
46
- }
47
- }
48
- else {
49
- requestedRef = config.hubBranch;
50
- resolvedCommit = await Git.resolveCommit(config.hubBranch);
51
- Log.blue(`Tracking ${config.hubBranch} branch`);
17
+ await Skill.update(namespace, skillName);
18
+ Log.green(`Updated ${fullSkillName}`, { prefix: '✓' });
19
+ return;
20
+ }
21
+ // Step 3: Determine requested ref and resolve commit
22
+ const config = await Config.get();
23
+ let requestedRef;
24
+ let resolvedCommit;
25
+ if (pinOption !== undefined) {
26
+ requestedRef = pinOption;
27
+ try {
28
+ resolvedCommit = await Git.resolveCommit(requestedRef);
29
+ Log.blue(`Pinning to '${requestedRef}' (${Display.getShortSha(resolvedCommit)})`);
52
30
  }
53
- // Step 4: Check if skill exists in hub (only check filesystem when not using --pin)
54
- const sourcePath = await Path.getSkillHubDir(namespace, skillName);
55
- const skillFile = Path.getSkillFile(sourcePath);
56
- if (pinOption === undefined) {
57
- const skillExistsInHub = await Fs.exists(skillFile);
58
- if (!skillExistsInHub) {
59
- Log.red('Skill not found in hub.', { prefix: '✗' });
60
- Log.gray(`If the skill exists on a different branch, use: zanat add ${fullSkillName} --pin=<branch>`);
61
- process.exit(1);
62
- }
31
+ catch (error) {
32
+ Log.red(`Invalid ref: '${requestedRef}' does not exist in the hub repository.`, {
33
+ prefix: '✗',
34
+ });
35
+ Log.debug(error);
36
+ process.exit(1);
63
37
  }
64
- // Step 5: Add skill to local storage
65
- const targetPath = Path.getSkillTargetDir(fullSkillName);
66
- await Skill.add(namespace, skillName, skillFile, targetPath, requestedRef, resolvedCommit);
67
- Log.green(`Added ${fullSkillName}`);
68
38
  }
69
- catch (error) {
70
- Log.red('Failed to add', { prefix: '✗' });
71
- Log.debug(error);
72
- process.exit(1);
39
+ else {
40
+ requestedRef = config.hubBranch;
41
+ resolvedCommit = await Git.resolveCommit(config.hubBranch);
42
+ Log.blue(`Tracking ${config.hubBranch} branch`);
43
+ }
44
+ // Step 4: Check if skill exists in hub (only check filesystem when not using --pin)
45
+ const sourcePath = await Path.getSkillHubDir(namespace, skillName);
46
+ const skillFile = Path.getSkillFile(sourcePath);
47
+ if (pinOption === undefined) {
48
+ const skillExistsInHub = await Fs.exists(skillFile);
49
+ if (!skillExistsInHub) {
50
+ Log.red('Skill not found in hub.', { prefix: '✗' });
51
+ Log.gray(`If the skill exists on a different branch, use: zanat add ${fullSkillName} --pin=<branch>`);
52
+ process.exit(1);
53
+ }
73
54
  }
55
+ // Step 5: Add skill to local storage
56
+ const targetPath = Path.getSkillTargetDir(fullSkillName);
57
+ await Skill.add(namespace, skillName, skillFile, targetPath, requestedRef, resolvedCommit);
58
+ Log.green(`Added ${fullSkillName}`);
74
59
  };
75
60
  //# sourceMappingURL=add.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"add.js","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,GAAG,EACH,MAAM,EACN,QAAQ,EACR,KAAK,EACL,IAAI,EACJ,MAAM,EACN,GAAG,EACH,OAAO,EACP,EAAE,EACF,GAAG,GACJ,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC;IAC9B,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,qDAAqD,CAAC;IACxE,CAAC,CAAC,SAAS,EAAE;CACd,CAAC,CAAC;AAMH,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,EAAE,aAAqB,EAAE,OAAmB,EAAiB,EAAE;IAC5F,IAAI,CAAC;QACH,oCAAoC;QACpC,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC;QACxB,MAAM,MAAM,CAAC,mBAAmB,EAAE,CAAC;QACnC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAEzD,MAAM,SAAS,GAAG,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACrD,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;QAElE,0DAA0D;QAC1D,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAClD,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC;gBACxC,OAAO,EAAE,SAAS,aAAa,qCAAqC;gBACpE,OAAO,EAAE,IAAI;aACd,CAAC,CAAC;YAEH,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBACtB,OAAO;YACT,CAAC;YAED,MAAM,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YACzC,GAAG,CAAC,KAAK,CAAC,WAAW,aAAa,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;YACvD,OAAO;QACT,CAAC;QAED,qDAAqD;QACrD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,EAAE,CAAC;QAElC,IAAI,YAAoB,CAAC;QACzB,IAAI,cAAsB,CAAC;QAE3B,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,YAAY,GAAG,SAAS,CAAC;YAEzB,IAAI,CAAC;gBACH,cAAc,GAAG,MAAM,GAAG,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;gBACvD,GAAG,CAAC,IAAI,CAAC,eAAe,YAAY,MAAM,OAAO,CAAC,WAAW,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;YACpF,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,GAAG,CAAC,GAAG,CAAC,iBAAiB,YAAY,yCAAyC,EAAE;oBAC9E,MAAM,EAAE,GAAG;iBACZ,CAAC,CAAC;gBACH,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBACjB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;aAAM,CAAC;YACN,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC;YAChC,cAAc,GAAG,MAAM,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAC3D,GAAG,CAAC,IAAI,CAAC,YAAY,MAAM,CAAC,SAAS,SAAS,CAAC,CAAC;QAClD,CAAC;QAED,oFAAoF;QACpF,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACnE,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;QAEhD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,MAAM,gBAAgB,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YACpD,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACtB,GAAG,CAAC,GAAG,CAAC,yBAAyB,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;gBACpD,GAAG,CAAC,IAAI,CACN,6DAA6D,aAAa,iBAAiB,CAC5F,CAAC;gBACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;QAED,qCAAqC;QACrC,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;QAEzD,MAAM,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,cAAc,CAAC,CAAC;QAC3F,GAAG,CAAC,KAAK,CAAC,SAAS,aAAa,EAAE,CAAC,CAAC;IACtC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,GAAG,CAAC,GAAG,CAAC,eAAe,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QAC1C,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACjB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC"}
1
+ {"version":3,"file":"add.js","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,WAAW,QAAa,OAAO,CAAC,IAAI,CA0GhD,CAAC"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,WAAW,QAAa,OAAO,CAAC,IAAI,CAoGhD,CAAC"}
@@ -3,90 +3,83 @@ import { Path, Config, Fs, Git, LockFile, Log, Format, Prompt, Zod } from '@iamr
3
3
  export const initCommand = async () => {
4
4
  Log.blue('Initializing Zanat...');
5
5
  Log.blank();
6
- try {
7
- // Step 1: Check for existing configuration and handle reinitialization
8
- const hasConfig = await Config.exists();
9
- if (hasConfig) {
10
- Log.blue('Zanat is already initialized.');
11
- Log.blank();
12
- const config = await Config.get();
13
- Log.blue(`Repository: ${config.hubUrl}`);
14
- Log.blue(`Branch: ${config.hubBranch}`);
15
- Log.blank();
16
- const shouldReinitialize = await Prompt.confirm({
17
- message: 'Reinitialize? Your hub directory will be replaced but added skills stay safe.',
18
- default: false,
19
- });
20
- if (!shouldReinitialize) {
21
- Log.blank();
22
- Log.blue('Keeping existing setup.');
23
- return;
24
- }
25
- Log.blank();
26
- Log.blue('Removing existing hub...');
27
- await Fs.remove(config.hubDir);
28
- Log.green('Removed existing hub', { prefix: '✓' });
6
+ // Step 1: Check for existing configuration and handle reinitialization
7
+ const hasConfig = await Config.exists();
8
+ if (hasConfig) {
9
+ Log.blue('Zanat is already initialized.');
10
+ Log.blank();
11
+ const config = await Config.get();
12
+ Log.blue(`Repository: ${config.hubUrl}`);
13
+ Log.blue(`Branch: ${config.hubBranch}`);
14
+ Log.blank();
15
+ const shouldReinitialize = await Prompt.confirm({
16
+ message: 'Reinitialize? Your hub directory will be replaced but added skills stay safe.',
17
+ default: false,
18
+ });
19
+ if (!shouldReinitialize) {
29
20
  Log.blank();
21
+ Log.blue('Keeping existing setup.');
22
+ return;
30
23
  }
31
- // Step 2: Collect configuration from user
32
- const hubUrl = await Prompt.input({
33
- message: 'Hub repository URL:',
34
- required: true,
35
- validate: Prompt.validate(Zod.config.ConfigSchema.shape.hubUrl),
36
- });
37
- const hubBranch = await Prompt.input({
38
- message: 'Hub branch:',
39
- default: 'main',
40
- validate: async (value) => {
41
- // Validate format
42
- const formatResult = Prompt.validate(Zod.config.ConfigSchema.shape.hubBranch)(value);
43
- if (formatResult !== true) {
44
- return formatResult;
45
- }
46
- // Validate branch existence on remote
47
- try {
48
- await Git.lsRemote(hubUrl, value);
49
- }
50
- catch (error) {
51
- Log.debug(error);
52
- return `Branch '${value}' does not exist in the repository`;
53
- }
54
- return true;
55
- },
56
- });
57
- const hubDir = await Prompt.input({
58
- message: 'Hub directory path:',
59
- default: path.join(Path.ZANAT_DIR, 'hub'),
60
- validate: Prompt.validate(Zod.config.ConfigSchema.shape.hubDir),
61
- });
62
- // Step 3: Create directories and config files
63
- Log.blank();
64
- Log.blue('Setting up directories...');
65
- await Fs.ensureDir(Path.ZANAT_DIR);
66
- Log.green(`Created ${Path.ZANAT_DIR}`, { prefix: '✓' });
67
- await Fs.ensureDir(Path.AGENTS_DIR);
68
- Log.green(`Created ${Path.AGENTS_DIR}`, { prefix: '✓' });
69
- await LockFile.ensure();
70
- Log.green(`Created ${Path.SKILL_LOCK_FILE}`, { prefix: '✓' });
71
- await Fs.writeFile(Path.CONFIG_FILE, Format.json({
72
- hubUrl,
73
- hubBranch,
74
- hubDir,
75
- lastPull: new Date().toISOString(),
76
- }));
77
- Log.green(`Created ${Path.CONFIG_FILE}`, { prefix: '✓' });
78
24
  Log.blank();
79
- // Step 4: Clone repository
80
- Log.blue('Cloning hub repository...');
81
- await Git.clone(hubUrl, hubBranch, hubDir);
82
- Log.green(`Cloned hub from branch ${hubBranch} to "${hubDir}"`, { prefix: '✓' });
25
+ Log.blue('Removing existing hub...');
26
+ await Fs.remove(config.hubDir);
27
+ Log.green('Removed existing hub', { prefix: '✓' });
83
28
  Log.blank();
84
- Log.white(Log.bold('Zanat initialized successfully!'), { prefix: '✨' });
85
- }
86
- catch (error) {
87
- Log.red('Failed to initialize', { prefix: '✗' });
88
- Log.debug(error);
89
- process.exit(1);
90
29
  }
30
+ // Step 2: Collect configuration from user
31
+ const hubUrl = await Prompt.input({
32
+ message: 'Hub repository URL:',
33
+ required: true,
34
+ validate: Prompt.validate(Zod.config.ConfigSchema.shape.hubUrl),
35
+ });
36
+ const hubBranch = await Prompt.input({
37
+ message: 'Hub branch:',
38
+ default: 'main',
39
+ validate: async (value) => {
40
+ // Validate format
41
+ const formatResult = Prompt.validate(Zod.config.ConfigSchema.shape.hubBranch)(value);
42
+ if (formatResult !== true) {
43
+ return formatResult;
44
+ }
45
+ // Validate branch existence on remote
46
+ try {
47
+ await Git.lsRemote(hubUrl, value);
48
+ }
49
+ catch (error) {
50
+ Log.debug(error);
51
+ return `Branch '${value}' does not exist in the repository`;
52
+ }
53
+ return true;
54
+ },
55
+ });
56
+ const hubDir = await Prompt.input({
57
+ message: 'Hub directory path:',
58
+ default: path.join(Path.ZANAT_DIR, 'hub'),
59
+ validate: Prompt.validate(Zod.config.ConfigSchema.shape.hubDir),
60
+ });
61
+ // Step 3: Create directories and config files
62
+ Log.blank();
63
+ Log.blue('Setting up directories...');
64
+ await Fs.ensureDir(Path.ZANAT_DIR);
65
+ Log.green(`Created ${Path.ZANAT_DIR}`, { prefix: '✓' });
66
+ await Fs.ensureDir(Path.AGENTS_DIR);
67
+ Log.green(`Created ${Path.AGENTS_DIR}`, { prefix: '✓' });
68
+ await LockFile.ensure();
69
+ Log.green(`Created ${Path.SKILL_LOCK_FILE}`, { prefix: '✓' });
70
+ await Fs.writeFile(Path.CONFIG_FILE, Format.json({
71
+ hubUrl,
72
+ hubBranch,
73
+ hubDir,
74
+ lastPull: new Date().toISOString(),
75
+ }));
76
+ Log.green(`Created ${Path.CONFIG_FILE}`, { prefix: '✓' });
77
+ Log.blank();
78
+ // Step 4: Clone repository
79
+ Log.blue('Cloning hub repository...');
80
+ await Git.clone(hubUrl, hubBranch, hubDir);
81
+ Log.green(`Cloned hub from branch ${hubBranch} to "${hubDir}"`, { prefix: '✓' });
82
+ Log.blank();
83
+ Log.white(Log.bold('Zanat initialized successfully!'), { prefix: '✨' });
91
84
  };
92
85
  //# sourceMappingURL=init.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,WAAW,QAAa,OAAO,CAAC,IAAI,CA+BhD,CAAC"}
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,WAAW,QAAa,OAAO,CAAC,IAAI,CAyBhD,CAAC"}
@@ -1,31 +1,24 @@
1
- import { LockFile, Display, Log, Config } from '@iamramo/zanat-core';
1
+ import { LockFile, Display, Log } from '@iamramo/zanat-core';
2
2
  export const listCommand = async () => {
3
- try {
4
- // Step 1: Load and check skills
5
- await Config.validate();
6
- const skills = await LockFile.findAll();
7
- const skillNames = Object.keys(skills);
8
- if (skillNames.length === 0) {
9
- Log.gray('No skills added.');
10
- Log.gray('Run `zanat search` to find skills or `zanat add <skill>` to add one.');
11
- return;
12
- }
13
- // Step 2: Display skills with versions
14
- Log.blue('Added skills:');
15
- Log.blank();
16
- for (const skillName of skillNames) {
17
- const displayVersion = await Display.getDisplayVersion(skillName);
18
- Log.status(`${skillName}`, displayVersion, 'blue', {
19
- prefix: '•',
20
- });
21
- }
22
- Log.blank();
23
- Log.gray(`Total: ${skillNames.length} skill(s)`);
3
+ // Step 1: Load and check skills
4
+ const skills = await LockFile.findAll();
5
+ const skillNames = Object.keys(skills);
6
+ if (skillNames.length === 0) {
7
+ Log.gray('No skills added.');
8
+ Log.gray('Run `zanat search` to find skills or `zanat add <skill>` to add one.');
9
+ return;
24
10
  }
25
- catch (error) {
26
- Log.red('Failed to list skills', { prefix: '✗' });
27
- Log.debug(error);
28
- process.exit(1);
11
+ // Step 2: Display skills with versions
12
+ Log.blue('Added skills:');
13
+ Log.blank();
14
+ for (const skillName of skillNames) {
15
+ const displayVersion = await Display.getDisplayVersion(skillName);
16
+ Log.status(`${skillName}`, displayVersion, 'blue', {
17
+ prefix: '•',
18
+ spacing: 2,
19
+ });
29
20
  }
21
+ Log.blank();
22
+ Log.gray(`Total: ${skillNames.length} skill(s)`);
30
23
  };
31
24
  //# sourceMappingURL=list.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAErE,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,IAAmB,EAAE;IACnD,IAAI,CAAC;QACH,gCAAgC;QAChC,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC;QACxB,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,OAAO,EAAE,CAAC;QACxC,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAEvC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YAC7B,GAAG,CAAC,IAAI,CAAC,sEAAsE,CAAC,CAAC;YACjF,OAAO;QACT,CAAC;QAED,uCAAuC;QACvC,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC1B,GAAG,CAAC,KAAK,EAAE,CAAC;QAEZ,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;YAClE,GAAG,CAAC,MAAM,CAAC,GAAG,SAAS,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE;gBACjD,MAAM,EAAE,GAAG;aACZ,CAAC,CAAC;QACL,CAAC;QAED,GAAG,CAAC,KAAK,EAAE,CAAC;QACZ,GAAG,CAAC,IAAI,CAAC,UAAU,UAAU,CAAC,MAAM,WAAW,CAAC,CAAC;IACnD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,GAAG,CAAC,GAAG,CAAC,uBAAuB,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QAClD,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACjB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC"}
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAE7D,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,IAAmB,EAAE;IACnD,gCAAgC;IAChC,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,OAAO,EAAE,CAAC;IACxC,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAEvC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAC7B,GAAG,CAAC,IAAI,CAAC,sEAAsE,CAAC,CAAC;QACjF,OAAO;IACT,CAAC;IAED,uCAAuC;IACvC,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC1B,GAAG,CAAC,KAAK,EAAE,CAAC;IAEZ,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;QAClE,GAAG,CAAC,MAAM,CAAC,GAAG,SAAS,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE;YACjD,MAAM,EAAE,GAAG;YACX,OAAO,EAAE,CAAC;SACX,CAAC,CAAC;IACL,CAAC;IAED,GAAG,CAAC,KAAK,EAAE,CAAC;IACZ,GAAG,CAAC,IAAI,CAAC,UAAU,UAAU,CAAC,MAAM,WAAW,CAAC,CAAC;AACnD,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"pull.d.ts","sourceRoot":"","sources":["../../src/commands/pull.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,WAAW,QAAa,OAAO,CAAC,IAAI,CA6DhD,CAAC"}
1
+ {"version":3,"file":"pull.d.ts","sourceRoot":"","sources":["../../src/commands/pull.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,WAAW,QAAa,OAAO,CAAC,IAAI,CAqDhD,CAAC"}
@@ -1,56 +1,47 @@
1
1
  import { Git, Config, LockFile, Log } from '@iamramo/zanat-core';
2
2
  export const pullCommand = async () => {
3
- try {
4
- await Config.validate();
5
- await Config.ensureCorrectBranch();
6
- const config = await Config.get();
7
- // Step 1: Pull hubBranch
8
- Log.blue('Pulling latest changes...');
9
- await Git.pull();
10
- Log.green(`Pulled ${config.hubBranch}`, { prefix: '✓' });
11
- // Step 2: Get unique refs and fetch each
12
- const allRefs = await LockFile.findUniqueRefs();
13
- const additionalRefs = allRefs.filter((r) => r !== config.hubBranch);
14
- const fetchedRefs = [];
15
- const failedRefs = [];
16
- for (const ref of additionalRefs) {
17
- try {
18
- await Git.fetch([ref]);
19
- fetchedRefs.push(ref);
20
- }
21
- catch (error) {
22
- Log.debug(error);
23
- // Find skills using this ref for user guidance
24
- const affectedSkills = await LockFile.findSkillsByRef(ref);
25
- failedRefs.push({ ref, skills: affectedSkills });
26
- }
27
- }
28
- // Step 3: Report results
29
- if (fetchedRefs.length > 0) {
30
- Log.green(`Fetched ${fetchedRefs.length} additional ref(s):`, { prefix: '✓' });
31
- fetchedRefs.forEach((ref) => Log.green(ref, { spacing: 2 }));
3
+ const config = await Config.get();
4
+ // Step 1: Pull hubBranch
5
+ Log.blue('Pulling latest changes...');
6
+ await Git.pull();
7
+ Log.green(`Pulled ${config.hubBranch}`, { prefix: '✓' });
8
+ // Step 2: Get unique refs and fetch each
9
+ const allRefs = await LockFile.findUniqueRefs();
10
+ const additionalRefs = allRefs.filter((r) => r !== config.hubBranch);
11
+ const fetchedRefs = [];
12
+ const failedRefs = [];
13
+ for (const ref of additionalRefs) {
14
+ try {
15
+ await Git.fetch([ref]);
16
+ fetchedRefs.push(ref);
32
17
  }
33
- if (failedRefs.length > 0) {
34
- Log.blank();
35
- Log.yellow(`Warning: Could not fetch ${failedRefs.length} ref(s):`, { prefix: '⚠' });
36
- failedRefs.forEach(({ ref, skills }) => {
37
- Log.yellow(ref, { spacing: 2 });
38
- if (skills.length > 0) {
39
- Log.gray(`Affects: ${skills.join(', ')}`, { spacing: 4 });
40
- }
41
- });
42
- Log.blank();
43
- Log.gray('These refs may have been deleted from the remote.');
44
- Log.gray(`To fix affected skills, run: zanat add <skill-name> (re-pins to ${config.hubBranch})`);
18
+ catch (error) {
19
+ Log.debug(error);
20
+ // Find skills using this ref for user guidance
21
+ const affectedSkills = await LockFile.findSkillsByRef(ref);
22
+ failedRefs.push({ ref, skills: affectedSkills });
45
23
  }
46
- // Step 4: Always update timestamp
47
- config.lastPull = new Date().toISOString();
48
- await Config.update(config);
49
24
  }
50
- catch (error) {
51
- Log.red('Failed to pull', { prefix: '✗' });
52
- Log.debug(error);
53
- process.exit(1);
25
+ // Step 3: Report results
26
+ if (fetchedRefs.length > 0) {
27
+ Log.green(`Fetched ${fetchedRefs.length} additional ref(s):`, { prefix: '✓' });
28
+ fetchedRefs.forEach((ref) => Log.green(ref, { spacing: 2 }));
29
+ }
30
+ if (failedRefs.length > 0) {
31
+ Log.blank();
32
+ Log.yellow(`Warning: Could not fetch ${failedRefs.length} ref(s):`, { prefix: '⚠' });
33
+ failedRefs.forEach(({ ref, skills }) => {
34
+ Log.yellow(ref, { spacing: 2 });
35
+ if (skills.length > 0) {
36
+ Log.gray(`Affects: ${skills.join(', ')}`, { spacing: 4 });
37
+ }
38
+ });
39
+ Log.blank();
40
+ Log.gray('These refs may have been deleted from the remote.');
41
+ Log.gray(`To fix affected skills, run: zanat add <skill-name> (re-pins to ${config.hubBranch})`);
54
42
  }
43
+ // Step 4: Always update timestamp
44
+ config.lastPull = new Date().toISOString();
45
+ await Config.update(config);
55
46
  };
56
47
  //# sourceMappingURL=pull.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pull.js","sourceRoot":"","sources":["../../src/commands/pull.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pull.js","sourceRoot":"","sources":["../../src/commands/pull.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"remove.d.ts","sourceRoot":"","sources":["../../src/commands/remove.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,aAAa,GAAU,eAAe,MAAM,KAAG,OAAO,CAAC,IAAI,CAwBvE,CAAC"}
1
+ {"version":3,"file":"remove.d.ts","sourceRoot":"","sources":["../../src/commands/remove.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,aAAa,GAAU,eAAe,MAAM,KAAG,OAAO,CAAC,IAAI,CAgBvE,CAAC"}
@@ -1,25 +1,16 @@
1
- import { Skill, Fs, Path, Log, Config, Zod } from '@iamramo/zanat-core';
1
+ import { Skill, Fs, Path, Log } from '@iamramo/zanat-core';
2
2
  export const removeCommand = async (fullSkillName) => {
3
- try {
4
- // Step 1: Validate and parse inputs
5
- await Config.validate();
6
- Zod.skill.FullSchema.shape.fullName.parse(fullSkillName);
7
- Path.toSkillParts(fullSkillName);
8
- // Step 2: Check skill exists
9
- const skillPath = Path.getSkillTargetDir(fullSkillName);
10
- const exists = await Fs.exists(skillPath);
11
- if (!exists) {
12
- Log.red('Skill not found.', { prefix: '✗' });
13
- process.exit(1);
14
- }
15
- // Step 2: Remove skill from storage
16
- await Skill.remove(skillPath);
17
- Log.green(`Removed ${fullSkillName}`, { prefix: '✓' });
18
- }
19
- catch (error) {
20
- Log.red('Failed to remove', { prefix: '✗' });
21
- Log.debug(error);
3
+ // Step 1: Parse skill name (validated in preAction hook)
4
+ Path.toSkillParts(fullSkillName);
5
+ // Step 2: Check skill exists
6
+ const skillPath = Path.getSkillTargetDir(fullSkillName);
7
+ const exists = await Fs.exists(skillPath);
8
+ if (!exists) {
9
+ Log.red('Skill not found.', { prefix: '✗' });
22
10
  process.exit(1);
23
11
  }
12
+ // Step 2: Remove skill from storage
13
+ await Skill.remove(skillPath);
14
+ Log.green(`Removed ${fullSkillName}`, { prefix: '✓' });
24
15
  };
25
16
  //# sourceMappingURL=remove.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"remove.js","sourceRoot":"","sources":["../../src/commands/remove.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAExE,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,EAAE,aAAqB,EAAiB,EAAE;IAC1E,IAAI,CAAC;QACH,oCAAoC;QACpC,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC;QACxB,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACzD,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;QAEjC,6BAA6B;QAC7B,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;QACxD,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAE1C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,GAAG,CAAC,GAAG,CAAC,kBAAkB,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;YAC7C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,oCAAoC;QACpC,MAAM,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC9B,GAAG,CAAC,KAAK,CAAC,WAAW,aAAa,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;IACzD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,GAAG,CAAC,GAAG,CAAC,kBAAkB,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QAC7C,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACjB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC"}
1
+ {"version":3,"file":"remove.js","sourceRoot":"","sources":["../../src/commands/remove.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAE3D,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,EAAE,aAAqB,EAAiB,EAAE;IAC1E,yDAAyD;IACzD,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;IAE/B,6BAA6B;IAC7B,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;IACxD,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAE1C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,GAAG,CAAC,GAAG,CAAC,kBAAkB,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QAC7C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,oCAAoC;IACpC,MAAM,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAC9B,GAAG,CAAC,KAAK,CAAC,WAAW,aAAa,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;AAC3D,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/commands/search.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,aAAa,GAAU,QAAQ,MAAM,KAAG,OAAO,CAAC,IAAI,CAoChE,CAAC"}
1
+ {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/commands/search.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,aAAa,GAAU,QAAQ,MAAM,KAAG,OAAO,CAAC,IAAI,CA4BhE,CAAC"}
@@ -1,36 +1,28 @@
1
- import { Skill, Log, Display, Config } from '@iamramo/zanat-core';
1
+ import { Skill, Log, Display } from '@iamramo/zanat-core';
2
2
  export const searchCommand = async (query) => {
3
- try {
4
- // Step 1: Validate and normalize input
5
- const normalizedQuery = query?.trim();
6
- // Step 2: Search for skills
7
- await Config.validate();
8
- normalizedQuery
9
- ? Log.blue(`Searching for: "${normalizedQuery}"...`)
10
- : Log.blue('Available skills:');
11
- Log.blank();
12
- const results = normalizedQuery ? await Skill.search(normalizedQuery) : await Skill.findAll();
13
- // Step 2: Display results
14
- if (results.length === 0) {
15
- Log.gray('No skills found.');
16
- return;
17
- }
18
- else {
19
- results.forEach((skill) => {
20
- Log.white(skill.fullName, { prefix: '•' });
21
- const truncatedDesc = Display.truncate(skill.description);
22
- Log.gray(truncatedDesc, { spacing: 2 });
23
- Log.blank();
24
- });
25
- }
26
- Log.gray(`Found ${results.length} skill(s)`);
27
- Log.blank();
28
- Log.gray('Add a skill with: zanat add <skill>');
3
+ // Step 1: Validate and normalize input
4
+ const normalizedQuery = query?.trim();
5
+ // Step 2: Search for skills
6
+ normalizedQuery
7
+ ? Log.blue(`Searching for: "${normalizedQuery}"...`)
8
+ : Log.blue('Available skills:');
9
+ Log.blank();
10
+ const results = normalizedQuery ? await Skill.search(normalizedQuery) : await Skill.findAll();
11
+ // Step 2: Display results
12
+ if (results.length === 0) {
13
+ Log.gray('No skills found.');
14
+ return;
29
15
  }
30
- catch (error) {
31
- Log.red('Failed to search', { prefix: '✗' });
32
- Log.debug(error);
33
- process.exit(1);
16
+ else {
17
+ results.forEach((skill) => {
18
+ Log.white(skill.fullName, { prefix: '•', spacing: 2 });
19
+ const truncatedDesc = Display.truncate(skill.description);
20
+ Log.gray(truncatedDesc, { spacing: 4 });
21
+ Log.blank();
22
+ });
34
23
  }
24
+ Log.gray(`Found ${results.length} skill(s)`);
25
+ Log.blank();
26
+ Log.gray('Add a skill with: zanat add <skill>');
35
27
  };
36
28
  //# sourceMappingURL=search.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/commands/search.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAElE,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,EAAE,KAAc,EAAiB,EAAE;IACnE,IAAI,CAAC;QACH,uCAAuC;QACvC,MAAM,eAAe,GAAG,KAAK,EAAE,IAAI,EAAE,CAAC;QAEtC,4BAA4B;QAC5B,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC;QAExB,eAAe;YACb,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,mBAAmB,eAAe,MAAM,CAAC;YACpD,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAClC,GAAG,CAAC,KAAK,EAAE,CAAC;QAEZ,MAAM,OAAO,GAAG,eAAe,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC;QAE9F,0BAA0B;QAC1B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YAC7B,OAAO;QACT,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;gBACxB,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;gBAC3C,MAAM,aAAa,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;gBAC1D,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;gBACxC,GAAG,CAAC,KAAK,EAAE,CAAC;YACd,CAAC,CAAC,CAAC;QACL,CAAC;QAED,GAAG,CAAC,IAAI,CAAC,SAAS,OAAO,CAAC,MAAM,WAAW,CAAC,CAAC;QAC7C,GAAG,CAAC,KAAK,EAAE,CAAC;QACZ,GAAG,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;IAClD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,GAAG,CAAC,GAAG,CAAC,kBAAkB,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QAC7C,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACjB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC"}
1
+ {"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/commands/search.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE1D,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,EAAE,KAAc,EAAiB,EAAE;IACnE,uCAAuC;IACvC,MAAM,eAAe,GAAG,KAAK,EAAE,IAAI,EAAE,CAAC;IAEtC,4BAA4B;IAC5B,eAAe;QACb,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,mBAAmB,eAAe,MAAM,CAAC;QACpD,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAClC,GAAG,CAAC,KAAK,EAAE,CAAC;IAEZ,MAAM,OAAO,GAAG,eAAe,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC;IAE9F,0BAA0B;IAC1B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAC7B,OAAO;IACT,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YACxB,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;YACvD,MAAM,aAAa,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YAC1D,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;YACxC,GAAG,CAAC,KAAK,EAAE,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC;IAED,GAAG,CAAC,IAAI,CAAC,SAAS,OAAO,CAAC,MAAM,WAAW,CAAC,CAAC;IAC7C,GAAG,CAAC,KAAK,EAAE,CAAC;IACZ,GAAG,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;AAClD,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"show.d.ts","sourceRoot":"","sources":["../../src/commands/show.ts"],"names":[],"mappings":"AAEA,UAAU,WAAW;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,eAAO,MAAM,WAAW,GAAU,eAAe,MAAM,EAAE,SAAS,WAAW,KAAG,OAAO,CAAC,IAAI,CAsB3F,CAAC"}
1
+ {"version":3,"file":"show.d.ts","sourceRoot":"","sources":["../../src/commands/show.ts"],"names":[],"mappings":"AAEA,UAAU,WAAW;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,eAAO,MAAM,WAAW,GAAU,eAAe,MAAM,EAAE,SAAS,WAAW,KAAG,OAAO,CAAC,IAAI,CAY3F,CAAC"}
@@ -1,23 +1,13 @@
1
- import { Skill, Log, Config, Zod } from '@iamramo/zanat-core';
1
+ import { Skill, Log, Config } from '@iamramo/zanat-core';
2
2
  export const showCommand = async (fullSkillName, options) => {
3
- try {
4
- // Step 1: Validate inputs
5
- await Config.validate();
6
- Zod.skill.FullSchema.shape.fullName.parse(fullSkillName);
7
- // Step 2: Get skill from filesystem (current branch)
8
- const skill = await Skill.find(fullSkillName);
9
- if (!skill) {
10
- Log.red(`Skill not found in hub: ${fullSkillName}`, { prefix: '✗' });
11
- Log.gray('Use "zanat search" to find available skills.');
12
- process.exit(1);
13
- }
14
- // Step 3: Print the content
15
- console.log(skill.content);
16
- }
17
- catch (error) {
18
- Log.red('Failed to show skill', { prefix: '✗' });
19
- Log.debug(error);
3
+ // Step 1: Get skill from filesystem (current branch)
4
+ const skill = await Skill.find(fullSkillName);
5
+ if (!skill) {
6
+ Log.red(`Skill not found in hub: ${fullSkillName}`, { prefix: '✗' });
7
+ Log.gray('Use "zanat search" to find available skills.');
20
8
  process.exit(1);
21
9
  }
10
+ // Step 3: Print the content
11
+ console.log(skill.content);
22
12
  };
23
13
  //# sourceMappingURL=show.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"show.js","sourceRoot":"","sources":["../../src/commands/show.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAM9D,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,EAAE,aAAqB,EAAE,OAAoB,EAAiB,EAAE;IAC9F,IAAI,CAAC;QACH,0BAA0B;QAC1B,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC;QACxB,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAEzD,qDAAqD;QACrD,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAE9C,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,GAAG,CAAC,GAAG,CAAC,2BAA2B,aAAa,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;YACrE,GAAG,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;YACzD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,4BAA4B;QAC5B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,GAAG,CAAC,GAAG,CAAC,sBAAsB,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QACjD,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACjB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC"}
1
+ {"version":3,"file":"show.js","sourceRoot":"","sources":["../../src/commands/show.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAMzD,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,EAAE,aAAqB,EAAE,OAAoB,EAAiB,EAAE;IAC9F,qDAAqD;IACrD,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAE5C,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,GAAG,CAAC,GAAG,CAAC,2BAA2B,aAAa,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QACrE,GAAG,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;QACzD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,4BAA4B;IAC5B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AAC/B,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,aAAa,QAAa,OAAO,CAAC,IAAI,CA4DlD,CAAC"}
1
+ {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,aAAa,QAAa,OAAO,CAAC,IAAI,CAqDlD,CAAC"}
@@ -1,59 +1,51 @@
1
1
  import { Git, LockFile, Display, Config, Log } from '@iamramo/zanat-core';
2
2
  export const statusCommand = async () => {
3
- try {
4
- // Step 1: Load configuration and skills
5
- await Config.validate();
6
- const skills = await LockFile.findAll();
7
- const skillNames = Object.keys(skills);
8
- const config = await Config.get();
9
- // Step 2: Display hub status
10
- Log.blue(Log.bold('Hub Status:'));
11
- Log.blank();
12
- Log.status('Initialized:', 'yes', 'green', { prefix: '•', spacing: 2 });
13
- Log.status('Repository:', config.hubUrl, 'green', { prefix: '•', spacing: 2 });
14
- Log.status('Branch:', config.hubBranch, 'green', { prefix: '•', spacing: 2 });
15
- Log.status('Last pull:', Display.timeAgo(config?.lastPull), 'green', {
16
- prefix: '•',
3
+ // Step 1: Load configuration and skills
4
+ const skills = await LockFile.findAll();
5
+ const skillNames = Object.keys(skills);
6
+ const config = await Config.get();
7
+ // Step 2: Display hub status
8
+ Log.blue(Log.bold('Hub Status:'));
9
+ Log.blank();
10
+ Log.status('Initialized:', 'yes', 'green', { prefix: '•', spacing: 2 });
11
+ Log.status('Repository:', config.hubUrl, 'green', { prefix: '•', spacing: 2 });
12
+ Log.status('Branch:', config.hubBranch, 'green', { prefix: '•', spacing: 2 });
13
+ Log.status('Last pull:', Display.timeAgo(config?.lastPull), 'green', {
14
+ prefix: '•',
15
+ spacing: 2,
16
+ });
17
+ // Check if remote branch exists before trying to get behind count
18
+ const remoteExists = await Git.remoteBranchExists(config.hubBranch);
19
+ if (!remoteExists) {
20
+ Log.yellow(`Remote branch 'origin/${config.hubBranch}' not found.`, {
21
+ prefix: '⚠',
17
22
  spacing: 2,
18
23
  });
19
- // Check if remote branch exists before trying to get behind count
20
- const remoteExists = await Git.remoteBranchExists(config.hubBranch);
21
- if (!remoteExists) {
22
- Log.yellow(`Remote branch 'origin/${config.hubBranch}' not found.`, {
23
- prefix: '',
24
+ return;
25
+ }
26
+ const behind = await Git.behind(config.hubBranch);
27
+ if (behind === 0) {
28
+ Log.status('Behind:', Log.bold('up-to-date'), 'green', { prefix: '', spacing: 2 });
29
+ }
30
+ else {
31
+ Log.status('Behind:', `${behind} commit(s)`, 'yellow', { prefix: '•', spacing: 2 });
32
+ }
33
+ // Step 3: Display skills status
34
+ Log.blank();
35
+ Log.blue(Log.bold('Skills:'));
36
+ Log.blank();
37
+ if (skillNames.length > 0) {
38
+ for (const skillName of skillNames) {
39
+ const displayVersion = await Display.getDisplayVersion(skillName);
40
+ Log.status(`${skillName}`, displayVersion, 'blue', {
41
+ prefix: '•',
24
42
  spacing: 2,
25
43
  });
26
- return;
27
- }
28
- const behind = await Git.behind(config.hubBranch);
29
- if (behind === 0) {
30
- Log.status('Behind:', Log.bold('up-to-date'), 'green', { prefix: '•', spacing: 2 });
31
- }
32
- else {
33
- Log.status('Behind:', `${behind} commit(s)`, 'yellow', { prefix: '•', spacing: 2 });
34
- }
35
- // Step 3: Display skills status
36
- Log.blank();
37
- Log.blue(Log.bold('Skills:'));
38
- Log.blank();
39
- if (skillNames.length > 0) {
40
- for (const skillName of skillNames) {
41
- const displayVersion = await Display.getDisplayVersion(skillName);
42
- Log.status(`${skillName}`, displayVersion, 'blue', {
43
- prefix: '•',
44
- spacing: 2,
45
- });
46
- }
47
- }
48
- else {
49
- Log.gray('No skills added.', { spacing: 2 });
50
44
  }
51
- Log.blank();
52
45
  }
53
- catch (error) {
54
- Log.red('Failed to get status', { prefix: '✗' });
55
- Log.debug(error);
56
- process.exit(1);
46
+ else {
47
+ Log.gray('No skills added.', { spacing: 2 });
57
48
  }
49
+ Log.blank();
58
50
  };
59
51
  //# sourceMappingURL=status.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAE1E,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,IAAmB,EAAE;IACrD,IAAI,CAAC;QACH,wCAAwC;QACxC,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC;QACxB,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,OAAO,EAAE,CAAC;QACxC,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACvC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,EAAE,CAAC;QAElC,6BAA6B;QAC7B,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;QAClC,GAAG,CAAC,KAAK,EAAE,CAAC;QACZ,GAAG,CAAC,MAAM,CAAC,cAAc,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;QACxE,GAAG,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;QAC/E,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;QAC9E,GAAG,CAAC,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,EAAE;YACnE,MAAM,EAAE,GAAG;YACX,OAAO,EAAE,CAAC;SACX,CAAC,CAAC;QAEH,kEAAkE;QAClE,MAAM,YAAY,GAAG,MAAM,GAAG,CAAC,kBAAkB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACpE,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,GAAG,CAAC,MAAM,CAAC,yBAAyB,MAAM,CAAC,SAAS,cAAc,EAAE;gBAClE,MAAM,EAAE,GAAG;gBACX,OAAO,EAAE,CAAC;aACX,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAClD,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;YACjB,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;QACtF,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,GAAG,MAAM,YAAY,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;QACtF,CAAC;QAED,gCAAgC;QAChC,GAAG,CAAC,KAAK,EAAE,CAAC;QACZ,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;QAC9B,GAAG,CAAC,KAAK,EAAE,CAAC;QAEZ,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;gBACnC,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;gBAElE,GAAG,CAAC,MAAM,CAAC,GAAG,SAAS,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE;oBACjD,MAAM,EAAE,GAAG;oBACX,OAAO,EAAE,CAAC;iBACX,CAAC,CAAC;YACL,CAAC;QACH,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;QAC/C,CAAC;QAED,GAAG,CAAC,KAAK,EAAE,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,GAAG,CAAC,GAAG,CAAC,sBAAsB,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QACjD,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACjB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC"}
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,aAAa,GAAU,eAAe,MAAM,GAAG,SAAS,KAAG,OAAO,CAAC,IAAI,CAsHnF,CAAC"}
1
+ {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,aAAa,GAAU,eAAe,MAAM,GAAG,SAAS,KAAG,OAAO,CAAC,IAAI,CA4GnF,CAAC"}
@@ -1,104 +1,94 @@
1
- import { Log, Prompt, LockFile, Path, Skill, Config, Zod } from '@iamramo/zanat-core';
1
+ import { Log, Prompt, LockFile, Path, Skill, Config } from '@iamramo/zanat-core';
2
2
  export const updateCommand = async (fullSkillName) => {
3
- try {
4
- // Step 1: Validate configuration
5
- await Config.validate();
6
- // Update one skill
7
- if (fullSkillName) {
8
- // Step 2a: Parse skill name and check ref status
9
- Zod.skill.FullSchema.shape.fullName.parse(fullSkillName);
10
- const { namespace, skillName } = Path.toSkillParts(fullSkillName);
11
- const skill = await LockFile.find(fullSkillName);
12
- if (!skill) {
13
- Log.red(`Error: ${fullSkillName} was not found`, { prefix: '✗' });
14
- process.exit(1);
15
- }
16
- const refStatus = await LockFile.getRefStatus(skill);
17
- if (refStatus === 'orphaned') {
18
- Log.yellow(`Warning: ${fullSkillName} is orphaned - Branch '${skill.requestedRef}' no longer exists, but commit is preserved`, {
19
- prefix: '⚠',
20
- });
21
- const shouldContinue = await Prompt.confirm({
22
- message: 'Update anyway? (will preserve current commit)',
23
- default: true,
24
- });
25
- if (!shouldContinue) {
26
- Log.blue('Update cancelled');
27
- return;
28
- }
29
- }
30
- else if (refStatus === 'broken') {
31
- Log.red(`Error: ${fullSkillName} is broken - Neither ref nor commit exist`, {
32
- prefix: '✗',
33
- });
34
- process.exit(1);
35
- }
36
- // Step 3a: Update the single skill
37
- await Skill.update(namespace, skillName);
38
- Log.green(`Updated ${fullSkillName}`, { prefix: '✓' });
39
- return;
40
- }
41
- // Update all skills
42
- // Step 2b: Load all skills and categorize by status
43
- const skills = await LockFile.findAll();
44
- const skillEntries = Object.entries(skills);
45
- if (skillEntries.length === 0) {
46
- Log.blue('No skills to update');
47
- return;
3
+ // Update one skill
4
+ if (fullSkillName) {
5
+ // Step 2a: Parse skill name and check ref status (validated in preAction hook)
6
+ const { namespace, skillName } = Path.toSkillParts(fullSkillName);
7
+ const skill = await LockFile.find(fullSkillName);
8
+ if (!skill) {
9
+ Log.red(`Error: ${fullSkillName} was not found`, { prefix: '✗' });
10
+ process.exit(1);
48
11
  }
49
- const orphanedSkills = [];
50
- const brokenSkills = [];
51
- const updatableSkills = [];
52
- for (const [name, skill] of skillEntries) {
53
- if (!skill)
54
- continue;
55
- const status = await LockFile.getRefStatus(skill);
56
- if (status === 'orphaned') {
57
- orphanedSkills.push(`${name} (orphaned from ${skill.requestedRef})`);
58
- }
59
- else if (status === 'broken') {
60
- brokenSkills.push(`${name} (broken)`);
61
- }
62
- else {
63
- updatableSkills.push({ name, namespace: skill.namespace, skillName: skill.skillName });
12
+ const refStatus = await LockFile.getRefStatus(skill);
13
+ if (refStatus === 'orphaned') {
14
+ Log.yellow(`Warning: ${fullSkillName} is orphaned - Branch '${skill.requestedRef}' no longer exists, but commit is preserved`, {
15
+ prefix: '⚠',
16
+ });
17
+ const shouldContinue = await Prompt.confirm({
18
+ message: 'Update anyway? (will preserve current commit)',
19
+ default: true,
20
+ });
21
+ if (!shouldContinue) {
22
+ Log.blue('Update cancelled');
23
+ return;
64
24
  }
65
25
  }
66
- // Step 3b: Show summary of skill statuses
67
- if (orphanedSkills.length > 0) {
68
- Log.blank();
69
- Log.yellow(`Orphaned skills (will preserve current commits):`, { prefix: '⚠' });
70
- orphanedSkills.forEach((s) => Log.yellow(s, { spacing: 2 }));
26
+ else if (refStatus === 'broken') {
27
+ Log.red(`Error: ${fullSkillName} is broken - Neither ref nor commit exist`, {
28
+ prefix: '✗',
29
+ });
30
+ process.exit(1);
71
31
  }
72
- if (brokenSkills.length > 0) {
73
- Log.blank();
74
- Log.red(`Broken skills (cannot update):`, { prefix: '' });
75
- brokenSkills.forEach((s) => Log.red(s, { spacing: 2 }));
32
+ // Step 3a: Update the single skill
33
+ await Skill.update(namespace, skillName);
34
+ Log.green(`Updated ${fullSkillName}`, { prefix: '' });
35
+ return;
36
+ }
37
+ // Update all skills
38
+ // Step 2b: Load all skills and categorize by status
39
+ const skills = await LockFile.findAll();
40
+ const skillEntries = Object.entries(skills);
41
+ if (skillEntries.length === 0) {
42
+ Log.blue('No skills to update');
43
+ return;
44
+ }
45
+ const orphanedSkills = [];
46
+ const brokenSkills = [];
47
+ const updatableSkills = [];
48
+ for (const [name, skill] of skillEntries) {
49
+ if (!skill)
50
+ continue;
51
+ const status = await LockFile.getRefStatus(skill);
52
+ if (status === 'orphaned') {
53
+ orphanedSkills.push(`${name} (orphaned from ${skill.requestedRef})`);
76
54
  }
77
- if (updatableSkills.length === 0) {
78
- Log.blank();
79
- Log.blue('No updatable skills.');
80
- return;
55
+ else if (status === 'broken') {
56
+ brokenSkills.push(`${name} (broken)`);
81
57
  }
82
- // Step 4: Prompt user and update all updatable skills
83
- const shouldUpdate = await Prompt.confirm({
84
- message: `Update ${updatableSkills.length} skill(s)?`,
85
- default: true,
86
- });
87
- if (!shouldUpdate) {
88
- Log.blue('Update cancelled');
89
- return;
58
+ else {
59
+ updatableSkills.push({ name, namespace: skill.namespace, skillName: skill.skillName });
90
60
  }
61
+ }
62
+ // Step 3b: Show summary of skill statuses
63
+ if (orphanedSkills.length > 0) {
91
64
  Log.blank();
92
- Log.blue(`Updating ${updatableSkills.length} skill(s)...`);
93
- for (const { namespace, skillName } of updatableSkills) {
94
- await Skill.update(namespace, skillName);
95
- }
96
- Log.green('Updated all skills', { prefix: '✓' });
65
+ Log.yellow(`Orphaned skills (will preserve current commits):`, { prefix: '⚠' });
66
+ orphanedSkills.forEach((s) => Log.yellow(s, { spacing: 2 }));
67
+ }
68
+ if (brokenSkills.length > 0) {
69
+ Log.blank();
70
+ Log.red(`Broken skills (cannot update):`, { prefix: '✗' });
71
+ brokenSkills.forEach((s) => Log.red(s, { spacing: 2 }));
72
+ }
73
+ if (updatableSkills.length === 0) {
74
+ Log.blank();
75
+ Log.blue('No updatable skills.');
76
+ return;
77
+ }
78
+ // Step 4: Prompt user and update all updatable skills
79
+ const shouldUpdate = await Prompt.confirm({
80
+ message: `Update ${updatableSkills.length} skill(s)?`,
81
+ default: true,
82
+ });
83
+ if (!shouldUpdate) {
84
+ Log.blue('Update cancelled');
85
+ return;
97
86
  }
98
- catch (error) {
99
- Log.red('Failed to update', { prefix: '✗' });
100
- Log.debug(error);
101
- process.exit(1);
87
+ Log.blank();
88
+ Log.blue(`Updating ${updatableSkills.length} skill(s)...`);
89
+ for (const { namespace, skillName } of updatableSkills) {
90
+ await Skill.update(namespace, skillName);
102
91
  }
92
+ Log.green('Updated all skills', { prefix: '✓' });
103
93
  };
104
94
  //# sourceMappingURL=update.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAEtF,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,EAAE,aAAiC,EAAiB,EAAE;IACtF,IAAI,CAAC;QACH,iCAAiC;QACjC,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC;QAExB,mBAAmB;QACnB,IAAI,aAAa,EAAE,CAAC;YAClB,iDAAiD;YACjD,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YACzD,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;YAElE,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAEjD,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,GAAG,CAAC,GAAG,CAAC,UAAU,aAAa,gBAAgB,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;gBAClE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YAED,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YAErD,IAAI,SAAS,KAAK,UAAU,EAAE,CAAC;gBAC7B,GAAG,CAAC,MAAM,CACR,YAAY,aAAa,0BAA0B,KAAK,CAAC,YAAY,6CAA6C,EAClH;oBACE,MAAM,EAAE,GAAG;iBACZ,CACF,CAAC;gBACF,MAAM,cAAc,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC;oBAC1C,OAAO,EAAE,+CAA+C;oBACxD,OAAO,EAAE,IAAI;iBACd,CAAC,CAAC;gBACH,IAAI,CAAC,cAAc,EAAE,CAAC;oBACpB,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;oBAC7B,OAAO;gBACT,CAAC;YACH,CAAC;iBAAM,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;gBAClC,GAAG,CAAC,GAAG,CAAC,UAAU,aAAa,2CAA2C,EAAE;oBAC1E,MAAM,EAAE,GAAG;iBACZ,CAAC,CAAC;gBACH,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YAED,mCAAmC;YACnC,MAAM,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YACzC,GAAG,CAAC,KAAK,CAAC,WAAW,aAAa,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;YACvD,OAAO;QACT,CAAC;QAED,oBAAoB;QACpB,oDAAoD;QACpD,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,OAAO,EAAE,CAAC;QACxC,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAE5C,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,GAAG,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;YAChC,OAAO;QACT,CAAC;QAED,MAAM,cAAc,GAAa,EAAE,CAAC;QACpC,MAAM,YAAY,GAAa,EAAE,CAAC;QAClC,MAAM,eAAe,GAA+D,EAAE,CAAC;QAEvF,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,YAAY,EAAE,CAAC;YACzC,IAAI,CAAC,KAAK;gBAAE,SAAS;YACrB,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YAElD,IAAI,MAAM,KAAK,UAAU,EAAE,CAAC;gBAC1B,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI,mBAAmB,KAAK,CAAC,YAAY,GAAG,CAAC,CAAC;YACvE,CAAC;iBAAM,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;gBAC/B,YAAY,CAAC,IAAI,CAAC,GAAG,IAAI,WAAW,CAAC,CAAC;YACxC,CAAC;iBAAM,CAAC;gBACN,eAAe,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;YACzF,CAAC;QACH,CAAC;QAED,0CAA0C;QAC1C,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,GAAG,CAAC,KAAK,EAAE,CAAC;YACZ,GAAG,CAAC,MAAM,CAAC,kDAAkD,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;YAChF,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC/D,CAAC;QAED,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,GAAG,CAAC,KAAK,EAAE,CAAC;YACZ,GAAG,CAAC,GAAG,CAAC,gCAAgC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;YAC3D,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC1D,CAAC;QAED,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjC,GAAG,CAAC,KAAK,EAAE,CAAC;YACZ,GAAG,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;YACjC,OAAO;QACT,CAAC;QAED,sDAAsD;QACtD,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC;YACxC,OAAO,EAAE,UAAU,eAAe,CAAC,MAAM,YAAY;YACrD,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YAC7B,OAAO;QACT,CAAC;QAED,GAAG,CAAC,KAAK,EAAE,CAAC;QACZ,GAAG,CAAC,IAAI,CAAC,YAAY,eAAe,CAAC,MAAM,cAAc,CAAC,CAAC;QAE3D,KAAK,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,eAAe,EAAE,CAAC;YACvD,MAAM,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAC3C,CAAC;QAED,GAAG,CAAC,KAAK,CAAC,oBAAoB,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;IACnD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,GAAG,CAAC,GAAG,CAAC,kBAAkB,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QAC7C,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACjB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC"}
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAEjF,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,EAAE,aAAiC,EAAiB,EAAE;IACtF,mBAAmB;IACnB,IAAI,aAAa,EAAE,CAAC;QAClB,+EAA+E;QAC/E,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;QAEhE,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAEjD,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,GAAG,CAAC,GAAG,CAAC,UAAU,aAAa,gBAAgB,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;YAClE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAErD,IAAI,SAAS,KAAK,UAAU,EAAE,CAAC;YAC7B,GAAG,CAAC,MAAM,CACR,YAAY,aAAa,0BAA0B,KAAK,CAAC,YAAY,6CAA6C,EAClH;gBACE,MAAM,EAAE,GAAG;aACZ,CACF,CAAC;YACF,MAAM,cAAc,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC;gBAC1C,OAAO,EAAE,+CAA+C;gBACxD,OAAO,EAAE,IAAI;aACd,CAAC,CAAC;YACH,IAAI,CAAC,cAAc,EAAE,CAAC;gBACpB,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;gBAC7B,OAAO;YACT,CAAC;QACH,CAAC;aAAM,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;YAClC,GAAG,CAAC,GAAG,CAAC,UAAU,aAAa,2CAA2C,EAAE;gBAC1E,MAAM,EAAE,GAAG;aACZ,CAAC,CAAC;YACH,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,mCAAmC;QACnC,MAAM,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACzC,GAAG,CAAC,KAAK,CAAC,WAAW,aAAa,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QACvD,OAAO;IACT,CAAC;IAED,oBAAoB;IACpB,oDAAoD;IACpD,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,OAAO,EAAE,CAAC;IACxC,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAE5C,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,GAAG,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QAChC,OAAO;IACT,CAAC;IAED,MAAM,cAAc,GAAa,EAAE,CAAC;IACpC,MAAM,YAAY,GAAa,EAAE,CAAC;IAClC,MAAM,eAAe,GAA+D,EAAE,CAAC;IAEvF,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,YAAY,EAAE,CAAC;QACzC,IAAI,CAAC,KAAK;YAAE,SAAS;QACrB,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAElD,IAAI,MAAM,KAAK,UAAU,EAAE,CAAC;YAC1B,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI,mBAAmB,KAAK,CAAC,YAAY,GAAG,CAAC,CAAC;QACvE,CAAC;aAAM,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC/B,YAAY,CAAC,IAAI,CAAC,GAAG,IAAI,WAAW,CAAC,CAAC;QACxC,CAAC;aAAM,CAAC;YACN,eAAe,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;QACzF,CAAC;IACH,CAAC;IAED,0CAA0C;IAC1C,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,GAAG,CAAC,KAAK,EAAE,CAAC;QACZ,GAAG,CAAC,MAAM,CAAC,kDAAkD,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QAChF,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/D,CAAC;IAED,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,GAAG,CAAC,KAAK,EAAE,CAAC;QACZ,GAAG,CAAC,GAAG,CAAC,gCAAgC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QAC3D,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,GAAG,CAAC,KAAK,EAAE,CAAC;QACZ,GAAG,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACjC,OAAO;IACT,CAAC;IAED,sDAAsD;IACtD,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC;QACxC,OAAO,EAAE,UAAU,eAAe,CAAC,MAAM,YAAY;QACrD,OAAO,EAAE,IAAI;KACd,CAAC,CAAC;IAEH,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAC7B,OAAO;IACT,CAAC;IAED,GAAG,CAAC,KAAK,EAAE,CAAC;IACZ,GAAG,CAAC,IAAI,CAAC,YAAY,eAAe,CAAC,MAAM,cAAc,CAAC,CAAC;IAE3D,KAAK,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,eAAe,EAAE,CAAC;QACvD,MAAM,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAC3C,CAAC;IAED,GAAG,CAAC,KAAK,CAAC,oBAAoB,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;AACrD,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { z } from 'zod';
2
+ export declare const PinOptionSchema: z.ZodUnion<[z.ZodString, z.ZodUndefined]>;
3
+ export type PinOption = z.infer<typeof PinOptionSchema>;
4
+ //# sourceMappingURL=pin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pin.d.ts","sourceRoot":"","sources":["../../src/schemas/pin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,eAAe,2CAG1B,CAAC;AAEH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { z } from 'zod';
2
+ export const PinOptionSchema = z.union([
3
+ z.string().min(1, '--pin requires a ref value (branch, tag, or commit)'),
4
+ z.undefined(),
5
+ ]);
6
+ //# sourceMappingURL=pin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pin.js","sourceRoot":"","sources":["../../src/schemas/pin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC;IACrC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,qDAAqD,CAAC;IACxE,CAAC,CAAC,SAAS,EAAE;CACd,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@iamramo/zanat-cli",
3
- "version": "0.14.3",
3
+ "version": "0.14.5",
4
4
  "description": "CLI for zanat - a skill hub for AI agents",
5
5
  "type": "module",
6
6
  "main": "dist/cli.js",