@chiendt/ack-cli 1.0.1-dev.1 → 1.0.1-dev.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/cli-manifest.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
- "version": "1.0.1-dev.1",
3
- "generatedAt": "2026-05-17T10:19:21.782Z",
2
+ "version": "1.0.1-dev.5",
3
+ "generatedAt": "2026-05-20T10:05:13.303Z",
4
4
  "commands": {
5
5
  "agents": {
6
6
  "name": "agents",
@@ -1810,6 +1810,92 @@
1810
1810
  }
1811
1811
  ]
1812
1812
  }
1813
+ ],
1814
+ "subcommands": [
1815
+ {
1816
+ "name": "install",
1817
+ "description": "Run skills dependency install script (install.sh / install.ps1)",
1818
+ "usage": "ack setup install [options]",
1819
+ "examples": [
1820
+ {
1821
+ "command": "ack setup install",
1822
+ "description": "Run install script in ./.claude/skills"
1823
+ },
1824
+ {
1825
+ "command": "ack setup install --global",
1826
+ "description": "Run install script in ~/.claude/skills"
1827
+ },
1828
+ {
1829
+ "command": "ack setup install --dir /custom/path --with-sudo",
1830
+ "description": "Custom dir with sudo for system packages"
1831
+ }
1832
+ ],
1833
+ "optionGroups": [
1834
+ {
1835
+ "title": "Options",
1836
+ "options": [
1837
+ {
1838
+ "flags": "--global",
1839
+ "description": "Use ~/.claude/skills"
1840
+ },
1841
+ {
1842
+ "flags": "--dir <dir>",
1843
+ "description": "Custom skills directory"
1844
+ },
1845
+ {
1846
+ "flags": "--with-sudo",
1847
+ "description": "Allow sudo for system packages (Linux)"
1848
+ },
1849
+ {
1850
+ "flags": "-y, --yes",
1851
+ "description": "Skip confirmation prompts"
1852
+ }
1853
+ ]
1854
+ }
1855
+ ]
1856
+ }
1857
+ ]
1858
+ },
1859
+ "setup install": {
1860
+ "name": "setup install",
1861
+ "description": "Run skills dependency install script (install.sh / install.ps1)",
1862
+ "usage": "ack setup install [options]",
1863
+ "examples": [
1864
+ {
1865
+ "command": "ack setup install",
1866
+ "description": "Run install script in ./.claude/skills"
1867
+ },
1868
+ {
1869
+ "command": "ack setup install --global",
1870
+ "description": "Run install script in ~/.claude/skills"
1871
+ },
1872
+ {
1873
+ "command": "ack setup install --dir /custom/path --with-sudo",
1874
+ "description": "Custom dir with sudo for system packages"
1875
+ }
1876
+ ],
1877
+ "optionGroups": [
1878
+ {
1879
+ "title": "Options",
1880
+ "options": [
1881
+ {
1882
+ "flags": "--global",
1883
+ "description": "Use ~/.claude/skills"
1884
+ },
1885
+ {
1886
+ "flags": "--dir <dir>",
1887
+ "description": "Custom skills directory"
1888
+ },
1889
+ {
1890
+ "flags": "--with-sudo",
1891
+ "description": "Allow sudo for system packages (Linux)"
1892
+ },
1893
+ {
1894
+ "flags": "-y, --yes",
1895
+ "description": "Skip confirmation prompts"
1896
+ }
1897
+ ]
1898
+ }
1813
1899
  ]
1814
1900
  },
