docks-kit 0.1.4 → 0.1.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.
@@ -3,6 +3,7 @@
3
3
  "tools": {
4
4
  "jq": { "kind": "required", "note": "deployed Claude hooks/statusline assets" },
5
5
  "curl": { "kind": "required", "note": "installers + usage fetch" },
6
+ "git": { "kind": "check", "note": "plugin marketplaces (claude/codex clone them) + kit checkout updates" },
6
7
  "node": { "kind": "check", "note": "hosts npm globals (agent-browser, LSP servers)" },
7
8
  "npm": { "kind": "check", "note": "npm-global installer" },
8
9
  "claude": { "kind": "check", "floor": "2.1.170", "note": "kit floor — `best` alias + Fable 5 need >=2.1.170 (mirrors settings minimumVersion)" },
@@ -520,6 +520,11 @@ function syncPlugins(ctx: Ctx, claudeDir: string): void {
520
520
  warn("claude CLI not in PATH — skipping plugin reconcile (run /plugin marketplace add + /plugin install manually)")
521
521
  return
522
522
  }
523
+ if (!commandExists("git")) {
524
+ const hint = process.platform === "win32" ? "winget install Git.Git (then open a new terminal)" : "install git via your package manager"
525
+ warn(`git not found — plugin marketplaces are git repos, so every plugin operation would fail. Skipping plugin passes. Install: ${hint}, then re-run sync`)
526
+ return
527
+ }
523
528
 
524
529
  const repoSettings = readJsonFile(repoSettingsFile)
525
530
  const repoObj = repoSettings !== undefined && isObject(repoSettings) ? repoSettings : {}
@@ -397,6 +397,11 @@ function syncPlugins(ctx: Ctx, sotConfig: string): void {
397
397
  )
398
398
  return
399
399
  }
400
+ if (!commandExists("git")) {
401
+ const hint = process.platform === "win32" ? "winget install Git.Git (then open a new terminal)" : "install git via your package manager"
402
+ warn(`git not found — Codex plugin marketplaces are git repos, so plugin refresh would fail. Skipping. Install: ${hint}, then re-run sync`)
403
+ return
404
+ }
400
405
 
401
406
  let refreshed = 0
402
407
  let failed = 0
@@ -72,6 +72,8 @@ export function installedVersion(ctx: Ctx, tool: string): string {
72
72
  const m = /effect-solutions@([0-9][0-9.]*)/.exec(capture(bunbin, ["pm", "-g", "ls"]))
73
73
  return m?.[1] ?? ""
74
74
  }
75
+ case "git":
76
+ return firstLineField(capture("git", ["--version"]), 2)
75
77
  case "node":
76
78
  return capture("node", ["--version"]).replace(/^v/, "")
77
79
  case "npm":
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "docks-kit",
3
- "version": "0.1.4",
3
+ "version": "0.1.5",
4
4
  "description": "Portable AI coding agent config kit — SoT sync engine + typed CLI for Claude Code, Codex, and universal agent skills",
5
5
  "type": "module",
6
6
  "license": "MIT",