@przeprogramowani/10x-cli 1.5.0 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -63,7 +63,7 @@ Once installed, just tell your agent to **set up 10x-cli** and it will pick up t
63
63
 
64
64
  | Flag | Description |
65
65
  |------|-------------|
66
- | `--tool <tool>` | AI coding tool: `claude-code`, `cursor`, `copilot`, `codex`, `generic` |
66
+ | `--tool <tool>` | AI coding tool: `claude-code`, `cursor`, `copilot`, `codex`, `windsurf`, `gemini`, `generic` |
67
67
  | `--print` | Output artifact content to stdout instead of writing files |
68
68
  | `--type <type>` | Filter by artifact type: `skills`, `prompts`, `rules`, `configs` |
69
69
  | `--name <name>` | Filter by artifact name (requires `--type`) |
@@ -114,6 +114,8 @@ On first run, the CLI prompts you to choose your AI coding tool. Artifacts are w
114
114
  | Cursor | `.cursor/` | `.cursor/rules/10x-course.mdc` |
115
115
  | GitHub Copilot | `.github/` | `.github/copilot-instructions.md` |
116
116
  | Codex CLI | `.agents/` | `AGENTS.md` |
117
+ | Windsurf | `.windsurf/` | `.windsurfrules` |
118
+ | Gemini CLI | `.gemini/` | `GEMINI.md` |
117
119
  | Generic | `.ai/` | `AGENTS.md` |
118
120
 
119
121
  Override anytime with `--tool <name>`. Your choice is saved in `~/.config/10x-cli/config.json`.
package/dist/index.mjs CHANGED
@@ -2271,7 +2271,7 @@ var cac = (name = "") => new CAC(name);
2271
2271
  // package.json
2272
2272
  var package_default = {
2273
2273
  name: "@przeprogramowani/10x-cli",
2274
- version: "1.5.0",
2274
+ version: "1.6.0",
2275
2275
  description: "Open-source CLI for 10xDevs course content",
2276
2276
  repository: {
2277
2277
  type: "git",
@@ -3807,6 +3807,18 @@ var PROFILES = {
3807
3807
  sentinelBegin: SENTINEL_BEGIN,
3808
3808
  sentinelEnd: SENTINEL_END
3809
3809
  },
3810
+ gemini: {
3811
+ toolId: "gemini",
3812
+ displayName: "Gemini CLI",
3813
+ skillPath: (n) => `.gemini/skills/${n}/SKILL.md`,
3814
+ skillDir: (n) => `.gemini/skills/${n}`,
3815
+ promptPath: (n) => `.gemini/prompts/${n}.md`,
3816
+ configPath: (n) => `.gemini/config-templates/${n}`,
3817
+ rulesFile: "GEMINI.md",
3818
+ manifestDir: ".gemini",
3819
+ sentinelBegin: SENTINEL_BEGIN,
3820
+ sentinelEnd: SENTINEL_END
3821
+ },
3810
3822
  generic: {
3811
3823
  toolId: "generic",
3812
3824
  displayName: "Other / Generic",
@@ -4294,6 +4306,17 @@ function detectTools(projectRoot) {
4294
4306
  } else if (hit(".windsurf")) {
4295
4307
  signals.push({ profileId: "windsurf", confidence: "medium", reason: ".windsurf/ directory" });
4296
4308
  }
4309
+ if (hit(".gemini/" + MANIFEST_FILENAME)) {
4310
+ signals.push({
4311
+ profileId: "gemini",
4312
+ confidence: "strong",
4313
+ reason: ".gemini/.10x-cli-manifest.json"
4314
+ });
4315
+ } else if (hit("GEMINI.md")) {
4316
+ signals.push({ profileId: "gemini", confidence: "strong", reason: "GEMINI.md" });
4317
+ } else if (hit(".gemini")) {
4318
+ signals.push({ profileId: "gemini", confidence: "medium", reason: ".gemini/ directory" });
4319
+ }
4297
4320
  if (hit(".ai/" + MANIFEST_FILENAME)) {
4298
4321
  signals.push({
4299
4322
  profileId: "generic",
@@ -4308,7 +4331,7 @@ function detectTools(projectRoot) {
4308
4331
  return rankSignals(signals);
4309
4332
  }
4310
4333
  var CONFIDENCE_ORDER = { strong: 3, medium: 2, weak: 1 };
4311
- var PROFILE_ORDER = ["claude-code", "cursor", "copilot", "codex", "windsurf", "generic"];
4334
+ var PROFILE_ORDER = ["claude-code", "cursor", "copilot", "codex", "windsurf", "gemini", "generic"];
4312
4335
  function rankSignals(signals) {
4313
4336
  return [...signals].sort((a2, b2) => {
4314
4337
  const c2 = CONFIDENCE_ORDER[b2.confidence] - CONFIDENCE_ORDER[a2.confidence];
@@ -5033,7 +5056,7 @@ function isArtifactType(s) {
5033
5056
  }
5034
5057
  var DEFAULT_COURSE2 = "10xdevs3";
5035
5058
  function registerGetCommand(cli) {
5036
- cli.command("get <ref>", "Fetch and apply a lesson pack").option("--dry-run", "Show what would be written without touching the filesystem").option("--course <course>", "Override the course slug (default: 10xdevs3)").option("--tool <tool>", "AI coding tool (claude-code, cursor, copilot, codex, generic)").option("--print", "Print artifact content to stdout instead of writing to files").option("--type <type>", "Artifact type filter: skills, prompts, rules, configs").option("--name <name>", "Artifact name filter (requires --type)").option("--lang <lang>", "Content language: en (default) or pl").action(async (ref, options) => {
5059
+ cli.command("get <ref>", "Fetch and apply a lesson pack").option("--dry-run", "Show what would be written without touching the filesystem").option("--course <course>", "Override the course slug (default: 10xdevs3)").option("--tool <tool>", "AI coding tool (claude-code, cursor, copilot, codex, windsurf, gemini, generic)").option("--print", "Print artifact content to stdout instead of writing to files").option("--type <type>", "Artifact type filter: skills, prompts, rules, configs").option("--name <name>", "Artifact name filter (requires --type)").option("--lang <lang>", "Content language: en (default) or pl").action(async (ref, options) => {
5037
5060
  const ctx = resolveContext(options);
5038
5061
  await runGet(ctx, ref, options);
5039
5062
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@przeprogramowani/10x-cli",
3
- "version": "1.5.0",
3
+ "version": "1.6.0",
4
4
  "description": "Open-source CLI for 10xDevs course content",
5
5
  "repository": {
6
6
  "type": "git",