1815
1901
  "skills": {
package/dist/index.js CHANGED
@@ -63692,7 +63692,7 @@ var package_default;
63692
63692
  var init_package = __esm(() => {
63693
63693
  package_default = {
63694
63694
  name: "@chiendt/ack-cli",
63695
- version: "1.0.1-dev.1",
63695
+ version: "1.0.1-dev.5",
63696
63696
  description: "ACK CLI - tool for bootstrapping and updating ACK kits (Claude Code agent kits)",
63697
63697
  type: "module",
63698
63698
  repository: {
@@ -76521,9 +76521,9 @@ async function listActiveWorktrees(projectDir) {
76521
76521
  for (const line of output2.split(`
76522
76522
  `)) {
76523
76523
  if (line.startsWith("worktree ")) {
76524
- const path9 = line.slice(9).replace(/\\/g, "/");
76525
- if (path9.startsWith(worktreePrefix)) {
76526
- const num = Number.parseInt(path9.slice(worktreePrefix.length), 10);
76524
+ const path10 = line.slice(9).replace(/\\/g, "/");
76525
+ if (path10.startsWith(worktreePrefix)) {
76526
+ const num = Number.parseInt(path10.slice(worktreePrefix.length), 10);
76527
76527
  if (!Number.isNaN(num))
76528
76528
  issueNumbers.push(num);
76529
76529
  }
@@ -80968,9 +80968,45 @@ var init_projects_command_help = __esm(() => {
80968
80968
  };
80969
80969
  });
80970
80970
 
80971
+ // src/domains/help/commands/setup-install-command-help.ts
80972
+ var setupInstallCommandHelp;
80973
+ var init_setup_install_command_help = __esm(() => {
80974
+ setupInstallCommandHelp = {
80975
+ name: "setup install",
80976
+ description: "Run skills dependency install script (install.sh / install.ps1)",
80977
+ usage: "ack setup install [options]",
80978
+ examples: [
80979
+ {
80980
+ command: "ack setup install",
80981
+ description: "Run install script in ./.claude/skills"
80982
+ },
80983
+ {
80984
+ command: "ack setup install --global",
80985
+ description: "Run install script in ~/.claude/skills"
80986
+ },
80987
+ {
80988
+ command: "ack setup install --dir /custom/path --with-sudo",
80989
+ description: "Custom dir with sudo for system packages"
80990
+ }
80991
+ ],
80992
+ optionGroups: [
80993
+ {
80994
+ title: "Options",
80995
+ options: [
80996
+ { flags: "--global", description: "Use ~/.claude/skills" },
80997
+ { flags: "--dir <dir>", description: "Custom skills directory" },
80998
+ { flags: "--with-sudo", description: "Allow sudo for system packages (Linux)" },
80999
+ { flags: "-y, --yes", description: "Skip confirmation prompts" }
81000
+ ]
81001
+ }
81002
+ ]
81003
+ };
81004
+ });
81005
+
80971
81006
  // src/domains/help/commands/setup-command-help.ts
80972
81007
  var setupCommandHelp;
80973
81008
  var init_setup_command_help = __esm(() => {
81009
+ init_setup_install_command_help();
80974
81010
  setupCommandHelp = {
80975
81011
  name: "setup",
80976
81012
  description: "Run guided setup for provider API keys, preferred image provider, and optional packages",
@@ -81008,6 +81044,15 @@ var init_setup_command_help = __esm(() => {
81008
81044
  }
81009
81045
  ]
81010
81046
  }
81047
+ ],
81048
+ subcommands: [
81049
+ {
81050
+ name: "install",
81051
+ description: setupInstallCommandHelp.description,
81052
+ usage: setupInstallCommandHelp.usage,
81053
+ examples: setupInstallCommandHelp.examples,
81054
+ optionGroups: setupInstallCommandHelp.optionGroups
81055
+ }
81011
81056
  ]
81012
81057
  };
81013
81058
  });
@@ -81395,6 +81440,7 @@ var init_commands2 = __esm(() => {
81395
81440
  init_plan_command_help();
81396
81441
  init_projects_command_help();
81397
81442
  init_setup_command_help();
81443
+ init_setup_install_command_help();
81398
81444
  init_skills_command_help();
81399
81445
  init_uninstall_command_help();
81400
81446
  init_update_command_help();
@@ -81425,6 +81471,7 @@ var init_help_commands = __esm(() => {
81425
81471
  plan: planCommandHelp,
81426
81472
  projects: projectsCommandHelp,
81427
81473
  setup: setupCommandHelp,
81474
+ "setup install": setupInstallCommandHelp,
81428
81475
  skills: skillsCommandHelp,
81429
81476
  uninstall: uninstallCommandHelp,
81430
81477
  update: updateCommandHelp,
@@ -108963,6 +109010,22 @@ async function setupCommand(options2) {
108963
109010
  f2.success(`Installed packages: ${ctx.packagesInstalled.join(", ")}`);
108964
109011
  }
108965
109012
  }
109013
+ // src/commands/setup/setup-install-command.ts
109014
+ init_package_installer();
109015
+ init_logger();
109016
+ init_path_resolver();
109017
+ import path9 from "node:path";
109018
+ async function setupInstallCommand(options2) {
109019
+ if (options2.dir && options2.global) {
109020
+ logger.error("--dir and --global are mutually exclusive. Use one or the other.");
109021
+ process.exit(1);
109022
+ }
109023
+ const resolvedDir = options2.dir ? path9.resolve(options2.dir) : PathResolver.buildSkillsPath(options2.global ? PathResolver.getGlobalKitDir() : process.cwd(), !!options2.global);
109024
+ await handleSkillsInstallation(resolvedDir, {
109025
+ skipConfirm: !!options2.yes,
109026
+ withSudo: !!options2.withSudo
109027
+ });
109028
+ }
108966
109029
  // src/commands/skills/skills-command.ts
108967
109030
  init_dist2();
108968
109031
  init_skill_catalog_generator();
@@ -112355,6 +112418,9 @@ function registerCommands(cli) {
112355
112418
  cli.command("setup", "Configure API keys and optional packages").option("--global", "Configure globally (~/.claude/)").option("--skip-packages", "Skip optional package installation").option("--dir <dir>", "Target directory (default: current directory)").action(async (options2) => {
112356
112419
  await setupCommand(options2);
112357
112420
  });
112421
+ cli.command("setup install", "Run skills dependency install script").option("--global", "Use ~/.claude/skills").option("--dir <dir>", "Custom skills directory").option("--with-sudo", "Allow sudo for system packages (Linux)").option("-y, --yes", "Skip confirmation prompts").action(async (options2) => {
112422
+ await setupInstallCommand(options2);
112423
+ });
112358
112424
  cli.command("skills", "Install AckKit skills to other coding agents").option("-n, --name <skill>", "Skill name to install/uninstall").option("-a, --agent <agents...>", "Target agents (claude-code, cursor, codex, etc.)").option("-g, --global", "Install/uninstall globally instead of project-level").option("-l, --list", "List available skills").option("--installed", "Show installed skills (use with --list)").option("--all", "Install to all supported agents").option("-u, --uninstall", "Uninstall skill(s)").option("--force", "Force uninstall even if not in registry").option("--sync", "Sync registry with filesystem (remove orphans)").option("-y, --yes", "Skip confirmation prompts").option("--catalog", "Show skill catalog stats").option("--regenerate", "Force regenerate catalog (use with --catalog)").option("--search <query>", "BM25 full-text search over skill catalog").option("--json", "Output search results as JSON (use with --search)").option("--limit <n>", "Max search results, default 10 (use with --search)").option("--validate", "Validate SKILL.md frontmatter fields").action(async (options2) => {
112359
112425
  if (options2.agent && !Array.isArray(options2.agent)) {
112360
112426
  options2.agent = [options2.agent];
@@ -112379,8 +112445,8 @@ function registerCommands(cli) {
112379
112445
  cli.command("plan [action] [target]", "Plan management: parse, validate, status, kanban, create, check, uncheck, add-phase").option("--json", "Output in JSON format").option("--strict", "Strict validation mode").option("--port <port>", "Port for kanban dashboard").option("--no-open", "Don't auto-open browser").option("--dev", "Development mode for dashboard").option("-g, --global", "Use global plans scope (~/.claude/plans or configured global root)").option("--title <title>", "Plan title (for create)").option("--phases <phases>", "Comma-separated phase names (for create)").option("--dir <dir>", "Plan directory (for create)").option("--priority <priority>", "Priority: P1, P2, P3 (for create)").option("--issue <issue>", "GitHub issue number (for create)").option("--after <after>", "Insert after phase ID (for add-phase)").option("--start", "Mark as in-progress instead of completed (for check)").option("--source <source>", "Creation source: skill | cli | dashboard (for create)").option("--session-id <id>", "Claude session ID for tracking (for create)").action(async (action, target, options2) => {
112380
112446
  await planCommand(action, target, options2);
112381
112447
  });
112382
- cli.command("api [action] [service] [path]", "Interact with AckKit API and proxy services").option("--method <method>", "HTTP method for proxy requests (default: GET)").option("--body <json>", "Request body as JSON string (proxy only)").option("--query <json>", "Query params as JSON string (proxy only)").option("--key <key>", "API key to use (setup only)").option("--force", "Force re-setup even if key exists (setup only)").option("--json", "Output raw JSON instead of formatted display").option("--locale <locale>", "Locale for vidcap summary/caption (default: en)").option("--max-results <n>", "Max results for vidcap search").option("--second <s>", "Timestamp in seconds for vidcap screenshot").option("--order <order>", "Sort order for vidcap comments (time/relevance)").option("--format <fmt>", "Summary format for reviewweb (bullet/paragraph)").option("--max-length <n>", "Max summary length for reviewweb").option("--instructions <text>", "Extraction instructions for reviewweb extract").option("--template <json>", "JSON template for reviewweb extract").option("--type <type>", "Link type filter for reviewweb links (web/image/file/all)").option("--country <code>", "Country code for reviewweb SEO commands").action(async (action, service, path9, options2) => {
112383
- await apiCommand(action, service, path9, options2);
112448
+ cli.command("api [action] [service] [path]", "Interact with AckKit API and proxy services").option("--method <method>", "HTTP method for proxy requests (default: GET)").option("--body <json>", "Request body as JSON string (proxy only)").option("--query <json>", "Query params as JSON string (proxy only)").option("--key <key>", "API key to use (setup only)").option("--force", "Force re-setup even if key exists (setup only)").option("--json", "Output raw JSON instead of formatted display").option("--locale <locale>", "Locale for vidcap summary/caption (default: en)").option("--max-results <n>", "Max results for vidcap search").option("--second <s>", "Timestamp in seconds for vidcap screenshot").option("--order <order>", "Sort order for vidcap comments (time/relevance)").option("--format <fmt>", "Summary format for reviewweb (bullet/paragraph)").option("--max-length <n>", "Max summary length for reviewweb").option("--instructions <text>", "Extraction instructions for reviewweb extract").option("--template <json>", "JSON template for reviewweb extract").option("--type <type>", "Link type filter for reviewweb links (web/image/file/all)").option("--country <code>", "Country code for reviewweb SEO commands").action(async (action, service, path10, options2) => {
112449
+ await apiCommand(action, service, path10, options2);
112384
112450
  });
112385
112451
  cli.command("migrate", "Migrate agents, commands, skills, config, rules, and hooks to other providers").option("-a, --agent <agents...>", "Target providers (cursor, codex, droid, opencode, etc.)").option("-g, --global", "Install globally instead of project-level").option("--all", "Migrate to all supported providers").option("-y, --yes", "Skip confirmation prompts").option("--only-agents", "Migrate agents only").option("--only-commands", "Migrate commands only").option("--only-skills", "Migrate skills only").option("--config", "Migrate CLAUDE.md config only").option("--rules", "Migrate .claude/rules/ only").option("--hooks", "Migrate .claude/hooks/ only").option("--skip-agents", "Skip agents migration").option("--skip-commands", "Skip commands migration").option("--skip-skills", "Skip skills migration (preserve symlinks/custom layouts)").option("--skip-config", "Skip config migration").option("--skip-rules", "Skip rules migration").option("--skip-hooks", "Skip hooks migration").option("--source <path>", "Custom CLAUDE.md source path (config only, not agents/commands/skills/hooks)").option("--dry-run", "Preview migration targets without writing files").option("-f, --force", "Force reinstall deleted/edited items").option("--install", "Opt-in install picker mode (select specific items to install)").option("--reconcile", "Force reconcile mode (current default when registry is valid)").option("--reinstall-empty-dirs", "Reinstall all items when their type directory is empty (default: true)").option("--respect-deletions", "Preserve deletion even when type directory is empty (disables reinstall-empty-dirs)").action(async (options2) => {
112386
112452
  if (options2.agent && !Array.isArray(options2.agent)) {
@@ -112841,18 +112907,18 @@ class Logger2 {
112841
112907
  isVerbose() {
112842
112908
  return this.verboseEnabled;
112843
112909
  }
112844
- setLogFile(path9) {
112910
+ setLogFile(path10) {
112845
112911
  if (this.logFileStream) {
112846
112912
  this.logFileStream.end();
112847
112913
  this.logFileStream = undefined;
112848
112914
  }
112849
- if (path9) {
112850
- this.logFileStream = createWriteStream5(path9, {
112915
+ if (path10) {
112916
+ this.logFileStream = createWriteStream5(path10, {
112851
112917
  flags: "a",
112852
112918
  mode: 384
112853
112919
  });
112854
112920
  this.registerExitHandler();
112855
- this.verbose(`Logging to file: ${path9}`);
112921
+ this.verbose(`Logging to file: ${path10}`);
112856
112922
  }
112857
112923
  }
112858
112924
  close() {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@chiendt/ack-cli",
3
- "version": "1.0.1-dev.1",
3
+ "version": "1.0.1-dev.5",
4
4
  "description": "ACK CLI - tool for bootstrapping and updating ACK kits (Claude Code agent kits)",
5
5
  "type": "module",
6
6
  "repository": {